/* BD Guarantee Ribbon — .espt-block-bd-guarantee-ribbon
   vars set by the spec: --gr-base (responsive size) --gr-anim-dur
   --gr-badge --gr-badge2 --gr-ribbon --gr-ribbon2 --gr-ring --gr-text --gr-ink
   --cta-bg --cta-color
   Root classes: is-text-align-* is-palette-gold|skin|mono is-corner-left|right
   The design is switched by the .gr-t1….gr-t8 class the render puts on .bdgr-fx,
   the box by .espt-bd-box on .bdgr (both come from the markup, not the root). */

/* ------------------------------------------------------------- root */
.espt-block-bd-guarantee-ribbon .bdgr {
	/* palette: classic gold + red (plugin defaults); user colours win */
	--g-badge: var(--gr-badge, #e9b949);
	--g-badge2: var(--gr-badge2, #a9781a);
	--g-ribbon: var(--gr-ribbon, #c0392b);
	--g-ribbon2: var(--gr-ribbon2, #87281c);
	--g-ring: var(--gr-ring, #fbf3d9);
	--g-text: var(--gr-text, #fff);
	--g-ink: var(--gr-ink, #5a3d00);
	color: var(--bd-ink);
	/* the whole graphic is em-scaled; never let it exceed a 320px viewport */
	font-size: min(var(--gr-base, 14px), 9vw);
	line-height: 1.12;
	max-width: 100%;
	min-width: 0;
	text-align: center;
}

.espt-block-bd-guarantee-ribbon.is-palette-skin .bdgr {
	--g-badge: var(--gr-badge, var(--bd-accent));
	--g-badge2: var(--gr-badge2, color-mix(in srgb, var(--bd-accent) 68%, #000));
	--g-ribbon: var(--gr-ribbon, var(--bd-primary));
	--g-ribbon2: var(--gr-ribbon2, var(--bd-primary-dark));
	--g-ring: var(--gr-ring, #fff);
	--g-text: var(--gr-text, #fff);
	--g-ink: var(--gr-ink, var(--bd-accent-ink));
}

.espt-block-bd-guarantee-ribbon.is-palette-mono .bdgr {
	--g-badge: var(--gr-badge, #1f2937);
	--g-badge2: var(--gr-badge2, #030712);
	--g-ribbon: var(--gr-ribbon, #d1a954);
	--g-ribbon2: var(--gr-ribbon2, #8a6a1f);
	/* cream, not gold: the ring doubles as the stamp border and the star row,
	   both of which sit on the gold ribbon and vanished when they matched it */
	--g-ring: var(--gr-ring, #f5e6bf);
	--g-text: var(--gr-text, #111827);
	--g-ink: var(--gr-ink, #f5e6bf);
}

.espt-block-bd-guarantee-ribbon.is-text-align-left .bdgr { text-align: left; }
.espt-block-bd-guarantee-ribbon.is-text-align-right .bdgr { text-align: right; }

/* the box is opt-in (toggle) — without it the seal floats on the page */
.espt-block-bd-guarantee-ribbon .bdgr.espt-bd-box { overflow: hidden; }

.espt-block-bd-guarantee-ribbon .bdgr * { box-sizing: border-box; }

.espt-block-bd-guarantee-ribbon .bdgr-fx {
	display: inline-block;
	line-height: 1.12;
	max-width: 100%;
	position: relative;
	transition: filter 0.25s ease;
	vertical-align: middle;
}

.espt-block-bd-guarantee-ribbon .bdgr-fx:hover { filter: brightness(1.05); }

.espt-block-bd-guarantee-ribbon .bdgr .gr-main,
.espt-block-bd-guarantee-ribbon .bdgr .gr-title,
.espt-block-bd-guarantee-ribbon .bdgr .gr-sub,
.espt-block-bd-guarantee-ribbon .bdgr .gr-cap {
	display: block;
	font-style: normal;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

/* ---------------------------------------------------- idle animations */
.espt-block-bd-guarantee-ribbon .bdgr-fx-spin { animation: espt-gr-spin var(--gr-anim-dur, 3s) linear infinite; }
.espt-block-bd-guarantee-ribbon .bdgr-fx-pulse { animation: espt-gr-pulse var(--gr-anim-dur, 3s) ease-in-out infinite; }
.espt-block-bd-guarantee-ribbon .bdgr-fx-float { animation: espt-gr-float var(--gr-anim-dur, 3s) ease-in-out infinite; }
.espt-block-bd-guarantee-ribbon .bdgr-fx-swing { animation: espt-gr-swing var(--gr-anim-dur, 3s) ease-in-out infinite; transform-origin: top center; }

@keyframes espt-gr-spin { to { transform: rotate(360deg); } }
@keyframes espt-gr-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes espt-gr-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-0.4em); } }
@keyframes espt-gr-swing { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(4deg); } 75% { transform: rotate(-4deg); } }

/* ------------------------------- t1 — starburst gold seal + red tails */
.espt-block-bd-guarantee-ribbon .gr-t1 {
	padding-bottom: 1.7em;
	width: 9.4em;
}

.espt-block-bd-guarantee-ribbon .gr-t1 .gr-burst {
	background: repeating-conic-gradient(var(--g-badge) 0 9deg, var(--g-badge2) 9deg 18deg);
	border-radius: 50%;
	box-shadow: 0 0.15em 0.5em rgba(0, 0, 0, 0.28);
	height: 9.4em;
	left: 0;
	position: absolute;
	top: 0;
	width: 9.4em;
	z-index: 1;
}

.espt-block-bd-guarantee-ribbon .gr-t1 .gr-ring {
	background: radial-gradient(circle at 50% 34%, var(--g-badge), var(--g-badge2));
	border: 0.26em solid var(--g-ring);
	border-radius: 50%;
	box-shadow: inset 0 0 0 0.12em rgba(0, 0, 0, 0.15), 0 0.1em 0.4em rgba(0, 0, 0, 0.25);
	color: var(--g-ink);
	display: grid;
	gap: 0.1em;
	/* a single 0-min track: long Bangla titles wrap inside the seal instead of
	   sizing an auto track to max-content and bleeding out of the circle */
	grid-template-columns: minmax(0, 1fr);
	height: 7.1em;
	margin: 1.15em auto 0;
	padding: 0 0.4em;
	place-content: center;
	position: relative;
	text-align: center;
	width: 7.1em;
	z-index: 2;
}

.espt-block-bd-guarantee-ribbon .gr-t1 .gr-main { font-size: 1.7em; font-weight: 900; line-height: 1; }
.espt-block-bd-guarantee-ribbon .gr-t1 .gr-title-top { font-size: 0.72em; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.espt-block-bd-guarantee-ribbon .gr-t1 .gr-cap { font-size: 0.5em; font-weight: 700; letter-spacing: 0.12em; opacity: 0.85; text-transform: uppercase; }

.espt-block-bd-guarantee-ribbon .gr-t1 .gr-tails {
	bottom: 0;
	display: flex;
	gap: 2.9em;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	z-index: 0;
}

.espt-block-bd-guarantee-ribbon .gr-t1 .gr-tails i {
	background: linear-gradient(var(--g-ribbon), var(--g-ribbon2));
	box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.25);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 70%, 0 100%);
	display: block;
	height: 2.7em;
	width: 1.8em;
}

.espt-block-bd-guarantee-ribbon .gr-t1 .gr-tails i:first-child { transform: rotate(14deg); }
.espt-block-bd-guarantee-ribbon .gr-t1 .gr-tails i:last-child { transform: rotate(-14deg); }

/* ------------------------------------------------- t2 — corner ribbon */
.espt-block-bd-guarantee-ribbon .gr-t2 {
	border-radius: 0.4em;
	height: 8.6em;
	overflow: hidden;
	width: 8.6em;
}

.espt-block-bd-guarantee-ribbon .gr-t2 .gr-band {
	background: linear-gradient(var(--g-ribbon), var(--g-ribbon2));
	box-shadow: 0 0.12em 0.4em rgba(0, 0, 0, 0.3);
	color: var(--g-text);
	font-size: 0.82em;
	font-weight: 800;
	letter-spacing: 0.08em;
	overflow: hidden;
	padding: 0.5em 0;
	position: absolute;
	right: -2.4em;
	text-align: center;
	text-overflow: ellipsis;
	top: 1.5em;
	transform: rotate(45deg);
	text-transform: uppercase;
	white-space: nowrap;
	width: 9.6em;
}

.espt-block-bd-guarantee-ribbon .gr-t2 .gr-band::before,
.espt-block-bd-guarantee-ribbon .gr-t2 .gr-band::after {
	border: 0.55em solid var(--g-ribbon2);
	border-bottom-color: transparent;
	content: '';
	position: absolute;
	top: 100%;
}

.espt-block-bd-guarantee-ribbon .gr-t2 .gr-band::before { border-left-color: transparent; left: 0; }
.espt-block-bd-guarantee-ribbon .gr-t2 .gr-band::after { border-right-color: transparent; right: 0; }

.espt-block-bd-guarantee-ribbon.is-corner-left .gr-t2 .gr-band {
	left: -2.4em;
	right: auto;
	transform: rotate(-45deg);
}

/* ---------------------------------------------- t3 — round star stamp */
.espt-block-bd-guarantee-ribbon .gr-t3 .gr-stamp {
	align-items: center;
	background: radial-gradient(circle, var(--g-ribbon), var(--g-ribbon2));
	border: 0.16em solid var(--g-ring);
	border-radius: 50%;
	box-shadow: 0 0 0 0.16em var(--g-ribbon), 0 0.15em 0.5em rgba(0, 0, 0, 0.3);
	color: var(--g-text);
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	height: 8.8em;
	justify-content: center;
	padding: 0 0.4em;
	position: relative;
	width: 8.8em;
}

.espt-block-bd-guarantee-ribbon .gr-t3 .gr-stars { color: var(--g-ring); font-size: 0.72em; letter-spacing: 0.16em; line-height: 1; }

.espt-block-bd-guarantee-ribbon .gr-t3 .gr-mid {
	background: var(--g-ribbon2);
	box-shadow: 0 0.1em 0.3em rgba(0, 0, 0, 0.4);
	clip-path: polygon(0 0, 100% 0, 92% 50%, 100% 100%, 0 100%, 8% 50%);
	color: var(--g-text);
	font-size: 0.92em;
	font-weight: 900;
	letter-spacing: 0.05em;
	max-width: 100%;
	padding: 0.28em 1em;
	text-transform: uppercase;
}

.espt-block-bd-guarantee-ribbon .gr-t3 .gr-cap { font-size: 0.5em; letter-spacing: 0.14em; opacity: 0.9; text-transform: uppercase; }

/* ---------------------------------------------- t4 — money-back wave */
.espt-block-bd-guarantee-ribbon .gr-t4 { padding: 0.7em 0.4em; }

.espt-block-bd-guarantee-ribbon .gr-t4 .gr-wave {
	background: linear-gradient(180deg, var(--g-badge), var(--g-badge2));
	border: 0.1em solid rgba(255, 255, 255, 0.45);
	border-radius: 0.5em;
	box-shadow: 0 0.3em 0.5em rgba(0, 0, 0, 0.22);
	color: var(--g-ink);
	display: inline-block;
	font-size: 0.95em;
	font-weight: 900;
	letter-spacing: 0.03em;
	max-width: 100%;
	padding: 0.7em 1.6em;
	position: relative;
	text-transform: uppercase;
	transform: rotate(-5deg);
}

.espt-block-bd-guarantee-ribbon .gr-t4 .gr-wave::before,
.espt-block-bd-guarantee-ribbon .gr-t4 .gr-wave::after {
	background: var(--g-badge2);
	bottom: -0.45em;
	content: '';
	height: 1em;
	position: absolute;
	width: 1.4em;
	z-index: -1;
}

.espt-block-bd-guarantee-ribbon .gr-t4 .gr-wave::before { left: -0.35em; transform: skewX(22deg); }
.espt-block-bd-guarantee-ribbon .gr-t4 .gr-wave::after { right: -0.35em; transform: skewX(-22deg); }

/* -------------------------------------- t5 — ornate badge + ribbons */
.espt-block-bd-guarantee-ribbon .gr-t5 {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	padding: 0 1.7em;
	position: relative;
}

.espt-block-bd-guarantee-ribbon .gr-t5 .gr-tail {
	background: linear-gradient(var(--g-ribbon), var(--g-ribbon2));
	box-shadow: 0 0.12em 0.3em rgba(0, 0, 0, 0.25);
	height: 2.2em;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 3.4em;
	z-index: 1;
}

.espt-block-bd-guarantee-ribbon .gr-t5 .gr-tail-l { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 30% 50%); left: 0; }
.espt-block-bd-guarantee-ribbon .gr-t5 .gr-tail-r { clip-path: polygon(0 0, 100% 0, 70% 50%, 100% 100%, 0 100%); right: 0; }

.espt-block-bd-guarantee-ribbon .gr-t5 .gr-badge {
	background: linear-gradient(var(--g-badge), var(--g-badge2));
	border: 0.14em solid var(--g-ring);
	border-radius: 0.6em;
	box-shadow: 0 0.2em 0.5em rgba(0, 0, 0, 0.28);
	color: var(--g-ink);
	display: block;
	max-width: 100%;
	min-width: 0;
	padding: 0.7em 1.4em;
	position: relative;
	text-align: center;
	z-index: 2;
}

.espt-block-bd-guarantee-ribbon .gr-t5 .gr-badge .gr-title { font-size: 1.05em; font-weight: 900; line-height: 1.1; }
.espt-block-bd-guarantee-ribbon .gr-t5 .gr-badge .gr-cap { font-size: 0.62em; font-style: italic; letter-spacing: 0.04em; opacity: 0.85; }

/* ------------------------------------------------ t6 — award rosette */
.espt-block-bd-guarantee-ribbon .gr-t6 { padding-bottom: 2.5em; }

.espt-block-bd-guarantee-ribbon .gr-t6 .gr-rose {
	background: radial-gradient(circle at 50% 34%, var(--g-badge), var(--g-badge2));
	border: 0.28em solid var(--g-ring);
	border-radius: 50%;
	box-shadow: inset 0 0 0 0.12em rgba(0, 0, 0, 0.14), 0 0.12em 0.45em rgba(0, 0, 0, 0.25);
	color: var(--g-ink);
	display: grid;
	gap: 0.08em;
	grid-template-columns: minmax(0, 1fr);
	height: 7.4em;
	padding: 0 0.4em;
	place-content: center;
	position: relative;
	text-align: center;
	width: 7.4em;
	z-index: 2;
}

.espt-block-bd-guarantee-ribbon .gr-t6 .gr-main { font-size: 1.7em; font-weight: 900; line-height: 1; }
.espt-block-bd-guarantee-ribbon .gr-t6 .gr-rose .gr-title { font-size: 0.62em; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }

.espt-block-bd-guarantee-ribbon .gr-t6 .gr-rt {
	background: linear-gradient(var(--g-ribbon), var(--g-ribbon2));
	bottom: 0;
	box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.22);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 72%, 0 100%);
	height: 3.2em;
	left: 50%;
	position: absolute;
	width: 2em;
	z-index: 1;
}

.espt-block-bd-guarantee-ribbon .gr-t6 .gr-rt1 { transform: translateX(-92%) rotate(11deg); }
.espt-block-bd-guarantee-ribbon .gr-t6 .gr-rt2 { transform: translateX(-8%) rotate(-11deg); }

/* ---------------------------------------------- t7 — clean flat seal */
.espt-block-bd-guarantee-ribbon .gr-t7 .gr-flat {
	align-items: center;
	background: var(--g-ribbon);
	border: 0.3em solid var(--g-ring);
	border-radius: 50%;
	box-shadow: 0 0.18em 0.5em rgba(0, 0, 0, 0.2);
	color: var(--g-text);
	display: flex;
	flex-direction: column;
	gap: 0.2em;
	height: 7.6em;
	justify-content: center;
	padding: 0 0.5em;
	text-align: center;
	width: 7.6em;
}

.espt-block-bd-guarantee-ribbon .gr-t7 .gr-flat-ic {
	display: grid;
	font-size: 1.7em;
	line-height: 1;
	place-items: center;
}

.espt-block-bd-guarantee-ribbon .gr-t7 .gr-flat-ic svg { fill: currentColor; height: 1em; width: 1em; }
.espt-block-bd-guarantee-ribbon .gr-t7 .gr-title { font-size: 0.95em; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase; }
.espt-block-bd-guarantee-ribbon .gr-t7 .gr-cap { font-size: 0.55em; letter-spacing: 0.1em; opacity: 0.9; text-transform: uppercase; }

/* -------------------------------------------- t8 — horizontal banner */
.espt-block-bd-guarantee-ribbon .gr-t8 { padding: 0.5em 1.3em; }

.espt-block-bd-guarantee-ribbon .gr-t8 .gr-ban {
	background: linear-gradient(var(--g-ribbon), var(--g-ribbon2));
	box-shadow: 0 0.2em 0.4em rgba(0, 0, 0, 0.22);
	clip-path: polygon(0 0, 100% 0, calc(100% - 1.1em) 50%, 100% 100%, 0 100%, 1.1em 50%);
	color: var(--g-text);
	display: inline-block;
	font-size: 1em;
	font-weight: 900;
	letter-spacing: 0.06em;
	max-width: 100%;
	padding: 0.85em 2.6em;
	position: relative;
	text-transform: uppercase;
}

/* ---------------------------------------------------------------- CTA */
.espt-block-bd-guarantee-ribbon .bd-cta {
	align-items: center;
	display: flex;
	flex-direction: column;
	font-size: 1rem;
	gap: 7px;
	line-height: 1.4;
	margin-top: 18px;
	min-width: 0;
}

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

.espt-block-bd-guarantee-ribbon .bd-cta-btn {
	align-items: center;
	background: var(--cta-bg, var(--espt-btn-bg, var(--bd-primary)));
	border: 0;
	border-radius: var(--espt-btn-radius, 9px);
	box-shadow: none;
	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 28px;
	text-align: center;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease, background-color 0.15s ease;
	width: 100%;
}

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

/* the label span only — .bd-bico must keep its 1em icon box */
.espt-block-bd-guarantee-ribbon .bd-cta-btn > span:not(.bd-bico) {
	min-width: 0;
	overflow-wrap: anywhere;
}

.espt-block-bd-guarantee-ribbon .bd-cta-note {
	color: var(--bd-muted);
	font-size: 12.5px;
	line-height: 1.5;
	max-width: 100%;
	overflow-wrap: anywhere;
	text-align: center;
}

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

.espt-block-bd-guarantee-ribbon .bd-cta-pill .bd-cta-btn { border-radius: 99px; }
.espt-block-bd-guarantee-ribbon .bd-cta-gradient .bd-cta-btn { background-image: linear-gradient(135deg, var(--cta-bg, var(--bd-primary)), var(--bd-primary-dark)); }
.espt-block-bd-guarantee-ribbon .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-guarantee-ribbon .bd-cta-outline .bd-cta-btn:hover { background: var(--bd-soft); color: var(--cta-color, var(--cta-bg, var(--bd-primary))); }
.espt-block-bd-guarantee-ribbon .bd-cta-soft .bd-cta-btn { background: var(--bd-soft); color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-guarantee-ribbon .bd-cta-soft .bd-cta-btn:hover { color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-guarantee-ribbon .bd-cta-3d .bd-cta-btn { box-shadow: 0 4px 0 var(--bd-primary-dark); }
.espt-block-bd-guarantee-ribbon .bd-cta-3d .bd-cta-btn:active { box-shadow: 0 0 0 var(--bd-primary-dark); transform: translateY(4px); }
.espt-block-bd-guarantee-ribbon .bd-cta-glow .bd-cta-btn { box-shadow: 0 8px 26px -8px var(--cta-bg, var(--bd-primary)); }
.espt-block-bd-guarantee-ribbon .bd-cta-elevated .bd-cta-btn { box-shadow: 0 12px 26px -12px rgba(15, 23, 42, 0.5); }
.espt-block-bd-guarantee-ribbon .bd-cta-shine .bd-cta-btn { overflow: hidden; position: relative; }
.espt-block-bd-guarantee-ribbon .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-guarantee-ribbon .bd-cta-shine .bd-cta-btn:hover::after { left: 130%; }
.espt-block-bd-guarantee-ribbon .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-guarantee-ribbon .bd-cta-ghost .bd-cta-btn:hover { color: var(--cta-color, var(--bd-primary-dark)); }

.espt-block-bd-guarantee-ribbon .bd-cta-attn .bd-cta-btn { animation: espt-gr-pop 1.8s ease-in-out infinite; }
@keyframes espt-gr-pop {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.045); }
}

/* button icon */
.espt-block-bd-guarantee-ribbon .bd-bico { display: inline-flex; line-height: 0; transition: transform 0.2s ease; }
.espt-block-bd-guarantee-ribbon .bd-bico svg { height: 1em; width: 1em; }
.espt-block-bd-guarantee-ribbon .bd-cta-btn:hover .bd-bico-slide { transform: translateX(4px); }
.espt-block-bd-guarantee-ribbon .bd-bico-bounce { animation: espt-gr-ico-bounce 1.6s ease-in-out infinite; }
.espt-block-bd-guarantee-ribbon .bd-bico-pulse { animation: espt-gr-ico-pulse 1.8s ease-in-out infinite; }
@keyframes espt-gr-ico-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-4px); }
}
@keyframes espt-gr-ico-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.18); }
}

/* ------------------------------------------------------------- tablet + */
@media (min-width: 768px) {
	.espt-block-bd-guarantee-ribbon .bdgr { font-size: var(--gr-base, 16px); }
	.espt-block-bd-guarantee-ribbon .bd-cta { margin-top: 22px; }
	.espt-block-bd-guarantee-ribbon .bd-cta-btn { width: auto; }
	.espt-block-bd-guarantee-ribbon .bd-cta-full .bd-cta-btn { width: 100%; }
	.espt-block-bd-guarantee-ribbon .bd-cta-ghost .bd-cta-btn { width: auto; }
}

@media (min-width: 1024px) {
	.espt-block-bd-guarantee-ribbon .bdgr { font-size: var(--gr-base, 18px); }
}

/* keyboard focus (the seal itself is not focusable — only the CTA link) */
.espt-block-bd-guarantee-ribbon .bd-cta-btn:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--cta-bg, var(--bd-primary)) 55%, transparent);
	outline-offset: 3px;
}

/* ------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
	.espt-block-bd-guarantee-ribbon .bdgr-fx,
	.espt-block-bd-guarantee-ribbon .bd-cta-btn,
	.espt-block-bd-guarantee-ribbon .bd-cta-shine .bd-cta-btn::after,
	.espt-block-bd-guarantee-ribbon .bd-bico { transition: none; }
	.espt-block-bd-guarantee-ribbon .bdgr-fx-spin,
	.espt-block-bd-guarantee-ribbon .bdgr-fx-pulse,
	.espt-block-bd-guarantee-ribbon .bdgr-fx-float,
	.espt-block-bd-guarantee-ribbon .bdgr-fx-swing,
	.espt-block-bd-guarantee-ribbon .bd-cta-attn .bd-cta-btn,
	.espt-block-bd-guarantee-ribbon .bd-bico-bounce,
	.espt-block-bd-guarantee-ribbon .bd-bico-pulse { animation: none; }
	.espt-block-bd-guarantee-ribbon .bd-cta-hover-lift:hover,
	.espt-block-bd-guarantee-ribbon .bd-cta-hover-scale:hover { transform: none; }
}
