/* ══════════════════════════════════════════════════════════════
   UniverCart — Premium Side Cart v1.5
   Light, breathable, intentional. Every pixel considered.
   ══════════════════════════════════════════════════════════════ */

:root {
	--uc-primary: #2fad4e;
	--uc-primary-hover: #26963f;
	--uc-primary-light: rgba(47,173,78,.06);
	--uc-bg: #ffffff;
	--uc-bg-hover: #fafafa;
	--uc-bg-subtle: #f5f5f5;
	--uc-text: #1a1a1a;
	--uc-text-secondary: #6b7280;
	--uc-text-muted: #9ca3af;
	--uc-border: #e8e8eb;
	--uc-radius: 12px;
	--uc-radius-sm: 8px;
	--uc-radius-xs: 6px;
	--uc-cart-width: 400px;
	--uc-shadow: 0 25px 50px -12px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.04);
	--uc-success: #16a34a;
	--uc-error: #dc2626;
	--uc-savings: #059669;
	--uc-savings-bg: rgba(5,150,105,.07);
	--uc-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--uc-ease: cubic-bezier(.4,0,.2,1);
}

/* Reset */
.uc-side-cart *, .uc-floating-btn * { box-sizing: border-box; margin: 0; padding: 0; }
.uc-side-cart { font-family: var(--uc-font); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ── Overlay ── */
/* ─── CRITICAL: overlay must NEVER intercept clicks while hidden ───
   Without `pointer-events: none` on the default state, a stuck
   `.uc-visible` class — or a race during the opacity/visibility
   transition — causes the fixed z-index:999998 overlay to swallow
   every click on the shop/archive pages. Symptom: customers click
   "Adicionar" on products and nothing happens, because the hit test
   returns .uc-overlay instead of the button underneath.
   ────────────────────────────────────────────────────────────── */
.uc-overlay {
	position: fixed !important; inset: 0 !important; z-index: 999998 !important;
	background: rgba(0,0,0,.3) !important;
	backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transition: opacity .3s var(--uc-ease), visibility .3s var(--uc-ease);
	padding: 0 !important; margin: 0 !important;
}
.uc-overlay.uc-visible {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

/* ── Panel — !important to override theme conflicts ── */
.uc-side-cart {
	position: fixed !important; top: 0 !important; right: 0 !important; bottom: 0 !important;
	left: auto !important; z-index: 999999 !important;
	display: flex !important; flex-direction: column !important;
	width: var(--uc-cart-width) !important; max-width: 100vw !important;
	background: var(--uc-bg) !important; color: var(--uc-text) !important;
	box-shadow: var(--uc-shadow) !important;
	transform: translateX(100%) !important;
	transition: transform .35s cubic-bezier(.32,.72,0,1) !important;
	padding: 0 !important; margin: 0 !important;
	overflow: hidden !important;
}
.uc-side-cart.uc-open { transform: translateX(0) !important; }
@media(max-width:480px) { .uc-side-cart { width: 100vw !important; } }

/* ─── CRITICAL LAYOUT ───────────────────────────────────────────
   The tab wrapper MUST be a column flexbox with min-height:0 so
   that the inner .uc-cart-body can claim `flex: 1` and scroll,
   leaving the footer (Finalizar Compra) pinned at the bottom.
   Without this rule the footer gets pushed below the viewport on
   long carts and the customer can't check out. This is the #1
   conversion-killing layout bug — do not touch without thinking.
   ──────────────────────────────────────────────────────────── */
.uc-side-cart .uc-tab-cart,
.uc-side-cart .uc-tab-saved {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	min-height: 0 !important;
	overflow: hidden !important;
}

/* Cart body MUST scroll */
.uc-side-cart .uc-cart-body {
	flex: 1 1 auto !important;
	overflow-y: auto !important;
	overscroll-behavior: contain !important;
	min-height: 0 !important;
	-webkit-overflow-scrolling: touch !important;
}

/* Footer ALWAYS pinned at the bottom of the side cart. */
.uc-side-cart .uc-cart-footer {
	flex-shrink: 0 !important;
	position: sticky !important;
	bottom: 0 !important;
	z-index: 2 !important;
	background: var(--uc-bg) !important;
	border-top: 1px solid var(--uc-border) !important;
	box-shadow: 0 -8px 24px rgba(0,0,0,.06) !important;
}

/* ── Header ── */
.uc-cart-header {
	display: flex; align-items: center; justify-content: space-between;
	padding: 0 20px; border-bottom: 1px solid var(--uc-border);
	flex-shrink: 0; min-height: 52px;
}
.uc-cart-title { font-size: 15px; font-weight: 600; letter-spacing: -.02em; }

/* ── Tabs ── */
.uc-tabs { display: flex; gap: 0; }
.uc-tab {
	padding: 15px 0; margin-right: 20px;
	border: none; border-bottom: 2px solid transparent;
	background: transparent; color: var(--uc-text-muted);
	font-family: var(--uc-font); font-size: 13px; font-weight: 600;
	cursor: pointer; transition: all .15s ease; letter-spacing: -.01em;
}
.uc-tab.uc-tab-active { color: var(--uc-text); border-bottom-color: var(--uc-text); }
.uc-tab:hover { color: var(--uc-text-secondary); }

.uc-close-btn {
	display: flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; padding: 0;
	border: none; border-radius: 50%; background: transparent;
	color: var(--uc-text-muted); cursor: pointer; transition: all .15s ease;
}
.uc-close-btn:hover { background: var(--uc-bg-subtle); color: var(--uc-text); }
.uc-close-btn svg { width: 18px; height: 18px; }

/* ── Shipping Progress ── */
.uc-shipping-meter {
	padding: 12px 20px; border-bottom: 1px solid var(--uc-border);
	flex-shrink: 0;
}
.uc-shipping-bar-wrap { display: flex; align-items: center; margin-bottom: 8px; }
.uc-shipping-bar {
	flex: 1; height: 6px;
	background: var(--uc-bg-subtle); border-radius: 3px; overflow: hidden;
}
.uc-shipping-progress {
	height: 100%; border-radius: 3px;
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%);
	transition: width .6s cubic-bezier(.32,.72,0,1);
	width: 0;
}
/* Remove truck/gift icons — noise */
.uc-shipping-icon-truck, .uc-shipping-icon-gift { display: none; }
.uc-shipping-text { font-size: 12px; color: var(--uc-text-secondary); line-height: 1.5; }
.uc-shipping-text strong { color: var(--uc-text); font-weight: 600; }
.uc-shipping-done { color: var(--uc-success); font-weight: 600; font-size: 12px; }

/* ── Cart Body ── */
.uc-cart-body::-webkit-scrollbar { width: 0; }

/* ── Cart Items ── */
.uc-cart-items, .uc-saved-items { list-style: none; }

.uc-cart-item, .uc-saved-item {
	display: flex; gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--uc-border);
	transition: background .15s ease;
}
.uc-cart-item:last-child, .uc-saved-item:last-child { border-bottom: none; }
.uc-cart-item:hover, .uc-saved-item:hover { background: var(--uc-bg-hover); }
.uc-item-loading { opacity: .35; pointer-events: none; }

