/* =========================================================
   FLOATING ACTIONS — WhatsApp, Maps, Scroll Top
   ========================================================= */

   .floating-actions {
   	position: fixed;
   	right: 22px;
   	bottom: 22px;
   	z-index: 900;
   	display: flex;
   	flex-direction: column;
   	gap: 12px;
   	align-items: flex-end;
   }

/* Base fab button */
.fab {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	display: grid;
	place-items: center;
	color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
	position: relative;
	text-decoration: none;
}
.fab:hover {
	transform: translateY(-3px) scale(1.05);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .25);
}
.fab:focus-visible {
	outline: 3px solid #19b6d8;
	outline-offset: 3px;
}
.fab svg { width: 26px; height: 26px; }

/* WhatsApp */
.fab-wa {
	background: linear-gradient(135deg, #25D366, #128C7E);
}
.fab-wa:hover { background: linear-gradient(135deg, #1fbb5a, #0f7367); }

/* Maps */
.fab-map {
	background: linear-gradient(135deg, #4285F4, #1967D2);
}
.fab-map:hover { background: linear-gradient(135deg, #3574e0, #145bbd); }

/* Scroll top */
.fab-top {
	background: #061a26;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s ease, visibility .3s ease, transform .3s ease, background .25s ease;
}
.fab-top:hover { background: #0089b0; }
.fab-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* Pulse ring WA */
.fab-wa::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid #25D366;
	opacity: .55;
	animation: fab-pulse 2s ease-out infinite;
	pointer-events: none;
}
@keyframes fab-pulse {
	0%   { transform: scale(1);    opacity: .55; }
	70%  { transform: scale(1.35); opacity: 0; }
	100% { transform: scale(1.35); opacity: 0; }
}

/* --- Maps popup (embed mode) --- */
.maps-popup {
	position: fixed;
	inset: 0;
	z-index: 9500;
	background: rgba(4, 16, 24, .72);
	backdrop-filter: blur(8px);
	display: grid;
	place-items: center;
	padding: 30px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}
.maps-popup.is-open {
	opacity: 1;
	visibility: visible;
}
.maps-popup-inner {
	position: relative;
	width: 100%;
	max-width: 720px;
	height: 70vh;
	max-height: 620px;
	background: #fff;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 30px 90px rgba(0, 0, 0, .5);
	transform: scale(.94);
	transition: transform .3s ease;
}
.maps-popup.is-open .maps-popup-inner { transform: scale(1); }
.maps-popup-inner iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.maps-popup-close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 5;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: rgba(6, 26, 38, .85);
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background .2s ease, transform .2s ease;
}
.maps-popup-close:hover {
	background: #e74c3c;
	transform: rotate(90deg);
}
body.maps-open { overflow: hidden; }

/* Tooltip */
.fab-label {
	position: absolute;
	right: 64px;
	top: 50%;
	transform: translateY(-50%);
	background: #061a26;
	color: #fff;
	font-size: .78rem;
	font-weight: 700;
	padding: 6px 12px;
	border-radius: 8px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
}
.fab:hover .fab-label {
	opacity: 1;
	transform: translateY(-50%) translateX(-2px);
}

/* Responsive */
@media (max-width: 620px) {
	.floating-actions { right: 14px; bottom: 14px; gap: 10px; }
	.fab { width: 48px; height: 48px; }
	.fab svg { width: 22px; height: 22px; }
	.fab-label { display: none; }
	.maps-popup { padding: 16px; }
	.maps-popup-inner { height: 75vh; }
}
@media (prefers-reduced-motion: reduce) {
	.fab, .fab-wa::after, .maps-popup-inner {
		transition: none !important;
		animation: none !important;
	}
}