/* FAB Stack — kanan bawah (seragam semua halaman) v2 */
.fab-stack {
  position: fixed !important;
  right: 20px !important;
  bottom: 24px !important;
  left: auto !important;
  top: auto !important;
  z-index: 9990 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 12px !important;
  pointer-events: none !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
.fab-stack > * { pointer-events: auto !important; }

.fab-stack .fab-btn,
.fab-btn {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  border: none !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 6px 20px rgba(0,0,0,.35) !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  padding: 0 !important;
}
.fab-stack .fab-btn:hover,
.fab-btn:hover {
  transform: scale(1.08) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.45) !important;
}
.fab-stack .fab-btn:active,
.fab-btn:active { transform: scale(.96) !important; }
.fab-stack .fab-btn svg,
.fab-btn svg { width: 22px !important; height: 22px !important; display: block !important; }

.fab-stack .fab-wa,
.fab-wa {
  background: #25D366 !important;
  color: #fff !important;
}
.fab-stack .fab-wa:hover,
.fab-wa:hover { background: #1ebe57 !important; }

.fab-stack .fab-top {
  position: absolute !important;
  right: 0 !important;
  bottom: 60px !important;
  left: auto !important;
  top: auto !important;
  background: #1E293B !important;
  color: #F1F5F9 !important;
  border: 1px solid rgba(148,163,184,.25) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(10px) scale(.9) !important;
  transition: opacity .25s, visibility .25s, transform .25s, background .2s !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  box-shadow: 0 6px 20px rgba(0,0,0,.35) !important;
}
.fab-stack .fab-top.visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1) !important;
}
.fab-stack .fab-top:hover {
  background: #22D3EE !important;
  color: #0F172A !important;
  border-color: #22D3EE !important;
}

.fab-wa-wrap {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
}

.wa-chat-widget {
  position: absolute !important;
  bottom: calc(100% + 14px) !important;
  right: 0 !important;
  width: 320px !important;
  max-width: calc(100vw - 40px) !important;
  background: #fff !important;
  border-radius: 14px !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.28) !important;
  overflow: hidden !important;
  z-index: 10 !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  transition: opacity .22s, visibility .22s, transform .22s !important;
}
.wa-chat-widget:not(.open) {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(12px) scale(.96) !important;
  pointer-events: none !important;
}
.wa-chat-widget.open {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto !important;
}

.wa-chat-header {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 14px !important;
  background: #128C7E !important;
  color: #fff !important;
}
.wa-chat-avatar { position: relative !important; flex-shrink: 0 !important; }
.wa-chat-avatar img {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 2px solid rgba(255,255,255,.4) !important;
}
.wa-online-dot {
  position: absolute !important;
  bottom: 1px !important;
  right: 1px !important;
  width: 10px !important;
  height: 10px !important;
  background: #25D366 !important;
  border: 2px solid #128C7E !important;
  border-radius: 50% !important;
}
.wa-chat-info { flex: 1 !important; min-width: 0 !important; }
.wa-chat-info strong {
  display: block !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: #fff !important;
}
.wa-chat-info span {
  display: block !important;
  font-size: .72rem !important;
  opacity: .9 !important;
  margin-top: 2px !important;
  color: rgba(255,255,255,.9) !important;
}
.wa-chat-close {
  background: transparent !important;
  border: none !important;
  color: rgba(255,255,255,.9) !important;
  font-size: 1.4rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
  padding: 4px 6px !important;
  border-radius: 6px !important;
}
.wa-chat-close:hover {
  background: rgba(255,255,255,.15) !important;
  color: #fff !important;
}

.wa-chat-body {
  padding: 16px 14px 12px !important;
  background: #ECE5DD !important;
  min-height: 120px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
.wa-bubble {
  background: #fff !important;
  color: #111b21 !important;
  padding: 8px 12px 6px !important;
  border-radius: 0 10px 10px 10px !important;
  max-width: 85% !important;
  font-size: .9rem !important;
  line-height: 1.4 !important;
  box-shadow: 0 1px 1px rgba(0,0,0,.08) !important;
  align-self: flex-start !important;
}
.wa-bubble-time {
  display: block !important;
  text-align: right !important;
  font-size: .65rem !important;
  color: #667781 !important;
  margin-top: 4px !important;
}

.wa-chat-footer {
  padding: 12px 14px 14px !important;
  background: #fff !important;
}
.wa-chat-cta {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 12px 16px !important;
  background: #25D366 !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: .92rem !important;
  border: none !important;
  border-radius: 24px !important;
  text-decoration: none !important;
  transition: background .2s, transform .15s !important;
  box-shadow: 0 2px 8px rgba(37,211,102,.35) !important;
}
.wa-chat-cta:hover {
  background: #1ebe57 !important;
  transform: translateY(-1px) !important;
  color: #fff !important;
}
.wa-chat-cta svg { width: 20px !important; height: 20px !important; }

a.fab-whatsapp,
.fab-whatsapp {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
}

@media (max-width: 480px) {
  .fab-stack {
    right: 14px !important;
    bottom: 18px !important;
    gap: 10px !important;
  }
  .fab-stack .fab-btn,
  .fab-btn {
    width: 44px !important;
    height: 44px !important;
  }
  .fab-stack .fab-btn svg,
  .fab-btn svg {
    width: 20px !important;
    height: 20px !important;
  }
  .fab-stack .fab-top {
    bottom: 56px !important;
    width: 44px !important;
    height: 44px !important;
  }
  .wa-chat-widget {
    width: min(300px, calc(100vw - 28px)) !important;
  }
}
