/* sfpro — 沙漠风金棕站 */
:root {
  --sf-gold: #d9b475;
  --sf-gold-soft: #f8ebd6;
  --sf-orange: #ff3c00;
  --sf-warm: #ffa05d;
  --sf-brown: #7f5129;
  --sf-cream: #fffcf5;
  --sf-text: #2a2829;
  --sf-muted: #535353;
  --sf-line: #eeebe5;
  --sf-dark: #151515;
  --sf-header-h: 80px;
  --sf-wrap: 1280px;
  --sf-font: 'Manrope', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --sf-num: 'Bronova', 'BronovaBold', 'Manrope', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.sf-body {
  margin: 0;
  font-family: var(--sf-font);
  color: var(--sf-text);
  background: #fff;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  position: relative;
}
img { max-width: 100%; height: auto; border: 0; vertical-align: middle; }
a { color: inherit; text-decoration: none; transition: color .25s ease, opacity .25s ease; }
button, input, textarea { font: inherit; }
.sf-wrap { width: min(100% - 40px, var(--sf-wrap)); margin: 0 auto; }
.sf-main { min-height: 50vh; }
.sf-num { font-family: var(--sf-num); }

/* ---------- Header ---------- */
.sf-header {
  --sf-nav-fg: #fff;
  --sf-nav-muted: rgba(255, 255, 255, .72);
  --sf-nav-line: rgba(255, 255, 255, .28);
  --sf-cta-border: #fff;
  --sf-cta-fg: #fff;
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  height: var(--sf-header-h);
  transition: background .35s ease, box-shadow .35s ease, color .35s ease;
  color: var(--sf-nav-fg);
}
.sf-header.is-solid,
.sf-header.is-inner {
  --sf-nav-fg: #000;
  --sf-nav-muted: rgba(0, 0, 0, .62);
  --sf-nav-line: rgba(0, 0, 0, .2);
  --sf-cta-border: #000;
  --sf-cta-fg: #000;
  background: #f7f6f3;
  color: var(--sf-nav-fg);
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}
.sf-header-inner {
  height: var(--sf-header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.sf-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 1;
  min-width: 0;
  max-width: 42%;
  color: var(--sf-nav-fg);
}
.sf-logo img { height: 55px; width: auto; display: none; flex-shrink: 0; }
.sf-logo .logo-white { display: block; }
.sf-header.is-solid .sf-logo .logo-white,
.sf-header.is-inner .sf-logo .logo-white { display: none; }
.sf-header.is-solid .sf-logo .logo-black,
.sf-header.is-inner .sf-logo .logo-black { display: block; }
.sf-logo .logo-site { display: block !important; height: 55px; }
.sf-brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  min-width: 0;
  line-height: 1.25;
  padding-left: 14px;
  margin-left: 2px;
  border-left: 1px solid var(--sf-nav-line);
  color: var(--sf-nav-fg);
}
.sf-brand-name {
  font-size: 15px;
  font-weight: 600;
  font-style: normal;
  letter-spacing: .02em;
  color: var(--sf-nav-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sf-brand-slogan {
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  color: var(--sf-nav-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sf-area-tag {
  font-size: 12px;
  font-style: normal;
  padding: 2px 8px;
  border: 1px solid currentColor;
  border-radius: 2px;
  color: var(--sf-nav-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.sf-header-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.sf-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 2px;
  min-width: 0;
}
.sf-nav-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 37px;
  padding: 0 15px;
  font-size: 16px;
  font-weight: 600;
  line-height: 37px;
  white-space: nowrap;
  border-radius: 37px;
  color: var(--sf-nav-fg);
  transition: color .25s ease, background-color .25s ease;
}
/* 对齐原站 headerNew .nav .list:hover span a — 米白胶囊底，非金色下划线 */
.sf-nav-item:hover {
  background-color: #f7f4e9;
  color: #626057;
}
.sf-nav-item.is-active {
  background-color: #f7f4e9;
  color: #000;
}
/* 咨询：描边按钮（对齐原站 headerNew .consultation span） */
.sf-demand {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 75px;
  height: 37px;
  padding: 0;
  margin-left: 18px;
  border: 2px solid var(--sf-cta-border);
  border-radius: 37px;
  background: transparent;
  color: var(--sf-cta-fg) !important;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  transition: color .25s ease, background-color .25s ease, border-color .25s ease;
}
.sf-demand:hover {
  border-color: #ff0000;
  background-color: #ff0000;
  color: #fff !important;
}
/* 实心底栏：原站 headerNewDown/Transp 仅补白字，红底仍来自上方 hover */
.sf-header.is-solid .sf-demand:hover,
.sf-header.is-inner .sf-demand:hover {
  color: #fff !important;
}
.sf-nav-toggle {
  display: none;
  width: 40px; height: 40px;
  border: 0; background: transparent;
  padding: 10px; cursor: pointer;
}
.sf-nav-toggle span {
  display: block; height: 2px; margin: 5px 0;
  background: currentColor; transition: .25s;
}
.sf-drawer {
  display: none;
  position: fixed;
  inset: var(--sf-header-h) 0 0 0;
  background: #fff;
  color: var(--sf-text);
  z-index: 999;
  padding: 24px 20px 40px;
  overflow: auto;
}
.sf-drawer.is-open { display: block; }
.sf-drawer a {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid var(--sf-line);
  font-size: 16px;
  font-weight: 500;
}
.sf-drawer-contact {
  margin-top: 28px;
  padding: 20px;
  background: var(--sf-cream);
  border-radius: 4px;
}
.sf-drawer-contact img { width: 120px; height: 120px; object-fit: cover; margin: 12px 0; }
.sf-drawer-contact .tel {
  font-family: var(--sf-num);
  font-size: 22px;
  color: var(--sf-brown);
}

/* ---------- Footer ---------- */
/* ---------- Footer 2025 (align szweb footer2025Main) ---------- */
.footer2025Main {
  padding: 30px 0 0;
  background-image: url('./img/footer/footer2025_01.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  color: #000;
}
.footer2025Main .indexContainer {
  max-width: 1560px;
  margin: 0 auto;
  width: 100%;
  padding: 0 20px;
}
.footer2025 { padding-bottom: 20px; }
.footer2025 .footer2025Text .title {
  font-size: 22px;
  line-height: 1;
  color: #353535;
  font-weight: 400;
}
.footer2025 .footer2025Text .desc {
  font-size: 14px;
  margin-top: 10px;
  color: #000;
  line-height: 1.5;
  font-weight: 400;
}
.footer2025 .footer2025Text .btn {
  display: flex;
  padding-top: 15px;
}
.footer2025 .footer2025Text .btn a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  overflow: hidden;
  position: relative;
  padding: 0 8px 0 18px;
  min-width: 120px;
  width: auto;
  height: 35px;
  border-radius: 50px;
  background-color: #2d2d2d;
  transition: background-color .35s ease;
}
.footer2025 .footer2025Text .btn a span {
  font-size: 12px;
  color: #fff;
  position: relative;
  z-index: 2;
  white-space: nowrap;
}
.footer2025 .footer2025Text .btn a i {
  width: 26px;
  height: 26px;
  border-radius: 100%;
  position: relative;
  z-index: 2;
  background-color: #fff;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  transition: background-color .35s ease;
}
.footer2025 .footer2025Text .btn a i::before {
  content: '';
  position: relative;
  z-index: 2;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid #000;
  border-right: 1.5px solid #000;
  transform: rotate(45deg);
  left: 0;
  transition: left .35s ease, border-color .35s ease;
}
.footer2025 .footer2025Text .btn a:hover {
  background-color: #ff3c00;
}
.footer2025 .footer2025Text .btn a:hover span { color: #fff; }
.footer2025 .footer2025Text .btn a:hover i { background-color: #fff; }
.footer2025 .footer2025Text .btn a:hover i::before {
  left: -2px;
  border-color: #ff3c00;
}

.footer2025Class {
  width: 100%;
  padding-top: 30px;
}
.footer2025Class .list {
  padding-bottom: 0;
  border-bottom: 1px solid #e8e4d9;
  position: relative;
}
.footer2025Class .list h2 {
  margin: 0;
  height: 40px;
  display: flex;
  align-items: center;
  font-weight: 400;
}
.footer2025Class .list h2 a,
.footer2025Class .list h2 span {
  font-size: 15px;
  color: #000;
}
.footer2025Class .list h2 a:hover { color: #ff0000; }
.footer2025Class .list > i {
  position: absolute;
  right: 0;
  top: 0;
  width: 30%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  cursor: pointer;
}
.footer2025Class .list > i::before,
.footer2025Class .list > i::after {
  content: '';
  position: absolute;
  right: 4px;
  top: 50%;
  background: #cfcfcf;
  transform: translateY(-50%);
}
.footer2025Class .list > i::before { width: 12px; height: 2px; }
.footer2025Class .list > i::after { width: 2px; height: 12px; right: 9px; }
.footer2025Class .list.is-open > i::after { display: none; }
.footer2025Class .list ul {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0 0 10px;
}
.footer2025Class .list ul li a,
.footer2025Class .list .more a {
  display: block;
  font-size: 13px;
  line-height: 28px;
  color: rgba(0, 0, 0, .7);
}
.footer2025Class .list ul li a:hover,
.footer2025Class .list .more a:hover { color: #ff0000; }
.footer2025Class .list .more { display: none; padding-bottom: 10px; }
.footer2025Class .list.is-open ul,
.footer2025Class .list.is-open .more { display: block; }

.footer2025ShareBox { padding: 40px 0 0; }
.footer2025ShareBox > .title {
  font-size: 18px;
  color: #000;
  font-weight: 400;
}
.footer2025ShareBox .footer2025Share {
  display: flex;
  padding-top: 15px;
}
.footer2025ShareBox .footer2025Share a {
  width: 46px;
  height: 29px;
  border-radius: 18px;
  font-size: 13px;
  margin-right: 10px;
  color: #fff;
  background-color: #2d2d2d;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color .35s ease;
}
.footer2025ShareBox .footer2025Share a:last-child { margin-right: 0; }
.footer2025ShareBox .footer2025Share a:hover { background-color: #ff0000; }
.footer2025ShareBox .footer2025Share a p {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  margin: 0;
  padding: 0;
  background-color: #fff;
  border-radius: 8px;
  bottom: calc(100% + 20px);
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, .15));
  transition: all .6s;
  opacity: 0;
  pointer-events: none;
  z-index: -1;
}
.footer2025ShareBox .footer2025Share a p img {
  width: 100%;
  display: block;
  border-radius: 8px;
}
.footer2025ShareBox .footer2025Share a p::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -5px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #fff;
}
.footer2025ShareBox .footer2025Share a:hover p {
  bottom: calc(100% + 10px);
  opacity: 1;
  z-index: 1;
  pointer-events: all;
}
.footer2025ShareBox .footTelTitle {
  padding-top: 20px;
  font-size: 16px;
  color: #000;
  font-weight: 400;
}
.footer2025ShareBox .footTel {
  display: block;
  font-size: 24px;
  padding-top: 5px;
  color: #000;
  font-family: 'Manrope', var(--sf-font);
  font-weight: 400;
  line-height: 1.2;
}

.foot2025 {
  padding: 25px 0 80px;
  font-size: 12px;
  line-height: 20px;
  border-top: 1px solid #f1ede6;
  text-align: center;
}
.foot2025 .commonweb {
  width: 100%;
  max-width: 1560px;
  margin: 0 auto;
  padding: 0 20px;
}
.foot2025 p {
  margin: 0;
  color: rgba(0, 0, 0, .7);
}
.foot2025 a { color: rgba(0, 0, 0, .7); }
.foot2025 a:hover { color: #000; }
.foot2025 .police {
  width: 14px;
  height: 14px;
  vertical-align: -2px;
  margin-right: 2px;
}
.sf-foot-quote { cursor: pointer; }

@media (min-width: 768px) {
  .footer2025Main { padding: 5.625vw 0 0; }
  .footer2025Main .indexContainer { max-width: 87.25vw; }
  .footer2025 {
    padding-bottom: 2.5vw;
    display: flex;
    justify-content: space-between;
  }
  .footer2025 .footer2025Text .title { font-size: 2.5vw; }
  .footer2025 .footer2025Text .desc { font-size: 1.125vw; margin-top: 1.25vw; }
  .footer2025 .footer2025Text .btn { padding-top: 1.563vw; }
  .footer2025 .footer2025Text .btn a {
    padding: 0 .625vw 0 1.563vw;
    min-width: 10vw;
    width: auto;
    height: 3.125vw;
    border-radius: 3.125vw;
  }
  .footer2025 .footer2025Text .btn a span { font-size: .938vw; }
  .footer2025 .footer2025Text .btn a i { width: 2.25vw; height: 2.25vw; }
  .footer2025 .footer2025Text .btn a i::before { width: .5vw; height: .5vw; }
  .footer2025 .footer2025Text .btn a:hover i::before { left: -.35vw; border-color: #ff3c00; }

  .footer2025Class {
    width: auto;
    padding-top: 0;
    display: flex;
    flex-wrap: wrap;
  }
  .footer2025Class .list {
    padding-bottom: 2.813vw;
    border: none;
    padding-right: 3.125vw;
  }
  .footer2025Class .list h2 { height: auto; }
  .footer2025Class .list h2 a,
  .footer2025Class .list h2 span { font-size: 1.125vw; }
  .footer2025Class .list > i { display: none; }
  .footer2025Class .list ul {
    display: block;
    padding-top: .938vw;
    padding-bottom: 0;
  }
  .footer2025Class .list ul li a,
  .footer2025Class .list .more a {
    font-size: .938vw;
    line-height: 1.875vw;
  }
  .footer2025Class .list .more { display: block; padding-bottom: 0; }
  .footer2025Class .list:nth-child(4n+4) { padding-right: 0; }

  .footer2025ShareBox { padding: 0; }
  .footer2025ShareBox > .title { font-size: 1.125vw; }
  .footer2025ShareBox .footer2025Share { padding-top: 1.563vw; }
  .footer2025ShareBox .footer2025Share a {
    width: 3.625vw;
    height: 2.313vw;
    border-radius: 1.125vw;
    font-size: .85vw;
    margin-right: .625vw;
  }
  .footer2025ShareBox .footer2025Share a p {
    width: 8.125vw;
    border-radius: .5vw;
    bottom: calc(100% + 1.25vw);
  }
  .footer2025ShareBox .footer2025Share a:hover p { bottom: calc(100% + .625vw); }
  .footer2025ShareBox .footTelTitle { padding-top: 1.875vw; font-size: 1.125vw; }
  .footer2025ShareBox .footTel { font-size: 2vw; padding-top: .625vw; }

  .foot2025 {
    padding: 2.813vw 0 3.75vw;
    font-size: .875vw;
    line-height: 1.5vw;
  }
  .foot2025 .commonweb { max-width: 87.25vw; }
  .foot2025 p { margin-top: .313vw; }
}

@media (min-width: 1200px) {
  .footer2025Main { padding: 4.688vw 0 0; }
  .footer2025 { padding-bottom: 2.083vw; }
  .footer2025 .footer2025Text .title { font-size: 2.083vw; }
  .footer2025 .footer2025Text .desc { font-size: .938vw; margin-top: 1.042vw; }
  .footer2025 .footer2025Text .btn { padding-top: 1.302vw; }
  .footer2025 .footer2025Text .btn a {
    padding: 0 .521vw 0 1.302vw;
    min-width: 8.333vw;
    width: auto;
    height: 2.604vw;
    border-radius: 2.604vw;
  }
  .footer2025 .footer2025Text .btn a span { font-size: .781vw; }
  .footer2025 .footer2025Text .btn a i { width: 1.875vw; height: 1.875vw; }
  .footer2025Class .list { padding-bottom: 2.344vw; padding-right: 2.125vw; }
  .footer2025Class .list h2 a,
  .footer2025Class .list h2 span { font-size: .938vw; }
  .footer2025Class .list ul { padding-top: .781vw; }
  .footer2025Class .list ul li a,
  .footer2025Class .list .more a {
    font-size: .781vw;
    line-height: 1.563vw;
  }
  .footer2025ShareBox > .title { font-size: .938vw; }
  .footer2025ShareBox .footer2025Share { padding-top: 1.302vw; }
  .footer2025ShareBox .footer2025Share a {
    width: 3.021vw;
    height: 1.927vw;
    border-radius: .938vw;
    font-size: .75vw;
    margin-right: .521vw;
  }
  .footer2025ShareBox .footTelTitle { padding-top: 1.563vw; font-size: .938vw; }
  .footer2025ShareBox .footTel { font-size: 1.667vw; padding-top: .521vw; }
  .foot2025 {
    padding: 2.344vw 0 3.125vw;
    font-size: .729vw;
    line-height: 1.25vw;
  }
}

@media (min-width: 1600px) {
  .footer2025Main { padding: 90px 0 0; }
  .footer2025Main .indexContainer,
  .foot2025 .commonweb { max-width: 1560px; }
  .footer2025 { padding-bottom: 40px; }
  .footer2025 .footer2025Text .title { font-size: 40px; }
  .footer2025 .footer2025Text .desc { font-size: 18px; margin-top: 20px; }
  .footer2025 .footer2025Text .btn { padding-top: 25px; }
  .footer2025 .footer2025Text .btn a {
    padding: 0 10px 0 25px;
    min-width: 160px;
    width: auto;
    height: 50px;
    border-radius: 50px;
  }
  .footer2025 .footer2025Text .btn a span { font-size: 15px; }
  .footer2025 .footer2025Text .btn a i { width: 36px; height: 36px; }
  .footer2025 .footer2025Text .btn a i::before { width: 8px; height: 8px; border-width: 2px; }
  .footer2025 .footer2025Text .btn a:hover i::before { left: -4px; border-color: #ff3c00; }
  .footer2025Class .list { padding-bottom: 45px; padding-right: 65px; }
  .footer2025Class .list h2 a,
  .footer2025Class .list h2 span { font-size: 18px; }
  .footer2025Class .list ul { padding-top: 15px; }
  .footer2025Class .list ul li a,
  .footer2025Class .list .more a {
    font-size: 15px;
    line-height: 30px;
  }
  .footer2025ShareBox > .title { font-size: 18px; }
  .footer2025ShareBox .footer2025Share { padding-top: 25px; }
  .footer2025ShareBox .footer2025Share a {
    width: 58px;
    height: 37px;
    border-radius: 18px;
    font-size: 14px;
    margin-right: 10px;
  }
  .footer2025ShareBox .footer2025Share a p { width: 130px; }
  .footer2025ShareBox .footTelTitle { padding-top: 30px; font-size: 18px; }
  .footer2025ShareBox .footTel { font-size: 32px; padding-top: 10px; }
  .foot2025 {
    padding: 45px 0 60px;
    font-size: 14px;
    line-height: 24px;
  }
  .foot2025 p { margin-top: 5px; }
}

/* ---------- Shared ---------- */
.sf-sec { padding: 80px 0; }
.sf-sec-head { text-align: center; margin-bottom: 40px; }
.sf-sec-head h2 {
  margin: 0 0 10px;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
  color: var(--sf-text);
}
.sf-sec-head p {
  margin: 0;
  color: var(--sf-muted);
  font-size: 15px;
}
.sf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 28px;
  background: var(--sf-gold);
  color: #fff !important;
  font-weight: 600;
  font-size: 14px;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.sf-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--sf-orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s ease;
  z-index: -1;
}
.sf-btn:hover::after { transform: scaleX(1); }
.sf-btn-line {
  background: transparent;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.85);
}
.sf-btn-line::after { background: var(--sf-gold); }
.sf-btn-block { width: 100%; }
.sf-muted { color: var(--sf-muted); }
.sf-page-banner {
  position: relative;
  min-height: 280px;
  display: flex;
  align-items: flex-end;
  padding: 120px 0 48px;
  background: #2a2118 center/cover no-repeat;
  color: #fff;
}
.sf-page-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,16,12,.35), rgba(20,16,12,.55));
}
.sf-page-banner .sf-wrap { position: relative; z-index: 1; }
.sf-page-banner h1 {
  margin: 0 0 8px;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
}
.sf-page-banner p { margin: 0; opacity: .85; }
.sf-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  margin-bottom: 16px;
  opacity: .8;
}
.sf-breadcrumb a:hover { color: var(--sf-gold); }
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
}
.pagination a, .pagination span {
  min-width: 40px; height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sf-line);
  border-radius: 50%;
  font-family: var(--sf-num);
  font-size: 13px;
}
.pagination a:hover { border-color: var(--sf-gold); color: var(--sf-gold); }
.flash {
  padding: 12px 16px;
  margin-bottom: 16px;
  border-radius: 2px;
}
.flash.ok { background: #e8f7ed; color: #1a7a3a; }
.flash.err { background: #fdecea; color: #b42318; }

/* ---------- Home Banner ---------- */
.sf-banner {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 520px;
  max-height: 1080px;
  overflow: hidden;
  background: #1a1510;
}
.sf-banner-swiper,
.sf-banner .swiper-container,
.sf-banner .swiper-wrapper,
.sf-banner .swiper-slide {
  width: 100%;
  height: 100%;
}
.sf-banner .swiper-slide {
  position: relative;
  overflow: hidden;
}
.sf-banner-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.sf-banner-media img {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}
.sf-banner-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.48) 0%, rgba(0,0,0,.22) 48%, rgba(0,0,0,.08) 100%);
}
.sf-banner-caption {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  color: #fff;
  pointer-events: none;
}
.sf-banner-caption .sf-wrap {
  width: min(100% - 40px, var(--sf-wrap));
  pointer-events: none;
}
.sf-banner-copy {
  max-width: 720px;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  pointer-events: auto;
}
.sf-banner-copy h1 {
  margin: 0;
  font-size: clamp(32px, 3.6vw, 60px);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: .02em;
  color: #fff;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.sf-banner-copy p {
  margin: 18px 0 0;
  max-width: 560px;
  font-size: clamp(14px, 1.1vw, 16px);
  line-height: 1.6;
  color: rgba(255,255,255,.88);
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease .1s, transform .7s ease .1s;
}
.sf-banner-cta {
  display: inline-flex;
  align-items: center;
  margin-top: 28px;
  height: 48px;
  padding: 0 28px;
  border-radius: 48px;
  background: rgba(0, 23, 48, .88);
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  width: fit-content;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease .2s, transform .7s ease .2s, background .3s ease;
}
.sf-banner-cta:hover { background: var(--sf-orange); }
.sf-banner .swiper-slide-active .sf-banner-copy h1,
.sf-banner .swiper-slide-active .sf-banner-copy p,
.sf-banner .swiper-slide-active .sf-banner-cta,
.sf-banner.is-fallback .sf-banner-copy h1,
.sf-banner.is-fallback .sf-banner-copy p,
.sf-banner.is-fallback .sf-banner-copy .sf-banner-cta,
.sf-banner-copy.is-active h1,
.sf-banner-copy.is-active p,
.sf-banner-copy.is-active .sf-banner-cta {
  opacity: 1;
  transform: none;
}
.sf-banner-page {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 48px;
  z-index: 5;
  pointer-events: none;
}
.sf-banner-pagination {
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: auto;
}
.sf-banner-pagination .swiper-pagination-bullet {
  width: 32px;
  height: 4px;
  margin: 0 !important;
  border-radius: 2px;
  background: rgba(255,255,255,.28);
  opacity: 1;
  overflow: hidden;
  position: relative;
  transition: background .3s ease;
}
.sf-banner-pagination .swiper-pagination-bullet::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 100%;
  background: var(--sf-gold);
}
.sf-banner-pagination .swiper-pagination-bullet-active {
  background: rgba(255,255,255,.55);
}
.sf-banner-pagination .swiper-pagination-bullet-active.is-animating::after {
  width: 100%;
  transition: width 6s linear;
}
.sf-banner .swiper-container-fade .swiper-slide,
.sf-banner .swiper-fade .swiper-slide {
  pointer-events: none;
}
.sf-banner .swiper-container-fade .swiper-slide-active,
.sf-banner .swiper-fade .swiper-slide-active {
  pointer-events: auto;
}

