.chatnest-button {
	--chatnest-current-bottom: var(--chatnest-desktop-bottom, 20px);
	--chatnest-current-side: var(--chatnest-desktop-side, 20px);
	position: fixed;
	bottom: var(--chatnest-current-bottom);
	z-index: 99999;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 54px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--chatnest-button-color, #25D366);
	color: var(--chatnest-text-color, #ffffff);
	border-radius: var(--chatnest-border-radius, 999px);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
	transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
	-webkit-tap-highlight-color: transparent;
}

.chatnest-button--right {
	right: var(--chatnest-current-side);
	left: auto;
}

.chatnest-button--left {
	left: var(--chatnest-current-side);
	right: auto;
}

.chatnest-button:hover,
.chatnest-button:focus {
	color: var(--chatnest-text-color, #ffffff);
	background: var(--chatnest-hover-color, #20bd5a);
	text-decoration: none;
	transform: translateY(-1px);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

.chatnest-button:focus-visible {
	outline: 3px solid var(--chatnest-button-color, #25D366);
	outline-offset: 3px;
}

.chatnest-button--shadow-none {
	box-shadow: none;
}

.chatnest-button--shadow-soft {
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.chatnest-button--shadow-strong {
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.26);
}

.chatnest-button--content-icon_only .chatnest-button__text {
	display: none;
}

.chatnest-button__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
}

.chatnest-button__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.chatnest-button__text {
	display: inline-block;
	white-space: nowrap;
}

.chatnest-button--size-small {
	min-height: 48px;
	padding: 0 15px;
	gap: 8px;
	font-size: 14px;
}

.chatnest-button--size-small .chatnest-button__icon {
	width: 21px;
	height: 21px;
	flex-basis: 21px;
}

.chatnest-button--size-large {
	min-height: 62px;
	padding: 0 21px;
	gap: 10px;
	font-size: 17px;
}

.chatnest-button--size-large .chatnest-button__icon {
	width: 27px;
	height: 27px;
	flex-basis: 27px;
}

.chatnest-button--pulse {
	position: fixed;
}

.chatnest-button--pulse::after {
	content: '';
	position: absolute;
	inset: -4px;
	border: 2px solid rgba(37, 211, 102, 0.42);
	border-radius: inherit;
	pointer-events: none;
	animation: chatnest-pulse 2.2s ease-out infinite;
}

@keyframes chatnest-pulse {
	0% {
		opacity: 0.75;
		transform: scale(0.96);
	}
	70%,
	100% {
		opacity: 0;
		transform: scale(1.1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.chatnest-button--pulse::after {
		animation: none;
		opacity: 0;
	}

	.chatnest-button {
		transition: none;
	}
}

@media only screen and (max-width: 1024px) {
	.chatnest-button {
		--chatnest-current-bottom: var(--chatnest-tablet-bottom, 18px);
		--chatnest-current-side: var(--chatnest-tablet-side, 16px);
	}
}

@media only screen and (max-width: 768px) {
	.chatnest-button {
		--chatnest-current-bottom: var(--chatnest-mobile-bottom, 16px);
		--chatnest-current-side: var(--chatnest-mobile-side, 14px);
	}
}

/* Accessibility: keep keyboard focus visible without changing the approved button design. */
.chatnest-button:focus:not(:focus-visible) {
	outline: none;
}
