/* Wrapper: main content, band and floating card share one flow */
.page-flow {
	position: relative;
}

/* Sticky box with zero net height: floats 24px above the viewport bottom and 24px from the right edge,
   and rests 24px above the footer bar at the very end of the page. */
.order-widget {
	position: sticky;
	bottom: 0;
	z-index: 5;
	width: 382px;
	max-width: 100%;
	margin: -171px 0 0 auto;
	padding: 0 24px 24px 0;
	pointer-events: none;
}

.order-widget__card {
	position: relative;
	box-sizing: content-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	width: 320px;
	max-width: 100%;
	height: 109px;
	padding: 22px 22px 14px 14px;
	border: 1px solid rgba(0, 106, 200, 0.14);
	border-radius: 24px;
	background: var(--color-white);
	box-shadow: 0 8px 28px rgba(0, 106, 200, 0.16), 0 2px 6px rgba(0, 106, 200, 0.08);
	pointer-events: auto;
}

.order-widget__text {
	width: 100%;
	padding: 0 8px;
	color: #000;
}

.order-widget__title,
.order-widget__desc {
	margin: 0;
}

.order-widget__title {
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
}

.order-widget__desc {
	font-size: 13px;
	line-height: 1.43;
}

.order-widget__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100%;
	height: 44px;
}

.order-widget__call {
	display: flex;
	align-items: center;
}

/* The teaser's pills open above the whole card, right-aligned as before */
.order-widget__card .phone-teaser {
	position: static;
}

.order-widget__card .phone-teaser__list {
	right: 14px;
}

/* Hidden while the page order button is on screen (class is-shown set by order-widget.js) */
.js .order-widget:not(.is-shown) .order-widget__card {
	visibility: hidden;
	opacity: 0;
	transform: translateY(24px);
	pointer-events: none;
}

.motion .order-widget__card {
	transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1), transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0s;
}

.motion .order-widget:not(.is-shown) .order-widget__card {
	transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1), transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.35s;
}

@media (prefers-reduced-motion: reduce) {
	.order-widget__card {
		transition: none !important;
		transform: none !important;
	}
}

/* Mobile: a bar fixed to the bottom, teaser on the left, order button on the right */
@media (max-width: 767px) {
	.order-widget {
		position: fixed;
		right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		left: 12px;
		width: auto;
		margin: 0;
		padding: 0;
	}

	.order-widget__card {
		box-sizing: border-box;
		width: 100%;
		height: auto;
		padding: 8px 8px 8px 10px;
	}

	.order-widget__text {
		display: none;
	}

	.order-widget__row {
		flex-direction: row-reverse;
	}

	.order-widget__card .phone-teaser__list {
		right: auto;
		left: 10px;
	}

	.js .order-widget:not(.is-shown) .order-widget__card {
		transform: translateY(32px);
	}
	/* No extra page padding: the mobile footer already ends with 106px of white fade, more than the bar (62px + 12px gap) needs */
}
