/* DarkPsyche Floating WhatsApp v3
 * No box-shadow is used for the circular WhatsApp button.
 * The outer/inner circular elements use filter: drop-shadow().
 * The wrapper deliberately has NO contain:paint and NO shadow.
 */

#dpfw-floating,
#dpfw-floating * {
	box-sizing: border-box;
}

#dpfw-floating {
	position: fixed !important;
	right: var(--dpfw-right) !important;
	bottom: calc(var(--dpfw-bottom) + env(safe-area-inset-bottom, 0px)) !important;
	left: auto !important;
	top: auto !important;
	width: max-content !important;
	height: max-content !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-end !important;
	justify-content: flex-end !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 0 !important;
	z-index: var(--dpfw-z) !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: translateZ(0) !important;
	contain: none !important;
	filter: none !important;
	box-shadow: none !important;
	background: transparent !important;
	border: 0 !important;
	transition: opacity .18s ease, visibility .18s ease, transform .18s ease !important;
}

#dpfw-floating.dpfw-scrolling {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translate3d(0, 8px, 0) !important;
}

/* Label */
#dpfw-floating .dpfw-label {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 7px !important;
	width: max-content !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: var(--dpfw-label-py) var(--dpfw-label-px) !important;
	background: var(--dpfw-label-bg) !important;
	color: var(--dpfw-label-color) !important;
	border: var(--dpfw-label-border) !important;
	border-radius: var(--dpfw-label-radius) !important;
	box-shadow: var(--dpfw-label-shadow) !important;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: var(--dpfw-label-size) !important;
	font-weight: var(--dpfw-label-weight) !important;
	line-height: 1.1 !important;
	letter-spacing: 0 !important;
	white-space: nowrap !important;
}

#dpfw-floating .dpfw-label-dot {
	display: block !important;
	width: 7px !important;
	height: 7px !important;
	min-width: 7px !important;
	min-height: 7px !important;
	flex: 0 0 7px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--dpfw-label-dot) !important;
	box-shadow: none !important;
}

/* Click target: NO shadow, NO background, NO filter.
 * This prevents a rectangular shadow from ever being generated by the anchor.
 */
#dpfw-floating .dpfw-button {
	position: relative !important;
	display: block !important;
	width: var(--dpfw-outer-size) !important;
	height: var(--dpfw-outer-size) !important;
	min-width: var(--dpfw-outer-size) !important;
	min-height: var(--dpfw-outer-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	filter: none !important;
	overflow: visible !important;
	text-decoration: none !important;
	line-height: 0 !important;
}

/* Actual circular outer visual.
 * The filter is attached to this element, whose rendered shape is circular.
 */
#dpfw-floating .dpfw-outer-circle {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--dpfw-outer-bg) !important;
	border: var(--dpfw-outer-border) !important;
	border-radius: var(--dpfw-outer-radius) !important;
	filter: var(--dpfw-outer-filter) !important;
	box-shadow: none !important;
	overflow: visible !important;
}

/* Actual green circular visual */
#dpfw-floating .dpfw-inner-circle {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--dpfw-inner-size) !important;
	height: var(--dpfw-inner-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--dpfw-inner-bg) !important;
	border: var(--dpfw-inner-border) !important;
	border-radius: var(--dpfw-inner-radius) !important;
	filter: var(--dpfw-inner-filter) !important;
	box-shadow: none !important;
	overflow: hidden !important;
	transition: background-color .18s ease, transform .18s ease !important;
}

#dpfw-floating .dpfw-button:hover .dpfw-inner-circle {
	background: var(--dpfw-inner-hover) !important;
	transform: scale(1.015) !important;
}

/* Icon */
#dpfw-floating .dpfw-icon {
	display: block !important;
	width: var(--dpfw-icon-size) !important;
	height: var(--dpfw-icon-size) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--dpfw-icon-color) !important;
	fill: currentColor !important;
	filter: var(--dpfw-icon-filter) !important;
	box-shadow: none !important;
}

/* Badge */
#dpfw-floating .dpfw-badge {
	position: absolute !important;
	top: var(--dpfw-badge-top) !important;
	left: var(--dpfw-badge-left) !important;
	z-index: 5 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--dpfw-badge-size) !important;
	height: var(--dpfw-badge-size) !important;
	min-width: var(--dpfw-badge-size) !important;
	min-height: var(--dpfw-badge-size) !important;
	margin: 0 !important;
	padding: 0 4px !important;
	background: var(--dpfw-badge-bg) !important;
	color: var(--dpfw-badge-color) !important;
	border: var(--dpfw-badge-border) !important;
	border-radius: 50% !important;
	box-shadow: var(--dpfw-badge-shadow) !important;
	font: 700 var(--dpfw-badge-font)/1 Arial, sans-serif !important;
	line-height: 1 !important;
	white-space: nowrap !important;
}

/* Mobile */
@media (max-width: 767px) {
	#dpfw-floating {
		right: var(--dpfw-mright) !important;
		bottom: calc(var(--dpfw-mbottom) + env(safe-area-inset-bottom, 0px)) !important;
	}

	#dpfw-floating .dpfw-button {
		width: var(--dpfw-mouter-size) !important;
		height: var(--dpfw-mouter-size) !important;
		min-width: var(--dpfw-mouter-size) !important;
		min-height: var(--dpfw-mouter-size) !important;
	}

	#dpfw-floating .dpfw-inner-circle {
		width: var(--dpfw-minner-size) !important;
		height: var(--dpfw-minner-size) !important;
	}

	#dpfw-floating .dpfw-icon {
		width: var(--dpfw-micon-size) !important;
		height: var(--dpfw-micon-size) !important;
	}
}

/* Never let Elementor preview hide the global component */
.elementor-editor-active #dpfw-floating {
	opacity: 1 !important;
	visibility: visible !important;
}
