.footer{margin-top:64px;padding:40px 0 24px;border-top:1px solid #ECEFF3;background:#fff;}
.footer-content{width:95%;max-width:1550px;margin:0 auto;padding:0 20px;display:flex;flex-direction:column;gap:24px;}
.footer-main{display:grid;grid-template-columns:320px minmax(640px,1fr) 270px;gap:64px;align-items:start;}
.footer-brand-name{color:#111827;font:400 22px/1.3 "Microsoft YaHei", sans-serif;}
.footer-brand-desc{margin:14px 0 0;color:#6B7280;font:400 13px/1.9 "Microsoft YaHei", sans-serif;}
.footer-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px;}
.footer-links-group,.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;}
.footer-group-title{margin:0 0 4px;color:#111827;font:400 15px/1.5 "Microsoft YaHei", sans-serif;}
.footer-link{display:inline-flex;align-items:center;color:#6B7280;font:400 13px/1.8 "Microsoft YaHei", sans-serif;text-align:left;text-decoration:none;transition:.2s ease;}
.footer-link:hover{color:#111827;}
.footer-link-button{appearance:none;padding:0;border:0;background:none;cursor:pointer;}
.footer-contact{gap:12px;}
.footer-contact-item{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:0;border:0;background:transparent;text-align:left;}
.footer-contact-button{cursor:pointer;}
.footer-contact-name{color:#374151;font:400 13px/1.7 "Microsoft YaHei", sans-serif;}
.footer-contact-text{color:#9CA3AF;font:400 12px/1.75 "Microsoft YaHei", sans-serif;}
.footer-contact-button:hover .footer-contact-name{color:#111827;}
.footer-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding-top:18px;border-top:1px solid #ECEFF3;color:#9CA3AF;font-size:13px;line-height:1.8;}
.footer-meta span:not(:last-child)::after{content:"|";margin-left:14px;color:#D1D5DB;}
.footer-contact-overlay{position:fixed;inset:0;background:rgba(17,24,39,.52);display:none;align-items:center;justify-content:center;padding:20px;z-index:1200;}
.footer-contact-overlay[hidden]{display:none !important;}
.footer-contact-overlay.active{display:flex;}
.footer-contact-dialog{width:min(360px, 100%);background:#fff;border-radius:24px;box-shadow:0 24px 60px rgba(15,23,42,.22);padding:28px 24px 24px;position:relative;text-align:center;}
.footer-contact-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:0;background:#F3F4F6;color:#4B5563;font-size:22px;cursor:pointer;}
.footer-contact-title{font-size:22px;font-weight:700;color:#111827;line-height:1.3;}
.footer-contact-desc{margin-top:10px;color:#6B7280;font-size:14px;line-height:1.8;}
.footer-contact-tip{margin-top:8px;color:#9CA3AF;font-size:12px;line-height:1.7;}
.footer-contact-qr-wrap{margin-top:18px;display:flex;justify-content:center;}
.footer-contact-qr{width:min(220px, 100%);aspect-ratio:1 / 1;object-fit:contain;border-radius:20px;border:1px solid #E5E7EB;padding:10px;background:#fff;}
.footer-contact-empty{margin-top:18px;padding:24px 18px;border-radius:18px;background:#F9FAFB;color:#6B7280;font-size:14px;line-height:1.8;}
@media (max-width: 1080px){
  .footer-main{grid-template-columns:260px 1fr;gap:32px;}
  .footer-nav{grid-template-columns:repeat(4,minmax(0,1fr));grid-column:2;gap:26px;}
  .footer-contact{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;padding-top:2px;}
  .footer-contact .footer-group-title{grid-column:1 / -1;}
}
@media (max-width: 768px){
  .footer{margin-top:48px;padding:30px 0 24px;}
  .footer-content{width:100%;padding:0 18px;}
  .footer-content{gap:22px;}
  .footer-main{grid-template-columns:1fr;gap:24px;}
  .footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));grid-column:auto;gap:22px 28px;}
  .footer-brand{grid-column:1 / -1;}
  .footer-contact{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-brand-name{font-size:20px;}
  .footer-brand-desc{max-width:none;}
  .footer-link{font-size:12px;}
  .footer-meta{font-size:12px;}
  .footer-meta span:not(:last-child)::after{margin-left:10px;}
}
@media (max-width: 520px){
  .footer-nav{grid-template-columns:1fr;}
  .footer-contact{grid-template-columns:1fr;}
  .footer-meta{display:block;}
  .footer-meta span{display:block;}
  .footer-meta span:not(:last-child)::after{content:"";}
}
.auth-wechat-wrapper:hover{border-color:#000 !important;}
.auth-wechat-local-entry{cursor:pointer;transition:0.3s;}
.auth-wechat-local-icon{font-size:40px;margin-bottom:10px;}
.auth-wechat-local-title{color:#000;font-weight:500;}
.auth-wechat-local-note{display:block;margin-top:8px;color:#999;}
.auth-wechat-helper-text{text-align:center;font-size:13px;color:#666;}
.auth-wechat-helper-text-spaced{margin-top:8px;}
.auth-wechat-qr-container{display:flex;flex-direction:column;align-items:center;min-height:220px;}
.auth-wechat-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:220px;color:#999;font-size:13px;}
.auth-wechat-state-hidden{display:none;}
.auth-wechat-state-icon{font-size:32px;margin-bottom:8px;}
.auth-wechat-refresh-btn{margin-top:12px;padding:6px 16px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;}
.auth-wechat-iframe-wrap{display:none;}
.auth-wechat-bind-area{display:none;}
.auth-wechat-bind-title{text-align:center;margin-bottom:20px;color:#1a1a1a;font-size:15px;font-weight:600;}
.auth-wechat-bind-back{text-align:center;margin-top:16px;}
.auth-wechat-bind-back-link{font-size:13px;color:#999;text-decoration:none;}
