/* Global scaling: make 100% browser zoom look like 90% on desktop */
@media (min-width: 981px) {
  html {
    zoom: 0.9;
  }
}

:root {
  --footer-bg: transparent;
  --footer-text: #fff;
  --footer-text-muted: rgba(255, 255, 255, .8);
  --footer-text-dim: rgba(255, 255, 255, .6);
  --footer-pad-y: clamp(16px, 1.2vw, 24px);
  --footer-pad-bottom: clamp(20px, 1.8vw, 32px);
  --footer-container: min(1800px, calc(100% - clamp(24px, 3vw, 48px)));
  --footer-gap: clamp(34px, 4.6vw, 76px);
  --footer-brand-w: clamp(220px, 20vw, 320px);
  --footer-nav-offset: clamp(6px, 0.8vw, 12px);
  --footer-logo-h: clamp(30px, 2.8vw, 40px);
  --footer-h4-size: clamp(16px, 1.18vw, 18px);
  --footer-h4-lh: 1.6;
  --footer-link-size: clamp(14px, 1.05vw, 16px);
  --footer-link-lh: 1.6;
  --footer-info-size: clamp(14px, 1.05vw, 16px);
  --footer-info-lh: 1.8;
  --float-dock-width: 88px;
  --float-dock-collapsed-width: 34px;
}

/* Global site footer — Figma node 3313:8845. */
.footer {
  position: relative;
  width: 100%;
  margin: 0;
  padding: var(--footer-pad-y) 0 var(--footer-pad-bottom);
  overflow: hidden;
  color: var(--footer-text);
  background: #021a2b;
  font-family: "Noto Sans SC", "Microsoft YaHei", Arial, sans-serif;
}

.footer,
.footer * {
  box-sizing: border-box;
}

.footer::before,
.footer::after {
  content: none;
  display: none;
}

.footer .footer-media,
.footer .footer-glass {
  position: absolute;
  inset: 0;
}

.footer .footer-stage {
  position: static;
}

.footer .footer-media,
.footer .footer-glass {
  pointer-events: none;
}

.footer .footer-media {
  overflow: hidden;
}

.footer .footer-media img {
  position: absolute;
  inset: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 2px);
  max-width: none;
  display: block;
  object-fit: cover;
  object-position: center center;
  transform: none;
  transform-origin: center center;
}

.footer .footer-media span {
  position: absolute;
  inset: 0;
  display: block;
  background: transparent;
}

.footer .footer-glass {
  background: transparent;
  display: none;
}

.footer .site-footer-container {
  position: relative;
  z-index: 1;
  width: var(--footer-container);
  margin: 0 auto;
  padding: 0;
  padding-left: 80px;
  padding-right: calc(var(--float-dock-width) + 80px);
}

@media (max-width: 900px) {
  .footer .site-footer-container {
    padding-left: 0;
    padding-right: calc(var(--float-dock-collapsed-width) + 12px);
  }
}

@media (max-width: 560px) {
  .footer .site-footer-container {
    padding-left: 0;
    padding-right: calc(var(--float-dock-collapsed-width) + 8px);
  }
}

.footer .footer-main {
  position: relative;
  width: 100%;
  border-bottom: none;
}

.footer .footer-grid {
  display: grid;
  grid-template-columns: var(--footer-brand-w) repeat(4, 1fr);
  gap: var(--footer-gap);
  align-items: start;
}

.footer .footer-brand {
  position: relative;
  width: 100%;
  grid-column: 1;
  padding-top: var(--footer-nav-offset);
}

.footer .footer-brand-logo {
  position: relative;
  width: 100%;
  height: var(--footer-logo-h);
  margin-bottom: clamp(14px, 1.4vw, 20px);
}

