/* CWS-Suite AI assistant — floating chat button only (design: Webshop Chatbot).
   Everything else keeps the plugin's built-in styles. */

.cws-aia.cws-aia--custom .cws-aia-launch,
.cws-aia.cws-aia--custom .cws-aia-launch:hover,
.cws-aia.cws-aia--custom .cws-aia-launch:focus {
	position: relative;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: #fff;
	background: linear-gradient(135deg, #76ab2f 0%, #3fae7a 35%, #1a9ab0 62%, #8b5cf6 85%, #e040fb 100%);
	background-size: 140% 140%;
	background-position: 0 0;
	box-shadow: 0 8px 24px rgba(22, 24, 28, .24);
	transition: background-position .3s ease, transform .25s cubic-bezier(.34, 1.56, .64, 1);
}

.cws-aia.cws-aia--custom .cws-aia-launch:hover {
	background-position: 100% 0;
}

.cws-aia.cws-aia--custom .cws-aia-launch:active {
	transform: scale(.92);
}

/* Soft pulsing glow behind the button */
.cws-aia.cws-aia--custom .cws-aia-launch::before {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	background:
		radial-gradient(circle at 30% 30%, rgba(118, 171, 47, .55), transparent 60%),
		radial-gradient(circle at 75% 75%, rgba(224, 64, 251, .45), transparent 60%);
	filter: blur(10px);
	z-index: -1;
	pointer-events: none;
	animation: jm-aia-pulse 2.8s ease-in-out infinite;
}

@keyframes jm-aia-pulse {
	0%, 100% { opacity: .6; transform: scale(.95); }
	50% { opacity: 1; transform: scale(1.12); }
}

/* Icon swap: AI mark <-> close */
.cws-aia.cws-aia--custom .cws-aia-launch .jm-aia-logo,
.cws-aia.cws-aia--custom .cws-aia-launch .jm-aia-x {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	transition: opacity .25s, transform .45s cubic-bezier(.34, 1.4, .64, 1);
}

.cws-aia.cws-aia--custom .cws-aia-launch svg {
	display: block;
	color: #fff;
}

.cws-aia.cws-aia--custom .cws-aia-launch .jm-aia-x {
	opacity: 0;
	transform: rotate(-90deg) scale(.5);
}

.cws-aia.cws-aia--custom.is-open .cws-aia-launch .jm-aia-logo {
	opacity: 0;
	transform: rotate(90deg) scale(.5);
}

.cws-aia.cws-aia--custom.is-open .cws-aia-launch .jm-aia-x {
	opacity: 1;
	transform: none;
}

/* ---------- Stay clear of the cookie notice and the mobile menu ----------
   --jm-aia-lift is set by ai-assistant.js while the cookie notice is shown
   and overlaps the widget; jm-aia-menu-open while the mobile menu is open. */

.cws-aia.cws-aia--custom.cws-aia--floating {
	--jm-aia-base: 20px;
	bottom: calc(var(--jm-aia-base) + var(--jm-aia-lift, 0px));
	transition: bottom .35s cubic-bezier(.22, 1, .36, 1), opacity .2s ease, visibility .2s;
}

.cws-aia.cws-aia--custom.cws-aia--floating .cws-aia-panel {
	height: min(var(--cws-aia-height), calc(100vh - 120px - var(--jm-aia-lift, 0px)));
}

.cws-aia.cws-aia--custom.cws-aia--floating.jm-aia-menu-open:not(.is-open) {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

@media (max-width: 600px) {
	/* The open chat is full screen on phones: no lift there. */
	.cws-aia.cws-aia--custom.cws-aia--floating.is-open {
		bottom: auto;
	}

	.cws-aia.cws-aia--custom.cws-aia--floating .cws-aia-panel {
		height: 100vh;
		height: 100dvh;
		height: var(--cws-aia-vvh, 100dvh);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cws-aia.cws-aia--custom .cws-aia-launch::before {
		animation: none;
	}
	.cws-aia.cws-aia--custom .cws-aia-launch,
	.cws-aia.cws-aia--custom .cws-aia-launch .jm-aia-logo,
	.cws-aia.cws-aia--custom .cws-aia-launch .jm-aia-x,
	.cws-aia.cws-aia--custom.cws-aia--floating {
		transition: none;
	}
}