.uc-item-image {
	width: 72px; height: 72px;
	border-radius: 8px; object-fit: cover; flex-shrink: 0;
	background: var(--uc-bg-subtle); border: none;
}

.uc-item-details {
	flex: 1; min-width: 0;
	display: flex; flex-direction: column; gap: 3px;
}

.uc-item-name {
	font-size: 13px; font-weight: 500; line-height: 1.35;
	color: var(--uc-text); letter-spacing: -.01em;
	display: -webkit-box; -webkit-line-clamp: 2;
	-webkit-box-orient: vertical; overflow: hidden;
}
.uc-item-name a { color: inherit; text-decoration: none; }

/* Price */
.uc-item-price-row {
	display: flex; align-items: center; gap: 6px;
	flex-wrap: wrap; margin: 1px 0;
}
.uc-item-regular-price {
	font-size: 11px; color: var(--uc-text-muted);
	text-decoration: line-through;
}
.uc-item-sale-price {
	font-size: 14px; font-weight: 700;
	color: var(--uc-text); letter-spacing: -.02em;
}
.uc-item-savings-badge {
	display: inline-flex; padding: 1px 6px;
	border-radius: 100px; background: var(--uc-savings-bg);
	color: var(--uc-savings); font-size: 10px; font-weight: 600;
}

/* Actions row */
.uc-item-actions {
	display: flex; align-items: center; gap: 10px;
	margin-top: 4px;
}

/* Quantity */
.uc-qty {
	display: inline-flex; align-items: center;
	border: 1px solid var(--uc-border); border-radius: 6px;
	flex-shrink: 0;
}
.uc-qty-btn,
.uc-side-cart .uc-qty-btn {
	display: flex !important; align-items: center !important; justify-content: center !important;
	width: 28px !important; height: 28px !important; padding: 0 !important;
	min-width: 28px !important; min-height: 28px !important;
	max-width: 28px !important; max-height: 28px !important;
	border: none !important; background: transparent !important;
	color: var(--uc-text-secondary) !important;
	font-size: 14px !important; font-weight: 500 !important;
	cursor: pointer !important;
	transition: all .1s ease !important;
	font-family: var(--uc-font) !important; line-height: 1 !important;
	box-shadow: none !important; text-shadow: none !important;
	border-radius: 0 !important;
	flex-shrink: 0 !important;
}
.uc-qty-btn:hover { background: var(--uc-bg-subtle) !important; color: var(--uc-text) !important; transform: none !important; }
.uc-qty-value {
	width: 26px !important; text-align: center !important;
	font-size: 12px !important; font-weight: 600 !important;
	border-left: 1px solid var(--uc-border) !important;
	border-right: 1px solid var(--uc-border) !important;
	line-height: 28px !important;
	font-family: var(--uc-font) !important;
	color: var(--uc-text) !important;
	background: transparent !important;
	flex-shrink: 0 !important;
}
.uc-qty,
.uc-side-cart .uc-qty {
	display: inline-flex !important; align-items: center !important;
	border: 1px solid var(--uc-border) !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	flex-shrink: 0 !important;
	background: transparent !important;
}

