.sticky-call-wrapper {
	position: fixed;
	bottom: 0;
	z-index: 99999;
	pointer-events: none;
	opacity: 0;
	transition: transform .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1);
}

.sticky-call-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: linear-gradient(135deg, #10b981 0%, #059669 100%);
	color: #fff;
	border: none;
	border-radius: 16px;
	font-family: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto;
	box-shadow: 0 8px 32px rgba(16, 185, 129, .35), 0 2px 8px rgba(16, 185, 129, .15);
	transition: transform .2s ease, box-shadow .2s ease;
	-webkit-tap-highlight-color: transparent;
}

.sticky-call-btn:link, .sticky-call-btn:visited {
	color: #fff !important;
	text-decoration: none;
}

.sticky-call-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 40px rgba(16, 185, 129, .4), 0 4px 12px rgba(16, 185, 129, .2);
	color: #fff !important;
	text-decoration: none;
}

.sticky-call-btn:active {
	transform: scale(.97);
	box-shadow: 0 4px 16px rgba(16, 185, 129, .25);
	color: #fff !important;
}

.sticky-call-btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	color: #fff !important;
}

.sticky-call-btn svg {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	animation: sticky-pulse 2s ease-in-out infinite;
}

.sticky-call-phone {
	font-weight: 600;
	opacity: .92;
}

@media (max-width: 767px) {
	.sticky-call-wrapper {
		left: 0;
		right: 0;
		display: flex;
		justify-content: center;
		padding: 0 16px 20px 16px;
		background: linear-gradient(to top, rgba(15, 23, 42, .12) 0%, transparent 100%);
		transform: translateY(100%);
	}
	
	.sticky-call-btn {
		width: 100%;
		max-width: 420px;
		padding: 16px 24px;
		font-size: 1.1rem;
		border-radius: 16px;
	}
	
	.sticky-call-phone {
		display: none;
	}
	
	.sticky-call-wrapper::before {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		height: env(safe-area-inset-bottom, 20px);
	}
}

@media (min-width: 768px) {
	.sticky-call-wrapper {
		right: 28px;
		bottom: 28px;
		transform: translateY(20px);
	}
	
	.sticky-call-btn {
		padding: 14px 28px;
		font-size: .95rem;
		border-radius: 50px;
		white-space: nowrap;
	}
	
	.sticky-call-phone {
		display: inline;
	}
}

@keyframes sticky-pulse {
	0%, 100% {
		transform: scale(1);
	}
	
	50% {
		transform: scale(1.15);
	}
}