/* Site footer (2026-10 redesign), rendered by [flyward_footer] inside the Elementor footer templates 10537 (EN) / 5940 (ZH). */
.fwf {
  --fwf-line: rgba(255, 255, 255, .09);
  --fwf-text: rgba(236, 240, 250, .82);
  --fwf-muted: rgba(226, 232, 245, .56);
  --fwf-dim: rgba(226, 232, 245, .42);
  --fwf-sans: var(--fw-sans, "Inter", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif);
  --fwf-display: var(--fw-display, "Manrope", "Inter", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif);
  background: #05060a;
  border-top: 1px solid var(--fwf-line);
  color: var(--fwf-muted);
  font-family: var(--fwf-sans);
  -webkit-font-smoothing: antialiased;
}
.fwf *, .fwf *::before, .fwf *::after { box-sizing: border-box; }
.fwf p { margin: 0; }
.fwf a { text-decoration: none; transition: color .2s ease, border-color .2s ease; }
/* the Elementor container around the shortcode and the theme's footer wrapper: no padding, same background */
body .e-con:has(> .elementor-widget-shortcode .fwf) { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px 0px; --row-gap: 0px; --column-gap: 0px; padding: 0; }
body .lqd-site-footer:has(.fwf) { background-color: #05060a !important; border-top: 0 !important; }

.fwf-wrap { width: min(1280px, calc(100% - 160px)); margin: 0 auto; }
.fwf-top { display: grid; grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)); gap: 56px; padding: 88px 0 72px; }
.fwf-logo, .fwf-logo:hover { display: inline-flex; align-items: center; gap: 12px; color: #fff; font: 600 20px/1 var(--fwf-display); letter-spacing: -.01em; }
.fwf-logo img { display: block; width: 30px; height: 30px; filter: brightness(0) invert(1); }
.fwf .fwf-desc { margin-top: 22px; max-width: 430px; font: 400 14.5px/1.75 var(--fwf-sans); color: var(--fwf-muted); }
.fwf-social { display: flex; gap: 10px; margin-top: 28px; }
.fwf-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .14); color: rgba(226, 232, 245, .72); }
.fwf-social a:hover { color: #fff; border-color: rgba(116, 196, 246, .55); }
.fwf-social svg { width: 18px; height: 18px; }
.fwf .fwf-h { margin-bottom: 16px; font: 600 12px/1 var(--fwf-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fwf-dim); }
.fwf-col > a { display: block; width: fit-content; padding: 7px 0; font: 500 15px/1.4 var(--fwf-sans); color: var(--fwf-text); }
.fwf-col > a:hover { color: #fff; }
.fwf-contact > p { margin-bottom: 16px; }
.fwf-contact span { display: block; margin-bottom: 4px; font: 400 12.5px/1.4 var(--fwf-sans); color: var(--fwf-dim); }
.fwf-contact a { font: 500 15px/1.4 var(--fwf-sans); color: var(--fwf-text); }
.fwf-contact a:hover { color: #fff; }
.fwf-wx { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.fwf-wx img { display: block; width: 76px; height: 76px; padding: 5px; border-radius: 10px; background: #fff; }
.fwf-wx span { font: 400 12.5px/1.6 var(--fwf-sans); color: var(--fwf-dim); }
.fwf-wx b { font-weight: 500; color: var(--fwf-text); }
.fwf-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 0 32px; border-top: 1px solid var(--fwf-line); font: 400 13px/1.5 var(--fwf-sans); color: var(--fwf-dim); }
.fwf-bottom a { color: var(--fwf-muted); }
.fwf-bottom a:hover { color: #fff; }

.fwf[lang="zh-CN"] .fwf-h { letter-spacing: .12em; }
.fwf[lang="zh-CN"] .fwf-desc { line-height: 1.9; }

/* tablet */
@media (max-width: 1199px) {
  .fwf-wrap { width: calc(100% - 64px); }
  .fwf-top { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; padding: 72px 0 56px; }
  .fwf-brand { grid-column: 1 / -1; }
  .fwf .fwf-desc { max-width: 560px; }
}
/* phone */
@media (max-width: 767px) {
  .fwf-wrap { width: calc(100% - 40px); }
  .fwf-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; padding: 56px 0 44px; }
  .fwf-contact { grid-column: 1 / -1; }
  .fwf-bottom { flex-direction: column; align-items: flex-start; gap: 8px; padding: 20px 0 28px; }
}
