.spn-floating-cta {
	--spn-floating-cta-bg: #005198;
	--spn-floating-cta-text: #ffffff;
	--spn-floating-cta-offset-x: 24px;
	--spn-floating-cta-offset-y: 24px;
	--spn-floating-cta-z-index: 9999;
	--spn-floating-cta-position-y: 0px;
	position: fixed;
	z-index: var(--spn-floating-cta-z-index);
	max-width: calc(100vw - 32px);
	transform: translateY(var(--spn-floating-cta-position-y));
}

.spn-floating-cta[data-desktop-horizontal="right"] {
	right: max(var(--spn-floating-cta-offset-x), env(safe-area-inset-right));
}

.spn-floating-cta[data-desktop-horizontal="left"] {
	left: max(var(--spn-floating-cta-offset-x), env(safe-area-inset-left));
}

.spn-floating-cta[data-desktop-vertical="bottom"] {
	bottom: max(var(--spn-floating-cta-offset-y), env(safe-area-inset-bottom));
}

.spn-floating-cta[data-desktop-vertical="top"] {
	top: max(var(--spn-floating-cta-offset-y), env(safe-area-inset-top));
}

.spn-floating-cta[data-desktop-vertical="center"] {
	top: 50%;
	--spn-floating-cta-position-y: -50%;
}

.spn-floating-cta--scroll-gated {
	opacity: 0;
	pointer-events: none;
}

.spn-floating-cta--scroll-gated.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.spn-floating-cta--animate {
	pointer-events: none;
}

.spn-floating-cta--animate.is-visible {
	pointer-events: auto;
}

.spn-floating-cta--animate.spn-floating-cta--scroll-gated {
	opacity: 1;
}

.spn-floating-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 13px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--spn-floating-cta-bg);
	color: var(--spn-floating-cta-text);
	box-shadow: 0 14px 36px rgba(6, 24, 44, 0.24);
	font: inherit;
	font-weight: 700;
	line-height: 1.15;
	cursor: pointer;
}

.spn-floating-cta--animate .spn-floating-cta__button {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 180ms ease, transform 180ms ease;
}

.spn-floating-cta--animate.is-visible .spn-floating-cta__button {
	opacity: 1;
	transform: translateY(0);
}

.spn-floating-cta__button:hover,
.spn-floating-cta__button:focus {
	filter: brightness(1.06);
}

.spn-floating-cta__button:focus-visible,
.spn-floating-cta__close:focus-visible,
.spn-floating-cta__links a:focus-visible {
	outline: 3px solid rgba(0, 81, 152, 0.35);
	outline-offset: 3px;
}

.spn-floating-cta__panel {
	position: absolute;
	bottom: calc(100% + 12px);
	width: min(360px, calc(100vw - 32px));
	padding: 22px;
	border: 1px solid rgba(20, 40, 60, 0.14);
	border-top: 4px solid var(--spn-floating-cta-bg);
	border-radius: 8px;
	background: #ffffff;
	color: #14283c;
	box-shadow: 0 22px 60px rgba(6, 24, 44, 0.24);
}

.spn-floating-cta--animate .spn-floating-cta__panel {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 160ms ease, transform 160ms ease;
}

.spn-floating-cta--animate.is-open .spn-floating-cta__panel {
	opacity: 1;
	transform: translateY(0);
}

.spn-floating-cta[data-desktop-horizontal="right"] .spn-floating-cta__panel {
	right: 0;
}

.spn-floating-cta[data-desktop-horizontal="left"] .spn-floating-cta__panel {
	left: 0;
}

.spn-floating-cta[data-desktop-vertical="top"] .spn-floating-cta__panel {
	top: calc(100% + 12px);
	bottom: auto;
}

.spn-floating-cta--animate[data-desktop-vertical="top"] .spn-floating-cta__panel {
	transform: translateY(-8px);
}

.spn-floating-cta--animate.is-open[data-desktop-vertical="top"] .spn-floating-cta__panel {
	transform: translateY(0);
}

