/* Shared typography and aligned rows for public, preview and inner-page footers. */
.site-footer,.in_footer{
  --vh-footer-font:"Poppins",sans-serif;--vh-footer-gray:#747984;--vh-footer-red:#c30d23;--vh-footer-line:#d9dce1;
  box-sizing:border-box;font-family:var(--vh-footer-font);color:var(--vh-footer-gray);background:#fff;
}
html[lang^="zh"] :is(.site-footer,.in_footer){--vh-footer-font:"Noto Sans SC",sans-serif}
/* Text only: preserve icon fonts, image assets and QR popovers. */
.site-footer :is(.footer-certification-label,.footer-contact address,.footer-contact-row),
.site-footer .footer-contact-row :is(a,span,strong),
.site-footer .footer-social-list a > span:not([aria-hidden]),
.site-footer .in_footer_sns a > p,
.site-footer .footer-policy-links a,
.in_footer :is(.in_footer_c1,.in_footer_c3),
.in_footer :is(.in_footer_tel,.in_footer_email) :is(a,span,strong),
.in_footer .in_footer_sns a > p,
.in_footer .in_footer_c4 a,
:is(.site-footer,.in_footer) :is(.vh-footer-copyright,.vh-footer-copyright p,.vh-footer-copyright a,.vh-footer-legal-links,.vh-footer-legal-links a),
.site-footer .footer-legal nav,
.site-footer .footer-legal nav a,
:is(.site-footer,.in_footer) .vh-friend-links,
:is(.site-footer,.in_footer) .vh-friend-links :is(.vh-friend-links__title,a){
  font-family:var(--vh-footer-font);font-size:13px;font-weight:400;font-style:normal;line-height:22px;letter-spacing:normal;text-transform:none;color:var(--vh-footer-gray);
}
.site-footer .footer-contact-row strong,
.site-footer .footer-contact-row a[href^="mailto:"],
.in_footer :is(.in_footer_tel,.in_footer_email) strong,
.in_footer .in_footer_email a[href^="mailto:"],
:is(.site-footer,.in_footer) .vh-friend-links .vh-friend-links__title{color:var(--vh-footer-red)}
.site-footer .footer-contact-row strong,
.in_footer :is(.in_footer_tel,.in_footer_email) strong,
:is(.site-footer,.in_footer) .vh-friend-links .vh-friend-links__title{font-weight:700}
.site-footer{padding:84px 0 28px;border-top:0}
.site-footer .footer-layout,.in_footer{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr) minmax(0,.95fr);
  /* Heading, breathing room, icons/address, certifications/captions, then three text rows. */
  grid-template-rows:36px 40px minmax(28px,auto) minmax(44px,auto) minmax(44px,auto) minmax(44px,auto) minmax(24px,auto);
  gap:0;align-items:stretch;width:calc(100% - 64px);max-width:1520px;margin-inline:auto;
}
.site-footer .footer-layout{padding:0}
.in_footer{padding:84px 0 0}
.site-footer .footer-layout > section,.in_footer > .in_footer_l{
  box-sizing:border-box;display:grid;grid-row:1 / span 7;grid-template-rows:subgrid;min-width:0;width:auto;min-height:0;margin:0;padding:0 32px 0 0;border:0;
}
.site-footer .footer-layout > section:nth-child(2),.in_footer > .in_footer_l:nth-child(2){padding-inline:48px 32px;border-left:1px solid var(--vh-footer-line)}
.site-footer .footer-layout > section:nth-child(3),.in_footer > .in_footer_l:nth-child(3){padding-inline:48px 0;border-left:1px solid var(--vh-footer-line)}
.site-footer .footer-logo-link,.in_footer .in_footer_logo{grid-row:1;display:flex;align-items:center;margin:0;height:36px}
.site-footer .footer-logo,.in_footer .in_footer_logo img{display:block;width:250px;max-width:100%;height:30px;object-fit:contain;object-position:left center}
.site-footer :is(.footer-contact,.footer-social) h2,.in_footer .in_footer_t{
  grid-row:1;align-self:center;margin:0;font-family:var(--vh-footer-font);font-size:17px;font-weight:600;line-height:24px;color:#171b24;text-align:left;
}
.site-footer .footer-certifications,.in_footer .vh-footer-certifications{grid-row:4;display:flex;align-items:center;gap:18px;margin:0}
.site-footer .footer-certification-label,.in_footer .in_footer_c1{flex:0 0 auto;margin:0;padding-right:18px;border-right:1px solid var(--vh-footer-line)}
.site-footer .footer-certification-list,.in_footer .vh-footer-certifications > .df{display:flex;align-items:center;gap:10px;min-width:0}
.site-footer .footer-certification-list img,.in_footer .in_footer_img{width:42px;height:42px;min-width:0;margin:0;object-fit:contain}
.site-footer .footer-legal,.in_footer .in_footer_c2{display:contents}
:is(.site-footer,.in_footer) .vh-footer-copyright{grid-row:6;align-self:start;line-height:22px}
:is(.site-footer,.in_footer) .vh-footer-copyright :is(p,a){margin:0;line-height:22px}
.site-footer .footer-legal nav,.in_footer .vh-footer-legal-links{grid-row:7;display:flex;flex-wrap:wrap;align-items:baseline;align-self:start;gap:0 6px;margin:0}
.site-footer .footer-contact address,.in_footer .in_footer_c3{grid-row:3 / span 2;align-self:start;margin:0;overflow-wrap:anywhere}
.site-footer .footer-contact-list,.in_footer .in_footer_tel{display:contents}
.site-footer .footer-contact-row,.in_footer .in_footer_tel > a,.in_footer .in_footer_email > a{
  display:grid;grid-template-columns:84px minmax(0,1fr);gap:0;align-items:baseline;align-self:start;margin:0;overflow-wrap:anywhere;
}
.site-footer .footer-contact-row:nth-child(1),.in_footer .in_footer_tel > a:nth-child(1){grid-row:5}
.site-footer .footer-contact-row:nth-child(2),.in_footer .in_footer_tel > a:nth-child(2){grid-row:6}
.site-footer .footer-contact-row:nth-child(3),.in_footer .in_footer_email{grid-row:7}
.in_footer .in_footer_email{align-self:start;margin:0}
.in_footer .in_footer_email > br{display:none}
.in_footer :is(.in_footer_tel,.in_footer_email) strong{margin:0}
/* The homepage CMS can replace the social list; retain both supported DOM variants. */
.site-footer :is(.footer-social-list,.in_footer_sns),.in_footer .in_footer_sns{
  display:grid;grid-row:3 / span 2;grid-template-rows:subgrid;grid-auto-columns:minmax(max-content,1fr);grid-auto-flow:column;grid-template-columns:none;
  column-gap:10px;row-gap:0;width:100%;max-width:350px;padding:0;margin:0;
}
.site-footer :is(.footer-social-list,.in_footer_sns) > a,.in_footer .in_footer_sns > a{
  display:grid;grid-row:1 / span 2;grid-template-rows:subgrid;justify-items:center;align-items:start;gap:0;min-width:0;width:auto;height:auto;margin:0;padding:0;color:var(--vh-footer-gray);text-align:center;
}
.site-footer .footer-social-list > a > :is(img,.footer-wechat-mark),
.site-footer .in_footer_sns > a > img,.in_footer .in_footer_sns > a > :is(img,.fa){grid-row:1;align-self:center;width:26px;height:26px;margin:0;object-fit:contain}
.site-footer .footer-social-list > a > span:not([aria-hidden]),
.site-footer .in_footer_sns > a > p,.in_footer .in_footer_sns > a > p{grid-row:2;align-self:start;margin:0;overflow-wrap:normal;white-space:nowrap}
.in_footer .in_footer_sns > a > p{color:inherit}
.in_footer .in_footer_sns .in_footer_wx > p{color:var(--vh-footer-gray)}
/* Tint only the icon itself; QR popovers stay black and white. */
:is(.site-footer,.in_footer) :is(.footer-social-list,.in_footer_sns) > a:is(:hover,:focus-visible){color:var(--vh-footer-red);background:transparent}
:is(.site-footer,.in_footer) :is(.footer-social-list,.in_footer_sns) > a:is(:hover,:focus-visible) > :is(p,.fa,span:not([aria-hidden]):not(.footer-social-qr):not(.in_footer_wx_qr)){color:var(--vh-footer-red)}
:is(.site-footer,.in_footer) :is(.footer-social-list,.in_footer_sns) > a:is(:hover,:focus-visible) > :is(img,.footer-wechat-mark){filter:url("/themes/template/static/css/vh-footer-icon-filter.svg#brand-red");opacity:1}
:is(.site-footer,.in_footer) .vh-friend-links{display:grid;grid-row:5 / span 2;grid-template-rows:subgrid;margin:0;padding:0;border:0}
:is(.site-footer,.in_footer) .vh-friend-links__title{grid-row:1;align-self:start}
:is(.site-footer,.in_footer) .vh-friend-links__items{grid-row:2;align-self:start;margin:0}
.site-footer .footer-policy-links,.in_footer .in_footer_c4{grid-row:7;display:flex;flex-wrap:wrap;align-items:baseline;align-self:start;justify-content:flex-start;gap:0;margin:0}
.site-footer .footer-policy-links a,.in_footer .in_footer_c4 a{padding:0 12px;border:0}
.site-footer .footer-policy-links a:first-child,.in_footer .in_footer_c4 a:first-child{padding-left:0}
.site-footer .footer-policy-links a + a,.in_footer .in_footer_c4 a + a{border-left:1px solid var(--vh-footer-line)}
.site-footer .footer-back-to-top{margin:74px auto 0;color:var(--vh-footer-red)}
.in_footer + .fttotop{margin:74px auto 28px}
@media(max-width:1200px){
  .site-footer{padding-top:48px}
  .site-footer .footer-layout,.in_footer{display:block;width:calc(100% - 40px)}
  .in_footer{padding-top:48px}
  .site-footer .footer-layout > section:nth-child(n),.in_footer > .in_footer_l{display:block;padding:0;margin:0;border:0}
  .site-footer .footer-layout > section:nth-child(n+2),.in_footer > .in_footer_l + .in_footer_l{margin-top:36px;padding:0;border:0}
  .site-footer .footer-certifications,.in_footer .vh-footer-certifications{margin-top:32px}
  .site-footer .footer-legal,.in_footer .in_footer_c2{display:block;margin-top:24px}
  .site-footer .footer-legal nav,.in_footer .vh-footer-legal-links{margin-top:4px}
  .site-footer :is(.footer-contact,.footer-social) h2,.in_footer .in_footer_t{margin-bottom:28px}
  .site-footer .footer-contact address,.in_footer .in_footer_c3{margin-bottom:24px}
  .site-footer .footer-contact-list,.in_footer .in_footer_tel{display:grid;gap:14px}
  .site-footer .footer-contact-row:nth-child(n),.in_footer .in_footer_tel > a:nth-child(n){grid-row:auto}
  .in_footer .in_footer_email{margin-top:14px}
  .site-footer :is(.footer-social-list,.in_footer_sns),.in_footer .in_footer_sns{grid-template-rows:28px minmax(22px,auto)}
  :is(.site-footer,.in_footer) .vh-friend-links{display:block;margin-top:24px}
  :is(.site-footer,.in_footer) .vh-friend-links__items{margin-top:14px}
  .site-footer .footer-policy-links,.in_footer .in_footer_c4{margin-top:24px}
  .site-footer .footer-back-to-top,.in_footer + .fttotop{margin-top:44px}
}
