/* WhatsApp float — contato comercial discreto */

.wa-float {
  --wa-size: 54px;
  --wa-green: #25d366;
  --wa-green-deep: #1ebe57;
  --wa-ease: cubic-bezier(0.22, 1, 0.36, 1);
  position: fixed;
  z-index: 60;
  right: max(1.25rem, env(safe-area-inset-right, 0px));
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  outline: none;
  animation: wa-float-in 420ms var(--wa-ease) both;
}

.wa-float__btn {
  display: grid;
  place-items: center;
  width: var(--wa-size);
  height: var(--wa-size);
  border-radius: 50%;
  background: var(--wa-green);
  box-shadow:
    0 8px 22px rgba(23, 25, 29, 0.18),
    0 2px 6px rgba(23, 25, 29, 0.1);
  transition:
    transform 280ms var(--wa-ease),
    background-color 280ms var(--wa-ease),
    box-shadow 280ms var(--wa-ease);
}

.wa-float__icon {
  display: block;
  width: 1.7rem;
  height: 1.7rem;
}

.wa-float__tooltip {
  position: absolute;
  right: calc(100% + 0.7rem);
  top: 50%;
  transform: translateY(-50%) translateX(4px);
  padding: 0.45rem 0.7rem;
  border-radius: 2px;
  background: #17191d;
  color: #f5f3ee;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  box-shadow: 0 6px 16px rgba(23, 25, 29, 0.16);
  transition:
    opacity 220ms var(--wa-ease),
    transform 220ms var(--wa-ease);
}

.wa-float:hover .wa-float__btn,
.wa-float:focus-visible .wa-float__btn {
  background: var(--wa-green-deep);
  transform: scale(1.05);
  box-shadow:
    0 10px 26px rgba(23, 25, 29, 0.2),
    0 3px 8px rgba(23, 25, 29, 0.12);
}

.wa-float:hover .wa-float__tooltip,
.wa-float:focus-visible .wa-float__tooltip {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.wa-float:focus-visible .wa-float__btn {
  outline: 2px solid #4c0911;
  outline-offset: 3px;
}

/* Sticky CTAs das landings de curso */
body:has([data-course-sticky]:not([hidden])) .wa-float,
body:has([data-course-sticky-desktop]:not([hidden])) .wa-float {
  bottom: max(5.75rem, calc(env(safe-area-inset-bottom, 0px) + 4.75rem));
}

@media (max-width: 767px) {
  .wa-float {
    --wa-size: 50px;
    right: max(1rem, env(safe-area-inset-right, 0px));
    bottom: max(1rem, env(safe-area-inset-bottom, 0px));
  }

  .wa-float__tooltip {
    display: none;
  }

  .wa-float__icon {
    width: 1.55rem;
    height: 1.55rem;
  }

  body:has([data-course-sticky]:not([hidden])) .wa-float {
    bottom: max(5.5rem, calc(env(safe-area-inset-bottom, 0px) + 4.5rem));
  }
}

@media (min-width: 1440px) {
  .wa-float {
    right: max(1.5rem, env(safe-area-inset-right, 0px));
    bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
  }
}

@keyframes wa-float-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

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

  .wa-float__btn,
  .wa-float__tooltip {
    transition: none;
  }

  .wa-float:hover .wa-float__btn,
  .wa-float:focus-visible .wa-float__btn {
    transform: none;
  }
}
