:root {
  --brand:#095cd7;
  --accent:#0067fa;
  --cyan:#14a1b5;
  --ink:#1f2937;
  --text:#303e65;
  --muted:#81838d;
  --surface:#f5f9ff;
  --line:#e9eff5;
  --font:"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;
  --container:min(1440px,calc(100% - 48px));
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  color:var(--ink);
  font-family:var(--font);
  background:#fff;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  font:inherit;
}

.section-container {
  width:var(--container);
  margin-inline:auto;
}

.section-heading {
  margin:0 0 3rem;
  text-align:center;
}

.section-heading h2 {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  margin:0;
  color:var(--ink);
  font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;
  font-size:2.25rem;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.09rem;
}

.section-heading h2::before,.section-heading h2::after {
  width:min(7.125rem,18vw);
  height:.375rem;
  border-radius:999px;
  content:"";
  background:linear-gradient(90deg,var(--accent),transparent);
}

.section-heading h2::after {
  transform:scaleX(-1);
}

.section-heading p {
  margin:.15rem 0 0;
  color:#989b9f;
  font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;
  font-size:1.125rem;
  line-height:1.55;
  font-weight:400;
  letter-spacing:.045rem;
}

.primary-button,.outline-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:3.5rem;
  padding:.8rem 2rem;
  border:1px solid var(--accent);
  border-radius:999px;
  font-size:1rem;
  transition:.2s ease;
}

