.taggeo-promo-bubble {
	position: fixed;
	z-index: 999999;
	inset: auto;
	box-sizing: border-box;
	padding: 22px;
	width: min(100%, calc(var(--tg-promo-width, 380px) + 44px));
	pointer-events: none;
}

.taggeo-promo-bubble[data-position="bottom-right"] {
	right: 0;
	bottom: 0;
}

.taggeo-promo-bubble[data-position="bottom-left"] {
	left: 0;
	bottom: 0;
}

.taggeo-promo-bubble[data-position="bottom-center"] {
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
}

.taggeo-promo-bubble__panel {
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	width: 100%;
	max-width: var(--tg-promo-width, 380px);
	padding: var(--tg-promo-panel-padding, 22px);
	border-width: var(--tg-promo-border-width, 1px);
	border-style: var(--tg-promo-border-style, solid);
	border-color: var(--tg-promo-border-color, rgba(var(--tg-promo-text-rgb, 248, 250, 252), 0.14));
	border-radius: var(--tg-promo-radius, 26px);
	background: var(--tg-promo-bg, #0f172a);
	box-shadow: var(--tg-promo-shadow, 0 18px 40px rgba(15, 23, 42, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.08));
	color: var(--tg-promo-text, #f8fafc);
	pointer-events: auto;
	opacity: 0;
	transform: translate3d(0, 36px, 0);
	filter: none;
	transition:
		opacity var(--tg-promo-duration, 560ms) cubic-bezier(0.16, 1, 0.3, 1),
		transform var(--tg-promo-duration, 560ms) cubic-bezier(0.16, 1, 0.3, 1),
		filter var(--tg-promo-duration, 560ms) cubic-bezier(0.16, 1, 0.3, 1);
}

.taggeo-promo-bubble__panel::after {
	content: "";
	display: none;
	position: absolute;
	inset: auto 22px 0;
	height: 3px;
	border-radius: 999px 999px 0 0;
	background: linear-gradient(90deg, rgba(var(--tg-promo-accent-rgb, 249, 115, 22), 0.18), rgba(var(--tg-promo-accent-rgb, 249, 115, 22), 0.95));
}

.taggeo-promo-bubble[data-panel-style="solid"] .taggeo-promo-bubble__panel {
	background: var(--tg-promo-bg, #0f172a);
}

.taggeo-promo-bubble[data-panel-style="gradient"] .taggeo-promo-bubble__panel {
	background: linear-gradient(135deg, var(--tg-promo-bg, #0f172a), var(--tg-promo-bg-2, #1e293b));
}

.taggeo-promo-bubble[data-panel-style="gradient"] .taggeo-promo-bubble__panel::after,
.taggeo-promo-bubble[data-panel-style="modern"] .taggeo-promo-bubble__panel::after {
	display: block;
}

.taggeo-promo-bubble[data-panel-style="modern"] .taggeo-promo-bubble__panel {
	background:
		radial-gradient(circle at top right, rgba(var(--tg-promo-accent-rgb, 249, 115, 22), 0.26), transparent 34%),
		radial-gradient(circle at bottom left, rgba(var(--tg-promo-bg-2-rgb, 30, 41, 59), 0.28), transparent 30%),
		linear-gradient(155deg, rgba(var(--tg-promo-bg-rgb, 15, 23, 42), 0.98), rgba(var(--tg-promo-bg-2-rgb, 30, 41, 59), 0.94));
}

.taggeo-promo-bubble[data-entrance-effect="blur-lift"] .taggeo-promo-bubble__panel {
	transform: translate3d(0, 120px, 0) scale(0.94);
	filter: blur(14px);
}

.taggeo-promo-bubble[data-entrance-effect="slide-up"] .taggeo-promo-bubble__panel {
	transform: translate3d(0, 40px, 0);
	filter: none;
}

.taggeo-promo-bubble[data-entrance-effect="fade"] .taggeo-promo-bubble__panel {
	transform: none;
	filter: none;
}

.taggeo-promo-bubble[data-entrance-effect="none"] .taggeo-promo-bubble__panel {
	transform: none;
	filter: none;
	transition: opacity 20ms linear;
}

.taggeo-promo-bubble.is-visible .taggeo-promo-bubble__panel {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
	filter: blur(0);
}

.taggeo-promo-bubble[data-entrance-effect="fade"].is-visible .taggeo-promo-bubble__panel,
.taggeo-promo-bubble[data-entrance-effect="none"].is-visible .taggeo-promo-bubble__panel {
	transform: none;
	filter: none;
}

.taggeo-promo-bubble.is-closing .taggeo-promo-bubble__panel {
	opacity: 0;
	transform: translate3d(0, 20px, 0) scale(0.98);
	filter: blur(8px);
}

.taggeo-promo-bubble[data-entrance-effect="slide-up"].is-closing .taggeo-promo-bubble__panel,
.taggeo-promo-bubble[data-entrance-effect="fade"].is-closing .taggeo-promo-bubble__panel,
.taggeo-promo-bubble[data-entrance-effect="none"].is-closing .taggeo-promo-bubble__panel {
	filter: none;
}

.taggeo-promo-bubble[data-entrance-effect="fade"].is-closing .taggeo-promo-bubble__panel,
.taggeo-promo-bubble[data-entrance-effect="none"].is-closing .taggeo-promo-bubble__panel {
	transform: none;
}

.taggeo-promo-bubble__close {
	position: absolute;
	top: 12px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: var(--tg-promo-close-radius, 999px);
	background: rgba(255, 255, 255, 0.08);
	color: var(--tg-promo-text, #f8fafc);
	cursor: pointer;
	transition: background 180ms ease, transform 180ms ease;
}

.taggeo-promo-bubble__close:hover,
.taggeo-promo-bubble__close:focus-visible {
	background: rgba(255, 255, 255, 0.15);
	transform: scale(1.04);
	outline: none;
}

.taggeo-promo-bubble__close span {
	font-size: 24px;
	line-height: 1;
	transform: translateY(-1px);
}

.taggeo-promo-bubble__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	padding: 7px 11px;
	border-radius: var(--tg-promo-badge-radius, 999px);
	background: rgba(var(--tg-promo-accent-rgb, 249, 115, 22), 0.16);
	color: rgba(255, 255, 255, 0.94);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.taggeo-promo-bubble__badge::before {
	content: "";
	display: block;
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: var(--tg-promo-accent, #f97316);
	box-shadow: 0 0 0 5px rgba(var(--tg-promo-accent-rgb, 249, 115, 22), 0.18);
}

.taggeo-promo-bubble__title {
	margin: 0 34px 10px 0;
	color: var(--tg-promo-text, #f8fafc);
	font-size: clamp(22px, 2vw, 28px);
	line-height: 1.08;
	font-weight: 700;
	letter-spacing: -0.03em;
}

.taggeo-promo-bubble__message {
	margin: 0;
	color: rgba(var(--tg-promo-text-rgb, 248, 250, 252), 0.82);
	font-size: 14px;
	line-height: 1.6;
}

.taggeo-promo-bubble__message > :first-child,
.taggeo-promo-bubble__custom-content > :first-child {
	margin-top: 0;
}

.taggeo-promo-bubble__message > :last-child,
.taggeo-promo-bubble__custom-content > :last-child {
	margin-bottom: 0;
}

.taggeo-promo-bubble__custom-content {
	margin-top: 16px;
	color: rgba(var(--tg-promo-text-rgb, 248, 250, 252), 0.9);
}

.taggeo-promo-bubble__custom-content img,
.taggeo-promo-bubble__message img,
.taggeo-promo-bubble__title img,
.taggeo-promo-bubble__badge img,
.taggeo-promo-bubble__cta img {
	display: block;
	max-width: 100%;
	height: auto;
}

.taggeo-promo-bubble__actions {
	margin-top: 18px;
}

.taggeo-promo-bubble__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 46px;
	padding: 0 18px;
	border: 1px solid transparent;
	border-radius: var(--tg-promo-button-radius, 999px);
	background: var(--tg-promo-button-bg, #f8fafc);
	color: var(--tg-promo-button-text, #0f172a);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(var(--tg-promo-button-bg-rgb, 248, 250, 252), 0.18);
	transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
}

.taggeo-promo-bubble[data-button-style="solid"] .taggeo-promo-bubble__cta {
	background: var(--tg-promo-button-bg, #f8fafc);
	color: var(--tg-promo-button-text, #0f172a);
	border-color: transparent;
}

.taggeo-promo-bubble[data-button-style="gradient"] .taggeo-promo-bubble__cta {
	background: linear-gradient(135deg, var(--tg-promo-button-bg, #f8fafc), var(--tg-promo-button-bg-2, #e2e8f0));
	color: var(--tg-promo-button-text, #0f172a);
	border-color: transparent;
}

.taggeo-promo-bubble[data-button-style="outline"] .taggeo-promo-bubble__cta {
	background: transparent;
	color: var(--tg-promo-button-bg, #f8fafc);
	border-color: var(--tg-promo-button-bg, #f8fafc);
	box-shadow: none;
}

.taggeo-promo-bubble[data-button-style="ghost"] .taggeo-promo-bubble__cta {
	background: rgba(var(--tg-promo-button-bg-rgb, 248, 250, 252), 0.12);
	color: var(--tg-promo-button-bg, #f8fafc);
	border-color: rgba(var(--tg-promo-button-bg-rgb, 248, 250, 252), 0.12);
	box-shadow: none;
}

.taggeo-promo-bubble__cta:hover,
.taggeo-promo-bubble__cta:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 14px 30px rgba(var(--tg-promo-button-bg-rgb, 248, 250, 252), 0.24);
	outline: none;
}

.taggeo-promo-bubble[data-button-style="outline"] .taggeo-promo-bubble__cta:hover,
.taggeo-promo-bubble[data-button-style="outline"] .taggeo-promo-bubble__cta:focus-visible {
	background: rgba(var(--tg-promo-button-bg-rgb, 248, 250, 252), 0.08);
	box-shadow: none;
}

.taggeo-promo-bubble[data-button-style="ghost"] .taggeo-promo-bubble__cta:hover,
.taggeo-promo-bubble[data-button-style="ghost"] .taggeo-promo-bubble__cta:focus-visible {
	background: rgba(var(--tg-promo-button-bg-rgb, 248, 250, 252), 0.18);
	box-shadow: none;
}

@media (max-width: 640px) {
	.taggeo-promo-bubble {
		left: 50%;
		right: auto;
		bottom: 14px;
		transform: translateX(-50%);
		padding: 0;
		width: min(calc(100vw - 28px), var(--tg-promo-width, 380px));
		max-width: calc(100vw - 28px);
	}

	.taggeo-promo-bubble[data-position="bottom-right"],
	.taggeo-promo-bubble[data-position="bottom-left"],
	.taggeo-promo-bubble[data-position="bottom-center"] {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
	}

	.taggeo-promo-bubble__panel {
		width: 100%;
		max-width: none;
		padding: min(var(--tg-promo-panel-padding, 22px), 20px);
	}

	.taggeo-promo-bubble__title {
		font-size: 21px;
	}

	.taggeo-promo-bubble__cta {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.taggeo-promo-bubble__panel {
		transition: opacity 120ms linear;
		transform: none;
		filter: none;
	}

	.taggeo-promo-bubble.is-closing .taggeo-promo-bubble__panel,
	.taggeo-promo-bubble.is-visible .taggeo-promo-bubble__panel {
		transform: none;
		filter: none;
	}
}
