/**
 * Woo Essential Upsell — storefront styles.
 *
 * Scoped under .weu. Uses CSS custom properties so a theme can re-skin the whole
 * widget by overriding a handful of variables. Three style templates are
 * provided: card (default), minimal, and compact.
 */

.weu-offer {
	--weu-radius: 14px;
	--weu-radius-sm: 10px;
	--weu-border: 1px solid rgba( 17, 24, 39, 0.1 );
	--weu-bg: #fff;
	--weu-bg-soft: rgba( 17, 24, 39, 0.025 );
	--weu-text: inherit;
	--weu-muted: rgba( 17, 24, 39, 0.55 );
	--weu-accent: #2563eb;
	--weu-accent-contrast: #fff;
	--weu-accent-hover: #1d4ed8;
	--weu-hover-contrast: var( --weu-accent-contrast );
	/* "Added to cart" state — independent of the discount/save colour so a red
	   savings palette never turns the success state red. */
	--weu-added-bg: #047857;
	--weu-added-text: #fff;
	--weu-save: #047857;
	--weu-save-bg: rgba( 4, 120, 87, 0.1 );
	--weu-shadow: 0 1px 2px rgba( 17, 24, 39, 0.06 ), 0 8px 24px rgba( 17, 24, 39, 0.06 );
	--weu-gap: 16px;

	/* Design tokens (overridable inline via the editor's Design tab). */
	--weu-border-width: 1px;
	--weu-border-color: rgba( 17, 24, 39, 0.1 );
	--weu-pad-top: 20px;
	--weu-pad-bottom: 20px;
	--weu-margin-top: 24px;
	--weu-margin-bottom: 24px;
	--weu-title-size: 1.05rem;
	--weu-title-color: inherit;
	--weu-product-title-size: 0.95rem;
	--weu-product-title-color: inherit;
	--weu-price-size: 1rem;
	--weu-price-color: inherit;
	--weu-variant-color: rgba( 17, 24, 39, 0.55 );
	--weu-button-size: 0.9rem;
	--weu-button-radius: 10px;
	--weu-checkbox: var( --weu-accent );
	--weu-checkbox-border: var( --weu-accent );
	--weu-check-icon: #fff;

	box-sizing: border-box;
	margin: var( --weu-margin-top ) 0 var( --weu-margin-bottom );
	padding: var( --weu-pad-top ) 20px var( --weu-pad-bottom );
	border: var( --weu-border-width ) solid var( --weu-border-color );
	border-radius: var( --weu-radius );
	background: var( --weu-bg );
	box-shadow: var( --weu-shadow );
	color: var( --weu-text );
	font-size: 15px;
	line-height: 1.45;
}

.weu-offer *,
.weu-offer *::before,
.weu-offer *::after {
	box-sizing: border-box;
}

