/**
 * Combo Offer — esalespage/combo-offer.
 *
 * Mobile-first: base rules are the phone, 768px the tablet, 1024px the
 * computer. Sizes arrive as --co-* custom properties from the block root;
 * everything private to this file is --_name.
 *
 * Three independent axes, each a class on the root:
 *   is-skin-*        colours only — it sets the --_ tokens and nothing else
 *   is-template-*    where media / items / buy box go (.espt-co-main is a grid
 *                    with three children: .espt-co-media, .espt-co-info, .espt-co-bw)
 *   is-item-style-*  how ONE item (.espt-co-it) looks
 * A template or an item style only lays things out and reads the tokens, which
 * is what lets any of the 10 × 7 × 9 combine.
 *
 * Transforms: entrance → .espt-co-it / .espt-co-media / .espt-co-bw (animation,
 * `backwards`), item hover → .espt-co-it, photo float → .espt-co-fig (`translate`),
 * photo hover → .espt-co-img, badge loop → .espt-co-badge-i, button loop → .espt-co-btn.
 */

/* ------------------------------------------------------------------ root */

.espt-block-combo-offer { margin-bottom: 24px; }

.espt-block-combo-offer .espt-co {
	--_a: var(--co-accent, var(--bd-primary, #16a34a));
	--_a2: var(--co-accent2, color-mix(in srgb, var(--_a) 55%, #f59e0b));
	--_bg: var(--co-bg, #fff);
	--_card: var(--co-card, #f8fafc);
	--_line: var(--co-line, #e6ebf1);
	--_head: var(--co-head-c, #0f172a);
	--_text: var(--co-text-c, #0f172a);
	--_muted: var(--co-muted-c, #64748b);
	--_price: var(--co-price-c, var(--_a));
	--_old: var(--co-old-c, #94a3b8);
	--_save-bg: var(--co-save-bg, color-mix(in srgb, #dc2626 10%, transparent));
	--_save-c: var(--co-save-c, #b91c1c);
	--_badge-bg: var(--co-badge-bg, #dc2626);
	--_badge-c: var(--co-badge-c, #fff);
	--_btn: var(--co-btn-bg, var(--_a));
	--_btn-c: var(--co-btn-c, #fff);
	--_r: var(--co-r, 20px);
	--_pad: var(--co-pad, 16px);
	--_gap: var(--co-gap, 10px);
	--_ts: var(--co-ts, 54px);
	--_in: espt-co-in-up;

	background: var(--_bg);
	border-radius: var(--_r);
	color: var(--_text);
	margin: 0 auto;
	max-width: var(--co-mxw, none);
	min-width: 0;
	padding: var(--_pad);
	position: relative;
}

.espt-block-combo-offer.is-shadow-soft .espt-co { box-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 16px 40px -20px rgba(15, 23, 42, .3); }
.espt-block-combo-offer.is-shadow-strong .espt-co { box-shadow: 0 30px 64px -24px rgba(15, 23, 42, .55); }
.espt-block-combo-offer.is-shadow-glow .espt-co { box-shadow: 0 22px 56px -20px color-mix(in srgb, var(--_a) 70%, transparent); }

/* ================================================================ SKINS */

.espt-block-combo-offer.is-skin-light .espt-co { border: 1px solid var(--_line); }

.espt-block-combo-offer.is-skin-soft .espt-co {
	--_bg: var(--co-bg, color-mix(in srgb, var(--_a) 7%, #fff));
	--_card: var(--co-card, #fff);
	--_line: var(--co-line, color-mix(in srgb, var(--_a) 18%, #fff));
}

.espt-block-combo-offer.is-skin-plain .espt-co { --_bg: var(--co-bg, transparent); --_pad: 0px; border-radius: 0; box-shadow: none; }
.espt-block-combo-offer.is-skin-outline .espt-co { --_bg: var(--co-bg, transparent); --_card: var(--co-card, transparent); border: 1.5px solid var(--_line); box-shadow: none; }

.espt-block-combo-offer.is-skin-dark .espt-co {
	--_bg: var(--co-bg, #0b1220);
	--_card: var(--co-card, #131d33);
	--_line: var(--co-line, rgba(255, 255, 255, .12));
	--_head: var(--co-head-c, #fff);
	--_text: var(--co-text-c, #f1f5f9);
	--_muted: var(--co-muted-c, #94a3b8);
	--_old: var(--co-old-c, #64748b);
	--_save-bg: var(--co-save-bg, rgba(248, 113, 113, .16));
	--_save-c: var(--co-save-c, #fca5a5);
}

.espt-block-combo-offer.is-skin-gradient .espt-co {
	--_card: var(--co-card, rgba(255, 255, 255, .14));
	--_line: var(--co-line, rgba(255, 255, 255, .26));
	--_head: var(--co-head-c, #fff);
	--_text: var(--co-text-c, #fff);
	--_muted: var(--co-muted-c, rgba(255, 255, 255, .82));
	--_price: var(--co-price-c, #fff);
	--_old: var(--co-old-c, rgba(255, 255, 255, .62));
	--_save-bg: var(--co-save-bg, rgba(255, 255, 255, .2));
	--_save-c: var(--co-save-c, #fff);
	--_btn: var(--co-btn-bg, #fff);
	--_btn-c: var(--co-btn-c, var(--_a));
	--_badge-bg: var(--co-badge-bg, #fff);
	--_badge-c: var(--co-badge-c, var(--_a));

	background: var(--co-bg, linear-gradient(140deg, var(--_a), var(--_a2)));
}

.espt-block-combo-offer.is-skin-festive .espt-co {
	--_a: var(--co-accent, #fbbf24);
	--_a2: var(--co-accent2, #f97316);
	--_card: var(--co-card, rgba(255, 255, 255, .09));
	--_line: var(--co-line, rgba(253, 230, 138, .32));
	--_head: var(--co-head-c, #fff7e6);
	--_text: var(--co-text-c, #fff7e6);
	--_muted: var(--co-muted-c, rgba(255, 237, 213, .8));
	--_old: var(--co-old-c, rgba(255, 237, 213, .6));
	--_save-bg: var(--co-save-bg, rgba(251, 191, 36, .18));
	--_save-c: var(--co-save-c, #fde68a);
	--_btn-c: var(--co-btn-c, #7f1d1d);
	--_badge-bg: var(--co-badge-bg, #fbbf24);
	--_badge-c: var(--co-badge-c, #7f1d1d);

	background: var(--co-bg, radial-gradient(120% 90% at 50% 0%, #b91c1c 0%, #7f1d1d 62%, #5b1212 100%));
}

.espt-block-combo-offer.is-skin-paper .espt-co {
	--_bg: var(--co-bg, #fdf6e3);
	--_card: var(--co-card, #fffaf0);
	--_line: var(--co-line, #e7dcc3);
	--_muted: var(--co-muted-c, #7c6f57);
	--_head: var(--co-head-c, #3b2f1e);
	--_text: var(--co-text-c, #3b2f1e);
}

.espt-block-combo-offer.is-skin-brutal .espt-co {
	--_r: 0px;
	--_line: var(--co-line, #0b0f19);
	--_card: var(--co-card, #fff);

	border: 3px solid #0b0f19;
	box-shadow: 8px 8px 0 #0b0f19;
}

/* On a coloured skin the accent is the BACKGROUND: **bold** cannot be drawn in it. */
.espt-block-combo-offer.is-skin-gradient .espt-co-h strong,
.espt-block-combo-offer.is-skin-gradient .espt-co-eye { color: #fff; }
.espt-block-combo-offer.is-skin-gradient .espt-co-h strong { text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .55); text-underline-offset: .18em; }
.espt-block-combo-offer.is-skin-gradient .espt-co-eye { background: rgba(255, 255, 255, .2); }
.espt-block-combo-offer.is-skin-gradient .espt-co-pki,
.espt-block-combo-offer.is-skin-gradient .espt-co-free,
.espt-block-combo-offer.is-skin-gradient .espt-co-q { color: #fff; }

/* --------------------------------------------------------------- heading */

.espt-block-combo-offer .espt-co-head { margin: 0 auto 18px; max-width: 760px; min-width: 0; text-align: center; }
.espt-block-combo-offer.is-text-align-left .espt-co-head { margin-left: 0; text-align: left; }
.espt-block-combo-offer.is-text-align-right .espt-co-head { margin-right: 0; text-align: right; }

.espt-block-combo-offer .espt-co-eye {
	background: color-mix(in srgb, var(--_a) 13%, transparent);
	border-radius: 999px;
	color: var(--_a);
	display: inline-block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .13em;
	margin-bottom: 9px;
	padding: .4em 1em;
	text-transform: uppercase;
}

.espt-block-combo-offer .espt-co-h { color: var(--_head); font-size: var(--co-hs, 22px); font-weight: 800; line-height: 1.25; margin: 0; overflow-wrap: anywhere; text-wrap: balance; }
.espt-block-combo-offer .espt-co-h strong { color: var(--_a); font-weight: inherit; }
.espt-block-combo-offer .espt-co-sub { color: var(--_muted); font-size: 15px; line-height: 1.6; margin: 7px 0 0; }

/* ------------------------------------------------------------------ main */

.espt-block-combo-offer .espt-co-main { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); min-width: 0; }
.espt-block-combo-offer .espt-co-media,
.espt-block-combo-offer .espt-co-info,
.espt-block-combo-offer .espt-co-bw { min-width: 0; }

/* ----------------------------------------------------------------- media */

.espt-block-combo-offer .espt-co-mw { position: relative; }

.espt-block-combo-offer .espt-co-fig {
	aspect-ratio: var(--_ratio, 1 / 1);
	background: var(--_card);
	border-radius: calc(var(--_r) * .8);
	overflow: hidden;
	position: relative;
}

.espt-block-combo-offer.is-ratio-4-3 .espt-co { --_ratio: 4 / 3; }
.espt-block-combo-offer.is-ratio-3-2 .espt-co { --_ratio: 3 / 2; }
.espt-block-combo-offer.is-ratio-16-9 .espt-co { --_ratio: 16 / 9; }
.espt-block-combo-offer.is-ratio-4-5 .espt-co { --_ratio: 4 / 5; }

.espt-block-combo-offer .espt-co-fig picture { display: block; height: 100%; inset: 0; position: absolute; width: 100%; }

.espt-block-combo-offer .espt-co-img {
	display: block;
	height: 100%;
	inset: 0;
	max-width: none;
	object-fit: cover;
	position: absolute;
	transition: transform .8s cubic-bezier(.2, .7, .2, 1), opacity .35s ease;
	width: 100%;
}

.espt-block-combo-offer.is-fit-contain .espt-co-img { object-fit: contain; }
.espt-block-combo-offer .espt-co-fig.is-swapping .espt-co-img { opacity: 0; }
.espt-block-combo-offer .espt-co-fx { display: none; }

/* collage of the items' own photos */
.espt-block-combo-offer .espt-co-fig.is-collage { background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--_a) 16%, var(--_card)), var(--_card) 70%); }
.espt-block-combo-offer .espt-co-col { inset: 0; position: absolute; }

.espt-block-combo-offer .espt-co-cc {
	background: #fff;
	border: 3px solid #fff;
	border-radius: 16px;
	box-shadow: 0 14px 30px -14px rgba(15, 23, 42, .55);
	overflow: hidden;
	position: absolute;
	transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}

/* Pinned to the cell, not "height:100%": a cell sized only by aspect-ratio
   gives a percentage height nothing to resolve against, and the photo vanished. */
.espt-block-combo-offer .espt-co-cc img,
.espt-block-combo-offer .espt-co-cc picture { display: block; height: 100%; inset: 0; max-width: none; object-fit: cover; position: absolute; width: 100%; }


/* fan: a hand of cards, spread around the middle one */
.espt-block-combo-offer.is-collage-fan .espt-co-cc {
	--_m: calc(var(--k) - (var(--n) - 1) / 2);

	height: 58%;
	left: calc(50% + var(--_m) * 17%);
	top: calc(22% + var(--_m) * var(--_m) * 3.2%);
	transform: translateX(-50%) rotate(calc(var(--_m) * 9deg));
	transform-origin: 50% 120%;
	width: 40%;
	z-index: calc(10 - var(--k));
}

/* equal rows that share the box's height — however many photos there are, none is cropped out */
.espt-block-combo-offer.is-collage-grid .espt-co-col { display: grid; gap: 8px; grid-auto-rows: minmax(0, 1fr); grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; }
.espt-block-combo-offer.is-collage-grid .espt-co-cc { border-radius: 12px; min-height: 0; position: relative; }
.espt-block-combo-offer.is-collage-grid .espt-co-cc:first-child:nth-last-child(odd) { grid-column: 1 / -1; }

.espt-block-combo-offer.is-collage-stack .espt-co-cc {
	border-radius: 50%;
	height: auto;
	aspect-ratio: 1;
	left: calc(50% + (var(--k) - (var(--n) - 1) / 2) * 21%);
	top: 50%;
	transform: translate(-50%, -50%);
	width: 36%;
	z-index: calc(10 - var(--k));
}

.espt-block-combo-offer.is-collage-orbit .espt-co-cc { aspect-ratio: 1; border-radius: 50%; width: 26%; }
.espt-block-combo-offer.is-collage-orbit .espt-co-cc:nth-child(1) { left: 50%; top: 50%; transform: translate(-50%, -50%); width: 50%; z-index: 2; }
.espt-block-combo-offer.is-collage-orbit .espt-co-cc:nth-child(2) { left: 5%; top: 6%; }
.espt-block-combo-offer.is-collage-orbit .espt-co-cc:nth-child(3) { right: 5%; top: 8%; }
.espt-block-combo-offer.is-collage-orbit .espt-co-cc:nth-child(4) { bottom: 6%; left: 7%; }
.espt-block-combo-offer.is-collage-orbit .espt-co-cc:nth-child(5) { bottom: 5%; right: 6%; }

/* gallery thumbnails */
.espt-block-combo-offer .espt-co-thumbs { -webkit-overflow-scrolling: touch; display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding: 2px; scrollbar-width: none; }
.espt-block-combo-offer .espt-co-thumbs::-webkit-scrollbar { display: none; }

.espt-block-combo-offer .espt-co-tb {
	appearance: none;
	background: var(--_card);
	border: 2px solid transparent;
	border-radius: 12px;
	box-shadow: none;
	cursor: pointer;
	flex: 0 0 58px;
	height: 58px;
	margin: 0;
	overflow: hidden;
	padding: 0;
	transition: border-color .3s ease, transform .3s ease, opacity .3s ease;
}

.espt-block-combo-offer .espt-co-tb img { display: block; height: 100%; max-width: none; object-fit: cover; width: 100%; }
.espt-block-combo-offer .espt-co-tb picture { display: block; height: 100%; }
.espt-block-combo-offer .espt-co-tb:not(.is-on) { opacity: .72; }
.espt-block-combo-offer .espt-co-tb.is-on { border-color: var(--_a); }
.espt-block-combo-offer .espt-co-tb:hover { opacity: 1; transform: translateY(-2px); }
.espt-block-combo-offer .espt-co-tb:focus-visible { outline: 3px solid var(--_a); outline-offset: 2px; }

/* ----------------------------------------------------------------- badge */

.espt-block-combo-offer .espt-co-badge { --_bs: clamp(64px, 22%, 96px); height: var(--_bs); pointer-events: none; position: absolute; width: var(--_bs); z-index: 5; }
.espt-block-combo-offer.is-badge-pos-tl .espt-co-badge { left: 10px; top: 10px; }
.espt-block-combo-offer.is-badge-pos-tr .espt-co-badge { right: 10px; top: 10px; }
.espt-block-combo-offer.is-badge-pos-bl .espt-co-badge { bottom: 10px; left: 10px; }
.espt-block-combo-offer.is-badge-pos-br .espt-co-badge { bottom: 10px; right: 10px; }

/* with no photo area the badge rides on the corner of the buy box */
.espt-block-combo-offer .espt-co-bw { position: relative; }
.espt-block-combo-offer .espt-co-bw > .espt-co-badge { --_bs: 72px; bottom: auto; left: auto; right: -6px; top: -22px; }

.espt-block-combo-offer .espt-co-badge-i {
	align-items: center;
	background: var(--_badge-bg);
	border-radius: 50%;
	box-shadow: 0 10px 22px -8px rgba(0, 0, 0, .5);
	color: var(--_badge-c);
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	line-height: 1;
	padding: 8%;
	position: relative;
	text-align: center;
	width: 100%;
}

.espt-block-combo-offer .espt-co-badge-b { font-size: calc(var(--_bs) * .27); font-weight: 900; letter-spacing: -.02em; max-width: 100%; }
.espt-block-combo-offer .espt-co-badge-s { font-size: calc(var(--_bs) * .15); font-weight: 800; margin-top: .22em; }
.espt-block-combo-offer.is-badge-style-burst .espt-co-badge-i { background: none; box-shadow: none; filter: drop-shadow(0 8px 12px rgba(0, 0, 0, .38)); }

.espt-block-combo-offer.is-badge-style-burst .espt-co-badge-i::before {
	background: var(--_badge-bg);
	clip-path: polygon(50% 0%, 59% 9%, 71% 4%, 75% 16%, 88% 16%, 87% 29%, 98% 35%, 92% 46%, 100% 56%, 90% 63%, 93% 76%, 81% 78%, 79% 91%, 66% 88%, 58% 99%, 50% 91%, 42% 99%, 34% 88%, 21% 91%, 19% 78%, 7% 76%, 10% 63%, 0% 56%, 8% 46%, 2% 35%, 13% 29%, 12% 16%, 25% 16%, 29% 4%, 41% 9%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: -1;
}

.espt-block-combo-offer.is-badge-style-pill .espt-co-badge,
.espt-block-combo-offer.is-badge-style-flag .espt-co-badge { height: auto; width: auto; }
.espt-block-combo-offer.is-badge-style-pill .espt-co-badge-i,
.espt-block-combo-offer.is-badge-style-flag .espt-co-badge-i { border-radius: 999px; flex-direction: row; gap: .35em; height: auto; padding: .5em 1em; width: auto; }
.espt-block-combo-offer.is-badge-style-pill .espt-co-badge-b,
.espt-block-combo-offer.is-badge-style-flag .espt-co-badge-b { font-size: 16px; }
.espt-block-combo-offer.is-badge-style-pill .espt-co-badge-s,
.espt-block-combo-offer.is-badge-style-flag .espt-co-badge-s { font-size: 12px; margin-top: 0; }
.espt-block-combo-offer.is-badge-style-flag .espt-co-badge-i { border-radius: 0; clip-path: polygon(0 0, 100% 0, calc(100% - .7em) 50%, 100% 100%, 0 100%); padding-right: 1.6em; transform-origin: 0 50%; }
.espt-block-combo-offer.is-badge-style-flag.is-badge-pos-tl .espt-co-mw > .espt-co-badge,
.espt-block-combo-offer.is-badge-style-flag.is-badge-pos-bl .espt-co-mw > .espt-co-badge { left: 0; }
.espt-block-combo-offer.is-badge-style-flag.is-badge-pos-tr .espt-co-badge-i,
.espt-block-combo-offer.is-badge-style-flag.is-badge-pos-br .espt-co-badge-i { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, .7em 50%); padding-left: 1.6em; padding-right: 1em; transform-origin: 100% 50%; }
.espt-block-combo-offer.is-badge-style-flag.is-badge-pos-tr .espt-co-mw > .espt-co-badge,
.espt-block-combo-offer.is-badge-style-flag.is-badge-pos-br .espt-co-mw > .espt-co-badge { right: 0; }

/* corner ribbon — glued to the photo's corner, so it never loops */
.espt-block-combo-offer.is-badge-style-ribbon .espt-co-mw > .espt-co-badge { height: 118px; overflow: hidden; width: 118px; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-tl .espt-co-mw > .espt-co-badge { border-top-left-radius: calc(var(--_r) * .8); left: 0; top: 0; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-tr .espt-co-mw > .espt-co-badge { border-top-right-radius: calc(var(--_r) * .8); right: 0; top: 0; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-bl .espt-co-mw > .espt-co-badge { border-bottom-left-radius: calc(var(--_r) * .8); bottom: 0; left: 0; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-br .espt-co-mw > .espt-co-badge { border-bottom-right-radius: calc(var(--_r) * .8); bottom: 0; right: 0; }
.espt-block-combo-offer.is-badge-style-ribbon .espt-co-mw .espt-co-badge-i { animation: none !important; border-radius: 0; flex-direction: row; gap: .35em; height: auto; left: 50%; padding: .45em 0; position: absolute; top: 50%; width: 160%; }
.espt-block-combo-offer.is-badge-style-ribbon .espt-co-mw .espt-co-badge-b { font-size: 15px; }
.espt-block-combo-offer.is-badge-style-ribbon .espt-co-mw .espt-co-badge-s { font-size: 11px; margin-top: 0; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-tl .espt-co-mw .espt-co-badge-i { rotate: -45deg; translate: -64% -125%; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-tr .espt-co-mw .espt-co-badge-i { rotate: 45deg; translate: -36% -125%; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-bl .espt-co-mw .espt-co-badge-i { rotate: 45deg; translate: -64% 25%; }
.espt-block-combo-offer.is-badge-style-ribbon.is-badge-pos-br .espt-co-mw .espt-co-badge-i { rotate: -45deg; translate: -36% 25%; }

.espt-block-combo-offer.is-badge-anim-pulse .espt-co-badge-i { animation: espt-co-bd-pulse 2s ease-in-out infinite; }
.espt-block-combo-offer.is-badge-anim-swing .espt-co-badge-i { animation: espt-co-bd-swing 2.6s ease-in-out infinite; transform-origin: 50% 0; }
.espt-block-combo-offer.is-badge-anim-tada .espt-co-badge-i { animation: espt-co-bd-tada 3s infinite; }
.espt-block-combo-offer.is-badge-anim-spin.is-badge-style-burst .espt-co-badge-i::before { animation: espt-co-bd-spin 14s linear infinite; }
.espt-block-combo-offer.is-badge-anim-spin:not(.is-badge-style-burst) .espt-co-badge-i { animation: espt-co-bd-pulse 2s ease-in-out infinite; }

@keyframes espt-co-bd-pulse { 0%, 100% { scale: 1; } 50% { scale: 1.09; } }
@keyframes espt-co-bd-swing { 0%, 100% { rotate: -9deg; } 50% { rotate: 9deg; } }
@keyframes espt-co-bd-spin { to { rotate: 360deg; } }
@keyframes espt-co-bd-tada { 0%, 60%, 100% { rotate: 0deg; scale: 1; } 66% { rotate: -6deg; scale: .94; } 72%, 84% { rotate: 6deg; scale: 1.1; } 78%, 90% { rotate: -6deg; scale: 1.1; } }

/* photo animation */
.espt-block-combo-offer.is-img-anim-float .espt-co-fig { animation: espt-co-float 5.5s ease-in-out infinite; }
@keyframes espt-co-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }

@media (hover: hover) and (pointer: fine) {
	.espt-block-combo-offer.is-img-anim-zoom .espt-co-fig:hover .espt-co-img { transform: scale(1.08); }
	.espt-block-combo-offer.is-img-anim-tilt .espt-co-mw { perspective: 900px; }
	.espt-block-combo-offer.is-img-anim-tilt .espt-co-fig { transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
	.espt-block-combo-offer.is-img-anim-tilt .espt-co-mw:hover .espt-co-fig { transform: rotateY(-8deg) rotateX(4deg); }
	.espt-block-combo-offer.is-img-anim-shine .espt-co-fx { background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .5) 50%, transparent 65%); display: block; inset: 0; pointer-events: none; position: absolute; transform: translateX(-120%); }
	.espt-block-combo-offer.is-img-anim-shine .espt-co-fig:hover .espt-co-fx { transform: translateX(120%); transition: transform .9s ease; }
	.espt-block-combo-offer .espt-co-fig.is-collage:hover .espt-co-cc { transform: translateX(-50%) rotate(calc(var(--_m, 0) * 12deg)) translateY(-6px); }
	.espt-block-combo-offer.is-collage-grid .espt-co-fig.is-collage:hover .espt-co-cc,
	.espt-block-combo-offer.is-collage-orbit .espt-co-fig.is-collage:hover .espt-co-cc:not(:first-child) { transform: scale(1.04); }
	.espt-block-combo-offer.is-collage-stack .espt-co-fig.is-collage:hover .espt-co-cc { transform: translate(-50%, -54%); }
	.espt-block-combo-offer.is-collage-orbit .espt-co-fig.is-collage:hover .espt-co-cc:first-child { transform: translate(-50%, -50%) scale(1.04); }
}

/* ================================================================= ITEMS */

.espt-block-combo-offer .espt-co-lt { color: var(--_muted); font-size: 12px; font-weight: 800; letter-spacing: .1em; margin-bottom: 10px; text-transform: uppercase; }
.espt-block-combo-offer .espt-co-list { display: grid; gap: var(--_gap); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }

.espt-block-combo-offer .espt-co-it {
	align-items: center;
	display: grid;
	gap: 4px 12px;
	grid-template-columns: auto minmax(0, 1fr) auto;
	list-style: none;
	margin: 0;
	min-width: 0;
	padding: 0;
	position: relative;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease, background-color .3s ease, border-color .3s ease;
}

.espt-block-combo-offer .espt-co-it::marker { content: none; }

.espt-block-combo-offer .espt-co-th {
	background: var(--_card);
	border-radius: 12px;
	display: block;
	flex: none;
	height: var(--_ts);
	overflow: hidden;
	position: relative;
	width: var(--_ts);
}

.espt-block-combo-offer.is-thumb-shape-square .espt-co-th { border-radius: 0; }
.espt-block-combo-offer.is-thumb-shape-circle .espt-co-th { border-radius: 50%; }
.espt-block-combo-offer .espt-co-th picture { display: block; height: 100%; }
.espt-block-combo-offer .espt-co-ti { display: block; height: 100%; max-width: none; object-fit: cover; transition: transform .5s ease; width: 100%; }

/* the item's number: only where there is no photo to show, or "numbered" */
.espt-block-combo-offer .espt-co-no { align-items: center; color: var(--_a); display: none; font-size: calc(var(--_ts) * .36); font-weight: 800; inset: 0; justify-content: center; position: absolute; }
.espt-block-combo-offer .espt-co-it.no-img .espt-co-no { display: flex; }
.espt-block-combo-offer .espt-co-it.no-img .espt-co-th { background: color-mix(in srgb, var(--_a) 13%, transparent); }

.espt-block-combo-offer .espt-co-ib { display: grid; gap: 2px; min-width: 0; }
.espt-block-combo-offer .espt-co-in { color: var(--_text); font-size: var(--co-ns, 14px); font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.espt-block-combo-offer .espt-co-in a { color: inherit; text-decoration: none; }
.espt-block-combo-offer .espt-co-in a:hover { color: var(--_a); text-decoration: underline; }
.espt-block-combo-offer .espt-co-q { color: var(--_a); font-weight: 800; white-space: nowrap; }
.espt-block-combo-offer .espt-co-id { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--_muted); display: -webkit-box; font-size: 12.5px; line-clamp: 2; line-height: 1.45; overflow: hidden; overflow-wrap: anywhere; }

.espt-block-combo-offer .espt-co-tag {
	background: color-mix(in srgb, var(--_a) 12%, transparent);
	border-radius: 999px;
	color: var(--_a);
	font-size: 10.5px;
	font-weight: 800;
	justify-self: start;
	line-height: 1;
	margin-top: 3px;
	padding: 4px 8px;
}

.espt-block-combo-offer.is-skin-gradient .espt-co-tag { background: rgba(255, 255, 255, .22); color: #fff; }

.espt-block-combo-offer .espt-co-ip { align-items: flex-end; color: var(--_text); display: flex; flex-direction: column; font-size: 14px; font-variant-numeric: tabular-nums; font-weight: 700; gap: 1px; line-height: 1.2; white-space: nowrap; }
.espt-block-combo-offer .espt-co-ip del { color: var(--_old); font-size: .86em; font-weight: 500; }

.espt-block-combo-offer .espt-co-free {
	background: color-mix(in srgb, var(--_a) 15%, transparent);
	border-radius: 6px;
	color: var(--_a);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .04em;
	padding: 3px 8px;
}

/* ---- item styles ----
   The equation, product-card and strip layouts draw their own items, so every
   item-style rule steps aside there (the :not() chain) instead of being fought
   with a pile of overrides. */

/* rows: a hairline between them */
.espt-block-combo-offer.is-item-style-row:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { border-bottom: 1px solid var(--_line); padding-bottom: var(--_gap); }
.espt-block-combo-offer.is-item-style-row:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:last-child { border-bottom: 0; padding-bottom: 0; }

/* cards */
.espt-block-combo-offer.is-item-style-card:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it,
.espt-block-combo-offer.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { background: var(--_card); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .6); padding: 9px 12px 9px 9px; }
.espt-block-combo-offer.is-item-style-card:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it.is-free { border-color: color-mix(in srgb, var(--_a) 50%, var(--_line)); border-style: dashed; }
.espt-block-combo-offer.is-skin-brutal.is-item-style-card:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it,
.espt-block-combo-offer.is-skin-brutal.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { border-radius: 0; border-width: 2px; box-shadow: 3px 3px 0 #0b0f19; }

/* numbered */
/* .espt-co-th, not bare .espt-co-ti: the collage shows the SAME images and must keep them */
.espt-block-combo-offer.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th .espt-co-ti { display: none; }
.espt-block-combo-offer.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-no { display: flex; }
.espt-block-combo-offer.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th { --_ts: 38px; background: var(--_a); border-radius: 50%; }
.espt-block-combo-offer.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-no { color: #fff; font-size: 15px; }
.espt-block-combo-offer.is-skin-gradient.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th { background: #fff; }
.espt-block-combo-offer.is-skin-gradient.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-no { color: var(--_a); }
.espt-block-combo-offer.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { align-items: start; }

/* a line joins the numbers */
.espt-block-combo-offer.is-item-style-numbered:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:not(:last-child)::after { background: var(--_line); bottom: calc(var(--_gap) * -1); content: ""; left: 18px; position: absolute; top: 40px; width: 2px; }

/* checklist */
.espt-block-combo-offer.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th .espt-co-ti,
.espt-block-combo-offer.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-no { display: none !important; }
.espt-block-combo-offer.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th { --_ts: 24px; background: var(--_a); border-radius: 50%; }
.espt-block-combo-offer.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it.no-img .espt-co-th { background: var(--_a); }
.espt-block-combo-offer.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th::after { border: solid #fff; border-width: 0 2.4px 2.4px 0; content: ""; height: 11px; left: 50%; position: absolute; rotate: 45deg; top: 46%; translate: -50% -50%; width: 6px; }
.espt-block-combo-offer.is-skin-gradient.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th,
.espt-block-combo-offer.is-skin-gradient.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it.no-img .espt-co-th { background: #fff; }
.espt-block-combo-offer.is-skin-gradient.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th::after { border-color: var(--_a); }
.espt-block-combo-offer.is-item-style-check:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { align-items: start; }

/* photo tiles */
.espt-block-combo-offer.is-item-style-tile:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-list { grid-template-columns: repeat(var(--co-ic, 2), minmax(0, 1fr)); }
.espt-block-combo-offer.is-item-style-tile:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { align-content: start; background: var(--_card); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .6); gap: 8px; grid-template-columns: minmax(0, 1fr); padding: 8px 8px 12px; text-align: center; }
.espt-block-combo-offer.is-item-style-tile:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th { aspect-ratio: 1; height: auto; width: 100%; }
.espt-block-combo-offer.is-item-style-tile:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-tag { justify-self: center; }
.espt-block-combo-offer.is-item-style-tile:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-ip { align-items: center; flex-direction: row; gap: 6px; justify-content: center; }

/* joined with "+" */
.espt-block-combo-offer.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-list { gap: 26px; }
.espt-block-combo-offer.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:not(:first-child)::before {
	align-items: center;
	background: var(--_a);
	border: 3px solid var(--_bg);
	border-radius: 50%;
	color: #fff;
	content: "+";
	display: flex;
	font-size: 17px;
	font-weight: 800;
	height: 28px;
	justify-content: center;
	left: 50%;
	line-height: 1;
	position: absolute;
	top: -27px;
	translate: -50% 0;
	width: 28px;
	z-index: 2;
}

.espt-block-combo-offer.is-skin-gradient.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:not(:first-child)::before,
.espt-block-combo-offer.is-skin-festive.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:not(:first-child)::before { border-color: transparent; }
.espt-block-combo-offer.is-skin-gradient.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:not(:first-child)::before { background: #fff; color: var(--_a); }
.espt-block-combo-offer.is-skin-festive.is-item-style-plus:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:not(:first-child)::before { color: #7f1d1d; }

/* minimal */
.espt-block-combo-offer.is-item-style-minimal:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-th { display: none; }
.espt-block-combo-offer.is-item-style-minimal:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it { border-bottom: 1px dashed var(--_line); grid-template-columns: minmax(0, 1fr) auto; padding-bottom: var(--_gap); }
.espt-block-combo-offer.is-item-style-minimal:not(.is-template-equation):not(.is-template-grid):not(.is-template-strip) .espt-co-it:last-child { border-bottom: 0; padding-bottom: 0; }

/* item hover */
@media (hover: hover) and (pointer: fine) {
	.espt-block-combo-offer.is-hover-lift .espt-co-it:hover { transform: translateY(-3px); }
	.espt-block-combo-offer.is-hover-lift.is-item-style-card .espt-co-it:hover,
	.espt-block-combo-offer.is-hover-lift.is-item-style-tile .espt-co-it:hover,
	.espt-block-combo-offer.is-hover-lift.is-item-style-plus .espt-co-it:hover { box-shadow: 0 14px 26px -16px rgba(15, 23, 42, .45); }
	.espt-block-combo-offer.is-hover-tint .espt-co-it:hover { background-color: color-mix(in srgb, var(--_a) 8%, transparent); border-radius: 12px; }
	.espt-block-combo-offer.is-hover-zoom .espt-co-it:hover .espt-co-ti { transform: scale(1.12); }
	.espt-block-combo-offer.is-hover-slide .espt-co-it:hover { transform: translateX(6px); }
	.espt-block-combo-offer.is-hover-glow .espt-co-it:hover { border-radius: 12px; box-shadow: 0 0 0 1.5px var(--_a), 0 12px 26px -12px color-mix(in srgb, var(--_a) 75%, transparent); }
}

/* perks */
.espt-block-combo-offer .espt-co-perks { display: flex; flex-wrap: wrap; gap: 8px 14px; list-style: none; margin: 14px 0 0; padding: 0; }
.espt-block-combo-offer .espt-co-pk { align-items: center; color: var(--_muted); display: flex; font-size: 12.5px; font-weight: 600; gap: 6px; list-style: none; margin: 0; padding: 0; }
.espt-block-combo-offer .espt-co-pk::marker { content: none; }
.espt-block-combo-offer .espt-co-pki { color: var(--_a); display: inline-flex; line-height: 0; }
.espt-block-combo-offer .espt-co-pki svg { height: 16px; width: 16px; }

/* =============================================================== BUY BOX */

.espt-block-combo-offer .espt-co-buy { display: grid; gap: 14px; min-width: 0; }
.espt-block-combo-offer .espt-co-price { align-items: baseline; display: flex; flex-wrap: wrap; gap: 4px 14px; min-width: 0; }
.espt-block-combo-offer .espt-co-pl { color: var(--_muted); display: block; font-size: 12px; font-weight: 600; line-height: 1.3; }
.espt-block-combo-offer .espt-co-old del { color: var(--_old); font-size: 18px; font-variant-numeric: tabular-nums; font-weight: 600; text-decoration-thickness: 2px; }

.espt-block-combo-offer .espt-co-pv {
	color: var(--_price);
	display: inline-block;
	font-size: var(--co-ps, 32px);
	font-variant-numeric: tabular-nums;
	font-weight: 900;
	letter-spacing: -.02em;
	line-height: 1.05;
}

.espt-block-combo-offer .espt-co-save {
	align-items: center;
	background: var(--_save-bg);
	border-radius: 999px;
	color: var(--_save-c);
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 13px;
	font-weight: 800;
	gap: 6px;
	line-height: 1.2;
	padding: 6px 12px;
}

.espt-block-combo-offer .espt-co-svi { display: inline-flex; line-height: 0; }
.espt-block-combo-offer .espt-co-svi svg { height: 14px; width: 14px; }

.espt-block-combo-offer.is-price-style-boxed .espt-co-price { background: var(--_card); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .6); padding: 14px; }
.espt-block-combo-offer.is-price-style-big .espt-co-price { align-items: center; flex-direction: column; gap: 6px; text-align: center; }
.espt-block-combo-offer.is-price-style-big .espt-co-pv { font-size: calc(var(--co-ps, 32px) * 1.3); }

.espt-block-combo-offer.is-price-style-split .espt-co-price { align-items: stretch; background: var(--_line); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .6); display: grid; gap: 1px; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); overflow: hidden; }
.espt-block-combo-offer.is-price-style-split .espt-co-price > * { align-content: center; background: var(--_bg); border-radius: 0; display: grid; justify-items: center; padding: 11px 6px; text-align: center; }
.espt-block-combo-offer.is-price-style-split .espt-co-pv { font-size: calc(var(--co-ps, 32px) * .72); }
.espt-block-combo-offer.is-price-style-split .espt-co-save { color: var(--_save-c); font-size: 12px; }
.espt-block-combo-offer.is-price-style-split .espt-co-svi { display: none; }
.espt-block-combo-offer.is-skin-gradient.is-price-style-split .espt-co-price > *,
.espt-block-combo-offer.is-skin-festive.is-price-style-split .espt-co-price > * { background: rgba(0, 0, 0, .22); }
.espt-block-combo-offer.is-skin-plain.is-price-style-split .espt-co-price > *,
.espt-block-combo-offer.is-skin-outline.is-price-style-split .espt-co-price > * { background: var(--co-card, #fff); }

.espt-block-combo-offer.is-price-style-tag .espt-co-now { background: var(--_a); border-radius: 10px 4px 4px 10px; clip-path: polygon(14px 0, 100% 0, 100% 100%, 14px 100%, 0 50%); padding: 8px 14px 8px 26px; position: relative; }
.espt-block-combo-offer.is-price-style-tag .espt-co-now::before { background: var(--_bg); border-radius: 50%; content: ""; height: 7px; left: 12px; position: absolute; top: 50%; translate: 0 -50%; width: 7px; }
.espt-block-combo-offer.is-price-style-tag .espt-co-pv,
.espt-block-combo-offer.is-price-style-tag .espt-co-now .espt-co-pl { color: #fff; }
.espt-block-combo-offer.is-skin-gradient.is-price-style-tag .espt-co-now { background: #fff; }
.espt-block-combo-offer.is-skin-gradient.is-price-style-tag .espt-co-pv,
.espt-block-combo-offer.is-skin-gradient.is-price-style-tag .espt-co-now .espt-co-pl { color: var(--_a); }
.espt-block-combo-offer.is-skin-festive.is-price-style-tag .espt-co-pv,
.espt-block-combo-offer.is-skin-festive.is-price-style-tag .espt-co-now .espt-co-pl { color: #7f1d1d; }

.espt-block-combo-offer.is-price-style-accent .espt-co-price { background: linear-gradient(135deg, var(--_a), var(--_a2)); border-radius: calc(var(--_r) * .6); padding: 14px; }
.espt-block-combo-offer.is-price-style-accent .espt-co-pv,
.espt-block-combo-offer.is-price-style-accent .espt-co-pl { color: #fff; }
.espt-block-combo-offer.is-price-style-accent .espt-co-old del { color: rgba(255, 255, 255, .7); }
.espt-block-combo-offer.is-price-style-accent .espt-co-save { background: rgba(255, 255, 255, .22); color: #fff; }
.espt-block-combo-offer.is-skin-festive.is-price-style-accent .espt-co-pv,
.espt-block-combo-offer.is-skin-festive.is-price-style-accent .espt-co-pl,
.espt-block-combo-offer.is-skin-festive.is-price-style-accent .espt-co-save { color: #5b1212; }
.espt-block-combo-offer.is-skin-festive.is-price-style-accent .espt-co-old del { color: rgba(91, 18, 18, .65); }
.espt-block-combo-offer.is-skin-gradient.is-price-style-accent .espt-co-price { background: rgba(0, 0, 0, .22); }

/* ---- urgency ---- */
.espt-block-combo-offer .espt-co-urg { display: grid; gap: 10px; }
.espt-block-combo-offer .espt-co-timer { align-items: center; display: flex; flex-wrap: wrap; gap: 6px 12px; }
.espt-block-combo-offer .espt-co-tl { color: var(--_muted); font-size: 13px; font-weight: 700; }
.espt-block-combo-offer .espt-co-tcs { display: inline-flex; gap: 6px; }
.espt-block-combo-offer .espt-co-tcs[hidden],
.espt-block-combo-offer .espt-co-td[hidden] { display: none; }

.espt-block-combo-offer .espt-co-tc { background: var(--_card); border: 1px solid var(--_line); border-radius: 10px; display: grid; justify-items: center; min-width: 46px; padding: 6px 4px 5px; }
.espt-block-combo-offer .espt-co-tc b { color: var(--_text); font-size: 18px; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1.1; }
.espt-block-combo-offer .espt-co-tc i { color: var(--_muted); font-size: 9.5px; font-style: normal; font-weight: 700; letter-spacing: .04em; }
.espt-block-combo-offer .espt-co-timer.is-soon .espt-co-tc b { color: #dc2626; }
.espt-block-combo-offer .espt-co-td { color: var(--_save-c); font-size: 14px; font-weight: 800; }

.espt-block-combo-offer .espt-co-stock { display: grid; gap: 6px; }
.espt-block-combo-offer .espt-co-st { color: var(--_save-c); font-size: 13px; font-weight: 800; }
.espt-block-combo-offer .espt-co-sb { background: color-mix(in srgb, var(--_text) 11%, transparent); border-radius: 999px; display: block; height: 8px; overflow: hidden; }

.espt-block-combo-offer .espt-co-sf {
	animation: espt-co-stripes 1s linear infinite;
	background: linear-gradient(90deg, #f97316, #dc2626);
	background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .25) 0 8px, transparent 8px 16px), linear-gradient(90deg, #f97316, #dc2626);
	background-size: 22.6px 22.6px, 100% 100%;
	border-radius: inherit;
	display: block;
	height: 100%;
	transition: width 1.2s cubic-bezier(.2, .7, .2, 1) .3s;
	width: calc(var(--w, 0) * 1%);
}

.espt-block-combo-offer .espt-co[data-co-in]:not(.is-in) .espt-co-sf { width: 100%; }
@keyframes espt-co-stripes { to { background-position: 22.6px 0, 0 0; } }

/* ---- buttons ---- */
.espt-block-combo-offer .espt-co-cta { display: grid; gap: 10px; }

.espt-block-combo-offer .espt-co-btn {
	align-items: center;
	background: var(--_btn);
	border: 2px solid transparent;
	border-radius: min(var(--espt-btn-radius, 14px), 30px);
	color: var(--_btn-c);
	display: flex;
	font-size: var(--co-bs, 16px);
	font-weight: 800;
	gap: 10px;
	justify-content: center;
	line-height: 1.25;
	min-height: 56px;
	overflow: hidden;
	padding: 12px 22px;
	position: relative;
	text-align: center;
	text-decoration: none;
	transition: transform .3s ease, box-shadow .3s ease, filter .3s ease, background-color .3s ease, color .3s ease;
	width: 100%;
}

.espt-block-combo-offer .espt-co-btn:hover { box-shadow: 0 16px 30px -14px color-mix(in srgb, var(--_btn) 85%, transparent); color: var(--_btn-c); filter: brightness(1.07); transform: translateY(-2px); }
.espt-block-combo-offer .espt-co-btn:focus-visible,
.espt-block-combo-offer .espt-co-btn2:focus-visible { outline: 3px solid color-mix(in srgb, var(--_btn) 55%, #fff); outline-offset: 3px; }
.espt-block-combo-offer .espt-co-bt { display: grid; gap: 1px; min-width: 0; }
.espt-block-combo-offer .espt-co-bs { font-size: .68em; font-weight: 600; opacity: .9; }
.espt-block-combo-offer .espt-co-bi { display: inline-flex; flex: none; line-height: 0; }
.espt-block-combo-offer .espt-co-bi svg { height: 1.2em; width: 1.2em; }
.espt-block-combo-offer .espt-co-bsh { display: none; }

.espt-block-combo-offer.is-btn-style-gradient .espt-co-btn { background: linear-gradient(100deg, var(--_btn), var(--_a2)); }
.espt-block-combo-offer.is-skin-gradient.is-btn-style-gradient .espt-co-btn { background: linear-gradient(100deg, #fff, #f1f5f9); }
.espt-block-combo-offer.is-btn-style-3d .espt-co-btn { box-shadow: 0 6px 0 color-mix(in srgb, var(--_btn) 68%, #000); }
.espt-block-combo-offer.is-btn-style-3d .espt-co-btn:hover { box-shadow: 0 3px 0 color-mix(in srgb, var(--_btn) 68%, #000); transform: translateY(3px); }
.espt-block-combo-offer.is-btn-style-pill .espt-co-btn { border-radius: 999px; }
.espt-block-combo-offer.is-btn-style-outline .espt-co-btn { background: transparent; border-color: var(--_btn); color: var(--_btn); }
.espt-block-combo-offer.is-btn-style-outline .espt-co-btn:hover { background: var(--_btn); color: var(--_btn-c); }
.espt-block-combo-offer.is-btn-style-dark .espt-co-btn { --_btn: var(--co-btn-bg, #0b0f19); --_btn-c: var(--co-btn-c, #fff); }
.espt-block-combo-offer.is-skin-brutal .espt-co-btn { border: 2px solid #0b0f19; border-radius: 0; box-shadow: 5px 5px 0 #0b0f19; }
.espt-block-combo-offer.is-skin-brutal .espt-co-btn:hover { box-shadow: 2px 2px 0 #0b0f19; transform: translate(3px, 3px); }

.espt-block-combo-offer .espt-co-btn2 {
	align-items: center;
	border: 1.5px solid var(--_line);
	border-radius: min(var(--espt-btn-radius, 14px), 30px);
	color: var(--_text);
	display: flex;
	font-size: 15px;
	font-weight: 700;
	gap: 8px;
	justify-content: center;
	min-height: 48px;
	padding: 10px 18px;
	text-decoration: none;
	transition: border-color .3s ease, color .3s ease, background-color .3s ease;
}

.espt-block-combo-offer .espt-co-btn2:hover { border-color: #25d366; color: #128c7e; }
.espt-block-combo-offer.is-skin-dark .espt-co-btn2:hover,
.espt-block-combo-offer.is-skin-gradient .espt-co-btn2:hover,
.espt-block-combo-offer.is-skin-festive .espt-co-btn2:hover { color: #86efac; }
.espt-block-combo-offer .espt-co-note { color: var(--_muted); font-size: 12px; line-height: 1.5; margin: 0; text-align: center; }

.espt-block-combo-offer.is-btn-anim-pulse .espt-co-btn { animation: espt-co-b-pulse 2s infinite; }
.espt-block-combo-offer.is-btn-anim-bounce .espt-co-btn { animation: espt-co-b-bounce 2.4s infinite; }
.espt-block-combo-offer.is-btn-anim-glow .espt-co-btn { animation: espt-co-b-glow 2.2s ease-in-out infinite; }
.espt-block-combo-offer.is-btn-anim-nudge .espt-co-btn .espt-co-bi { animation: espt-co-b-nudge 1.2s ease-in-out infinite; }
.espt-block-combo-offer.is-btn-anim-shine .espt-co-bsh { animation: espt-co-b-shine 3s ease-in-out infinite; background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, .5) 50%, transparent 80%); display: block; inset: 0; pointer-events: none; position: absolute; transform: translateX(-120%); }
.espt-block-combo-offer .espt-co-btn:hover { animation-play-state: paused; }

@keyframes espt-co-b-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--_btn) 60%, transparent); } 70%, 100% { box-shadow: 0 0 0 16px transparent; } }
@keyframes espt-co-b-bounce { 0%, 62%, 100% { translate: 0 0; } 72% { translate: 0 -7px; } 82% { translate: 0 0; } 90% { translate: 0 -3px; } }
@keyframes espt-co-b-glow { 0%, 100% { box-shadow: 0 0 0 0 transparent; } 50% { box-shadow: 0 0 28px 2px color-mix(in srgb, var(--_btn) 70%, transparent); } }
@keyframes espt-co-b-nudge { 0%, 100% { translate: 0 0; } 50% { translate: 5px 0; } }
@keyframes espt-co-b-shine { 0%, 55% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }

/* ============================================================= TEMPLATES */

@media (min-width: 768px) {
	.espt-block-combo-offer .espt-co-main { gap: 26px; }
	.espt-block-combo-offer .espt-co-head { margin-bottom: 26px; }
	.espt-block-combo-offer .espt-co-sub { font-size: 16px; }
	.espt-block-combo-offer .espt-co-cta { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
	.espt-block-combo-offer .espt-co-tb { flex-basis: 66px; height: 66px; }

	/* 01 / 02 split: the photo keeps its column while the offer scrolls past */
	.espt-block-combo-offer.is-template-split .espt-co:not(.no-media) .espt-co-main,
	.espt-block-combo-offer.is-template-split-rev .espt-co:not(.no-media) .espt-co-main {
		align-items: start;
		grid-template-areas: "media info" "media buy";
		grid-template-columns: minmax(0, var(--co-mw, 46%)) minmax(0, 1fr);
		grid-template-rows: auto 1fr;
	}

	.espt-block-combo-offer.is-template-split-rev .espt-co:not(.no-media) .espt-co-main { grid-template-areas: "info media" "buy media"; grid-template-columns: minmax(0, 1fr) minmax(0, var(--co-mw, 46%)); }
	/* Named areas ONLY while the named grid exists: on a no-media sheet these
	   names point at nothing, and both boxes pile into one implicit cell. */
	.espt-block-combo-offer.is-template-split .espt-co:not(.no-media) .espt-co-media,
	.espt-block-combo-offer.is-template-split-rev .espt-co:not(.no-media) .espt-co-media { grid-area: media; position: sticky; top: calc(var(--espt-abar-h, 0px) + 90px); }
	.espt-block-combo-offer.is-template-split .espt-co:not(.no-media) .espt-co-info,
	.espt-block-combo-offer.is-template-split-rev .espt-co:not(.no-media) .espt-co-info { grid-area: info; }
	.espt-block-combo-offer.is-template-split .espt-co:not(.no-media) .espt-co-bw,
	.espt-block-combo-offer.is-template-split-rev .espt-co:not(.no-media) .espt-co-bw { align-self: start; grid-area: buy; }

	/* with no photo the items and the buy box share the row */
	.espt-block-combo-offer.is-template-split .espt-co.no-media .espt-co-main,
	.espt-block-combo-offer.is-template-split-rev .espt-co.no-media .espt-co-main,
	.espt-block-combo-offer.is-template-stacked .espt-co-main { align-items: start; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
	.espt-block-combo-offer.is-template-stacked .espt-co-media { grid-column: 1 / -1; }
	.espt-block-combo-offer.is-template-stacked .espt-co { --_ratio: 21 / 9; }
	.espt-block-combo-offer.is-template-stacked.is-collage-fan .espt-co-cc { aspect-ratio: 3 / 4; height: 74%; left: calc(50% + var(--_m) * 9%); top: calc(10% + var(--_m) * var(--_m) * 1.6%); width: auto; }
	.espt-block-combo-offer.is-template-stacked.is-collage-stack .espt-co-cc { width: 17%; left: calc(50% + (var(--k) - (var(--n) - 1) / 2) * 11%); }
	.espt-block-combo-offer.is-template-stacked.is-collage-orbit .espt-co-cc { width: 12%; }
	.espt-block-combo-offer.is-template-stacked.is-collage-orbit .espt-co-cc:nth-child(1) { width: 24%; }
	.espt-block-combo-offer.is-template-stacked.is-collage-grid .espt-co-col { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.espt-block-combo-offer.is-template-stacked.is-collage-grid .espt-co-cc:first-child:nth-last-child(odd) { grid-column: auto; }
}

/* 03 photo on top — a wide banner of a photo even on a phone */
.espt-block-combo-offer.is-template-stacked .espt-co-fig:not(.is-collage) { aspect-ratio: 16 / 10; }

/* 04 equation: item + item + item = price */
.espt-block-combo-offer.is-template-equation .espt-co-media { margin: 0 auto; max-width: 420px; width: 100%; }
.espt-block-combo-offer.is-template-equation .espt-co-lt { text-align: center; }
.espt-block-combo-offer.is-template-equation .espt-co-list { gap: 22px 14px; grid-template-columns: repeat(var(--co-ic, 2), minmax(0, 1fr)); }

.espt-block-combo-offer.is-template-equation .espt-co-it {
	align-content: start;
	background: var(--_card);
	border: 1px solid var(--_line);
	border-radius: calc(var(--_r) * .6);
	gap: 8px;
	grid-template-columns: minmax(0, 1fr);
	padding: 8px 8px 12px;
	text-align: center;
}

.espt-block-combo-offer.is-template-equation .espt-co-th { aspect-ratio: 1; display: block; height: auto; width: 100%; }
.espt-block-combo-offer.is-template-equation .espt-co-ti { display: block; }
.espt-block-combo-offer.is-template-equation .espt-co-th::after { content: none; }
.espt-block-combo-offer.is-template-equation .espt-co-tag { justify-self: center; }
.espt-block-combo-offer.is-template-equation .espt-co-ip { align-items: center; flex-direction: row; gap: 6px; justify-content: center; }
.espt-block-combo-offer.is-template-equation .espt-co-it::after { content: none; }

/* A "+" rides on the corner of every card after the first: it still reads as
   a sum however the cards wrap. */
.espt-block-combo-offer.is-template-equation .espt-co-it:not(:first-child)::before {
	align-items: center;
	background: var(--_a);
	border: 3px solid var(--_bg);
	border-radius: 50%;
	color: #fff;
	content: "+";
	display: flex;
	font-size: 18px;
	font-weight: 800;
	height: 30px;
	justify-content: center;
	left: -11px;
	line-height: 1;
	position: absolute;
	top: -11px;
	translate: 0 0;
	width: 30px;
	z-index: 2;
}

.espt-block-combo-offer.is-skin-gradient.is-template-equation .espt-co-it:not(:first-child)::before { background: #fff; border-color: transparent; color: var(--_a); }
.espt-block-combo-offer.is-skin-festive.is-template-equation .espt-co-it:not(:first-child)::before { border-color: transparent; color: #7f1d1d; }
.espt-block-combo-offer.is-template-equation .espt-co-perks { justify-content: center; }
.espt-block-combo-offer.is-template-equation .espt-co-bw { margin: 8px auto 0; max-width: 520px; width: 100%; }

.espt-block-combo-offer.is-template-equation .espt-co-bw::before {
	color: var(--_a);
	content: "=";
	display: block;
	font-size: 34px;
	font-weight: 900;
	line-height: 1;
	margin-bottom: 8px;
	text-align: center;
}

.espt-block-combo-offer.is-skin-gradient.is-template-equation .espt-co-bw::before { color: #fff; }
.espt-block-combo-offer.is-template-equation .espt-co-price { justify-content: center; text-align: center; }

/* 05 receipt */
.espt-block-combo-offer.is-template-receipt .espt-co-main { margin: 0 auto; max-width: 520px; }
.espt-block-combo-offer.is-template-receipt .espt-co-media { margin: 0 auto; max-width: 300px; width: 100%; }

.espt-block-combo-offer.is-template-receipt .espt-co-info,
.espt-block-combo-offer.is-template-receipt .espt-co-bw {
	--_text: #1f2937;
	--_muted: #6b7280;
	--_line: #d1d5db;
	--_old: #9ca3af;
	--_card: #f3f4f6;

	background: #fffdf7;
	color: #1f2937;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	padding: 18px 16px;
}

.espt-block-combo-offer.is-template-receipt .espt-co-info { border-radius: 8px 8px 0 0; margin-bottom: -18px; padding-bottom: 8px; }

/* the torn edge */
.espt-block-combo-offer.is-template-receipt .espt-co-bw {
	-webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 16px 51% repeat-x, linear-gradient(#000 0 0) top / 100% 52% no-repeat;
	border-top: 2px dashed #d1d5db;
	mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 16px 51% repeat-x, linear-gradient(#000 0 0) top / 100% 52% no-repeat;
	padding-bottom: 28px;
}

.espt-block-combo-offer.is-template-receipt .espt-co-lt { border-bottom: 2px dashed #d1d5db; color: #1f2937; letter-spacing: .16em; padding-bottom: 10px; text-align: center; }
.espt-block-combo-offer.is-template-receipt .espt-co-it { background: none; border: 0; border-bottom: 1px dashed #d1d5db; border-radius: 0; box-shadow: none; padding: 0 0 var(--_gap); }
.espt-block-combo-offer.is-template-receipt .espt-co-it:last-child { border-bottom: 0; }
.espt-block-combo-offer.is-template-receipt .espt-co-it::before,
.espt-block-combo-offer.is-template-receipt .espt-co-it::after { content: none !important; }
.espt-block-combo-offer.is-template-receipt .espt-co-th { --_ts: 40px; border-radius: 6px; }
.espt-block-combo-offer.is-template-receipt .espt-co-in { font-size: 13.5px; }
.espt-block-combo-offer.is-template-receipt .espt-co-perks { border-top: 1px dashed #d1d5db; padding-top: 10px; }
.espt-block-combo-offer.is-template-receipt .espt-co-price { background: none; border: 0; display: grid; gap: 6px; padding: 0; }
.espt-block-combo-offer.is-template-receipt .espt-co-old,
.espt-block-combo-offer.is-template-receipt .espt-co-now { align-items: baseline; background: none; clip-path: none; display: flex; justify-content: space-between; padding: 0; }
.espt-block-combo-offer.is-template-receipt .espt-co-now::before { content: none; }
.espt-block-combo-offer.is-template-receipt .espt-co-pl { color: #4b5563; font-size: 13px; text-transform: uppercase; }
.espt-block-combo-offer.is-template-receipt .espt-co-now { border-top: 2px solid #1f2937; padding-top: 8px; }
.espt-block-combo-offer.is-template-receipt .espt-co-pv { color: #111827; font-size: calc(var(--co-ps, 32px) * .8); }
.espt-block-combo-offer.is-template-receipt .espt-co-old del { color: #9ca3af; }
.espt-block-combo-offer.is-template-receipt .espt-co-save { background: #fee2e2; border-radius: 4px; color: #b91c1c; justify-self: end; }
.espt-block-combo-offer.is-template-receipt .espt-co-tc { background: #f3f4f6; border-color: #d1d5db; }
.espt-block-combo-offer.is-template-receipt .espt-co-tc b { color: #111827; }
.espt-block-combo-offer.is-template-receipt .espt-co-btn2 { border-color: #d1d5db; color: #1f2937; }
.espt-block-combo-offer.is-template-receipt .espt-co-cta { grid-auto-flow: row; }

/* 06 product cards + an order bar */
.espt-block-combo-offer.is-template-grid .espt-co-media { display: none; }
.espt-block-combo-offer.is-template-grid .espt-co-list { grid-template-columns: repeat(var(--co-ic, 2), minmax(0, 1fr)); }
.espt-block-combo-offer.is-template-grid .espt-co-it { align-content: start; background: var(--_card); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .6); gap: 8px; grid-template-columns: minmax(0, 1fr); padding: 8px 8px 12px; text-align: center; }
.espt-block-combo-offer.is-template-grid .espt-co-it::before,
.espt-block-combo-offer.is-template-grid .espt-co-it::after { content: none; }
.espt-block-combo-offer.is-template-grid .espt-co-th { aspect-ratio: 1; display: block; height: auto; width: 100%; }
.espt-block-combo-offer.is-template-grid .espt-co-ti { display: block; }
.espt-block-combo-offer.is-template-grid .espt-co-th::after { content: none; }
.espt-block-combo-offer.is-template-grid .espt-co-tag { justify-self: center; }
.espt-block-combo-offer.is-template-grid .espt-co-ip { align-items: center; flex-direction: row; gap: 6px; justify-content: center; }
.espt-block-combo-offer.is-template-grid .espt-co-perks { justify-content: center; }
.espt-block-combo-offer.is-template-grid .espt-co-bw { background: var(--_card); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .7); padding: 14px; }
.espt-block-combo-offer.is-template-grid.is-price-style-boxed .espt-co-price { background: none; border: 0; padding: 0; }

@media (min-width: 768px) {
	.espt-block-combo-offer.is-template-grid .espt-co-buy { align-items: center; grid-template-columns: minmax(0, 1fr) auto; }
	.espt-block-combo-offer.is-template-grid .espt-co-urg { grid-column: 1 / -1; grid-row: 2; }
	.espt-block-combo-offer.is-template-grid .espt-co-note { grid-column: 1 / -1; }
	.espt-block-combo-offer.is-template-grid .espt-co-cta { min-width: 300px; }
	.espt-block-combo-offer.is-template-grid .espt-co-bw { padding: 18px 22px; }
}

/* 07 coupon ticket: the buy box is a tear-off stub */
.espt-block-combo-offer.is-template-ticket .espt-co-bw { border-top: 2.5px dashed var(--_line); margin: 0 calc(var(--_pad) * -1) calc(var(--_pad) * -1); padding: 20px var(--_pad) var(--_pad); }
.espt-block-combo-offer.is-template-ticket .espt-co-bw::before,
.espt-block-combo-offer.is-template-ticket .espt-co-bw::after { background: var(--_notch, var(--espt-content-bg, #fff)); /* the page behind the ticket */ border-radius: 50%; content: ""; height: 26px; position: absolute; top: -14px; width: 26px; }
.espt-block-combo-offer.is-template-ticket .espt-co-bw::before { left: -13px; }
.espt-block-combo-offer.is-template-ticket .espt-co-bw::after { right: -13px; }
.espt-block-combo-offer.is-template-ticket .espt-co { overflow: hidden; }
.espt-block-combo-offer.is-template-ticket.is-price-style-boxed .espt-co-price { background: none; border: 0; padding: 0; }

/* Tablet: photo beside the items, the stub still along the bottom. Only a
   computer has the width for the stub to stand at the side — three columns on
   anything narrower squeeze the item names into a one-letter column. */
@media (min-width: 768px) {
	.espt-block-combo-offer.is-template-ticket .espt-co:not(.no-media) .espt-co-main { align-items: start; grid-template-columns: minmax(0, calc(var(--co-mw, 46%) * .8)) minmax(0, 1fr); }
	.espt-block-combo-offer.is-template-ticket .espt-co:not(.no-media) .espt-co-bw { grid-column: 1 / -1; }
	.espt-block-combo-offer.is-template-ticket .espt-co-buy { align-items: center; grid-template-columns: minmax(0, 1fr) minmax(0, 320px); }
	.espt-block-combo-offer.is-template-ticket .espt-co-urg,
	.espt-block-combo-offer.is-template-ticket .espt-co-note { grid-column: 1 / -1; }
	.espt-block-combo-offer.is-template-ticket .espt-co-cta { grid-auto-flow: row; }
}

@media (min-width: 1100px) {
	.espt-block-combo-offer.is-template-ticket .espt-co:not(.no-media) .espt-co-main { align-items: stretch; grid-template-columns: minmax(0, calc(var(--co-mw, 46%) * .62)) minmax(0, 1fr) minmax(0, 290px); }
	.espt-block-combo-offer.is-template-ticket .espt-co.no-media .espt-co-main { align-items: stretch; grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
	.espt-block-combo-offer.is-template-ticket .espt-co:not(.no-media) .espt-co-bw { grid-column: auto; }
	.espt-block-combo-offer.is-template-ticket .espt-co-bw { align-content: center; border-left: 2.5px dashed var(--_line); border-top: 0; display: grid; margin: calc(var(--_pad) * -1) calc(var(--_pad) * -1) calc(var(--_pad) * -1) 0; padding: var(--_pad) var(--_pad) var(--_pad) 26px; }
	.espt-block-combo-offer.is-template-ticket .espt-co-bw::before { left: -14px; top: -13px; }
	.espt-block-combo-offer.is-template-ticket .espt-co-bw::after { bottom: -13px; left: -14px; right: auto; top: auto; }
	.espt-block-combo-offer.is-template-ticket .espt-co-buy { grid-template-columns: minmax(0, 1fr); }
	.espt-block-combo-offer.is-template-ticket .espt-co-price { flex-direction: column; gap: 6px; }
}

/* 08 showcase: a big photo, the offer on a card that floats over its foot */
.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-fig { aspect-ratio: 4 / 3; }
.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-info { background: var(--_bg); border: 1px solid var(--_line); border-radius: calc(var(--_r) * .8); box-shadow: 0 18px 40px -22px rgba(15, 23, 42, .5); margin: -46px 8px 0; padding: 16px; position: relative; z-index: 3; }
.espt-block-combo-offer.is-skin-gradient.is-template-showcase .espt-co:not(.no-media) .espt-co-info,
.espt-block-combo-offer.is-skin-festive.is-template-showcase .espt-co:not(.no-media) .espt-co-info { -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); background: rgba(0, 0, 0, .35); }

@media (min-width: 768px) {
	.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-main { align-items: end; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-media { grid-column: 1 / -1; grid-row: 1; }
	.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-fig { aspect-ratio: 21 / 9; }
	/* in so wide a box the fanned cards are sized by its HEIGHT, or they would tower over it */
	.espt-block-combo-offer.is-template-showcase.is-collage-fan .espt-co-cc { aspect-ratio: 3 / 4; height: 74%; left: calc(50% + var(--_m) * 9%); top: calc(10% + var(--_m) * var(--_m) * 1.6%); width: auto; }
	.espt-block-combo-offer.is-template-showcase.is-collage-stack .espt-co-cc { width: 17%; left: calc(50% + (var(--k) - (var(--n) - 1) / 2) * 11%); }
	.espt-block-combo-offer.is-template-showcase.is-collage-orbit .espt-co-cc { width: 12%; }
	.espt-block-combo-offer.is-template-showcase.is-collage-orbit .espt-co-cc:nth-child(1) { width: 24%; }
	.espt-block-combo-offer.is-template-showcase.is-collage-grid .espt-co-col { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.espt-block-combo-offer.is-template-showcase.is-collage-grid .espt-co-cc:first-child:nth-last-child(odd) { grid-column: auto; }
	.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-info { align-self: start; grid-column: 1; grid-row: 2; margin: -90px 0 0 22px; padding: 22px; }
	.espt-block-combo-offer.is-template-showcase .espt-co:not(.no-media) .espt-co-bw { align-self: start; grid-column: 2; grid-row: 2; padding-top: 6px; }
}

/* 09 slim strip */
.espt-block-combo-offer.is-template-strip .espt-co-head { margin-bottom: 12px; }
.espt-block-combo-offer.is-template-strip .espt-co-sub,
.espt-block-combo-offer.is-template-strip .espt-co-id,
.espt-block-combo-offer.is-template-strip .espt-co-lt,
.espt-block-combo-offer.is-template-strip .espt-co-perks,
.espt-block-combo-offer.is-template-strip .espt-co-thumbs { display: none; }
.espt-block-combo-offer.is-template-strip .espt-co { --_ts: 40px; }
.espt-block-combo-offer.is-template-strip .espt-co-media { max-width: 150px; }
.espt-block-combo-offer.is-template-strip .espt-co-list { display: flex; flex-wrap: wrap; gap: 8px; }
.espt-block-combo-offer.is-template-strip .espt-co-it { background: var(--_card); border: 1px solid var(--_line); border-radius: 999px; gap: 8px; grid-template-columns: auto minmax(0, 1fr) auto; max-width: 100%; padding: 4px 12px 4px 4px; }
.espt-block-combo-offer.is-template-strip .espt-co-it::before,
.espt-block-combo-offer.is-template-strip .espt-co-it::after { content: none; }
.espt-block-combo-offer.is-template-strip .espt-co-th { border-radius: 50%; display: block; }
.espt-block-combo-offer.is-template-strip .espt-co-th::after { content: none; }
.espt-block-combo-offer.is-template-strip .espt-co-ti { display: block; }
.espt-block-combo-offer.is-template-strip .espt-co-tag { display: none; }
.espt-block-combo-offer.is-template-strip .espt-co-in { font-size: 13px; }
.espt-block-combo-offer.is-template-strip .espt-co-ip { font-size: 12px; }
.espt-block-combo-offer.is-template-strip.is-price-style-boxed .espt-co-price { background: none; border: 0; padding: 0; }

@media (min-width: 1024px) {
	/* a fixed column: a box that only has an aspect-ratio has no width of its own, and `auto` gave it none */
	.espt-block-combo-offer.is-template-strip .espt-co-main { align-items: center; grid-template-columns: 150px minmax(0, 1fr) minmax(0, 320px); }
	.espt-block-combo-offer.is-template-strip .espt-co.no-media .espt-co-main { grid-template-columns: minmax(0, 1fr) minmax(0, 320px); }
	.espt-block-combo-offer.is-template-strip .espt-co-cta { grid-auto-flow: row; }
}

/* 10 poster */
.espt-block-combo-offer.is-template-poster .espt-co-main { justify-items: center; margin: 0 auto; max-width: 640px; text-align: center; }
.espt-block-combo-offer.is-template-poster .espt-co-media { max-width: 400px; width: 100%; }
.espt-block-combo-offer.is-template-poster .espt-co-info,
.espt-block-combo-offer.is-template-poster .espt-co-bw { width: 100%; }
.espt-block-combo-offer.is-template-poster .espt-co-badge { --_bs: clamp(84px, 30%, 128px); }
.espt-block-combo-offer.is-template-poster .espt-co-it { text-align: left; }
.espt-block-combo-offer.is-template-poster .espt-co-perks,
.espt-block-combo-offer.is-template-poster .espt-co-price,
.espt-block-combo-offer.is-template-poster .espt-co-timer { justify-content: center; }
.espt-block-combo-offer.is-template-poster .espt-co-pv { font-size: calc(var(--co-ps, 32px) * 1.35); }
.espt-block-combo-offer.is-template-poster .espt-co-cta { grid-auto-flow: row; }

/* ======================================================== STICKY ORDER BAR
   Phones only. combo-offer.js moves it to <body> (a position:fixed box inside
   an ancestor with a transform — the entrance animation, a builder wrapper —
   is pinned to that ancestor, not the screen), so these rules are NOT under
   .espt-block-combo-offer, and its colours are copied from the real button. */

.espt-co-sticky { display: none; }

@media (max-width: 767px) {
	.espt-co-sticky {
		-webkit-backdrop-filter: blur(14px);
		align-items: center;
		backdrop-filter: blur(14px);
		background: rgba(255, 255, 255, .94);
		border-top: 1px solid #e2e8f0;
		bottom: 0;
		box-shadow: 0 -10px 30px -16px rgba(15, 23, 42, .4);
		box-sizing: border-box;
		display: flex;
		gap: 12px;
		left: 0;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
		position: fixed;
		right: 0;
		transform: translateY(110%);
		transition: transform .4s cubic-bezier(.2, .7, .2, 1), visibility 0s .4s;
		visibility: hidden;
		z-index: 9990;
	}

	.espt-co-sticky.is-on { transform: none; transition: transform .4s cubic-bezier(.2, .7, .2, 1), visibility 0s; visibility: visible; }
	.espt-co-sticky .espt-co-sp { display: grid; flex: none; line-height: 1.1; }
	.espt-co-sticky .espt-co-sp del { color: #94a3b8; font-size: 12px; font-variant-numeric: tabular-nums; }
	.espt-co-sticky .espt-co-sp strong { color: #0f172a; font-size: 20px; font-variant-numeric: tabular-nums; font-weight: 900; }

	.espt-co-sticky .espt-co-sbtn {
		align-items: center;
		background: var(--_sb, #16a34a);
		border-radius: 12px;
		box-sizing: border-box;
		color: var(--_sc, #fff);
		display: flex;
		flex: 1 1 auto;
		font-size: 16px;
		font-weight: 800;
		gap: 8px;
		justify-content: center;
		min-height: 48px;
		min-width: 0;
		padding: 10px 14px;
		text-decoration: none;
	}

	.espt-co-sticky .espt-co-bi { display: inline-flex; line-height: 0; }
	.espt-co-sticky .espt-co-bi svg { height: 1.2em; width: 1.2em; }
}

@media (prefers-reduced-motion: reduce) {
	.espt-co-sticky { transition: none !important; }
}

/* ============================================================= ENTRANCE
   Hidden until combo-offer.js adds .is-in. `backwards`, not `both`: once it
   has played, hover owns the transform again. */

.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in] .espt-co-head > *,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in] .espt-co-media,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in] .espt-co-lt,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in] .espt-co-it,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in] .espt-co-perks,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in] .espt-co-bw { opacity: 0; }

.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in].is-in .espt-co-head > *,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in].is-in .espt-co-media,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in].is-in .espt-co-lt,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in].is-in .espt-co-it,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in].is-in .espt-co-perks,
.espt-block-combo-offer:not(.is-anim-in-none) .espt-co[data-co-in].is-in .espt-co-bw {
	animation: var(--_in) .7s cubic-bezier(.2, .7, .2, 1) backwards;
	opacity: 1;
}

.espt-block-combo-offer .espt-co[data-co-in].is-in .espt-co-head > :nth-child(2) { animation-delay: .07s; }
.espt-block-combo-offer .espt-co[data-co-in].is-in .espt-co-head > :nth-child(3) { animation-delay: .14s; }
.espt-block-combo-offer .espt-co[data-co-in].is-in .espt-co-media { animation-delay: .12s; }
.espt-block-combo-offer .espt-co[data-co-in].is-in .espt-co-it { animation-delay: calc(.2s + var(--i, 0) * .08s); }
.espt-block-combo-offer .espt-co[data-co-in].is-in .espt-co-perks { animation-delay: calc(.25s + var(--n, 4) * .08s); }
.espt-block-combo-offer .espt-co[data-co-in].is-in .espt-co-bw { animation-delay: calc(.3s + min(var(--n, 4), 6) * .08s); }

.espt-block-combo-offer.is-anim-in-fade .espt-co { --_in: espt-co-in-fade; }
.espt-block-combo-offer.is-anim-in-up .espt-co { --_in: espt-co-in-up; }
.espt-block-combo-offer.is-anim-in-left .espt-co { --_in: espt-co-in-left; }
.espt-block-combo-offer.is-anim-in-zoom .espt-co { --_in: espt-co-in-zoom; }
.espt-block-combo-offer.is-anim-in-flip .espt-co { --_in: espt-co-in-flip; }
.espt-block-combo-offer.is-anim-in-pop .espt-co { --_in: espt-co-in-pop; }

@keyframes espt-co-in-fade { from { opacity: 0; } }
@keyframes espt-co-in-up { from { opacity: 0; transform: translateY(22px); } }
@keyframes espt-co-in-left { from { opacity: 0; transform: translateX(-28px); } }
@keyframes espt-co-in-zoom { from { opacity: 0; transform: scale(.88); } }
@keyframes espt-co-in-flip { from { opacity: 0; transform: perspective(700px) rotateX(-55deg); transform-origin: 50% 0; } }
@keyframes espt-co-in-pop { 0% { opacity: 0; transform: scale(.7); } 65% { opacity: 1; transform: scale(1.05); } 100% { transform: none; } }

/* the price lands with a little thump once it has counted down */
.espt-block-combo-offer .espt-co-pv.is-landed { animation: espt-co-land .5s cubic-bezier(.2, .7, .2, 1); }
@keyframes espt-co-land { 40% { scale: 1.12; } }

/* ======================================================= REDUCED MOTION */

@media (prefers-reduced-motion: reduce) {
	.espt-block-combo-offer .espt-co,
	.espt-block-combo-offer .espt-co *,
	.espt-block-combo-offer .espt-co *::before,
	.espt-block-combo-offer .espt-co *::after { animation: none !important; transition: none !important; }

	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-head > *,
	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-media,
	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-lt,
	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-it,
	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-perks,
	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-bw { opacity: 1 !important; }

	.espt-block-combo-offer .espt-co[data-co-in] .espt-co-sf { width: calc(var(--w, 0) * 1%) !important; }
}

/* ============================================= "STRETCH THIS WIDGET"
   (Spacing & background → Stretch this widget.) The shared rule only pulls the
   wrapper out over the page's side space — a few pixels. On a rounded, bordered
   surface that reads as "nothing happened": the corners still float inside the
   edge. Stretched means FLUSH: square corners, no side borders. */
.espt-block-combo-offer:is(.has-espt-box-full-container, .has-espt-box-full-browser) .espt-co {
	border-left: 0;
	border-radius: 0;
	border-right: 0;
	max-width: none;
}

/* across the whole browser: the SURFACE spans the screen, the offer itself stays as wide as the page */
.espt-block-combo-offer.has-espt-box-full-browser .espt-co {
	padding-left: max(var(--_pad), calc((100% - var(--espt-container, 1200px)) / 2 + var(--_pad)));
	padding-right: max(var(--_pad), calc((100% - var(--espt-container, 1200px)) / 2 + var(--_pad)));
}
