/* Floating WhatsApp contact: every public page. Built by whatsapp.js. */
.wa-float { --wa-ink: var(--ink, #0d0c0a); --wa-sand: var(--sand, #efe7da); --wa-open: #3ecf8e; --wa-closed: #e0a44a;
  position: fixed; z-index: 9; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; height: 48px; padding: 0 14px; border: 1px solid rgb(239 231 218 / .22); border-radius: 12px 2px 12px 12px;
  background: rgb(13 12 10 / .92); color: var(--wa-sand); font: 500 14px/1 var(--sans, system-ui, sans-serif); text-decoration: none; box-shadow: 0 8px 24px rgb(0 0 0 / .35);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .25s, border-color .2s; }
.wa-float:hover, .wa-float:focus-visible { border-color: rgb(239 231 218 / .5); }
.wa-float:focus-visible { outline: 2px solid var(--prisma, #2b8af0); outline-offset: 3px; }
.wa-float[data-hidden] { visibility: hidden; opacity: 0; transform: translateY(16px); pointer-events: none; }
.wa-float svg { flex: none; width: 20px; height: 20px; }
.wa-float .wa-dot { position: absolute; top: -3px; left: -3px; width: 9px; height: 9px; border-radius: 50%; background: var(--wa-closed); box-shadow: 0 0 0 2px var(--wa-ink); }
.wa-float[data-state="open"] .wa-dot { background: var(--wa-open); }
.wa-float[data-state="open"] .wa-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid var(--wa-open); animation: wa-ping 2.4s ease-out infinite; }
.wa-float .wa-label { display: inline-block; max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width .45s cubic-bezier(.2,.8,.2,1), opacity .25s, margin .45s cubic-bezier(.2,.8,.2,1); }
.wa-float:hover .wa-label, .wa-float:focus-visible .wa-label { max-width: 15rem; margin-left: 10px; opacity: 1; }
@keyframes wa-ping { from { transform: scale(.6); opacity: .9; } to { transform: scale(1.7); opacity: 0; } }
@media (hover: none) { .wa-float:hover .wa-label:not(:focus-visible) { max-width: 0; margin-left: 0; opacity: 0; } .wa-float:focus-visible .wa-label { max-width: 15rem; margin-left: 10px; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .wa-float, .wa-float .wa-label { transition: none; } .wa-float .wa-dot::after { animation: none !important; } }
