.ex-booking-button {
	position: fixed;
	left: 50%;
	bottom: 0;
	z-index: 49;
	transform: translateX(-50%);
	max-width: calc(100vw - 32px);
}

.ex-booking-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 122px;
	height: calc(36px + env(safe-area-inset-bottom, 0px));
	box-sizing: border-box;
	padding: 0 8px env(safe-area-inset-bottom, 0px);
	border-radius: 12px 12px 0 0;
	background: var(--ex-booking-background, #ff6f00);
	color: var(--ex-booking-text, #ffffff);
	box-shadow: 0 -5px 24px rgba(21, 33, 52, .2);
	font-size: 17.8px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	animation: ex-booking-tab-breathe 2.6s ease-in-out infinite;
	transition: width .35s cubic-bezier(.2, .8, .2, 1), height .35s cubic-bezier(.2, .8, .2, 1), background-color .25s ease, color .25s ease, box-shadow .35s ease;
}

.ex-booking-button__link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -8px;
	bottom: 0;
}

.ex-booking-button__link:hover,
.ex-booking-button__link:focus-visible {
	width: 136px;
	height: calc(50px + env(safe-area-inset-bottom, 0px));
	background: var(--ex-booking-hover-background, #0d47a1);
	color: var(--ex-booking-hover-text, #ffffff);
	box-shadow: 0 -9px 32px rgba(21, 33, 52, .27);
	text-decoration: none;
	animation: none;
}

.ex-booking-button__link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: -6px;
}

@keyframes ex-booking-tab-breathe {
	0%, 100% { height: calc(36px + env(safe-area-inset-bottom, 0px)); }
	50% { height: calc(44px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 767px) {
	.ex-booking-button__link {
		width: 114px;
		height: calc(36px + env(safe-area-inset-bottom, 0px));
	}

	.ex-booking-button__link:hover,
	.ex-booking-button__link:focus-visible {
		width: 128px;
		height: calc(50px + env(safe-area-inset-bottom, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.ex-booking-button__link {
		animation: none;
		transition: none;
	}
}
