/**
 * BD Offer Package — .espt-block-bd-offer-package (component 07, .bdo7)
 *
 * Vars set by the spec:
 *   sizes    --title-size --price-size --inner-pad (responsive)
 *            --list-size --icon-size --row-pad --inner-radius --bdo7-max
 *            --btn-size --btn-radius
 *   colours  --shell-bg --inner-bg --tag-bg --tag-color --title-color
 *            --price-color --old-color --check-color --text-color
 *            --dl-bg --dl-color --dl-sub-color --dl-border-color
 *            --btn-bg --btn-color
 * Shared BD layer: --bd-radius / --bd-pad drive the outer shell, and the
 * card carries .espt-bd-box so skins, hover and shadow apply.
 * Mobile-first: base rules are ≤767px, then 768px and 1024px.
 */

/* ----------------------------------------------------------- the shell */
.espt-block-bd-offer-package .bdo7 {
	background: var(--shell-bg, var(--bd-deep));
	border: 0;
	border-radius: calc(var(--bd-radius, 16px) + 6px);
	margin: 0 auto;
	min-width: 0;
	padding: var(--bd-pad);
	position: relative;
}

.espt-block-bd-offer-package.is-limit-width .bdo7 {
	max-width: var(--bdo7-max, 520px);
}

/* room for a tag that overhangs the top edge (pill / ribbon) */
.espt-block-bd-offer-package .bdo7.bdo7-float {
	margin-top: 18px;
	padding-top: calc(var(--bd-pad) + 8px);
}

