/* Contact dock (round 4, 2026-10-25): one tidy group bottom-right, same size/shape/shadow, labels on the left */
.cdock{--cd:54px;position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:1100;display:flex;flex-direction:column;align-items:flex-end;gap:12px;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;transition:opacity .2s ease,transform .2s ease}
.cd-btn{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:10px;text-decoration:none;-webkit-tap-highlight-color:transparent;outline:none}
.cd-ic{flex:none;width:var(--cd);height:var(--cd);border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 10px 24px rgba(6,20,25,.22),0 2px 6px rgba(6,20,25,.14),inset 0 0 0 1px rgba(255,255,255,.18);transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease}
.cd-ic svg{width:25px;height:25px}
.cd-wa .cd-ic svg{width:27px;height:27px}
.cd-mail .cd-ic{background:linear-gradient(150deg,#14c4b6,#02b5a7 55%,#029488)}
.cd-wa .cd-ic{background:linear-gradient(150deg,#3ee07a,#25d366 55%,#1ebe5b)}
.cd-text .cd-ic{background:linear-gradient(150deg,#2a86d4,#0E6FBE 55%,#0b5ea3)}
.cd-lbl{order:-1;white-space:nowrap;font-size:13px;font-weight:650;letter-spacing:.01em;line-height:1;color:#fff;background:rgba(10,31,40,.92);padding:8px 12px;border-radius:999px;box-shadow:0 6px 16px rgba(6,20,25,.2),inset 0 0 0 1px rgba(255,255,255,.14);opacity:0;transform:translateX(6px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.cd-btn:hover .cd-ic,.cd-btn:focus-visible .cd-ic{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 28px rgba(6,20,25,.26),0 3px 8px rgba(6,20,25,.16),inset 0 0 0 1px rgba(255,255,255,.18)}
.cd-btn:focus-visible .cd-ic{outline:3px solid rgba(2,181,167,.45);outline-offset:3px}
.cd-btn:active .cd-ic{transform:scale(.95)}
.cd-btn:hover .cd-lbl,.cd-btn:focus-visible .cd-lbl,.cdock.lbl-on .cd-lbl{opacity:1;transform:none}
/* Housecall Pro: hide its own launcher while closed (we open it from "Text us"); its open panel (height:100vh inline) shows as normal */
#proChatIframeContainer:not([style*="100vh"]){opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body.hcp-open .cdock,body.chatting .cdock,body.chatting #proChatIframeContainer{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px)}
@media (max-width:720px){
 .cdock{--cd:48px;right:14px;gap:10px;bottom:calc(94px + env(safe-area-inset-bottom))}
 .cd-ic svg{width:23px;height:23px}.cd-wa .cd-ic svg{width:25px;height:25px}
 .cd-lbl{font-size:12.5px;padding:7px 11px}
 body.login .cdock{bottom:calc(18px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.cdock,.cd-ic,.cd-lbl{transition:none!important}}
body.login #view{padding-bottom:200px} /* room to scroll clear of the contact dock */
