/* LaranSys v6.0.4 - WhatsApp Magnetic Glow
   Botao flutuante global, inspirado em magnetic / gravity-field hover.
   Nao captura wheel/touch e respeita prefers-reduced-motion. */

.ls-wa-float-shell{
  --ls-wa-x:0px;
  --ls-wa-y:0px;
  --ls-wa-scale:1;
  position:fixed;
  right:clamp(16px,2.1vw,30px);
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:9998;
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  pointer-events:none;
  isolation:isolate;
}

.ls-wa-float{
  position:relative;
  z-index:3;
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(221,255,145,.55);
  color:#fff;
  text-decoration:none;
  background:
    radial-gradient(circle at 34% 27%,rgba(255,255,255,.28),transparent 25%),
    linear-gradient(145deg,#29dc6f 0%,#25d366 38%,#128c45 72%,#547800 135%);
  box-shadow:
    0 18px 44px rgba(0,0,0,.42),
    0 0 0 1px rgba(151,196,33,.11),
    0 0 24px rgba(37,211,102,.38),
    0 0 44px rgba(164,211,35,.19);
  pointer-events:auto;
  transform:translate3d(var(--ls-wa-x),var(--ls-wa-y),0) scale(var(--ls-wa-scale));
  transform-origin:center;
  transition:
    transform .28s cubic-bezier(.22,1,.36,1),
    box-shadow .28s ease,
    filter .28s ease,
    border-color .28s ease;
  will-change:transform;
  outline:none;
}

.ls-wa-float::before,
.ls-wa-float::after{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:inherit;
  pointer-events:none;
  opacity:.55;
  transition:opacity .28s ease,transform .28s ease;
}

.ls-wa-float::before{
  border:1px solid rgba(183,226,66,.38);
  box-shadow:0 0 28px rgba(168,212,0,.34);
  transform:scale(.98);
}

.ls-wa-float::after{
  inset:-18px;
  background:radial-gradient(circle,rgba(168,212,0,.18) 0%,rgba(37,211,102,.08) 42%,transparent 72%);
  filter:blur(8px);
  z-index:-1;
}

.ls-wa-float:hover,
.ls-wa-float:focus-visible,
.ls-wa-float-shell.is-near .ls-wa-float{
  --ls-wa-scale:1.065;
  border-color:rgba(224,255,151,.9);
  filter:saturate(1.08) brightness(1.04);
  box-shadow:
    0 22px 54px rgba(0,0,0,.48),
    0 0 0 1px rgba(174,218,45,.2),
    0 0 30px rgba(37,211,102,.58),
    0 0 58px rgba(168,212,0,.34);
}

.ls-wa-float:hover::before,
.ls-wa-float:focus-visible::before,
.ls-wa-float-shell.is-near .ls-wa-float::before{
  opacity:1;
  transform:scale(1.08);
}

.ls-wa-float-icon{
  width:34px;
  height:34px;
  display:block;
  fill:currentColor;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.24));
}

.ls-wa-tooltip{
  position:absolute;
  right:78px;
  top:50%;
  z-index:5;
  transform:translate3d(8px,-50%,0);
  min-width:max-content;
  padding:10px 13px;
  border:1px solid rgba(174,218,45,.25);
  border-radius:12px;
  color:#f4f8ee;
  background:rgba(6,15,11,.92);
  box-shadow:0 12px 34px rgba(0,0,0,.34),0 0 25px rgba(136,180,24,.09);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-size:12px;
  font-weight:750;
  letter-spacing:.015em;
  line-height:1;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease,visibility .2s ease,transform .25s cubic-bezier(.22,1,.36,1);
}

.ls-wa-tooltip::after{
  content:"";
  position:absolute;
  right:-5px;
  top:50%;
  width:9px;
  height:9px;
  transform:translateY(-50%) rotate(45deg);
  border-top:1px solid rgba(174,218,45,.2);
  border-right:1px solid rgba(174,218,45,.2);
  background:rgba(6,15,11,.92);
}

.ls-wa-float-shell:hover .ls-wa-tooltip,
.ls-wa-float:focus-visible + .ls-wa-tooltip{
  opacity:1;
  visibility:visible;
  transform:translate3d(0,-50%,0);
}

.ls-wa-orbit{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.38;
  transition:opacity .25s ease;
}

.ls-wa-orbit > i{
  --angle:calc(var(--i) * 45deg);
  position:absolute;
  left:50%;
  top:50%;
  width:4px;
  height:4px;
  margin:-2px;
  border-radius:50%;
  background:#c8ee55;
  box-shadow:0 0 9px rgba(180,226,61,.95),0 0 16px rgba(37,211,102,.6);
  transform:rotate(var(--angle)) translateY(-41px);
  opacity:.36;
}

.ls-wa-float-shell:hover .ls-wa-orbit,
.ls-wa-float-shell.is-near .ls-wa-orbit{
  opacity:1;
  animation:ls-wa-orbit-spin 3.4s linear infinite;
}

.ls-wa-float-shell:hover .ls-wa-orbit > i,
.ls-wa-float-shell.is-near .ls-wa-orbit > i{
  animation:ls-wa-dot-pulse 1.15s ease-in-out infinite alternate;
  animation-delay:calc(var(--i) * -90ms);
}

@keyframes ls-wa-orbit-spin{
  to{transform:rotate(360deg)}
}

@keyframes ls-wa-dot-pulse{
  0%{opacity:.28;filter:brightness(.85);scale:.72}
  100%{opacity:1;filter:brightness(1.35);scale:1.34}
}

@keyframes ls-wa-mobile-breathe{
  0%,100%{box-shadow:0 16px 38px rgba(0,0,0,.4),0 0 20px rgba(37,211,102,.32),0 0 34px rgba(168,212,0,.14)}
  50%{box-shadow:0 18px 42px rgba(0,0,0,.44),0 0 31px rgba(37,211,102,.54),0 0 50px rgba(168,212,0,.27)}
}

@media (hover:none),(pointer:coarse){
  .ls-wa-float-shell{
    width:78px;
    height:78px;
    right:12px;
    bottom:max(12px,env(safe-area-inset-bottom));
  }
  .ls-wa-float{
    width:58px;
    height:58px;
    animation:ls-wa-mobile-breathe 2.5s ease-in-out infinite;
  }
  .ls-wa-float-icon{width:31px;height:31px}
  .ls-wa-orbit{display:none}
  .ls-wa-tooltip{display:none}
}

@media (max-width:520px){
  .ls-wa-float-shell{right:8px;bottom:max(10px,env(safe-area-inset-bottom))}
}

@media (prefers-reduced-motion:reduce){
  .ls-wa-float,
  .ls-wa-orbit,
  .ls-wa-orbit > i{
    animation:none !important;
    transition:none !important;
  }
  .ls-wa-float{transform:none !important}
}
