.site-float-actions {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1.15rem, env(safe-area-inset-bottom));
  z-index: 10060;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  pointer-events: none;
  transition:
    opacity 0.28s cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0.28s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-float-actions.is-at-footer {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(16px);
}

.site-float-btn {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  box-shadow:
    0 4px 14px rgba(15, 23, 42, 0.18),
    0 0 0 1px rgba(15, 23, 42, 0.06);
  transition: transform 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease;
}

.site-float-btn:hover {
  transform: translateY(-2px);
  box-shadow:
    0 8px 22px rgba(15, 23, 42, 0.22),
    0 0 0 1px rgba(15, 23, 42, 0.08);
}

.site-float-btn:active {
  transform: translateY(0);
}

.site-float-top {
  background: var(--site-bg-card);
  color: var(--color-primary);
  border: 1px solid var(--site-border);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
}

.site-float-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

.site-float-whatsapp {
  background: #25d366;
  color: #fff;
  border: 1px solid color-mix(in srgb, #25d366 80%, #000);
}

.site-float-whatsapp:hover {
  background: #1ebe57;
  color: #fff;
}

body.mobile-nav-open .site-float-actions,
body.portfolio-lightbox-open .site-float-actions {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media (max-width: 640px) {
  .site-float-btn {
    width: 2.85rem;
    height: 2.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-float-btn,
  .site-float-top {
    transition: none;
  }
}
