/* TRU Floating Booking Button: appears after the hero, steps aside near the footer. */
.tru-floating {
	--tru-floating-offset: 16px;
	position: fixed;
	left: 50%;
	bottom: calc(var(--tru-floating-offset) + env(safe-area-inset-bottom, 0px));
	z-index: var(--tru-z-floating);
	transform: translate(-50%, 140%);
	visibility: hidden;
	transition: transform var(--tru-dur) var(--tru-ease), visibility 0s linear var(--tru-dur);
}

.tru-floating.is-visible {
	transform: translate(-50%, 0);
	visibility: visible;
	transition: transform var(--tru-dur) var(--tru-ease), visibility 0s;
}

.tru-site a.tru-floating__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	min-height: 52px;
	padding: 0.85rem 1.5rem;
	border-radius: var(--tru-radius-pill);
	background: var(--tru-ink);
	color: var(--tru-ivory);
	box-shadow: 0 16px 36px -14px rgb(41 40 39 / 0.6);
	font: 500 0.8125rem / 1 var(--tru-font-text);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

.tru-site a.tru-floating__btn:hover,
.tru-site a.tru-floating__btn:focus-visible {
	background: var(--tru-champagne);
	color: var(--tru-ink);
}

.tru-floating__btn svg {
	width: 1.2rem;
	height: 1.2rem;
}

@media (min-width: 1025px) {
	.tru-floating--mobile {
		display: none;
	}
}

.elementor-editor-active .tru-floating {
	position: static;
	transform: none;
	visibility: visible;
}

@media (prefers-reduced-motion: reduce) {
	.tru-floating,
	.tru-floating.is-visible {
		transition: none;
	}
}
