.contact-float{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:30;color:#92989f}.contact-float-rail{display:flex;flex-direction:column;gap:20px;padding:24px 10px;width:76px;max-height:calc(100dvh - 32px);overflow-y:auto;scrollbar-width:none;border-radius:44px;background:#fff;box-shadow:0 6px 30px #285b7f16}.contact-float-rail>button{border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:9px;cursor:pointer;font-size:12px;line-height:1.5;color:#92989f;white-space:nowrap}.contact-float-icon{display:grid;place-items:center;width:38px;height:38px;background:#087bff;color:#fff;border-radius:7px;transition:background .18s,transform .18s}.contact-float-icon svg{width:26px;height:26px}.contact-float-icon.wechat{border-radius:50%}.contact-float-rail>button:hover,.contact-float-rail>button[aria-expanded=true]{color:#087bff}.contact-float-rail>button:hover .contact-float-icon{background:#006ce5;transform:translateY(-2px)}.contact-float-panel{position:absolute;right:calc(100% + 14px);top:50%;transform:translateY(-50%);width:264px;max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;padding:27px 22px 23px;background:#fff;border:1px solid #e0edf7;border-radius:14px;box-shadow:0 10px 38px #285b7f1c;text-align:center;color:#355c7b}.contact-float-panel[hidden]{display:none}.contact-float-panel h2{font-size:18px;font-weight:500;margin:0}.contact-float-panel p{font-size:12px;color:#8ba0b3;line-height:1.8;margin:13px 0 18px}.contact-float-phone{display:block;color:#087bff;font-size:22px;font-weight:500;white-space:nowrap}.contact-float-qr{position:relative;overflow:hidden;width:94px;height:94px;margin:0 auto}.contact-float-qr img{position:absolute;width:2048px;max-width:none;height:auto;left:-1568px;top:-601px}.contact-float button:focus-visible,.contact-float a:focus-visible{outline:2px solid #087bff;outline-offset:4px}
@media(max-width:1100px){.contact-float{right:9px}.contact-float-rail{width:62px;padding:19px 6px;gap:17px}.contact-float-rail>button{font-size:10px}.contact-float-icon{width:33px;height:33px}.contact-float-icon svg{width:23px;height:23px}}
@media(max-width:600px){.contact-float{right:8px;top:auto;bottom:18px;transform:none}.contact-float-rail{width:49px;padding:13px 4px;gap:13px;border-radius:28px}.contact-float-rail>button{font-size:9px;gap:5px}.contact-float-icon{width:29px;height:29px}.contact-float-icon svg{width:21px;height:21px}.contact-float-panel{top:auto;bottom:0;transform:none;right:calc(100% + 9px);width:min(250px,calc(100vw - 80px));padding:25px 15px 20px}.contact-float-phone{font-size:20px}}
@media(prefers-reduced-motion:reduce){.contact-float-icon{transition:none}.contact-float-rail>button:hover .contact-float-icon{transform:none}}

/* Refined compact floating assistance rail. */
.contact-float{right:20px;top:50%;bottom:auto;transform:translateY(-50%)}.contact-float-rail{width:78px;border-radius:17px;padding:7px;gap:0;background:rgba(255,255,255,.97);border:1px solid #e5edf7;box-shadow:0 8px 28px #26496e12;max-height:calc(100dvh - 24px)}.contact-float-rail>button{width:100%;padding:14px 0;gap:7px;color:#738496;border-radius:11px;transition:background .18s,color .18s;position:relative;font-size:11px}.contact-float-rail>button+button:before{content:'';position:absolute;top:0;left:12px;right:12px;height:1px;background:#edf1f6}.contact-float-icon,.contact-float-icon.wechat{width:34px;height:34px;background:#eaf4ff;border-radius:10px;color:#1684ed}.contact-float-icon svg{width:23px;height:23px}.contact-float-icon.demo{background:#087bff;color:#fff}.contact-float-icon.phone{color:#1684ed}.contact-float-icon.wechat{background:#087bff;color:#fff}.contact-float-rail>button:hover,.contact-float-rail>button[aria-expanded=true]{background:#f0f7ff;color:#087bff}.contact-float-rail>button:hover .contact-float-icon{transform:none;background:#dbeeff}.contact-float-rail>button:hover .contact-float-icon.demo,.contact-float-rail>button:hover .contact-float-icon.wechat{background:#006de1}.contact-float-panel{top:0;bottom:auto;transform:none;right:calc(100% + 12px);border-radius:15px;box-shadow:0 12px 40px #224c7418}
@media(max-width:1100px){.contact-float{right:10px}.contact-float-rail{width:66px;padding:5px}.contact-float-rail>button{font-size:10px;padding:12px 0}.contact-float-icon,.contact-float-icon.wechat{width:31px;height:31px}}
@media(max-width:600px){.contact-float{right:7px;bottom:auto;transform:translateY(-50%)}.contact-float-rail{width:53px;padding:3px;border-radius:13px}.contact-float-rail>button{font-size:9px;padding:10px 0;gap:5px}.contact-float-icon,.contact-float-icon.wechat{width:27px;height:27px;border-radius:8px}.contact-float-icon svg{width:19px;height:19px}.contact-float-panel{width:min(250px,calc(100vw - 80px));right:calc(100% + 8px);bottom:auto;transform:none}}
@media(prefers-reduced-motion:reduce){.contact-float-rail>button{transition:none}}

/* Keep all three icons on the same axis; override the site's generic .phone spacing. */
.contact-float .contact-float-rail>button{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-sizing:border-box}.contact-float .contact-float-icon{display:grid;place-items:center;margin:0;flex-shrink:0;align-self:center;line-height:1}.contact-float .contact-float-icon svg{display:block;margin:0}.contact-float .contact-float-rail>button>span:last-child{display:block;width:100%;margin:0;text-align:center}

/* Hover panels fade gently and allow time to cross the gap from the rail. */
.contact-float-panel{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s}
.contact-float-panel.is-visible{opacity:1;visibility:visible;pointer-events:auto}
@media(prefers-reduced-motion:reduce){.contact-float-panel{transition:none}}

/* Display the supplied consultation QR code in full, preserving its white margins. */
.contact-float-qr{width:180px;height:auto;max-width:100%;margin:0 auto;background:#fff;overflow:visible}
.contact-float-qr img{position:static;display:block;width:100%;max-width:100%;height:auto;margin:0}

/* Compact rail and separate popover footprints, with a clear gap between them. */
.contact-float{right:12px}
.contact-float-rail{box-sizing:border-box;width:68px;padding:4px;border-radius:15px}
.contact-float .contact-float-rail>button{padding:11px 0;font-size:10px;gap:6px}
.contact-float .contact-float-icon{width:30px;height:30px}
.contact-float .contact-float-icon svg{width:21px;height:21px}
.contact-float-panel{right:calc(100% + 16px);width:232px;max-width:calc(100vw - 108px);padding:25px 16px 18px}
.contact-float-panel h2{font-size:16px}
.contact-float-panel p{margin:10px 0 14px}
.contact-float-qr{width:156px}
.contact-float-phone{font-size:20px}
@media(max-width:600px){
 .contact-float{right:7px}
 .contact-float-rail{width:53px;padding:3px}
 .contact-float .contact-float-rail>button{font-size:9px;padding:9px 0}
 .contact-float .contact-float-icon{width:27px;height:27px}
 .contact-float-panel{right:calc(100% + 12px);max-width:calc(100vw - 84px)}
}

/* Smaller consultation controls and content panel. */
.contact-float-rail{width:58px;padding:3px;border-radius:13px}
.contact-float .contact-float-rail>button{padding:9px 0;font-size:9px;gap:5px}
.contact-float .contact-float-icon{width:26px;height:26px;border-radius:8px}
.contact-float .contact-float-icon svg{width:18px;height:18px}
.contact-float-panel{width:208px;padding:24px 13px 15px}
.contact-float-panel h2{font-size:15px}
.contact-float-panel p{font-size:11px;margin:8px 0 11px}
.contact-float-qr{width:140px}
.contact-float-phone{font-size:18px}

@media(max-width:600px){.contact-float-rail{width:50px}.contact-float .contact-float-rail>button{padding:8px 0}.contact-float .contact-float-icon{width:24px;height:24px}}

/* Crop only the supplied icon's white surround, preserving the original artwork. */
.contact-float .contact-float-icon.wechat{position:relative;overflow:hidden;border-radius:50%;background:#087bff}
.contact-float .contact-float-icon.wechat img{position:absolute;display:block;width:185.047%;max-width:none;height:auto;left:-42.99%;top:-14.019%;margin:0}

/* Smaller, content-only hover panels. */
.contact-float-panel{width:184px;padding:14px 12px;border-radius:12px}
.contact-float-panel h2{font-size:14px}
.contact-float-panel p{margin:6px 0 9px;line-height:1.6}
.contact-float-phone{font-size:17px}
.contact-float-qr{width:128px}

/* Larger consultation rail; keep the compact content panels. */
.contact-float-rail{width:88px;padding:6px;border-radius:20px}
.contact-float .contact-float-rail>button{padding:16px 0;font-size:12px;gap:9px}
.contact-float .contact-float-icon{width:38px;height:38px;border-radius:11px}
.contact-float .contact-float-icon.wechat{border-radius:50%}
.contact-float .contact-float-icon svg{width:26px;height:26px}
.contact-float-panel{max-width:calc(100vw - 128px)}
@media(max-width:600px){
 .contact-float-rail{width:68px;padding:4px;border-radius:16px}
 .contact-float .contact-float-rail>button{padding:12px 0;font-size:10px;gap:7px}
 .contact-float .contact-float-icon{width:32px;height:32px}
 .contact-float .contact-float-icon svg{width:22px;height:22px}
 .contact-float-panel{max-width:calc(100vw - 100px)}
}

/* One size down from the enlarged rail. */
.contact-float-rail{width:76px;padding:5px;border-radius:17px}
.contact-float .contact-float-rail>button{padding:13px 0;font-size:11px;gap:7px}
.contact-float .contact-float-icon{width:33px;height:33px;border-radius:9px}
.contact-float .contact-float-icon.wechat{border-radius:50%}
.contact-float .contact-float-icon svg{width:23px;height:23px}
@media(max-width:600px){
 .contact-float-rail{width:60px;padding:4px;border-radius:14px}
 .contact-float .contact-float-rail>button{padding:10px 0;font-size:9px;gap:6px}
 .contact-float .contact-float-icon{width:28px;height:28px}
 .contact-float .contact-float-icon svg{width:20px;height:20px}
}

/* Give each consultation description enough room to stay on one line. */
.contact-float-panel{width:220px;max-width:calc(100vw - 116px)}
.contact-float-panel h2,.contact-float-panel p,.contact-float-phone{white-space:nowrap}
@media(max-width:600px){.contact-float-panel{max-width:calc(100vw - 92px)}}
@media(max-width:320px){.contact-float-panel{padding-left:8px;padding-right:8px}.contact-float-panel p{font-size:10px}}
