/* Self-contained contact panel styles: no dependency on earlier patch CSS files. */
.nb-footer-contact__list { min-width: 0; }
.nb-footer-contact__item { gap: 6px; max-width: 100%; }
.nb-footer-contact__text { min-width: 0; }
.nb-footer-contact__item--copy {
  width: 100%;
  margin: 0;
  padding: 2px 0;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  font: inherit;
  line-height: inherit;
  text-align: left;
  appearance: none;
  -webkit-appearance: none;
  transition: color .16s ease, background .16s ease;
}
.nb-footer-contact__item--copy:hover { color: #218b5a; background: rgba(47, 155, 103, .06); }
.nb-footer-contact__item--copy:focus-visible { outline: 2px solid rgba(47, 128, 237, .3); outline-offset: 2px; }
.nb-footer-contact__item--copy .nb-footer-contact__text { flex: 1 1 auto; white-space: nowrap; }
.nb-footer-contact__copy-icon {
  flex: 0 0 13px;
  width: 13px;
  margin: 0 0 0 1px !important;
  color: #83a9d9 !important;
  font-size: 13px !important;
  line-height: 1 !important;
}
.nb-footer-contact__item--copy.is-copied .nb-footer-contact__copy-icon { color: #078c58 !important; }

.nb-contact-copy-toast {
  position: fixed;
  z-index: 100002;
  left: 50%;
  bottom: 32px;
  min-width: 92px;
  padding: 10px 16px;
  color: #fff;
  background: rgba(17, 24, 39, .92);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .22);
  opacity: 0;
  pointer-events: none;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  transform: translate(-50%, 10px);
  transition: opacity .18s ease, transform .18s ease;
}
.nb-contact-copy-toast.is-show { opacity: 1; transform: translate(-50%, 0); }
.nb-contact-copy-toast.is-error { background: rgba(185, 28, 28, .94); }

/* Compact QQ / WeChat QR switcher. */
.nb-footer-contact__qr-slider {
  position: relative;
  flex: 0 0 108px;
  width: 108px;
  min-width: 0;
  padding: 0;
}
.nb-footer-contact__qr-viewport {
  position: relative;
  width: 108px;
  margin: 0;
}
.nb-footer-contact__qr-slide {
  position: relative;
  width: 108px;
  margin: 0;
}
.nb-footer-contact__qr-slide[hidden] { display: none !important; }
.nb-footer-contact__qr-slide .nb-footer-contact__qr {
  display: block;
  width: 108px;
  height: 108px;
  margin: 0;
}
.nb-footer-contact__qr-label { display: none !important; }
.nb-footer-contact__qr-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin: 0;
  padding: 0;
  color: #2563eb;
  background: rgba(255, 255, 255, .98);
  border: 1px solid #bfdbfe;
  border-radius: 50%;
  box-shadow: 0 3px 10px rgba(15, 23, 42, .18);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transform: translateY(-50%);
  transition: color .16s ease, background .16s ease, transform .16s ease;
  -webkit-tap-highlight-color: transparent;
}
.nb-footer-contact__qr-arrow--prev { left: -14px; }
.nb-footer-contact__qr-arrow--next { right: -14px; }
.nb-footer-contact__qr-arrow:hover,
.nb-footer-contact__qr-arrow:focus-visible {
  color: #fff;
  background: #2563eb;
  outline: none;
}
.nb-footer-contact__qr-arrow:active { transform: translateY(-50%) scale(.92); }
.nb-footer-contact__qr-arrow i {
  margin: 0 !important;
  font-size: 17px !important;
  line-height: 1 !important;
}

/* Floating customer-service button: larger, animated and visibly online. */
.nb-customer-service-float .nb-customer-service-float__toggle {
  position: relative;
  width: 68px !important;
  height: 68px !important;
  gap: 3px !important;
  border: 1px solid rgba(255, 255, 255, .34) !important;
  box-shadow: 0 10px 30px rgba(37, 99, 235, .30);
  animation: nb-customer-service-breathe 2.6s ease-in-out infinite;
}
.nb-customer-service-float .nb-customer-service-float__toggle > i {
  font-size: 28px !important;
  line-height: 1 !important;
}
.nb-customer-service-float .nb-customer-service-float__toggle::after {
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .04em;
}
.nb-customer-service-float .nb-customer-service-float__toggle::before {
  content: "";
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 8px;
  height: 8px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 0 0 rgba(34, 197, 94, .50);
  animation: nb-customer-online-pulse-small 1.8s ease-out infinite;
}
.nb-customer-service-float.is-open .nb-customer-service-float__toggle { animation-play-state: paused; }

@keyframes nb-customer-service-breathe {
  0%, 100% {
    box-shadow: 0 10px 28px rgba(37, 99, 235, .28), 0 0 0 0 rgba(59, 130, 246, 0);
  }
  50% {
    box-shadow: 0 13px 36px rgba(37, 99, 235, .42), 0 0 0 10px rgba(96, 165, 250, .25), 0 0 24px rgba(59, 130, 246, .48);
  }
}
@keyframes nb-customer-online-pulse-small {
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, .50); }
  70%, 100% { box-shadow: 0 0 0 5px rgba(34, 197, 94, 0); }
}

@media (max-width: 700px) {
  .nb-footer-contact { flex-wrap: nowrap; gap: 10px; }
  .nb-footer-contact__qr-slider,
  .nb-footer-contact__qr-viewport,
  .nb-footer-contact__qr-slide {
    flex-basis: 104px;
    width: 104px;
  }
  .nb-footer-contact__qr-slide .nb-footer-contact__qr {
    width: 104px;
    height: 104px;
  }
  .nb-footer-contact__qr-arrow--prev { left: -14px; }
  .nb-footer-contact__qr-arrow--next { right: -14px; }
  .nb-footer-contact__list { gap: 7px; font-size: 14px; }
  .nb-footer-contact__item { gap: 5px; }
  .nb-footer-contact__item--copy { padding: 3px 0; }
  .nb-footer-contact__copy-icon { flex-basis: 14px; width: 14px; font-size: 14px !important; }
  .nb-contact-copy-toast { bottom: 82px; }
  .nb-customer-service-float .nb-customer-service-float__toggle {
    width: 64px !important;
    height: 64px !important;
  }
  .nb-customer-service-float .nb-customer-service-float__toggle > i { font-size: 26px !important; }
  .nb-customer-service-float .nb-customer-service-float__toggle::after { font-size: 12px !important; }
  .nb-customer-service-float .nb-customer-service-float__toggle::before {
    top: 9px;
    right: 9px;
    width: 7px;
    height: 7px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nb-customer-service-float .nb-customer-service-float__toggle,
  .nb-customer-service-float .nb-customer-service-float__toggle::before {
    animation: none !important;
  }
}
