.hb-floating-actions {
	position: relative;
	z-index: 40;
}

.hb-floating-actions__desktop {
	display: grid;
	gap: .6rem;
	justify-items: end;
	position: fixed;
	right: max(22px, env(safe-area-inset-right));
	bottom: max(22px, env(safe-area-inset-bottom));
	z-index: 60;
}

.hb-floating-action {
	display: grid;
	width: 3rem;
	height: 3rem;
	place-items: center;
	position: relative;
	border: 1px solid rgba(216, 185, 129, .72);
	border-radius: 50%;
	background: var(--hb-color-button-background);
	color: var(--hb-color-button-text);
	box-shadow: var(--hb-shadow-md);
	cursor: pointer;
	text-decoration: none;
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.hb-floating-action:hover,
.hb-floating-action:focus-visible {
	background: var(--hb-color-gold);
	color: var(--hb-color-heading);
	transform: translateY(-.12rem);
}

.hb-floating-action::after {
	padding: .45rem .6rem;
	position: absolute;
	top: 50%;
	right: calc(100% + .6rem);
	border-radius: var(--hb-radius-xs);
	background: var(--hb-color-heading);
	color: var(--hb-color-button-text);
	content: attr(data-tooltip);
	font-size: var(--hb-type-caption);
	line-height: 1;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-50%);
	white-space: nowrap;
}

.hb-floating-action:hover::after,
.hb-floating-action:focus-visible::after { opacity: 1; }
.hb-floating-action--whatsapp {
	order: 1;
	width: 58px;
	height: 58px;
	border-color: rgba(216, 185, 129, .4);
	background: #173d34;
	color: #fbf8f2;
	box-shadow: 0 12px 28px -8px rgba(15, 42, 36, .55);
}
.hb-floating-action--whatsapp .hb-icon {
	display: block;
	width: 30px;
	height: 30px;
	fill: currentColor;
	stroke: none;
}
.hb-floating-action--whatsapp:hover,
.hb-floating-action--whatsapp:focus-visible {
	background: #b58b4c;
	color: #0f2a24;
	transform: none;
}
.hb-floating-actions__mobile { display: none; }

@media (max-width: 60rem) {
	.hb-floating-actions__desktop { display: none; }
	body.hb-has-mobile-actions,
	body:has(.hb-floating-actions__mobile) {
		padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
	}
	html:has(body.hb-has-mobile-actions) {
		scroll-padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
	}
	body.hb-mobile-nav-open .hb-floating-actions__mobile { visibility: hidden; }

	.hb-floating-actions__mobile {
		display: grid;
		grid-auto-columns: 1fr;
		grid-auto-flow: column;
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 60;
		gap: 4px;
		padding: 5px max(8px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
		border-top: 1px solid #d5dfda;
		background: #fff;
		box-shadow: 0 -6px 24px rgba(15, 42, 36, .09);
	}
	.hb-floating-actions__mobile[hidden] { display: none; }

	.hb-floating-actions__mobile a {
		display: flex;
		flex-direction: column;
		min-width: 0;
		height: 72px;
		align-items: center;
		justify-content: center;
		gap: 4px;
		padding: 6px 3px;
		border-radius: 8px;
		color: #43584f;
		font-size: 11px;
		font-weight: 600;
		line-height: 1.2;
		text-align: center;
		text-decoration: none;
	}

	.hb-mobile-dock__icon {
		display: grid;
		place-items: center;
		width: 32px;
		height: 28px;
	}
	.hb-floating-actions__mobile span { max-width: 100%; overflow-wrap: anywhere; }
	.hb-mobile-dock__item > span:last-child { display: flex; align-items: center; justify-content: center; min-height: 2.4em; }
	.hb-floating-actions__mobile a[aria-current] { background: #edf3ef; color: #173d34; }
	.hb-floating-actions__mobile .hb-mobile-dock__item--appointment { background: #173d34; color: #fff; }
	.hb-mobile-dock__item--appointment .hb-mobile-dock__icon { color: #e4c68f; }
	.hb-mobile-dock__item--whatsapp .hb-mobile-dock__icon { color: #176344; }

	.hb-floating-actions__mobile a:hover,
	.hb-floating-actions__mobile a:focus-visible {
		background: #e9d4ad;
		color: #173d34;
	}
	.hb-floating-actions__mobile a:focus-visible { outline: 2px solid #173d34; outline-offset: -2px; }

	.hb-floating-actions__mobile .hb-icon { width: 23px; height: 23px; }
	.hb-floating-actions__mobile .hb-mobile-dock__item--whatsapp .hb-icon {
		width: 25px;
		height: 25px;
		fill: currentColor;
		stroke: none;
	}
}

.hb-appointment-sheet:not([open]) { display: none; }
.hb-appointment-sheet {
	box-sizing: border-box;
	width: min(100%, 480px);
	max-width: 100%;
	max-height: calc(100dvh - 24px);
	margin: auto auto 0;
	padding: 0;
	border: 1px solid #d5dfda;
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	background: #fff;
	color: #173d34;
	text-align: start;
	box-shadow: 0 -12px 50px #0f2a2433;
}
.hb-appointment-sheet::backdrop { background: #0f2a24a6; }
.hb-appointment-sheet__inner { padding: 20px 20px max(24px, env(safe-area-inset-bottom)); }
.hb-appointment-sheet__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hb-appointment-sheet h2 { margin: 0; font-size: 26px; line-height: 1.15; overflow-wrap: anywhere; }
.hb-appointment-sheet__close { display: grid; place-items: center; flex: 0 0 44px; height: 44px; padding: 0; border: 1px solid #d5dfda; border-radius: 8px; background: #f3f6f4; color: #173d34; cursor: pointer; }
.hb-appointment-sheet p { margin: 10px 0 20px; color: #55665e; font-size: 14px; line-height: 1.5; }
.hb-appointment-sheet__links { display: grid; gap: 10px; }
.hb-appointment-sheet__links a { display: flex; align-items: center; gap: 14px; min-height: 62px; padding: 12px 16px; border: 1px solid #d5dfda; border-radius: 8px; color: #173d34; font-size: 15px; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.hb-appointment-sheet__links .hb-icon { flex: 0 0 24px; }
.hb-appointment-sheet__links small { display: block; margin-top: 3px; color: #55665e; font-size: 13px; font-weight: 400; text-align: start; }
.hb-appointment-sheet__links .hb-appointment-sheet__whatsapp { background: #173d34; color: #fff; border-color: #173d34; }
.hb-appointment-sheet__links a:hover { background: #edf3ef; color: #173d34; }
.hb-appointment-sheet a:focus-visible,
.hb-appointment-sheet button:focus-visible { outline: 3px solid #9d773b; outline-offset: 3px; }
@media print {
	.hb-floating-actions, .hb-appointment-sheet { display: none !important; }
	body.hb-has-mobile-actions { padding-bottom: 0; }
}
