/* CelluPep: floating contact labels auto-hide */
.cp-contact-dock .cp-dock-label{
  opacity:0;pointer-events:none;transform:translate(6px,-50%);
  transition:opacity .2s ease,transform .2s ease;
  animation:cp-dock-label-intro 3.2s ease both;
}
@keyframes cp-dock-label-intro{
  0%,82%{opacity:1;transform:translate(0,-50%);}
  100%{opacity:0;transform:translate(6px,-50%);}
}
@media(hover:hover) and (pointer:fine){
  .cp-contact-dock>a:hover .cp-dock-label,
  .cp-contact-dock>button:hover .cp-dock-label{
    opacity:1!important;transform:translate(0,-50%)!important;
  }
}
.cp-contact-dock>a:focus-visible .cp-dock-label,
.cp-contact-dock>button:focus-visible .cp-dock-label{
  opacity:1!important;transform:translate(0,-50%)!important;
}
@media(prefers-reduced-motion:reduce){
  .cp-contact-dock .cp-dock-label{animation:none;transition:none;}
}
/* End CelluPep floating contact labels auto-hide */
/* 与回顶部进度圈共享右侧对齐和底部间距，不依赖图标字体。 */
.cp-contact-dock{position:fixed;right:var(--cp-dock-right,24px);bottom:var(--cp-dock-bottom,24px);z-index:9999;display:grid;gap:12px;transition:bottom .3s ease;}
.cp-contact-dock>a,.cp-contact-dock>button{position:relative;display:grid;place-items:center;width:50px;height:50px;min-height:50px;padding:0;border:0;border-radius:50%;background:transparent;color:#fff;font-family:inherit;font-size:12px;line-height:1.3;font-weight:600;cursor:pointer;text-decoration:none;}
.cp-dock-orb{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:50%;overflow:hidden;isolation:isolate;box-shadow:0 5px 16px #0b54442b,inset 0 1px 1px #ffffff75;transition:transform .2s ease,box-shadow .2s ease;}
.cp-dock-wa .cp-dock-orb{background:linear-gradient(145deg,#31d77a,#169750);}.cp-dock-message .cp-dock-orb{background:linear-gradient(145deg,#23c9c5,#087f7c);}
.cp-dock-orb svg{width:25px;height:25px;fill:currentColor;stroke:none;position:relative;z-index:1;}
.cp-dock-orb::after{content:"";position:absolute;inset:-35% auto -35% -70%;width:44%;background:linear-gradient(90deg,transparent,#ffffff7a,transparent);transform:translateX(0) skewX(-22deg);animation:cp-contact-sheen 5.6s ease-in-out infinite;pointer-events:none;z-index:2;}
.cp-dock-message .cp-dock-orb::after{animation-delay:1.1s;}
@keyframes cp-contact-sheen{0%,12%{transform:translateX(0) skewX(-22deg);opacity:0;}16%{opacity:1;}34%{transform:translateX(420%) skewX(-22deg);opacity:0;}100%{transform:translateX(420%) skewX(-22deg);opacity:0;}}
.cp-dock-label{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:7px 11px;border:1px solid #dceae6;border-radius:8px;background:#fff;color:#294b49;white-space:nowrap;box-shadow:0 3px 14px #173d3210;}
.cp-dock-label::after{content:"";position:absolute;right:-4px;top:calc(50% - 4px);width:7px;height:7px;transform:rotate(45deg);background:#fff;border-top:1px solid #dceae6;border-right:1px solid #dceae6;}
.cp-dock-wa .cp-dock-label{color:#167842;}.cp-dock-message .cp-dock-label{color:#087f7c;}
.cp-contact-dock>a:hover .cp-dock-orb,.cp-contact-dock>button:hover .cp-dock-orb{transform:translateY(-2px);box-shadow:0 7px 20px #0b544440,inset 0 1px 1px #ffffff75;}
.cp-message-close svg{width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.cp-message-dialog{display:none;width:min(440px,calc(100vw - 32px));max-width:440px;max-height:calc(100dvh - 32px);margin:auto;padding:28px;border:0;border-radius:22px;background:#fff;color:#0b2140;box-shadow:0 24px 100px #082b3a33;overflow:auto;}
.cp-message-dialog[open]{display:block;}.cp-message-dialog::backdrop{background:#092a3e70;backdrop-filter:blur(3px);}
.cp-message-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}.cp-message-eyebrow{color:#087f7c;background:#eaf7f5;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.09em;}
.cp-message-close{display:grid;place-items:center;width:40px;height:40px;background:#f2f6f8;border:0;border-radius:50%;color:#506779;cursor:pointer;}
.cp-message-dialog h2{font-size:28px!important;line-height:1.2!important;margin:12px 0;color:#0b2140;letter-spacing:-.025em;}.cp-message-dialog #cp-message-intro{font-size:14px;line-height:1.65;color:#607584;margin-bottom:22px;}
.cp-floating-form>label:not(.cp-message-consent){display:block;font-size:13px;font-weight:600;margin:14px 0 7px;color:#263f55;}.cp-floating-form>label>span{color:inherit;}
.cp-floating-form>input,.cp-floating-form>textarea{display:block;box-sizing:border-box;width:100%;height:auto;min-height:46px;background:#f4f8f9;border:1px solid #e2ecee;border-radius:10px;padding:11px 13px;font:inherit;font-size:16px;line-height:1.5;color:#0b2140;box-shadow:none;}
.cp-floating-form>textarea{min-height:112px;resize:vertical;}.cp-floating-form>input:focus,.cp-floating-form>textarea:focus{border-color:#13a5a1;outline:2px solid #13a5a126;outline-offset:1px;}
.cp-floating-form .cp-message-consent{display:flex;align-items:flex-start;gap:9px;margin:18px 0;font-size:12px;line-height:1.6;color:#607584;cursor:pointer;}
.cp-message-consent input[type=checkbox]{display:block!important;position:static!important;opacity:1!important;visibility:visible!important;appearance:auto!important;width:16px;height:16px;min-width:16px;margin:2px 0 0;accent-color:#087f7c;}
.cp-message-consent a{color:#087571;text-decoration:underline;text-underline-offset:3px;}
.cp-floating-form>label small{font-size:11px;font-weight:400;color:#607584;}
.cp-message-direct-wa{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:10px;padding:10px 12px;border:1px solid #cbead7;border-radius:10px;background:#edf9f1;color:#15613a;font-size:13px;font-weight:600;line-height:1.4;text-decoration:none;}
.cp-message-direct-wa:hover{background:#ddf4e6;color:#104d2d;}
.cp-message-direct-wa svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.cp-message-send{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;min-height:48px;border:0;border-radius:10px;background:#087f7c;color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer;}.cp-message-send:hover{background:#066965;}.cp-message-send:disabled{opacity:.65;cursor:wait;}
.cp-floating-form .cellupep-form-status{margin:14px 0 0;padding:12px;background:#eef8f4;border-radius:8px;font-size:13px;line-height:1.6;color:#17603d;}.cp-floating-form[data-cellupep-state=error] .cellupep-form-status{background:#fff1eb;color:#94451f;}.cp-floating-form [hidden]{display:none!important;}
@media(max-width:767px){.cp-dock-label{font-size:11px;padding:6px 9px;right:calc(100% + 10px);}.cp-message-dialog{padding:22px;}.cp-message-dialog h2{font-size:25px!important;}}
@media(prefers-reduced-motion:reduce){.cp-contact-dock,.cp-dock-orb{transition:none;}.cp-dock-orb::after{animation:none;display:none;}}
/* 较矮手机/窗口压缩空白，优先让两个联系按钮同时可见；更小高度仍可滚动。 */
@media(max-height:820px){
  .cp-message-dialog{padding:20px;}.cp-message-top{margin-bottom:0;}.cp-message-close{width:32px;height:32px;}
  .cp-message-dialog h2{font-size:24px!important;margin:8px 0;}.cp-message-dialog #cp-message-intro{font-size:13px;line-height:1.5;margin-bottom:12px;}
  .cp-floating-form>label:not(.cp-message-consent){margin:10px 0 5px;}
  .cp-floating-form>input,.cp-floating-form>textarea{min-height:44px;padding:9px 12px;}
  .cp-floating-form>textarea{height:84px;min-height:84px;}.cp-floating-form .cp-message-consent{margin:12px 0;}
}
