/* QQ / WeChat: two discrete service controls, separate from sales actions. */
.contact-dock{position:fixed;z-index:30;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px}
.contact-icon{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;border:0;border-radius:50%;padding:11px;color:#fff;cursor:pointer;box-shadow:0 3px 12px #183a5720;transition:background .18s,box-shadow .18s}
.contact-icon.contact-qq{background:#0bb5e9}.contact-icon.contact-wechat{background:#07bd66}
.contact-icon svg{display:block;width:26px;height:26px;fill:currentColor;flex:none}
.contact-qq:hover{background:#079cd0}.contact-wechat:hover{background:#08a85c}
.contact-tooltip{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(4px);opacity:0;visibility:hidden;pointer-events:none;white-space:nowrap;font-size:12px;line-height:1.4;font-weight:400;padding:9px 12px;border-radius:5px;color:#364250;background:white;border:1px solid #e6eaf0;box-shadow:0 4px 16px #1a2d4610;transition:opacity .15s,transform .15s}
.contact-icon:hover .contact-tooltip,.contact-icon:focus-visible .contact-tooltip{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
.contact-dialog{position:fixed;inset:50% 90px auto auto;transform:translateY(-50%);margin:0;box-sizing:border-box;width:320px;max-width:calc(100% - 32px);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #e0e7ed;border-radius:12px;padding:25px;background:#fff;color:#233448;box-shadow:0 14px 55px #1a2a4726;font-family:inherit}
.contact-dialog::backdrop{background:#172b450d;backdrop-filter:none}
.contact-dialog h2{margin:0 30px 7px 0;font-size:21px;line-height:1.5;letter-spacing:0;font-weight:600}
.contact-close{position:absolute;right:12px;top:12px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:none;border:0;border-radius:5px;font:26px/1 Arial;color:#8290a0;cursor:pointer}
.contact-close:hover{background:#f1f5f9;color:#324657}.contact-intro{font-size:12px;line-height:1.8;color:#7c8895;margin:0}
.contact-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid #e4eaf0;margin-top:21px}
.contact-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:11px 8px;color:#7c8793;font-family:inherit;font-size:13px;line-height:1.5;cursor:pointer}
.contact-tabs button[aria-selected=true]{border-color:#2673d5;color:#215ea9;font-weight:600}
.contact-panel{padding:24px 0 14px;text-align:center}.contact-panel[hidden]{display:none}
.contact-label{display:block;font-size:12px;color:#84909e;margin:0 0 9px}.contact-account{display:block;font-size:26px;line-height:1.6;font-weight:600;letter-spacing:.02em;user-select:all;color:#283d54}
.copy-qq{display:inline-block;border:1px solid #d9e5f0;border-radius:5px;background:#f4f8fc;padding:9px 17px;font-size:12px;color:#34679d;cursor:pointer;margin-top:14px}
.copy-qq:hover{background:#eaf2fb}.contact-hint{margin:15px 0 0;font-size:11px;color:#929ba6;line-height:1.8}
.contact-qr{display:block;max-width:100%;width:190px;height:auto;margin:0 auto}
.contact-phone{border-top:1px solid #edf0f5;padding-top:14px;margin:12px 0 0;font-size:12px;line-height:1.8;text-align:center;color:#84909b}.contact-phone a{color:#466581;text-decoration:none}
.contact-dialog .copy-status{min-height:18px;font-size:11px;color:#42825a;line-height:1.7;margin:7px 0 0;text-align:center}
.contact-icon:focus-visible,.contact-tabs button:focus-visible,.contact-close:focus-visible,.copy-qq:focus-visible{outline:3px solid #90b8e7;outline-offset:4px}
.dialog-open{overflow:hidden}
@media(min-width:1101px) and (max-width:1360px){.contact-dock{right:13px}.contact-icon{width:44px;height:44px;padding:10px}.contact-icon svg{width:24px;height:24px}}
/* At narrow widths the service icons live in the sticky header, never on top of prices. */
@media(max-width:1100px){.contact-dock{position:static;inset:auto;transform:none;flex-direction:row;gap:8px;margin-left:auto;order:3;align-items:center}.contact-icon{width:35px;height:35px;padding:8px;box-shadow:none}.contact-icon svg{width:20px;height:20px}.contact-tooltip{display:none}.contact-dialog{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:340px}}
@media(max-width:480px){.contact-dock{gap:6px}.contact-icon{width:30px;height:30px;padding:7px}.contact-icon svg{width:18px;height:18px}.contact-dialog{padding:24px;width:320px}}
@media(prefers-reduced-motion:reduce){.contact-icon,.contact-tooltip{transition:none}}
