/* BD Free Gift Box — .espt-block-bd-gift-box  (plugin component .bdf8)
   vars: --title-size --body-size --icon-size --badge-size --gap
         --tag-color --tag-text-color --title-color --body-color
         --icon-bg --icon-color --badge-color --check-color --price-color
         --cta-bg --cta-color --cta-size --cta-radius --cta-space --cta-note-color
         (internal: --ta --jc --cta-ai --cta-ta --cta-bg-d --cta-fg-d --tag-top --tag-tx --tag-ty)
         --seal-size --seal-gap --seal-x --seal-y --seal-rotate --seal-anim-dur --seal-bg --seal-color
   classes: is-design-{classic|wrap|ticket|soft|dark|gradient|plain}
            is-icon-type-{emoji|icon|image|none} is-icon-pos-{left|top}
            is-icon-shape-{rounded|circle|none} is-icon-anim-{wiggle|float|pulse|hover}
            is-tag-pos-{center|left|right} is-tag-dot / no-tag-dot
            is-text-align-{left|center|right} is-badge-style-{text|pills|outline|solid}
            is-cta-align-{left|center|right} + .bd-cta-* wrapper classes
            is-seal-shape-* is-seal-position-* is-seal-anim-* is-seal-clip / no-seal-clip
   card state: .bdf8.has-tag / .has-sym / .has-seal */

/* Text alignment is shared by the title, badges and (symbol on top) the body. */
.espt-block-bd-gift-box {
	--cta-bg-d: var(--bd-primary);
	--cta-fg-d: #fff;
	--jc: center;
	--ta: center;
}
.espt-block-bd-gift-box.is-text-align-left { --ta: left; --jc: flex-start; }
.espt-block-bd-gift-box.is-text-align-center { --ta: center; --jc: center; }
.espt-block-bd-gift-box.is-text-align-right { --ta: right; --jc: flex-end; }

/* ------------------------------------------------------------------ card */
.espt-block-bd-gift-box .bdf8 {
	color: var(--bd-body);
	margin-top: 18px;
	min-width: 0;
	overflow-wrap: anywhere;
	position: relative;
}

/* content sits above the decorative design layers */
.espt-block-bd-gift-box .bdf8 > * { position: relative; z-index: 1; }

/* The floating tag is centred on the top edge, so it only ever reaches half
   its own height into the card — a two-line tag still clears the content. */
.espt-block-bd-gift-box .bdf8.has-tag { padding-top: calc(var(--bd-pad, 16px) + 8px); }

/* clipping the seal also clips the floating tag, so tuck the tag inside
   (only when a seal is really rendered — the class is emitted either way) */
.espt-block-bd-gift-box.is-seal-clip .bdf8.has-seal { overflow: hidden; }
.espt-block-bd-gift-box.is-seal-clip .bdf8.has-seal.has-tag { padding-top: calc(var(--bd-pad, 16px) + 26px); }
.espt-block-bd-gift-box.is-seal-clip .has-seal .bdf8-tag { --tag-top: 8px; --tag-ty: 0; }

/* ----------------------------------------------------------- floating tag */
.espt-block-bd-gift-box .bdf8-tag {
	align-items: center;
	background: var(--tag-color, var(--bd-danger));
	border-radius: 99px;
	box-shadow: 0 8px 18px -10px rgba(15, 23, 42, 0.55);
	color: var(--tag-text-color, #fff);
	display: inline-flex;
	font-size: 12.5px;
	font-weight: 700;
	gap: 7px;
	left: 50%;
	line-height: 1.35;
	max-width: calc(100% - 24px);
	padding: 5px 14px;
	position: absolute;
	text-align: center;
	top: var(--tag-top, 0px);
	transform: translate(var(--tag-tx, -50%), var(--tag-ty, -50%));
	z-index: 4;
}

.espt-block-bd-gift-box .bdf8-tag span { min-width: 0; overflow-wrap: anywhere; }

.espt-block-bd-gift-box .bdf8-tag i {
	background: currentColor;
	border-radius: 50%;
	flex: none;
	height: 6px;
	width: 6px;
}

.espt-block-bd-gift-box.is-tag-dot .bdf8-tag i { animation: bdf8-dot 1.6s ease-in-out infinite; }
.espt-block-bd-gift-box.no-tag-dot .bdf8-tag i { display: none; }

@keyframes bdf8-dot {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.45; transform: scale(1.5); }
}

.espt-block-bd-gift-box.is-tag-pos-center .bdf8-tag { --tag-tx: -50%; left: 50%; right: auto; }
.espt-block-bd-gift-box.is-tag-pos-left .bdf8-tag { --tag-tx: 0; left: 14px; right: auto; }
.espt-block-bd-gift-box.is-tag-pos-right .bdf8-tag { --tag-tx: 0; left: auto; right: 14px; }

