/* Lightweight contact motion: transform and opacity only, with no layout loop. */
.chat-launcher { isolation: isolate; transform-origin: right bottom; }
.chat-launcher::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -5px;
  border: 1px solid #ccae69;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  animation: pc-chat-halo 4.8s ease-out infinite;
}
.chat-launcher > svg { transform-origin: 50% 65%; animation: pc-chat-greeting 5.6s ease-in-out infinite; }
.chat-launcher-copy small { max-width: 230px; }
.chat-unread-badge {
  position: absolute;
  top: -6px;
  right: 0;
  display: grid;
  min-width: 24px;
  height: 24px;
  place-items: center;
  padding: 0 6px;
  border: 2px solid #fffdf6;
  border-radius: 50px;
  background: #c74d38;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
.chat-unread-badge[hidden] { display: none; }
.has-chat-notice .chat-unread-badge { animation: pc-chat-notice 3.2s ease-in-out infinite; }
.chat-call-launcher { transform-origin: 82% 80%; animation: pc-call-ring 6.4s ease-in-out infinite; }
.chat-launcher:focus-visible::before,
.chat-launcher:focus-visible > svg,
.chat-launcher:focus-visible .chat-unread-badge,
.chat-call-launcher:focus-visible { animation-play-state: paused; }
.chat-is-open .chat-launcher { display: none; }
.chat-attention-paused .chat-launcher::before,
.chat-attention-paused .chat-launcher > svg,
.chat-attention-paused .chat-unread-badge,
.chat-attention-paused .chat-call-launcher { animation-play-state: paused; }
.chat-sound-bar {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
  padding: 0 14px 0 20px;
  border-bottom: 1px solid #e0dfd2;
  color: #53675d;
  font-size: 10px;
}
.chat-sound-bar button {
  min-width: 80px;
  min-height: 44px;
  padding: 7px 9px;
  border: 0;
  background: transparent;
  color: #21483f;
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.chat-sound-bar button:focus-visible { outline: 2px solid #96662c; outline-offset: -4px; border-radius: 8px; }
@keyframes pc-chat-halo {
  0%, 30% { transform: scale(.98); opacity: 0; }
  40% { opacity: .5; }
  78%, 100% { transform: scale(1.055, 1.2); opacity: 0; }
}
@keyframes pc-chat-greeting {
  0%, 64%, 100% { transform: translateY(0) rotate(0); }
  71% { transform: translateY(-2px) rotate(-7deg); }
  77% { transform: translateY(-1px) rotate(6deg); }
  83% { transform: translateY(-2px) rotate(-3deg); }
  89% { transform: translateY(0) rotate(0); }
}
@keyframes pc-chat-notice {
  0%, 78%, 100% { transform: scale(1); }
  85% { transform: scale(1.12); }
  92% { transform: scale(1); }
}
@keyframes pc-call-ring {
  0%, 65%, 100% { transform: rotate(0); }
  70%, 78% { transform: rotate(-1.8deg); }
  74%, 82% { transform: rotate(1.8deg); }
  87% { transform: rotate(0); }
}
@media (max-width: 620px) {
  .chat-unread-badge { right: 0; }
  .chat-sound-bar { padding-left: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .chat-launcher::before,
  .chat-launcher > svg,
  .chat-unread-badge,
  .chat-call-launcher { animation: none !important; }
}
