@font-face{font-family:"ZG Legacy Icons";src:url("/assets/legacy-icons.woff2") format("woff2");font-display:block}
.contact-float-rail .ifont{font-family:"ZG Legacy Icons";font-style:normal;font-weight:normal;line-height:1}
.contact-float-rail .ifont-weixin::before{content:"\e65d"}
.contact-float-rail .ifont-call::before{content:"\e6de"}
.contact-float-rail{position:fixed;z-index:30;top:50%;right:8px;display:grid;gap:0;transform:translateY(-50%);pointer-events:none}
.contact-float-rail button{width:42px;height:42px;border:1px solid #b8a36a66;border-bottom-width:0;border-radius:0;background:#0b0d0ccc;color:var(--ink);font-family:inherit;font-size:16px;line-height:1;cursor:pointer;pointer-events:auto;opacity:1;transform:translateX(0);animation:rail-enter 760ms var(--ease-out) backwards;animation-delay:calc(var(--rail-order,0)*110ms);transition:opacity 520ms var(--ease-out),transform 620ms var(--ease-out),background-color 420ms ease,color 420ms ease,border-color 420ms ease}
.contact-float-rail button:nth-child(1){--rail-order:0;border-radius:4px 0 0 0}
.contact-float-rail button:nth-child(2){--rail-order:1}
.contact-float-rail button:nth-child(3){--rail-order:2;border-bottom-width:1px;border-radius:0 0 0 4px}
.contact-float-rail button:nth-child(4){--rail-order:3}
.contact-float-rail button:hover,.contact-float-rail button:focus-visible{border-color:var(--gold);background:#d5b66f;color:#10120f;outline:none}
.contact-float-rail .ifont-weixin{display:inline-block;transform:scale(1.1)}
.contact-rail-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-float-rail .contact-rail-toggle{position:absolute;right:100%;top:50%;width:22px;height:44px;transform:translateY(-50%);border:0;border-radius:0;background:transparent;color:#d5b66f99;font-size:14px;opacity:.7;animation:none;transition:color 420ms ease,opacity 520ms ease}
.contact-float-rail .contact-rail-toggle:hover,.contact-float-rail .contact-rail-toggle:focus-visible{background:transparent;color:var(--gold);opacity:1}
.contact-float-rail.is-collapsed{width:0}
.contact-float-rail.is-collapsed button[data-contact-float]{width:42px;height:42px;border-width:1px;opacity:0;transform:translateX(44px);pointer-events:none;transition-delay:calc((2 - var(--rail-order))*100ms)}
.contact-float-rail.is-collapsed .contact-rail-toggle{border-radius:4px 0 0 4px}
.contact-float-popover{position:fixed;z-index:31;top:50%;right:56px;width:min(196px,calc(100vw - 62px));padding:12px;border:1px solid #b8a36a55;border-radius:3px;background:#121512f2;color:var(--ink);text-align:left;opacity:0;visibility:hidden;transform:translateY(-50%) translateX(8px);transition:opacity 350ms ease,visibility 350ms ease,transform 350ms ease}
.contact-float-popover.is-open{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
.contact-float-popover strong{display:block;margin:0 0 8px;color:var(--gold);font-size:11px}
.contact-float-popover a{display:block;color:#bfc2b8;line-height:1.8;text-decoration:none;font-size:11px;overflow-wrap:anywhere}
.contact-float-popover img{display:block;object-fit:contain;width:112px;height:112px;margin:8px 0 0}
body.is-footer-in-view .contact-float-rail button{opacity:0;transform:translateX(20px);pointer-events:none}
@keyframes rail-enter{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:680px){.contact-float-rail button,.contact-float-rail.is-collapsed button[data-contact-float]{width:36px;height:36px;font-size:14px}.contact-float-popover{right:48px;width:min(184px,calc(100vw - 52px))}}
@media(prefers-reduced-motion:reduce){.contact-float-rail button{animation:none;transition:none}.contact-float-popover{transition:none}}
