/* Floating WhatsApp button (04 §10.16). Tokens come from the child theme; fallbacks keep it right without it.
   It sits below the header's z-index (1000), so the open phone menu covers it. */
a.go-float-wa[href] {
	position: fixed;
	right: calc(16px + env(safe-area-inset-right, 0px));
	bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	z-index: 900;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: var(--go-radius-pill, 999px);
	background: var(--go-whatsapp, #25D366);
	color: var(--go-forest-950, #0A3B61);
	box-shadow: var(--go-shadow-lg, 0 2px 6px rgba(10, 59, 97, .08), 0 20px 48px rgba(10, 59, 97, .18));
	text-decoration: none;
	transition: transform 120ms cubic-bezier(.2, .8, .2, 1), opacity 150ms ease-out, visibility 0s;
}

a.go-float-wa[href]:hover,
a.go-float-wa[href]:focus {
	color: var(--go-forest-950, #0A3B61);
}

a.go-float-wa[href]:hover {
	transform: translateY(-2px);
}

a.go-float-wa[href]:focus-visible {
	outline: 3px solid var(--go-forest-800, #084066);
	outline-offset: 2px;
}

.go-float-wa .go-icon {
	width: 28px;
	height: 28px;
}

/* Phones: a little smaller and closer to the corner, so it covers less of the text it floats over. */
@media (max-width: 767px) {
	a.go-float-wa[href] {
		right: calc(12px + env(safe-area-inset-right, 0px));
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		width: 52px;
		height: 52px;
	}
}

/* "Chat on WhatsApp" appears beside the button on hover and keyboard focus, on devices with a mouse. */
.go-float-wa__label {
	position: absolute;
	top: 50%;
	right: calc(100% + 12px);
	padding: 8px 14px;
	border-radius: var(--go-radius-pill, 999px);
	background: var(--go-forest-950, #0A3B61);
	color: var(--go-white, #fff);
	font-family: var(--go-font-body, sans-serif);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	transform: translate(8px, -50%);
	pointer-events: none;
	transition: opacity 120ms ease-out, transform 120ms ease-out;
}

@media (hover: hover) and (pointer: fine) {
	.go-float-wa:is(:hover, :focus-visible) .go-float-wa__label {
		opacity: 1;
		transform: translate(0, -50%);
	}
}

@media (hover: none), (pointer: coarse) {
	.go-float-wa__label {
		display: none;
	}
}

/* Trip pages hide it while the mobile booking bar shows (04 §10.4); the trip page script sets this body class. */
.go-booking-bar-visible a.go-float-wa[href] {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 150ms ease-out, visibility 0s linear 150ms;
}

@media (prefers-reduced-motion: reduce) {
	a.go-float-wa[href],
	.go-float-wa__label {
		transition: none;
	}

	a.go-float-wa[href]:hover {
		transform: none;
	}
}

@media print {
	a.go-float-wa[href] {
		display: none;
	}
}
