/* Floating contact widget */
.gf-contact-widget {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 510;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.gf-contact-widget.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.gf-contact-widget.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.gf-contact-widget__items {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 10px;
	opacity: 0;
	visibility: hidden;
	transform: scale(0.8) translateY(10px);
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

.gf-contact-widget.is-open .gf-contact-widget__items {
	opacity: 1;
	visibility: visible;
	transform: scale(1) translateY(0);
}

.gf-contact-widget__item {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	color: #fff !important;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gf-contact-widget__item:hover,
.gf-contact-widget__item:focus {
	transform: scale(1.1);
	color: #fff !important;
}

.gf-contact-widget__item i,
.gf-contact-widget__toggle i {
	color: inherit !important;
}

.gf-contact-widget__item--telegram {
	background: #0088cc !important;
	box-shadow: 0 2px 8px rgba(0, 136, 204, 0.4);
}

.gf-contact-widget__item--telegram i {
	color: #fff !important;
}

.gf-contact-widget__item--phone {
	background: var(--wp--preset--color--primary, #ff7f50) !important;
	box-shadow: 0 2px 8px rgba(255, 127, 80, 0.4);
}

.gf-contact-widget__item--phone i {
	color: #fff !important;
}

.gf-contact-widget__item--whatsapp {
	background: #25d366 !important;
	box-shadow: 0 2px 8px rgba(37, 211, 102, 0.4);
}

.gf-contact-widget__item--whatsapp i {
	color: #fff !important;
}

.gf-contact-widget__item--email {
	background: #ea4335 !important;
	box-shadow: 0 2px 8px rgba(234, 67, 53, 0.4);
}

.gf-contact-widget__item--email i {
	color: #fff !important;
}

/* Обёртка для пульсации */
.gf-contact-widget__toggle-wrap {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gf-contact-widget__toggle-wrap::before {
	content: '';
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--primary, #ff7f50);
	animation: gf-contact-widget-pulse 2s ease-out infinite;
	pointer-events: none;
}

.gf-contact-widget.is-open .gf-contact-widget__toggle-wrap::before {
	display: none;
}

@keyframes gf-contact-widget-pulse {
	0% {
		transform: scale(0.9);
		opacity: 0.7;
	}
	100% {
		transform: scale(1.5);
		opacity: 0;
	}
}

/* Основная иконка — сбрасываем padding от глобальных стилей button */
.gf-contact-widget__toggle {
	padding: 0 !important;
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	background: var(--wp--preset--color--primary, #ff7f50) !important;
	color: #fff !important;
	border: none;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.gf-contact-widget__toggle i {
	color: #fff !important;
}

.gf-contact-widget__toggle:hover {
	opacity: 0.95;
}

.gf-contact-widget.is-open .gf-contact-widget__toggle {
	background: #fff !important;
	color: var(--wp--preset--color--primary, #ff7f50) !important;
	border: 1px solid #e5e5e5;
}

.gf-contact-widget.is-open .gf-contact-widget__toggle i {
	color: var(--wp--preset--color--primary, #ff7f50) !important;
}

@media (max-width: 991px) {
	.gf-contact-widget {
		bottom: 40px;
		right: 15px;
	}

	.gf-contact-widget__item {
		width: 44px;
		height: 44px;
		font-size: 1.1rem;
	}

	.gf-contact-widget__toggle {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
		font-size: 1.1rem;
	}
}

/* Скрываем bottom-data при открытом виджете контактов */
.bottom-data.is-hidden-by-widget {
	visibility: hidden !important;
	pointer-events: none !important;
	opacity: 0 !important;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}
