/* Cruzial v8 · Botón flotante de WhatsApp (todas las páginas). Configuración en assets/whatsapp.js. */
.wa-fab{position:fixed;z-index:70;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:0;height:56px;min-width:56px;padding:0;border-radius:999px;
  color:#fff!important;text-decoration:none!important;font:600 15px/1 var(--sans,system-ui);letter-spacing:-.01em;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 55%),#1faa53;border:1px solid rgba(255,255,255,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 14px 30px -12px rgba(8,60,30,.7),0 4px 12px -4px rgba(0,0,0,.35);
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,opacity .35s,visibility 0s,padding .35s cubic-bezier(.22,1,.36,1);opacity:1;visibility:visible}
.wa-fab svg{flex:none;width:56px;height:30px;padding:0;fill:#fff}
.wa-fab .wa-txt{max-width:0;white-space:nowrap;opacity:0;transition:max-width .45s cubic-bezier(.22,1,.36,1),opacity .3s,padding .45s}
.wa-fab:hover,.wa-fab:focus-visible{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 18px 36px -12px rgba(8,60,30,.8),0 6px 16px -4px rgba(0,0,0,.4)}
@media(hover:hover) and (pointer:fine){.wa-fab:hover .wa-txt,.wa-fab:focus-visible .wa-txt{max-width:260px;opacity:1;padding-right:22px}}
.wa-fab:focus-visible{outline:3px solid #9cc3ff;outline-offset:3px}
.wa-fab::before{content:"";position:absolute;left:28px;top:28px;width:56px;height:56px;margin:-28px;border-radius:50%;border:2px solid rgba(31,170,83,.55);animation:waPing 2.8s cubic-bezier(.22,1,.36,1) 1.5s 3;pointer-events:none}
@keyframes waPing{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.7);opacity:0}}
/* oculto durante la intro y mientras hay un panel abierto (cesta, ficha de producto, menú móvil) */
.focos-on .wa-fab,html:has(#intro-focos) .wa-fab,.wa-hidden .wa-fab{opacity:0;visibility:hidden;transform:translateY(16px);pointer-events:none;transition:opacity .25s,visibility 0s .25s,transform .25s}
@media(max-width:640px){.wa-fab{height:52px;min-width:52px;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}.wa-fab svg{width:52px;height:28px}.wa-fab::before{left:26px;top:26px;width:52px;height:52px;margin:-26px}}
@media(prefers-reduced-motion:reduce){.wa-fab,.wa-fab .wa-txt{transition:none}.wa-fab::before{animation:none;display:none}.wa-fab:hover{transform:none}}
@media(prefers-contrast:more){.wa-fab{background:#0b7a3a;border-color:#fff}}
@media print{.wa-fab{display:none}}
