/* Direct call contact: native tel link, existing Web Spectrum monogram. */
body { padding-bottom: calc(184px + env(safe-area-inset-bottom, 0px)); }
.ws-call-card {
  position: fixed;
  isolation: isolate;
  z-index: 100;
  right: calc(24px + env(safe-area-inset-right, 0px));
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  width: 272px;
  max-width: calc(100% - 48px);
  min-height: 78px;
  padding: 14px 16px;
  border: 1px solid #379ad1;
  border-radius: 18px;
  background-color: #081d30;
  background-image: linear-gradient(112deg, transparent 40%, #c6edff08 44%, #ffffff20 49%, #ffffff3d 50%, #c6edff14 53%, transparent 58%), url("assets/ws-contact-panel-higgsfield.webp");
  background-size: 270% 100%, 100% 100%;
  background-position: 220% 0, center;
  background-repeat: no-repeat;
  color: #f4f8fc;
  box-shadow: 0 12px 36px #0006, 0 0 24px #32baff1a, inset 0 1px 0 #c4ebff33;
  font: 400 13px/1.45 Manrope, "Segoe UI", sans-serif;
  text-decoration: none;
  transition: border-color .2s, box-shadow .2s;
}
/* Higgsfield-crafted enamel and metal badge, with a brief eight-second glint cycle. */
.ws-call-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: 16px;
  bottom: calc(100% - 10px);
  width: 84px;
  height: 84px;
  border: 1px solid #b8e6ff66;
  border-radius: 50%;
  background-image: linear-gradient(112deg, transparent 40%, #c6edff0d 44%, #fff8 49%, #ffffffb3 50%, #c6edff26 53%, transparent 58%), url("assets/ws-contact-badge-higgsfield.webp");
  background-size: 270% 100%, 106% 106%;
  background-position: 220% 0, center;
  background-repeat: no-repeat;
  background-color: #081e35;
  box-shadow: 0 0 0 4px #42baff0d, 0 0 24px #32baff33, 0 8px 20px #0006;
  pointer-events: none;
}
@keyframes ws-badge-glint {
  0% { background-position: 220% 0, center; }
  14%, 100% { background-position: -120% 0, center; }
}
@media (prefers-reduced-motion: no-preference) {
  .ws-call-card::before { animation: ws-badge-glint 8s ease-in-out 2s infinite; }
  .ws-call-card { animation: ws-badge-glint 8s ease-in-out 2.3s infinite; }
}
body:has(.benefit-motion-toggle[aria-pressed="true"]) .ws-call-card,
body:has(.benefit-motion-toggle[aria-pressed="true"]) .ws-call-card::before { animation: none; }
/* The guarantee ribbon joins the unchanged round badge to the phone panel. */
.ws-call-card:has(.ws-call-guarantee)::before { bottom: calc(100% + 22px); }
.ws-call-guarantee {
  position: absolute;
  bottom: calc(100% - 2px);
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  min-height: 30px;
  padding: 4px 12px;
  border: 1px solid #b0a16b;
  border-radius: 12px 12px 5px 5px;
  background: linear-gradient(180deg, #1c3549, #0b1d30 70%);
  box-shadow: inset 0 1px 0 #fce0a255, 0 -2px 12px #4fc8ff14;
  color: #ffe3a6;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: .025em;
  white-space: nowrap;
}
body:has(.ws-call-guarantee) { padding-bottom: calc(216px + env(safe-area-inset-bottom, 0px)); }
/* A quiet monogram also sits behind the phone number. */
.ws-call-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background: url("assets/web-spectrum-logo.webp") right 28px center / 66px 66px no-repeat;
  opacity: .09;
  pointer-events: none;
}
.ws-call-card:hover { border-color: #b4eaff; box-shadow: 0 12px 36px #0006, 0 0 30px #32baff4d; }
.ws-call-card:focus-visible { outline: 3px solid #b4eaff; outline-offset: 5px; }
.ws-call-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border: 1px solid #8edaff66; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #2cb9f2, #0865b4); box-shadow: 0 0 16px #32baff33; }
.ws-call-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.ws-call-copy { display: grid; gap: 3px; min-width: 0; }
.ws-call-copy strong { color: #cce7f7; font-size: 12px; font-weight: 600; }
.ws-call-copy > span { color: #fff; font-size: 18px; font-weight: 800; line-height: 1.3; letter-spacing: .01em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ws-call-arrow { margin-left: auto; color: #a6e1ff; font-size: 21px; }
/* The privacy choice and phone contact remain available at the same time. */
body:has(.ws-call-card) .ws-consent { left: calc(24px + env(safe-area-inset-left, 0px)); right: auto; }
@media (max-width: 860px) {
  body:has(.ws-call-card) .ws-consent {
    bottom: calc(196px + env(safe-area-inset-bottom, 0px));
    max-height: calc(100dvh - 220px - env(safe-area-inset-bottom, 0px));
  }
  body:has(.ws-call-guarantee) .ws-consent { bottom: calc(228px + env(safe-area-inset-bottom, 0px)); max-height: calc(100dvh - 252px - env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 540px) {
  body { padding-bottom: calc(156px + env(safe-area-inset-bottom, 0px)); }
  body:has(.ws-call-guarantee) { padding-bottom: calc(188px + env(safe-area-inset-bottom, 0px)); }
  .ws-call-card { right: calc(12px + env(safe-area-inset-right, 0px)); bottom: calc(12px + env(safe-area-inset-bottom, 0px)); width: 246px; max-width: calc(100% - 24px); min-height: 68px; padding: 12px; gap: 10px; border-radius: 16px; }
  .ws-call-card::before { width: 68px; height: 68px; right: 14px; }
  .ws-call-icon { flex-basis: 36px; height: 36px; }
  .ws-call-icon svg { width: 21px; height: 21px; }
  .ws-call-copy strong { font-size: 11px; }
  .ws-call-copy > span { font-size: 16px; }
  body:has(.ws-call-card) .ws-consent { left: 12px; max-width: calc(100% - 24px); bottom: calc(158px + env(safe-area-inset-bottom, 0px)); max-height: calc(100dvh - 182px - env(safe-area-inset-bottom, 0px)); }
  body:has(.ws-call-guarantee) .ws-consent { bottom: calc(190px + env(safe-area-inset-bottom, 0px)); max-height: calc(100dvh - 214px - env(safe-area-inset-bottom, 0px)); }
}
@media (max-height: 480px) {
  .ws-call-card::before { display: none; }
  body:has(.ws-call-card) .ws-consent { bottom: calc(106px + env(safe-area-inset-bottom, 0px)); max-height: calc(100dvh - 130px - env(safe-area-inset-bottom, 0px)); }
  body:has(.ws-call-guarantee) .ws-consent { bottom: calc(140px + env(safe-area-inset-bottom, 0px)); max-height: calc(100dvh - 164px - env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .ws-call-card { transition: none; } }
@media print { .ws-call-card { display: none; } body, body:has(.ws-call-card) { padding-bottom: 0; } }

