/* ============================================================
   TULIPE PALETTES - BOUTON WHATSAPP FLOTTANT
   Fixe en bas à droite, apparaît après un peu de scroll et pulse
   3 fois à sa première apparition (puis reste calme). Aucune
   animation si l'utilisateur réduit les mouvements (base.css).
   ============================================================ */

.whatsapp-fab {
  position: fixed;
  right: clamp(16px, 2vw, 28px);
  bottom: clamp(16px, 2vw, 28px);
  z-index: 65; /* sous le header collant (70), au-dessus du contenu */

  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;

  color: var(--color-paper);
  background-color: var(--color-forest);
  box-shadow: 0 2px 8px rgba(20, 15, 10, 0.16);

  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.9);
  transition: opacity 250ms ease, transform 250ms ease,
              visibility 0s linear 250ms, background-color 180ms ease;
}

.whatsapp-fab.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}

.whatsapp-fab:hover {
  background-color: color-mix(in srgb, var(--color-forest) 82%, black);
}

.whatsapp-fab:hover .whatsapp-fab__icon {
  transform: scale(1.12) rotate(-6deg);
}

.whatsapp-fab:focus-visible {
  outline: 3px solid var(--color-ember);
  outline-offset: 3px;
}

.whatsapp-fab__icon {
  width: 30px;
  height: 30px;
  transition: transform 200ms ease;
}

/* Onde qui pulse : pseudo-élément, seul transform/opacity sont animés */
.whatsapp-fab::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-color: var(--color-forest);
  opacity: 0;
  z-index: -1;
}

.whatsapp-fab.is-pulsing::before {
  animation: whatsapp-pulse 1.8s ease-out 3;
}

@keyframes whatsapp-pulse {
  0%   { transform: scale(1);   opacity: 0.45; }
  100% { transform: scale(1.7); opacity: 0; }
}

@media (max-width: 767px) {
  .whatsapp-fab { width: 52px; height: 52px; }
}