/* -------------------------------------------------------------- the tag */
.espt-block-bd-offer-package .bdo7-tag {
	align-items: center;
	background: var(--tag-bg, rgba(255, 255, 255, 0.14));
	border-radius: 999px;
	color: var(--tag-color, #eaf3ee);
	display: inline-flex;
	font-size: 13px;
	font-weight: 700;
	gap: 7px;
	justify-content: center;
	left: 50%;
	line-height: 1.3;
	max-width: calc(100% - 20px);
	overflow-wrap: anywhere;
	padding: 6px 16px;
	position: absolute;
	text-align: center;
	top: -13px;
	transform: translateX(-50%);
	z-index: 2;
}

.espt-block-bd-offer-package .bdo7-tag > span {
	min-width: 0;
}

.espt-block-bd-offer-package .bdo7-tag-dot {
	background: var(--bd-soft-line, #7bc9ac);
	border-radius: 50%;
	flex: 0 0 auto;
	height: 7px;
	width: 7px;
}

.espt-block-bd-offer-package.is-tag-dot .bdo7-tag-dot {
	animation: espt-bdo7-blink 1.6s ease-in-out infinite;
}

/* corner ribbon — rides the top-right edge, so it never lands on the title */
.espt-block-bd-offer-package.is-tag-style-ribbon .bdo7-tag {
	border-radius: 999px 8px 8px 999px;
	left: auto;
	max-width: calc(100% - 24px);
	padding: 6px 14px 6px 13px;
	right: 10px;
	transform: none;
}

/* chip above the title */
.espt-block-bd-offer-package .bdo7-tag-inline {
	background: var(--tag-bg, var(--bd-soft));
	color: var(--tag-color, var(--bd-primary-dark));
	left: auto;
	margin: 0 0 12px;
	max-width: 100%;
	position: static;
	top: auto;
	transform: none;
}

/* -------------------------------------------------------- the inner card */
.espt-block-bd-offer-package .bdo7-in {
	background: var(--inner-bg, #f7f8f6);
	border-radius: var(--inner-radius, 16px);
	min-width: 0;
	padding: var(--inner-pad, 18px);
	text-align: center;
}

.espt-block-bd-offer-package .bdo7-ttl {
	color: var(--title-color, var(--bd-deep));
	font-size: var(--title-size, 20px);
	font-weight: 800;
	line-height: 1.35;
	margin: 0 0 8px;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-package .bdo7-sub {
	color: var(--bd-muted);
	font-size: calc(var(--list-size, 15px) * 0.95);
	line-height: 1.5;
	margin: 0 0 12px;
	overflow-wrap: anywhere;
}

/* ------------------------------------------------------------- the price */
.espt-block-bd-offer-package .bdo7-pr {
	/* prices never wrap mid-number, so cap the size on very narrow screens */
	--bdo7-price: min(var(--price-size, 36px), 13vw);
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	justify-content: center;
	margin: 0 0 14px;
	min-width: 0;
}

.espt-block-bd-offer-package .bdo7-pr s {
	color: var(--old-color, #8b9a92);
	font-size: max(14px, calc(var(--bdo7-price, 36px) * 0.4));
	text-decoration: line-through;
}

.espt-block-bd-offer-package .bdo7-pr b {
	color: var(--price-color, var(--bd-deep));
	font-size: var(--bdo7-price, 36px);
	font-weight: 800;
	line-height: 1.05;
	min-width: 0;
	overflow-wrap: anywhere;
}

/* wc_price() markup keeps the row's sizing */
.espt-block-bd-offer-package .bdo7-pr bdi,
.espt-block-bd-offer-package .bdo7-pr .woocommerce-Price-amount,
.espt-block-bd-offer-package .bdo7-pr .woocommerce-Price-currencySymbol {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
	text-decoration: inherit;
}

.espt-block-bd-offer-package .bdo7-pr .woocommerce-Price-amount {
	white-space: nowrap;
}

/* Woo formatted the price itself (grouped ranges, price-on-request) */
.espt-block-bd-offer-package .bdo7-pr-html del,
.espt-block-bd-offer-package .bdo7-pr-html del .woocommerce-Price-amount {
	color: var(--old-color, #8b9a92);
	font-size: max(14px, calc(var(--bdo7-price, 36px) * 0.4));
	font-weight: 700;
	text-decoration: line-through;
}

.espt-block-bd-offer-package .bdo7-pr-html del {
	margin-right: 10px;
}

.espt-block-bd-offer-package .bdo7-pr-html ins {
	background: transparent;
	text-decoration: none;
}

.espt-block-bd-offer-package .bdo7-pr-note {
	color: var(--bd-muted);
	flex: 1 0 100%;
	font-size: 12.5px;
	line-height: 1.4;
	margin-top: -2px;
}

.espt-block-bd-offer-package .bdo7-save-w {
	margin: -6px 0 14px;
}

.espt-block-bd-offer-package .bdo7-save {
	background: color-mix(in srgb, var(--bd-danger) 12%, transparent);
	border-radius: 999px;
	color: var(--bd-danger);
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	max-width: 100%;
	overflow-wrap: anywhere;
	padding: 5px 12px;
}

/* --------------------------------------------------------- the checklist */
.espt-block-bd-offer-package .bdo7-lh {
	color: var(--bd-muted);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 6px;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-package .bdo7-list {
	list-style: none;
	margin: 0;
	min-width: 0;
	padding: 0;
}

.espt-block-bd-offer-package .bdo7-li {
	align-items: flex-start;
	color: var(--text-color, var(--bd-body));
	display: flex;
	font-size: var(--list-size, 15px);
	gap: 10px;
	line-height: 1.6;
	min-width: 0;
	overflow-wrap: anywhere;
	padding: var(--row-pad, 9px) 2px;
	text-align: left;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.espt-block-bd-offer-package .bdo7-li-t {
	flex: 1 1 auto;
	min-width: 0;
}

/* **bold** inside a row picks up the design layer's text colour */
.espt-block-bd-offer-package .bdo7-li-t strong {
	color: var(--text-color, var(--bd-ink));
	font-weight: 800;
}

.espt-block-bd-offer-package .bdo7-li-n {
	align-self: center;
	background: color-mix(in srgb, var(--bd-primary) 12%, transparent);
	border-radius: 999px;
	color: var(--bd-primary-dark);
	flex: 0 1 auto;
	font-size: 0.78em;
	font-weight: 700;
	line-height: 1.4;
	overflow-wrap: anywhere;
	padding: 2px 9px;
}

.espt-block-bd-offer-package .bdo7-ic {
	color: var(--check-color, var(--bd-primary));
	display: inline-flex;
	flex: 0 0 auto;
	font-size: var(--icon-size, 22px);
	line-height: 0;
	margin-top: 2px;
	transition: transform 0.2s ease;
}

.espt-block-bd-offer-package .bdo7-ic svg {
	height: 1em;
	width: 1em;
}

/* the built-in check is a filled disc — it sits a touch higher than stroke icons */
.espt-block-bd-offer-package .bdo7-ic-check {
	margin-top: 1px;
}

.espt-block-bd-offer-package .bdo7-li:hover .bdo7-ic {
	transform: scale(1.08);
}

/* row styles */
.espt-block-bd-offer-package.is-list-style-divided .bdo7-li + .bdo7-li {
	border-top: 1px dashed var(--bd-line);
}

.espt-block-bd-offer-package.is-list-style-boxed .bdo7-list {
	display: grid;
	gap: 8px;
}

.espt-block-bd-offer-package.is-list-style-boxed .bdo7-li {
	background: var(--bd-soft);
	border: 1px solid var(--bd-soft-line);
	border-radius: 10px;
	padding: max(8px, var(--row-pad, 9px)) 12px;
}

.espt-block-bd-offer-package.is-list-style-boxed .bdo7-li:hover {
	transform: translateX(2px);
}

/* staggered reveal (armed by the block's JS, so no-JS keeps everything visible) */
.espt-block-bd-offer-package .bdo7.is-reveal-armed .bdo7-li {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.5s ease, transform 0.5s ease;
	transition-delay: calc(var(--i, 0) * 70ms);
}

.espt-block-bd-offer-package .bdo7.is-reveal-armed.is-lit .bdo7-li {
	opacity: 1;
	transform: none;
}

/* ------------------------------------------------------ the delivery note */
.espt-block-bd-offer-package .bdo7-dl {
	background: var(--dl-bg, var(--bd-deep));
	border-bottom: 2px dashed var(--dl-border-color, rgba(255, 255, 255, 0.32));
	border-radius: 12px;
	color: var(--dl-color, #f7f8f6);
	margin-top: 16px;
	min-width: 0;
	padding: 13px 12px 11px;
	text-align: center;
}

.espt-block-bd-offer-package .bdo7-dl-t {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	font-size: 16px;
	font-weight: 700;
	gap: 8px;
	justify-content: center;
	line-height: 1.35;
	min-width: 0;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-package .bdo7-dl-i {
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 24px;
	line-height: 0;
}

.espt-block-bd-offer-package .bdo7-dl-i svg {
	height: 1em;
	width: 1em;
}

.espt-block-bd-offer-package .bdo7-dl small {
	color: var(--dl-sub-color, rgba(255, 255, 255, 0.72));
	display: block;
	font-size: 12.5px;
	line-height: 1.45;
	margin-top: 3px;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-package.is-delivery-style-soft .bdo7-dl {
	background: var(--dl-bg, var(--bd-soft));
	border-bottom-color: var(--dl-border-color, var(--bd-soft-line));
	color: var(--dl-color, var(--bd-deep));
}

.espt-block-bd-offer-package.is-delivery-style-soft .bdo7-dl small {
	color: var(--dl-sub-color, var(--bd-muted));
}

.espt-block-bd-offer-package.is-delivery-style-plain .bdo7-dl {
	background: var(--dl-bg, transparent);
	border-bottom: 0;
	border-radius: 0;
	border-top: 1px dashed var(--dl-border-color, var(--bd-line));
	color: var(--dl-color, var(--bd-deep));
	padding: 12px 0 0;
}

.espt-block-bd-offer-package.is-delivery-style-plain .bdo7-dl small {
	color: var(--dl-sub-color, var(--bd-muted));
}

/* ----------------------------------------------------------- the button */
.espt-block-bd-offer-package .bdo7-btn-w {
	margin-top: 16px;
	min-width: 0;
}

.espt-block-bd-offer-package .bdo7-btn {
	align-items: center;
	background: var(--btn-bg, var(--bd-accent));
	border-radius: var(--btn-radius, 10px);
	color: var(--btn-color, var(--bd-accent-ink));
	display: flex;
	font-size: var(--btn-size, 17px);
	font-weight: 800;
	gap: 9px;
	justify-content: center;
	line-height: 1.25;
	max-width: 100%;
	overflow-wrap: anywhere;
	padding: 0.8em 1.1em;
	text-align: center;
	text-decoration: none;
	transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.15s ease;
}

.espt-block-bd-offer-package .bdo7-btn:hover {
	box-shadow: 0 8px 18px -10px rgba(18, 33, 28, 0.55);
	color: var(--btn-color, var(--bd-accent-ink));
	filter: brightness(1.04);
	transform: translateY(-1px);
}

.espt-block-bd-offer-package .bdo7-btn:active {
	transform: translateY(1px);
}

.espt-block-bd-offer-package .bdo7-btn:focus-visible {
	outline: 2px solid var(--bd-primary);
	outline-offset: 3px;
}

.espt-block-bd-offer-package .bdo7-btn-i {
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 1.15em;
	line-height: 0;
}

.espt-block-bd-offer-package .bdo7-btn-i svg {
	height: 1em;
	width: 1em;
}

.espt-block-bd-offer-package .bdo7-btn-sub {
	color: var(--bd-muted);
	font-size: 12.5px;
	line-height: 1.45;
	margin-top: 8px;
	overflow-wrap: anywhere;
}

.espt-block-bd-offer-package.is-btn-width-auto .bdo7-btn {
	display: inline-flex;
}

.espt-block-bd-offer-package.is-btn-pulse .bdo7-btn {
	animation: espt-bdo7-pulse 1.9s ease-in-out infinite;
}

/* --------------------------------------------------------- alignment */
.espt-block-bd-offer-package.is-text-align-left .bdo7-in,
.espt-block-bd-offer-package.is-text-align-left .bdo7-dl,
.espt-block-bd-offer-package.is-text-align-left .bdo7-btn-w {
	text-align: left;
}

.espt-block-bd-offer-package.is-text-align-left .bdo7-pr,
.espt-block-bd-offer-package.is-text-align-left .bdo7-dl-t {
	justify-content: flex-start;
}

.espt-block-bd-offer-package.is-text-align-right .bdo7-in,
.espt-block-bd-offer-package.is-text-align-right .bdo7-dl,
.espt-block-bd-offer-package.is-text-align-right .bdo7-btn-w {
	text-align: right;
}

.espt-block-bd-offer-package.is-text-align-right .bdo7-pr,
.espt-block-bd-offer-package.is-text-align-right .bdo7-dl-t {
	justify-content: flex-end;
}

.espt-block-bd-offer-package.is-text-align-right .bdo7-li {
	flex-direction: row-reverse;
	text-align: right;
}

/* ------------------------------------------------------------- designs */
.espt-block-bd-offer-package.is-design-gradient .bdo7 {
	background: var(--shell-bg, linear-gradient(140deg, var(--bd-primary), var(--bd-deep)));
}

.espt-block-bd-offer-package.is-design-soft .bdo7 {
	background: var(--shell-bg, var(--bd-soft));
	border: 1px solid var(--bd-soft-line);
}

.espt-block-bd-offer-package.is-design-soft .bdo7-in {
	background: var(--inner-bg, #fff);
}

.espt-block-bd-offer-package.is-design-soft .bdo7-tag {
	background: var(--tag-bg, var(--bd-primary));
	color: var(--tag-color, #fff);
}

.espt-block-bd-offer-package.is-design-outline .bdo7 {
	background: var(--shell-bg, transparent);
	border: 2px solid var(--bd-primary);
}

.espt-block-bd-offer-package.is-design-outline .bdo7-in {
	background: var(--inner-bg, transparent);
	padding-left: 0;
	padding-right: 0;
}

.espt-block-bd-offer-package.is-design-outline .bdo7-tag,
.espt-block-bd-offer-package.is-design-ticket .bdo7-tag {
	background: var(--tag-bg, var(--bd-primary));
	color: var(--tag-color, #fff);
}

.espt-block-bd-offer-package.is-design-ticket .bdo7 {
	background: var(--shell-bg, var(--bd-box-bg));
	border: 2px dashed var(--bd-primary);
}

.espt-block-bd-offer-package.is-design-ticket .bdo7-in {
	background: var(--inner-bg, transparent);
	padding-left: 0;
	padding-right: 0;
}

/* perforation above the checklist */
.espt-block-bd-offer-package.is-design-ticket .bdo7-lh,
.espt-block-bd-offer-package.is-design-ticket .bdo7-list {
	border-top: 2px dashed color-mix(in srgb, var(--bd-primary) 45%, transparent);
	padding-top: 10px;
}

.espt-block-bd-offer-package.is-design-ticket .bdo7-lh + .bdo7-list {
	border-top: 0;
	padding-top: 0;
}

.espt-block-bd-offer-package.is-design-glass .bdo7 {
	backdrop-filter: blur(12px);
	background: var(--shell-bg, rgba(255, 255, 255, 0.5));
	border: 1px solid rgba(255, 255, 255, 0.7);
}

.espt-block-bd-offer-package.is-design-glass .bdo7-in {
	background: var(--inner-bg, rgba(255, 255, 255, 0.62));
}

.espt-block-bd-offer-package.is-design-glass .bdo7-tag {
	background: var(--tag-bg, var(--bd-deep));
	color: var(--tag-color, #fff);
}

/* flat — the inner card is the whole widget */
.espt-block-bd-offer-package.is-design-flat .bdo7 {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

/* the shell has no padding here, so the overhanging tag gets its room from the inner card */
.espt-block-bd-offer-package.is-design-flat .bdo7.bdo7-float {
	padding-top: 0;
}

.espt-block-bd-offer-package.is-design-flat .bdo7.bdo7-float .bdo7-in {
	padding-top: calc(var(--inner-pad, 18px) + 10px);
}

.espt-block-bd-offer-package.is-design-flat .bdo7-in {
	background: var(--inner-bg, var(--bd-box-bg));
	border: 1px solid var(--bd-box-line);
}

/* the inner card is the visible box in this design, so it carries the shadow */
.espt-block-bd-offer-package.is-design-flat.bd-shadow-soft .bdo7-in {
	box-shadow: 0 6px 24px -10px rgba(15, 23, 42, 0.18);
}

.espt-block-bd-offer-package.is-design-flat.bd-shadow-strong .bdo7-in {
	box-shadow: 0 18px 40px -16px rgba(15, 23, 42, 0.35);
}

.espt-block-bd-offer-package.is-design-flat .bdo7-tag {
	background: var(--tag-bg, var(--bd-primary));
	color: var(--tag-color, #fff);
}

/* tag colours that must survive the per-design overrides above */
.espt-block-bd-offer-package.is-tag-style-ribbon .bdo7-tag {
	background: var(--tag-bg, var(--bd-danger));
	color: var(--tag-color, #fff);
}

/* the inline chip keeps its own look in every design (last word wins) */
.espt-block-bd-offer-package.is-tag-style-inline .bdo7-tag {
	background: var(--tag-bg, var(--bd-soft));
	color: var(--tag-color, var(--bd-primary-dark));
	left: auto;
	margin: 0 0 12px;
	max-width: 100%;
	position: static;
	right: auto;
	top: auto;
	transform: none;
}

/* editor placeholder */
.espt-block-bd-offer-package .espt-block-note {
	background: var(--bd-soft);
	border: 1px dashed var(--bd-soft-line);
	border-radius: 10px;
	color: var(--bd-muted);
	font-size: 13px;
	margin: 0 0 14px;
	padding: 10px 12px;
}

/* ------------------------------------------------------------ keyframes */
@keyframes espt-bdo7-pulse {
	0%,
	100% { transform: scale(1); }
	50% { transform: scale(1.025); }
}

@keyframes espt-bdo7-blink {
	0%,
	100% { opacity: 1; }
	50% { opacity: 0.25; }
}

/* ----------------------------------------------------------- responsive */
@media (min-width: 768px) {
	.espt-block-bd-offer-package .bdo7-tag {
		font-size: 14px;
		padding: 7px 20px;
	}

	.espt-block-bd-offer-package .bdo7-li {
		gap: 11px;
	}

	.espt-block-bd-offer-package .bdo7-dl {
		padding: 15px 14px 13px;
	}

	.espt-block-bd-offer-package .bdo7-dl-t {
		font-size: 17px;
	}

	.espt-block-bd-offer-package .bdo7-btn {
		padding: 0.85em 1.3em;
	}
}

@media (min-width: 1024px) {
	.espt-block-bd-offer-package .bdo7.bdo7-float {
		margin-top: 20px;
	}

	.espt-block-bd-offer-package .bdo7-lh {
		font-size: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.espt-block-bd-offer-package .bdo7-li,
	.espt-block-bd-offer-package .bdo7-ic,
	.espt-block-bd-offer-package .bdo7-btn {
		transition: none;
	}

	.espt-block-bd-offer-package .bdo7.is-reveal-armed .bdo7-li {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.espt-block-bd-offer-package.is-tag-dot .bdo7-tag-dot,
	.espt-block-bd-offer-package.is-btn-pulse .bdo7-btn {
		animation: none;
	}

	.espt-block-bd-offer-package .bdo7-li:hover .bdo7-ic,
	.espt-block-bd-offer-package.is-list-style-boxed .bdo7-li:hover,
	.espt-block-bd-offer-package .bdo7-btn:hover,
	.espt-block-bd-offer-package .bdo7-btn:active {
		transform: none;
	}
}
