.fcb-wrap {
	position: fixed;
	bottom: calc(var(--fcb-bottom, 20px) + env(safe-area-inset-bottom, 0px));
	z-index: var(--fcb-z, 9990);
	display: flex;
	flex-direction: column;
	gap: var(--fcb-gap, 12px);
	margin: 0;
	padding: 0;
	pointer-events: none;
}

.fcb-pos-right {
	right: var(--fcb-side, 20px);
	align-items: flex-end;
}

.fcb-pos-left {
	left: var(--fcb-side, 20px);
	align-items: flex-start;
}

.fcb-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--fcb-size, 56px);
	height: var(--fcb-size, 56px);
	border-radius: 50%;
	background: var(--fcb-btn-bg, #25d366);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
	pointer-events: auto;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}

.fcb-btn:hover,
.fcb-btn:focus-visible {
	color: #fff;
	transform: scale(1.07);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.34);
}

.fcb-btn:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 2px;
}

.fcb-whatsapp {
	--fcb-btn-bg: var(--fcb-wa, #25d366);
}

.fcb-phone {
	--fcb-btn-bg: var(--fcb-ph, #0034ff);
}

.fcb-icon {
	display: flex;
	width: 52%;
	height: 52%;
}

.fcb-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* Hover / focus label. */
.fcb-label {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	padding: 8px 12px;
	border-radius: 6px;
	background: #242424;
	color: #fff;
	font: 500 14px/1 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.fcb-pos-right .fcb-label {
	right: calc(100% + 10px);
}

.fcb-pos-left .fcb-label {
	left: calc(100% + 10px);
}

@media (hover: hover) {
	.fcb-btn:hover .fcb-label,
	.fcb-btn:focus-visible .fcb-label {
		opacity: 1;
		visibility: visible;
	}
}

/* Pulse ring. */
.fcb-pulse .fcb-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: 50%;
	background: var(--fcb-btn-bg);
	opacity: 0.5;
	animation: fcb-pulse 2.2s ease-out infinite;
}

.fcb-pulse .fcb-phone::before {
	animation-delay: 1.1s;
}

@keyframes fcb-pulse {
	0% {
		transform: scale(1);
		opacity: 0.5;
	}
	70%,
	100% {
		transform: scale(1.6);
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fcb-pulse .fcb-btn::before {
		animation: none;
		opacity: 0;
	}
	.fcb-btn {
		transition: none;
	}
}

/* Per-device visibility. */
@media (min-width: 769px) {
	.fcb-only-mobile {
		display: none;
	}
}

@media (max-width: 768px) {
	.fcb-only-desktop {
		display: none;
	}
}

@media print {
	.fcb-wrap {
		display: none;
	}
}
