/* Contact panel and its persistent launcher share the same bottom-right anchor. */
#contactBox.vc-contact-panel {
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  width: min(340px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  overscroll-behavior: contain;
  transform-origin: calc(100% - 30px) calc(100% - 30px);
  transition: transform .32s cubic-bezier(.2,.75,.25,1), opacity .22s ease, visibility 0s;
}
#contactBox.vc-contact-panel.vc-contact-minimized {
  transform: scale(.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: transform .32s cubic-bezier(.2,.75,.25,1), opacity .22s ease, visibility 0s .32s;
}
#contactBox .close-button { min-width: 44px; min-height: 44px; flex-shrink: 0; padding: 0; }
#contactBox .contact-box-header { position: sticky; top: 0; background: #fff; z-index: 1; }
#vc-contact-launcher {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #e11f21;
  color: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,.22);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: scale(.4);
  transition: transform .28s ease, opacity .2s ease, visibility 0s .28s;
}
#vc-contact-launcher.vc-contact-visible {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition: transform .28s ease .1s, opacity .2s ease .1s, visibility 0s;
}
#vc-contact-launcher:hover { background: #bd1719; }
#vc-contact-launcher svg { width: 29px; height: 29px; display: block; }
#vc-contact-launcher:focus-visible, #contactBox .close-button:focus-visible { outline: 3px solid #142c46; outline-offset: 4px; }
.vc-contact-initializing, .vc-contact-initializing * { transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  #contactBox.vc-contact-panel, #vc-contact-launcher { transition: none; }
}
/* Avoid a flash of the full form before initialization on a cached page. */
.vc-contact-start-minimized #contactBox:not(.vc-contact-panel),
[data-vc-contact-default="minimized"] #contactBox:not(.vc-contact-panel) { visibility: hidden; }

/* Compact arithmetic question: placeholder while empty, floating hint on focus/input. */
#contactBox .vc-captcha-compact { position: relative; }
#contactBox .vc-captcha-compact .captcha_text {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
#contactBox .vc-captcha-compact input.captcha::placeholder { color: #666; opacity: 1; }
#contactBox .vc-captcha-compact .vc-captcha-hint {
  display: none; position: absolute; top: -8px; left: 12px;
  width: auto; max-width: calc(100% - 24px); height: auto; margin: 0;
  padding: 0 4px; background: #fff; color: #666;
  font-size: 12px; line-height: 16px; transform: none; z-index: 1;
}
#contactBox .vc-captcha-compact:focus-within .vc-captcha-hint,
#contactBox .vc-captcha-filled .vc-captcha-hint { display: block; }
#contactBox .vc-captcha-compact input.captcha:focus::placeholder { color: transparent; }