.footer .footer-brand-logo img {
  position: absolute;
  top: 0;
  left: 0;
  width: min(310px, 100%);
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.footer .footer-brand .footer-phone,
.footer .footer-brand .footer-address,
.footer .footer-brand .footer-icp,
.footer .footer-brand .footer-qr p {
  margin: 0;
  max-width: 100%;
}

.footer .footer-brand .footer-phone,
.footer .footer-brand .footer-address {
  color: var(--footer-text-muted);
  font-size: var(--footer-info-size);
  line-height: var(--footer-info-lh);
  font-weight: 400;
}

.footer .footer-brand .footer-phone {
  padding-top: clamp(8px, 1vw, 14px);
  white-space: nowrap;
}

.footer .footer-brand .footer-address {
  padding: clamp(6px, .6vw, 10px) 0;
}

.footer .footer-brand .footer-icp {
  margin-top: -8px;
  color: var(--footer-text-muted);
  font-size: clamp(12px, .95vw, 14px);
  line-height: 1.6;
  font-weight: 400;
}

.footer .footer-nav-groups {
  grid-column: 2 / span 4;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(24px, 3.2vw, 56px);
  align-items: start;
  justify-self: center;
  width: min(920px, 100%);
  padding-top: var(--footer-nav-offset);
}

.footer .footer-column {
  min-width: 0;
}

.footer .footer-column h4 {
  margin: 0 0 clamp(10px, 1.1vw, 16px);
  padding-top: 0;
  color: var(--footer-text);
  font-size: var(--footer-h4-size);
  line-height: var(--footer-logo-h);
  font-weight: 500;
  white-space: nowrap;
}

.footer .footer-list {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(12px, 1.3vw, 18px);
}

.footer .footer-list a,
.footer .footer-list span {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  color: var(--footer-text-muted);
  font-size: var(--footer-link-size);
  line-height: var(--footer-link-lh);
  font-weight: 400;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: break-word;
  transition: color .2s ease, transform .2s ease;
}

.footer .footer-list a:hover,
.footer .footer-list a:focus-visible {
  color: var(--footer-text);
  transform: translateX(4px);
}

.footer .copyright {
  display: none;
}

html[data-locale="en"] .footer .footer-brand .footer-address {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Fluid scaling helpers for very large viewports */
@media (min-width: 1921px) {
  :root {
    --footer-pad-y: clamp(34px, 2.2vw, 48px);
    --footer-gap: clamp(28px, 2.4vw, 60px);
    --footer-nav-offset: clamp(22px, 2vw, 48px);
  }
}

/* Mid-size viewports (1201-1599px): narrow the brand column and gaps
   so the 4 nav columns keep enough width for full link titles. */
@media (min-width: 1201px) and (max-width: 1599px) {
  :root {
    --footer-brand-w: clamp(190px, 15.5vw, 250px);
    --footer-gap: clamp(18px, 2.4vw, 32px);
  }
}

@media (max-width: 1200px) {
  :root {
    --footer-brand-w: 260px;
    --footer-gap: 32px;
    --footer-nav-offset: clamp(22px, 2vw, 48px);
  }

  .footer .footer-grid {
    grid-template-columns: 1fr;
    gap: var(--footer-gap);
  }

  .footer .footer-brand {
    grid-column: auto;
  }

  .footer .footer-nav-groups {
    grid-column: auto;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px 32px;
    padding-top: 0;
  }
}

@media (max-width: 900px) {
  :root {
    --footer-pad-y: 34px;
    --footer-pad-bottom: 30px;
    --footer-container: min(1605px, calc(100% - 40px));
    --footer-gap: 24px;
    --footer-brand-w: 100%;
  }

  .footer .footer-grid {
    gap: var(--footer-gap);
  }

  .footer .footer-nav-groups {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 16px;
  }

  .footer .footer-brand-logo img {
    width: min(280px, 100%);
  }
}

@media (max-width: 560px) {
  .footer .footer-grid {
    text-align: left;
    gap: 24px;
  }

  .footer .footer-brand-logo {
    margin-bottom: 16px;
  }

  .footer .footer-brand-logo img {
    left: 0;
    transform: none;
    object-position: left center;
  }

  .footer .footer-list {
    align-items: flex-start;
    gap: 12px;
  }

  .footer .footer-column h4 {
    margin-bottom: 12px;
    line-height: 1.4;
  }

  .footer .footer-nav-groups {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 16px;
  }

  .footer .footer-brand .footer-phone,
  .footer .footer-brand .footer-address,
  .footer .footer-brand .footer-icp {
    text-align: left;
    line-height: 1.7;
  }

  .footer .footer-brand .footer-address {
    padding: 4px 0;
  }
}

@media (max-width: 430px) {
  .footer .footer-nav-groups {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 12px;
  }

  .footer .footer-grid {
    gap: 20px;
  }

  .footer .footer-brand-logo img {
    width: min(240px, 100%);
  }

  .footer .footer-column h4 {
    font-size: 15px;
  }

  .footer .footer-list a {
    font-size: 13px;
  }
}

@media (max-width: 360px) {
  .footer .footer-nav-groups {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}