/* ── Header ─────────────────────────────────────────────────────────────── */
.weu-offer__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.weu-offer__title {
	margin: 0;
	font-size: var( --weu-title-size );
	color: var( --weu-title-color );
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.weu-offer__subtitle {
	margin: 4px 0 0;
	color: var( --weu-muted );
	font-size: 0.875rem;
}

.weu-offer__badge {
	flex: 0 0 auto;
	padding: 5px 10px;
	border-radius: 999px;
	background: var( --weu-save-bg );
	color: var( --weu-save );
	font-size: 0.75rem;
	font-weight: 700;
	white-space: nowrap;
}

/* ── Products ───────────────────────────────────────────────────────────── */
.weu-offer__products {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* The product line is ALWAYS one horizontal row — image · title · price · add
   button — on every surface (product page, cart, mini-cart drawer) and every
   viewport. Structural properties are hardened with !important because theme
   and drawer CSS (e.g. `.widget_shopping_cart .button { display:block;
   width:100% }`) otherwise wins the cascade and stacks the row. */
.weu .weu-product {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	float: none !important;
	width: auto;
	gap: var( --weu-gap );
	padding: 12px;
	border: var( --weu-border );
	border-radius: var( --weu-radius-sm );
	background: var( --weu-bg );
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.weu-product:hover {
	border-color: rgba( 37, 99, 235, 0.35 );
	box-shadow: 0 2px 10px rgba( 37, 99, 235, 0.08 );
}

.weu .weu-product__media {
	position: relative;
	flex: 0 0 auto !important;
	float: none !important;
	margin: 0 !important;
}

.weu .weu-product__media img {
	display: block !important;
	float: none !important;
	width: 72px;
	height: 72px;
	max-width: none !important;
	margin: 0 !important;
	object-fit: cover;
	border-radius: var( --weu-radius-sm );
	background: var( --weu-bg-soft );
}

.weu-product__save-pill {
	position: absolute;
	top: -8px;
	left: -8px;
	padding: 2px 8px;
	border-radius: 999px;
	background: var( --weu-save );
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	box-shadow: 0 2px 6px rgba( 4, 120, 87, 0.35 );
}

.weu .weu-product__details {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 4px;
	margin: 0 !important;
	text-align: left;
}

.weu-product__name {
	font-weight: 600;
	font-size: var( --weu-product-title-size );
	color: var( --weu-product-title-color );
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-height: 1.3;
}

.weu-product__name a {
	color: inherit;
	text-decoration: none;
}

.weu-product__name a:hover {
	text-decoration: underline;
}

.weu-product__price {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
}

.weu-price--now {
	font-weight: 700;
	font-size: var( --weu-price-size );
	text-decoration: none;
	color: var( --weu-price-color );
}

.weu-price--regular {
	color: var( --weu-variant-color );
	font-size: 0.85rem;
	text-decoration: line-through;
}

.weu-product__qty {
	color: var( --weu-muted );
	font-size: 0.8rem;
}

.weu-badge--shipping {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	width: fit-content;
	margin-top: 2px;
	padding: 3px 9px;
	border-radius: 999px;
	background: var( --weu-save-bg );
	color: var( --weu-save );
	font-size: 0.72rem;
	font-weight: 600;
}

.weu .weu-product__action {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 0 !important;
}

/* Per-line CTA (Add button or "Select options" link): keep it an inline pill,
   never the theme's full-width block button. (The combined bundle/FBT CTA
   below is intentionally exempt.) */
.weu .weu-product__action .weu-btn {
	display: inline-flex !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
	white-space: nowrap;
	text-decoration: none !important;
}

/* ── Button ─────────────────────────────────────────────────────────────── */
.weu-btn,
.weu-offer__add {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 18px;
	border: 0;
	border-radius: var( --weu-button-radius );
	background: var( --weu-accent );
	color: var( --weu-accent-contrast );
	font-size: var( --weu-button-size );
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.05s ease, box-shadow 0.15s ease;
	box-shadow: 0 1px 2px rgba( 37, 99, 235, 0.25 );
}

.weu-btn:hover,
.weu-offer__add:hover {
	background: var( --weu-accent-hover );
	color: var( --weu-hover-contrast );
}

.weu-offer__add:active {
	transform: translateY( 1px );
}

.weu-offer__add.weu-is-loading {
	opacity: 0.8;
	cursor: progress;
}

.weu-offer__add.weu-is-added {
	background: var( --weu-added-bg );
	color: var( --weu-added-text );
	pointer-events: none;
}

.weu-btn__spinner {
	display: none;
}

.weu-offer__add.weu-is-loading .weu-btn__spinner {
	display: inline-block;
	width: 0.85em;
	height: 0.85em;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: weu-spin 0.6s linear infinite;
}

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

/* ── Bundle footer ──────────────────────────────────────────────────────── */
.weu-offer__bundle-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: var( --weu-border );
}

.weu-offer__bundle-label {
	display: block;
	color: var( --weu-muted );
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.weu-offer__bundle-prices {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
}

.weu-offer__bundle-prices .weu-price--now {
	font-size: 1.25rem;
}

.weu-offer__error {
	margin: 12px 0 0;
	color: #b32d2e;
	font-size: 0.875rem;
}

.weu-offer__error[hidden] { display: none; }

/* ── FBT selection checkbox ─────────────────────────────────────────────── */
.weu-product__select {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	cursor: pointer;
}

.weu-product__check {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.weu-product__check-box {
	display: inline-block;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	border: 2px solid var( --weu-checkbox-border );
	background: #fff;
	position: relative;
	transition: background 0.12s ease, border-color 0.12s ease;
}

.weu-product__check:checked + .weu-product__check-box {
	background: var( --weu-checkbox );
	border-color: var( --weu-checkbox );
}

.weu-product__check:checked + .weu-product__check-box::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid var( --weu-check-icon );
	border-width: 0 2px 2px 0;
	transform: rotate( 45deg );
}

.weu-product__check:focus-visible + .weu-product__check-box {
	outline: 2px solid var( --weu-accent );
	outline-offset: 2px;
}

.weu-product--selectable.weu-product--deselected {
	opacity: 0.55;
}

/* ── Quantity picker ────────────────────────────────────────────────────── */
.weu-product__qty-input {
	flex: 0 0 auto;
	width: 56px;
	padding: 6px 8px;
	border: 1px solid var( --weu-border-color );
	border-radius: 8px;
	text-align: center;
	font-size: 0.9rem;
}

/* ── FBT claim footer ───────────────────────────────────────────────────── */
.weu-offer--fbt .weu-offer__bundle-footer {
	display: block;
	border-top: 0;
	padding-top: 12px;
}

.weu-offer--fbt .weu-offer__add--bundle {
	width: 100%;
	padding: 14px 18px;
	font-size: 1rem;
}

/* ── Countdown timer ────────────────────────────────────────────────────── */
.weu-countdown {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0 0 14px;
	padding: 8px 12px;
	border-radius: var( --weu-radius-sm );
	background: rgba( 250, 73, 61, 0.08 );
	color: #c0392b;
	font-size: 0.85rem;
	font-weight: 600;
}

.weu-countdown__time {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: 0.02em;
}

/* ── Generic preview placeholder image (admin live preview) ─────────────── */
.weu-sample-img {
	display: block;
	width: 72px;
	height: 72px;
	border-radius: var( --weu-radius-sm );
	background:
		linear-gradient( 135deg, rgba( 37, 99, 235, 0.18 ), rgba( 37, 99, 235, 0.06 ) );
	position: relative;
}
.weu-sample-img::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 26px;
	height: 26px;
	border-radius: 6px;
	background: rgba( 37, 99, 235, 0.25 );
}
.weu-style--compact .weu-sample-img { width: 52px; height: 52px; }

/* ── Mini-cart / drawer: compact one-product carousel ───────────────────── */
/* Side-cart drawers ship aggressive widget CSS (full-width block buttons,
   floated thumbnails, list resets), so every structural property here is
   !important: the row must stay image · title · price · add button. */
.weu.weu-placement--mini-cart { margin: 10px 0; }

.weu.weu-placement--mini-cart .weu-offer {
	margin: 0 !important;
	padding: 10px 10px 8px;
	border-radius: 10px;
	box-shadow: none;
	font-size: 13px;
	line-height: 1.35;
}

.weu.weu-placement--mini-cart .weu-offer__header { margin-bottom: 6px !important; }
.weu.weu-placement--mini-cart .weu-offer__title { font-size: 0.85rem !important; margin: 0 !important; }
.weu.weu-placement--mini-cart .weu-offer__subtitle { display: none !important; }
.weu.weu-placement--mini-cart .weu-offer__badge { padding: 2px 6px; font-size: 0.62rem; }

/* Products become a horizontal track; one product visible at a time. */
.weu.weu-placement--mini-cart .weu-offer__products {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	overflow: hidden;
	transition: transform 0.25s ease;
}

.weu.weu-placement--mini-cart .weu-product {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	flex: 0 0 100% !important;
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 6px !important;
	border: 0 !important;
	gap: 8px;
	list-style: none !important;
}

.weu.weu-placement--mini-cart .weu-product:hover { box-shadow: none; border: 0 !important; }

.weu.weu-placement--mini-cart .weu-product__media {
	flex: 0 0 auto !important;
	float: none !important;
	margin: 0 !important;
	width: auto !important;
}

.weu.weu-placement--mini-cart .weu-product__media a {
	display: block !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
}

.weu.weu-placement--mini-cart .weu-product__media img,
.weu.weu-placement--mini-cart .weu-sample-img {
	width: 44px !important;
	height: 44px !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
}

.weu.weu-placement--mini-cart .weu-product__details {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 2px;
	margin: 0 !important;
	text-align: left !important;
}

/* Clamp long names to two lines so each slide stays short. */
.weu.weu-placement--mini-cart .weu-product__name {
	display: -webkit-box !important;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.8rem !important;
	margin: 0 !important;
}

.weu.weu-placement--mini-cart .weu-product__name a {
	display: inline !important;
	font-size: inherit !important;
}

.weu.weu-placement--mini-cart .weu-product__price {
	display: inline-flex !important;
	align-items: baseline !important;
	flex-wrap: wrap !important;
	gap: 6px;
	margin: 0 !important;
}

.weu.weu-placement--mini-cart .weu-price--now { font-size: 0.85rem !important; }
.weu.weu-placement--mini-cart .weu-price--regular { font-size: 0.72rem !important; }
.weu.weu-placement--mini-cart .weu-product__save-pill { display: none !important; }
.weu.weu-placement--mini-cart .weu-badge--shipping { display: none !important; }
.weu.weu-placement--mini-cart .weu-product__qty-input { display: none !important; }

.weu.weu-placement--mini-cart .weu-product__action {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 0 !important;
}

.weu.weu-placement--mini-cart .weu-product__action .weu-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 6px 12px !important;
	min-height: 0 !important;
	height: auto !important;
	font-size: 0.75rem !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	border: 0 !important;
	border-radius: var( --weu-button-radius ) !important;
	background: var( --weu-accent ) !important;
	color: var( --weu-accent-contrast ) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-decoration: none !important;
}

.weu.weu-placement--mini-cart .weu-product__action .weu-btn:hover {
	background: var( --weu-accent-hover ) !important;
	color: var( --weu-hover-contrast ) !important;
}

.weu.weu-placement--mini-cart .weu-offer__add.weu-is-added {
	background: var( --weu-added-bg ) !important;
	color: var( --weu-added-text ) !important;
}

/* Static clip window the JS wraps around the moving track. The track itself
   must NOT clip: overflow:hidden on a transformed element travels with the
   transform and clips every slide after the first. The track keeps
   overflow:hidden in the rule above only as a no-JS fallback; setupCarousel()
   moves the clip here and sets the track's overflow visible inline. */
.weu .weu-carousel__viewport {
	overflow: hidden;
	width: 100%;
}

/* Carousel nav (injected by JS). Hard resets so theme button styles can't bloat
   the arrows/dots into large squares. */
.weu .weu-carousel__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 6px 0 0;
	min-height: 0;
}