/* Icon buttons — heart (save) + trash (remove) — !important against theme overrides */
.uc-item-icons {
	display: flex !important; align-items: center !important; gap: 8px !important;
	margin-left: auto !important; flex-shrink: 0 !important;
}
.uc-icon-btn,
.uc-side-cart .uc-icon-btn {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	padding: 0 !important; border: none !important; background: transparent !important;
	cursor: pointer !important; color: #c0c5cd !important;
	width: 26px !important; height: 26px !important; min-width: 26px !important; max-width: 26px !important; min-height: 26px !important; max-height: 26px !important;
	border-radius: 6px !important;
	box-shadow: none !important; text-shadow: none !important;
	font-size: 0 !important; line-height: 1 !important;
	pointer-events: auto !important;
	transition: color .15s ease, transform .15s ease !important;
	overflow: visible !important;
	flex-shrink: 0 !important;
}
.uc-icon-btn svg,
.uc-side-cart .uc-icon-btn svg {
	width: 16px !important; height: 16px !important;
	min-width: 16px !important; min-height: 16px !important;
	max-width: 16px !important; max-height: 16px !important;
	display: block !important; pointer-events: none !important;
	fill: none !important; stroke: currentColor !important;
}
.uc-icon-btn:hover { transform: scale(1.12) !important; }
.uc-heart-btn:hover { color: #e91e63 !important; }
.uc-heart-btn:hover svg { fill: #e91e63 !important; stroke: #e91e63 !important; }
.uc-trash-btn:hover { color: var(--uc-error) !important; }

/* ── Empty State ── */
.uc-empty-cart, .uc-saved-empty {
	display: flex; flex-direction: column; align-items: center;
	justify-content: center; padding: 60px 24px; text-align: center;
}
.uc-empty-icon-wrap {
	width: 64px; height: 64px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--uc-bg-subtle);
	margin-bottom: 16px; color: var(--uc-text-muted);
}
.uc-empty-icon-wrap svg { width: 28px; height: 28px; }
.uc-empty-title { font-size: 15px; font-weight: 600; margin-bottom: 4px; letter-spacing: -.02em; }
.uc-empty-subtitle { font-size: 12px; color: var(--uc-text-muted); margin-bottom: 20px; }
.uc-close-btn-alt {
	display: inline-flex; padding: 8px 20px;
	border: 1px solid var(--uc-border); border-radius: var(--uc-radius-xs);
	background: transparent; color: var(--uc-text); font-size: 12px;
	font-weight: 600; cursor: pointer; font-family: var(--uc-font);
	transition: all .15s ease;
}
.uc-close-btn-alt:hover { background: var(--uc-bg-subtle); }

/* ── Footer — always at bottom, never scrolls ── */
.uc-cart-footer { border-top: 1px solid var(--uc-border); flex-shrink: 0 !important; background: var(--uc-bg) !important; }

/* Coupon accordion */
.uc-coupon-section { border-bottom: 1px solid var(--uc-border); }
.uc-coupon-toggle {
	display: flex; align-items: center; gap: 6px;
	width: 100%; padding: 12px 20px;
	border: none; background: transparent;
	color: var(--uc-text-secondary); font-size: 12px; font-weight: 500;
	cursor: pointer; font-family: var(--uc-font);
	text-transform: none; letter-spacing: normal;
	transition: color .15s ease;
}
.uc-coupon-toggle:hover { color: var(--uc-text); }
.uc-coupon-toggle svg:first-child { width: 13px; height: 13px; flex-shrink: 0; }
.uc-coupon-chevron { margin-left: auto; transition: transform .25s var(--uc-ease); width: 12px; height: 12px; }
.uc-coupon-section.uc-coupon-open .uc-coupon-chevron { transform: rotate(180deg); }
.uc-coupon-form { padding: 0 20px 12px; }
.uc-coupon-input-wrap { display: flex; gap: 8px; }
.uc-coupon-input {
	flex: 1; padding: 8px 12px;
	border: 1px solid var(--uc-border); border-radius: var(--uc-radius-xs);
	font-size: 12px; color: var(--uc-text); background: var(--uc-bg);
	font-family: var(--uc-font); outline: none;
	transition: border-color .15s ease;
}
.uc-coupon-input:focus { border-color: var(--uc-primary); }
.uc-coupon-input::placeholder { color: var(--uc-text-muted); }
.uc-coupon-btn {
	padding: 9px 18px; border: none; border-radius: var(--uc-radius-xs);
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important;
	color: #fff !important; text-shadow: 0 1px 1px rgba(0,0,0,.1);
	font-size: 12px; font-weight: 700; cursor: pointer;
	font-family: var(--uc-font);
	white-space: nowrap;
	box-shadow: 0 2px 8px rgba(0,156,86,.3);
	position: relative; overflow: hidden;
	transition: box-shadow .25s ease, transform .25s ease;
}
.uc-coupon-btn::before {
	content: ''; position: absolute; top: 0; left: -120%;
	width: 80%; height: 100%; pointer-events: none;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.5) 50%, transparent 100%);
	transform: skewX(-20deg);
	transition: left .6s cubic-bezier(.32,.72,0,1);
}
.uc-coupon-btn:hover { box-shadow: 0 4px 14px rgba(0,156,86,.45); transform: translateY(-1px); }
.uc-coupon-btn:hover::before { left: 120%; }
/* Applied coupon row — slim badge left, discount right */
.uc-applied-coupons { padding: 0 20px; display: flex; flex-direction: column; gap: 6px; }
.uc-applied-coupons:empty { display: none; }
.uc-applied-coupon-row {
	display: flex !important; align-items: center !important; justify-content: space-between !important;
	padding: 8px 0 !important;
	border-bottom: 1px solid var(--uc-border);
	animation: uc-coupon-in .3s cubic-bezier(.32,.72,0,1);
	min-height: auto !important;
}
.uc-applied-coupon-row:last-child { border-bottom: none; }
@keyframes uc-coupon-in {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: translateY(0); }
}
.uc-coupon-tag,
.uc-side-cart .uc-coupon-tag {
	display: inline-flex !important; align-items: center !important; gap: 6px !important;
	padding: 4px 6px 4px 9px !important;
	background: linear-gradient(135deg, rgba(47,173,78,.12), rgba(47,173,78,.06)) !important;
	color: var(--uc-primary) !important;
	border: 1px solid rgba(47,173,78,.2) !important;
	border-radius: 100px !important;
	font-size: 12px !important; font-weight: 600 !important;
	letter-spacing: -.01em !important;
	line-height: 1 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	height: auto !important; min-height: auto !important;
}
.uc-coupon-tag-icon {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	color: var(--uc-primary) !important;
	width: 12px !important; height: 12px !important;
	flex-shrink: 0 !important;
}
.uc-coupon-tag-icon svg {
	width: 12px !important; height: 12px !important;
	min-width: 12px !important; min-height: 12px !important;
	display: block !important;
	fill: none !important; stroke: currentColor !important;
}
.uc-coupon-tag-code {
	font-family: var(--uc-font) !important;
	font-weight: 600 !important;
	font-size: 12px !important;
	line-height: 1 !important;
	color: var(--uc-primary) !important;
}
.uc-coupon-remove,
.uc-side-cart .uc-coupon-remove {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	width: 16px !important; height: 16px !important;
	min-width: 16px !important; min-height: 16px !important;
	max-width: 16px !important; max-height: 16px !important;
	padding: 0 !important; border: none !important;
	background: rgba(47,173,78,.18) !important;
	color: var(--uc-primary) !important;
	cursor: pointer !important;
	font-size: 11px !important; line-height: 1 !important;
	border-radius: 50% !important;
	transition: all .15s ease !important;
	margin: 0 0 0 2px !important;
	flex-shrink: 0 !important;
	box-shadow: none !important; text-shadow: none !important;
	font-family: var(--uc-font) !important;
	font-weight: 600 !important;
}
.uc-coupon-remove:hover { background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important; color: #fff !important; }
.uc-coupon-discount {
	font-size: 14px; font-weight: 700;
	color: var(--uc-text);
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.uc-coupon-discount::first-letter { color: var(--uc-primary); }

/* Totals */
.uc-totals { padding: 14px 20px 0; }
.uc-total-row { display: flex; justify-content: space-between; align-items: baseline; }
.uc-total-main { font-size: 14px; font-weight: 700; color: var(--uc-text); letter-spacing: -.02em; }
.uc-item-count-label { font-weight: 400; color: var(--uc-text-muted); font-size: 12px; margin-left: 4px; }
.uc-total-prices { display: flex; align-items: center; gap: 6px; }
.uc-regular-total { font-size: 12px; color: var(--uc-text-muted); text-decoration: line-through; font-weight: 400; }
.uc-savings-row { display: flex; justify-content: space-between; font-size: 12px; color: var(--uc-savings); font-weight: 600; margin-top: 4px; }
.uc-tax-note { font-size: 11px; color: var(--uc-text-muted); margin-top: 6px; line-height: 1.4; }

/* Checkout button — flat, confident, no glow */
.uc-checkout-btn {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	width: calc(100% - 40px); margin: 14px 20px 18px;
	padding: 14px 24px; border: none; border-radius: var(--uc-radius-sm);
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important;
	color: #fff !important; text-shadow: 0 1px 2px rgba(0,0,0,.12);
	font-size: 14px; font-weight: 700; cursor: pointer;
	font-family: var(--uc-font); text-decoration: none;
	letter-spacing: -.02em;
	box-shadow: 0 4px 14px rgba(0,156,86,.35), 0 1px 2px rgba(0,156,86,.2);
	position: relative; overflow: hidden;
	transition: box-shadow .25s ease, transform .25s ease;
}
.uc-checkout-btn::before {
	content: ''; position: absolute; top: 0; left: -120%;
	width: 80%; height: 100%; pointer-events: none;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.45) 50%, transparent 100%);
	transform: skewX(-20deg);
	transition: left .7s cubic-bezier(.32,.72,0,1);
}
.uc-checkout-btn:hover { box-shadow: 0 6px 20px rgba(0,156,86,.5), 0 2px 4px rgba(0,156,86,.25); transform: translateY(-1px); }
.uc-checkout-btn:hover::before { left: 120%; }
.uc-checkout-btn svg { width: 15px; height: 15px; flex-shrink: 0; position: relative; z-index: 1; }
.uc-checkout-btn span, .uc-checkout-btn { position: relative; }