.spn-floating-cta__panel h2 {
	margin: 0 32px 0.5rem 0;
	color: #14283c;
	font-size: 1.12rem;
	line-height: 1.2;
}

.spn-floating-cta__panel p {
	margin: 0 0 1rem;
	color: #30465a;
	line-height: 1.45;
}

.spn-floating-cta__close {
	position: absolute;
	top: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 50%;
	background: #eef5fb;
	color: #14283c;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.spn-floating-cta__links {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.spn-floating-cta__links a {
	color: #005198;
	font-weight: 700;
	text-decoration: none;
}

.spn-floating-cta__links a:hover {
	text-decoration: underline;
}

body.admin-bar .spn-floating-cta[data-desktop-vertical="top"] {
	top: calc(max(var(--spn-floating-cta-offset-y), env(safe-area-inset-top)) + 32px);
}

@media (max-width: 782px) {
	.spn-floating-cta {
		max-width: calc(100vw - 24px);
	}

	.spn-floating-cta[data-mobile-horizontal="right"] {
		right: max(12px, env(safe-area-inset-right));
		left: auto;
	}

	.spn-floating-cta[data-mobile-horizontal="left"] {
		left: max(12px, env(safe-area-inset-left));
		right: auto;
	}

	.spn-floating-cta[data-mobile-vertical="bottom"] {
		top: auto;
		bottom: max(var(--spn-floating-cta-offset-y), env(safe-area-inset-bottom));
		--spn-floating-cta-position-y: 0px;
	}

	.spn-floating-cta[data-mobile-vertical="top"] {
		top: max(var(--spn-floating-cta-offset-y), env(safe-area-inset-top));
		bottom: auto;
		--spn-floating-cta-position-y: 0px;
	}

	.spn-floating-cta[data-mobile-vertical="center"] {
		top: 50%;
		bottom: auto;
		--spn-floating-cta-position-y: -50%;
	}

	.spn-floating-cta__button {
		min-height: 46px;
		padding: 12px 18px;
		font-size: 15px;
	}

	.spn-floating-cta__panel {
		width: min(340px, calc(100vw - 24px));
		padding: 19px;
	}

	.spn-floating-cta[data-mobile-horizontal="right"] .spn-floating-cta__panel {
		right: 0;
		left: auto;
	}

	.spn-floating-cta[data-mobile-horizontal="left"] .spn-floating-cta__panel {
		left: 0;
		right: auto;
	}

	.spn-floating-cta[data-mobile-vertical="top"] .spn-floating-cta__panel {
		top: calc(100% + 10px);
		bottom: auto;
	}

	.spn-floating-cta--animate[data-mobile-vertical="top"] .spn-floating-cta__panel {
		transform: translateY(-8px);
	}

	.spn-floating-cta--animate.is-open[data-mobile-vertical="top"] .spn-floating-cta__panel {
		transform: translateY(0);
	}

	.spn-floating-cta[data-mobile-vertical="bottom"] .spn-floating-cta__panel,
	.spn-floating-cta[data-mobile-vertical="center"] .spn-floating-cta__panel {
		top: auto;
		bottom: calc(100% + 10px);
	}

	.spn-floating-cta--animate[data-mobile-vertical="bottom"] .spn-floating-cta__panel,
	.spn-floating-cta--animate[data-mobile-vertical="center"] .spn-floating-cta__panel {
		transform: translateY(8px);
	}

	.spn-floating-cta--animate.is-open[data-mobile-vertical="bottom"] .spn-floating-cta__panel,
	.spn-floating-cta--animate.is-open[data-mobile-vertical="center"] .spn-floating-cta__panel {
		transform: translateY(0);
	}

	body.admin-bar .spn-floating-cta[data-mobile-vertical="top"] {
		top: calc(max(var(--spn-floating-cta-offset-y), env(safe-area-inset-top)) + 46px);
	}
}