.weu .weu-carousel__btn {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba( 17, 24, 39, 0.18 ) !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: inherit !important;
	font-size: 14px !important;
	line-height: 1 !important;
	box-shadow: none !important;
	cursor: pointer !important;
}

.weu .weu-carousel__btn:hover { border-color: var( --weu-accent ) !important; color: var( --weu-accent ) !important; }

.weu .weu-carousel__dots {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.weu .weu-carousel__dot {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	flex: 0 0 auto !important;
	width: 7px !important;
	height: 7px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba( 17, 24, 39, 0.22 ) !important;
	box-shadow: none !important;
	cursor: pointer !important;
}

.weu .weu-carousel__dot.is-active { background: var( --weu-accent ) !important; }

/* ── Layout: grid ───────────────────────────────────────────────────────── */
/* Vertical "card" tiles on wide screens only. Mini-cart offers are excluded
   (the compact row always wins there), and the responsive section at the
   bottom collapses grid back to horizontal rows on narrow viewports. These
   rules sit after the hardened base row so their !important wins here. */
.weu-layout--grid:not( .weu-offer--mini ) .weu-offer__products {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 200px, 1fr ) );
}

.weu.weu-layout--grid:not( .weu-offer--mini ) .weu-product {
	flex-direction: column !important;
	align-items: stretch !important;
	text-align: center;
}