/* ── Error Toast ── */
.uc-error-toast {
	position: absolute; bottom: 90px; left: 20px; right: 20px;
	padding: 10px 14px; background: rgba(220,38,38,.06);
	color: var(--uc-error); border: 1px solid rgba(220,38,38,.12);
	border-radius: var(--uc-radius-xs); font-size: 12px; font-weight: 500;
	font-family: var(--uc-font); z-index: 1; display: none;
	animation: uc-toast-in .25s ease;
}
@keyframes uc-toast-in {
	from { transform: translateY(6px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

/* ── Upsells ── */
.uc-upsells {
	padding: 16px 20px 20px !important;
	border-top: 1px solid var(--uc-border) !important;
}
.uc-upsells-title {
	font-size: 12px !important;
	font-weight: 700 !important;
	margin: 0 0 12px !important;
	color: var(--uc-text) !important;
	letter-spacing: -.01em !important;
	text-transform: none !important;
}
.uc-upsells-grid {
	display: flex !important;
	gap: 12px !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory !important;
	-webkit-overflow-scrolling: touch !important;
	padding-bottom: 4px !important;
}
.uc-upsells-grid::-webkit-scrollbar { display: none !important; }

/* Cards — fixed width + internal flex column so every card is the same
   height regardless of name length. */
.uc-side-cart .uc-upsell-card {
	flex: 0 0 140px !important;
	width: 140px !important;
	max-width: 140px !important;
	scroll-snap-align: start !important;
	text-align: center !important;
	border: 1px solid var(--uc-border) !important;
	border-radius: 12px !important;
	padding: 10px 10px 12px !important;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
	display: flex !important;
	flex-direction: column !important;
	background: var(--uc-bg) !important;
	overflow: hidden !important;
	box-shadow: 0 1px 2px rgba(0,0,0,.04) !important;
}
.uc-side-cart .uc-upsell-card:hover {
	border-color: rgba(0,156,86,.4) !important;
	box-shadow: 0 6px 18px rgba(0,156,86,.12), 0 1px 3px rgba(0,0,0,.06) !important;
	transform: translateY(-1px) !important;
}

/* Image — enforced 1:1 ratio. Use both aspect-ratio AND explicit height
   fallback for browsers that ignore aspect-ratio under theme resets. */
.uc-side-cart .uc-upsell-card .uc-upsell-image,
.uc-side-cart .uc-upsell-card img.uc-upsell-image,
img.uc-upsell-image {
	display: block !important;
	width: 100% !important;
	height: 120px !important;
	max-height: 120px !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	object-position: center !important;
	border-radius: 8px !important;
	margin: 0 0 10px !important;
	background: var(--uc-bg-subtle) !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

/* Name — 2 lines max, uniform footprint so card heights match. */
.uc-side-cart .uc-upsell-name {
	font-size: 11px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	color: var(--uc-text) !important;
	margin: 0 0 4px !important;
	min-height: calc(1.35em * 2) !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: normal !important;
}
.uc-side-cart .uc-upsell-price {
	font-size: 12px !important;
	font-weight: 700 !important;
	color: var(--uc-text) !important;
	margin: 0 0 10px !important;
	line-height: 1.2 !important;
}
.uc-side-cart .uc-upsell-price del,
.uc-side-cart .uc-upsell-price .woocommerce-Price-amount { font-weight: 700 !important; }

/* Push button to the bottom of the card regardless of name length. */
.uc-side-cart .uc-upsell-card .uc-upsell-add {
	margin-top: auto !important;
}

/* Pill-shaped CTA with the brand gradient + shine, matching the main cart CTA. */
.uc-side-cart .uc-upsell-add,
button.uc-upsell-add {
	display: block !important;
	width: 100% !important;
	padding: 9px 12px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important;
	color: #ffffff !important;
	text-shadow: none !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	font-family: var(--uc-font) !important;
	box-shadow: 0 4px 12px rgba(0,156,86,.28), 0 1px 2px rgba(0,156,86,.15) !important;
	position: relative !important;
	overflow: hidden !important;
	transition: box-shadow .25s ease, transform .25s ease, background .2s ease !important;
}
.uc-side-cart .uc-upsell-add::before,
button.uc-upsell-add::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: -120% !important;
	width: 80% !important;
	height: 100% !important;
	pointer-events: none !important;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.55) 50%, transparent 100%) !important;
	transform: skewX(-20deg) !important;
	transition: left .6s cubic-bezier(.32,.72,0,1) !important;
}
.uc-side-cart .uc-upsell-add:hover,
button.uc-upsell-add:hover {
	background: linear-gradient(135deg, #96EF42 0%, #00B665 100%) !important;
	box-shadow: 0 6px 18px rgba(0,156,86,.4), 0 2px 4px rgba(0,156,86,.22) !important;
	transform: translateY(-1px) !important;
}
.uc-side-cart .uc-upsell-add:hover::before,
button.uc-upsell-add:hover::before { left: 120% !important; }
.uc-side-cart .uc-upsell-add:active,
button.uc-upsell-add:active { transform: translateY(0) scale(.98) !important; }

/* ── Reward Gift Line ── */
.uc-cart-item--gift {
	position: relative !important;
	background: linear-gradient(135deg, rgba(130,232,43,.08), rgba(0,156,86,.06)) !important;
	border: 1px dashed rgba(0,156,86,.35) !important;
	border-radius: 10px !important;
	padding: 10px !important;
	margin: 6px 0 !important;
}
.uc-cart-item--gift .uc-item-image {
	opacity: 1 !important;
	border-radius: 8px !important;
}
.uc-cart-item--gift .uc-item-name {
	font-weight: 700 !important;
	color: #009C56 !important;
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
}
.uc-gift-icon {
	font-size: 16px !important;
	line-height: 1 !important;
}
.uc-gift-badge {
	display: inline-block !important;
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	letter-spacing: .04em !important;
	padding: 3px 10px !important;
	border-radius: 12px !important;
	box-shadow: 0 2px 6px rgba(0,156,86,.3) !important;
	text-transform: uppercase !important;
}
.uc-gift-note {
	display: block !important;
	font-size: 11px !important;
	color: var(--uc-text-secondary, #6b7280) !important;
	margin-top: 4px !important;
	font-style: italic !important;
}

/* ── Saved Items ── */
.uc-saved-item-oos { opacity: .4; }
.uc-oos-label { font-size: 10px; color: var(--uc-error); font-weight: 600; }

/* ── Shortcode Cart Icon — [univercart_cart_icon] — Caddy-style mobile ── */
.uc-sc-wrap {
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	font-family: var(--uc-font, 'Inter', -apple-system, sans-serif) !important;
	vertical-align: middle !important;
	line-height: 1 !important;
	text-decoration: none !important;
}
.uc-sc-icon,
.uc-side-cart .uc-sc-icon,
button.uc-sc-icon {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--uc-sc-size, 56px) !important;
	height: var(--uc-sc-size, 56px) !important;
	min-width: var(--uc-sc-size, 56px) !important;
	min-height: var(--uc-sc-size, 56px) !important;
	max-width: var(--uc-sc-size, 56px) !important;
	max-height: var(--uc-sc-size, 56px) !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--uc-sc-bg, #000) !important;
	color: var(--uc-sc-color, #fff) !important;
	cursor: pointer !important;
	box-shadow: 0 6px 18px rgba(0,0,0,.22), 0 1px 3px rgba(0,0,0,.12) !important;
	text-shadow: none !important;
	transition: transform .25s cubic-bezier(.32,.72,0,1), box-shadow .25s ease, background .2s ease !important;
	flex-shrink: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	overflow: visible !important;
	-webkit-tap-highlight-color: transparent !important;
	outline: none !important;
	text-decoration: none !important;
}
/* Gradient variant — matches the floating button exactly */
.uc-sc-icon--gradient,
button.uc-sc-icon--gradient,
.uc-side-cart .uc-sc-icon--gradient {
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important;
	color: #ffffff !important;
	box-shadow: 0 6px 20px rgba(0,156,86,.4), 0 2px 6px rgba(0,156,86,.25) !important;
}
.uc-sc-icon--gradient:hover {
	box-shadow: 0 10px 26px rgba(0,156,86,.5), 0 3px 8px rgba(0,156,86,.3) !important;
}
.uc-sc-icon:hover {
	transform: translateY(-1px) scale(1.04) !important;
	box-shadow: 0 10px 26px rgba(0,0,0,.28), 0 2px 6px rgba(0,0,0,.14) !important;
}
.uc-sc-icon:active {
	transform: scale(.96) !important;
}
.uc-sc-icon svg,
.uc-sc-icon > svg {
	width: calc(var(--uc-sc-size, 56px) * 0.5) !important;
	height: calc(var(--uc-sc-size, 56px) * 0.5) !important;
	min-width: calc(var(--uc-sc-size, 56px) * 0.5) !important;
	min-height: calc(var(--uc-sc-size, 56px) * 0.5) !important;
	display: block !important;
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 1.8 !important;
	pointer-events: none !important;
	color: inherit !important;
}
/* Shortcode image icon (PNG) — forced white via filter so it's visible on the gradient */
.uc-sc-icon img.uc-sc-img,
.uc-sc-icon > img {
	width: calc(var(--uc-sc-size, 56px) * 0.62) !important;
	height: calc(var(--uc-sc-size, 56px) * 0.62) !important;
	min-width: calc(var(--uc-sc-size, 56px) * 0.62) !important;
	min-height: calc(var(--uc-sc-size, 56px) * 0.62) !important;
	max-width: calc(var(--uc-sc-size, 56px) * 0.62) !important;
	max-height: calc(var(--uc-sc-size, 56px) * 0.62) !important;
	display: block !important;
	object-fit: contain !important;
	pointer-events: none !important;
	filter: brightness(0) invert(1) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}
.uc-sc-badge {
	position: absolute !important;
	top: -3px !important;
	right: -3px !important;
	min-width: 20px !important;
	height: 20px !important;
	padding: 0 6px !important;
	border-radius: 10px !important;
	background: #ef4444 !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	font-family: var(--uc-font, 'Inter', sans-serif) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
	border: 2px solid #ffffff !important;
	box-shadow: 0 2px 6px rgba(239,68,68,.35) !important;
	box-sizing: border-box !important;
	letter-spacing: 0 !important;
}
.uc-sc-label {
	display: block !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--uc-sc-bg, #000) !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center !important;
	letter-spacing: -.01em !important;
	line-height: 1.2 !important;
	text-transform: lowercase !important;
}

@media (max-width: 768px) {
	.uc-sc-wrap {
		display: flex !important;
		width: 100% !important;
		justify-content: center !important;
		align-items: center !important;
		margin: 0 auto !important;
		text-align: center !important;
	}
	.uc-sc-icon,
	button.uc-sc-icon {
		width: var(--uc-sc-size-mobile, 48px) !important;
		height: var(--uc-sc-size-mobile, 48px) !important;
		min-width: var(--uc-sc-size-mobile, 48px) !important;
		min-height: var(--uc-sc-size-mobile, 48px) !important;
		max-width: var(--uc-sc-size-mobile, 48px) !important;
		max-height: var(--uc-sc-size-mobile, 48px) !important;
		margin: 0 auto !important;
	}
	.uc-sc-icon svg,
	.uc-sc-icon > svg {
		width: calc(var(--uc-sc-size-mobile, 48px) * 0.5) !important;
		height: calc(var(--uc-sc-size-mobile, 48px) * 0.5) !important;
		min-width: calc(var(--uc-sc-size-mobile, 48px) * 0.5) !important;
		min-height: calc(var(--uc-sc-size-mobile, 48px) * 0.5) !important;
	}
	.uc-sc-icon img.uc-sc-img,
	.uc-sc-icon > img {
		width: calc(var(--uc-sc-size-mobile, 48px) * 0.62) !important;
		height: calc(var(--uc-sc-size-mobile, 48px) * 0.62) !important;
		min-width: calc(var(--uc-sc-size-mobile, 48px) * 0.62) !important;
		min-height: calc(var(--uc-sc-size-mobile, 48px) * 0.62) !important;
		max-width: calc(var(--uc-sc-size-mobile, 48px) * 0.62) !important;
		max-height: calc(var(--uc-sc-size-mobile, 48px) * 0.62) !important;
	}
	.uc-sc-label {
		font-size: 11px !important;
	}
}

/* ── Floating Button — GLOBALLY HIDDEN. Merchants use [univercart_cart_icon] only. ── */
button.uc-floating-btn,
.uc-floating-btn,
.uc-floating-btn.uc-pos-bottom-right,
.uc-floating-btn.uc-pos-bottom-left,
.uc-floating-btn.uc-pos-top-right,
.uc-floating-btn.uc-pos-top-left {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}
/* Original floating button styles kept below for backward-compat but never rendered. */
.uc-floating-btn {
	position: fixed !important; z-index: 999997 !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	width: 56px !important; height: 56px !important; border: none !important; border-radius: 50% !important;
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%) !important;
	color: #fff !important;
	box-shadow: 0 6px 20px rgba(0,156,86,.4), 0 2px 6px rgba(0,156,86,.25) !important;
	cursor: pointer !important;
	transition: box-shadow .3s var(--uc-ease), transform .3s var(--uc-ease) !important;
	padding: 0 !important; margin: 0 !important;
	min-width: auto !important; min-height: auto !important;
	line-height: 1 !important; text-decoration: none !important;
	overflow: hidden !important;
}
.uc-floating-btn::before {
	content: ''; position: absolute; top: 0; left: -120%;
	width: 80%; height: 100%; pointer-events: none;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.5) 50%, transparent 100%);
	transform: skewX(-20deg);
	transition: left .7s cubic-bezier(.32,.72,0,1);
}
.uc-floating-btn:hover {
	transform: scale(1.08) !important;
	box-shadow: 0 10px 32px rgba(0,156,86,.55), 0 3px 10px rgba(0,156,86,.35) !important;
}
.uc-floating-btn:hover::before { left: 120%; }
.uc-floating-btn svg { width: 22px !important; height: 22px !important; position: relative; z-index: 1; }
.uc-pos-bottom-right { bottom: 20px !important; right: 20px !important; }
.uc-pos-bottom-left { bottom: 20px !important; left: 20px !important; }
.uc-floating-count {
	position: absolute; top: -3px; right: -3px;
	min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 9px; background: var(--uc-error); color: #fff;
	font-size: 10px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--uc-font);
}

