/**
 * BD Offer Stamp Card — .espt-block-bd-offer-stamp
 *
 * Eight stamp/seal offer cards (is-design-t1 … is-design-t8) plus the shared
 * CTA layer and a countdown timer. Mobile-first; every size and colour reads
 * a CSS variable set by the block spec.
 *
 * Vars: --st-maxw --st-gap --st-card-bg --st-card-line --st-card-radius
 *       --st-card-pad --st-price --st-title-size --st-label-size
 *       --st-body-size --st-punch --st-label-color --st-price-color
 *       --st-old-color --st-title-color --st-body-color --st-stamp --st-rot
 *       --st-op --st-seal-scale --st-media --st-media-color --st-media-radius
 *       --tmr-size --tmr-bg --tmr-color --tmr-lc --cta-bg --cta-color
 *       --cta-radius
 */

/* --------------------------------------------------------------- shell */
.espt-block-bd-offer-stamp .bdst {
	align-items: center;
	color: var(--bd-ink);
	display: flex;
	flex-direction: column;
	gap: var(--st-gap, 16px);
	line-height: 1.6;
	min-width: 0;
	padding: 16px 14px;
	width: 100%;
}

.espt-block-bd-offer-stamp .bdst.espt-bd-box { padding: max(var(--bd-pad), 16px); }

.espt-block-bd-offer-stamp.is-text-align-left .bdst { align-items: flex-start; }
.espt-block-bd-offer-stamp.is-text-align-right .bdst { align-items: flex-end; }

.espt-block-bd-offer-stamp .st-card {
	max-width: var(--st-maxw, 360px);
	min-width: 0;
	position: relative;
	width: 100%;
}

.espt-block-bd-offer-stamp .st-cta,
.espt-block-bd-offer-stamp .st-timer {
	max-width: var(--st-maxw, 360px);
	min-width: 0;
	width: 100%;
}