.weu-layout--grid:not( .weu-offer--mini ) .weu-product__media {
	align-self: center;
	width: 100%;
}

.weu.weu-layout--grid:not( .weu-offer--mini ) .weu-product__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
}

.weu-layout--grid:not( .weu-offer--mini ) .weu-product__details {
	text-align: center;
}

.weu-layout--grid:not( .weu-offer--mini ) .weu-product__price {
	justify-content: center;
}

.weu.weu-layout--grid:not( .weu-offer--mini ) .weu-product__action,
.weu.weu-layout--grid:not( .weu-offer--mini ) .weu-product__action .weu-btn {
	width: 100% !important;
}

/* ── Style: minimal (flat, borderless rows) ─────────────────────────────── */
.weu-style--minimal {
	padding: 4px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.weu-style--minimal .weu-product {
	border: 0;
	border-bottom: var( --weu-border );
	border-radius: 0;
	background: transparent;
	padding: 12px 0;
}

.weu-style--minimal .weu-product:last-child {
	border-bottom: 0;
}

.weu-style--minimal .weu-product:hover {
	box-shadow: none;
	border-color: rgba( 17, 24, 39, 0.1 );
}

.weu-style--minimal .weu-btn {
	background: transparent;
	border: 1.5px solid var( --weu-accent );
	color: var( --weu-accent );
	box-shadow: none;
}

.weu-style--minimal .weu-btn:hover {
	background: var( --weu-accent );
	color: var( --weu-accent-contrast );
}

/* ── Style: compact (dense, smaller) ────────────────────────────────────── */
.weu-style--compact {
	padding: 14px;
	--weu-gap: 12px;
}

.weu-style--compact .weu-offer__header {
	margin-bottom: 10px;
}

.weu-style--compact .weu-product {
	padding: 8px;
}

.weu-style--compact .weu-product__media img {
	width: 52px;
	height: 52px;
}

.weu-style--compact .weu-btn {
	padding: 8px 14px;
	font-size: 0.85rem;
}

/* ── Block (Cart/Checkout) variant ──────────────────────────────────────── */
.weu-block-upsells {
	margin-top: 16px;
}

.weu-block-offer {
	padding: 16px;
	border: 1px solid rgba( 17, 24, 39, 0.1 );
	border-radius: 12px;
	margin-bottom: 12px;
}

.weu-block-offer__title {
	margin: 0 0 4px;
	font-size: 1rem;
	font-weight: 700;
}

.weu-block-offer__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 10px;
}