/* ── Offers ── */
.uc-offers-section { padding: 10px 20px; }
.uc-offers-title { font-size: 11px; font-weight: 600; color: var(--uc-text-muted); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 8px; }
.uc-offer-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; background: var(--uc-bg-subtle); border-radius: 6px; margin-bottom: 6px; }
.uc-offer-code { font-size: 13px; font-weight: 600; color: var(--uc-text); letter-spacing: .02em; }
.uc-offer-code small { display: block; font-size: 11px; font-weight: 400; color: var(--uc-text-muted); margin-top: 2px; letter-spacing: normal; }
.uc-offer-apply { padding: 5px 14px; border: 1px solid var(--uc-primary); border-radius: 4px; background: transparent; color: var(--uc-primary); font-size: 11px; font-weight: 600; cursor: pointer; font-family: var(--uc-font); transition: all .15s ease; }
.uc-offer-apply:hover { background: linear-gradient(135deg, #82E82B 0%, #009C56 100%); color: #fff; border-color: transparent; }
.uc-offer-applied { opacity: .6; }
.uc-offer-badge { font-size: 11px; font-weight: 600; color: var(--uc-success); }

/* ── Announcement Bar ── */
.uc-announcement {
	padding: 10px 20px; font-size: 12px; font-weight: 500;
	text-align: center; line-height: 1.4; flex-shrink: 0;
}
.uc-announcement a { color: inherit; text-decoration: underline; }

/* ── Welcome Message ── */
.uc-welcome {
	padding: 10px 20px; font-size: 13px; font-weight: 500;
	color: var(--uc-text-secondary); border-bottom: 1px solid var(--uc-border);
	flex-shrink: 0;
}

/* ── Multi-Step Rewards Meter ── */
.uc-rewards-meter {
	padding: 18px 20px;
	border-bottom: 1px solid var(--uc-border);
	flex-shrink: 0;
	background: var(--uc-bg);
}
.uc-rewards-track {
	display: flex; align-items: center; gap: 0;
	margin-bottom: 12px;
}
.uc-rewards-segment {
	flex: 1; height: 10px;
	background: #f0f1f3;
	border-radius: 5px;
	overflow: hidden;
	position: relative;
	min-width: 20px;
}
.uc-rewards-fill {
	height: 100%; width: 0;
	background: repeating-linear-gradient(
		-45deg,
		var(--uc-primary),
		var(--uc-primary) 8px,
		rgba(47,173,78,.65) 8px,
		rgba(47,173,78,.65) 16px
	);
	background-size: 22px 22px;
	border-radius: 5px;
	transition: width .8s cubic-bezier(.32,.72,0,1);
	animation: uc-stripe-flow 1.2s linear infinite;
	box-shadow: 0 0 12px rgba(47,173,78,.25);
}
@keyframes uc-stripe-flow {
	0% { background-position: 0 0; }
	100% { background-position: 22px 0; }
}
.uc-rewards-icon {
	display: flex; align-items: center; justify-content: center;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: #f0f1f3;
	border: 2px solid #fff;
	color: #b0b5bd;
	margin: 0 -2px;
	flex-shrink: 0;
	box-shadow: 0 1px 3px rgba(0,0,0,.06);
	transition: all .35s cubic-bezier(.32,.72,0,1);
	z-index: 1;
}
.uc-rewards-icon svg { width: 16px; height: 16px; }
.uc-rewards-icon.uc-icon-reached {
	background: linear-gradient(135deg, #82E82B 0%, #009C56 100%);
	color: #fff;
	box-shadow: 0 2px 12px rgba(0,156,86,.45);
	transform: scale(1.08);
}
.uc-rewards-text {
	font-size: 13px;
	color: var(--uc-text-secondary);
	text-align: center;
	line-height: 1.5;
	margin: 0;
	letter-spacing: -.01em;
}
.uc-rewards-text strong {
	color: var(--uc-text);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.uc-rewards-done {
	color: var(--uc-success) !important;
	font-weight: 600;
}

body.uc-cart-open { overflow: hidden; }