.primary-button {
  color:#fff;
  background:linear-gradient(90deg,var(--accent),#1393ec);
  box-shadow:0 3px 7px rgba(9,92,215,.18);
}

.outline-button {
  color:var(--accent);
  background:#fff;
}

.primary-button:hover,.outline-button:hover {
  transform:translateY(-2px);
}

.site-header {
  position:sticky;
  z-index:50;
  top:0;
  width:100%;
  height:86px;
  border-bottom:1px solid transparent;
  background:#fff;
  box-shadow:0 2px 2px rgba(9,92,215,.12);
  transition:background-color .28s ease,border-color .28s ease,box-shadow .28s ease;
}

.site-header.is-scrolled {
  border-bottom-color:rgba(214,226,243,.78);
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 30px rgba(31,41,55,.1);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) {
  .site-header.is-scrolled {
    background:rgba(255,255,255,.97);
  }
}

.site-header__inner {
  display:flex;
  align-items:center;
  width:min(1200px,calc(100% - 48px));
  height:100%;
  margin:auto;
}

.site-logo img {
  width:115px;
  height:40px;
  object-fit:contain;
}

.menu-toggle {
  display:none;
}

.menu-toggle__icon,
.menu-toggle__icon::before,
.menu-toggle__icon::after {
  display:block;
  width:1.45rem;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .22s ease,opacity .22s ease;
}

.menu-toggle__icon {
  position:relative;
}

.menu-toggle__icon::before,
.menu-toggle__icon::after {
  position:absolute;
  left:0;
  content:"";
}

.menu-toggle__icon::before { top:-.42rem; }
.menu-toggle__icon::after { top:.42rem; }

.menu-toggle[aria-expanded="true"] .menu-toggle__icon { background:transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::before { transform:translateY(.42rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::after { transform:translateY(-.42rem) rotate(-45deg); }

.site-nav {
  margin-left:48px;
}

.primary-nav {
  display:flex;
  align-items:center;
  gap:30px;
  margin:0;
  padding:0;
  list-style:none;
}

.primary-nav li {
  position:relative;
}

.primary-nav .nav-contact-link {
  display:none;
}

.primary-nav>li>a,.primary-nav>li>.nav-dropdown {
  display:flex;
  align-items:center;
  gap:8px;
  height:86px;
  padding:0;
  border:0;
  color:#1f2937;
  background:none;
  font-size:18px;
  white-space:nowrap;
}

.nav-dropdown img {
  width:12px;
  height:12px;
  transition:transform .2s ease;
}

.product-submenu {
  position:absolute;
  z-index:20;
  top:calc(100% - 1px);
  left:50%;
  width:max-content;
  min-width:280px;
  margin:0;
  padding:10px;
  border:1px solid #e3ebf6;
  border-radius:12px;
  visibility:hidden;
  opacity:0;
  background:#fff;
  box-shadow:0 14px 36px rgba(31,41,55,.16);
  list-style:none;
  pointer-events:none;
  transform:translate(-50%,-8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
}

.product-submenu a {
  display:flex;
  align-items:center;
  min-height:44px;
  padding:10px 24px;
  border-radius:8px;
  color:#303e65;
  font-size:15px;
  line-height:1.5;
  white-space:nowrap;
  transition:color .2s ease,background-color .2s ease;
}

.product-submenu a:hover,.product-submenu a:focus-visible {
  color:var(--brand);
  background:#f2f7ff;
  outline:none;
}

.product-submenu a[aria-current="page"] {
  color:var(--brand);
  background:#edf5ff;
  font-weight:700;
}

.nav-item--products.is-submenu-open>.product-submenu {
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}

.nav-item--products.is-submenu-open>.nav-dropdown img {
  transform:rotate(180deg);
}

@media(hover:hover) and (min-width:1181px) {
  .nav-item--products:hover>.product-submenu {
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translate(-50%,0);
  }

  .nav-item--products:hover>.nav-dropdown img {
    transform:rotate(180deg);
  }
}

.primary-nav .is-active>.nav-dropdown,.primary-nav .is-active>a {
  color:var(--brand);
  font-weight:700;
}

.primary-nav .is-active::after {
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:4px;
  content:"";
  background:var(--brand);
}

.header-actions {
  display:flex;
  align-items:center;
  margin-left:auto;
}

.search-button {
  width:25px;
  height:25px;
  margin-right:44px;
  padding:0;
  border:0;
  background:none;
}

.search-button img {
  width:25px;
  height:25px;
}

.contact-button {
  padding:8px 20px;
  border-radius:32px;
  color:#fff;
  background:var(--brand);
  font-size:16px;
}

.site-footer {
  color:#fff;
  background:#3b4660;
}

.site-footer__inner {
  display:grid;
  grid-template-columns:272px minmax(0,1fr);
  gap:50px;
  padding:50px 0 34px;
}

.footer-brand__logo {
  width:118px;
  height:41px;
  object-fit:contain;
}

.footer-brand__qr-row {
  display:flex;
  align-items:center;
  gap:17px;
  margin-top:37px;
}

.footer-brand__qr {
  width:113px;
  height:113px;
  border-radius:6px;
}

.footer-brand p {
  margin:0;
  font-size:16px;
  line-height:28px;
}

.footer-brand__social-title {
  margin-top:40px!important;
}

.footer-social {
  display:flex;
  gap:16px;
  margin:18px 0 0;
  padding:0;
  list-style:none;
}

.footer-social > li {
  position:relative;
}

.footer-social a,.footer-social img {
  position:relative;
  display:block;
  width:33px;
  height:33px;
  object-fit:contain;
}

.footer-social__composite img:last-child {
  display:none;
}

.footer-social__qr {
  position:absolute;
  z-index:20;
  bottom:calc(100% + 1rem);
  left:50%;
  width:min(9rem,calc(100vw - 2.75rem));
  padding:.625rem;
  overflow:visible;
  color:#172442;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(22,108,233,.14);
  border-radius:.75rem;
  box-shadow:0 1.125rem 3rem rgba(8,29,65,.24);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,.625rem) scale(.96);
  transform-origin:50% 100%;
  transition:
    opacity .22s ease,
    visibility .22s ease,
    transform .28s cubic-bezier(.22,1,.36,1);
}

.footer-social__qr::after {
  position:absolute;
  bottom:-.375rem;
  left:50%;
  width:.75rem;
  height:.75rem;
  background:#fff;
  border-right:1px solid rgba(22,108,233,.14);
  border-bottom:1px solid rgba(22,108,233,.14);
  content:"";
  transform:translateX(-50%) rotate(45deg);
}

.footer-social__qr-title {
  display:block;
  padding:0 .25rem .5rem;
  font-size:.875rem;
  line-height:1.25rem;
  font-weight:600;
  text-align:center;
}

.footer-social .footer-social__qr img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1;
  max-height:none;
  border-radius:.375rem;
  object-fit:contain;
  background:#fff;
}

.footer-social > li:is(:hover,.is-qr-open) .footer-social__qr {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0) scale(1);
}

.footer-social > li:first-child .footer-social__qr {
  left:0;
  transform:translate(0,.625rem) scale(.96);
  transform-origin:1rem 100%;
}

.footer-social > li:first-child:is(:hover,.is-qr-open) .footer-social__qr {
  transform:translate(0,0) scale(1);
}

.footer-social > li:first-child .footer-social__qr::after {
  left:1rem;
}

.footer-social > li:last-child .footer-social__qr {
  right:0;
  left:auto;
  transform:translate(0,.625rem) scale(.96);
  transform-origin:calc(100% - 1rem) 100%;
}

.footer-social > li:last-child:is(:hover,.is-qr-open) .footer-social__qr {
  transform:translate(0,0) scale(1);
}

.footer-social > li:last-child .footer-social__qr::after {
  right:.625rem;
  left:auto;
}

.footer-nav {
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:30px;
}

.footer-nav h2,.footer-contact h2 {
  margin:0 0 26px;
  font-size:20px;
}

.footer-nav ul {
  display:grid;
  gap:4px;
  margin:0;
  padding:0;
  list-style:none;
}

.footer-nav a,.footer-contact dt,.footer-contact dd,.footer-contact a {
  color:#ddd;
  font-size:15px;
  line-height:28px;
}

.footer-nav__disabled {
  display:inline-block;
  color:#aeb6c6;
  font-size:15px;
  line-height:28px;
  cursor:default;
}

.footer-contact {
  grid-column:2;
  margin-top:-92px;
  margin-left:auto;
  font-style:normal;
}

.footer-contact dl,.footer-contact dd {
  margin:0;
}

.footer-contact dl {
  display:grid;
  gap:14px;
}

.footer-legal {
  grid-column:1/-1;
  text-align:center;
  font-size:14px;
  line-height:26px;
}

@media(max-width:1180px) {
  .site-header__inner {
    justify-content:space-between;
  }

  .menu-toggle {
    display:grid;
    order:3;
    flex:0 0 auto;
    width:2.75rem;
    height:2.75rem;
    margin-left:12px;
    padding:0;
    border:1px solid #dbe7fa;
    border-radius:50%;
    color:#23385c;
    background:#fff;
    place-items:center;
  }

  .site-nav {
    position:absolute;
    top:74px;
    right:24px;
    display:none;
    width:min(360px,calc(100vw - 48px));
    margin:0;
    padding:18px;
    border-radius:16px;
    background:#fff;
    box-shadow:0 16px 40px rgba(31,41,55,.16);
  }

  .site-nav.is-open {
    display:block;
  }

  .primary-nav {
    align-items:stretch;
    flex-direction:column;
    gap:6px;
  }

  .primary-nav .nav-contact-link {
    display:block;
  }

  .primary-nav>li>a,.primary-nav>li>.nav-dropdown {
    width:100%;
    height:auto;
    justify-content:space-between;
    padding:10px 4px;
  }

  .product-submenu {
    position:static;
    z-index:1;
    width:100%;
    min-width:0;
    max-height:0;
    overflow:hidden;
    margin:0;
    padding:0 0 0 18px;
    border:0;
    border-radius:0;
    visibility:visible;
    opacity:1;
    box-shadow:none;
    pointer-events:none;
    transform:none;
    transition:max-height .25s ease,padding .25s ease;
  }

  .nav-item--products.is-submenu-open>.product-submenu {
    max-height:min(60vh,480px);
    overflow-y:auto;
    padding-top:4px;
    padding-bottom:6px;
    pointer-events:auto;
    transform:none;
  }

  .product-submenu a {
    position:relative;
    z-index:1;
    width:100%;
    min-height:44px;
    padding:8px 16px;
    font-size:14px;
    touch-action:manipulation;
  }

  .primary-nav .is-active::after {
    display:none;
  }

  .header-actions {
    order:2;
    margin-left:auto;
  }

  .search-button {
    margin-right:16px;
  }

  .site-footer__inner {
    grid-template-columns:1fr;
  }

  .footer-contact {
    grid-column:1;
    margin:0;
  }

  .footer-legal {
    grid-column:1;
  }

}

@media(max-width:760px) {
  :root {
    --container:calc(100% - 32px);
  }

  .contact-button {
    display:none;
  }

  .search-button {
    margin-right:0;
  }

  .section-heading {
    margin-bottom:2rem;
  }

  .section-heading h2 {
    gap:.75rem;
  }

  .section-heading h2::before,.section-heading h2::after {
    width:3rem;
  }

  .footer-nav {
    grid-template-columns:1fr 1fr;
  }

  .site-footer__inner {
    padding-top:44px;
  }

}

@media(max-width:420px) {
  .footer-nav {
    grid-template-columns:1fr;
  }

}

.section-heading p {
  margin-top:.35rem;
  line-height:1.2;
}

/* Figma section/footer — node 2:3255 */
.site-footer__inner {
  display:grid;
  grid-template-columns:14.625rem 52.5rem 16.75rem;
  grid-template-rows:19.1875rem auto;
  gap:2.25rem 6.375rem;
  padding:3.375rem 0;
}

.product-page .site-footer__inner {
  width:min(calc(100% - 4rem),96.625rem);
  max-width:none;
  margin-right:auto;
  margin-left:auto;
  justify-content:center;
}

.footer-brand {
  position:relative;
  width:14.625rem;
  height:19.1875rem;
}

.footer-brand__logo {
  position:absolute;
  top:0;
  left:0;
  width:7.375rem;
  height:2.5625rem;
}

.footer-brand__qr-row {
  position:absolute;
  top:4.875rem;
  left:.125rem;
  display:flex;
  align-items:center;
  gap:1.0625rem;
  margin:0;
}

.footer-brand__qr {
  width:7.0625rem;
  height:7.0625rem;
}

.footer-brand__qr-row p {
  width:8.75rem;
  font-size:1rem;
  line-height:1.75rem;
}

.footer-brand__social-title {
  position:absolute;
  top:14.75rem;
  left:0;
  margin:0!important;
  font-size:1rem;
  line-height:1.25rem;
}

.footer-social {
  position:absolute;
  top:17.125rem;
  left:0;
  display:flex;
  gap:1rem;
  margin:0;
}

.footer-nav {
  display:grid;
  grid-template-columns:10.5rem 12rem 7.5rem 7rem;
  column-gap:5rem;
}

.footer-nav__group--about a {
  white-space:nowrap;
}

.footer-nav h2,.footer-contact h2 {
  margin:0 0 2.25rem;
  color:#fff;
  font-size:1.25rem;
  line-height:1.75rem;
  font-weight:700;
}

.footer-nav ul {
  display:grid;
  gap:.25rem;
}

.footer-nav a,.footer-contact dt,.footer-contact dd,.footer-contact a {
  font-size:1rem;
  line-height:1.75rem;
}

.footer-contact {
  grid-column:3;
  grid-row:1;
  margin:0;
  font-style:normal;
}

.footer-contact dl {
  display:grid;
  gap:1.375rem;
  margin:0;
}

.footer-contact dl>div {
  display:grid;
  gap:0;
}

.footer-contact dt,.footer-contact dd {
  letter-spacing:.06rem;
}

.footer-contact dl>div:last-child dd {
  width:20.375rem;
  white-space:nowrap;
}

.footer-legal {
  grid-column:1/-1;
  grid-row:2;
  justify-self:center;
  width:44rem;
  color:#fff;
  font-size:1rem;
  line-height:1.75rem;
  text-align:center;
}

@media(max-width:1800px) {

  .site-footer__inner {
    grid-template-columns:14.625rem minmax(0,1fr) 16.75rem;
    column-gap:2.5rem;
  }

  .footer-nav {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:2.5rem;
  }

  .footer-contact {
    min-width:0;
  }

  .footer-contact dl>div:last-child dd {
    width:auto;
    white-space:normal;
  }

}

@media(max-width:1180px) {

  .site-footer__inner {
    grid-template-columns:14.625rem minmax(0,1fr);
    grid-template-rows:auto auto auto;
    gap:2.5rem 3rem;
  }

  .footer-brand {
    grid-row:1/3;
  }

  .footer-nav {
    grid-column:2;
    grid-row:1;
    grid-template-columns:repeat(2,minmax(8rem,1fr));
    gap:2rem;
  }

  .footer-contact {
    grid-column:2;
    grid-row:2;
  }

  .footer-legal {
    grid-row:3;
  }

}

@media(max-width:760px) {

  .section-heading h2 {
    gap:.75rem;
    font-size:1.8rem;
    line-height:1.4;
  }

  .section-heading p {
    font-size:1rem;
  }

  .site-footer__inner {
    grid-template-columns:1fr;
    grid-template-rows:auto;
    padding:3rem 0;
  }

  .product-page .site-footer__inner {
    width:calc(100% - 2rem);
  }

  .footer-brand,.footer-nav,.footer-contact,.footer-legal {
    grid-column:1;
    grid-row:auto;
  }

  .footer-brand {
    grid-row:auto;
  }

  .footer-nav {
    grid-template-columns:1fr 1fr;
  }

  .footer-contact dl>div:last-child dd {
    width:auto;
    white-space:normal;
  }

  .footer-legal {
    width:auto;
  }

}

@media(max-width:420px) {

  .footer-nav {
    grid-template-columns:1fr;
  }

}

.floating-contact {
  position:fixed;
  z-index:90;
  top:50%;
  right:0;
  display:flex;
  align-items:center;
  font-family:"Microsoft YaHei","微软雅黑",Arial,sans-serif;
  transform:translateY(-50%);
}

.floating-contact button,
.floating-contact a {
  font-family:"Microsoft YaHei","微软雅黑",Arial,sans-serif;
}

.floating-contact__trigger {
  display:flex;
  width:58px;
  min-height:154px;
  padding:18px 11px;
  border:0;
  border-radius:16px 0 0 16px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:12px;
  color:#fff;
  background:linear-gradient(155deg,#0878ff 0%,#0059e8 62%,#0047c6 100%);
  box-shadow:0 12px 32px rgba(0,86,214,.28);
  cursor:pointer;
  transition:transform .24s ease,box-shadow .24s ease,background-color .24s ease;
  touch-action:manipulation;
}

.floating-contact__trigger:hover,
.floating-contact__trigger:focus-visible {
  outline:none;
  box-shadow:0 16px 38px rgba(0,86,214,.38);
  transform:translateX(-4px);
}

.floating-contact__icon {
  display:block;
  width:32px;
  height:32px;
  object-fit:contain;
}

.floating-contact__label {
  font-size:15px;
  line-height:1;
  font-weight:700;
  letter-spacing:4px;
  writing-mode:vertical-rl;
}

.floating-contact__panel {
  position:absolute;
  top:50%;
  right:72px;
  width:310px;
  max-height:calc(100vh - 2rem);
  padding:24px;
  border:1px solid rgba(0,103,250,.12);
  border-radius:18px;
  overflow-y:auto;
  visibility:hidden;
  opacity:0;
  background:rgba(255,255,255,.98);
  box-shadow:0 20px 60px rgba(18,55,106,.2);
  pointer-events:none;
  transform:translate(14px,-50%) scale(.96);
  transform-origin:right center;
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
}

.floating-contact.is-open .floating-contact__panel {
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transform:translate(0,-50%) scale(1);
}

.floating-contact__heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:#1f2937;
  font-size:20px;
  line-height:1.4;
  font-weight:700;
}

.floating-contact__close {
  display:grid;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  border-radius:50%;
  place-items:center;
  color:#687386;
  background:#f1f5fb;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

.floating-contact__close:hover,
.floating-contact__close:focus-visible {
  color:#0059e8;
  background:#e9f2ff;
  outline:none;
}

.floating-contact__panel>p {
  margin:8px 0 18px;
  color:#7b8494;
  font-size:14px;
  line-height:1.7;
}

.floating-contact__item {
  display:flex;
  min-height:68px;
  margin-top:10px;
  padding:12px 14px;
  border:1px solid #e8eef7;
  border-radius:12px;
  justify-content:center;
  flex-direction:column;
  color:#303e65;
  background:#f8fbff;
  transition:border-color .2s ease,background-color .2s ease,transform .2s ease;
}

.floating-contact__item:hover,
.floating-contact__item:focus-visible {
  border-color:#b8d7ff;
  background:#f1f7ff;
  outline:none;
  transform:translateY(-2px);
}

.floating-contact__item span {
  color:#7b8494;
  font-size:12px;
  line-height:1.5;
}

.floating-contact__item strong {
  margin-top:2px;
  font-size:16px;
  line-height:1.5;
}

.floating-contact__wechat {
  display:flex;
  align-items:center;
  gap:.875rem;
  margin-top:.75rem;
  padding:.75rem;
  border:1px solid #e1eaf5;
  border-radius:.75rem;
  background:linear-gradient(135deg,#f3f9ff,#fff);
}

.floating-contact__wechat img {
  display:block;
  width:5.75rem;
  height:5.75rem;
  flex:0 0 auto;
  border-radius:.5rem;
  object-fit:contain;
  background:#fff;
}

.floating-contact__wechat span,
.floating-contact__wechat strong,
.floating-contact__wechat small {
  display:block;
}

.floating-contact__wechat strong {
  color:#263550;
  font-size:.9375rem;
  line-height:1.5;
}

.floating-contact__wechat small {
  margin-top:.25rem;
  color:#7b8494;
  font-size:.75rem;
  line-height:1.55;
}

.floating-contact__action {
  display:flex;
  min-height:44px;
  margin-top:16px;
  border-radius:10px;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:#0067fa;
  font-size:15px;
  line-height:1.5;
  font-weight:700;
  transition:background-color .2s ease,transform .2s ease;
}

.floating-contact__action:hover,
.floating-contact__action:focus-visible {
  color:#fff;
  background:#0058dc;
  outline:none;
  transform:translateY(-1px);
}

.floating-contact__backtop {
  position:absolute;
  top:calc(100% + .625rem);
  right:0;
  display:flex;
  width:58px;
  height:58px;
  padding:0;
  border:1px solid rgba(0,103,250,.16);
  border-radius:16px 0 0 16px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:#075fd1;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 28px rgba(13,68,147,.18);
  opacity:0;
  visibility:hidden;
  cursor:pointer;
  pointer-events:none;
  transform:translateX(10px);
  transition:opacity .2s ease,visibility .2s ease,transform .24s ease,background-color .2s ease;
}

.floating-contact__backtop>span {
  font-size:1.4rem;
  line-height:1;
  font-weight:600;
}

.floating-contact__backtop small {
  margin-top:.2rem;
  font-size:.6875rem;
  line-height:1;
}

.floating-contact.is-backtop-visible:not(.is-open) .floating-contact__backtop {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(0);
}

.floating-contact__backtop:hover,
.floating-contact__backtop:focus-visible {
  color:#fff;
  background:#075fd1;
  outline:none;
}

@media(max-width:760px) {

  .floating-contact {
    top:auto;
    right:16px;
    bottom:max(18px,env(safe-area-inset-bottom));
    transform:none;
  }

  .floating-contact__trigger {
    width:54px;
    min-height:54px;
    padding:0;
    border-radius:50%;
  }

  .floating-contact__trigger:hover,
  .floating-contact__trigger:focus-visible {
    transform:none;
  }

  .floating-contact__icon {
    width:30px;
    height:30px;
  }

  .floating-contact__label {
    position:absolute;
    overflow:hidden;
    width:1px;
    height:1px;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
  }

  .floating-contact__panel {
    top:auto;
    right:0;
    bottom:66px;
    width:min(310px,calc(100vw - 32px));
    transform:translateY(12px) scale(.96);
    transform-origin:right bottom;
  }

  .floating-contact.is-open .floating-contact__panel {
    transform:translateY(0) scale(1);
  }

  .floating-contact__wechat img {
    width:5.25rem;
    height:5.25rem;
  }

  .floating-contact__backtop {
    top:auto;
    right:0;
    bottom:calc(100% + .625rem);
    width:48px;
    height:48px;
    border-radius:50%;
    transform:translateY(10px);
  }

  .floating-contact.is-backtop-visible:not(.is-open) .floating-contact__backtop {
    transform:translateY(0);
  }

  .floating-contact__backtop small {
    position:absolute;
    overflow:hidden;
    width:1px;
    height:1px;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
  }

}

@media(prefers-reduced-motion:reduce) {

  .footer-social__qr,
  .floating-contact__trigger,
  .floating-contact__panel,
  .floating-contact__item,
  .floating-contact__action,
  .floating-contact__backtop {
    transition:none;
  }

}

.footer-nav a,.footer-contact a,.footer-legal a{transition:color .2s ease}
.footer-nav a:hover,.footer-nav a:focus-visible,.footer-contact a:hover,.footer-contact a:focus-visible,.footer-legal a:hover,.footer-legal a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:.2em}
.footer-legal a{color:inherit}

@media(max-width:420px){
  .site-footer__inner>*{min-width:0}
  .footer-brand,.footer-nav,.footer-contact,.footer-legal{width:100%;min-width:0}
  .footer-brand__qr-row{width:100%;gap:.75rem}
  .footer-brand__qr{width:min(7.0625rem,42vw);height:auto}
  .footer-brand__qr-row p{width:auto;min-width:0;flex:1}
  .footer-contact a{overflow-wrap:anywhere}
}

/* 2026-08-03 shared header/footer rhythm and theme */
.primary-nav .is-active>.nav-dropdown,
.primary-nav .is-active>a {
  color:var(--accent);
}

.primary-nav .is-active::after {
  background:var(--accent);
}

.contact-button {
  background:var(--accent);
  box-shadow:0 4px 14px rgba(0,103,250,.18);
}

.contact-button:hover,
.contact-button:focus-visible {
  color:#fff;
  background:#0067fa;
  box-shadow:0 8px 22px rgba(0,103,250,.24);
  outline:none;
}

.footer-nav,
.footer-nav__group,
.footer-contact {
  align-self:start;
}

.footer-nav h2,
.footer-contact h2 {
  margin:0 0 1.75rem;
  line-height:1.75rem;
}

.footer-nav ul {
  grid-auto-rows:minmax(1.75rem,auto);
  gap:.375rem;
}

.footer-nav li {
  display:flex;
  min-height:1.75rem;
  align-items:flex-start;
}

.footer-nav a,
.footer-nav__disabled,
.footer-contact dt,
.footer-contact dd,
.footer-contact a {
  line-height:1.75rem;
  letter-spacing:.025rem;
}

.footer-contact dl {
  gap:.75rem;
}

.footer-contact dl>div {
  gap:.125rem;
}

@media(max-width:760px) {
  .footer-nav h2,
  .footer-contact h2 {
    margin-bottom:1.25rem;
  }
}

/* 2026-08-04 shared footer column rhythm */
@media(min-width:1801px) {
  .site-footer__inner {
    grid-template-columns:14.625rem 56.5rem 16.75rem;
    column-gap:4.375rem;
  }

  .footer-nav {
    grid-template-columns:15rem 10rem 9rem 7rem;
    justify-content:space-between;
    column-gap:0;
  }
}

@media(min-width:1181px) and (max-width:1800px) {
  .footer-nav {
    grid-template-columns:minmax(15rem,1.6fr) repeat(3,minmax(7rem,1fr));
    column-gap:clamp(1.5rem,2vw,2.5rem);
  }
}

@media(min-width:761px) {
  .footer-nav__group--products a,
  .footer-nav__group--products .footer-nav__disabled {
    white-space:nowrap;
  }
}
