/* CVPE compact contact; standalone and independent of Dark Pink skin. */
.cvpe-contact { position:fixed;right:14px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));z-index:600;width:50px;height:50px;margin:0;color:#fff;font:inherit;line-height:1.4;isolation:isolate; }
.cvpe-contact, .cvpe-contact * {box-sizing:border-box}
.cvpe-contact__toggle {position:relative;display:grid;place-items:center;width:50px;height:50px;cursor:pointer;border-radius:50%;border:2px solid #ffe1ed;background:#c92866;color:#fff;box-shadow:0 3px 12px rgba(0,0,0,.18);list-style:none;touch-action:manipulation;}
.cvpe-contact__toggle::-webkit-details-marker{display:none}
.cvpe-contact__toggle::marker{content:''}
.cvpe-contact__toggle svg{width:23px;height:23px;stroke:currentColor;fill:none}
.cvpe-contact__close-icon{display:none;font-size:31px;font-weight:400;line-height:1}
.cvpe-contact[open] .cvpe-contact__toggle svg{display:none}
.cvpe-contact[open] .cvpe-contact__close-icon{display:block}
.cvpe-contact__toggle:focus-visible,.cvpe-contact__link:focus-visible {outline:3px solid #fff;outline-offset:3px}
.cvpe-contact__panel{position:absolute;right:0;bottom:calc(100% + 12px);width:min(258px,calc(100vw - 28px));display:flex;flex-direction:column;gap:8px;padding:16px;background:#211923;border:1px solid #754d64;border-radius:16px;color:#fff7fb;box-shadow:0 7px 20px rgba(0,0,0,.24);}
.cvpe-contact:not([open]) .cvpe-contact__panel{display:none}
.cvpe-contact__panel strong{font-size:17px;line-height:1.4;font-weight:700;color:#fff7fb}
.cvpe-contact__panel p{font-size:13px;line-height:1.5;color:#e7cfdb;margin:0 0 4px}
.cvpe-contact__link{display:flex;align-items:center;gap:12px;min-height:45px;border:1px solid #604051;border-radius:11px;padding:9px 11px;background:#302232;color:#fff!important;text-decoration:none!important;font-size:15px;font-weight:600;line-height:1.4;}
.cvpe-contact__link:hover{background:#4d2c43;color:#fff!important;border-color:#b27493}
.cvpe-contact__icon{width:24px;height:24px;border-radius:7px;background:#c92866;color:white;display:grid;place-items:center;font-size:13px;font-weight:800;flex-shrink:0}
.cvpe-contact__link svg{width:21px;height:21px;flex-shrink:0;stroke:currentColor}
@media(max-width:600px){.cvpe-contact{right:12px;bottom:calc(14px + env(safe-area-inset-bottom, 0px));width:48px;height:48px}.cvpe-contact__toggle{width:48px;height:48px}.cvpe-contact__panel{max-height:min(65vh,380px);overflow-y:auto}}
@media(prefers-reduced-motion:reduce){.cvpe-contact *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* v1.8.2: The GP back-to-top sits in the same bottom-right corner as the contact launcher.
 * On desktop stack it ABOVE the launcher, with a visible 14px gap. On mobile
 * preserve the existing side-by-side placement to avoid blocking bottom CTAs.
 * Rules are scoped to pages where the CVPE launcher is actually rendered.
 */
@media (min-width: 701px) {
  body.cvpe-has-compact-contact .generate-back-to-top {
    right: 19px;
    bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }
}
@media (max-width: 700px) {
  body.cvpe-has-compact-contact .generate-back-to-top {
    right: 74px;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  }
}
/* Opening the contact panel occupies the space above the launcher: temporarily
 * hide the secondary back-to-top control, restoring it when the panel closes.
 */
body.cvpe-has-compact-contact.cvpe-contact-open .generate-back-to-top {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

