.viva-contact-float{position:fixed;right:clamp(16px,3vw,32px);bottom:calc(20px + env(safe-area-inset-bottom));z-index:45;font-family:var(--viva-font-body);color:var(--viva-color-ink)}
.viva-contact-float__toggle{display:flex;gap:10px;align-items:center;justify-content:center;min-height:52px;padding:12px 20px;border-radius:28px;background:var(--viva-color-ink);color:#fff;box-shadow:0 5px 22px #0002;cursor:pointer;list-style:none;font-weight:600;font-size:14px}
.viva-contact-float__toggle::-webkit-details-marker{display:none}.viva-contact-float__toggle svg{width:24px;height:24px}.viva-contact-float__toggle:focus-visible,.viva-contact-float a:focus-visible,.viva-contact-float button:focus-visible{outline:2px solid var(--viva-color-accent,#b88b6c);outline-offset:4px}
.viva-contact-float__panel{position:absolute;right:0;bottom:68px;width:min(340px,calc(100vw - 32px));padding:24px;border:1px solid var(--viva-color-line);border-radius:16px;background:var(--viva-color-surface,#fff);box-shadow:0 12px 48px #0002;max-height:calc(100dvh - 140px);overflow:auto}
.viva-contact-float__head{display:flex;align-items:center;justify-content:space-between;gap:16px}.viva-contact-float__head h2{font-family:var(--viva-font-display);font-size:26px;line-height:1.2;margin:0}.viva-contact-float__head button{width:32px;height:32px;background:none;border:0;font-size:26px;cursor:pointer;color:inherit}.viva-contact-float p{font-size:14px;line-height:1.5;margin:12px 0}.viva-contact-float__hours{color:var(--viva-color-ink-soft)}
.viva-contact-float nav{display:grid;margin-top:16px}.viva-contact-float nav a{display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:46px;padding:10px 0;border-top:1px solid var(--viva-color-line);color:inherit;text-decoration:none;font-size:14px;overflow-wrap:anywhere}.viva-contact-float nav a:hover{color:var(--viva-color-accent,#b88b6c)}
.viva-cart-open .viva-contact-float,.viva-favorites-open .viva-contact-float{visibility:hidden;pointer-events:none}
@media(max-width:600px){.viva-contact-float__toggle{padding:13px;width:52px;height:52px}.viva-contact-float__toggle>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
@media(prefers-reduced-motion:no-preference){.viva-contact-float[open] .viva-contact-float__panel{animation:viva-contact-appear .2s ease-out}@keyframes viva-contact-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
