.sticky-contact{position:fixed;left:max(1.25rem,env(safe-area-inset-left));bottom:calc(1.5rem + env(safe-area-inset-bottom));z-index:90;display:flex;flex-direction:column;gap:.65rem;font-family:var(--font-sans);font-size:14px;visibility:hidden;pointer-events:none;transition:visibility 0s .3s}
.sticky-contact.is-visible{visibility:visible;pointer-events:auto;transition-delay:0s}
.sticky-contact-button{position:relative;display:grid;place-items:center;width:50px;height:50px;border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 10px 28px #0006;opacity:0;transform:translateY(14px) scale(.9);transition:opacity .25s,transform .25s,background .2s,color .2s,border-color .2s}
/* Entrance: each button springs up in turn, then the WhatsApp button sends out two rings. */
.is-visible .sticky-contact-button{opacity:1;transform:none;animation:sticky-contact-pop .6s cubic-bezier(.34,1.56,.64,1) backwards}
.is-visible .sticky-contact-mail{animation-delay:.09s}
.is-visible .sticky-contact-button:hover{transform:translateY(-2px)}
.sticky-contact-whatsapp::after{content:"";position:absolute;inset:-1px;border:2px solid var(--accent);border-radius:inherit;opacity:0;pointer-events:none}
.is-visible .sticky-contact-whatsapp::after{animation:sticky-contact-ring 1.4s cubic-bezier(.22,1,.36,1) .55s 2}
@keyframes sticky-contact-pop{from{opacity:0;transform:translateY(28px) scale(.6)}to{opacity:1;transform:none}}
@keyframes sticky-contact-ring{from{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.55)}}
.sticky-contact-button svg{width:22px;height:22px}
.sticky-contact-whatsapp{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.sticky-contact-whatsapp:hover,.sticky-contact-whatsapp[aria-expanded="true"]{background:var(--accent-hover);border-color:var(--accent-hover)}
.sticky-contact-mail{background:var(--surface-elevated);color:var(--foreground)}
.sticky-contact-mail:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}
.sticky-contact-tooltip{position:absolute;left:calc(100% + .75rem);padding:.45rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-elevated);box-shadow:0 8px 24px #0005;color:var(--foreground);white-space:nowrap;opacity:0;transform:translateX(-4px);pointer-events:none;transition:opacity .2s,transform .2s}
.sticky-contact-button:hover .sticky-contact-tooltip,.sticky-contact-button:focus-visible .sticky-contact-tooltip{opacity:1;transform:none}
.sticky-contact-panel{position:absolute;left:0;bottom:calc(100% + 1rem);width:min(300px,calc(100vw - 2.5rem));padding:1.25rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--background-secondary);box-shadow:0 16px 48px #0006;color:var(--foreground);text-align:right}
.sticky-contact[hidden],.sticky-contact-panel[hidden]{display:none}
.sticky-contact-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.sticky-contact-heading b{font-size:17px}
.sticky-contact-close{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm);font-size:24px;color:var(--foreground-secondary)}
.sticky-contact-close:hover{background:var(--surface);color:var(--foreground)}
.sticky-contact-panel p{margin:.75rem 0 1rem;color:var(--foreground-secondary);font-size:14px;line-height:1.8}
.sticky-contact-chat{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font-size:14px;font-weight:600;transition:background .2s}
.sticky-contact-chat:hover{background:var(--accent-hover)}
.sticky-contact :focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:600px){.sticky-contact{left:max(.75rem,env(safe-area-inset-left));bottom:calc(1rem + env(safe-area-inset-bottom))}.sticky-contact-button{width:46px;height:46px}.sticky-contact-tooltip{display:none}}
@media(prefers-reduced-motion:reduce){.sticky-contact *,.sticky-contact *::after{transition:none;animation:none}}

.is-locked .sticky-contact{visibility:hidden;pointer-events:none}