/* ----------------------------------------------------------------- title */
.espt-block-bd-gift-box .bdf8-h {
	color: var(--title-color, var(--bd-deep));
	font-size: var(--title-size, 18px);
	font-weight: 800;
	line-height: 1.35;
	margin: 2px 0 12px;
	min-width: 0;
	overflow-wrap: anywhere;
	text-align: var(--ta);
}

.espt-block-bd-gift-box .bdf8-h u { text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* -------------------------------------------------------- symbol + text */
.espt-block-bd-gift-box .bdf8-row {
	align-items: flex-start;
	display: flex;
	gap: var(--gap, 14px);
	min-width: 0;
}

.espt-block-bd-gift-box.is-icon-pos-top .bdf8-row {
	align-items: var(--jc);
	flex-direction: column;
}

.espt-block-bd-gift-box .bdf8-ic {
	align-items: center;
	background: var(--icon-bg, color-mix(in srgb, var(--bd-primary) 12%, #fff));
	border-radius: 12px;
	color: var(--icon-color, var(--bd-primary));
	display: inline-flex;
	flex: none;
	font-size: var(--icon-size, 22px);
	height: calc(var(--icon-size, 22px) * 2.1);
	justify-content: center;
	transition: transform 0.25s ease;
	width: calc(var(--icon-size, 22px) * 2.1);
}

.espt-block-bd-gift-box.is-icon-shape-circle .bdf8-ic { border-radius: 50%; }

.espt-block-bd-gift-box.is-icon-shape-none .bdf8-ic {
	background: none;
	border-radius: 0;
	height: auto;
	width: auto;
}

.espt-block-bd-gift-box .bdf8-emoji { display: block; font-size: 1em; line-height: 1.1; }

.espt-block-bd-gift-box .bdf8-svg { display: inline-flex; line-height: 0; }
.espt-block-bd-gift-box .bdf8-svg svg { height: 1em; width: 1em; }

.espt-block-bd-gift-box.is-icon-type-image .bdf8-ic {
	background: none;
	height: auto;
	overflow: hidden;
	width: auto;
}

.espt-block-bd-gift-box.is-icon-type-image.is-icon-shape-rounded .bdf8-ic,
.espt-block-bd-gift-box.is-icon-type-image.is-icon-shape-circle .bdf8-ic {
	background: var(--icon-bg, color-mix(in srgb, var(--bd-primary) 10%, #fff));
	padding: 6px;
}

.espt-block-bd-gift-box .bdf8-img {
	border-radius: 10px;
	display: block;
	height: calc(var(--icon-size, 22px) * 2.4);
	object-fit: cover;
	width: calc(var(--icon-size, 22px) * 2.4);
}

.espt-block-bd-gift-box.is-icon-shape-circle .bdf8-img { border-radius: 50%; }
.espt-block-bd-gift-box.is-icon-shape-none .bdf8-img { border-radius: 0; }

/* symbol animations */
.espt-block-bd-gift-box.is-icon-anim-wiggle .bdf8-ic > * { animation: bdf8-wiggle 2.6s ease-in-out infinite; display: inline-block; }
.espt-block-bd-gift-box.is-icon-anim-float .bdf8-ic > * { animation: bdf8-float 2.4s ease-in-out infinite alternate; display: inline-block; }
.espt-block-bd-gift-box.is-icon-anim-pulse .bdf8-ic > * { animation: bdf8-pulse 1.9s ease-in-out infinite; display: inline-block; }
.espt-block-bd-gift-box.is-icon-anim-hover .bdf8:hover .bdf8-ic { transform: rotate(-7deg) scale(1.07); }

@keyframes bdf8-wiggle {
	0%, 100% { transform: rotate(0); }
	20% { transform: rotate(-11deg); }
	40% { transform: rotate(9deg); }
	60% { transform: rotate(-6deg); }
	80% { transform: rotate(4deg); }
}
@keyframes bdf8-float {
	from { transform: translateY(0); }
	to { transform: translateY(-6px); }
}
@keyframes bdf8-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.14); }
}

.espt-block-bd-gift-box .bdf8-p {
	color: var(--body-color, var(--bd-body));
	font-size: var(--body-size, 14px);
	line-height: 1.75;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
	text-align: left;
}

.espt-block-bd-gift-box.is-icon-pos-top .bdf8-p,
.espt-block-bd-gift-box .bdf8:not(.has-sym) .bdf8-p { text-align: var(--ta); }

.espt-block-bd-gift-box .bdf8-p strong { color: var(--title-color, var(--bd-deep)); font-weight: 800; }

/* ----------------------------------------------------------- price strip */
.espt-block-bd-gift-box .bdf8-price {
	align-items: baseline;
	background: color-mix(in srgb, var(--bd-soft) 78%, transparent);
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	justify-content: var(--jc);
	margin-top: 14px;
	min-width: 0;
	padding: 10px 12px;
}

.espt-block-bd-gift-box .bdf8-pl {
	color: var(--bd-muted);
	font-size: 12.5px;
	font-weight: 600;
}

.espt-block-bd-gift-box .bdf8-po {
	color: var(--bd-muted);
	font-size: 14px;
	text-decoration: line-through;
}

.espt-block-bd-gift-box .bdf8-pn {
	color: var(--price-color, var(--bd-danger));
	font-size: calc(var(--title-size, 18px) * 0.98);
	font-weight: 800;
	line-height: 1.2;
}

/* WooCommerce wraps prices in .amount / <bdi> — keep our colours */
.espt-block-bd-gift-box .bdf8-pn .amount,
.espt-block-bd-gift-box .bdf8-pn bdi,
.espt-block-bd-gift-box .bdf8-po .amount,
.espt-block-bd-gift-box .bdf8-po bdi { color: inherit; font-size: inherit; }

.espt-block-bd-gift-box .bdf8-pt {
	background: color-mix(in srgb, var(--bd-primary) 12%, #fff);
	border-radius: 99px;
	color: var(--bd-primary-dark);
	font-size: 11.5px;
	font-weight: 700;
	padding: 3px 10px;
}

/* -------------------------------------------------------- footer badges */
.espt-block-bd-gift-box .bdf8-ft {
	border-top: 1px solid var(--bd-line);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	justify-content: var(--jc);
	margin-top: 16px;
	min-width: 0;
	padding-top: 13px;
}

.espt-block-bd-gift-box .bdf8-b {
	align-items: center;
	color: var(--badge-color, var(--bd-deep));
	display: inline-flex;
	font-size: var(--badge-size, 13px);
	font-weight: 600;
	gap: 6px;
	line-height: 1.4;
	min-width: 0;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.espt-block-bd-gift-box .bdf8-bi {
	color: var(--check-color, var(--bd-primary));
	display: inline-flex;
	flex: none;
	line-height: 0;
}

.espt-block-bd-gift-box .bdf8-bi svg { height: 1.15em; width: 1.15em; }
.espt-block-bd-gift-box .bdf8-bt { min-width: 0; overflow-wrap: anywhere; }

.espt-block-bd-gift-box.is-badge-style-pills .bdf8-b {
	background: var(--bd-soft);
	border-radius: 99px;
	padding: 6px 12px;
}

.espt-block-bd-gift-box.is-badge-style-outline .bdf8-b {
	background: transparent;
	border: 1px solid var(--bd-soft-line);
	border-radius: 99px;
	padding: 5px 12px;
}

.espt-block-bd-gift-box.is-badge-style-solid .bdf8-b {
	background: var(--bd-primary);
	border-radius: 99px;
	color: var(--badge-color, #fff);
	padding: 6px 12px;
}

.espt-block-bd-gift-box.is-badge-style-solid .bdf8-bi { color: var(--check-color, #fff); }

.espt-block-bd-gift-box.is-badge-style-pills .bdf8-b:hover,
.espt-block-bd-gift-box.is-badge-style-outline .bdf8-b:hover,
.espt-block-bd-gift-box.is-badge-style-solid .bdf8-b:hover { transform: translateY(-2px); }

/* ================================================================ designs */

/* --- classic — rose / danger frame (the original .bdf8) */
.espt-block-bd-gift-box.is-design-classic { --bd-box-line: color-mix(in srgb, var(--bd-danger) 42%, #fff); }
.espt-block-bd-gift-box.is-design-classic .bdf8 { border-width: 1.5px; }
.espt-block-bd-gift-box.is-design-classic .bdf8-ic { background: var(--icon-bg, color-mix(in srgb, var(--bd-danger) 12%, #fff)); }
.espt-block-bd-gift-box.is-design-classic .bdf8-ft { border-top-color: color-mix(in srgb, var(--bd-danger) 22%, #fff); }
.espt-block-bd-gift-box.is-design-classic .bdf8-price { background: color-mix(in srgb, var(--bd-danger) 8%, #fff); }

/* --- wrap — gift paper with a ribbon crossing the corner */
.espt-block-bd-gift-box.is-design-wrap { --bd-box-line: color-mix(in srgb, var(--bd-primary) 30%, #fff); }

.espt-block-bd-gift-box.is-design-wrap .bdf8 {
	background-image: repeating-linear-gradient(135deg, color-mix(in srgb, var(--bd-primary) 7%, transparent) 0 9px, transparent 9px 20px);
	padding-left: calc(var(--bd-pad, 16px) + 12px);
}

.espt-block-bd-gift-box.is-design-wrap .bdf8::before,
.espt-block-bd-gift-box.is-design-wrap .bdf8::after {
	background-image: linear-gradient(180deg, color-mix(in srgb, var(--bd-danger) 78%, #fff), var(--bd-danger));
	content: "";
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

/* vertical ribbon down the left edge */
.espt-block-bd-gift-box.is-design-wrap .bdf8::before {
	border-radius: var(--bd-radius, 16px) 0 0 var(--bd-radius, 16px);
	bottom: 0;
	left: 0;
	top: 0;
	width: 14px;
}

/* horizontal ribbon along the bottom edge */
.espt-block-bd-gift-box.is-design-wrap .bdf8::after {
	background-image: linear-gradient(90deg, color-mix(in srgb, var(--bd-danger) 78%, #fff), var(--bd-danger));
	border-radius: 0 0 var(--bd-radius, 16px) var(--bd-radius, 16px);
	bottom: 0;
	height: 8px;
	left: 0;
	right: 0;
}

.espt-block-bd-gift-box.is-design-wrap .bdf8-ic { background: var(--icon-bg, color-mix(in srgb, var(--bd-danger) 10%, #fff)); }

/* --- ticket — dashed coupon with perforated inner edges */
.espt-block-bd-gift-box.is-design-ticket { --bd-box-bg: color-mix(in srgb, var(--bd-soft) 55%, #fff); }

.espt-block-bd-gift-box.is-design-ticket .bdf8 {
	border: 2px dashed color-mix(in srgb, var(--bd-primary) 45%, #fff);
	padding-left: calc(var(--bd-pad, 16px) + 8px);
	padding-right: calc(var(--bd-pad, 16px) + 8px);
}

.espt-block-bd-gift-box.is-design-ticket .bdf8::before,
.espt-block-bd-gift-box.is-design-ticket .bdf8::after {
	background-image: radial-gradient(circle at 5px 8px, color-mix(in srgb, var(--bd-primary) 32%, #fff) 0 2.5px, transparent 3px);
	background-repeat: repeat-y;
	background-size: 10px 16px;
	bottom: 12px;
	content: "";
	pointer-events: none;
	position: absolute;
	top: 12px;
	width: 10px;
	z-index: 0;
}

.espt-block-bd-gift-box.is-design-ticket .bdf8::before { left: 3px; }
.espt-block-bd-gift-box.is-design-ticket .bdf8::after { right: 3px; }

.espt-block-bd-gift-box.is-design-ticket .bdf8-ft { border-top-style: dashed; border-top-color: color-mix(in srgb, var(--bd-primary) 35%, #fff); }
.espt-block-bd-gift-box.is-design-ticket .bdf8-price { background: #fff; border: 1px dashed color-mix(in srgb, var(--bd-primary) 35%, #fff); }

/* --- soft — tinted card */
.espt-block-bd-gift-box.is-design-soft { --bd-box-bg: var(--bd-soft); --bd-box-line: var(--bd-soft-line); }
.espt-block-bd-gift-box.is-design-soft .bdf8-ic { background: var(--icon-bg, #fff); }
.espt-block-bd-gift-box.is-design-soft .bdf8-price { background: color-mix(in srgb, #fff 70%, transparent); }
.espt-block-bd-gift-box.is-design-soft .bdf8-ft { border-top-color: var(--bd-soft-line); }

/* --- dark card */
.espt-block-bd-gift-box.is-design-dark {
	--bd-box-bg: color-mix(in srgb, var(--bd-deep) 88%, #000);
	--bd-box-line: rgba(255, 255, 255, 0.14);
}

.espt-block-bd-gift-box.is-design-dark .bdf8 { color: rgba(255, 255, 255, 0.86); }
.espt-block-bd-gift-box.is-design-dark .bdf8-h { color: var(--title-color, #fff); }
.espt-block-bd-gift-box.is-design-dark .bdf8-p { color: var(--body-color, rgba(255, 255, 255, 0.84)); }
.espt-block-bd-gift-box.is-design-dark .bdf8-p strong { color: var(--title-color, #fff); }
.espt-block-bd-gift-box.is-design-dark .bdf8-ic { background: var(--icon-bg, rgba(255, 255, 255, 0.1)); color: var(--icon-color, var(--bd-accent)); }
.espt-block-bd-gift-box.is-design-dark .bdf8-ft { border-top-color: rgba(255, 255, 255, 0.16); }
.espt-block-bd-gift-box.is-design-dark .bdf8-b { color: var(--badge-color, #fff); }
.espt-block-bd-gift-box.is-design-dark .bdf8-bi { color: var(--check-color, var(--bd-accent)); }
.espt-block-bd-gift-box.is-design-dark.is-badge-style-pills .bdf8-b,
.espt-block-bd-gift-box.is-design-dark.is-badge-style-outline .bdf8-b { background: rgba(255, 255, 255, 0.09); border-color: rgba(255, 255, 255, 0.18); }
.espt-block-bd-gift-box.is-design-dark .bdf8-price { background: rgba(255, 255, 255, 0.08); }
.espt-block-bd-gift-box.is-design-dark .bdf8-pl,
.espt-block-bd-gift-box.is-design-dark .bdf8-po { color: rgba(255, 255, 255, 0.62); }
.espt-block-bd-gift-box.is-design-dark .bdf8-pn { color: var(--price-color, var(--bd-accent)); }
.espt-block-bd-gift-box.is-design-dark .bdf8-pt { background: rgba(255, 255, 255, 0.14); color: #fff; }
.espt-block-bd-gift-box.is-design-dark .bd-cta-note { color: var(--cta-note-color, rgba(255, 255, 255, 0.66)); }

/* --- gradient card */
.espt-block-bd-gift-box.is-design-gradient { --bd-box-line: transparent; }

.espt-block-bd-gift-box.is-design-gradient .bdf8 {
	background-image: linear-gradient(140deg, var(--bd-primary), var(--bd-primary-dark) 62%, var(--bd-deep));
	color: rgba(255, 255, 255, 0.88);
}

.espt-block-bd-gift-box.is-design-gradient .bdf8-h { color: var(--title-color, #fff); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-p { color: var(--body-color, rgba(255, 255, 255, 0.88)); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-p strong { color: var(--title-color, #fff); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-ic { background: var(--icon-bg, rgba(255, 255, 255, 0.16)); color: var(--icon-color, #fff); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-ft { border-top-color: rgba(255, 255, 255, 0.24); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-b { color: var(--badge-color, #fff); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-bi { color: var(--check-color, #fff); }
.espt-block-bd-gift-box.is-design-gradient.is-badge-style-pills .bdf8-b,
.espt-block-bd-gift-box.is-design-gradient.is-badge-style-outline .bdf8-b { background: rgba(255, 255, 255, 0.14); border-color: rgba(255, 255, 255, 0.3); }
.espt-block-bd-gift-box.is-design-gradient.is-badge-style-solid .bdf8-b { background: rgba(0, 0, 0, 0.22); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-price { background: rgba(255, 255, 255, 0.14); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-pl,
.espt-block-bd-gift-box.is-design-gradient .bdf8-po { color: rgba(255, 255, 255, 0.72); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-pn { color: var(--price-color, #fff); }
.espt-block-bd-gift-box.is-design-gradient .bdf8-pt { background: rgba(255, 255, 255, 0.22); color: #fff; }
.espt-block-bd-gift-box.is-design-gradient .bd-cta-note { color: var(--cta-note-color, rgba(255, 255, 255, 0.75)); }

/* --- plain box */
.espt-block-bd-gift-box.is-design-plain { --bd-box-line: var(--bd-line); }
.espt-block-bd-gift-box.is-design-plain .bdf8-ic { background: var(--icon-bg, color-mix(in srgb, var(--bd-ink) 6%, #fff)); }
.espt-block-bd-gift-box.is-design-plain .bdf8-price { background: color-mix(in srgb, var(--bd-ink) 4%, #fff); }

/* =================================================================== CTA */
.espt-block-bd-gift-box .bd-cta {
	align-items: var(--cta-ai, center);
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-top: var(--cta-space, 18px);
	min-width: 0;
}

.espt-block-bd-gift-box.is-cta-align-left { --cta-ai: flex-start; --cta-ta: left; }
.espt-block-bd-gift-box.is-cta-align-center { --cta-ai: center; --cta-ta: center; }
.espt-block-bd-gift-box.is-cta-align-right { --cta-ai: flex-end; --cta-ta: right; }

.espt-block-bd-gift-box .bd-cta-btn {
	align-items: center;
	background: var(--cta-bg, var(--cta-bg-d, var(--espt-btn-bg, var(--bd-primary))));
	border: 0;
	border-radius: var(--cta-radius, 10px);
	color: var(--cta-color, var(--cta-fg-d, #fff));
	cursor: pointer;
	display: inline-flex;
	font-size: var(--cta-size, 16px);
	font-weight: 800;
	gap: 9px;
	justify-content: center;
	line-height: 1.25;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
	padding: 13px 26px;
	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-gift-box .bd-cta-btn:hover { color: var(--cta-color, var(--cta-fg-d, #fff)); filter: brightness(1.07); text-decoration: none; }

.espt-block-bd-gift-box .bd-cta-hover-lift:hover { box-shadow: 0 12px 24px -12px rgba(15, 23, 42, 0.45); transform: translateY(-3px); }
.espt-block-bd-gift-box .bd-cta-hover-scale:hover { transform: scale(1.04); }
.espt-block-bd-gift-box .bd-cta-hover-glow:hover { box-shadow: 0 0 0 4px color-mix(in srgb, var(--cta-bg, var(--cta-bg-d, var(--bd-primary))) 28%, transparent); }

.espt-block-bd-gift-box .bd-cta-note {
	color: var(--cta-note-color, var(--bd-muted));
	font-size: 12.5px;
	line-height: 1.5;
	text-align: var(--cta-ta, center);
}

/* button designs — "solid" is the base look, spelled out so every class the
   render emits is styled */
.espt-block-bd-gift-box .bd-cta-solid .bd-cta-btn { background: var(--cta-bg, var(--cta-bg-d, var(--espt-btn-bg, var(--bd-primary)))); }
.espt-block-bd-gift-box .bd-cta-pill .bd-cta-btn { border-radius: 999px; }
.espt-block-bd-gift-box .bd-cta-gradient .bd-cta-btn { background-image: linear-gradient(135deg, var(--cta-bg, var(--bd-primary)), var(--bd-primary-dark)); color: var(--cta-color, #fff); }
.espt-block-bd-gift-box .bd-cta-gradient .bd-cta-btn:hover { color: var(--cta-color, #fff); }
.espt-block-bd-gift-box .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-gift-box .bd-cta-outline .bd-cta-btn:hover { background: color-mix(in srgb, var(--cta-bg, var(--espt-btn-bg, var(--bd-primary))) 12%, transparent); color: var(--cta-color, var(--cta-bg, var(--bd-primary))); }
.espt-block-bd-gift-box .bd-cta-soft .bd-cta-btn { background: color-mix(in srgb, var(--cta-bg, var(--espt-btn-bg, var(--bd-primary))) 12%, #fff); color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-gift-box .bd-cta-soft .bd-cta-btn:hover { color: var(--cta-color, var(--bd-primary-dark)); }
.espt-block-bd-gift-box .bd-cta-3d .bd-cta-btn { box-shadow: 0 4px 0 color-mix(in srgb, var(--cta-bg, var(--cta-bg-d, var(--bd-primary))) 62%, #000); }
.espt-block-bd-gift-box .bd-cta-3d .bd-cta-btn:active { box-shadow: 0 0 0 transparent; transform: translateY(4px); }
.espt-block-bd-gift-box .bd-cta-glow .bd-cta-btn { box-shadow: 0 8px 26px -8px var(--cta-bg, var(--cta-bg-d, var(--bd-primary))); }
.espt-block-bd-gift-box .bd-cta-elevated .bd-cta-btn { box-shadow: 0 12px 26px -12px rgba(15, 23, 42, 0.5); }
.espt-block-bd-gift-box .bd-cta-shine .bd-cta-btn { overflow: hidden; position: relative; }

.espt-block-bd-gift-box .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-gift-box .bd-cta-shine .bd-cta-btn:hover::after { left: 130%; }
.espt-block-bd-gift-box .bd-cta-ghost .bd-cta-btn { background: transparent; box-shadow: none; color: var(--cta-color, var(--bd-primary-dark)); padding: 6px 12px; text-decoration: underline; width: auto; }
.espt-block-bd-gift-box .bd-cta-ghost .bd-cta-btn:hover { color: var(--cta-color, var(--bd-primary-dark)); }

/* On the dark and gradient cards a white button reads best — done with the
   inherited defaults so the transparent designs (outline / ghost / soft) are
   not overpainted. */
.espt-block-bd-gift-box.is-design-gradient { --cta-bg-d: #fff; --cta-fg-d: var(--bd-primary-dark); }
.espt-block-bd-gift-box.is-design-dark .bd-cta-soft .bd-cta-btn,
.espt-block-bd-gift-box.is-design-gradient .bd-cta-soft .bd-cta-btn { background: rgba(255, 255, 255, 0.16); color: var(--cta-color, #fff); }
.espt-block-bd-gift-box.is-design-dark .bd-cta-soft .bd-cta-btn:hover,
.espt-block-bd-gift-box.is-design-gradient .bd-cta-soft .bd-cta-btn:hover { color: var(--cta-color, #fff); }
.espt-block-bd-gift-box.is-design-dark .bd-cta-ghost .bd-cta-btn,
.espt-block-bd-gift-box.is-design-gradient .bd-cta-ghost .bd-cta-btn,
.espt-block-bd-gift-box.is-design-dark .bd-cta-ghost .bd-cta-btn:hover,
.espt-block-bd-gift-box.is-design-gradient .bd-cta-ghost .bd-cta-btn:hover { color: var(--cta-color, #fff); }
.espt-block-bd-gift-box.is-design-dark .bd-cta-outline .bd-cta-btn,
.espt-block-bd-gift-box.is-design-gradient .bd-cta-outline .bd-cta-btn,
.espt-block-bd-gift-box.is-design-dark .bd-cta-outline .bd-cta-btn:hover,
.espt-block-bd-gift-box.is-design-gradient .bd-cta-outline .bd-cta-btn:hover { border-color: var(--cta-bg, #fff); color: var(--cta-color, #fff); }

.espt-block-bd-gift-box .bd-cta-attn .bd-cta-btn { animation: bdf8-btn-pop 1.8s ease-in-out infinite; }

@keyframes bdf8-btn-pop {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.045); }
}

/* button icon */
.espt-block-bd-gift-box .bd-bico { display: inline-flex; flex: none; line-height: 0; transition: transform 0.2s ease; }
.espt-block-bd-gift-box .bd-bico svg { height: 1em; width: 1em; }
.espt-block-bd-gift-box .bd-cta-btn:hover .bd-bico-slide { transform: translateX(4px); }
.espt-block-bd-gift-box .bd-bico-bounce { animation: bdf8-ico-bounce 1.6s ease-in-out infinite; }
.espt-block-bd-gift-box .bd-bico-pulse { animation: bdf8-ico-pulse 1.8s ease-in-out infinite; }

@keyframes bdf8-ico-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-4px); }
}
@keyframes bdf8-ico-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.18); }
}

/* ================================================== stand card (the seal) */
.espt-block-bd-gift-box .bdf8-seal {
	align-items: flex-start;
	display: flex;
	inset: 0;
	justify-content: flex-end;
	padding: var(--seal-gap, 12px);
	pointer-events: none;
	position: absolute;
	z-index: 6;
}

.espt-block-bd-gift-box.is-seal-position-top-left .bdf8-seal { align-items: flex-start; justify-content: flex-start; }
.espt-block-bd-gift-box.is-seal-position-top-center .bdf8-seal { align-items: flex-start; justify-content: center; }
.espt-block-bd-gift-box.is-seal-position-top-right .bdf8-seal { align-items: flex-start; justify-content: flex-end; }
.espt-block-bd-gift-box.is-seal-position-middle-left .bdf8-seal { align-items: center; justify-content: flex-start; }
.espt-block-bd-gift-box.is-seal-position-middle-center .bdf8-seal { align-items: center; justify-content: center; }
.espt-block-bd-gift-box.is-seal-position-middle-right .bdf8-seal { align-items: center; justify-content: flex-end; }
.espt-block-bd-gift-box.is-seal-position-bottom-left .bdf8-seal { align-items: flex-end; justify-content: flex-start; }
.espt-block-bd-gift-box.is-seal-position-bottom-center .bdf8-seal { align-items: flex-end; justify-content: center; }
.espt-block-bd-gift-box.is-seal-position-bottom-right .bdf8-seal { align-items: flex-end; justify-content: flex-end; }

/* static nudge + rotation layer, kept apart from the animated badge */
.espt-block-bd-gift-box .bdf8-seal-rot {
	display: inline-flex;
	transform: translate(var(--seal-x, 0px), var(--seal-y, 0px)) rotate(var(--seal-rotate, 0deg));
}

.espt-block-bd-gift-box .bdf8-seal-badge {
	align-items: center;
	background: var(--seal-bg, var(--bd-danger));
	box-shadow: 0 8px 20px rgba(2, 6, 23, 0.28);
	color: var(--seal-color, #fff);
	display: flex;
	flex-direction: column;
	gap: 1px;
	justify-content: center;
	line-height: 1.08;
	max-width: 100%;
	text-align: center;
}

.espt-block-bd-gift-box .bdf8-seal-ico {
	align-items: center;
	display: inline-flex;
	font-size: calc(var(--seal-size, 70px) * 0.22);
	justify-content: center;
	line-height: 1;
}

.espt-block-bd-gift-box .bdf8-seal-ico svg { height: 1em; width: 1em; }

.espt-block-bd-gift-box .bdf8-seal-text {
	font-size: calc(var(--seal-size, 70px) * 0.21);
	font-weight: 800;
	letter-spacing: -0.01em;
}

.espt-block-bd-gift-box .bdf8-seal-sub {
	font-size: calc(var(--seal-size, 70px) * 0.12);
	font-weight: 600;
	letter-spacing: 0.04em;
	opacity: 0.95;
	text-transform: uppercase;
}

.espt-block-bd-gift-box.is-seal-shape-round .bdf8-seal-badge {
	border-radius: 50%;
	height: var(--seal-size, 70px);
	padding: 8px;
	width: var(--seal-size, 70px);
}

.espt-block-bd-gift-box.is-seal-shape-pill .bdf8-seal-badge {
	border-radius: 999px;
	flex-direction: row;
	gap: 6px;
	padding: calc(var(--seal-size, 70px) * 0.09) calc(var(--seal-size, 70px) * 0.18);
}

.espt-block-bd-gift-box.is-seal-shape-pill .bdf8-seal-text { font-size: calc(var(--seal-size, 70px) * 0.17); }
.espt-block-bd-gift-box.is-seal-shape-pill .bdf8-seal-sub { font-size: calc(var(--seal-size, 70px) * 0.13); letter-spacing: 0; opacity: 0.9; text-transform: none; }

.espt-block-bd-gift-box.is-seal-shape-ribbon .bdf8-seal-badge {
	border-radius: 3px;
	box-shadow: none;
	clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 50%, 100% 100%, 0 100%, 12px 50%);
	filter: drop-shadow(0 6px 12px rgba(2, 6, 23, 0.3));
	flex-direction: row;
	gap: 6px;
	padding: calc(var(--seal-size, 70px) * 0.1) calc(var(--seal-size, 70px) * 0.22);
}

.espt-block-bd-gift-box.is-seal-shape-ribbon .bdf8-seal-text { font-size: calc(var(--seal-size, 70px) * 0.16); }
.espt-block-bd-gift-box.is-seal-shape-ribbon .bdf8-seal-sub { font-size: calc(var(--seal-size, 70px) * 0.12); letter-spacing: 0; text-transform: none; }

/* seal animations — entrance ones run once, attention ones loop */
.espt-block-bd-gift-box.is-seal-anim-pop .bdf8-seal-badge { animation: bdf8-seal-pop var(--seal-anim-dur, 900ms) cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.espt-block-bd-gift-box.is-seal-anim-bounce .bdf8-seal-badge { animation: bdf8-seal-bounce var(--seal-anim-dur, 900ms) cubic-bezier(0.28, 0.84, 0.42, 1) both; }
.espt-block-bd-gift-box.is-seal-anim-spin .bdf8-seal-badge { animation: bdf8-seal-spin var(--seal-anim-dur, 900ms) ease-out both; }
.espt-block-bd-gift-box.is-seal-anim-pulse .bdf8-seal-badge { animation: bdf8-seal-pulse var(--seal-anim-dur, 900ms) ease-in-out infinite; }
.espt-block-bd-gift-box.is-seal-anim-float .bdf8-seal-badge { animation: bdf8-seal-float var(--seal-anim-dur, 900ms) ease-in-out infinite alternate; }
.espt-block-bd-gift-box.is-seal-anim-tada .bdf8-seal-badge { animation: bdf8-seal-tada calc(var(--seal-anim-dur, 900ms) * 2) ease-in-out infinite; }
.espt-block-bd-gift-box.is-seal-anim-rotate .bdf8-seal-badge { animation: bdf8-seal-rotate calc(var(--seal-anim-dur, 900ms) * 4) linear infinite; }

@keyframes bdf8-seal-pop { from { opacity: 0; transform: scale(0.2); } to { opacity: 1; transform: scale(1); } }
@keyframes bdf8-seal-bounce {
	0% { opacity: 0; transform: scale(0.3) translateY(-40px); }
	60% { opacity: 1; transform: scale(1.05) translateY(6px); }
	80% { transform: scale(0.97) translateY(-3px); }
	100% { transform: scale(1) translateY(0); }
}
@keyframes bdf8-seal-spin { from { opacity: 0; transform: rotate(-220deg) scale(0.3); } to { opacity: 1; transform: rotate(0deg) scale(1); } }
@keyframes bdf8-seal-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.09); } }
@keyframes bdf8-seal-float { from { transform: translateY(0); } to { transform: translateY(-7px); } }
@keyframes bdf8-seal-tada {
	0% { transform: scale(1) rotate(0); }
	10%, 20% { transform: scale(0.9) rotate(-4deg); }
	30%, 50%, 70%, 90% { transform: scale(1.1) rotate(4deg); }
	40%, 60%, 80% { transform: scale(1.1) rotate(-4deg); }
	100% { transform: scale(1) rotate(0); }
}
@keyframes bdf8-seal-rotate { from { transform: rotate(0); } to { transform: rotate(360deg); } }

/* ============================================================== tablet + */
@media (min-width: 768px) {
	.espt-block-bd-gift-box .bdf8 { margin-top: 20px; }
	.espt-block-bd-gift-box .bdf8-tag { font-size: 13px; padding: 6px 16px; }
	.espt-block-bd-gift-box .bdf8-h { margin-bottom: 14px; }
	.espt-block-bd-gift-box .bdf8-ft { gap: 10px 22px; padding-top: 14px; }
	.espt-block-bd-gift-box .bdf8-price { gap: 6px 12px; padding: 12px 14px; }
	.espt-block-bd-gift-box .bd-cta-btn { width: auto; }
	.espt-block-bd-gift-box .bd-cta-full .bd-cta-btn { width: 100%; }
	.espt-block-bd-gift-box .bd-cta-ghost .bd-cta-btn { width: auto; }
}

@media (min-width: 1024px) {
	.espt-block-bd-gift-box .bdf8-tag { font-size: 13.5px; }
	.espt-block-bd-gift-box .bdf8-p { line-height: 1.8; }
}

/* ======================================================== reduced motion */
@media (prefers-reduced-motion: reduce) {
	.espt-block-bd-gift-box .bdf8-ic,
	.espt-block-bd-gift-box .bdf8-b,
	.espt-block-bd-gift-box .bd-cta-btn,
	.espt-block-bd-gift-box .bd-bico { transition: none; }

	.espt-block-bd-gift-box .bdf8-tag i,
	.espt-block-bd-gift-box .bdf8-ic > *,
	.espt-block-bd-gift-box .bd-cta-attn .bd-cta-btn,
	.espt-block-bd-gift-box .bd-bico-bounce,
	.espt-block-bd-gift-box .bd-bico-pulse,
	.espt-block-bd-gift-box .bdf8-seal-badge { animation: none; opacity: 1; }

	.espt-block-bd-gift-box .bd-cta-shine .bd-cta-btn::after { transition: none; }
}
