/* ---- Floating action buttons ---- */
.fab-chat{
  position:fixed; right:22px; bottom:22px; z-index:1500;
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#25D366; color:#fff;
  box-shadow:0 8px 24px rgba(37,211,102,0.4);
  transition:transform .25s, box-shadow .25s;
  animation:fabPulse 2.6s ease-out infinite;
}
.fab-chat:hover{ transform:scale(1.08); box-shadow:0 12px 30px rgba(37,211,102,0.55); }
@keyframes fabPulse{
  0%{ box-shadow:0 8px 24px rgba(37,211,102,0.4), 0 0 0 0 rgba(37,211,102,0.5); }
  70%{ box-shadow:0 8px 24px rgba(37,211,102,0.4), 0 0 0 14px rgba(37,211,102,0); }
  100%{ box-shadow:0 8px 24px rgba(37,211,102,0.4), 0 0 0 0 rgba(37,211,102,0); }
}

.fab-top{
  position:fixed; right:22px; bottom:88px; z-index:1500;
  width:46px; height:46px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:rgba(45,140,240,0.15); color:#2D8CF0;
  border:1px solid rgba(45,140,240,0.35);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .3s, transform .3s, background .25s;
}
.fab-top.show{ opacity:1; transform:translateY(0); pointer-events:auto; }
.fab-top:hover{ background:#2D8CF0; color:#0A0A0A; }

@media(max-width:520px){
  .fab-chat{ width:52px; height:52px; right:16px; bottom:78px; }
  .fab-top{ width:42px; height:42px; right:16px; bottom:140px; }
}

/* ---- Mobile sticky CTA bar ---- */
.mobile-cta{ display:none; }
@media(max-width:768px){
  .mobile-cta{
    display:flex; gap:10px; align-items:stretch;
    position:fixed; left:0; right:0; bottom:0; z-index:1400;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(10,10,10,0.92);
    -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
    border-top:1px solid var(--blue-line, rgba(45,140,240,0.1));
  }
  /* space so the fixed bar doesn't cover the footer */
  body:not(.no-mobile-cta){ padding-bottom:74px; }
  .mcta-primary{
    flex:1; display:flex; align-items:center; justify-content:center;
    background:#2D8CF0; color:#0A0A0A; text-decoration:none;
    font-weight:700; font-size:.8rem; letter-spacing:1px; text-transform:uppercase;
    padding:14px; border-radius:10px;
  }
  .mcta-wa{
    flex:0 0 52px; display:flex; align-items:center; justify-content:center;
    background:#25D366; color:#fff; text-decoration:none; border-radius:10px;
  }
  /* lift floating buttons above the bar */
  .fab-chat{ display:none; }
  .fab-top{ bottom:82px; }
}
