/* WhatsApp floating button — leaves bottom slot free for future live chat */
:root {
  --cww-fab-edge: 1rem;
  --cww-fab-slot: 3.75rem; /* reserved primary slot for Prompt 4 live chat */
  --cww-wa-size: 3.25rem;
}

.wa-float {
  position: fixed;
  z-index: 45;
  bottom: calc(var(--cww-fab-edge) + var(--cww-fab-slot));
  right: var(--cww-fab-edge);
  left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: var(--cww-wa-size);
  max-width: min(calc(100vw - 2rem), 220px);
  padding: 0.55rem 0.85rem 0.55rem 0.55rem;
  border-radius: 999px;
  background: #25d366;
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(15, 27, 51, 0.18);
  font-weight: 600;
  font-size: 0.86rem;
  line-height: 1.2;
  transition: transform 160ms ease, box-shadow 160ms ease;
}
.wa-float.is-left {
  right: auto;
  left: var(--cww-fab-edge);
}
.wa-float:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(15, 27, 51, 0.22);
}
.wa-float:focus-visible {
  outline: 3px solid #128c7e;
  outline-offset: 3px;
}
.wa-float-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
  flex: 0 0 auto;
}
.wa-float-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-home .wa-float,
body.page-contact .wa-float {
  bottom: calc(var(--cww-fab-edge) + var(--cww-fab-slot) + 0.5rem);
}

@media (min-width: 901px) {
  .wa-float.hide-desktop { display: none !important; }
}
@media (max-width: 900px) {
  .wa-float.hide-mobile { display: none !important; }
  .wa-float {
    padding-right: 0.7rem;
  }
  .wa-float-label {
    max-width: 9.5rem;
  }
}
@media (max-width: 430px) {
  .wa-float {
    --cww-wa-size: 3rem;
    bottom: calc(0.85rem + var(--cww-fab-slot));
    max-width: calc(100vw - 1.5rem);
  }
  .wa-float-label {
    max-width: 7.5rem;
    font-size: 0.8rem;
  }
}
@media (max-width: 360px) {
  .wa-float-label {
    display: none;
  }
  .wa-float {
    width: var(--cww-wa-size);
    height: var(--cww-wa-size);
    padding: 0;
    justify-content: center;
  }
}
body.has-wa-float {
  padding-bottom: 0;
}
body.has-wa-float .site-footer {
  padding-bottom: 5.5rem;
}
