.protect-floating-contact {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 999;
	display: flex;
	flex-direction: column;
	gap: .65rem;
}

.protect-floating-contact__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	min-height: 3rem;
	padding: .75rem 1rem;
	border-radius: 999px;
	box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .18);
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}

.protect-floating-contact__button:hover,
.protect-floating-contact__button:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 .7rem 1.7rem rgba(0, 0, 0, .24);
}

.protect-floating-contact__button:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.protect-floating-contact__button--phone {
	background: #123f2c;
	color: #fff;
}

.protect-floating-contact__button--whatsapp {
	background: #147a3f;
	color: #fff;
}

.protect-floating-contact__icon {
	font-size: 1.25rem;
}

@media (max-width: 600px) {
	.protect-floating-contact {
		right: .75rem;
		bottom: .75rem;
	}

	.protect-floating-contact:not(.protect-floating-contact--mobile-bar) .protect-floating-contact__button {
		width: 3.25rem;
		height: 3.25rem;
		min-height: 0;
		padding: 0;
	}

	.protect-floating-contact:not(.protect-floating-contact--mobile-bar) .protect-floating-contact__label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.protect-floating-contact--mobile-bar {
		left: 0;
		right: 0;
		bottom: 0;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
		gap: 0;
		padding: .55rem max(.75rem, env(safe-area-inset-right)) calc(.55rem + env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
		background: rgba(255, 255, 255, .96);
		border-top: 1px solid rgba(18, 63, 44, .14);
		box-shadow: 0 -.4rem 1.4rem rgba(0, 0, 0, .12);
		backdrop-filter: blur(10px);
	}

	.protect-floating-contact--mobile-bar .protect-floating-contact__button {
		min-width: 0;
		min-height: 3.25rem;
		padding: .75rem .7rem;
		border-radius: .8rem;
		box-shadow: none;
		font-size: .95rem;
	}

	.protect-floating-contact--mobile-bar .protect-floating-contact__button + .protect-floating-contact__button {
		margin-left: .55rem;
	}

	.protect-floating-contact--mobile-bar .protect-floating-contact__button:hover,
	.protect-floating-contact--mobile-bar .protect-floating-contact__button:focus-visible {
		transform: none;
		box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .35);
	}

	body:has(.protect-floating-contact--mobile-bar) {
		padding-bottom: calc(4.65rem + env(safe-area-inset-bottom));
	}
}

@media (max-width: 360px) {
	.protect-floating-contact--mobile-bar .protect-floating-contact__button {
		font-size: .875rem;
	}

	.protect-floating-contact--mobile-bar .protect-floating-contact__icon {
		font-size: 1.1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.protect-floating-contact__button {
		transition: none;
	}
}
