/* zp_whatsapp - stili base, ridefinibili dal tema (Raf) */
:root {
  --zp-wa-green: #25d366;
  --zp-wa-green-dark: #1da851;
  --zp-wa-offset: 20px;
  --zp-wa-size: 56px;
  --zp-wa-z: 1040;
}

.zp-wa-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ---------- Pulsante flottante ---------- */
.zp-wa-float {
  position: fixed;
  bottom: var(--zp-wa-offset);
  z-index: var(--zp-wa-z);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--zp-wa-size);
  height: var(--zp-wa-size);
  border-radius: 50%;
  background: var(--zp-wa-green);
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
  transition: transform .15s ease, background-color .15s ease;
}
.zp-wa-float:hover,
.zp-wa-float:focus {
  background: var(--zp-wa-green-dark);
  color: #fff;
  text-decoration: none;
  transform: scale(1.06);
}
.zp-wa-float--right { right: var(--zp-wa-offset); }
.zp-wa-float--left  { left: var(--zp-wa-offset); }

.zp-wa-float .zp-wa-icon {
  width: 30px;
  height: 30px;
}

/* Etichetta solo per screen reader (il title fa da tooltip) */
.zp-wa-float__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (min-width: 768px) {
  .zp-wa-float--no-desktop { display: none; }
}
@media (max-width: 767.98px) {
  .zp-wa-float--no-mobile { display: none; }
  :root { --zp-wa-offset: 14px; --zp-wa-size: 52px; }
}

/* ---------- Blocco pagina contatti ---------- */
.zp-wa-contact {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding: 1.25rem;
}
.zp-wa-contact__icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  padding: 10px;
  border-radius: 50%;
  background: var(--zp-wa-green);
  color: #fff;
}
.zp-wa-contact__title {
  margin: 0 0 .25rem;
}
.zp-wa-contact__text {
  margin-bottom: .5rem;
}
.zp-wa-contact__phone {
  font-weight: 700;
  margin-bottom: .75rem;
}
.zp-wa-contact__btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--zp-wa-green);
  border-color: var(--zp-wa-green);
  color: #fff;
}
.zp-wa-contact__btn:hover,
.zp-wa-contact__btn:focus {
  background: var(--zp-wa-green-dark);
  border-color: var(--zp-wa-green-dark);
  color: #fff;
}
.zp-wa-contact__btn .zp-wa-icon {
  width: 20px;
  height: 20px;
}

/* Variante compatta per colonna laterale */
.zp-wa-contact--sidebar {
  display: block;
  margin: 1rem 0 0;
  padding: 0;
}
.zp-wa-contact--sidebar .zp-wa-contact__title {
  font-size: 1.25rem;
}
.zp-wa-contact--sidebar .zp-wa-contact__btn {
  white-space: normal;
}
