/* One shared contact control; the number and message come from site settings. */
.floating-whatsapp {
  position: fixed;
  left: max(24px, env(safe-area-inset-left));
  bottom: max(26px, calc(env(safe-area-inset-bottom) + 18px));
  z-index: 80;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  color: #fff;
  border-radius: 50%;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  animation: whatsapp-float 3.6s ease-in-out infinite;
}
.floating-whatsapp::before,
.floating-whatsapp::after {
  position: absolute;
  content: "";
  inset: -8px;
  border-radius: inherit;
  pointer-events: none;
  background: rgb(25 194 94 / 14%);
  transform: scale(1);
  transition: transform 280ms cubic-bezier(.16, 1, .3, 1), opacity 280ms ease-out;
}
.floating-whatsapp::after {
  inset: -15px;
  background: rgb(25 194 94 / 7%);
}
.floating-whatsapp__icon {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(145deg, #36e779, #14b856);
  box-shadow: inset 0 1px 1px rgb(255 255 255 / 40%), 0 8px 20px rgb(8 91 46 / 22%);
}
.floating-whatsapp__icon svg { display: block; width: 38px; height: 38px; fill: currentColor; }
.floating-whatsapp__label {
  position: absolute;
  left: calc(100% + 21px);
  top: 50%;
  width: max-content;
  max-width: calc(100vw - 135px);
  padding: 10px 14px;
  color: #fff;
  background: #173e32;
  border-radius: 10px;
  box-shadow: 0 7px 20px rgb(17 52 40 / 14%);
  font: 500 14px/1.4 "DM Sans", sans-serif;
  opacity: 0;
  transform: translate(6px, -50%);
  pointer-events: none;
  transition: transform 220ms cubic-bezier(.16, 1, .3, 1), opacity 180ms ease-out;
}
.floating-whatsapp:focus-visible { outline: 3px solid #173e32; outline-offset: 5px; }
.floating-whatsapp:focus-visible::before { transform: scale(1.1); }
.floating-whatsapp:focus-visible .floating-whatsapp__label { opacity: 1; transform: translate(0, -50%); }
.floating-whatsapp[hidden],
html.mobile-inquiry-editing .floating-whatsapp,
html.mobile-inquiry-keyboard .floating-whatsapp,
html.mobile-inquiry-dialog .floating-whatsapp,
html:has(dialog[open]) .floating-whatsapp { visibility: hidden; pointer-events: none; animation-play-state: paused; }
html.whatsapp-page-hidden .floating-whatsapp { animation-play-state: paused; }
@media (hover: hover) and (pointer: fine) {
  .floating-whatsapp:hover { animation-play-state: paused; }
  .floating-whatsapp:hover::before { transform: scale(1.12); opacity: .9; }
  .floating-whatsapp:hover::after { transform: scale(1.18); opacity: .65; }
  .floating-whatsapp:hover .floating-whatsapp__label { opacity: 1; transform: translate(0, -50%); }
}
@media (max-width: 900px), (max-width: 1100px) and (hover: none) and (pointer: coarse) {
  .floating-whatsapp {
    left: max(18px, env(safe-area-inset-left));
    bottom: max(20px, calc(env(safe-area-inset-bottom) + 14px));
    width: 54px;
    height: 54px;
  }
  .floating-whatsapp::before { inset: -6px; }
  .floating-whatsapp::after { inset: -11px; }
  .floating-whatsapp__icon svg { width: 31px; height: 31px; }
  .floating-whatsapp__label { left: calc(100% + 16px); max-width: calc(100vw - 110px); }
}
@keyframes whatsapp-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@media (prefers-reduced-motion: reduce) {
  .floating-whatsapp { animation: none; }
  .floating-whatsapp::before, .floating-whatsapp::after, .floating-whatsapp__label { transition: none; }
}