.weu-block-product {
	display: flex;
	align-items: center;
	gap: 10px;
}

.weu-block-product img {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 8px;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media ( max-width: 640px ) {
	/* Mobile mirrors desktop: every product line stays ONE horizontal row —
	   image · title · price · Add button. Shrink, never stack. The mini-cart
	   (.weu-offer--mini) is excluded: its carousel rules above already handle
	   the compact row. */

	/* Grid/"Card" layout collapses back to horizontal rows on phones. */
	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-offer__products {
		display: flex !important;
		grid-template-columns: none !important;
		flex-direction: column !important;
		gap: 12px;
	}

	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product {
		flex-direction: row !important;
		align-items: center !important;
		text-align: left;
	}

	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product__media {
		width: auto;
		align-self: center;
	}

	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product__media img {
		width: 56px;
		height: 56px;
		aspect-ratio: auto;
	}

	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product__details {
		text-align: left;
	}

	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product__price {
		justify-content: flex-start;
	}

	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product__action,
	.weu-offer:not( .weu-offer--mini ).weu-layout--grid .weu-product__action .weu-btn {
		width: auto !important;
	}

	/* All layouts: tighten the row so the four pieces fit side by side. */
	.weu-offer:not( .weu-offer--mini ) .weu-product {
		gap: 10px;
		padding: 10px;
	}

	.weu-offer:not( .weu-offer--mini ) .weu-product__media img {
		width: 56px;
		height: 56px;
	}

	.weu-offer:not( .weu-offer--mini ) .weu-product__action .weu-btn {
		padding: 8px 12px;
		font-size: 0.8rem;
		white-space: nowrap;
	}

	/* The FBT/bundle combined CTA still spans full width — that's intentional. */
	.weu-offer__bundle-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.weu-offer__bundle-footer .weu-offer__add {
		width: 100%;
	}
}
