.usov-contact { position: fixed; z-index: 900; left: max(20px, env(safe-area-inset-left)); bottom: calc(24px + env(safe-area-inset-bottom)); font: inherit; color: #262626; }
.usov-contact-toggle { position: relative; display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; box-sizing: border-box; border: 0; border-radius: 50%; background: #8b3742; color: #fff; cursor: pointer; list-style: none; box-shadow: 0 5px 20px #53212c40; -webkit-tap-highlight-color: transparent; transition: background .2s, transform .2s; }
.usov-contact-toggle::-webkit-details-marker { display: none; }
.usov-contact-toggle::marker { content: ''; }
.usov-contact:not([open]) .usov-contact-toggle { animation: usov-contact-pulse 3s ease-out 3; }
.usov-contact-toggle:hover { background: #712c35; transform: translateY(-2px); }
.usov-contact-toggle svg { width: 28px; height: 28px; display: block; }
.usov-contact-chat, .usov-contact-cross { transition: opacity .2s, transform .25s; }
.usov-contact .usov-contact-cross { position: absolute; opacity: 0; transform: rotate(-90deg); }
.usov-contact[open] .usov-contact-chat { opacity: 0; transform: rotate(90deg); }
.usov-contact[open] .usov-contact-cross { opacity: 1; transform: rotate(0); }
.usov-contact-panel { position: absolute; bottom: 74px; left: 0; width: 330px; max-width: calc(100vw - 40px); max-height: calc(100dvh - 125px - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; box-sizing: border-box; padding: 22px; background: #fff; border: 1px solid #eadbde; border-radius: 18px; box-shadow: 0 12px 45px #32151f26; transform-origin: bottom left; }
.usov-contact[open] .usov-contact-panel { animation: usov-contact-open .24s ease-out; }
.usov-contact-heading { font-family: 'Montserrat-Bold', 'Montserrat', sans-serif; font-size: 19px; font-weight: 700; line-height: 1.35; }
.usov-contact-panel p { font-size: 13px; line-height: 1.5; color: #666; margin: 6px 0 14px; }
.usov-contact-panel nav { display: grid; gap: 4px; }
.usov-contact-panel a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 5px 8px; border-radius: 9px; color: #292929; text-decoration: none; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; transition: background .2s, color .2s; }
.usov-contact-panel a:hover { background: #f8eff1; color: #8b3742; }
.usov-contact-icon { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; line-height: 0; color: #8b3742; }
.usov-contact-icon svg { display: block; width: 24px; height: 24px; max-width: none; flex-shrink: 0; }
.usov-contact-toggle:focus-visible, .usov-contact-panel a:focus-visible { outline: 3px solid #ba7b86; outline-offset: 3px; }
@keyframes usov-contact-open { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes usov-contact-pulse { 0%, 70%, 100% { box-shadow: 0 5px 20px #53212c40; } 35% { box-shadow: 0 5px 20px #53212c40, 0 0 0 12px #8b374200; } 5% { box-shadow: 0 5px 20px #53212c40, 0 0 0 0 #8b37424d; } }
@media(max-width: 480px) { .usov-contact { left: max(14px, env(safe-area-inset-left)); bottom: calc(16px + env(safe-area-inset-bottom)); } .usov-contact-toggle { width: 56px; height: 56px; } .usov-contact-panel { bottom: 68px; max-width: calc(100vw - 28px); padding: 17px; } }
@media(prefers-reduced-motion: reduce) { .usov-contact *, .usov-contact[open] .usov-contact-panel, .usov-contact:not([open]) .usov-contact-toggle { animation: none; transition: none; } }
