/* One floating WhatsApp contact control across the site. */
.wa-float {
  position: fixed;
  right: calc(20px + env(safe-area-inset-right, 0px));
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 1000;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 5px 20px rgba(14, 74, 40, .32);
  animation: wa-pulse 2.8s ease-out infinite;
  transition: transform .2s ease, background-color .2s ease;
}

.wa-float[hidden] { display: none; }

/* Keep this control identical on editorial pages whose link colors are scoped globally. */
body .wa-float,
body .wa-float:visited,
body .wa-float:hover { color: #fff; }
body .wa-float svg,
body .wa-float svg path { color: #fff; fill: #fff; }

.wa-float svg {
  display: block;
  width: 31px;
  height: 31px;
  fill: currentColor;
}

.wa-float:hover {
  background: #1ebc57;
  transform: scale(1.06);
}

.wa-float:focus-visible {
  outline: 3px solid #173e32;
  outline-offset: 4px;
}

@keyframes wa-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .5), 0 5px 20px rgba(14, 74, 40, .32); }
  55% { box-shadow: 0 0 0 13px rgba(37, 211, 102, 0), 0 5px 20px rgba(14, 74, 40, .32); }
}

@media (max-width: 600px) {
  .wa-float {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    width: 56px;
    height: 56px;
  }
  .wa-float svg { width: 27px; height: 27px; }
}

@media (prefers-reduced-motion: reduce) {
  .wa-float { animation: none; transition: none; }
}

@media print {
  .wa-float { display: none; }
}