/* ------------------------------------------------------ shared pieces */
.espt-block-bd-offer-stamp .st-l,
.espt-block-bd-offer-stamp .st-eb {
	color: var(--st-label-color, var(--bd-muted));
	display: block;
	font-size: var(--st-label-size, 13px);
	font-weight: 600;
	letter-spacing: 0.06em;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-stamp .st-n {
	color: var(--st-price-color, var(--bd-primary-dark));
	font-size: var(--st-price, 38px);
	font-weight: 800;
	line-height: 1.12;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-stamp .st-o {
	color: var(--st-old-color, var(--bd-muted));
	font-size: calc(var(--st-label-size, 13px) + 2px);
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
}

.espt-block-bd-offer-stamp .st-title {
	color: var(--st-title-color, var(--bd-ink));
	font-size: var(--st-title-size, 17px);
	font-weight: 800;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-stamp .st-body {
	color: var(--st-body-color, var(--bd-body));
	font-size: var(--st-body-size, 14px);
	line-height: 1.7;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-stamp .st-body strong { color: var(--st-price-color, var(--bd-primary-dark)); font-weight: 800; }

/* ----------------------------------------------------------- media */
.espt-block-bd-offer-stamp .st-media {
	display: flex;
	justify-content: center;
	max-width: 100%;
}

.espt-block-bd-offer-stamp .st-media-icon {
	color: var(--st-media-color, var(--bd-primary));
	font-size: var(--st-media, 54px);
	line-height: 0;
}

.espt-block-bd-offer-stamp .st-media-ic { display: inline-flex; line-height: 0; }

/* The icon library ships its own fill/stroke per icon (outline icons carry
   fill="none"), so only the box is sized here — never repainted. */
.espt-block-bd-offer-stamp .st-media-ic svg { height: 1em; width: 1em; }

.espt-block-bd-offer-stamp .st-media-img img {
	border-radius: var(--st-media-radius, 12px);
	display: block;
	height: auto;
	max-width: 100%;
	width: var(--st-media, 54px);
}

/* ==================================================================== */
/* 01 — classic corner seal                                             */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t1 .st-card {
	background: var(--st-card-bg, #fff);
	border: 1.5px dashed var(--st-card-line, var(--bd-soft-line));
	border-radius: var(--st-card-radius, 12px);
	padding: calc(var(--st-card-pad, 18px) + 8px) var(--st-card-pad, 18px) calc(var(--st-card-pad, 18px) + 4px);
	text-align: center;
}

.espt-block-bd-offer-stamp.is-design-t1 .st-l { margin-bottom: 4px; }
.espt-block-bd-offer-stamp.is-design-t1 .st-o { display: block; margin-top: 3px; }

.espt-block-bd-offer-stamp .st1-seal {
	align-content: center;
	background: rgba(255, 255, 255, 0.72);
	border: 2.5px solid var(--st-stamp, var(--bd-danger));
	border-radius: 50%;
	box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 5.5px var(--st-stamp, var(--bd-danger));
	color: var(--st-stamp, var(--bd-danger));
	display: grid;
	height: calc(80px * var(--st-seal-scale, 1));
	justify-items: center;
	line-height: 1.05;
	opacity: var(--st-op, 0.9);
	position: absolute;
	right: -11px;
	text-align: center;
	top: -13px;
	transform: rotate(12deg) rotate(var(--st-rot, 0deg));
	width: calc(80px * var(--st-seal-scale, 1));
}

.espt-block-bd-offer-stamp .st1-seal b {
	display: block;
	font-size: calc(19px * var(--st-seal-scale, 1));
	font-weight: 800;
	line-height: 1;
}

.espt-block-bd-offer-stamp .st1-seal i {
	display: block;
	font-size: calc(10.5px * var(--st-seal-scale, 1));
	font-style: normal;
	font-weight: 700;
	margin-top: 2px;
}

/* ==================================================================== */
/* 02 — official double-ring seal                                       */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t2 .st-card {
	align-items: center;
	background: var(--st-card-bg, var(--bd-soft));
	border: 1px solid var(--st-card-line, var(--bd-line));
	border-radius: var(--st-card-radius, 12px);
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	padding: var(--st-card-pad, 18px);
}

.espt-block-bd-offer-stamp .st2-tx { flex: 1 1 150px; min-width: 0; text-align: center; }
.espt-block-bd-offer-stamp.is-design-t2 .st-l { margin-bottom: 3px; }
.espt-block-bd-offer-stamp.is-design-t2 .st-n { font-size: calc(var(--st-price, 38px) * 0.92); }

.espt-block-bd-offer-stamp .st2-seal {
	color: var(--st-stamp, var(--bd-danger));
	flex: none;
	opacity: var(--st-op, 0.9);
	transform: rotate(-8deg) rotate(var(--st-rot, 0deg));
}

.espt-block-bd-offer-stamp .st2-seal svg {
	display: block;
	height: calc(112px * var(--st-seal-scale, 1));
	width: calc(112px * var(--st-seal-scale, 1));
}

.espt-block-bd-offer-stamp .st2-seal text { fill: currentColor; }

/* ==================================================================== */
/* 03 — rectangular ink stamp                                           */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t3 .st-card {
	background: var(--st-card-bg, #fff);
	border: 1px solid var(--st-card-line, var(--bd-line));
	border-radius: var(--st-card-radius, 12px);
	padding: calc(var(--st-card-pad, 18px) + 6px) var(--st-card-pad, 18px);
	text-align: center;
}

.espt-block-bd-offer-stamp.is-design-t3 .st-l { margin-bottom: 6px; }

.espt-block-bd-offer-stamp .st3-old {
	display: inline-block;
	font-size: calc(var(--st-price, 38px) * 0.7);
	font-weight: 700;
	max-width: 100%;
	padding: 10px 6px;
	position: relative;
}

.espt-block-bd-offer-stamp .st3-rub {
	background: rgba(255, 255, 255, 0.55);
	border: 2.5px solid var(--st-stamp, var(--bd-danger));
	border-radius: 3px;
	box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 3.5px var(--st-stamp, var(--bd-danger));
	color: var(--st-stamp, var(--bd-danger));
	font-size: calc(var(--st-label-size, 13px) + 1px);
	font-weight: 800;
	left: 50%;
	/* Wider than the struck price it sits on, but never wide enough to leave
	   the card (a long stamp caption wraps instead of overflowing the page). */
	max-width: min(150%, 260px);
	opacity: var(--st-op, 0.9);
	padding: 5px 14px;
	position: absolute;
	text-decoration: none;
	top: 50%;
	transform: translate(-50%, -50%) rotate(-7deg) rotate(var(--st-rot, 0deg));
}

.espt-block-bd-offer-stamp .st3-nw { margin-top: 10px; }

.espt-block-bd-offer-stamp .st3-nw .st-l {
	color: var(--st-label-color, var(--bd-primary-dark));
	display: block;
	font-size: calc(var(--st-label-size, 13px) + 1px);
	font-weight: 700;
	letter-spacing: 0;
}

.espt-block-bd-offer-stamp .st3-nw .st-n { display: block; font-size: calc(var(--st-price, 38px) * 0.96); line-height: 1.15; }

/* ==================================================================== */
/* 04 — postage stamp + postmark                                        */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t4 .st-card {
	--st4-notch: var(--st-card-bg, #f2f4f1);
	background: var(--st-card-bg, #f2f4f1);
	border-radius: var(--st-card-radius, 14px);
	overflow: visible;
	padding: calc(var(--st-card-pad, 18px) + 10px) var(--st-card-pad, 18px);
}

.espt-block-bd-offer-stamp .st4-st {
	background-color: #fff;
	background-image:
		radial-gradient(circle at 8px 0, var(--st4-notch) 0 4.5px, transparent 5px),
		radial-gradient(circle at 8px 8px, var(--st4-notch) 0 4.5px, transparent 5px),
		radial-gradient(circle at 0 8px, var(--st4-notch) 0 4.5px, transparent 5px),
		radial-gradient(circle at 8px 8px, var(--st4-notch) 0 4.5px, transparent 5px);
	background-position: left top, left bottom, left top, right top;
	background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
	background-size: 16px 8px, 16px 8px, 8px 16px, 8px 16px;
	box-shadow: 0 8px 20px -12px rgba(18, 33, 28, 0.45);
	margin: 0 auto;
	max-width: 230px;
	position: relative;
}

.espt-block-bd-offer-stamp .st4-in {
	border: 1.5px solid var(--bd-ink);
	margin: 12px;
	padding: 14px 12px 12px;
	text-align: center;
}

.espt-block-bd-offer-stamp .st4-cn {
	display: flex;
	font-size: calc(var(--st-label-size, 13px) * 0.82);
	font-weight: 700;
	gap: 6px;
	justify-content: space-between;
	letter-spacing: 0.04em;
	margin-bottom: 10px;
}

.espt-block-bd-offer-stamp .st4-cn span { min-width: 0; overflow-wrap: anywhere; }
.espt-block-bd-offer-stamp .st4-pr { font-size: calc(var(--st-price, 38px) * 0.87); }
.espt-block-bd-offer-stamp .st4-ol { display: block; font-size: var(--st-label-size, 13px); margin-top: 2px; }

.espt-block-bd-offer-stamp .st4-bt {
	border-top: 1px solid var(--bd-line);
	color: var(--st-title-color, var(--bd-ink));
	font-size: calc(var(--st-label-size, 13px) * 0.86);
	font-weight: 700;
	letter-spacing: 0.12em;
	margin-top: 10px;
	padding-top: 8px;
}

.espt-block-bd-offer-stamp .st4-pm {
	color: var(--st-stamp, var(--bd-ink));
	opacity: calc(var(--st-op, 0.9) * 0.62);
	pointer-events: none;
	position: absolute;
	right: -14px;
	top: -16px;
	transform: rotate(7deg) rotate(var(--st-rot, 0deg));
	width: calc(136px * var(--st-seal-scale, 1));
}

.espt-block-bd-offer-stamp .st4-pm text { fill: currentColor; }

/* ==================================================================== */
/* 05 — visa approval stamp                                             */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t5 .st-card {
	background: var(--st-card-bg, var(--bd-soft));
	border: 1px solid var(--st-card-line, var(--bd-line));
	border-radius: var(--st-card-radius, 12px);
	padding: calc(var(--st-card-pad, 18px) + 4px) var(--st-card-pad, 18px);
	text-align: center;
}

.espt-block-bd-offer-stamp .st5-pn { font-size: calc(var(--st-title-size, 17px) * 0.86); margin-bottom: 14px; }

.espt-block-bd-offer-stamp .st5-v {
	background: color-mix(in srgb, var(--st-stamp, var(--bd-danger)) 5%, transparent);
	border: 2.5px dashed var(--st-stamp, var(--bd-danger));
	border-radius: 12px;
	color: var(--st-stamp, var(--bd-danger));
	display: inline-block;
	max-width: 100%;
	opacity: var(--st-op, 0.9);
	padding: 13px 22px 12px;
	transform: rotate(-3deg) rotate(var(--st-rot, 0deg));
}

.espt-block-bd-offer-stamp .st5-t {
	font-size: calc(var(--st-label-size, 13px) * 0.96);
	font-weight: 700;
	letter-spacing: 0.14em;
	margin-bottom: 2px;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-stamp .st5-p { color: var(--st-stamp, var(--bd-danger)); font-size: calc(var(--st-price, 38px) * 0.78); line-height: 1.15; }

.espt-block-bd-offer-stamp .st5-d {
	border-top: 1.5px dotted var(--st-stamp, var(--bd-danger));
	font-size: calc(var(--st-label-size, 13px) * 0.9);
	font-weight: 700;
	margin-top: 8px;
	overflow-wrap: anywhere;
	padding-top: 7px;
}

.espt-block-bd-offer-stamp .st5-ft { font-size: calc(var(--st-body-size, 14px) * 0.92); margin-top: 14px; }

/* ==================================================================== */
/* 06 — wax seal                                                        */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t6 .st-card {
	background: var(--st-card-bg, #fff);
	border: 1px solid var(--st-card-line, var(--bd-line));
	border-radius: var(--st-card-radius, 8px);
	box-shadow: 0 8px 22px -14px rgba(18, 33, 28, 0.35);
	outline: 1px solid var(--st-card-line, var(--bd-line));
	outline-offset: -6px;
	/* The bottom padding is the band the wax seal sits in: it must clear the
	   seal (bottom offset + height) at every card width, or the last line of
	   the body text ends up behind it. */
	padding: calc(var(--st-card-pad, 18px) + 4px) var(--st-card-pad, 18px) max(78px, calc(var(--st-card-pad, 18px) + 40px));
}

.espt-block-bd-offer-stamp .st6-eb { margin-bottom: 6px; }
.espt-block-bd-offer-stamp .st-card.st6 h4.st-title { margin: 0 0 8px; }
.espt-block-bd-offer-stamp .st-card.st6 p.st-body { margin: 0; max-width: 100%; }

.espt-block-bd-offer-stamp .st6-rb {
	background: #8e2b18;
	bottom: 8px;
	display: block;
	height: 46px;
	position: absolute;
	right: 30px;
	transform: rotate(14deg);
	width: 15px;
	z-index: 0;
}

.espt-block-bd-offer-stamp .st6-rb::after {
	background: #a03020;
	content: '';
	height: 44px;
	left: 24px;
	position: absolute;
	top: 4px;
	transform: rotate(-26deg);
	width: 15px;
}

.espt-block-bd-offer-stamp .st6-wx {
	align-items: center;
	background: radial-gradient(circle at 34% 28%, #e07a5f, #b03a24 58%, #8e2b18);
	border-radius: 46% 54% 52% 48% / 55% 47% 53% 45%;
	bottom: 12px;
	box-shadow: 0 5px 12px -5px rgba(0, 0, 0, 0.45), inset 0 2px 4px rgba(255, 255, 255, 0.28), inset 0 -3px 6px rgba(0, 0, 0, 0.32), inset 0 0 0 7px rgba(255, 255, 255, 0.07);
	color: #f6d9cf;
	display: flex;
	font-size: 23px;
	font-weight: 800;
	height: 62px;
	justify-content: center;
	line-height: 1;
	overflow-wrap: anywhere;
	padding: 0 7px;
	position: absolute;
	right: 14px;
	text-align: center;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4), 0 1px 1px rgba(255, 255, 255, 0.25);
	width: 62px;
	z-index: 1;
}

.espt-block-bd-offer-stamp .st6-wx::before {
	background: #a03020;
	border-radius: 56% 44% 50% 50%;
	content: '';
	height: 13px;
	left: -7px;
	position: absolute;
	top: 22px;
	width: 13px;
}

/* ==================================================================== */
/* 07 — cash-memo stamp                                                 */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t7 .st-card {
	background: var(--st-card-bg, #fff);
	border-radius: var(--st-card-radius, 4px);
	box-shadow: 0 8px 22px -14px rgba(18, 33, 28, 0.4);
	overflow: hidden;
	padding: var(--st-card-pad, 18px);
}

.espt-block-bd-offer-stamp .st7-h {
	border-bottom: 1px dashed var(--st-card-line, var(--bd-soft-line));
	font-size: calc(var(--st-title-size, 17px) * 0.86);
	letter-spacing: 0.05em;
	margin-bottom: 8px;
	padding-bottom: 9px;
	text-align: center;
}

.espt-block-bd-offer-stamp .st7-r {
	align-items: baseline;
	display: flex;
	font-size: var(--st-body-size, 14px);
	gap: 8px;
	padding: 5px 0;
}

.espt-block-bd-offer-stamp .st7-r span { min-width: 0; overflow-wrap: anywhere; }

.espt-block-bd-offer-stamp .st7-r i {
	border-bottom: 1.5px dotted var(--st-card-line, var(--bd-soft-line));
	flex: 1 1 12px;
	font-style: normal;
	transform: translateY(-3px);
}

.espt-block-bd-offer-stamp .st7-r b { font-weight: 700; white-space: nowrap; }
.espt-block-bd-offer-stamp .st7-r b.mn { color: var(--st-stamp, var(--bd-danger)); }

.espt-block-bd-offer-stamp .st7-x {
	align-items: baseline;
	border-top: 1px dashed var(--st-card-line, var(--bd-soft-line));
	display: flex;
	gap: 10px;
	justify-content: space-between;
	margin-top: 6px;
	padding-top: 9px;
}

.espt-block-bd-offer-stamp .st7-x span { font-size: calc(var(--st-body-size, 14px) + 1px); font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
.espt-block-bd-offer-stamp .st7-x .st-n { font-size: calc(var(--st-price, 38px) * 0.53); white-space: nowrap; }

.espt-block-bd-offer-stamp .st7-big {
	display: grid;
	inset: 0;
	place-items: center;
	pointer-events: none;
	position: absolute;
}

.espt-block-bd-offer-stamp .st7-big span {
	background: rgba(255, 255, 255, 0.12);
	border: 3px solid var(--st-stamp, var(--bd-danger));
	border-radius: 5px;
	box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 5px var(--st-stamp, var(--bd-danger));
	color: var(--st-stamp, var(--bd-danger));
	font-size: calc(var(--st-title-size, 17px) * 1.1);
	font-weight: 800;
	letter-spacing: 0.04em;
	max-width: 92%;
	opacity: calc(var(--st-op, 0.9) * 0.8);
	overflow-wrap: anywhere;
	padding: 7px 18px;
	text-align: center;
	transform: rotate(-11deg) rotate(var(--st-rot, 0deg));
}

/* ==================================================================== */
/* 08 — loyalty punch card                                              */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-design-t8 .st-card {
	background: var(--st-card-bg, #fff);
	border: 1.5px solid var(--st-card-line, var(--bd-soft-line));
	border-radius: var(--st-card-radius, 13px);
	overflow: hidden;
}

.espt-block-bd-offer-stamp .st8-h {
	background: var(--bd-deep);
	color: #fff;
	padding: 13px 16px;
	text-align: center;
}

.espt-block-bd-offer-stamp .st8-h b.st-title { color: #fff; display: block; font-size: calc(var(--st-title-size, 17px) * 0.94); }
.espt-block-bd-offer-stamp .st8-h span { color: rgba(255, 255, 255, 0.72); display: block; font-size: calc(var(--st-label-size, 13px) * 0.94); }

.espt-block-bd-offer-stamp .st8-g {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	padding: 18px 12px 6px;
}

.espt-block-bd-offer-stamp .st8-c {
	align-items: center;
	border: 2px dashed var(--st-card-line, var(--bd-soft-line));
	border-radius: 50%;
	color: var(--st-label-color, var(--bd-muted));
	display: flex;
	flex: 0 0 auto;
	font-size: calc(var(--st-punch, 42px) * 0.33);
	font-weight: 700;
	height: var(--st-punch, 42px);
	justify-content: center;
	width: var(--st-punch, 42px);
}

.espt-block-bd-offer-stamp .st8-c.on {
	background: color-mix(in srgb, var(--st-stamp, var(--bd-danger)) 4%, transparent);
	border: 2.5px solid var(--st-stamp, var(--bd-danger));
	box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--st-stamp, var(--bd-danger)) 15%, transparent);
	color: var(--st-stamp, var(--bd-danger));
	font-size: calc(var(--st-punch, 42px) * 0.42);
	font-weight: 800;
	opacity: var(--st-op, 0.9);
}

.espt-block-bd-offer-stamp .st8-c.on:nth-child(odd) { transform: rotate(-9deg) rotate(var(--st-rot, 0deg)); }
.espt-block-bd-offer-stamp .st8-c.on:nth-child(even) { transform: rotate(8deg) rotate(var(--st-rot, 0deg)); }

.espt-block-bd-offer-stamp .st8-f {
	font-size: calc(var(--st-body-size, 14px) * 0.92);
	line-height: 1.65;
	padding: 8px 16px 16px;
	text-align: center;
}

/* ==================================================================== */
/* BD design layer — shadow & hover                                     */
/* ==================================================================== */
/* _shared.css only wires .bd-shadow-* / .bd-hover-* to .espt-bd-box, so when
   the block is not boxed those controls would do nothing: point them at the
   stamp card instead (and leave the box to the shared rules when it is on). */
.espt-block-bd-offer-stamp .st-card { transition: box-shadow 0.25s ease, transform 0.25s ease; }
.espt-block-bd-offer-stamp.bd-shadow-soft .bdst:not(.espt-bd-box) .st-card { box-shadow: 0 6px 24px -10px rgba(15, 23, 42, 0.18); }
.espt-block-bd-offer-stamp.bd-shadow-strong .bdst:not(.espt-bd-box) .st-card { box-shadow: 0 18px 40px -16px rgba(15, 23, 42, 0.35); }
.espt-block-bd-offer-stamp.bd-hover-lift .bdst:not(.espt-bd-box) .st-card:hover { box-shadow: 0 18px 36px -14px rgba(15, 23, 42, 0.3); transform: translateY(-4px); }
.espt-block-bd-offer-stamp.bd-hover-glow .bdst:not(.espt-bd-box) .st-card:hover { box-shadow: 0 0 0 3px color-mix(in srgb, var(--bd-primary) 30%, transparent), 0 14px 30px -12px rgba(15, 23, 42, 0.25); }
.espt-block-bd-offer-stamp.bd-hover-scale .bdst:not(.espt-bd-box) .st-card:hover { transform: scale(1.015); }

/* ==================================================================== */
/* stamp animations                                                     */
/* ==================================================================== */
.espt-block-bd-offer-stamp.is-stamp-anim-stampin .st-seal,
.espt-block-bd-offer-stamp.is-stamp-anim-stampin .st-stamp-tx,
.espt-block-bd-offer-stamp.is-stamp-anim-stampin .st6-wx { animation: espt-st-in 0.55s cubic-bezier(0.2, 1.3, 0.35, 1) both; }

.espt-block-bd-offer-stamp.is-stamp-anim-wobble .st-seal,
.espt-block-bd-offer-stamp.is-stamp-anim-wobble .st-stamp-tx,
.espt-block-bd-offer-stamp.is-stamp-anim-wobble .st6-wx { animation: espt-st-wob 2.2s ease-in-out infinite; }

.espt-block-bd-offer-stamp.is-stamp-anim-pulse .st-seal,
.espt-block-bd-offer-stamp.is-stamp-anim-pulse .st-stamp-tx,
.espt-block-bd-offer-stamp.is-stamp-anim-pulse .st6-wx { animation: espt-st-pul 1.7s ease-in-out infinite; }

@keyframes espt-st-in {
	0% { opacity: 0; scale: 1.9; }
	55% { opacity: 1; scale: 0.92; }
	100% { scale: 1; }
}

@keyframes espt-st-wob {
	0%, 100% { rotate: 0deg; }
	20% { rotate: -5deg; }
	60% { rotate: 5deg; }
}

@keyframes espt-st-pul {
	0%, 100% { scale: 1; }
	50% { scale: 1.07; }
}

/* ==================================================================== */
/* countdown timer                                                      */
/* ==================================================================== */
.espt-block-bd-offer-stamp .st-tmr {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
	text-align: center;
}

.espt-block-bd-offer-stamp .st-tmr-label {
	color: var(--tmr-lc, var(--bd-muted));
	font-size: calc(var(--st-label-size, 13px) * 0.96);
	font-weight: 700;
	letter-spacing: 0.03em;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-stamp .st-tmr-units {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	max-width: 100%;
}

.espt-block-bd-offer-stamp .st-tmr-u {
	align-items: center;
	background: var(--tmr-bg, var(--bd-deep));
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	line-height: 1.1;
	min-width: 2.5em;
	padding: 0.36em 0.4em 0.4em;
}

.espt-block-bd-offer-stamp .st-tmr-d {
	color: var(--tmr-color, #fff);
	font-size: var(--tmr-size, 20px);
	font-variant-numeric: tabular-nums;
	font-weight: 800;
}

.espt-block-bd-offer-stamp .st-tmr-l {
	color: var(--tmr-color, #fff);
	font-size: calc(var(--tmr-size, 20px) * 0.45);
	font-weight: 600;
	opacity: 0.82;
}

.espt-block-bd-offer-stamp .st-tmr-sep { display: none; }

/* pills */
.espt-block-bd-offer-stamp.is-timer-design-pills .st-tmr-u {
	background: var(--tmr-bg, color-mix(in srgb, var(--bd-primary) 12%, transparent));
	border-radius: 99px;
	min-width: 2.7em;
	padding: 0.42em 0.5em;
}

.espt-block-bd-offer-stamp.is-timer-design-pills .st-tmr-d,
.espt-block-bd-offer-stamp.is-timer-design-pills .st-tmr-l { color: var(--tmr-color, var(--bd-primary-dark)); }

/* minimal */
.espt-block-bd-offer-stamp.is-timer-design-minimal .st-tmr-units { gap: 2px; }

.espt-block-bd-offer-stamp.is-timer-design-minimal .st-tmr-u {
	background: none;
	border-radius: 0;
	min-width: 0;
	padding: 0 4px;
}

.espt-block-bd-offer-stamp.is-timer-design-minimal .st-tmr-d,
.espt-block-bd-offer-stamp.is-timer-design-minimal .st-tmr-l { color: var(--tmr-color, var(--bd-ink)); }

.espt-block-bd-offer-stamp.is-timer-design-minimal .st-tmr-sep {
	align-self: center;
	color: var(--tmr-color, var(--bd-ink));
	display: block;
	font-size: var(--tmr-size, 20px);
	font-weight: 800;
	opacity: 0.4;
}

.espt-block-bd-offer-stamp .st-tmr-d.is-tick { animation: espt-st-tick 0.35s ease; }

@keyframes espt-st-tick {
	0% { opacity: 0.35; transform: translateY(-3px); }
	100% { opacity: 1; transform: none; }
}

/* ==================================================================== */
/* CTA button                                                           */
/* ==================================================================== */
.espt-block-bd-offer-stamp .bd-cta {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
}

.espt-block-bd-offer-stamp .bd-cta-al-left { align-items: flex-start; }
.espt-block-bd-offer-stamp .bd-cta-al-right { align-items: flex-end; }

.espt-block-bd-offer-stamp .bd-cta-btn {
	align-items: center;
	background: var(--cta-bg, var(--espt-btn-bg, var(--bd-primary)));
	border: 0;
	border-radius: var(--cta-radius, 10px);
	color: var(--cta-color, #fff);
	cursor: pointer;
	display: inline-flex;
	font-size: 16px;
	font-weight: 800;
	gap: 9px;
	justify-content: center;
	line-height: 1.2;
	max-width: 100%;
	padding: 13px 26px;
	text-align: center;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
	width: 100%;
}

.espt-block-bd-offer-stamp .bd-cta-btn:hover { color: var(--cta-color, #fff); filter: brightness(1.06); text-decoration: none; }
.espt-block-bd-offer-stamp .bd-cta-hover-lift:hover { box-shadow: 0 12px 24px -12px rgba(15, 23, 42, 0.45); transform: translateY(-3px); }
.espt-block-bd-offer-stamp .bd-cta-hover-scale:hover { transform: scale(1.04); }
.espt-block-bd-offer-stamp .bd-cta-hover-glow:hover { box-shadow: 0 0 0 4px color-mix(in srgb, var(--cta-bg, var(--bd-primary)) 28%, transparent); }

.espt-block-bd-offer-stamp .bd-cta-note {
	color: var(--bd-muted);
	font-size: calc(var(--st-label-size, 13px) * 0.95);
	line-height: 1.5;
	overflow-wrap: anywhere;
	text-align: center;
}

.espt-block-bd-offer-stamp .bd-cta-al-left .bd-cta-note { text-align: left; }
.espt-block-bd-offer-stamp .bd-cta-al-right .bd-cta-note { text-align: right; }

.espt-block-bd-offer-stamp .bd-cta-pill .bd-cta-btn { border-radius: 99px; }
.espt-block-bd-offer-stamp .bd-cta-gradient .bd-cta-btn { background-image: linear-gradient(135deg, var(--cta-bg, var(--bd-primary)), var(--bd-primary-dark)); }
.espt-block-bd-offer-stamp .bd-cta-outline .bd-cta-btn { background: transparent; border: 2px solid var(--cta-bg, var(--bd-primary)); color: var(--cta-color, var(--cta-bg, var(--bd-primary))); }
.espt-block-bd-offer-stamp .bd-cta-outline .bd-cta-btn:hover { background: var(--bd-soft); color: var(--cta-color, var(--cta-bg, var(--bd-primary))); }
.espt-block-bd-offer-stamp .bd-cta-soft .bd-cta-btn { background: var(--bd-soft); color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-offer-stamp .bd-cta-soft .bd-cta-btn:hover { color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-offer-stamp .bd-cta-3d .bd-cta-btn { box-shadow: 0 4px 0 var(--bd-primary-dark); }
.espt-block-bd-offer-stamp .bd-cta-3d .bd-cta-btn:active { box-shadow: 0 0 0 var(--bd-primary-dark); transform: translateY(4px); }
.espt-block-bd-offer-stamp .bd-cta-glow .bd-cta-btn { box-shadow: 0 8px 26px -8px var(--cta-bg, var(--bd-primary)); }
.espt-block-bd-offer-stamp .bd-cta-elevated .bd-cta-btn { box-shadow: 0 12px 26px -12px rgba(15, 23, 42, 0.5); }
.espt-block-bd-offer-stamp .bd-cta-shine .bd-cta-btn { overflow: hidden; position: relative; }

.espt-block-bd-offer-stamp .bd-cta-shine .bd-cta-btn::after {
	background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	bottom: 0;
	content: '';
	left: -80%;
	position: absolute;
	top: 0;
	transform: skewX(-20deg);
	transition: left 0.5s ease;
	width: 50%;
}

.espt-block-bd-offer-stamp .bd-cta-shine .bd-cta-btn:hover::after { left: 130%; }
.espt-block-bd-offer-stamp .bd-cta-ghost .bd-cta-btn { background: transparent; color: var(--cta-color, var(--bd-primary-dark)); padding: 6px 12px; text-decoration: underline; width: auto; }
.espt-block-bd-offer-stamp .bd-cta-ghost .bd-cta-btn:hover { color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-offer-stamp .bd-cta-attn .bd-cta-btn { animation: espt-st-attn 1.8s ease-in-out infinite; }

@keyframes espt-st-attn {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.04); }
}

.espt-block-bd-offer-stamp .bd-bico { display: inline-flex; line-height: 0; transition: transform 0.2s ease; }
.espt-block-bd-offer-stamp .bd-bico svg { height: 1em; width: 1em; }
.espt-block-bd-offer-stamp .bd-cta-btn:hover .bd-bico-slide { transform: translateX(4px); }
.espt-block-bd-offer-stamp .bd-bico-bounce { animation: espt-st-ibounce 1.6s ease-in-out infinite; }
.espt-block-bd-offer-stamp .bd-bico-pulse { animation: espt-st-ipulse 1.8s ease-in-out infinite; }

@keyframes espt-st-ibounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-4px); }
}

@keyframes espt-st-ipulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.18); }
}

/* ==================================================================== */
/* tablet +                                                             */
/* ==================================================================== */
@media (min-width: 768px) {
	.espt-block-bd-offer-stamp .bdst { padding: 20px 18px; }
	.espt-block-bd-offer-stamp .st1-seal { height: calc(88px * var(--st-seal-scale, 1)); right: -13px; top: -15px; width: calc(88px * var(--st-seal-scale, 1)); }
	.espt-block-bd-offer-stamp .st1-seal b { font-size: calc(21px * var(--st-seal-scale, 1)); }
	.espt-block-bd-offer-stamp .st1-seal i { font-size: calc(11.5px * var(--st-seal-scale, 1)); }
	.espt-block-bd-offer-stamp.is-design-t2 .st-card { gap: 18px; }
	.espt-block-bd-offer-stamp .st2-seal svg { height: calc(124px * var(--st-seal-scale, 1)); width: calc(124px * var(--st-seal-scale, 1)); }
	.espt-block-bd-offer-stamp .st4-pm { width: calc(150px * var(--st-seal-scale, 1)); }
	.espt-block-bd-offer-stamp.is-design-t6 .st-card { padding-bottom: max(90px, calc(var(--st-card-pad, 20px) + 40px)); }
	.espt-block-bd-offer-stamp .st-card.st6 p.st-body { max-width: 74%; }
	.espt-block-bd-offer-stamp .st6-wx { bottom: 14px; font-size: 27px; height: 72px; padding: 0 8px; right: 18px; width: 72px; }
	.espt-block-bd-offer-stamp .st6-rb { bottom: 8px; height: 52px; right: 34px; width: 16px; }
	.espt-block-bd-offer-stamp .st6-rb::after { height: 50px; left: 26px; width: 16px; }
	.espt-block-bd-offer-stamp .st8-g { gap: 11px; padding: 20px 14px 6px; }
	.espt-block-bd-offer-stamp .bd-cta-btn { width: auto; }
	.espt-block-bd-offer-stamp .bd-cta-full .bd-cta-btn { width: 100%; }
	.espt-block-bd-offer-stamp .bd-cta-ghost .bd-cta-btn { width: auto; }
}

/* ==================================================================== */
/* reduced motion                                                       */
/* ==================================================================== */
@media (prefers-reduced-motion: reduce) {
	.espt-block-bd-offer-stamp .st-seal,
	.espt-block-bd-offer-stamp .st-stamp-tx,
	.espt-block-bd-offer-stamp .st6-wx,
	.espt-block-bd-offer-stamp .bd-cta-attn .bd-cta-btn,
	.espt-block-bd-offer-stamp .bd-bico-bounce,
	.espt-block-bd-offer-stamp .bd-bico-pulse,
	.espt-block-bd-offer-stamp .st-tmr-d.is-tick { animation: none; }

	.espt-block-bd-offer-stamp .bd-cta-btn,
	.espt-block-bd-offer-stamp .bd-cta-shine .bd-cta-btn::after,
	.espt-block-bd-offer-stamp .st-card,
	.espt-block-bd-offer-stamp .bd-bico { transition: none; }

	.espt-block-bd-offer-stamp .bd-cta-shine .bd-cta-btn:hover::after { left: -80%; }
	.espt-block-bd-offer-stamp.bd-hover-lift .bdst:not(.espt-bd-box) .st-card:hover,
	.espt-block-bd-offer-stamp.bd-hover-scale .bdst:not(.espt-bd-box) .st-card:hover { transform: none; }
}
