/* Public contact entry only; do not reuse in admin or traceability views. */
.gf-wechat-float {
  position: fixed;
  right: max(28px, env(safe-area-inset-right));
  bottom: calc(28px + env(safe-area-inset-bottom));
  z-index: 40;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 64px;
  height: 64px;
  gap: 10px;
  padding: 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #a33229;
  box-shadow: none;
  font-family: GFBody, "Noto Sans SC", sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .08em;
  text-decoration: none;
  box-sizing: border-box;
}
.gf-wechat-float img { display: block; width: 44px; height: 44px; flex: none; }
.gf-wechat-float span {
  display: block;
  white-space: nowrap;
  /* A tight glyph halo separates text from photos without adding a panel. */
  text-shadow: -1px -1px 0 #f3ede2, 0 -1px 0 #f3ede2, 1px -1px 0 #f3ede2,
    -1px 0 0 #f3ede2, 1px 0 0 #f3ede2,
    -1px 1px 0 #f3ede2, 0 1px 0 #f3ede2, 1px 1px 0 #f3ede2;
}
.gf-wechat-float:hover { opacity: 1; background: transparent; }
.gf-wechat-float:focus-visible { outline: 2px solid #a33229; outline-offset: 4px; }
body:has([role="dialog"], dialog[open]) .gf-wechat-float { visibility: hidden; }
@media (max-width: 700px) {
  .gf-wechat-float { right: max(16px, env(safe-area-inset-right)); bottom: calc(18px + env(safe-area-inset-bottom)); min-width: 62px; height: 62px; padding: 9px; }
  body:has(.mobile-cta, .act-mobile-cta) .gf-wechat-float { bottom: calc(88px + env(safe-area-inset-bottom)); }
}
@media print { .gf-wechat-float { display: none !important; } }
