html .scroll-to-top {
	right: 1.25rem;
	bottom: 3.125rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.75rem;
	height: 3.75rem;
	min-width: 3.75rem;
	padding: 0;
	border-radius: 50%;
	background: var(--primary, #0088cc);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.35);
	opacity: 0;
	pointer-events: none;
	transform: scale(0);
	transform-origin: center;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

html .scroll-to-top .fa-chevron-up::before {
	content: "";
}

html .scroll-to-top .fas {
	position: relative;
	display: block;
	width: 2.25rem;
	height: 2.25rem;
	background: url("/images/scroll-top-rocket.svg") center / contain no-repeat;
	font-size: 0;
	transform: scale(0);
	transform-origin: center;
	transition: transform 0.2s 0.2s;
}

html .scroll-to-top .fas::after {
	position: absolute;
	top: 1.9rem;
	left: 50%;
	width: 0.5rem;
	height: 0.7rem;
	background: url("/images/scroll-top-rocket-exhaust.svg") center top / contain no-repeat;
	content: "";
	opacity: 0;
	transform: translateX(-50%) scaleY(0.2);
	transform-origin: top;
}

html .scroll-to-top.visible {
	opacity: 0.85;
	pointer-events: auto;
	transform: scale(1);
}

html .scroll-to-top.visible .fas {
	transform: scale(1);
}

html .scroll-to-top.visible:hover,
html .scroll-to-top.visible:focus-visible {
	opacity: 1;
}

html .scroll-to-top.visible:hover .fas,
html .scroll-to-top.visible:focus-visible .fas {
	animation: site-scroll-top-rocket-boost 1s ease infinite;
}

html .scroll-to-top.visible:hover .fas::after,
html .scroll-to-top.visible:focus-visible .fas::after {
	opacity: 1;
	animation: site-scroll-top-rocket-exhaust 0.24s ease-in-out infinite alternate;
}

@keyframes site-scroll-top-rocket-boost {
	0%,
	100% {
		transform: translateY(0.1875rem);
	}

	50% {
		transform: translateY(-0.1875rem);
	}
}

@keyframes site-scroll-top-rocket-exhaust {
	from {
		transform: translateX(-50%) scaleY(0.45);
	}

	to {
		transform: translateX(-50%) scaleY(0.8);
	}
}

body:has(> .site-private-banner) .scroll-to-top {
	bottom: 7.125rem;
}

@media (max-width: 991.98px) {
	html .scroll-to-top.hidden-mobile {
		display: flex !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	html .scroll-to-top,
	html .scroll-to-top .fas {
		transition: none;
	}

	html .scroll-to-top.visible:hover .fas,
	html .scroll-to-top.visible:focus-visible .fas {
		animation: none;
	}

	html .scroll-to-top.visible:hover .fas::after,
	html .scroll-to-top.visible:focus-visible .fas::after {
		animation: none;
		transform: translateX(-50%) scaleY(1);
	}
}
