/* Shared footer: a brand message above the site directory and contact details. */
.footer.footer--refined {
  --footer-rule:#d6eafa29;
  --footer-muted:#aac3d4;
  --footer-white:#f4f8fc;
  --footer-blue:#a9d5f5;
  position:relative;display:flex;align-items:center;min-height:0;
  border:0;padding:clamp(38px,4.5vw,70px) 0 26px;
  background:#0b2d43;color:var(--footer-white);
  font-family:"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  line-height:normal;letter-spacing:normal;
}
.footer.footer--refined>.wrap { width:88%;max-width:1440px;display:block;min-width:0; }
.footer.footer--refined .footer-hero {
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding-bottom:clamp(24px,2.8vw,42px);border-bottom:1px solid var(--footer-rule);
}
.footer.footer--refined .footer-signature {
  display:flex;flex-wrap:wrap;gap:0 .26em;margin:0;
  color:var(--footer-white);font-size:clamp(32px,3.8vw,64px);
  font-weight:500;line-height:1.17;letter-spacing:-.05em;
}
.footer.footer--refined .footer-signature>span { white-space:nowrap; }
.footer.footer--refined .footer-signature>span:last-child { color:var(--footer-blue); }
.footer.footer--refined .footer-hero>.footer-contact {
  display:inline-flex;align-items:center;justify-content:space-between;gap:28px;
  flex:none;position:relative;isolation:isolate;overflow:hidden;
  min-height:54px;margin:0;padding:7px 7px 7px 23px;
  border:1px solid #cde6fa8a;border-radius:999px;
  background:transparent;color:var(--footer-white);font-size:15px;font-weight:550;
  text-decoration:none;transition:color .3s,border-color .3s;
}
.footer.footer--refined .footer-contact::before {
  content:"";position:absolute;inset:0;z-index:-1;background:#f4f8fc;
  transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,1,.36,1);
}
.footer.footer--refined .footer-contact-arrow {
  width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:50%;
  background:#f4f8fc;color:#0b2d43;transition:background .3s,color .3s;
}
.footer.footer--refined .footer-contact-arrow svg {
  width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .3s;
}
.footer.footer--refined .footer-hero>.footer-contact:is(:hover,:focus-visible) { color:#0b2d43;border-color:#f4f8fc; }
.footer.footer--refined .footer-contact:is(:hover,:focus-visible)::before { transform:scaleX(1); }
.footer.footer--refined .footer-contact:is(:hover,:focus-visible) .footer-contact-arrow { color:white;background:#0756aa; }
.footer.footer--refined .footer-contact:is(:hover,:focus-visible) svg { transform:translateX(2px); }
.footer.footer--refined .footer-main {
  display:grid;grid-template-columns:minmax(245px,1.15fr) minmax(0,1.95fr) minmax(232px,.95fr);
  align-items:start;gap:clamp(25px,3.2vw,52px);margin:0;
  padding:clamp(27px,3vw,44px) 0 clamp(26px,3vw,44px);
}
.footer.footer--refined .footer-brand-row,.footer.footer--refined .footer-brand,.footer.footer--refined .footer-contact-details { min-width:0; }
.footer.footer--refined .footer-brand .logo { width:154px;height:39px;margin:0 0 12px; }
.footer.footer--refined .footer-brand .logo img {
  width:171.11px;height:auto;max-width:none;top:-67.4px;left:-8.56px;
  filter:url(#footer-white-logo);mix-blend-mode:normal;opacity:1;
}
.footer.footer--refined .footer-brand p { margin:0;color:var(--footer-muted);font-size:12px;line-height:1.8; }
.footer.footer--refined .footer-logo-filter { position:absolute;width:0;height:0;overflow:hidden; }
.footer.footer--refined .footer-office-row { margin:23px 0 0;padding:0;border:0; }
.footer.footer--refined .footer-office-details { margin:0; }
.footer.footer--refined .footer-office-details dt,
.footer.footer--refined .footer-office-note {
  display:flex;align-items:center;gap:8px;color:var(--footer-muted);font-size:12px;line-height:1.5;
}
.footer.footer--refined .footer-office-details dt { margin:0 0 7px; }
.footer.footer--refined .footer-office-details svg {
  width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;
}
.footer.footer--refined .footer-office-value { margin:0 0 0 25px;color:#e0ecf4;font-size:13px;line-height:1.85;overflow-wrap:anywhere; }
.footer.footer--refined .footer-office-note { margin:10px 0 0; }
.footer.footer--refined .footer-navigation { display:grid;grid-template-columns:.85fr 1.1fr 1fr;gap:22px;min-width:0; }
.footer.footer--refined .footer-column { display:flex;flex-direction:column;align-items:start;gap:3px;min-width:0; }
.footer.footer--refined :is(.footer-column h3,.footer-contact-details h2) {
  margin:0 0 12px;color:var(--footer-blue);font-size:13px;font-weight:550;line-height:1.7;letter-spacing:0;
}
.footer.footer--refined :is(.footer-column a,.footer-column button) {
  display:block;padding:5px 0;color:#e1ecf4;font-size:14px;line-height:1.7;text-align:left;
  transition:color .2s,translate .2s;
}
.footer.footer--refined .footer-column :is(a,button):is(:hover,:focus-visible) { color:white; }
.footer.footer--refined .footer-network-links { display:grid;gap:3px;width:100%; }
.footer.footer--refined .footer-contact-details { border-left:1px solid var(--footer-rule);padding-left:25px; }
.footer.footer--refined .footer-contact-grid { display:grid;gap:14px;margin:0; }
.footer.footer--refined .footer-contact-grid>div { min-width:0; }
.footer.footer--refined .footer-contact-grid dt { margin:0 0 4px;color:var(--footer-muted);font-size:11px;line-height:1.65; }
.footer.footer--refined .footer-contact-grid dd { margin:0;overflow-wrap:anywhere; }
.footer.footer--refined .footer-contact-grid .footer-contact-value { color:var(--footer-white); }
.footer.footer--refined .footer-contact-phone { font-size:clamp(22px,2vw,31px);font-weight:550;line-height:1.2;letter-spacing:-.025em;font-variant-numeric:tabular-nums; }
.footer.footer--refined .footer-contact-email { font-size:15px;line-height:1.55; }
.footer.footer--refined .footer-contact-grid .footer-contact-note { margin-top:5px;color:var(--footer-muted);font-size:12px;line-height:1.65; }
.footer.footer--refined .footer-contact-value a { color:inherit;text-decoration:none; }
.footer.footer--refined .footer-contact-value a:hover { text-decoration:underline;text-underline-offset:4px; }
.footer.footer--refined .footer-bottom {
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:17px 0 0;border-top:1px solid var(--footer-rule);
  color:var(--footer-muted);font-size:11px;line-height:1.7;
}
.footer.footer--refined .footer-utility { display:flex;align-items:center;gap:25px; }
.footer.footer--refined .footer-utility>a { color:inherit;transition:color .2s; }
.footer.footer--refined .footer-utility>a:hover { color:white; }
.footer.footer--refined :is(a,button):focus-visible { outline:2px solid var(--footer-blue);outline-offset:4px; }
@media(max-width:1050px) {
  .footer.footer--refined .footer-main { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:29px 26px; }
  .footer.footer--refined .footer-brand-row { grid-column:1;grid-row:1; }
  .footer.footer--refined .footer-contact-details { grid-column:2;grid-row:1; }
  .footer.footer--refined .footer-navigation { grid-column:1/-1;grid-row:2;border-top:1px solid var(--footer-rule);padding-top:23px; }
}
@media(max-width:600px) {
  .footer.footer--refined { padding-top:36px; }
  .footer.footer--refined .footer-hero { display:grid;justify-content:stretch;justify-items:start;gap:19px;padding-bottom:24px; }
  .footer.footer--refined .footer-signature { font-size:clamp(29px,8.3vw,42px); }
  .footer.footer--refined .footer-hero>.footer-contact { min-height:48px;gap:18px;padding-left:19px;font-size:14px; }
  .footer.footer--refined .footer-contact-arrow { width:32px;height:32px; }
  .footer.footer--refined .footer-main { grid-template-columns:minmax(0,1fr);gap:23px;padding:25px 0; }
  .footer.footer--refined .footer-brand-row,.footer.footer--refined .footer-contact-details,.footer.footer--refined .footer-navigation { grid-column:auto;grid-row:auto; }
  .footer.footer--refined .footer-contact-details { padding:21px 0 0;border-left:0;border-top:1px solid var(--footer-rule); }
  .footer.footer--refined .footer-contact-phone { font-size:27px; }
  .footer.footer--refined .footer-navigation { grid-template-columns:1fr 1fr;gap:20px 15px; }
  .footer.footer--refined .footer-network { grid-column:1/-1; }
  .footer.footer--refined .footer-network-links { grid-template-columns:1fr 1fr;gap:3px 15px; }
  .footer.footer--refined .footer-bottom { flex-wrap:wrap;gap:11px 20px; }
}

/* Preserve the same animated shoulder contour across the site. */
.footer.footer--refined {
  --footer-edge-height:calc(7px + 25px * var(--section-edge-progress,1));
  --footer-edge-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 32' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 0H190C224 0 236 25 272 25H1168C1204 25 1216 0 1250 0H1440V32H0Z'/%3E%3C/svg%3E");
}
.footer.footer--refined::before {
  content:"";position:absolute;inset:auto 0 calc(100% - 1px);width:100%;height:var(--footer-edge-height);
  background:#0b2d43;pointer-events:none;
  -webkit-mask:var(--footer-edge-mask) center / 100% 100% no-repeat;
  mask:var(--footer-edge-mask) center / 100% 100% no-repeat;
}
.footer-reveal-ready .footer.footer--refined {position:sticky;min-height:calc(100svh - var(--footer-header-height,80px));}
.footer-reveal-ready .footer.footer--refined::before {content:none;}
@media(max-width:900px) { .footer.footer--refined {--footer-edge-height:23px;} }
@media(prefers-reduced-motion:reduce) {
  .footer.footer--refined {--section-edge-progress:1;}
  .footer.footer--refined :is(a,button,span,svg),.footer.footer--refined .footer-contact::before { transition:none; }
  .footer.footer--refined .footer-column :is(a,button):hover { translate:none; }
}

/* The supplied WeChat card stays intact; only its QR area is framed here. */
.footer.footer--refined .footer-wechat { width:144px;margin:20px 0 0; }
.footer.footer--refined .footer-wechat-link { display:block;border-radius:10px;background:white;padding:2px; }
.footer.footer--refined .footer-wechat-code { display:block;position:relative;aspect-ratio:1;overflow:hidden;border-radius:8px;background:white; }
.footer.footer--refined .footer-wechat-code img { position:absolute;max-width:none;width:104.91%;height:auto;left:-2.45%;top:-23.93%; }
.footer.footer--refined .footer-wechat figcaption { margin-top:10px;color:var(--footer-muted);font-size:12px;line-height:1.6;text-align:center; }
@media(min-width:1251px) {
  .footer.footer--has-wechat .footer-main { grid-template-columns:minmax(245px,1.05fr) minmax(0,1.35fr) minmax(380px,1.6fr);gap:28px; }
  .footer.footer--has-wechat .footer-contact-details { display:grid;grid-template-columns:minmax(0,1fr) 144px;column-gap:20px; }
  .footer.footer--has-wechat .footer-contact-details h2 { grid-column:1;grid-row:1; }
  .footer.footer--has-wechat .footer-contact-grid { grid-column:1;grid-row:2; }
  .footer.footer--has-wechat .footer-wechat { grid-column:2;grid-row:1 / 3;margin:0;align-self:start; }
}
@media(min-width:1051px) and (max-width:1250px) {
  .footer.footer--has-wechat .footer-main { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:29px 26px; }
  .footer.footer--has-wechat .footer-brand-row { grid-column:1;grid-row:1; }
  .footer.footer--has-wechat .footer-contact-details { grid-column:2;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) 144px;column-gap:20px; }
  .footer.footer--has-wechat .footer-contact-details h2 { grid-column:1;grid-row:1; }
  .footer.footer--has-wechat .footer-contact-grid { grid-column:1;grid-row:2; }
  .footer.footer--has-wechat .footer-wechat { grid-column:2;grid-row:1 / 3;margin:0; }
  .footer.footer--has-wechat .footer-navigation { grid-column:1/-1;grid-row:2;border-top:1px solid var(--footer-rule);padding-top:23px; }
}
