/* Floating chat / messengers — bottom-right */
.floating-contact {
	--fc-size: 56px;
	--fc-toggle-size: 64px;
	--fc-gap: 10px;
	--fc-offset-x: 20px;
	--fc-offset-y: 20px;
	--fc-stack: calc(var(--fc-toggle-size) + var(--fc-gap) + var(--fc-size) * 2 + var(--fc-gap));

	position: fixed;
	right: var(--fc-offset-x);
	bottom: var(--fc-offset-y);
	z-index: 99991;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--fc-gap);
	max-width: calc(100vw - var(--fc-offset-x) * 2);
	pointer-events: none;
}

.floating-contact__toggle,
.floating-contact__action {
	pointer-events: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--fc-size);
	height: var(--fc-size);
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.45);
	box-shadow: 0 12px 26px rgba(46, 61, 60, 0.22);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, opacity 0.2s ease;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}

.floating-contact__toggle {
	color: #fff;
	width: var(--fc-toggle-size);
	height: var(--fc-toggle-size);
	background: linear-gradient(135deg, var(--medik-accent-dark) 0%, var(--medik-accent) 100%);
}

.floating-contact__toggle svg {
	width: 28px;
	height: 29px;
}

.floating-contact__icon--close {
	display: none;
}

.floating-contact.is-open .floating-contact__icon--open {
	display: none;
}

.floating-contact.is-open .floating-contact__icon--close {
	display: block;
}

.floating-contact__toggle:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 30px rgba(46, 61, 60, 0.28);
}

.floating-contact__toggle:focus-visible,
.floating-contact__action:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.floating-contact__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--fc-gap);
	pointer-events: none;
}

.floating-contact__action {
	color: #fff;
	opacity: 0;
	transform: translateY(10px) scale(0.9);
}

.floating-contact__action img {
	width: 22px;
	height: 22px;
}

.floating-contact__action--telegram {
	background: #2aabee;
}

.floating-contact__action--max {
	background: #6e5cf7;
}

.floating-contact.is-open .floating-contact__actions {
	pointer-events: auto;
}

.floating-contact.is-open .floating-contact__action {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.floating-contact.is-open .floating-contact__action:nth-child(1) {
	transition-delay: 0ms;
}

.floating-contact.is-open .floating-contact__action:nth-child(2) {
	transition-delay: 45ms;
}

.floating-contact__action:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(46, 61, 60, 0.28);
}

/* Lift above cookie bar */
body:has(.cookie-notice:not([hidden]):not(.is-hiding)) .floating-contact {
	--fc-offset-y: max(108px, calc(16px + env(safe-area-inset-bottom, 0px) + 92px));
}

/* Tablets & phones */
@media (max-width: 1023px) {
	.floating-contact {
		--fc-size: 52px;
		--fc-toggle-size: 58px;
		--fc-offset-x: 16px;
		--fc-offset-y: max(16px, env(safe-area-inset-bottom, 0px));
	}
}

@media (max-width: 640px) {
	.floating-contact {
		--fc-size: 50px;
		--fc-toggle-size: 56px;
		--fc-gap: 8px;
		--fc-offset-x: 14px;
		--fc-offset-y: max(14px, env(safe-area-inset-bottom, 0px));
	}

	.floating-contact__toggle svg {
		width: 26px;
		height: 27px;
	}
}

@media (max-width: 480px) {
	.floating-contact {
		--fc-size: 48px;
		--fc-toggle-size: 54px;
		--fc-offset-x: max(12px, env(safe-area-inset-right, 0px));
		--fc-offset-y: max(12px, env(safe-area-inset-bottom, 0px));
	}

	body:has(.cookie-notice:not([hidden]):not(.is-hiding)) .floating-contact {
		--fc-offset-y: max(100px, calc(12px + env(safe-area-inset-bottom, 0px) + 88px));
	}
}

@media (max-width: 374px) {
	.floating-contact {
		--fc-size: 46px;
		--fc-toggle-size: 52px;
		--fc-offset-x: max(10px, env(safe-area-inset-right, 0px));
	}
}

/* Short viewport: keep stack inside screen when open */
@media (max-height: 520px) and (max-width: 1023px) {
	.floating-contact.is-open {
		max-height: calc(100dvh - var(--fc-offset-y) - 8px);
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}
}

@media (prefers-reduced-motion: reduce) {
	.floating-contact__toggle,
	.floating-contact__action {
		transition-duration: 0.01ms;
	}
}
