/* The floating invitation follows the supplied reference, with layered motion. */
.floating-whatsapp {
  --wa-green: #20ca67;
  width: 64px;
  height: 64px;
  min-height: 64px;
  bottom: max(26px, env(safe-area-inset-bottom));
  right: 26px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(calc(100% + 54px), 0, 0);
  transition: opacity .45s ease, transform .85s cubic-bezier(.22,1,.36,1), visibility 0s .85s;
}
.floating-whatsapp.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
  transition-delay: 0s;
}
.floating-whatsapp:hover { background: transparent; }
.floating-whatsapp:not(.is-visible) *,
.floating-whatsapp:not(.is-visible) *::before,
.floating-whatsapp:not(.is-visible) *::after { animation-play-state: paused; }
.floating-whatsapp .wa-disc {
  display: grid;
  place-items: center;
  position: relative;
  width: 60px;
  height: 60px;
  color: white;
  border: 2px solid #fff;
  border-radius: 50%;
  background: linear-gradient(145deg, #2adb78, #10b955);
  box-shadow: 0 9px 28px #16a55235, 0 0 0 6px #36cb6513;
  animation: wa-breathe 3.2s ease-in-out infinite;
  transition: background .3s, box-shadow .3s;
}
.wa-disc::before, .wa-disc::after {
  content: '';
  position: absolute;
  inset: -10px;
  border: 1px solid #2ecb6a60;
  border-radius: 50%;
  pointer-events: none;
  animation: wa-ripple 3.2s cubic-bezier(.2,.5,.4,1) infinite;
}
.wa-disc::after { animation-delay: 1.6s; }
.floating-whatsapp .wa-logo {
  width: 33px;
  height: 33px;
  position: relative;
  filter: invert(1);
  animation: wa-hello 7s 3s ease-in-out infinite;
}
.floating-whatsapp:hover .wa-disc, .floating-whatsapp:focus-visible .wa-disc {
  box-shadow: 0 12px 35px #16a5524d, 0 0 0 8px #36cb6520;
}
.floating-whatsapp .wa-tooltip {
  position: absolute;
  right: calc(100% + 14px);
  top: 50%;
  display: flex;
  gap: 10px;
  align-items: center;
  width: 206px;
  padding: 12px 15px;
  border: 1px solid #ffffffb0;
  border-radius: 17px;
  background: #fffdf9f5;
  box-shadow: 0 9px 35px #69513914;
  backdrop-filter: blur(14px);
  color: #42382e;
  text-align: left;
  opacity: 0;
  transform: translate(16px, -50%) scale(.94);
  transform-origin: right center;
  pointer-events: none;
  transition: opacity .45s, transform .65s cubic-bezier(.2,.8,.2,1);
}
.floating-whatsapp:hover .wa-tooltip,
.floating-whatsapp:focus-visible .wa-tooltip,
.floating-whatsapp.is-teasing .wa-tooltip {
  opacity: 1;
  transform: translate(0,-50%) scale(1);
  pointer-events: auto;
}
.wa-tooltip .wa-status {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #20ce68;
  flex: 0 0 8px;
  animation: wa-status 2.8s ease-in-out infinite;
}
.wa-tooltip .wa-message { display: block; }
.wa-message strong { display: block; font-size: 10px; font-weight: 600; line-height: 1.6; letter-spacing: .015em; }
.wa-message small { display: block; font-size: 9px; line-height: 1.6; color: #796e61; }
.wa-message .wa-dots { display: inline-flex; margin-left: 3px; }
.wa-dots i { font-style: normal; animation: wa-dot 1.5s ease-in-out infinite; }
.wa-dots i:nth-child(2) { animation-delay: .18s; }
.wa-dots i:nth-child(3) { animation-delay: .36s; }
@keyframes wa-breathe { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.035); } }
@keyframes wa-ripple { 0% { opacity: .55; transform: scale(.86); } 90%,100% { opacity: 0; transform: scale(1.22); } }
@keyframes wa-hello { 0%,76%,100% { transform: rotate(0); } 80% { transform: rotate(-12deg); } 84% { transform: rotate(10deg); } 88% { transform: rotate(-6deg); } 92% { transform: rotate(0); } }
@keyframes wa-status { 0%,100% { box-shadow: 0 0 0 0 #20ce6820; } 50% { box-shadow: 0 0 0 4px #20ce6810; } }
@keyframes wa-dot { 0%,60%,100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-2px); opacity: 1; } }
@media (max-width: 767px) {
  .floating-whatsapp { width: 58px; height: 58px; min-height: 58px; right: 18px; bottom: max(20px,env(safe-area-inset-bottom)); }
  .floating-whatsapp .wa-disc { width: 54px; height: 54px; }
  .floating-whatsapp .wa-logo { width: 30px; height: 30px; }
  .floating-whatsapp .wa-tooltip { width: 200px; right: calc(100% + 10px); }
}
@media (prefers-reduced-motion: reduce) {
  .floating-whatsapp, .floating-whatsapp *, .wa-disc::before, .wa-disc::after { animation: none !important; transition: none !important; }
  .wa-disc::before { opacity: .4; }
  .wa-disc::after { display: none; }
}