/* ---------- Business (fourMajorBusinessesClass) ---------- */
.sf-business { background: #f7f6f3; padding-top: 64px; padding-bottom: 72px; }
.sf-business .sf-sec-head { text-align: left; margin-bottom: 28px; }
.sf-business .sf-sec-head h2 { font-size: clamp(24px, 2.2vw, 32px); }
.sf-biz-data {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 0 0 28px;
  padding: 22px 24px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(80, 50, 20, .05);
}
.sf-biz-data-item {
  text-align: center;
  padding: 4px 8px;
}
.sf-biz-data-item strong {
  display: block;
  font-family: var(--sf-num);
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.1;
  color: var(--sf-brown);
  margin-bottom: 6px;
}
.sf-biz-data-item span {
  font-size: 13px;
  color: var(--sf-muted);
}
.sf-biz-swiper {
  overflow: hidden;
  border-radius: 16px;
  padding: 4px 2px 8px;
}
.sf-biz-swiper .swiper-slide {
  width: 320px;
  height: auto;
  margin-right: 16px;
  background: #fff;
  border-radius: 12px;
  padding: 28px 22px 30px;
  box-shadow: 0 8px 24px rgba(80, 50, 20, .06);
  position: relative;
  transition: transform .35s ease, box-shadow .35s ease;
}
.sf-biz-swiper .swiper-slide::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4px;
  background: #f3f1e8;
  opacity: 0;
  transition: opacity .35s ease, background .35s ease;
  border-radius: 0 0 12px 12px;
}
.sf-biz-swiper .swiper-slide:hover,
.sf-biz-swiper .swiper-slide-active {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(80, 50, 20, .1);
}
.sf-biz-swiper .swiper-slide:hover::after,
.sf-biz-swiper .swiper-slide-active::after { opacity: 1; }
.sf-biz-swiper .sf-biz-color1::after { background: #d9b475; }
.sf-biz-swiper .sf-biz-color2::after { background: #7f9fbf; }
.sf-biz-swiper .sf-biz-color3::after { background: #8bc06c; }
.sf-biz-box {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 280px;
}
.sf-biz-icon {
  width: 72px;
  height: 72px;
  margin-bottom: 4px;
}
.sf-biz-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.sf-biz-title {
  font-size: 20px;
  font-weight: 700;
  color: #111;
  line-height: 1.3;
  padding-top: 6px;
}
.sf-biz-desc {
  font-size: 14px;
  color: rgba(0,0,0,.72);
  line-height: 1.5;
  padding-top: 4px;
}
.sf-biz-label {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}
.sf-biz-label li { margin: 0; }
.sf-biz-label a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 30px;
  color: #222;
}
.sf-biz-label a i {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
  background: #f8ebd6;
}
.sf-biz-label a i::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 3px;
  width: 5px;
  height: 8px;
  border: solid #ffa05d;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.sf-biz-color1 .sf-biz-label a i { background: #f8ebd6; }
.sf-biz-color1 .sf-biz-label a i::after { border-color: #ffa05d; }
.sf-biz-color2 .sf-biz-label a i { background: #ecf5ff; }
.sf-biz-color2 .sf-biz-label a i::after { border-color: #7f9fbf; }
.sf-biz-color3 .sf-biz-label a i { background: #e6f2e4; }
.sf-biz-color3 .sf-biz-label a i::after { border-color: #8bc06c; }
.sf-biz-label a:hover { color: var(--sf-brown); }

/* ---------- Cases (indexCaseMain2025 / indexCase2025) ---------- */
.indexCaseMain2025 {
  width: 100%;
  overflow: hidden;
  position: relative;
  background: #fffcf5;
  padding: 90px 0 0;
}
.indexCaseMain2025 > .sf-wrap > .title {
  margin: 0;
  font-size: clamp(24px, 3.1vw, 50px);
  line-height: 1.2;
  color: #000;
  font-weight: 700;
}
.indexCaseMain2025 > .sf-wrap > .desc {
  font-size: clamp(14px, 1vw, 16px);
  padding-top: 18px;
  color: rgba(0,0,0,.8);
  line-height: 1.6;
}
.indexCase2025 {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -12px;
  padding-top: 36px;
}
.indexCase2025 .list {
  width: calc(33.333% - 24px);
  margin: 24px 12px 0;
  position: relative;
}
.indexCase2025 .list .imgBox {
  padding-top: 100%;
  overflow: hidden;
  position: relative;
  border-radius: 30px;
  background: transparent;
}
.indexCase2025 .list .imgBox img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  display: block;
  background: transparent;
}
.indexCase2025 .list .content {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  padding: 28px 24px;
  background-image: linear-gradient(to bottom, transparent, rgba(0,0,0,.6));
  border-radius: 0 0 30px 30px;
  z-index: 2;
  pointer-events: none;
}
.indexCase2025 .list .content a { pointer-events: auto; }
.indexCase2025 .list .content .listTitle {
  margin: 0;
  font-size: clamp(18px, 1.35vw, 22px);
  color: #fff;
  line-height: 1.2;
  font-weight: 700;
  transform: translateY(3px);
  transition: transform .45s ease;
}
.indexCase2025 .list .content .listTitle a { color: #fff; }
.indexCase2025 .list .content .listDesc {
  margin-top: 8px;
  overflow: hidden;
  transition: max-height .55s ease;
  font-size: 14px;
  max-height: 0;
  line-height: 24px;
  color: rgba(255,255,255,.8);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-overflow: ellipsis;
}
.indexCase2025 .list .content .label {
  padding-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.indexCase2025 .list .content .label .sf-tag {
  padding: 0 14px;
  border-radius: 27px;
  height: 27px;
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  letter-spacing: .02em;
  transition: background .35s ease, border-color .35s ease, color .35s ease, box-shadow .35s ease;
}
.indexCase2025 .list .content .label .sf-tag-product {
  color: #2a2118;
  background: linear-gradient(135deg, #f2d3bb 0%, #e8c4a0 100%);
  border: 1px solid transparent;
  font-weight: 600;
}
.indexCase2025 .list .content .label .sf-tag-consult {
  color: rgba(255,255,255,.9);
  background: transparent;
  border: 1px solid rgba(255,255,255,.75);
}
.indexCase2025 .list .content .label .sf-tag-product:hover {
  background: linear-gradient(135deg, #ffd7b0 0%, #f0b87a 100%);
  color: #1a120c;
  box-shadow: 0 4px 12px rgba(242, 211, 187, .35);
}
.indexCase2025 .list .content .label .sf-tag-consult:hover {
  background: #ff3c00;
  color: #fff;
  border-color: #ff3c00;
}
.indexCase2025 .list:hover .content .listDesc { max-height: 48px; }
.indexCase2025 .list:hover .content .listTitle { transform: none; }

/* masonry-like sizes */
@media (min-width: 861px) {
  .indexCase2025 .list .imgBox { padding-top: 560px; height: 0; }
  .indexCase2025 .list:nth-child(1) { width: calc(100% - 24px); }
  .indexCase2025 .list:nth-child(1) .imgBox { padding-top: 42%; }
  .indexCase2025 .list:nth-child(2) {
    width: calc(66.666% - 24px);
    height: 560px;
  }
  .indexCase2025 .list:nth-child(2) .imgBox {
    padding-top: 0;
    height: 100%;
  }
  .indexCase2025 .list:nth-child(3) { width: calc(33.333% - 24px); }
  .indexCase2025 .list:nth-child(3) .imgBox { padding-top: 700px; }
  .indexCase2025 .list:nth-child(4),
  .indexCase2025 .list:nth-child(5) { margin-top: -115px; }
  .indexCase2025 .list:nth-child(6) .imgBox { padding-top: 420px; }
  .indexCase2025 .list:nth-child(8) { width: calc(66.666% - 24px); }
  .indexCase2025 .list:nth-child(8) .imgBox { padding-top: 420px; }
}

.caseMore2025 {
  display: flex;
  justify-content: center;
  margin: 48px 0 70px;
  position: relative;
}
.caseMore2025::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 200%;
  height: 1px;
  background: #f4efe6;
}
.caseMore2025 a {
  width: 220px;
  height: 40px;
  border-radius: 40px;
  font-size: 14px;
  position: relative;
  background: #f4efe6;
  z-index: 1;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  color: #000;
  transition: background .35s ease, color .35s ease;
}
.caseMore2025 a i {
  display: block;
  width: 11px;
  height: 11px;
  margin-left: 10px;
  position: relative;
}
.caseMore2025 a i::after,
.caseMore2025 a i::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #000;
  transition: background .35s ease;
}
.caseMore2025 a i::after { width: 100%; height: 1px; }
.caseMore2025 a i::before { width: 1px; height: 100%; }
.caseMore2025 a:hover { background: #ff3c00; color: #fff; }
.caseMore2025 a:hover i::after,
.caseMore2025 a:hover i::before { background: #fff; }

/* list page cards — unified caseList style */
.sf-case-grid {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -16px;
  padding: 10px 0 20px;
}
.sf-case-card {
  display: block;
  width: 50%;
  padding: 0 16px 36px;
  box-sizing: border-box;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  transition: none;
}
.sf-case-card:hover { transform: none; }
.sf-case-cover {
  position: relative;
  padding-top: 86%;
  background: #eee;
  overflow: hidden;
}
.sf-case-cover img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 105%;
  height: 105%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  transition: filter .8s ease;
}
.sf-case-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .22);
  opacity: 0;
  transition: opacity .8s ease;
  z-index: 1;
}
.sf-case-cover-mask {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  transition: opacity .8s ease;
  pointer-events: none;
}
.sf-case-cover-desc {
  font-size: 14px;
  color: #fff;
  line-height: 22px;
  max-height: 44px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.sf-case-cover-more {
  margin-top: 16px;
}
.sf-case-cover-more span {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 14px;
  border-radius: 32px;
  border: 1px solid rgba(255,255,255,.85);
  color: #fff;
  font-size: 12px;
}
.sf-case-cover-more span i {
  width: 8px;
  height: 8px;
  margin-left: 8px;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
  transform: rotate(45deg);
}
.sf-case-card:hover .sf-case-cover img { filter: blur(16px); }
.sf-case-card:hover .sf-case-cover::after,
.sf-case-card:hover .sf-case-cover-mask { opacity: 1; }
.sf-case-body {
  padding: 16px 0 0;
}
.sf-case-body h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #323232;
  height: 48px;
  line-height: 24px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.sf-case-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 10px;
  min-height: 30px;
}
.sf-case-labels .sf-tag {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 14px;
  font-size: 12px;
  line-height: 1;
  border-radius: 20px;
  letter-spacing: .04em;
  position: relative;
  overflow: hidden;
  transition: background .3s ease, border-color .3s ease, color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.sf-case-labels .sf-tag-product {
  color: #fff;
  font-weight: 600;
  border: 1px solid transparent;
  background:
    linear-gradient(135deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 42%),
    linear-gradient(135deg, #c9a27a 0%, #a67c52 55%, #8b6239 100%);
  box-shadow: 0 4px 12px rgba(166, 124, 82, .28);
}
.sf-case-labels .sf-tag-product::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.28) 50%, transparent 60%);
  transform: translateX(-120%);
  transition: transform .55s ease;
  pointer-events: none;
}
.sf-case-labels .sf-tag-consult {
  color: #6b5a48;
  background: #fffaf4;
  border: 1px solid #e2d2bf;
}
.sf-case-labels .sf-tag-consult:hover,
.sf-case-card:hover .sf-case-labels .sf-tag-consult {
  color: #fff;
  background: linear-gradient(135deg, #d4a574 0%, #c08a55 100%);
  border-color: #c08a55;
  box-shadow: 0 4px 12px rgba(192, 138, 85, .3);
}
.sf-case-card:hover .sf-case-labels .sf-tag-product {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(166, 124, 82, .38);
}
.sf-case-card:hover .sf-case-labels .sf-tag-product::after {
  transform: translateX(120%);
}
.sf-sec-more { text-align: center; margin-top: 36px; }

/* ---------- Glory / achievements ---------- */
.sf-glory {
  position: relative;
  background: #1f1810 url('./img/banner/home2.jpg') center/cover no-repeat;
  color: #fff;
  overflow: hidden;
}
.sf-glory::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20, 14, 8, .72);
}
.sf-glory .sf-wrap { position: relative; z-index: 1; }
.sf-glory .sf-sec-head h2,
.sf-glory .sf-sec-head p { color: #fff; }
.sf-achieve-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  text-align: center;
}
.sf-achieve-item strong {
  display: block;
  font-family: var(--sf-num);
  font-size: clamp(32px, 4vw, 48px);
  color: var(--sf-gold);
  line-height: 1.1;
  margin-bottom: 8px;
}
.sf-achieve-item span { font-size: 14px; opacity: .85; }

/* ---------- Partners（1:1 对齐 szweb indexBrand* / indexBrandLogo2025） ---------- */
.sf-partners-main {
  background: #fff;
  overflow: hidden;
  padding-bottom: 0;
}
.indexBrandContainer {
  max-width: 1560px;
  margin: 0 auto;
  width: 100%;
  padding: 0 20px;
  box-sizing: border-box;
}
.indexBrandText2025Main { padding: 50px 0 40px; }
.indexBrandNumber .numberBox {
  font-size: 100px;
  color: #000;
  line-height: 1;
  font-family: 'Manrope', var(--sf-font);
  letter-spacing: -5px;
  font-weight: 400;
}
.indexBrandNumber .numberBox .brandNumber { font-family: inherit; }
.indexBrandNumber .desc {
  padding-top: 10px;
  font-size: 14px;
  line-height: 24px;
  max-width: 100%;
  color: #000;
  display: none;
}
.indexBrandNumber .desc br { display: none; }
.indexBrandText2025 {
  width: 100%;
  padding-top: 20px;
}
.indexBrandText2025 .title {
  margin: 0;
  font-size: 18px;
  color: #010101;
  font-weight: 400;
  line-height: 1.3;
}
.indexBrandText2025 .desc {
  padding-top: 10px;
  font-size: 14px;
  line-height: 20px;
  color: rgba(15, 15, 15, .9);
}
.indexBrandText2025 .desc br { display: none; }
.indexBrandText2025 .more {
  display: flex;
  padding-top: 15px;
}
.indexBrandText2025 .more a {
  display: inline-flex;
  align-items: center;
  border: 1px solid #000;
  padding: 0 10px 0 18px;
  border-radius: 40px;
  height: 40px;
  transition: border-color .35s ease, background-color .35s ease;
  overflow: hidden;
  position: relative;
  background-color: transparent;
}
.indexBrandText2025 .more a span {
  font-size: 13px;
  color: #000;
  position: relative;
  z-index: 10;
  transition: color .35s ease;
}
.indexBrandText2025 .more a i {
  width: 26px;
  height: 26px;
  margin-left: 10px;
  border-radius: 100%;
  position: relative;
  z-index: 10;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background-color: #000;
  transition: background-color .35s ease;
}
.indexBrandText2025 .more a i::before {
  content: '';
  position: relative;
  z-index: 10;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  left: 0;
  transition: left .35s ease, border-color .35s ease;
}
.indexBrandText2025 .more a:hover {
  border-color: #ff3c00;
  background-color: #ff3c00;
}
.indexBrandText2025 .more a:hover span { color: #fff; }
.indexBrandText2025 .more a:hover i { background-color: #fff; }
.indexBrandText2025 .more a:hover i::before {
  left: -5px;
  border-color: #ff3c00;
}

.indexCooperativeBrandTitle { padding-bottom: 15px; }
.indexCooperativeBrandTitle .title {
  margin: 0;
  font-size: 24px;
  line-height: 1;
  color: #000;
  font-weight: 400;
}

.indexBrandLogo2025 {
  overflow: hidden;
  position: relative;
  margin-top: 15px;
}
.indexBrandLogo2025 .sf-marquee-track {
  display: flex;
  width: max-content;
  animation: sf-marquee 48s linear infinite;
}
.indexBrandLogo2025.rtl { direction: rtl; }
.indexBrandLogo2025.rtl .sf-marquee-track {
  animation-direction: reverse;
  direction: ltr;
}
.indexBrandLogo2025 .sf-marquee-track:hover { animation-play-state: paused; }
.sf-partner-slide {
  flex: 0 0 auto;
  width: auto;
  padding: 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sf-partner-slide img,
.sf-partner-slide .name {
  width: 95px;
  aspect-ratio: 220 / 120;
  height: auto;
  border-radius: 30px;
  box-sizing: border-box;
  background: #f5f4f0;
}
.sf-partner-slide img {
  display: block;
  object-fit: contain;
  object-position: center;
  padding: 0;
  -webkit-filter: none;
  filter: none;
}
.sf-partner-slide .name {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: #666;
  padding: 0 8px;
  text-align: center;
  line-height: 1.3;
  overflow: hidden;
}
@keyframes sf-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* tablet+ ：对齐原站 vw 断点 */
@media (min-width: 768px) {
  .indexBrandContainer { max-width: 87.25vw; padding: 0 20px; }
  .indexBrandText2025Main {
    padding: 13.75vw 0 5vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .indexBrandNumber .numberBox {
    font-size: 13.75vw;
    letter-spacing: -.313vw;
  }
  .indexBrandNumber .desc {
    padding-top: .625vw;
    font-size: 1vw;
    line-height: 1.875vw;
    max-width: 32.813vw;
    display: block;
  }
  .indexBrandNumber .desc br { display: block; }
  .indexBrandText2025 {
    width: 49.375vw;
    padding-top: 0;
    padding-bottom: 2.5vw;
  }
  .indexBrandText2025 .title { font-size: 1.375vw; }
  .indexBrandText2025 .desc {
    padding-top: 1vw;
    font-size: 1vw;
    line-height: 1.625vw;
  }
  .indexBrandText2025 .desc br { display: block; }
  .indexBrandText2025 .more { padding-top: 2.188vw; }
  .indexBrandText2025 .more a {
    padding: 0 .625vw 0 1.563vw;
    border-radius: 3.125vw;
    height: 3.125vw;
  }
  .indexBrandText2025 .more a span { font-size: .938vw; }
  .indexBrandText2025 .more a i {
    width: 2.25vw;
    height: 2.25vw;
    margin-left: 1.25vw;
  }
  .indexBrandText2025 .more a i::before {
    width: .5vw;
    height: .5vw;
  }
  .indexCooperativeBrandTitle { padding-bottom: 1.875vw; }
  .indexCooperativeBrandTitle .title { font-size: 3.125vw; }
  .indexBrandLogo2025 { margin-top: 1.25vw; }
  .sf-partner-slide { padding: 0 .625vw; }
  .sf-partner-slide img,
  .sf-partner-slide .name {
    width: 13.75vw;
    border-radius: 3.75vw;
  }
}

@media (min-width: 1200px) {
  .indexBrandText2025Main { padding: 11.458vw 0 4.167vw; }
  .indexBrandNumber .numberBox {
    font-size: 11.458vw;
    letter-spacing: -.26vw;
  }
  .indexBrandNumber .desc {
    padding-top: .521vw;
    font-size: .833vw;
    line-height: 1.563vw;
    max-width: 27.344vw;
  }
  .indexBrandText2025 {
    width: 41.146vw;
    padding-bottom: 2.083vw;
  }
  .indexBrandText2025 .title { font-size: 1.146vw; }
  .indexBrandText2025 .desc {
    padding-top: .833vw;
    font-size: .833vw;
    line-height: 1.354vw;
  }
  .indexBrandText2025 .more { padding-top: 1.823vw; }
  .indexBrandText2025 .more a {
    padding: 0 .521vw 0 1.302vw;
    border-radius: 2.604vw;
    height: 2.604vw;
  }
  .indexBrandText2025 .more a span { font-size: .781vw; }
  .indexBrandText2025 .more a i {
    width: 1.875vw;
    height: 1.875vw;
    margin-left: 1.042vw;
  }
  .indexCooperativeBrandTitle { padding-bottom: 1.563vw; }
  .indexBrandLogo2025 { margin-top: 1.042vw; }
  .sf-partner-slide { padding: 0 .521vw; }
  .sf-partner-slide img,
  .sf-partner-slide .name {
    width: 11.458vw;
    border-radius: 3.125vw;
  }
}

@media (min-width: 1600px) {
  .indexBrandContainer { max-width: 1560px; }
  .indexBrandText2025Main { padding: 220px 0 80px; }
  .indexBrandNumber .numberBox {
    font-size: 220px;
    letter-spacing: -5px;
  }
  .indexBrandNumber .desc {
    padding-top: 10px;
    font-size: 16px;
    line-height: 30px;
    max-width: 525px;
  }
  .indexBrandText2025 {
    width: 790px;
    padding-bottom: 40px;
  }
  .indexBrandText2025 .title { font-size: 22px; }
  .indexBrandText2025 .desc {
    padding-top: 16px;
    font-size: 16px;
    line-height: 26px;
  }
  .indexBrandText2025 .more { padding-top: 35px; }
  .indexBrandText2025 .more a {
    padding: 0 10px 0 25px;
    border-radius: 50px;
    height: 50px;
  }
  .indexBrandText2025 .more a span { font-size: 15px; }
  .indexBrandText2025 .more a i {
    width: 36px;
    height: 36px;
    margin-left: 20px;
  }
  .indexBrandText2025 .more a i::before {
    width: 8px;
    height: 8px;
  }
  .indexCooperativeBrandTitle { padding-bottom: 30px; }
  .indexCooperativeBrandTitle .title { font-size: 50px; }
  .indexBrandLogo2025 { margin-top: 20px; }
  .sf-partner-slide { padding: 0 10px; }
  .sf-partner-slide img,
  .sf-partner-slide .name {
    width: 220px;
    border-radius: 60px;
  }
}

/* ---------- News ---------- */
.sf-news-list { display: grid; gap: 0; }
.sf-news-row {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid var(--sf-line);
  transition: padding .3s ease;
}
.sf-news-row:hover { padding-left: 8px; }
.sf-news-row time {
  font-family: var(--sf-num);
  font-size: 14px;
  color: rgba(0,0,0,.45);
}
.sf-news-row h3 {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 600;
}
.sf-news-row p {
  margin: 0;
  font-size: 13px;
  color: var(--sf-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sf-news-more {
  color: var(--sf-brown);
  font-size: 13px;
  white-space: nowrap;
}
.sf-news-home-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 28px;
}
.sf-news-feature {
  display: block;
  position: relative;
  min-height: 360px;
  border-radius: 4px;
  overflow: hidden;
  background: #ddd center/cover no-repeat;
  color: #fff;
}
.sf-news-feature::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.7));
}
.sf-news-feature-body {
  position: absolute;
  z-index: 1;
  left: 0; right: 0; bottom: 0;
  padding: 24px;
}
.sf-news-feature h3 { margin: 0 0 8px; font-size: 20px; }
.sf-news-side .sf-news-row {
  grid-template-columns: 90px 1fr;
  padding: 18px 0;
}
.sf-news-side .sf-news-more { display: none; }

/* ---------- indexNewsUpdatesMain（我们的动态） ---------- */
.indexNewsUpdatesMain {
  padding: 70px 0 60px;
  overflow: hidden;
  position: relative;
  background: #fdfcfa;
}
.indexNewsUpdatesMain > .sf-wrap > .title {
  margin: 0;
  font-size: clamp(24px, 3.1vw, 50px);
  line-height: 1.2;
  color: #000;
  font-weight: 700;
}
.indexNewsUpdatesMain .indexNewsUpdatesClass { padding-top: 28px; }
.indexNewsUpdatesMain .indexNewsUpdatesClass .swiper-slide {
  width: auto;
  padding-right: 10px;
}
.indexNewsUpdatesMain .indexNewsUpdatesClass .swiper-slide a {
  width: auto;
  min-width: 120px;
  padding: 0 18px;
  height: 40px;
  border-radius: 40px;
  font-size: 14px;
  color: #000;
  background: #f9f5ee;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: background .35s ease, color .35s ease;
}
.indexNewsUpdatesMain .indexNewsUpdatesClass .swiper-slide.active a,
.indexNewsUpdatesMain .indexNewsUpdatesClass .swiper-slide:hover a {
  background: var(--sf-orange);
  color: #fff;
}
.indexNewsUpdatesMain .indexNewsUpdatesTab { display: none; }
.indexNewsUpdatesMain .indexNewsUpdatesBox { padding-top: 30px; }
.indexNewsUpdatesMain .indexNewsUpdatesImgBox,
.indexNewsUpdatesMain .indexNewsUpdatesListBox {
  transform: translateY(40px);
  transition: transform .6s ease, opacity .6s ease;
  opacity: 0;
}
.indexNewsUpdatesMain .indexNewsUpdatesTab.animat .indexNewsUpdatesImgBox,
.indexNewsUpdatesMain .indexNewsUpdatesTab.animat .indexNewsUpdatesListBox {
  transform: none;
  opacity: 1;
}
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide { position: relative; }
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide > a { display: block; position: relative; }
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide .imgBox {
  padding-top: 140%;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  background: #eee;
}
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide .imgBox img {
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide .icon {
  width: 22px; height: 22px;
  z-index: 2;
  position: absolute;
  right: 14px; top: 14px;
  border-radius: 50%;
  background: #fff url(img/news/arrow.png) center/10px no-repeat;
  transition: opacity .45s ease;
}
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide .listTitle {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  padding: 18px;
  left: 10px; right: 10px; bottom: 10px;
  border-radius: 12px;
  position: absolute;
  color: #fff;
  z-index: 2;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.55));
  transition: all .45s ease;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide:hover .icon { opacity: 0; }
.indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide:hover .listTitle {
  background: rgba(255,255,255,.55);
  color: #000;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.indexNewsUpdatesMain .indexNewsUpdatesList {
  height: 340px;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide { position: relative; height: calc(50% - 10px) !important; }
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a {
  position: relative;
  display: block;
  height: 100%;
  padding: 28px 18px 16px;
  background: #f6f6f6;
  border-radius: 20px;
  box-shadow: 0 0 0 rgba(176, 116, 0, 0.11);
  transition: box-shadow .45s ease, background .45s ease;
  overflow: hidden;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: 20px;
  opacity: 0;
  transition: opacity .45s ease;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .45s ease;
  border-radius: 20px;
  background: url(img/news/card-decor.png) right center / contain no-repeat;
  z-index: 1;
  pointer-events: none;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a .listTitle {
  margin: 0;
  font-size: 16px;
  height: 48px;
  line-height: 24px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #2b2b2b;
  position: relative;
  z-index: 2;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a .time {
  margin: 0;
  padding-top: 22px;
  font-size: 14px;
  color: #8a8a8a;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  z-index: 2;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a .time i {
  width: 28px; height: 28px;
  display: block;
  border-radius: 50%;
  background: #fff url(img/news/arrow.png) center/10px no-repeat;
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a:hover {
  box-shadow: 0 8px 20px rgba(176, 116, 0, 0.11);
}
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a:hover::after,
.indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a:hover::before { opacity: 1; }
/* ---------- indexContactUsMain（聊一聊你的项目） ---------- */
.indexContactUsWrap {
  padding: 40px 0 60px;
  background: #fdfcfa;
}
.indexContactUsMain {
  margin-top: 50px;
  border-radius: 10px;
  padding: 20px 0 40px;
  overflow: hidden;
  background-image: url('./img/contactus/index2025_00164.jpg');
  background-size: cover;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column-reverse;
}
.indexNewsUpdatesMain .indexContactUsMain { margin-top: 50px; }
.indexContactUsMain .content {
  flex: 1;
  padding: 48px 20px;
  box-sizing: border-box;
}
.indexContactUsMain .content .subTitle {
  font-size: 24px;
  line-height: 1.2;
  color: #fff;
  font-weight: 400;
}
.indexContactUsMain .content .tel { padding-top: 10px; }
.indexContactUsMain .content .tel p {
  margin: 0;
  font-size: 14px;
  color: #fff;
  white-space: nowrap;
}
.indexContactUsMain .content .tel p a { color: inherit; }
.indexContactUsMain .content .tel p span {
  font-size: 18px;
  margin-left: 10px;
  color: #fff5a5;
  font-family: 'Manrope', var(--sf-font);
}
.indexContactUsMain .content .btn {
  display: flex;
  padding-top: 15px;
}
.indexContactUsMain .content .btn a {
  display: inline-flex;
  align-items: center;
  padding: 0 10px 0 20px;
  border-radius: 40px;
  height: 40px;
  transition: all .6s;
  overflow: hidden;
  position: relative;
  background-color: #ff4b00;
  color: #fff;
}
.indexContactUsMain .content .btn a span {
  font-size: 13px;
  color: #fff;
  position: relative;
  z-index: 10;
  transition: all .6s;
}
.indexContactUsMain .content .btn a i {
  width: 24px;
  height: 24px;
  margin-left: 10px;
  border-radius: 100%;
  color: #ff4b00;
  transition: all .6s;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.indexContactUsMain .content .btn a i::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 100%;
  transition: all .6s;
}
.indexContactUsMain .content .btn a i::before {
  content: '';
  position: relative;
  z-index: 10;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid #ff4b00;
  border-right: 1.5px solid #ff4b00;
  transform: rotate(45deg);
  left: 0;
  transition: all .6s;
}
.indexContactUsMain .content .btn a:hover { background-color: #fff; }
.indexContactUsMain .content .btn a:hover i::before {
  left: -5px;
  border-color: #000;
}
.indexContactUsMain .content .btn a:hover i::after {
  width: 400px;
  height: 400px;
  background-color: #fff;
}
.indexContactUsMain .content .btn a:hover span { color: #000; }
.indexContactUsMain .imgBox {
  width: 100%;
  margin-right: 0;
}
.indexContactUsMain .imgBox img {
  width: 100%;
  display: block;
}

@media (min-width: 768px) {
  .indexContactUsMain {
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
    margin-top: 8.125vw;
    border-radius: 2.5vw;
    padding: 0;
    background-image: url('./img/contactus/index2025_0164.jpg');
  }
  .indexNewsUpdatesMain .indexContactUsMain { margin-top: 8.125vw; }
  .indexContactUsMain .content {
    flex: 1;
    padding: 5.5vw 0 5.5vw 8.125vw;
  }
  .indexContactUsMain .content .subTitle { font-size: 3.125vw; }
  .indexContactUsMain .content .tel {
    display: flex;
    flex-wrap: wrap;
    padding-top: 1.25vw;
  }
  .indexContactUsMain .content .tel p {
    font-size: .875vw;
    margin-right: 1.875vw;
  }
  .indexContactUsMain .content .tel p span {
    font-size: 1.625vw;
    margin-left: .625vw;
  }
  .indexContactUsMain .content .btn { padding-top: 2.188vw; }
  .indexContactUsMain .content .btn a {
    padding: 0 .625vw 0 1.563vw;
    border-radius: 3.125vw;
    height: 3.125vw;
  }
  .indexContactUsMain .content .btn a span { font-size: .938vw; }
  .indexContactUsMain .content .btn a i {
    width: 2.25vw;
    height: 2.25vw;
    margin-left: 1.25vw;
  }
  .indexContactUsMain .content .btn a i::before {
    width: .5vw;
    height: .5vw;
  }
  .indexContactUsMain .content .btn a:hover i::after {
    width: 25vw;
    height: 25vw;
  }
  .indexContactUsMain .imgBox {
    width: 54.25vw;
    margin-right: -3.125vw;
    flex-shrink: 0;
  }
}

@media (min-width: 1200px) {
  .indexContactUsMain {
    margin-top: 6.771vw;
    border-radius: 2.083vw;
  }
  .indexNewsUpdatesMain .indexContactUsMain { margin-top: 6.771vw; }
  .indexContactUsMain .content { padding: 4.5vw 0 4.5vw 6.771vw; }
  .indexContactUsMain .content .subTitle { font-size: 2.604vw; }
  .indexContactUsMain .content .tel { padding-top: 1.042vw; }
  .indexContactUsMain .content .tel p {
    font-size: .729vw;
    margin-right: 1.563vw;
  }
  .indexContactUsMain .content .tel p span {
    font-size: 1.354vw;
    margin-left: .521vw;
  }
  .indexContactUsMain .content .btn { padding-top: 1.823vw; }
  .indexContactUsMain .content .btn a {
    padding: 0 .521vw 0 1.302vw;
    border-radius: 2.604vw;
    height: 2.604vw;
  }
  .indexContactUsMain .content .btn a span { font-size: .781vw; }
  .indexContactUsMain .content .btn a i {
    width: 1.875vw;
    height: 1.875vw;
    margin-left: 1.042vw;
  }
  .indexContactUsMain .imgBox {
    width: 45.208vw;
    margin-right: -2.604vw;
  }
}

@media (min-width: 1600px) {
  .indexContactUsMain {
    margin-top: 130px;
    border-radius: 40px;
  }
  .indexNewsUpdatesMain .indexContactUsMain { margin-top: 130px; }
  .indexContactUsMain .content { padding: 80px 0 80px 130px; }
  .indexContactUsMain .content .subTitle { font-size: 50px; }
  .indexContactUsMain .content .tel { padding-top: 20px; }
  .indexContactUsMain .content .tel p {
    font-size: 14px;
    margin-right: 30px;
  }
  .indexContactUsMain .content .tel p span {
    font-size: 26px;
    margin-left: 10px;
  }
  .indexContactUsMain .content .btn { padding-top: 35px; }
  .indexContactUsMain .content .btn a {
    padding: 0 10px 0 25px;
    border-radius: 50px;
    height: 50px;
  }
  .indexContactUsMain .content .btn a span { font-size: 15px; }
  .indexContactUsMain .content .btn a i {
    width: 36px;
    height: 36px;
    margin-left: 20px;
  }
  .indexContactUsMain .content .btn a i::before {
    width: 8px;
    height: 8px;
    border-width: 2px;
  }
  .indexContactUsMain .content .btn a:hover i::after {
    width: 400px;
    height: 400px;
  }
  .indexContactUsMain .imgBox {
    width: 868px;
    margin-right: -50px;
  }
}

/* ---------- Case / product list (caseDescBox) ---------- */
.sf-case-list-main {
  padding: 110px 0 80px;
  background: var(--sf-cream);
}
.sf-case-desc-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 28px 40px;
  padding: 48px 0 72px;
}
.sf-case-title-box {
  flex: 1 1 320px;
  min-width: 0;
  max-width: 720px;
}
.sf-case-title-box .title {
  margin: 0;
  font-size: clamp(22px, 3.1vw, 50px);
  line-height: 1.2;
  font-weight: 700;
  color: #000;
}
.sf-case-title-box .title i {
  display: inline-block;
  margin-left: 10px;
  width: 14px;
  height: 14px;
  position: relative;
  vertical-align: middle;
}
.sf-case-title-box .title i::before,
.sf-case-title-box .title i::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  background: #ff0000;
  transform: translate(-50%, -50%);
}
.sf-case-title-box .title i::before {
  width: 100%;
  height: 3px;
}
.sf-case-title-box .title i::after {
  width: 3px;
  height: 100%;
}
.sf-case-title-box .desc {
  padding-top: 14px;
  font-size: clamp(13px, 1.1vw, 18px);
  line-height: 1.6;
  color: rgba(0, 0, 0, .8);
}
.sf-case-data {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  gap: 0;
}
.sf-case-data .list {
  flex: none;
  text-align: left;
  margin-right: 56px;
}
.sf-case-data .list:last-child { margin-right: 0; }
.sf-case-data .numberBox {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-family: var(--sf-num);
  font-size: clamp(18px, 3vw, 50px);
  line-height: 1;
  color: #000;
}
.sf-case-data .numberBox .number {
  font-family: var(--sf-num);
  font-size: clamp(28px, 5vw, 80px);
  font-weight: 400;
  line-height: 1;
}
.sf-case-data .text {
  font-size: clamp(12px, .95vw, 15px);
  padding-top: 6px;
  color: rgba(0, 0, 0, .8);
}
.sf-case-list-main .sf-case-grid { padding-bottom: 20px; }

/* ---------- News list (align szweb companynews / newsListMain) ---------- */
.sf-common-banner {
  position: relative;
  overflow: hidden;
  background: #0a0a0a;
}
.sf-common-banner .img-box {
  position: relative;
  padding-top: 56%;
}
.sf-common-banner .img-box img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sf-common-banner .img-box .m { display: none; }
.sf-common-banner-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 2;
  padding: 80px 16px 40px;
}
.sf-common-banner-text .title {
  font-size: 14px;
  color: rgba(255, 255, 255, .8);
}
.sf-common-banner-text .desc {
  padding-top: 10px;
  font-size: clamp(24px, 3.2vw, 50px);
  line-height: 1.2;
  color: #fff;
  font-weight: 700;
}
.sf-common-banner-text .btn {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: rgba(255, 255, 255, .85);
}
.sf-common-banner-text .btn i {
  margin-left: 6px;
  width: 25px;
  height: 25px;
  border-radius: 100%;
  background: #ff0000;
  position: relative;
}
.sf-common-banner-text .btn i::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
  transform: translate(-60%, -50%) rotate(45deg);
}
.sf-common-location {
  position: absolute;
  left: 0;
  bottom: 20px;
  width: 100%;
  z-index: 3;
}
.sf-common-location .sf-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.sf-common-location a {
  font-size: 12px;
  color: #fff;
  display: inline-flex;
  align-items: center;
}
.sf-common-location a::after {
  content: '';
  margin: 0 8px;
  width: 6px;
  height: 6px;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg);
}
.sf-common-location a:last-child::after { display: none; }
.sf-common-location.is-black,
.sf-news-detail-main .sf-common-location {
  position: static;
  bottom: auto;
  margin-bottom: 8px;
}
.sf-common-location.is-black a,
.sf-news-detail-main .sf-common-location a { color: #333; }
.sf-common-location.is-black a::after,
.sf-news-detail-main .sf-common-location a::after {
  border-right-color: #333;
  border-bottom-color: #333;
}

.sf-news-class-main {
  padding-top: 28px;
  overflow: hidden;
  position: relative;
  background: #fff;
}
.sf-news-class {
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(242, 242, 242, .5);
  overflow: hidden;
}
.sf-news-class .swiper-slide {
  width: auto;
  margin-right: 10px;
}
.sf-news-class .swiper-slide:last-child { margin-right: 0; }
.sf-news-class a {
  display: inline-flex;
  align-items: center;
  min-width: 120px;
  padding: 0 14px;
  line-height: 32px;
  border-radius: 32px;
  font-size: 14px;
  color: #000;
  background: #f3f3f3;
}
.sf-news-class a i {
  width: 8px;
  height: 8px;
  margin-left: 18px;
  position: relative;
  display: block;
}
.sf-news-class a i::before,
.sf-news-class a i::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #2f2f2f;
}
.sf-news-class a i::after { width: 100%; height: 2px; }
.sf-news-class a i::before { width: 2px; height: 100%; }
.sf-news-class .swiper-slide.cur a {
  background: #434343;
  color: #fff;
}
.sf-news-class .swiper-slide.cur a i::before,
.sf-news-class .swiper-slide.cur a i::after { background: #fff; }

.sf-news-list-main {
  list-style: none;
  margin: 0;
  padding: 36px 0 60px;
  background: #fff;
}
.sf-news-list-main .list { transition: background .8s ease; }
.sf-news-list-main .a-list {
  display: flex;
  flex-wrap: wrap;
  padding: 20px 0;
  border-bottom: 1px solid #dbdbdb;
}
.sf-news-list-main .list h2 {
  margin: 0;
  width: 100%;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  transition: color .8s ease;
}
.sf-news-list-main .list h2 a { color: #000; }
.sf-news-list-main .img-box {
  width: 100%;
  margin-top: 12px;
  border-radius: 15px;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: opacity .8s ease, visibility .8s ease;
}
.sf-news-list-main .img-box:not(:has(img)) {
  display: none;
  margin: 0;
}
.sf-news-list-main .img-box img {
  width: 100%;
  display: block;
  border: 8px solid #ff0000;
  box-sizing: border-box;
}
.sf-news-list-main .time {
  width: 100%;
  margin-top: 10px;
  font-size: 14px;
  font-family: var(--sf-num);
  color: #000;
  transition: color .8s ease;
}
.sf-news-list-main .desc {
  width: 100%;
  margin-top: 10px;
  font-size: 13px;
  color: #b8b8b8;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  height: 36px;
  line-height: 18px;
}
.sf-news-list-main .arrow {
  width: 100%;
  margin-top: 10px;
  display: flex;
}
.sf-news-list-main .arrow a {
  display: inline-flex;
}
.sf-news-list-main .arrow i {
  width: 35px;
  height: 35px;
  border-radius: 100%;
  background: #f2f2f2;
  position: relative;
  transition: .8s ease;
  display: block;
}
.sf-news-list-main .arrow i::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid #222;
  border-right: 1.5px solid #222;
  transform: translate(-60%, -50%) rotate(45deg);
  transition: .8s ease;
}
.sf-news-list-main .list:hover { background: #000; }
.sf-news-list-main .list:hover h2 a { color: #fff; }
.sf-news-list-main .list:hover .time { color: #ff0000; }
.sf-news-list-main .list:hover .arrow i {
  background: #ff0000;
  transform: rotate(-45deg);
}
.sf-news-list-main .list:hover .arrow i::before { border-color: #fff; }
.sf-news-list-main .list.is-cur .img-box:has(img),
.sf-news-list-main .list:hover .img-box:has(img) {
  opacity: 1;
  visibility: visible;
}

@media (min-width: 860px) {
  .sf-common-banner .img-box { padding-top: 37.5%; }
  .sf-common-banner-text .title { font-size: 15px; }
  .sf-common-banner-text .desc { font-size: clamp(28px, 3vw, 50px); line-height: 1.2; }
  .sf-news-class-main { padding-top: 36px; }
  .sf-news-class { padding-bottom: 30px; }
  .sf-news-list-main { padding: 50px 0 80px; }
  .sf-news-list-main .a-list {
    flex-wrap: nowrap;
    align-items: flex-start;
    padding: 18px 0;
  }
  .sf-news-list-main .list h2 {
    width: 28%;
    max-width: 345px;
    margin-top: 28px;
    margin-right: 10px;
    font-size: clamp(18px, 1.5vw, 26px);
    height: 72px;
    line-height: 36px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
  .sf-news-list-main .img-box {
    width: 26%;
    max-width: 365px;
    margin-top: 28px;
    margin-right: 16px;
    height: 140px;
    flex-shrink: 0;
  }
  .sf-news-list-main .img-box:not(:has(img)) {
    display: block;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .sf-news-list-main .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .sf-news-list-main .time {
    width: 16%;
    max-width: 215px;
    margin-top: 28px;
    font-size: clamp(18px, 1.6vw, 28px);
  }
  .sf-news-list-main .desc {
    width: 24%;
    max-width: 390px;
    margin-top: 28px;
    font-size: 15px;
    height: 52px;
    line-height: 26px;
  }
  .sf-news-list-main .arrow {
    width: 10%;
    max-width: 140px;
    margin-top: 28px;
    justify-content: flex-end;
  }
  .sf-news-list-main .arrow i {
    width: 48px;
    height: 48px;
  }
}

@media (min-width: 1200px) {
  .sf-common-banner .img-box { padding-top: 31.25%; }
}

@media (max-width: 859px) {
  .sf-common-banner .img-box .pc { display: none; }
  .sf-common-banner .img-box .m { display: block; }
  .sf-common-banner .img-box { padding-top: 72%; }
  .sf-common-banner-text { padding-top: 100px; }
  .sf-common-location { bottom: 12px; }
}

/* ---------- News detail (align szweb companynews detail) ---------- */
.sf-circle-main {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 100%;
  overflow: hidden;
  z-index: -1;
  pointer-events: none;
}
.sf-detail-circle {
  left: -70px;
  top: -120px;
  width: min(690px, 90vw);
  height: min(690px, 90vw);
}
.sf-detail-circle > div,
.sf-detail-circle2 > div {
  border-color: #f1f1f1;
  opacity: .7;
}
.sf-detail-circle2 {
  right: -180px;
  left: auto;
  top: 180px;
  width: min(520px, 70vw);
  height: min(520px, 70vw);
  transform: rotate(-90deg);
}

.sf-news-detail-main {
  padding: 120px 0 40px;
  border-bottom: 1px solid #f6f6f6;
  position: relative;
  z-index: 10;
  background: transparent;
}
.sf-news-detail-title {
  margin: 15px 0 0;
  font-size: clamp(24px, 3.2vw, 50px);
  line-height: 1.3;
  color: #000;
  font-weight: 700;
}
.sf-source-time-box {
  margin-top: 20px;
  padding: 15px;
  border-radius: 10px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  background-image: linear-gradient(to right, #f7f7f7, rgba(255, 255, 255, 0));
}
.sf-source-time-box .source-time {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
.sf-source-time-box .source-time p {
  margin: 0;
  font-size: 12px;
  line-height: 18px;
  color: #a5a5a5;
  padding: 3px 0;
}
.sf-source-time-box .source-time p span,
.sf-source-time-box .source-time p a {
  color: #000;
  font-size: 14px;
}
.sf-source-time-box .return {
  width: 100%;
  padding-top: 10px;
  display: none;
}
.sf-source-time-box .return a,
.sf-news-detail-share .return a {
  font-size: 14px;
  color: #000;
  display: inline-flex;
  align-items: center;
}
.sf-source-time-box .return a i,
.sf-news-detail-share .return a i {
  width: 20px;
  height: 20px;
  margin-left: 10px;
  border-radius: 100%;
  background: #ff0000;
  position: relative;
}
.sf-source-time-box .return a i::before,
.sf-news-detail-share .return a i::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
  transform: translate(-60%, -50%) rotate(45deg);
}

.sf-news-detail-box {
  display: flex;
  flex-direction: column-reverse;
  padding-top: 10px;
}
.sf-share-label-box {
  width: 100%;
  position: relative;
  padding-top: 30px;
}
.sf-share-label-box .sticky { position: relative; top: 0; }
.sf-news-detail-share .title,
.sf-hot-label .title,
.sf-detail-qr .title {
  font-size: 14px;
  color: #545454;
}
.sf-news-detail-share .share-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sf-news-detail-share .detail-share {
  display: flex;
  flex-wrap: wrap;
  padding-top: 10px;
  gap: 10px;
}
.sf-news-detail-share .detail-share a {
  width: 35px;
  height: 35px;
  border: 1px solid #f4f4f4;
  border-radius: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ccc;
  position: relative;
  background: #fff;
}
.sf-news-detail-share .detail-share a::before {
  font-size: 12px;
  line-height: 1;
}
.sf-news-detail-share .detail-share a.ico-wechat::before { content: '微'; }
.sf-news-detail-share .detail-share a.ico-weibo::before { content: '博'; }
.sf-news-detail-share .detail-share a.ico-wechat:hover {
  background: #7bc549;
  color: #fff;
  border-color: #7bc549;
}
.sf-news-detail-share .detail-share a.ico-weibo:hover {
  background: #ff0000;
  color: #fff;
  border-color: #ff0000;
}
.sf-hot-label { padding-top: 24px; }
.sf-hot-label .title { font-size: 16px; padding-bottom: 10px; }
.sf-hot-label .list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 8px 6px;
}
.sf-hot-label .list li span {
  display: inline-flex;
  padding: 6px 12px;
  border-radius: 33px;
  font-size: 12px;
  color: #525252;
  background: #f6f6f6;
}
.sf-detail-qr {
  padding-top: 28px;
  text-align: center;
}
.sf-detail-qr .title { display: none; }
.sf-detail-qr .img-box { padding-top: 0; }
.sf-detail-qr .img-box img {
  max-width: 110px;
  width: 100%;
  display: block;
  margin: 0 auto;
}

.sf-news-detail {
  width: 100%;
  padding-top: 24px;
}
.sf-news-detail .content,
.sf-news-detail .article-content {
  font-size: 14px;
  color: #333;
  line-height: 24px;
}
.sf-news-detail .content img,
.sf-news-detail .article-content img {
  max-width: 100%;
  height: auto !important;
  margin: 10px 0;
}
.sf-news-tag-box {
  padding-top: 28px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.sf-news-tag-box .tag {
  font-size: 14px;
  color: #000;
}
.sf-news-tag-box .tag i {
  padding: 0 8px;
  font-style: normal;
  color: #999;
}
.sf-news-tag-box .news-return a {
  font-size: 14px;
  color: #000;
}
.sf-prev-next-article {
  margin-top: 28px;
  padding: 12px 16px;
  border-radius: 10px;
  background-image: linear-gradient(to right, #f7f7f7, rgba(255, 255, 255, 0));
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.sf-prev-next-article a {
  font-size: 14px;
  color: #000;
  width: 100%;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  height: 24px;
  line-height: 24px;
  margin-top: 5px;
}
.sf-prev-next-article a span {
  color: #a5a5a5;
  font-size: 13px;
}
.sf-prev-next-article a.is-empty { opacity: .55; pointer-events: none; }

@media (min-width: 860px) {
  .sf-news-detail-main { padding: 160px 0 70px; }
  .sf-news-detail-title { margin-top: 18px; }
  .sf-source-time-box {
    margin-top: 40px;
    min-height: 64px;
    padding: 0 28px;
  }
  .sf-source-time-box .source-time {
    width: auto;
    flex-wrap: nowrap;
    align-items: center;
  }
  .sf-source-time-box .source-time p {
    padding: 0 24px;
    font-size: 13px;
  }
  .sf-source-time-box .source-time p:first-child { padding-left: 0; }
  .sf-source-time-box .source-time p span,
  .sf-source-time-box .source-time p a { font-size: 15px; }
  .sf-source-time-box .return {
    display: block;
    width: auto;
    padding-top: 0;
  }
  .sf-news-detail-box {
    flex-direction: row;
    padding-top: 70px;
  }
  .sf-share-label-box {
    width: 205px;
    flex: 0 0 205px;
    padding-top: 0;
  }
  .sf-share-label-box .sticky {
    position: sticky;
    top: 110px;
  }
  .sf-news-detail-share .return { display: none; }
  .sf-news-detail-share .detail-share a {
    width: 46px;
    height: 46px;
  }
  .sf-hot-label { padding-top: 48px; }
  .sf-detail-qr { padding-top: 48px; }
  .sf-news-detail {
    flex: 1;
    padding-left: 60px;
    padding-top: 0;
    border-left: 1px solid #e6e6e6;
  }
  .sf-news-detail .content,
  .sf-news-detail .article-content {
    font-size: 16px;
    line-height: 31px;
  }
  .sf-news-tag-box { padding-top: 42px; }
  .sf-news-tag-box .tag,
  .sf-news-tag-box .news-return a { font-size: 16px; }
  .sf-prev-next-article {
    margin-top: 42px;
    padding: 20px 36px;
  }
  .sf-prev-next-article a {
    width: calc(50% - 20px);
    font-size: 16px;
    margin-top: 0;
    padding-right: 16px;
  }
  .sf-prev-next-article a:last-child { margin-left: 40px; padding-right: 0; }
}

@media (min-width: 1200px) {
  .sf-news-detail-main { padding: 220px 0 90px; }
  .sf-news-detail {
    padding-left: 100px;
    border-left: 1px solid #e6e6e6;
  }
  .sf-source-time-box {
    margin-top: 55px;
    height: 70px;
    padding: 0 45px;
  }
}

/* ---------- Product / case detail (align szweb case/22818) ---------- */
.sf-case-detail-main {
  background: #fff;
  padding-top: 100px;
}
.sf-case-detail-top {
  padding: 40px 0 20px;
  background: #faf8f4;
}
.sf-case-detail-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 0;
  font-size: 13px;
  color: #888;
  margin-bottom: 28px;
}
.sf-case-detail-crumb a,
.sf-case-detail-crumb span {
  color: #555;
}
.sf-case-detail-crumb a:hover { color: #ff3c00; }
.sf-case-detail-crumb > * + *::before {
  content: '/';
  margin: 0 10px;
  color: #ccc;
}
.sf-case-detail-head {
  text-align: center;
}
.sf-case-detail-head h1 {
  margin: 0;
  font-size: clamp(28px, 4vw, 52px);
  line-height: 1.25;
  font-weight: 700;
  color: #111;
}
.sf-case-detail-head .desc {
  margin: 18px auto 0;
  max-width: 860px;
  font-size: clamp(14px, 1.2vw, 18px);
  line-height: 1.7;
  color: rgba(0, 0, 0, .72);
}
.sf-case-detail-head .actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}
.sf-case-detail-head .actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 22px;
  border-radius: 42px;
  font-size: 14px;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.sf-case-detail-head .actions .btn-outline {
  border: 1px solid #222;
  color: #222;
  background: transparent;
}
.sf-case-detail-head .actions .btn-outline:hover {
  background: #222;
  color: #fff;
}
.sf-case-detail-head .actions .btn-solid {
  background: #ff3c00;
  color: #fff;
  border: 1px solid #ff3c00;
}
.sf-case-detail-head .actions .btn-solid:hover {
  background: #e63600;
  border-color: #e63600;
}
.sf-case-detail-cover {
  width: 100%;
  margin-top: 0;
  background: #0f0f0f;
}
.sf-case-detail-cover img {
  display: block;
  width: 100%;
  max-height: 72vh;
  object-fit: cover;
}
.sf-case-detail-body {
  padding: 56px 0 80px;
  background: #fff;
}
.sf-case-detail-content {
  max-width: 1100px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.85;
  color: #333;
}
.sf-case-detail-content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 24px auto;
}
.sf-case-detail-content p { margin: 0 0 1.2em; }
.sf-case-detail-content h2,
.sf-case-detail-content h3 {
  margin: 1.6em 0 .7em;
  color: #111;
  line-height: 1.35;
}

.sf-related-products-main {
  padding: 70px 0 40px;
  background: var(--sf-cream, #f7f6f3);
}
.sf-related-products-main > .sf-wrap > .title {
  margin: 0 0 36px;
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 700;
  color: #111;
}
.sf-related-products-main .caseMore2025 { margin-top: 20px; }

.sf-case-advisor { padding-top: 20px; padding-bottom: 80px; }
.sf-case-advisor .indexContactUsMain { margin-top: 0; }

@media (max-width: 859px) {
  .sf-case-detail-main { padding-top: 72px; }
  .sf-case-detail-top { padding: 28px 0 16px; }
  .sf-case-detail-body { padding: 36px 0 56px; }
  .sf-case-detail-cover img { max-height: 48vh; }
  .sf-related-products-main { padding: 48px 0 24px; }
}

/* ---------- Detail (non-news fallback) ---------- */
.sf-detail-shell { padding: 110px 0 80px; background: #fff; }
.sf-detail-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 40px;
  align-items: start;
}
.sf-detail-aside {
  position: sticky;
  top: 100px;
}
.sf-aside-card {
  background: var(--sf-cream);
  border: 1px solid var(--sf-line);
  border-radius: 4px;
  padding: 22px;
  margin-bottom: 18px;
}
.sf-aside-card h3 {
  margin: 0 0 14px;
  font-size: 15px;
}
.sf-aside-card p {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--sf-muted);
}
.sf-aside-card p span {
  display: block;
  color: var(--sf-text);
  font-weight: 600;
  margin-bottom: 2px;
}
.sf-aside-link {
  display: block;
  padding: 8px 0;
  font-size: 13px;
  border-bottom: 1px solid var(--sf-line);
}
.sf-detail-title {
  margin: 0 0 12px;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.35;
}
.sf-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  font-size: 13px;
  color: var(--sf-muted);
  margin-bottom: 28px;
  font-family: var(--sf-num);
}
.sf-detail-cover { margin-bottom: 24px; border-radius: 4px; overflow: hidden; }
.sf-detail-summary {
  padding: 16px 18px;
  background: var(--sf-cream);
  border-left: 3px solid var(--sf-gold);
  margin-bottom: 28px;
  color: var(--sf-muted);
}
.article-content {
  font-size: 16px;
  line-height: 1.85;
  color: #333;
}
.article-content img { max-width: 100%; height: auto; margin: 16px 0; }
.article-content p { margin: 0 0 1em; }
.article-content h2, .article-content h3 { margin: 1.4em 0 .6em; }

/* ---------- About ---------- */
.sf-about-banner {
  min-height: 420px;
  padding: 140px 0 60px;
  background: #1a1510 center/cover no-repeat;
  color: #fff;
  position: relative;
}
.sf-about-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20,14,8,.45);
}
.sf-about-banner .sf-wrap { position: relative; z-index: 1; }
.sf-about-banner h1 { margin: 0; font-size: clamp(32px, 4vw, 48px); }
.sf-about-banner .slogan {
  margin-top: 12px;
  font-size: 18px;
  color: var(--sf-gold-soft);
}
.sf-about-intro {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 40px;
  align-items: start;
  padding: 72px 0;
}
.sf-about-collage {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 12px;
}
.sf-about-collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
  min-height: 160px;
}
.sf-about-collage img:first-child { grid-row: span 2; min-height: 340px; }
.sf-about-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--sf-line);
}
.sf-about-stats .item {
  text-align: left;
}
.sf-about-stats .item strong {
  display: block;
  font-family: var(--sf-num);
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.1;
  color: var(--sf-orange);
  font-weight: 700;
  margin-bottom: 6px;
}
.sf-about-stats .item span {
  font-size: 13px;
  color: var(--sf-muted);
  line-height: 1.4;
}
.sf-about-vision {
  background: #151515 url('./img/about/vision.jpg') center/cover no-repeat;
  color: #fff;
  position: relative;
}
.sf-about-vision::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.65);
}
.sf-about-vision .sf-wrap { position: relative; z-index: 1; }
.sf-vision-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.sf-vision-grid h3 { margin: 0 0 10px; color: var(--sf-gold); font-size: 20px; }
.sf-vision-grid p { margin: 0; opacity: .8; font-size: 14px; }
.sf-about-svc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
  padding: 40px 0;
}
.sf-about-svc:nth-child(even) { direction: rtl; }
.sf-about-svc:nth-child(even) > * { direction: ltr; }
.sf-about-svc img { border-radius: 4px; width: 100%; }
.sf-about-svc h3 { margin: 0 0 10px; font-size: 22px; }
.sf-about-svc .num {
  font-family: var(--sf-num);
  color: var(--sf-gold);
  font-size: 14px;
  margin-bottom: 8px;
}

/* ---------- Contact / message (szweb contactMain) ---------- */
.sf-circle-box {
  position: absolute;
  width: 300px;
  height: 300px;
  pointer-events: none;
  z-index: 1;
}
.sf-circle-box > div {
  position: absolute;
  inset: 0;
  border: 1px solid #d8d6d3;
  border-radius: 50%;
  opacity: .45;
}
.sf-circle-box .circle1 { transform: scale(.35); }
.sf-circle-box .circle2 { transform: scale(.55); }
.sf-circle-box .circle3 { transform: scale(.75); }
.sf-circle-box .circle4 { transform: scale(.95); }

.sf-contact-main {
  padding: 140px 0 80px;
  background: #fffdf9;
  overflow: hidden;
  position: relative;
}
.sf-contact-circle {
  right: -80px;
  left: auto;
  top: 100px;
  transform: rotate(180deg);
}
.sf-contact-desc { position: relative; z-index: 2; }
.sf-contact-desc .title {
  margin: 0;
  font-size: clamp(24px, 3.1vw, 50px);
  line-height: 2;
  font-weight: 700;
  color: #000;
}
.sf-contact-desc .title i {
  display: inline-block;
  margin-left: 10px;
  width: 15px;
  height: 15px;
  position: relative;
  vertical-align: middle;
  top: -4px;
}
.sf-contact-desc .title i::before,
.sf-contact-desc .title i::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  background: #ff0000;
  transform: translate(-50%, -50%);
}
.sf-contact-desc .title i::before { width: 100%; height: 3px; }
.sf-contact-desc .title i::after { width: 3px; height: 100%; }
.sf-contact-desc .desc {
  padding-top: 16px;
  font-size: clamp(14px, 1.1vw, 18px);
  line-height: 2;
  color: #000;
}

.sf-contact-form-main {
  padding: 56px 0 90px;
  overflow: hidden;
  position: relative;
  background: #f7f5f0;
}
.sf-contact-circle1 {
  top: auto;
  bottom: -120px;
  left: -40px;
}
.sf-contact-circle1 > div { border-color: #c0bfbb; }
.sf-contact-form-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 40px 48px;
  position: relative;
  z-index: 2;
}
.sf-contact-form-intro {
  flex: 1 1 280px;
  min-width: 0;
}
.sf-contact-form-intro .title {
  font-size: clamp(20px, 2.4vw, 42px);
  line-height: 2;
  color: #000;
  font-weight: 700;
}
.sf-contact-form-intro .desc {
  font-size: 14px;
  padding-top: 18px;
  line-height: 2;
  color: #000;
}
.sf-contact-form {
  width: min(100%, 805px);
  flex: 1 1 420px;
}
.sf-contact-form .form-title {
  font-size: 15px;
  padding-bottom: 10px;
  color: #2a2829;
  display: flex;
  align-items: center;
  font-weight: 600;
}
.sf-contact-form .form-title::before {
  content: '';
  margin-right: 10px;
  width: 12px;
  height: 12px;
  background: #ff0000;
  border-radius: 50%;
}
.sf-contact-form .flash {
  margin: 8px 0 4px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
}
.sf-contact-form .flash.ok { background: #e8f7e8; color: #1d6b1d; }
.sf-contact-form .flash.err { background: #fdecea; color: #b42318; }
.sf-contact-form form {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -5px;
}
.sf-contact-form .input {
  width: 50%;
  margin-top: 16px;
  padding: 0 5px;
  position: relative;
  box-sizing: border-box;
}
.sf-contact-form .input.w100 { width: 100% !important; }
.sf-contact-form .input input {
  width: 100%;
  height: 54px;
  border-radius: 54px;
  padding: 0 25px;
  font-size: 15px;
  border: 1px solid #e5e0d7;
  color: #2a2829;
  background: #fff;
  outline: none;
  box-sizing: border-box;
}
.sf-contact-form .input textarea {
  width: 100%;
  height: 140px;
  border: 1px solid #e5e0d7;
  padding: 22px 25px;
  border-radius: 25px;
  font-size: 15px;
  color: #2a2829;
  background: #fff;
  resize: vertical;
  outline: none;
  box-sizing: border-box;
}
.sf-contact-form .input input::placeholder,
.sf-contact-form .input textarea::placeholder { color: #2a2829; opacity: .75; }
.sf-contact-form .input input:focus,
.sf-contact-form .input textarea:focus { border-color: #c9b089; }
.sf-contact-form .btn {
  width: 100%;
  padding: 18px 5px 0;
  box-sizing: border-box;
}
.sf-contact-form .btn button {
  height: 54px;
  border-radius: 54px;
  width: 100%;
  border: none;
  background: #000;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  transition: background .25s ease;
}
.sf-contact-form .btn button:hover { background: #ff0000; }

/* contactInfoMain — 业务联系(含运营信息) / 售后 / 运营渠道(公众号) / 地址+微信号 */
.sf-contact-info-main {
  position: relative;
  overflow: hidden;
  padding: 0;
  color: #fff;
}
.sf-contact-info-bg {
  position: absolute;
  left: 0;
  top: -50vh;
  width: 100%;
  height: 100vh;
  z-index: 0;
  will-change: transform;
}
.sf-contact-info-bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: sfContactBgScale 5s infinite alternate cubic-bezier(.455, .03, .515, .955);
}
@keyframes sfContactBgScale {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}
.sf-contact-info-bg .m { display: none; }
.sf-contact-info-main .sf-wrap { position: relative; z-index: 20; }
.sf-contact-info {
  display: flex;
  flex-wrap: wrap;
}
.sf-contact-info .list {
  width: 33.333%;
  padding: 60px 50px;
  border-top: 1px solid rgba(255,255,255,.1);
  border-left: 1px solid rgba(255,255,255,.1);
  box-sizing: border-box;
}
.sf-contact-info .list.list-biz {
  width: 66.666%;
  border-top: none;
  border-left: none;
  padding-left: 0;
  padding-right: 80px;
}
.sf-contact-info .list:nth-child(2) { border-top: none; }
.sf-contact-info .list.list-qr {
  width: 33.333%;
  border-left: none;
  padding-left: 0;
  display: flex;
  flex-direction: column-reverse;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}
.sf-contact-info .list.list-address {
  width: 66.666%;
  border-left: 1px solid rgba(255,255,255,.1);
}
.sf-contact-info .list-title {
  font-size: clamp(18px, 1.5vw, 24px);
  color: #fff;
  font-weight: 600;
  line-height: 1.2;
}
.sf-contact-info .content {
  display: flex;
  flex-wrap: wrap;
}
.sf-contact-info .tel-list {
  padding-right: 36px;
  padding-top: 28px;
  width: auto;
  min-width: 120px;
}
.sf-contact-info .list-biz .tel-list { padding-right: 55px; }
.sf-contact-info .tel-title {
  font-size: 13px;
  padding-bottom: 5px;
  color: rgba(255,255,255,.7);
}
.sf-contact-info .tel {
  font-size: 16px;
  color: #fff;
  font-family: var(--sf-num);
  word-break: break-all;
}
.sf-contact-info .tel a { color: inherit; }
.sf-contact-info .list-biz .tel-list:nth-child(1) .tel {
  font-weight: 600;
  color: #f2d3bb;
  font-size: 18px;
}
.sf-contact-info .address {
  padding-top: 24px;
  font-size: 15px;
  color: rgba(255,255,255,.7);
  line-height: 1.6;
  max-width: 420px;
}
.sf-contact-info .list-address .wechat-id {
  padding-top: 20px;
  padding-right: 0;
}
.sf-contact-info .nav-btn { padding-top: 24px; }
.sf-contact-info .nav-btn a {
  display: inline-flex;
  align-items: center;
  height: 35px;
  padding: 0 22px;
  font-size: 14px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 41px;
  transition: background .3s ease, border-color .3s ease;
}
.sf-contact-info .nav-btn a .arrow {
  margin-left: 8px;
  font-size: 12px;
  transition: transform .3s ease;
}
.sf-contact-info .nav-btn a:hover {
  background: #ff0000;
  border-color: #ff0000;
}
.sf-contact-info .nav-btn a:hover .arrow { transform: translateX(4px); }
.sf-contact-info .subject {
  font-size: 15px;
  color: rgba(255,255,255,.7);
  padding-top: 4px;
}
.sf-contact-info .qr-img {
  width: 104px;
  flex-shrink: 0;
  padding-bottom: 10px;
}
.sf-contact-info .qr-img img {
  width: 100%;
  display: block;
  background: #fff;
}

/* relatedNewsMain — 等高卡片 */
.sf-related-news-main { padding: 70px 0 40px; background: #fff; }
.sf-related-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0;
}
.sf-related-head .title {
  font-size: clamp(20px, 1.8vw, 30px);
  color: #000;
  font-weight: 700;
}
.sf-related-head .btns { display: flex; gap: 5px; }
.sf-related-prev,
.sf-related-next {
  width: 45px;
  height: 31px;
  border: 0;
  border-radius: 20px;
  color: #4d4b4a;
  font-size: 18px;
  background: #fbfbfb;
  cursor: pointer;
  line-height: 1;
}
.sf-related-prev:hover,
.sf-related-next:hover { background: #ff0000; color: #fff; }
.sf-related-swiper {
  margin-top: 25px;
  overflow: hidden;
  border: 1px solid #e8e8e8;
  border-radius: 15px;
}
.sf-related-swiper .swiper-slide {
  width: calc(33.333% + 1px);
  border-right: 1px solid #e8e8e8;
  padding-top: 312px;
  position: relative;
  height: auto;
  box-sizing: border-box;
}
.sf-related-swiper .swiper-slide:last-child { border-right: none; }
.sf-related-swiper .swiper-slide a {
  display: block;
  padding: 60px 40px 0;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  box-sizing: border-box;
  transition: top .35s ease, bottom .35s ease, left .35s ease, right .35s ease, box-shadow .35s ease, border-radius .35s ease;
}
.sf-related-swiper .swiper-slide a:hover {
  left: -1px;
  right: -1px;
  top: -13px;
  bottom: -13px;
  box-shadow: 0 15px 30px rgba(0,0,0,.1);
  border-radius: 15px;
  z-index: 10;
  background: #fff;
}
.sf-related-swiper .column-title {
  font-size: 16px;
  color: #6d6d6d;
  line-height: 1.2;
}
.sf-related-swiper .list-title {
  margin-top: 10px;
  font-size: 22px;
  line-height: 31px;
  height: 62px;
  overflow: hidden;
  color: #111;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}
.sf-related-swiper .more {
  display: flex;
  padding-top: 45px;
}
.sf-related-swiper .more span {
  display: inline-flex;
  align-items: center;
  padding: 0 25px;
  height: 41px;
  border-radius: 41px;
  font-size: 14px;
  border: 1px solid #7f7f7f;
  color: #333;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.sf-related-swiper .more span i {
  font-size: 10px;
  margin-left: 10px;
  font-style: normal;
}
.sf-related-swiper .swiper-slide a:hover .more span {
  background: #ff0000;
  border-color: #ff0000;
  color: #fff;
}

/* commonReturn */
.sf-common-return {
  padding: 0 0 50px;
  display: flex;
  justify-content: center;
  background: #fff;
}
.sf-common-return a {
  padding: 0 8px 0 20px;
  height: 40px;
  border-radius: 40px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  background: #f3f1ec;
  position: relative;
}
.sf-common-return a span {
  font-size: 13px;
  position: relative;
  z-index: 10;
  color: #000;
  transition: color .6s;
}
.sf-common-return a i {
  width: 28px;
  height: 28px;
  margin-left: 20px;
  border-radius: 50%;
  background: #000;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-style: normal;
  font-size: 14px;
  position: relative;
  z-index: 1;
}
.sf-common-return a i::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #ff0000;
  z-index: -1;
  transition: width .6s, height .6s, left .6s;
}
.sf-common-return a:hover span { color: #fff; }
.sf-common-return a:hover i::after {
  width: 300px;
  height: 300px;
  left: 0;
}

/* indexConsultationMain */
.sf-consultation-main {
  padding: 70px 0 50px;
  position: relative;
  overflow: hidden;
}
.sf-consultation-main .bg {
  position: absolute;
  inset: 0;
}
.sf-consultation-main .bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sf-consultation-main .bg .m { display: none; }
.sf-consultation-inner { position: relative; z-index: 10; }
.sf-consultation-main .title {
  font-size: clamp(26px, 3.2vw, 54px);
  line-height: 1.2;
  color: #fff;
  font-weight: 700;
}
.sf-consultation-main .desc {
  padding-top: 15px;
  font-size: clamp(14px, 1vw, 16px);
  color: #fff;
  max-width: 720px;
}
.sf-consultation-main .btn {
  padding-top: 20px;
  display: flex;
}
.sf-consultation-main .btn a {
  width: 160px;
  height: 40px;
  border-radius: 40px;
  font-size: 14px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sf-consultation-main .btn a span {
  position: relative;
  z-index: 10;
  color: #fff;
  transition: color .6s;
}
.sf-consultation-main .btn a::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #ff0000;
  transition: top .6s;
}
.sf-consultation-main .btn a::after {
  content: '';
  position: absolute;
  left: 0;
  top: -100%;
  width: 100%;
  height: 100%;
  background: #fff;
  transition: top .6s;
}
.sf-consultation-main .btn a:hover span { color: #ff0000; }
.sf-consultation-main .btn a:hover::after { top: 0; }
.sf-consultation-main .line {
  margin-top: 40px;
  height: 1px;
  position: relative;
}
.sf-consultation-main .line::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 200%;
  height: 100%;
  background: rgba(255,255,255,.1);
}
.sf-consultation-main .tel-desc {
  font-size: 14px;
  padding-top: 40px;
  color: #fff;
  font-weight: 600;
}
.sf-consultation-main .tel {
  padding-top: 15px;
  font-size: 14px;
  color: #fffbef;
}
.sf-consultation-main .tel span {
  font-size: 16px;
  margin-left: 5px;
  margin-right: 15px;
  color: #ffecc0;
  font-family: var(--sf-num);
}

/* ---------- Cities（对齐主题圆角按钮 / 暖色底板） ---------- */
.sf-cities-main {
  padding: 70px 0 100px;
  background: #fffdf9;
  position: relative;
  overflow: hidden;
}
.sf-cities-intro { margin-bottom: 36px; }
.sf-cities-intro .title {
  margin: 0;
  font-size: clamp(24px, 3vw, 42px);
  line-height: 1.25;
  font-weight: 700;
  color: #000;
}
.sf-cities-intro .title i {
  display: inline-block;
  margin-left: 10px;
  width: 15px;
  height: 15px;
  position: relative;
  vertical-align: middle;
  top: -4px;
}
.sf-cities-intro .title i::before,
.sf-cities-intro .title i::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  background: #ff0000;
  transform: translate(-50%, -50%);
}
.sf-cities-intro .title i::before { width: 100%; height: 3px; }
.sf-cities-intro .title i::after { width: 3px; height: 100%; }
.sf-cities-intro .desc {
  padding-top: 12px;
  font-size: 15px;
  color: #535353;
  max-width: 560px;
}

.sf-cities-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  padding: 36px 40px;
  margin-bottom: 40px;
  border-radius: 20px;
  background:
    linear-gradient(115deg, rgba(20,16,12,.72), rgba(20,16,12,.45)),
    url('./img/contactus/index2025_00164.jpg') center/cover no-repeat;
  color: #fff;
}
.sf-cities-hero .label {
  font-family: var(--sf-num);
  font-size: 12px;
  letter-spacing: .18em;
  color: rgba(255,255,255,.65);
  margin-bottom: 8px;
}
.sf-cities-hero h2 {
  margin: 0 0 8px;
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 700;
  color: #fff;
}
.sf-cities-hero p {
  margin: 0;
  font-size: 14px;
  color: rgba(255,255,255,.78);
}
.sf-cities-cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  height: 48px;
  padding: 0 8px 0 26px;
  border-radius: 48px;
  background: #000;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  overflow: hidden;
  position: relative;
  transition: background .3s ease;
}
.sf-cities-cta span { position: relative; z-index: 2; }
.sf-cities-cta i {
  width: 34px;
  height: 34px;
  margin-left: 16px;
  border-radius: 50%;
  background: #ff0000;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-style: normal;
  font-size: 14px;
  position: relative;
  z-index: 2;
}
.sf-cities-cta:hover,
.sf-cities-cta.is-current { background: #ff0000; }
.sf-cities-cta:hover i,
.sf-cities-cta.is-current i { background: #fff; color: #ff0000; }

.sf-cities-jump { margin-bottom: 48px; }
.sf-cities-jump .jump-label {
  font-size: 13px;
  color: #6d6d6d;
  margin-bottom: 14px;
  font-weight: 600;
}
.sf-cities-jump .jump-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sf-cities-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  height: 40px;
  padding: 0 18px;
  border-radius: 40px;
  font-size: 14px;
  color: #000;
  background: #f9f5ee;
  border: 1px solid transparent;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.sf-cities-pill:hover {
  background: #ff0000;
  color: #fff;
}

.sf-cities-body {
  border: 1px solid #e8e8e8;
  border-radius: 20px;
  background: #fff;
  overflow: hidden;
}
.sf-province {
  padding: 32px 36px;
  border-bottom: 1px solid #eeebe5;
  scroll-margin-top: calc(var(--sf-header-h) + 24px);
}
.sf-province:last-child { border-bottom: none; }
.sf-province-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.sf-province-head h2 {
  margin: 0;
  font-size: clamp(18px, 1.6vw, 24px);
  font-weight: 700;
  color: #000;
}
.sf-province-head .count {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border-radius: 28px;
  font-size: 12px;
  color: #6d6d6d;
  border: 1px solid #d8d3c9;
  background: #fffcf5;
  font-family: var(--sf-num);
}
.sf-city-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.sf-city-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  height: 42px;
  padding: 0 20px;
  border-radius: 42px;
  font-size: 14px;
  color: #2a2829;
  background: #f9f5ee;
  border: 1px solid transparent;
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .25s ease;
}
a.sf-city-chip:hover {
  background: #ff0000;
  color: #fff;
  transform: translateY(-2px);
}
.sf-city-chip.is-current {
  background: #ff0000;
  color: #fff;
  border-color: #ff0000;
}
.sf-city-chip.is-disabled {
  opacity: .42;
  cursor: default;
  background: #f3f1ec;
}
.sf-cities-empty {
  padding: 60px 0;
  text-align: center;
  color: var(--sf-muted);
  font-size: 15px;
}

@media (max-width: 860px) {
  .sf-cities-main { padding: 48px 0 72px; }
  .sf-cities-hero {
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 22px;
    border-radius: 16px;
  }
  .sf-cities-cta { width: 100%; justify-content: space-between; }
  .sf-province { padding: 24px 18px; }
  .sf-city-chip {
    min-width: calc(50% - 6px);
    height: 40px;
    padding: 0 12px;
    font-size: 13px;
  }
  .sf-cities-pill { min-width: auto; height: 36px; font-size: 13px; }
}

/* ---------- 404 ---------- */
.sf-404 { text-align: center; padding: 80px 0; }
.sf-404 h2 { margin: 0 0 12px; font-size: 28px; }

/* ---------- Side float ---------- */
.sf-float {
  position: fixed;
  right: 18px;
  bottom: 80px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sf-float a,
.sf-float button {
  width: 48px; height: 48px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--sf-brown);
  font-size: 12px;
  font-weight: 600;
}
.sf-float a:hover,
.sf-float button:hover { background: var(--sf-gold); color: #fff; }
.sf-float .wx-pop {
  position: absolute;
  right: 58px;
  bottom: 0;
  background: #fff;
  padding: 12px;
  border-radius: 4px;
  box-shadow: 0 8px 28px rgba(0,0,0,.15);
  display: none;
  width: 140px;
  text-align: center;
  font-size: 12px;
  color: var(--sf-muted);
}
.sf-float .wx-wrap:hover .wx-pop { display: block; }
.sf-float .wx-pop img { width: 110px; height: 110px; object-fit: cover; margin-bottom: 6px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .sf-nav-item { padding: 0 10px; font-size: 14px; }
  .sf-brand-slogan { display: none; }
  .sf-logo { max-width: 36%; }
  .sf-demand { width: 68px; margin-left: 6px; }
  .sf-biz-data { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .sf-biz-swiper .swiper-slide { width: 280px; }
  .sf-case-card { width: 50%; }
  .sf-achieve-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; }
  .sf-news-home-grid,
  .sf-about-intro,
  .sf-contact-form .input { width: 100%; }
  .indexNewsUpdatesMain .indexNewsUpdatesList { height: 300px; }
  .sf-contact-info .list,
  .sf-contact-info .list.list-biz,
  .sf-contact-info .list.list-qr,
  .sf-contact-info .list.list-address {
    width: 100%;
    border-left: none !important;
    padding: 30px 0;
  }
  .sf-contact-info .list:nth-child(n) { border-top: 1px solid rgba(255,255,255,.1); }
  .sf-contact-info .list:first-child { border-top: none; }
  .sf-contact-info .list.list-qr {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .sf-contact-info .tel-list { width: 50%; padding-right: 20px; }
  .sf-contact-info .tel-list.hide-m { display: none; }
  .sf-contact-info-bg { top: -75vh; height: 130vh; }
  .sf-contact-info-bg .pc { display: none; }
  .sf-contact-info-bg .m { display: block; }
  .sf-related-swiper .swiper-slide {
    width: calc(50% + 1px);
    padding-top: 190px;
  }
  .sf-related-swiper .swiper-slide a { padding: 30px 20px 0; }
  .sf-related-swiper .column-title { font-size: 12px; }
  .sf-related-swiper .list-title {
    font-size: 14px;
    line-height: 24px;
    height: 48px;
  }
  .sf-related-swiper .more { padding-top: 20px; }
  .sf-related-swiper .more span {
    padding: 0 15px;
    height: 31px;
    font-size: 12px;
  }
  .sf-consultation-main .bg .pc { display: none; }
  .sf-consultation-main .bg .m { display: block; }
  .sf-contact-form .input { width: 100%; }
  .sf-detail-layout { grid-template-columns: 1fr; }
  .sf-detail-aside { position: static; }
  .sf-about-svc,
  .sf-about-svc:nth-child(even) { direction: ltr; grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  :root { --sf-header-h: 64px; }
  .sf-nav,
  .sf-header-right .sf-demand { display: none; }
  .sf-nav-toggle { display: block; }
  .sf-header {
    --sf-nav-fg: #000;
    --sf-nav-muted: rgba(0, 0, 0, .62);
    --sf-nav-line: rgba(0, 0, 0, .2);
    --sf-cta-border: #000;
    --sf-cta-fg: #000;
    color: var(--sf-nav-fg);
    background: #f7f6f3;
  }
  .sf-logo { max-width: 75%; }
  .sf-logo .logo-white { display: none !important; }
  .sf-logo .logo-black { display: block !important; }
  .sf-brand-name { font-size: 14px; }
  .sf-banner {
    height: 100svh;
    min-height: 560px;
    max-height: none;
  }
  .sf-banner-caption { align-items: flex-end; padding-bottom: 110px; }
  .sf-banner-copy { min-height: 0; max-width: 100%; }
  .sf-banner-copy h1 { font-size: 28px; }
  .sf-banner-page { bottom: 28px; }
  .sf-banner-pagination .swiper-pagination-bullet { width: 24px; height: 4px; }
  .sf-biz-data { grid-template-columns: repeat(2, 1fr); padding: 18px; }
  .sf-biz-swiper .swiper-slide { width: 78%; margin-right: 12px; padding: 22px 18px 24px; }
  .sf-biz-box { min-height: 0; }
  .sf-case-grid { margin: 0; }
  .sf-case-card {
    width: 100%;
    padding: 0 0 28px;
  }
  .sf-case-cover { padding-top: 72%; }
  .sf-case-body h3 {
    font-size: 16px;
    height: 44px;
    line-height: 22px;
  }
  .indexCaseMain2025 { padding-top: 56px; }
  .indexCase2025 { margin: 0; padding-top: 20px; }
  .indexCase2025 .list {
    width: 100%;
    margin: 16px 0 0;
  }
  .indexNewsUpdatesMain { padding: 48px 0 40px; }
  .indexNewsUpdatesMain .indexNewsUpdatesClass .swiper-slide a {
    min-width: 96px;
    height: 36px;
    font-size: 13px;
    padding: 0 14px;
  }
  .indexNewsUpdatesMain .indexNewsUpdatesImg .swiper-slide .imgBox { padding-top: 130%; border-radius: 12px; }
  .indexNewsUpdatesMain .indexNewsUpdatesList { height: 280px; }
  .indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a {
    padding: 22px 14px 12px;
    border-radius: 16px;
  }
  .indexNewsUpdatesMain .indexNewsUpdatesList .swiper-slide a .listTitle {
    font-size: 15px;
    height: 44px;
    line-height: 22px;
  }
  .indexCase2025 .list .imgBox { padding-top: 100%; border-radius: 15px; }
  .indexCase2025 .list .imgBox img { border-radius: 0; }
  .indexCase2025 .list .content {
    padding: 18px 14px;
    border-radius: 0 0 15px 15px;
  }
  .indexCase2025 .list .content .listDesc {
    max-height: 40px;
    font-size: 12px;
    line-height: 20px;
  }
  .caseMore2025 { margin: 36px 0 50px; }
  .indexContactUsMain { margin-top: 36px; }
  .indexNewsUpdatesMain .indexContactUsMain { margin-top: 36px; }
  .indexContactUsMain .content .subTitle { white-space: normal; }
  .sf-case-desc-box {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    padding: 32px 0 48px;
  }
  .sf-case-data {
    width: 100%;
    justify-content: space-between;
  }
  .sf-case-data .list {
    flex: 1;
    margin-right: 0;
    text-align: center;
  }
  .sf-case-data .numberBox { justify-content: center; }
  .sf-case-title-box .title i {
    width: 12px;
    height: 12px;
    margin-left: 8px;
  }
  .sf-news-row { grid-template-columns: 1fr; gap: 8px; }
  .sf-form-row2 { grid-template-columns: 1fr; }
  .sf-vision-grid { grid-template-columns: 1fr; }
  .sf-about-stats { grid-template-columns: repeat(2, 1fr); gap: 18px 12px; }
  .sf-float { right: 10px; bottom: 20px; }
  .sf-sec { padding: 56px 0; }
}
