/* CỤM NÚT LIÊN HỆ NỔI — style scoped của EcomaxContactDock.vue. */
[data-ex-section="dock"] .ex-dock {
  position: relative;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 9999px;
  color: #fff;
  box-shadow: 0 10px 24px -10px rgba(2, 26, 33, 0.55);
  transition: transform 0.25s ease;
}
/* Nhãn: viên trắng chữ tối, nằm bên trái nút, trượt ra khi rê chuột (chỉ thiết bị có chuột). */
[data-ex-section="dock"] .ex-dock-label {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  white-space: nowrap;
  border-radius: 4px;
  background: #fff;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  color: #021a21;
  box-shadow: 0 8px 20px -10px rgba(2, 26, 33, 0.45);
  opacity: 0;
  transform: translate(8px, -50%);
  pointer-events: none;
  transition: opacity 0.25s, transform 0.25s;
}
@media (hover: hover) {
  [data-ex-section="dock"] .ex-dock:hover { transform: scale(1.06); }
  [data-ex-section="dock"] .ex-dock:hover .ex-dock-label { opacity: 1; transform: translate(0, -50%); }
}
/* Nút gọi: vòng sóng lan ra liên tục. */
[data-ex-section="dock"] .ex-dock-call::before,
[data-ex-section="dock"] .ex-dock-call::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #3d9f37;
  z-index: -1;
}
@media (prefers-reduced-motion: no-preference) {
  [data-ex-section="dock"] .ex-dock-call::before { animation: ex-dock-wave 2.2s ease-out infinite; }
  [data-ex-section="dock"] .ex-dock-call::after { animation: ex-dock-wave 2.2s ease-out 1.1s infinite; }
}
@keyframes ex-dock-wave {
  0% { transform: scale(1); opacity: 0.45; }
  100% { transform: scale(1.9); opacity: 0; }
}
