/* Contact button library (4 Nov 2026) */
:root { --cc-cb-spring: cubic-bezier(.34, 1.56, .64, 1); --cc-cb-ease: cubic-bezier(.22, 1, .36, 1); --cc-wa: #25D366; --cc-wa-dark: #128C4A; }

/* floating dock: sits directly above the round chat launcher */
.cc-dock { position: fixed; right: 24px; bottom: 104px; z-index: 1899; display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 14px; pointer-events: none; }
.cc-dock--solo { bottom: 24px; }
.cc-dock__btn { position: relative; pointer-events: auto; display: grid; place-items: center; width: 58px; height: 58px; margin-right: 4px; border-radius: 50%; border: 2.5px solid #0C0C0C; box-shadow: 4px 4px 0 #0C0C0C; text-decoration: none; animation: cc-dock-in .6s var(--cc-cb-spring) both; animation-delay: calc(.6s + var(--i, 0) * .08s); transition: transform .5s var(--cc-cb-spring), box-shadow .25s var(--cc-cb-ease), opacity .25s; }
.cc-dock__btn:hover { transform: translate(-2px, -2px) scale(1.08); box-shadow: 6px 6px 0 #0C0C0C; }
.cc-dock__btn:active { transform: translate(2px, 2px) scale(.94); box-shadow: 2px 2px 0 #0C0C0C; transition-duration: .1s; }
.cc-dock__btn:focus-visible { outline: 3px solid #FBD507; outline-offset: 3px; }
.cc-dock__icon svg { display: block; width: 28px; height: 28px; transition: transform .5s var(--cc-cb-spring); }
.cc-dock__btn:hover .cc-dock__icon svg { transform: rotate(-10deg) scale(1.08); }
.cc-dock__label { position: absolute; right: calc(100% + 16px); top: 50%; white-space: nowrap; padding: 10px 16px; border-radius: 999px; background: #fff; color: #0C0C0C; border: 2.5px solid #0C0C0C; box-shadow: 4px 4px 0 #0C0C0C; font-weight: 800; font-size: .93rem; opacity: 0; transform: translate(14px, -50%) scale(.7); transform-origin: right center; transition: opacity .22s var(--cc-cb-ease), transform .5s var(--cc-cb-spring); pointer-events: none; }
.cc-dock__btn:hover .cc-dock__label, .cc-dock__btn:focus-visible .cc-dock__label { opacity: 1; transform: translate(0, -50%) scale(1); }
@keyframes cc-dock-in { from { opacity: 0; transform: translateY(20px) scale(.4); } to { opacity: 1; transform: none; } }

/* hide the dock while the chat window is open */
body.cc-chat-is-open .cc-dock__btn { opacity: 0; transform: translateY(20px) scale(.5); pointer-events: none; }
body.cc-cookies-open .cc-dock { bottom: calc(var(--cc-cookie-h, 0px) + 116px); }

/* ---- button styles (shared by dock + inline) ---- */
.cc-dock__btn--whatsapp, .cc-cb--whatsapp { background: var(--cc-wa); color: #fff; }
.cc-dock__btn--whatsapp svg, .cc-cb--whatsapp svg { fill: #fff; }
.cc-dock__btn--whatsapp::after { content: ""; position: absolute; inset: -2.5px; border-radius: 50%; border: 2.5px solid var(--cc-wa); animation: cc-dock-ring 2.8s var(--cc-cb-ease) 2s infinite; pointer-events: none; }
@keyframes cc-dock-ring { 0% { transform: scale(1); opacity: .8; } 70%, 100% { transform: scale(1.6); opacity: 0; } }
.cc-cb--chat { background: #715AFF; color: #fff; }
.cc-cb--chat svg { fill: #FBD507; stroke: #0C0C0C; stroke-width: 1.4; }

/* inline buttons */
.cc-cb { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 22px 0 8px; border: 2.5px solid #0C0C0C; border-radius: 999px; box-shadow: 4px 4px 0 #0C0C0C; font-weight: 800; text-decoration: none; transition: transform .45s var(--cc-cb-spring), box-shadow .2s; }
.cc-cb:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 #0C0C0C; color: inherit; }
.cc-cb__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(0, 0, 0, .14); }
.cc-cb__icon svg { width: 22px; height: 22px; display: block; }
.cc-cb--round { width: 56px; height: 56px; padding: 0; justify-content: center; border-radius: 50%; }
.cc-cb--round .cc-cb__icon { background: none; }

@media (max-width: 600px) {
  .cc-dock { right: 16px; bottom: 90px; gap: 12px; }
  .cc-dock--solo { bottom: 14px; }
  .cc-dock__btn { width: 54px; height: 54px; margin-right: 3px; }
  .cc-dock__label { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cc-dock__btn, .cc-dock__btn::after, .cc-dock__icon svg, .cc-dock__label { animation: none !important; transition: none !important; } }
@media print { .cc-dock { display: none; } }
/* symmetric with chat launcher (4 Nov) */
.cc-dock { bottom: 100px; gap: 14px; }
.cc-dock__btn { width: 62px; height: 62px; margin-right: 0; }
.cc-dock__icon svg { width: 30px; height: 30px; }
@media (max-width: 600px) { .cc-dock { bottom: 84px; gap: 14px; } .cc-dock__btn { width: 56px; height: 56px; margin-right: 0; } .cc-dock__icon svg { width: 28px; height: 28px; } }
.cc-dock__btn { display: grid; place-items: center; }
.cc-dock__icon { display: grid; place-items: center; width: 100%; height: 100%; line-height: 0; }
/* optical centring: WhatsApp glyph's tail weights it bottom-left */
.cc-dock__btn--whatsapp .cc-dock__icon svg { transform: translate(1px, -.7px); }
.cc-dock__btn--whatsapp:hover .cc-dock__icon svg { transform: translate(1px, -.7px) rotate(-10deg) scale(1.08); }
.cc-cb--round.cc-cb--whatsapp .cc-cb__icon svg { transform: translate(1px, -.7px); }
/* dock without the website chat: sit in the corner */
.cc-dock.cc-dock--solo { bottom: 24px; }
body.cc-cookies-open .cc-dock.cc-dock--solo { bottom: calc(var(--cc-cookie-h, 0px) + 40px); }
@media (max-width: 600px) { .cc-dock.cc-dock--solo { bottom: 16px; right: 16px; } }
