@font-face {
  font-family: 'iconfont';
  /* Project id 5226543 */
  src: url('//at.alicdn.com/t/c/font_5226543_7a79jmwroco.woff2?t=1788243487098') format('woff2'), url('//at.alicdn.com/t/c/font_5226543_7a79jmwroco.woff?t=1788243487098') format('woff'), url('//at.alicdn.com/t/c/font_5226543_7a79jmwroco.ttf?t=1788243487098') format('truetype');
}
@font-face {
  font-family: Antonio;
  src: url('../fonts/Antonio-VariableFont_wght.ttf');
}
@font-face {
  font-family: PlusJakartaSans;
  src: url('../fonts/PlusJakartaSans-VariableFont_wght.ttf');
}
@font-face {
  font-family: manolomono;
  src: url('../fonts/manolomono.otf');
}
* {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
}
html,
body {
  color: #272727;
  font-family: PlusJakartaSans;
}
input,
textarea {
  font-family: 'SourceHanSans', "思源黑体", "Microsoft YaHei", '微软雅黑', "Arial";
}
:root {
  --mainC: #1F4397;
}
@media (hover: hover) and (pointer: fine) {
  html,
  body {
    cursor: none;
  }
  a,
  button,
  input,
  textarea,
  select,
  label,
  [data-cursor] {
    cursor: none;
  }
}
.cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 3vw;
  height: 3vw;
  min-width: 22px;
  min-height: 22px;
  pointer-events: none;
  z-index: 9999;
  background-image: url('../images/shubiao.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0;
  will-change: transform;
  transition: opacity 0.2s ease;
}
.cursor.is-active {
  opacity: 1;
}
@media (hover: none), (pointer: coarse) {
  .cursor {
    display: none;
  }
}
.iconfont {
  font-family: "iconfont" !important;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke-width: 0.2px;
  -moz-osx-font-smoothing: grayscale;
}
/* 修改滚动条的样式 */
::-webkit-scrollbar {
  width: 8px;
  /* 滚动条宽度 */
  height: 8px;
  /* 滚动条高度 */
}
/* 修改滚动条滑块的样式 */
::-webkit-scrollbar-thumb {
  background-color: #333333;
  /* 滑块背景颜色 */
  border-radius: 6px;
  /* 滑块圆角 */
}
@keyframes fadeIniup {
  0% {
    opacity: 0;
    transform: translateY(60px);
    -webkit-filter: blur(0.35rem);
    filter: blur(0.35rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    -webkit-filter: blur(0);
    filter: blur(0);
  }
}
@keyframes bulrAnmkey {
  0% {
    filter: blur(30px);
  }
  100% {
    filter: blur(0);
  }
}
.bulrAnm {
  -webkit-animation: bulrAnmkey 1s ease both;
  animation: bulrAnmkey 1s ease both;
  -ms-animation: bulrAnmkey 1s ease both;
  animation-delay: 0.3s;
}
.he_fadeup1 {
  -webkit-animation: fadeIniup 1s ease both;
  animation: fadeIniup 1s ease both;
  -ms-animation: fadeInUp 1s ease both;
  animation-delay: 0.3s;
}
.he_fadeup2 {
  -webkit-animation: fadeIniup 1s ease both;
  animation: fadeIniup 1s ease both;
  -ms-animation: fadeInUp 1s ease both;
  animation-delay: 0.4s;
}
.he_fadeup3 {
  -webkit-animation: fadeIniup 1s ease both;
  animation: fadeIniup 1s ease both;
  -ms-animation: fadeInUp 1s ease both;
  animation-delay: 0.5s;
}
.he_fadeup4 {
  -webkit-animation: fadeIniup 1s ease both;
  animation: fadeIniup 1s ease both;
  -ms-animation: fadeInUp 1s ease both;
  animation-delay: 0.6s;
}
.he_fadeup5 {
  -webkit-animation: fadeIniup 1s ease both;
  animation: fadeIniup 1s ease both;
  -ms-animation: fadeInUp 1s ease both;
  animation-delay: 0.7s;
}
@keyframes slideInRight {
  0% {
    opacity: 0;
    transform: translateX(var(--slideX, 100vw));
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.he_slideRight1,
.he_slideRight2,
.he_slideRight3 {
  -webkit-animation: slideInRight 1s cubic-bezier(0.215, 0.61, 0.355, 1) both;
  animation: slideInRight 1s cubic-bezier(0.215, 0.61, 0.355, 1) both;
}
.he_slideRight1 {
  animation-delay: 0.3s;
}
.he_slideRight2 {
  animation-delay: 0.5s;
}
.he_slideRight3 {
  animation-delay: 0.7s;
}
.cpthActive.animated {
  -webkit-clip-path: polygon(100% 0, 0 0, 0% 100%, 100% 100%) !important;
}
.cpth {
  -webkit-clip-path: polygon(0% 0, 0 0, 0% 100%, 0% 100%);
  -webkit-transition: 1.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0.3s;
}
.animate-on-scroll {
  /* 初始状态：透明 + 偏移 */
  opacity: 0;
  transition: all 1.2s cubic-bezier(0.25, 0.1, 0.25, 1);
  /* 1.8秒慢动画（时长可调） */
  transform-origin: center center;
  /* skew倾斜中心点（避免变形偏移） */
  transform: translateY(60px) skewY(1deg);
}
/* 动画触发后的状态 */
.animate-on-scroll.animated {
  opacity: 1;
  transform: translate(0) skew(0);
  /* 重置偏移和skew */
}
.animate-img {
  overflow: hidden;
  transition: 3s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.animate-img img {
  transform: scale(1.2, 1.2);
  transition: 2s cubic-bezier(0.25, 0.1, 0.25, 1) !important;
}
.animate-img .img {
  transform: scale(1.2, 1.2);
  transition: 2s cubic-bezier(0.25, 0.1, 0.25, 1) !important;
}
.animate-img.active {
  opacity: 1;
}
.animate-img.active img {
  transform: scale(1);
}
.animate-img.active .img {
  transform: scale(1);
}
.img-popup-layer {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  display: none;
  z-index: 9999;
  cursor: zoom-out;
}
.img-popup-layer img {
  position: absolute;
  max-width: 90%;
  max-height: 90%;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
}
header {
  width: 100%;
  position: fixed;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 13;
  padding: 0 8vw;
  transition: 0.3s all ease-in-out;
}
header .logo {
  width: 10vw;
}
header nav ul {
  display: flex;
  align-items: center;
}
header nav ul li {
  width: auto;
  margin: 0 1.8vw;
  position: relative;
}
header nav ul li a {
  font-size: 1vw;
  display: block;
  padding: 1.5vw 0;
  position: relative;
  font-family: Antonio;
  font-weight: bold;
  text-transform: uppercase;
  color: white;
  transition: color 0.3s ease;
}
header nav ul li a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 4vw;
  background: url('../images/me.png') center no-repeat;
  background-size: cover;
  transform: scaleX(0);
  bottom: -0.5vw;
  left: 0;
  transition: all 0.3s ease-in-out;
}
header nav ul li .second {
  position: absolute;
  background: white;
  padding: 0.5vw 1vw;
  margin-left: -1vw;
  -webkit-clip-path: inset(0 -100vw 100%);
  clip-path: inset(0 -100vw 100%);
  pointer-events: none;
  transition: -webkit-clip-path 0.55s ease;
  transition: clip-path 0.55s ease, -webkit-clip-path 0.55s ease;
  visibility: hidden;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
header nav ul li .second a {
  padding: 0.4vw 0;
  font-size: 0.8vw;
  white-space: nowrap;
  text-transform: inherit;
  color: #333333;
}
header nav ul li .second a:before {
  content: inherit;
}
header nav ul li .second a:hover {
  opacity: 1;
}
header nav ul li:hover a:before {
  transform: scaleX(1);
}
header nav ul li:hover .second {
  -webkit-clip-path: inset(0 -100vw -10%);
  clip-path: inset(0 -100vw -10%);
  pointer-events: all;
  visibility: visible;
}
header nav ul li.active a:before {
  transform: scaleX(1);
}
header nav ul .lang {
  color: white;
  font-size: 1vw;
  cursor: pointer;
  margin-left: 2vw;
  font-family: inherit;
  position: relative;
  padding: 1.5vw 0;
}
header nav ul .lang .langList {
  position: absolute;
  top: 80%;
  right: -1vw;
  min-width: 2.5vw;
  background: #ffffff;
  padding: 0.4vw 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-0.4vw);
  transition: 0.3s all ease-in-out;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
header nav ul .lang .langList a {
  display: block;
  padding: 0.4vw 1vw;
  font-size: 0.8vw;
  font-family: Antonio;
  font-weight: bold;
  text-transform: uppercase;
  color: #333333;
  transition: 0.3s all ease-in-out;
}
header nav ul .lang .langList a:hover,
header nav ul .lang .langList .active1 {
  color: #F18D00;
}
header nav ul .lang:hover .langList {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
header .menuBtn {
  display: none;
}
header.active2 {
  transform: translateY(-5vw);
}
.index {
  width: 100%;
  position: relative;
}
.index .f1 {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  z-index: 1;
}
.index .f1 .bgSwiper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  will-change: transform;
}
.index .f1 .bgSwiper .swiper-wrapper,
.index .f1 .bgSwiper .swiper-slide {
  width: 100%;
  height: 100%;
}
.index .f1 .bgSwiper .swiper-slide {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.index .f1 .swiper-pagination {
  width: auto;
  position: absolute;
  bottom: 2.5vw;
  right: 5vw;
  left: auto;
  display: flex;
  gap: 0.5vw;
  align-items: center;
  justify-content: flex-end;
  z-index: 9;
}
.index .f1 .swiper-pagination-bullet {
  width: 0.5vw;
  height: 1.2vw;
  min-width: 5px;
  min-height: 12px;
  border-radius: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.6);
  opacity: 1;
  margin: 0;
  cursor: pointer; /* 分页器可点击 */
  transform: skewX(-18deg);
  transform-origin: center;
  transition: background 0.25s ease, border-color 0.25s ease;
}
.index .f1 .swiper-pagination-bullet-active {
  background: #F18D00;
  border-color: #F18D00;
}
.index .f1 .bgVideo {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: .9;
  z-index: 2;
  will-change: transform;
  pointer-events: none;
}
.index .f1 .bgVideo video {
  width: 100%;
  height: 100%;
  opacity: 0.75;
  object-fit: cover !important;
}
.index .f1 .frost {
  position: absolute;
  inset: 0;
  z-index: 9;
  background: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}
.index .f1 .scroll {
  position: absolute;
  transform: translateX(-50%);
  left: 50%;
  bottom: 1vw;
  color: white;
  font-family: Antonio;
  font-size: 1vw;
  z-index: 2;
}
.index .f1 .scroll img {
  width: 3vw;
  margin: -0.3vw auto 0 auto;
  animation: scrollImg 2s linear infinite;
}
@keyframes scrollImg {
  0% {
    transform: translateY(0.5vw);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0.5vw);
  }
}
.index .f1 .text {
  position: absolute;
  z-index: 3;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  font-size: 8vw;
  color: white;
  line-height: 1.2;
  font-family: Antonio;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  perspective: 600px;
}
.index .f1 .text .line {
  /* 首页主标题是 <h1 class="text">，内部只能是 phrasing content，所以 .line/.t1/.t2 用 span；
     这里把 .line 显式 block 化，保持原来的分行行为 */
  display: block;
}
.index .f1 .text .t1 {
  opacity: 0;
  will-change: transform, filter;
  display: block;
  color: transparent;
  -webkit-text-stroke: 0.12vw #ffffff;
  text-stroke: 0.12vw #ffffff;
  font-weight: bold;
}
.index .f1 .text .t2 {
  opacity: 0;
  will-change: transform, filter;
  display: block;
  color: #ffffff;
  font-weight: bold;
}
.index .f1 .text .char {
  display: inline-block;
  will-change: transform, filter;
}
.index .f2 {
  width: 100%;
  position: relative;
  z-index: 2;
  margin-top: 100vh;
}
.index .f2 .wrap {
  width: 84vw;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 8vw 0;
}
.index .f2 .wrap .left {
  width: 45%;
  position: sticky;
  top: 5vw;
}
.index .f2 .wrap .left .imgBox {
  max-width: 35vw;
  position: relative;
  overflow: hidden;
  margin-left: -2vw;
  align-items: center;
}
.index .f2 .wrap .left .imgBox img {
  width: 100%;
  display: block;
  border-radius: 0.7vw;
  position: relative;
  z-index: 2;
}
.index .f2 .wrap .left .title {
  font-size: 7vw;
  color: #ffffff;
  font-family: Antonio;
  line-height: 1.2;
  text-transform: uppercase;
  font-weight: bold;
}
.index .f2 .wrap .right {
  width: 55%;
  padding-left: 4vw;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: 8vh;
  box-sizing: border-box;
}
.titBoxs{
  display: flex;
  margin-bottom: 4vw;
  align-items: end;
  justify-content: space-between;
}
.titBoxs .btnBox{
  margin-top: -1vw;
  margin-right: 8vw;
}
.index .f2 .wrap .right .info p {
  font-size: 1vw;
  color: #ffffff;
  line-height: 1.8;
  text-align: justify;
}
.index .f2 .wrap .right .info .btnBox {
  margin-top: 2vw;
}
.index .f2 .wrap .right .nums {
  margin-top: 3vw;
}
.index .f2 .wrap .right .nums .numItem {
  padding: 1.5vw 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.index .f2 .wrap .right .nums .numItem .numWrap {
  display: flex;
  align-items: flex-start;
  color: #F5A623;
  letter-spacing: -5px;
  font-size: 6.5vw;
  font-family: manolomono;
  line-height: 1;
}
.index .f2 .wrap .right .nums .numItem .numWrap .plus {
  font-size: 2vw;
  margin-left: 0.2vw;
}
.index .f2 .wrap .right .nums .numItem .label {
  margin-top: 0.5vw;
  font-size: 0.9vw;
  color: #ffffff;
  text-transform: capitalize;
}
.index .f3 {
  width: 100%;
  position: relative;
  z-index: 3;
  padding: 6vw 8vw;
}
.index .f3 .cards {
  position: relative;
  margin-top: 3vw;
}
.index .f3 .cards .card {
  width: 100%;
  height: 15vw;
  position: sticky;
  padding: 3vw;
  top: 5vw;
  display: flex;
  background: #111111;
  overflow: hidden;
  box-shadow: 0 -1.5vw 4vw rgba(0, 0, 0, 0.55);
  transition: background 0.5s ease;
}
.index .f3 .cards .card:nth-child(1) {
  z-index: 1;
}
.index .f3 .cards .card:nth-child(2) {
  z-index: 2;
}
.index .f3 .cards .card:nth-child(3) {
  z-index: 3;
}
.index .f3 .cards .card:nth-child(4) {
  z-index: 4;
}
/* 卡片数量跟着后台 services 数据走，每多一张就要补一条 z-index：
   没有 z-index 的卡片是 auto（低于任何正 z-index），会钻到前面几张下面、堆叠效果就断了 */
.index .f3 .cards .card:nth-child(5) {
  z-index: 5;
}
.index .f3 .cards .card.active {
  background: #0a0a0a;
}
.index .f3 .cards .card .bgWrap {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.index .f3 .cards .card .bgWrap .bg {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 1;
}
.index .f3 .cards .card .bgWrap .overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.4)
}
.index .f3 .cards .card.active .bgWrap {
  opacity: 1;
}
.index .f3 .cards .card .topLine {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: #F18D00;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.5s ease;
  z-index: 5;
}
.index .f3 .cards .card.active .topLine {
  transform: scaleX(1);
}
.index .f3 .cards .card .wrap {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 3;
}
.index .f3 .cards .card .wrap .left {
  display: flex;
  align-items: flex-start;
}
.index .f3 .cards .card .wrap .left .num {
  display: block;
  font-family: manolomono;
  font-size: 1vw;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.1em;
  transition: color 0.5s ease;
}
.index .f3 .cards .card .wrap .left .title {
  font-size: 3.5vw;
  color: rgba(255, 255, 255, 0.35);
  text-transform: uppercase;
  line-height: 0.7;
  margin-left: 5vw;
  transition: color 0.5s ease;
}
.index .f3 .cards .card .wrap .right {
  width: 35%;
  font-size: 0.95vw;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.9;
  transition: color 0.5s ease;
}
.index .f3 .cards .card .wrap .right p {
  margin: 0 0 0.5vw;
}
.index .f3 .cards .card.active .left .num {
  color: #F18D00;
}
.index .f3 .cards .card.active .left .title {
  color: #ffffff;
}
.index .f3 .cards .card.active .right {
  color: #ffffff;
}
.index .f4 {
  width: 100%;
  background-size: cover !important;
  position: relative;
  z-index: 2;
  padding: 8vw;
}
.index .f4 .secTitle {
  margin-bottom: 5vw;
  text-align: center;
}
.index .f4 .features {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2vw;
}
.index .f4 .features .item {
  width: 33%;
  display: flex;
  flex-direction: column;
  text-align: left;
}
.index .f4 .features .item .icon {
  width: 3.5vw;
  height: 3.5vw;
  margin: 0 auto 1.5vw auto;
}
.index .f4 .features .item .icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.index .f4 .features .item .title {
  font-size: 1.8vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  line-height: 1.2;
  height: 5vw;
  margin-bottom: 1vw;
  text-align: center;
}
.index .f4 .features .item p {
  font-size: 0.95vw;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.8;
  margin: 0;
}
.index .f4 .btnBox {
  display: table;
  margin: 4vw auto 0 auto;
}
.index .f4::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 10vw;
  top: -10vw;
  left: 0;
  background: linear-gradient(to top, #000000 0%, transparent 100%);
}
.index .f5 {
  width: 100%;
  position: relative;
  z-index: 1;
  background: #000000;
}
.index .f5 .secTitle {
  margin-left: 8vw;
}
.index .f5 .caseCards {
  width: 100%;
  display: flex;
  position: relative;
  z-index: 1;
  align-items: stretch;
  justify-content: space-between;
  gap: 2vw;
  padding: 0 8vw;
  overflow-x: clip;
}
.index .f5 .caseCards .card {
  width: calc((100% - 4vw) / 3);
  position: relative;
  border-radius: 1vw;
  overflow: hidden;
  box-shadow: 0 0.8vw 2vw rgba(0, 0, 0, 0.45);
}
.index .f5 .caseCards .card .img {
  width: 100%;
  height: 27vw;
  position: relative;
  overflow: hidden;
}
.index .f5 .caseCards .card .img img {
  width: 100%;
  height: 100%;
  transition: 0.5s all ease-in-out;
}
.index .f5 .caseCards .card .tags {
  position: absolute;
  top: 1vw;
  left: 1vw;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5vw;
  z-index: 2;
}
.index .f5 .caseCards .card .tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4vw;
  height: 1.6vw;
  padding: 0 0.7vw;
  border-radius: 5vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.35);
  font-size: 0.75vw;
  line-height: 1;
  color: #ffffff;
  text-transform: uppercase;
}
.index .f5 .caseCards .card .info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2vw 1.2vw;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  background: linear-gradient(0deg, black, transparent);
}
.index .f5 .caseCards .card .info h3 {
  font-family: Antonio;
  font-size: 1.6vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  line-height: 1.2;
  margin: 0;
}
.index .f5 .caseCards .card .info .arrow {
  width: 2.4vw;
  height: 2.4vw;
  border-radius: 50%;
  background: #F18D00;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #ffffff;
  text-decoration: none;
  transition: transform 0.25s ease;
}
.index .f5 .caseCards .card .info .arrow svg {
  width: 55%;
  height: 55%;
  display: block;
}
.index .f5 .caseCards .card .info .arrow:hover {
  transform: scale(1.1);
}
.index .f5 .caseCards .card:hover .img img {
  transform: scale(1.1);
}
.index .f5 .caseCards .card:hover .arrow {
  transform: rotate(45deg);
}
.index .f5 .f5Bg {
  width: 100%;
  position: relative;
  z-index: 0;
  margin-top: -8vw;
}
.index .f5 .f5Bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.index .f6 {
  width: 100%;
  position: relative;
  z-index: 3;
  margin-top: -45vw;
}
.index .f6 .f6LogoBox {
  width: 100%;
  margin: 0 auto;
  position: relative;
  top: 15vw;
  z-index: 2;
  padding: 8vw;
}
.index .f6 .f6LogoBox .secTitle {
  margin-bottom: 4vw;
}
.index .f6 .f6LogoBox .logoGrid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 1px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.12);
  overflow: hidden;
}
.index .f6 .f6LogoBox .logoGrid .logoItem {
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid transparent;
  position: relative;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.index .f6 .f6LogoBox .logoGrid .logoItem img {
  max-width: 70%;
  max-height: 55%;
  object-fit: contain;
  display: block;
  /* 默认压成纯白：brightness(0) 先把整张图变黑，invert(1) 再翻成白（透明区不受影响）。
     hover 回原色用 brightness(1) invert(0) —— 两边滤镜函数列表一致，才能平滑过渡；
     若写成 filter: none，浏览器无法插值，会变成硬切换。 */
  filter: brightness(0) invert(1);
  transition: filter 0.3s ease, transform 0.3s ease;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner {
  position: absolute;
  width: 0.35vw;
  height: 0.35vw;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  z-index: 3;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-tl {
  top: 0.4vw;
  left: 0.4vw;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-tr {
  top: 0.4vw;
  right: 0.4vw;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-bl {
  bottom: 0.4vw;
  left: 0.4vw;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-br {
  bottom: 0.4vw;
  right: 0.4vw;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner::before,
.index .f6 .f6LogoBox .logoGrid .logoItem .corner::after {
  content: '';
  position: absolute;
  background: #F18D00;
  opacity: 0;
  transition: opacity 0.3s ease, width 0.7s ease, height 0.7s ease;
  box-shadow: 0 0 0.3vw rgba(241, 141, 0, 0.8);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner::before {
  width: 0;
  height: 1px;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner::after {
  width: 1px;
  height: 0;
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-tl::before {
  top: 50%;
  left: 50%;
  transform: translateY(-50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-tl::after {
  top: 50%;
  left: 50%;
  transform: translateX(-50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-tr::before {
  top: 50%;
  right: 50%;
  transform: translateY(-50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-tr::after {
  top: 50%;
  right: 50%;
  transform: translateX(50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-bl::before {
  bottom: 50%;
  left: 50%;
  transform: translateY(50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-bl::after {
  bottom: 50%;
  left: 50%;
  transform: translateX(-50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-br::before {
  bottom: 50%;
  right: 50%;
  transform: translateY(50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem .corner.corner-br::after {
  bottom: 50%;
  right: 50%;
  transform: translateX(50%);
}
.index .f6 .f6LogoBox .logoGrid .logoItem:hover {
  background: rgba(0, 0, 0, 0.75);
  box-shadow: inset 0 0 1.5vw rgba(241, 141, 0, 0.25), 0 0 1.2vw rgba(241, 141, 0, 0.2);
}
.index .f6 .f6LogoBox .logoGrid .logoItem:hover img {
  filter: brightness(1) invert(0); /* 恢复图片原色 */
  transform: scale(1.05);
}
.index .f6 .f6LogoBox .logoGrid .logoItem:hover .corner {
  background: #F18D00;
  box-shadow: 0 0 0.5vw #F18D00, 0 0 1vw rgba(241, 141, 0, 0.5);
}
.index .f6 .f6LogoBox .logoGrid .logoItem:hover .corner::before,
.index .f6 .f6LogoBox .logoGrid .logoItem:hover .corner::after {
  opacity: 1;
}
.index .f6 .f6LogoBox .logoGrid .logoItem:hover .corner::before {
  width: 7.7vw;
}
.index .f6 .f6LogoBox .logoGrid .logoItem:hover .corner::after {
  height: 4.06vw;
}
.index .f7 {
  width: 100%;
  position: relative;
  background: #141414;
  padding: 14vw 8vw 8vw 8vw;
  margin-top: 0vw;
  z-index: 2;
}
.index .f7 .secTitle {
  margin-bottom: 3vw;
}
.index .f7 .newsGrid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2vw;
}
.index .f7 .newsGrid .newsCard {
  width: 100%;
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.index .f7 .newsGrid .newsCard .newsImg {
  width: 100%;
  height: 15vw;
  position: relative;
  border-radius: 0.5vw;
  overflow: hidden;
}
.index .f7 .newsGrid .newsCard .newsImg img {
  width: 100%;
  height: 100%;
  border-radius: 0.5vw;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.index .f7 .newsGrid .newsCard .newsDesc {
  font-family: BarlowRegular;
  font-size: 0.95vw;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  margin: 1vw 0 0.8vw;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.index .f7 .newsGrid .newsCard .newsDate {
  font-family: BarlowRegular;
  font-size: 0.8vw;
  color: rgba(255, 255, 255, 0.45);
}
.index .f7 .newsGrid .newsCard:hover .newsImg img {
  transform: scale(1.08);
}
.index .f7 .newsGrid .newsCard:hover .newsDesc {
  color: #ffffff;
}
footer {
  width: 100%;
  position: relative;
  background: #000000;
  padding: 5vw 8vw 2vw;
  z-index: 9;
}
footer .footerTop {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  margin-bottom: 4vw;
}
footer .footerTop .footerLeft .footerTitle {
  font-family: Antonio;
  font-size: 2.2vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1.2vw;
}
footer .footerTop .footerLeft .socials {
  display: flex;
  align-items: center;
  gap: 0.9vw;
  margin-bottom: 1.5vw;
}
footer .footerTop .footerLeft .socials a {
  width: 1.6vw;
  height: 1.6vw;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
footer .footerTop .footerLeft .socials a img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: brightness(1);
}
footer .footerTop .footerLeft .socials a:hover {
  transform: translateY(-0.15vw);
  opacity: 0.85;
}
footer .footerTop .footerLeft .contactBtn {
  padding: 0.7vw 1.8vw;
  font-size: 0.85vw;
}
footer .footerTop .footerRight {
  display: flex;
  gap: 6vw;
  padding-right: 5vw;
}
footer .footerTop .footerRight .linkCol {
  display: flex;
  flex-direction: column;
  gap: 0.9vw;
}
footer .footerTop .footerRight .linkCol h4 {
  font-family: BarlowRegular;
  font-size: 0.75vw;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.3vw;
}
footer .footerTop .footerRight .linkCol a {
  font-family: BarlowRegular;
  font-size: 0.85vw;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.3s ease;
}
footer .footerTop .footerRight .linkCol a:hover {
  color: #F18D00;
}
footer .footerTop .backTops {
  position: absolute;
  top: 0;
  right: 0;
  width: 3vw;
  height: 3vw;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #F18D00;
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
footer .footerTop .backTops svg {
  width: 1.2vw;
  height: 1.2vw;
}
footer .footerTop .backTops:hover {
  background: rgba(241, 141, 0, 0.1);
  border-color: #F18D00;
  transform: translateY(-0.2vw);
}
footer .footerBrand {
  width: 100%;
  font-family: Antonio;
  font-size: 23vw;
  font-weight: bold;
  position: absolute;
  color: #ffffff;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: 2vw;
  left: 0;
  pointer-events: none;
  margin-top: -8vw;
}
footer .footerBrand .char {
  display: inline-block;
  will-change: transform, filter;
  transform-origin: 50% 100%;
}
footer .footerBottom {
  width: 100%;
  margin-top: 25vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
footer .footerBottom span {
  font-family: BarlowRegular;
  font-size: 0.7vw;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
footer::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 15vw;
  top: -15vw;
  left: 0;
  pointer-events: none;
  background: url('../images/Ellipse1.png') center no-repeat;
  background-size: cover !important;
}
.bannerBox {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
}
.bannerBox .banner {
  width: 100%;
  height: 100%;
  background-size: cover !important;
  will-change: transform;
}
.bannerBox video {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  position: relative;
  z-index: -1;
}
.bannerBox .text {
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  color: white;
  font-size: 8vw;
  /* 这个元素是各页面的 SEO 一级标题（about/services/careers/news 用的是 <h1 class="text">），
     显式写成 400 抵消 h1 默认的 bold，视觉与之前完全一致 */
  font-weight: 400;
  font-family: Antonio;
  text-transform: uppercase;
  line-height: 1;
  z-index: 9;
  opacity: 0;
}
.bannerBox .text .char {
  display: inline-block;
  will-change: transform, filter;
  transform-origin: 50% 100%;
}
.bannerBox .textImg {
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  z-index: 2;
  text-align: center;
  color: #fff;
  font-family: Antonio;
}
.bannerBox .textImg .logoN{
  width: 8vw;
  margin: 5vw auto 0 auto;
}
.bannerBox .textImg .annNum {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  line-height: 0.9;
}
.bannerBox .textImg .annNum .num {
  display: inline-block;
  font-size: 14vw;
  color: transparent;
  -webkit-text-stroke: 0.2vw #fff;
  font-family: manolomono;
}
.bannerBox .textImg .annNum .th {
  font-size: 2.4vw;
  font-weight: 700;
  color: #fff;
}
.bannerBox .textImg .annTag {
  font-size: 2.6vw;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-top: 0.5vw;
  color: #fff;
}
.bannerBox .scroll {
  position: absolute;
  transform: translateX(-50%);
  left: 50%;
  bottom: 1vw;
  color: white;
  font-family: Antonio;
  font-size: 1vw;
  z-index: 2;
}
.bannerBox .scroll img {
  width: 3vw;
  margin: -0.3vw auto 0 auto;
  animation: scrollImg 2s linear infinite;
}
@keyframes scrollImg {
  0% {
    transform: translateY(0.5vw);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0.5vw);
  }
}
.bannerBox::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(13, 13, 12, 0.25) 0%, #000 100%);
}
.secTitle {
  font-family: Antonio;
  font-size: 4vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
}
.index .f2 .wrap .left .title,
.secTitle.clipOn {
  position: relative;
  --go: 0;
}
.index .f2 .wrap .left .title,
.secTitle.clipOn {
  color: rgba(255, 255, 255, 0.22);
}
.clipLines {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  pointer-events: none;
  user-select: none;
}
.clipLines .clipLine {
  display: block;
  white-space: nowrap;
}
.index .f2 .wrap .left .title .clipLines,
.secTitle .clipLines {
  color: #ffffff;
}
.index .f2 .wrap .right .info p .clipLines {
  color: rgba(255, 255, 255, 0.65);
}
.aboutUs .aboutSec .aboutLeft p .clipLines {
  color: rgba(255, 255, 255, 0.7);
}
.btnBox {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9vw 2.2vw;
  border: none;
  border-radius: 5px;
  color: #f5f5f5;
  font-size: 0.9vw;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.25);
}
.btnBox .spec-canvas {
  position: absolute;
  /* 必须显式给宽高：canvas 是替换元素，只有 inset/-20px 时 width/height 会取 canvas 的
     固有尺寸（= JS 里设置的 canvas.width/height 属性），而那是 (按钮尺寸 + 40px) * devicePixelRatio
     的设备像素值。于是布局尺寸会随屏幕缩放（DPR 1.25/1.5/2）被放大，高光框整体偏移、放大。 */
  top: -20px; /* 与 JS specular() 里的 PAD = 20 保持一致，改一边要同步另一边 */
  left: -20px;
  width: calc(100% + 40px);
  height: calc(100% + 40px);
  pointer-events: none;
  z-index: 0;
}
.btnBox .spec-label {
  position: relative;
  z-index: 1;
}
.btnBox.no-webgl {
  border: 1px solid #cccccc;
}
.btnBox.no-webgl .spec-canvas {
  display: none;
}
.cases {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.cases .bannerBox .text {
  transform: translateY(-50%);
  left: 8vw;
}
.cases .f1 {
  width: 100%;
  height: 100vh;
  position: relative;
  background: url('../images/bg1.jpg') center no-repeat;
  background-size: cover;
  z-index: 10;
  overflow: visible;
  padding: 6vw 8vw;
}
.cases .f1 .secTitle {
  opacity: 0;
}
.cases .f1 .caseCards {
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
  margin-top: 2vw;
}
.cases .f1 .caseCards .card {
  width: 20vw;
  height: 30vw;
  position: relative;
  border-radius: 1vw;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  pointer-events: auto;
  box-shadow: 0 0.8vw 2vw rgba(0, 0, 0, 0.45);
}
.cases .f1 .caseCards .card::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85), transparent);
  pointer-events: none;
}
.cases .f1 .caseCards .card .tags {
  position: absolute;
  top: 1vw;
  left: 1vw;
  right: 1vw;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4vw;
  z-index: 2;
}
.cases .f1 .caseCards .card .tags span {
  display: inline-block;
  padding: 0.25vw 0.7vw;
  border-radius: 5vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-size: 0.85vw;
  line-height: 1.3;
  color: white;
  backdrop-filter: blur(2px);
}
.cases .f1 .caseCards .card .info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1vw;
  z-index: 2;
  color: #ffffff;
}
.cases .f1 .caseCards .card .info h3 {
  font-size: 1.2vw;
  text-transform: uppercase;
  line-height: 1.2;
  margin-bottom: 0.3vw;
}
.cases .f1 .caseCards .card .info p {
  font-size: 0.85vw;
  color: rgba(255, 255, 255, 0.8);
}
.cases .f2 {
  width: 100%;
  background: #000000;
  padding: 6vw 8vw 10vw 8vw;
  position: relative;
  z-index: 2;
}
.cases .f2 .btnBox{
  display: table;
  margin: 5vw auto 0 auto;
}
.cases .f2 .secTitle {
  margin-bottom: 4vw;
}
.cases .f2 .f2List {
  display: flex;
  flex-direction: column;
  gap: 4vw;
}
.cases .f2 .f2Item {
  display: flex;
  gap: 3vw;
  align-items: stretch;
}
.cases .f2 .f2Item .f2Img {
  width: 50%;
  height: 20vw;
  overflow: hidden;
  border-radius: 1vw;
}
.cases .f2 .f2Item .f2Img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: 0.5s all ease-in-out;
}
.cases .f2 .f2Item .f2Img:hover img {
  transform: scale(1.1);
}
.cases .f2 .f2Item .f2Info {
  width: 50%;
  display: flex;
  flex-direction: column;
  padding: 1vw 0;
}
.cases .f2 .f2Item .f2Info .f2Top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5vw;
}
.cases .f2 .f2Item .f2Info .f2Top .f2Game {
  display: flex;
  align-items: center;
  gap: 1.5vw;
}
.cases .f2 .f2Item .f2Info .f2Top .f2Game .f2Logo {
  width: 5vw;
  height: 5vw;
}
.cases .f2 .f2Item .f2Info .f2Top .f2Game .f2Logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}
.cases .f2 .f2Item .f2Info .f2Top .f2Game .f2GameText h3 {
  font-size: 1.6vw;
  color: #ffffff;
  font-weight: 700;
  margin-bottom: 0.3vw;
  text-transform: uppercase;
}
.cases .f2 .f2Item .f2Info .f2Top .f2Game .f2GameText p {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.6);
}
.cases .f2 .f2Item .f2Info .f2Top .f2Brand {
  width: 7vw;
}
.cases .f2 .f2Item .f2Info .f2Top .f2Brand img {
  width: 100%;
  display: block;
}
.cases .f2 .f2Item .f2Info .f2Desc {
  font-size: 0.95vw;
  color: white;
  line-height: 1.7;
  padding: 2vw 0;
  border-top: 1px solid white;
}
.cases .f2 .f2Item .f2Info .f2Tags {
  display: flex;
  gap: 1vw;
  margin-top: auto;
}
.cases .f2 .f2Item .f2Info .f2Tags span {
  background: #F18D00;
  color: #000000;
  padding: 0.5vw 1.5vw;
  border-radius: 5vw;
  font-size: 0.8vw;
  font-weight: 600;
}
.news {
  width: 100%;
  position: relative;
}
.news .newsSec {
  width: 100%;
  background: #000000;
  padding: 6vw 8vw;
}
.news .newsSec .newsTabs {
  display: flex;
  justify-content: center;
  gap: 4vw;
  margin-bottom: 4vw;
}
.news .newsSec .newsTabs .newsTab {
  font-size: 1.5vw;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  padding-bottom: 0.5vw;
  position: relative;
  transition: color 0.3s ease;
}
.news .newsSec .newsTabs .newsTab.active {
  color: #F18D00;
  font-weight: 600;
}
.news .newsSec .newsTabs .newsTab.active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.7vw;
  height: 0.1vw;
  background: #F18D00;
}
.news .newsSec .newsTabs .newsTab.active::before {
  content: '';
  position: absolute;
  transform: translateX(50%) rotate(45deg);
  left: 50%;
  bottom: -0.85vw;
  width: 0.4vw;
  height: 0.4vw;
  background: #F18D00;
}
.news .newsSec .newsTabs .newsTab:hover {
  color: #F18D00;
}
.news .newsSec .newsList .newsFeatured {
  display: flex;
  gap: 4vw;
  margin-bottom: 4vw;
}
.news .newsSec .newsList .newsFeatured .newsImg {
  width: 45%;
  height: 22vw;
  border-radius: 1vw;
  overflow: hidden;
}
.news .newsSec .newsList .newsFeatured .newsImg img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  display: block;
  transition: 0.5s all ease-in-out;
}
.news .newsSec .newsList .newsFeatured .newsInfo {
  width: 55%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.news .newsSec .newsList .newsFeatured .newsInfo .newsDate {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 1.5vw;
}
.news .newsSec .newsList .newsFeatured .newsInfo .newsTitle {
  font-size: 1.8vw;
  color: #ffffff;
  line-height: 1.4;
  margin-bottom: 1.5vw;
}
.news .newsSec .newsList .newsFeatured .newsInfo .newsDesc {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 2vw;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news .newsSec .newsList .newsFeatured .newsInfo .newsBtn {
  align-self: flex-start;
}
.news .newsSec .newsList .newsFeatured:hover .newsImg img {
  transform: scale(1.1);
}
.news .newsSec .newsList .newsGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2vw;
}
.news .newsSec .newsList .newsGrid .newsItem .newsImg {
  width: 100%;
  height: 15vw;
  border-radius: 0.5vw;
  overflow: hidden;
  margin-bottom: 1.5vw;
}
.news .newsSec .newsList .newsGrid .newsItem .newsImg img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  display: block;
  transition: 0.5s all ease-in-out;
}
.news .newsSec .newsList .newsGrid .newsItem .newsTitle {
  font-size: 1.1vw;
  color: #ffffff;
  line-height: 1.4;
  margin-bottom: 1vw;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news .newsSec .newsList .newsGrid .newsItem .newsDate {
  font-size: 0.8vw;
  color: rgba(255, 255, 255, 0.5);
}
.news .newsSec .newsList .newsGrid .newsItem:hover .newsImg img {
  transform: scale(1.1);
}
.aboutUs {
  width: 100%;
  position: relative;
}
.aboutUs .aboutSec {
  width: 100%;
  height: 100vh;
  background: url('../images/bg1.jpg') center no-repeat;
  background-size: cover;
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6vw 8vw;
  overflow: hidden;
}
.aboutUs .aboutSec .aboutLeft {
  width: 43%;
  position: relative;
  z-index: 2;
}
.aboutUs .aboutSec .aboutLeft .secTitle {
  margin-bottom: 2vw;
}
.aboutUs .aboutSec .aboutLeft p {
  font-size: 1vw;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.7);
  text-align: justify;
}
.aboutUs .aboutSec .aboutRight {
  width: 55%;
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 15vw;
}
.aboutUs .aboutSec .aboutRight .aboutBubbles {
  width: 100%;
  position: relative;
  aspect-ratio: 1 / 0.9;
}
.aboutUs .aboutSec .aboutRight .bubble,
.aboutUs .aboutSec .aboutRight .thumb {
  position: absolute;
  opacity: 0;
  scale: 0;
  will-change: scale, translate, opacity;
  animation: aboutBubbleBounce 3.5s ease-in-out infinite;
}
.aboutUs .aboutSec .aboutRight .bubbleIn {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.aboutUs .aboutSec .aboutRight .animated {
  opacity: 1;
  scale: 1;
  animation: aboutBubbleZoomIn 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) both, aboutBubbleBounce 3.5s ease-in-out infinite;
}
.aboutUs .aboutSec .aboutRight .bubble {
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  backdrop-filter: blur(25px);
  background: radial-gradient(circle at 30% 30%, rgba(241, 141, 0, 0.28), rgba(241, 141, 0, 0.08) 60%, rgba(241, 141, 0, 0.02) 100%);
  border: 1px solid #F18D00;
  box-shadow: 0 0 2vw rgba(241, 141, 0, 0.15), inset 0 0 2vw rgba(241, 141, 0, 0.08);
}
.aboutUs .aboutSec .aboutRight .bubble .num {
  font-size: 5vw;
  line-height: 1;
  color: #F18D00;
  letter-spacing: -0.5vw;
  display: flex;
  align-items: baseline;
  justify-content: center;
  font-family: manolomono;
}
.aboutUs .aboutSec .aboutRight .bubble .num em {
  font-style: normal;
  font-size: 0.55em;
  font-weight: 700;
  margin-left: 0.1em;
  position: relative;
  top: -2vw;
}
.aboutUs .aboutSec .aboutRight .bubble .lbl {
  font-size: 1vw;
  color: #ffffff;
  margin-top: 0.6vw;
  font-family: PlusJakartaSans, sans-serif;
}
.aboutUs .aboutSec .aboutRight .bubble1 {
  width: 16vw;
  height: 16vw;
  top: 0;
  left: 8vw;
}
.aboutUs .aboutSec .aboutRight .bubble2 {
  width: 13vw;
  height: 13vw;
  top: 4vw;
  right: 5vw;
}
.aboutUs .aboutSec .aboutRight .bubble3 {
  width: 12vw;
  height: 12vw;
  top: 18vw;
  left: 12vw;
}
.aboutUs .aboutSec .aboutRight .bubble4 {
  width: 16vw;
  height: 16vw;
  top: 18vw;
  right: 3vw;
}
.aboutUs .aboutSec .aboutRight .bubble1.animated {
  animation-delay: 0s, 0s;
}
.aboutUs .aboutSec .aboutRight .bubble2.animated {
  animation-delay: 0.12s, 0.12s;
}
.aboutUs .aboutSec .aboutRight .bubble3.animated {
  animation-delay: 0.24s, 0.24s;
}
.aboutUs .aboutSec .aboutRight .bubble4.animated {
  animation-delay: 0.36s, 0.36s;
}
.aboutUs .aboutSec .aboutRight .thumb {
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0.4vw 1.2vw rgba(0, 0, 0, 0.25);
  transition: transform 0.5s ease;
}
.aboutUs .aboutSec .aboutRight .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aboutUs .aboutSec .aboutRight .thumb:hover {
  transform: scale(1.15);
}
.aboutUs .aboutSec .aboutRight .thumb1 {
  top: -2vw;
  right: 16vw;
  width: 5.5vw;
  height: 5.5vw;
}
.aboutUs .aboutSec .aboutRight .thumb2 {
  top: 18vw;
  left: 6vw;
  width: 5vw;
  height: 5vw;
}
.aboutUs .aboutSec .aboutRight .thumb1.animated {
  animation-delay: 0.5s, 0.5s;
}
.aboutUs .aboutSec .aboutRight .thumb2.animated {
  animation-delay: 0.62s, 0.62s;
}
@keyframes aboutBubbleBounce {
  0%,
  100% {
    translate: 0 0;
  }
  50% {
    translate: 0 -0.7vw;
  }
}
@keyframes aboutBubbleZoomIn {
  0% {
    opacity: 0;
    scale: 0;
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    scale: 1;
  }
}
.aboutUs .cultureSec {
  width: 100%;
  position: relative;
  z-index: 2;
}
.aboutUs .cultureSec .cultureBg {
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 1;
}
.aboutUs .cultureSec .cultureBg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aboutUs .cultureSec .cultureBg::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.1) 21.73%, rgba(0, 0, 0, 0.1) 74.69%, #000 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 100%);
}
.aboutUs .cultureSec .cultureInner {
  position: relative;
  z-index: 3;
  margin-top: -100vh;
}
.aboutUs .cultureSec .cultureBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 8vw 8vw;
}
.aboutUs .cultureSec .cultureBox .secTitle {
  margin-bottom: 3vw;
}
.aboutUs .cultureSec .cultureBox .cultureGrid {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  text-align: left;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem {
  width: 42%;
  text-align: center;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem .icon {
  width: 3vw;
  height: 3vw;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  margin-bottom: 1.2vw;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem h3 {
  font-family: Antonio, sans-serif;
  font-size: 1.8vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1vw;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem p {
  font-size: 0.95vw;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.75);
  text-align: left;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem .valueTags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6vw;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem .valueTags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 1.8vw;
  padding: 0 1vw;
  border-radius: 5vw;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.25);
  font-size: 0.8vw;
  color: #ffffff;
  transition: background 0.3s ease, border-color 0.3s ease;
}
.aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem .valueTags span:hover {
  background: rgba(241, 141, 0, 0.2);
  border-color: rgba(241, 141, 0, 0.6);
}
.aboutUs .cultureSec .coreValues {
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}
.aboutUs .cultureSec .coreValues .icon{
  width: 3vw;
  height: 3vw;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  margin-bottom: 1.2vw;
}
.aboutUs .cultureSec .coreValues .titles {
  font-family: Antonio, sans-serif;
  font-size: 2vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 5vw;
}
.aboutUs .cultureSec .coreValues .cvList {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0.3vw;
}
.aboutUs .cultureSec .coreValues .cvItem {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  will-change: transform;
}
.aboutUs .cultureSec .coreValues .cvLine {
  display: inline-block;
  white-space: nowrap;
}
.aboutUs .cultureSec .coreValues .cvWord,
.aboutUs .cultureSec .coreValues .cvTail {
  display: inline-block;
  vertical-align: bottom;
  font-family: Antonio, sans-serif;
  font-weight: 700;
  line-height: 1.1;
  color: #ffffff;
  text-transform: none;
}
.aboutUs .cultureSec .coreValues .cvWord {
  font-size: 5.5vw;
}
.aboutUs .cultureSec .coreValues .cvTail {
  overflow: clip;
  overflow-clip-margin: 0.3em;
  width: 0;
  opacity: 0;
  font-size: 3.5vw;
}
.aboutUs .cultureSec .coreValues .cvDesc {
  position: absolute;
  top: calc(100% + 1.2vw);
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  visibility: hidden;
  opacity: 0;
  font-family: PlusJakartaSans, sans-serif;
  font-size: 0.85vw;
  line-height: 1.6;
  color: #ffffff;
  text-align: center;
  will-change: opacity, transform;
}
.aboutUs .partnerSec {
  width: 100%;
  min-height: 100vh;
  position: relative;
  z-index: 2;
  background: #000000;
}
.aboutUs .partnerSec .secTitle {
  text-align: center;
  margin-bottom: 4vw;
}
.aboutUs .partnerSec .partnerGrid {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  padding: 0 8vw;
  border-top: 1px solid #535353;
  border-bottom: 1px solid #535353;
}
.aboutUs .partnerSec .partnerGrid .partnerItem {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 4vw;
  min-height: 25vw;
  border-left: 1px solid #535353;
  border-right: 1px solid #535353;
  border-bottom: 1px solid #535353;
}
.aboutUs .partnerSec .partnerGrid .partnerItem:nth-child(n+3) {
  border-bottom: none;
}
.aboutUs .partnerSec .partnerGrid .partnerItem:nth-child(1) {
  border-right: none;
}
.aboutUs .partnerSec .partnerGrid .partnerItem:nth-child(3) {
  border-right: none;
}
.aboutUs .partnerSec .partnerGrid .partnerItem .logoBox {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.aboutUs .partnerSec .partnerGrid .partnerItem .logoBox img {
  max-width: 60%;
  max-height: 10vw;
  object-fit: contain;
  display: block;
}
.aboutUs .partnerSec .partnerGrid .partnerItem h3 {
  font-family: Antonio, sans-serif;
  font-size: 1.6vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1vw;
}
.aboutUs .partnerSec .partnerGrid .partnerItem p {
  font-size: 0.95vw;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.65);
  max-width: 90%;
}
.aboutUs .certSec {
  width: 100%;
  position: relative;
  z-index: 2;
  background: #000000;
  padding: 6vw 8vw 0 8vw;
}
.aboutUs .certSec .secTitle {
  text-align: center;
  margin-bottom: 4vw;
}
.aboutUs .certSec .certSwiper {
  width: 100%;
  padding-bottom: 2vw;
}
.aboutUs .certSec .certSwiper .swiper-slide {
  height: auto;
}
.aboutUs .certSec .certSwiper .certCard {
  width: 100%;
  padding: 1vw;
}
.aboutUs .certSec .certSwiper .certCard .certImg {
  width: 100%;
  aspect-ratio: 3 / 4;
  background: #0a0a0a;
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.aboutUs .certSec .certSwiper .certCard .certImg img {
  width: 90%;
  height: 90%;
  object-fit: contain;
  display: block;
}
.aboutUs .certSec .certSwiper .certCard .certName {
  margin-top: 1.2vw;
  font-size: 1vw;
  color: white;
  text-align: center;
  text-transform: uppercase;
}
.aboutUs .historySec {
  width: 100%;
  height: 100vh;
  position: relative;
  z-index: 2;
  background: #000000;
  padding: 2vw 8vw;
  overflow: hidden;
}
.aboutUs .historySec .secTitle {
  margin-bottom: 2vw;
}
.aboutUs .historySec .historyTrack {
  width: 100%;
  height: auto;
  position: relative;
}
.aboutUs .historySec .historyTrack .historyNodes {
  width: 100%;
  height: 75vh;
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  will-change: transform;
}
.aboutUs .historySec .historyTrack .historyNodes .historyNode {
  width: 20vw;
  height: 14vw;
  flex-shrink: 0;
  padding: 0 1vw;
  align-self: center;
}
.aboutUs .historySec .historyTrack .historyNodes .historyNode .year {
  font-family: manolomono;
  font-size: 5vw;
  color: #F18D00;
  letter-spacing: -0.5vw;
  line-height: 1;
}
.aboutUs .historySec .historyTrack .historyNodes .historyNode .event {
  font-size: 1vw;
  color: white;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
.aboutUs .historySec .historyTrack .historyNodes .historyNode.up {
  align-self: flex-start;
}
.aboutUs .historySec .historyTrack .historyNodes .historyNode.down {
  align-self: flex-end;
  padding-top: 0;
}
.aboutUs .historySec .historyTrack .historyBullet {
  position: absolute;
  left: -10vw;
  top: 45%;
  transform: translateY(-50%);
  width: 40vw;
  z-index: -1;
}
.aboutUs .historySec .historyTrack .historyBullet::before{
  content: '';
  position: absolute;
  width: 30%;
  height: 100%;
  background: linear-gradient(90deg, black, transparent);
}
/* 子弹：改用视频（/resources/assets/video/zidan.mp4）循环播放，不再用拆层的静态图。
   视频是黑底，叠在本段 #000 背景上无缝；宽度跟随容器（桌面 40vw / 移动 100%），
   高度按视频自身比例自动，容器仍是绝对定位 + translateY(-50%) 垂直居中，
   横向飞行位移依旧由 JS 滚动时间线作用在 .historyBullet 上。 */
.aboutUs .historySec .historyTrack .historyBullet .bulletVideo {
  display: block;
  width: 100%;
}
.aboutUs .historySec .historyTrack .CircleBox {
  width: 60vw;
  position: absolute;
  transform: translateX(-50%);
  left: 50%;
  top: 95%;
  z-index: -1;
}
.aboutUs .historySec .historyTrack .CircleBox .jiantouImg {
  width: 3vw;
  position: absolute;
  transform: translateX(-50%);
  left: 50%;
  top: -1.5vw;
  animation: jiantouImgAnm 2s linear infinite;
}
@keyframes jiantouImgAnm {
  0% {
    transform: translateX(-40%);
  }
  50% {
    transform: translateX(-70%);
  }
  100% {
    transform: translateX(-40%);
  }
}
.services {
  width: 100%;
  position: relative;
}
.services .bgImg {
  width: 100%;
  position: absolute;
  pointer-events: none;
  z-index: 1;
}
.services .provideSec {
  width: 100%;
  position: relative;
  background: #000000;
  padding: 6vw 8vw;
}
.services .provideSec .secTitle {
  margin-bottom: 4vw;
  position: relative;
  z-index: 2;
}
.services .provideSec .serviceItem {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  padding: 2vw 0;
  gap: 4vw;
}
.services .provideSec .serviceItem .serviceImg {
  width: 44%;
  height: 27vw;
  overflow: hidden;
  flex-shrink: 0;
}
.services .provideSec .serviceItem .serviceImg img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  transition: 0.5s all ease-in-out;
}
.services .provideSec .serviceItem .serviceImg:hover img {
  transform: scale(1.1);
}
.services .provideSec .serviceItem .serviceContent {
  flex: 1;
  position: relative;
  padding: 2vw;
  border-top: 1px solid #ffffff;
  transition: border-top-color 0.6s ease;
}
.services .provideSec .serviceItem .serviceContent .serviceIcon {
  position: absolute;
  top: 2vw;
  right: 0;
  width: 3.2vw;
  opacity: 0.5;
  transition: opacity 0.6s ease;
}
.services .provideSec .serviceItem .serviceContent .serviceIcon img {
  width: 100%;
  display: block;
}
.services .provideSec .serviceItem .serviceContent .serviceTitle {
  font-size: 2vw;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1vw;
}
.services .provideSec .serviceItem .serviceContent .serviceDesc {
  font-size: 1.1vw;
  color: white;
}
.services .provideSec .serviceItem .serviceContent .serviceList {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-top: 3vw;
}
.services .provideSec .serviceItem .serviceContent .serviceList li {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.6);
  padding-left: 1.2vw;
  position: relative;
  margin-bottom: 1vw;
}
.services .provideSec .serviceItem .serviceContent .serviceList li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.45vw;
  width: 0.35vw;
  height: 0.35vw;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 50%;
}
.services .provideSec .serviceItem.active .serviceContent {
  border-top-color: #F18D00;
}
.services .provideSec .serviceItem.active .serviceIcon {
  opacity: 1;
}
.services .testimonialsSec {
  width: 100%;
  background: #000000;
  overflow: hidden;
}
.services .testimonialsSec .secTitle {
  text-align: center;
  margin-bottom: 4vw;
}
.services .testimonialsSec .testimonialRow {
  width: 100%;
  overflow: hidden;
  margin-bottom: 2vw;
}
.services .testimonialsSec .testimonialRow:last-child {
  margin-bottom: 0;
}
.services .testimonialsSec .testimonialTrack {
  display: flex;
  gap: 2vw;
  width: max-content;
  will-change: transform;
}
.services .testimonialsSec .testimonialRow1 .testimonialTrack {
  animation: testimonialScrollRight 40s linear infinite;
}
.services .testimonialsSec .testimonialRow2 .testimonialTrack {
  animation: testimonialScrollLeft 40s linear infinite;
}
@keyframes testimonialScrollLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes testimonialScrollRight {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
.services .testimonialsSec .testimonialCard {
  width: 28vw;
  flex-shrink: 0;
  border: 1px solid #F18D00;
  background: #2D2D2D;
  border-radius: 1vw;
  padding: 2vw;
  box-sizing: border-box;
  color: white;
}
.services .testimonialsSec .testimonialCard .cardTop {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5vw;
  margin-bottom: 1.5vw;
}
.services .testimonialsSec .testimonialCard .cardTop .cardInfo {
  flex: 1;
}
.services .testimonialsSec .testimonialCard .cardTop .cardInfo .cardName {
  font-size: 1.4vw;
  color: #ffffff;
  font-weight: 600;
  margin-bottom: 0.3vw;
}
.services .testimonialsSec .testimonialCard .cardTop .cardInfo .cardPos {
  font-size: 0.8vw;
  color: rgba(255, 255, 255, 0.5);
}
.services .testimonialsSec .testimonialCard .cardTop .cardAvatar {
  width: 6vw;
  height: auto;
  /*border-radius: 50%;*/
  overflow: hidden;
  /*flex-shrink: 0;*/
  /*background: #ffffff;*/
}
.services .testimonialsSec .testimonialCard .cardTop .cardAvatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.services .testimonialsSec .testimonialCard .cardQuote {
  font-size: 0.85vw;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.6;
}
.services .qaSec {
  width: 100%;
  background: #000000;
  padding: 6vw 8vw;
  position: relative;
}
.services .qaSec .secTitle {
  text-align: center;
  margin-bottom: 4vw;
}
.services .qaSec .qaImgWrap {
  width: 100%;
  margin-bottom: 4vw;
}
.services .qaSec .qaImgWrap img {
  width: 100%;
  display: block;
}
.services .qaSec .qaLine {
  position: absolute;
  top: 14vw;
  bottom: 8vw;
  left: 35%;
  width: 5vw;
  pointer-events: none;
}
.services .qaSec .qaLine img {
  height: 100%;
  width: auto;
  display: block;
}
.services .qaSec .qaList {
  display: flex;
  gap: 1.5vw;
  width: 100%;
}
.services .qaSec .qaList .qaItem {
  flex: 1;
  --c: #F18D00;
}
.services .qaSec .qaList .qaItem:nth-child(1) {
  --c: #F18D00;
}
.services .qaSec .qaList .qaItem:nth-child(2) {
  --c: #2EA0F7;
}
.services .qaSec .qaList .qaItem:nth-child(3) {
  --c: #A45DFF;
}
.services .qaSec .qaList .qaItem:nth-child(4) {
  --c: #1FC8C8;
}
.services .qaSec .qaList .qaItem:nth-child(5) {
  --c: #39D77D;
}
.services .qaSec .qaList .qaItem .qaInfo {
  background: #1a1a1a;
  border: 1px solid var(--c);
  border-radius: 0.5vw;
  padding: 1.5vw;
  box-sizing: border-box;
  min-height: 14vw;
}
.services .qaSec .qaList .qaItem .qaInfo .qaNum {
  display: inline-block;
  width: 2.4vw;
  height: 2.4vw;
  line-height: 2.4vw;
  text-align: center;
  background: var(--c);
  color: #000000;
  border-radius: 50%;
  font-size: 0.9vw;
  font-weight: 700;
  margin-bottom: 1vw;
}
.services .qaSec .qaList .qaItem .qaInfo .qaTitle {
  font-size: 0.85vw;
  color: var(--c);
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 0.3vw;
  text-transform: uppercase;
}
.services .qaSec .qaList .qaItem .qaInfo .qaSub {
  font-size: 1.1vw;
  color: #ffffff;
  font-weight: 600;
  margin-bottom: 0.8vw;
}
.services .qaSec .qaList .qaItem .qaInfo .qaDesc {
  font-size: 0.8vw;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.6;
  padding-top: 0.8vw;
  margin-top: 0.8vw;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.careers {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.careers .whyJoinSec {
  width: 100%;
  padding: 6vw 0;
  box-sizing: border-box;
  background: #000000;
  position: relative;
}
.careers .whyJoinSec .secTitle {
  text-align: center;
  margin-bottom: 4vw;
}
.careers .whyJoinSec .whyJoinSwiper {
  width: 100%;
  margin-bottom: 4vw;
}
.careers .whyJoinSec .whyJoinSwiper .swiper-slide {
  height: 28vw;
  border-radius: 1vw;
  overflow: hidden;
}
.careers .whyJoinSec .whyJoinSwiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.careers .whyJoinSec .whyJoinList {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5vw;
  padding: 0 8vw;
}
.careers .whyJoinSec .whyJoinList .whyJoinItem {
  background: #1a1a1a;
  border-radius: 0.8vw;
  padding: 2vw;
  box-sizing: border-box;
  border-radius: 16px;
  border: 1px solid #F18D00;
  background: radial-gradient(50% 50% at 50% 50%, rgba(241, 141, 0, 0.1) 0%, rgba(241, 141, 0, 0) 100%), #2D2D2D;
}
.careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinIcon {
  width: 3vw;
  height: 3vw;
  margin-bottom: 1.5vw;
}
.careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinIcon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinItemTitle {
  font-size: 1.4vw;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 1vw;
}
.careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinDesc {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.6;
}
.careers .talentSec {
  width: 100%;
  padding: 6vw 8vw;
  box-sizing: border-box;
  position: relative;
  background: #000000;
}
.careers .talentSec .secTitle {
  text-align: center;
  margin-bottom: 2vw;
}
.careers .talentSec .talentTabs {
  display: flex;
  justify-content: center;
  gap: 1vw;
  margin-bottom: 4vw;
}
.careers .talentSec .talentTabs .talentTab {
  font-size: 1.3vw;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  padding-bottom: 0.5vw;
  position: relative;
  transition: color 0.3s ease;
}
.careers .talentSec .talentTabs .talentTab.active {
  color: #F18D00;
  font-weight: 600;
}
.careers .talentSec .talentTabs .talentTab.active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.7vw;
  height: 0.1vw;
  background: #F18D00;
}
.careers .talentSec .talentTabs .talentTab.active::before {
  content: '';
  position: absolute;
  transform: translateX(50%) rotate(45deg);
  left: 50%;
  bottom: -0.85vw;
  width: 0.4vw;
  height: 0.4vw;
  background: #F18D00;
}
.careers .talentSec .talentTabs .talentTab:hover {
  color: #F18D00;
}
.careers .talentSec .talentList {
  position: relative;
}
.careers .talentSec .talentList .talentPanel {
  display: none;
}
.careers .talentSec .talentList .talentPanel.active {
  display: block;
}
.careers .talentSec .talentList .talentPanel .talentSwiper {
  width: 100%;
  position: relative;
  border-radius: 1vw;
  overflow: hidden;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide {
  display: flex;
  align-items: center;
  gap: 3vw;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide img {
  width: 50%;
  height: 24vw;
  object-fit: cover;
  display: block;
  border-radius: 1vw;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide .talentInfo {
  width: 50%;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .talentArrow {
  position: absolute;
  top: 12vw;
  transform: translateY(-50%);
  width: 3vw;
  height: 3vw;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  display: none;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .talentArrow img {
  width: 1.2vw;
  height: 1.2vw;
  object-fit: contain;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .talentArrow.talentPrev {
  left: 1vw;
}
.careers .talentSec .talentList .talentPanel .talentSwiper .talentArrow.talentNext {
  left: calc(48% - 4vw);
}
.careers .talentSec .talentList .talentPanel .talentInfo .talentInfoTitle {
  font-family: Antonio;
  font-size: 2vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1vw;
}
.careers .talentSec .talentList .talentPanel .talentInfo .talentDesc {
  font-size: 0.95vw;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.7;
}
.careers .talentSec .talentList .talentPanel .talentPagination {
  display: flex;
  gap: 0.5vw;
  left: 52vw;
  align-items: center;
  margin-top: 2vw;
  position: absolute;
}
.careers .talentSec .talentList .talentPanel .talentPagination .swiper-pagination-bullet {
  width: 0.5vw;
  height: 1.2vw;
  min-width: 5px;
  min-height: 12px;
  border-radius: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.6);
  opacity: 1;
  margin: 0;
  transform: skewX(-18deg);
  transform-origin: center;
  transition: background 0.25s ease, border-color 0.25s ease;
  cursor: pointer;
}
.careers .talentSec .talentList .talentPanel .talentPagination .swiper-pagination-bullet-active {
  background: #F18D00;
  border-color: #F18D00;
}
.careers .recruitmentSec {
  position: relative;
  padding: 4vw 8vw 8vw 8vw;
  background: #000000;
}
.careers .recruitmentSec .secTitle {
  text-align: left;
  margin-bottom: 3vw;
}
.careers .recruitmentSec .recruitmentLayout {
  display: flex;
  gap: 6vw;
}
.careers .recruitmentSec .recruitmentLeft {
  flex: 0 0 16%;
}
.careers .recruitmentSec .recruitmentLeft .recruitTabs {
  list-style: none;
  margin: 0;
  padding: 0;
}
.careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab {
  position: relative;
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 1.1vw;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 1vw 0 1vw 1.2vw;
  cursor: pointer;
  transition: color 0.3s ease;
}
.careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.3vw;
  height: 0.3vw;
  background: transparent;
  transform: translateY(-50%) rotate(45deg);
  color: transparent;
  font-size: 1.2vw;
  line-height: 1;
  transition: color 0.3s ease;
}
.careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab.active {
  color: #F18D00;
}
.careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab.active::before {
  background: #F18D00;
}
.careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab:hover {
  color: #F18D00;
}
.careers .recruitmentSec .recruitmentRight {
  flex: 1;
}
.careers .recruitmentSec .recruitmentRight .recruitList {
  display: none;
}
.careers .recruitmentSec .recruitmentRight .recruitList.active {
  display: block;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard {
  background: #0f0f0f;
  border-radius: 0.85vw;
  margin-bottom: 1vw;
  overflow: hidden;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5vw 2vw;
  cursor: pointer;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitTitleWrap {
  flex: 1;
  min-width: 0;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitTitleWrap h3 {
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 1vw;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
  text-transform: capitalize;
  margin-bottom: 0;
  line-height: 1.35;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitTitleWrap p {
  display: none;
  font-size: 0.85vw;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.4;
  margin-top: 0.45vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitToggle {
  position: relative;
  width: 1vw;
  height: 1vw;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 2vw;
  flex-shrink: 0;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitToggle span {
  position: absolute;
  width: 100%;
  height: 2px;
  background: rgba(255, 255, 255, 0.65);
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitToggle .plus::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 2px;
  height: 1vw;
  background: rgba(255, 255, 255, 0.65);
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody {
  display: none;
  padding: 1.4vw 2vw 2vw 1.8vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody h4 {
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 0.95vw;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 0.9vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody ul {
  list-style: none;
  margin: 0 0 1.4vw 0;
  padding: 0;
  counter-reset: recruitItem;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody ul li {
  position: relative;
  font-size: 0.82vw;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.6;
  padding-left: 1.5vw;
  margin-bottom: 0.5vw;
  counter-increment: recruitItem;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody ul li::before {
  content: counter(recruitItem) ".";
  position: absolute;
  left: 0;
  top: 0;
  width: 1.3vw;
  font-size: 0.82vw;
  color: rgba(255, 255, 255, 0.65);
  text-align: left;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody .recruitEmail {
  display: inline-flex;
  align-items: center;
  gap: 0.35vw;
  font-size: 0.9vw;
  font-weight: 600;
  color: #F18D00;
  text-decoration: none;
  transition: opacity 0.3s ease;
  margin-top: 0.4vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody .recruitEmail svg {
  width: 0.85vw;
  height: 0.85vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody .recruitEmail:hover {
  opacity: 0.8;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active {
  background: #222222;
  border-radius: 0.85vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitHeader {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.5vw 2vw 0.8vw 1.8vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitHeader .recruitToggle .plus::after {
  content: inherit;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitHeader .recruitTitleWrap {
  border-left: 2px solid #F18D00;
  padding-left: 1vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitHeader .recruitTitleWrap h3 {
  color: #ffffff;
  font-size: 1.2vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitHeader .recruitTitleWrap p {
  display: block;
  margin-top: 0.45vw;
}
.careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitBody {
  display: block;
  color: white;
  font-size: .9vw;
  line-height: 1.5;
}
.casesDetail {
  width: 100%;
  position: relative;
  /* 用 clip 而不是 hidden：hidden 会让 .casesDetail 变成"滚动容器"，
     其内部 position: sticky 的元素（.highlightsRight）就只能相对它定位、再也不跟着页面滚 → 吸顶失效。
     clip 只做裁剪、不建立滚动容器，横向防溢出效果不变。 */
  overflow: clip;
}
.casesDetail .caseHero {
  width: 100%;
  height: 100vh;
  background-size: cover !important;
  position: relative;
  z-index: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 8vw 6vw;
}
.casesDetail .caseHero .caseHeroBg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover !important;
  z-index: 0;
  will-change: transform;
}
.casesDetail .caseHero .caseHeroContent {
  position: relative;
  z-index: 3;
  max-width: 60vw;
}
.casesDetail .caseHero .caseHeroContent .caseHeroTitle {
  font-family: Antonio, sans-serif;
  font-size: 5vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.05;
  margin-bottom: 2.5vw;
  opacity: 0;
  will-change: transform, filter;
}
.casesDetail .caseHero .caseHeroContent .caseHeroTitle .char {
  display: inline-block;
  will-change: transform, filter;
  transform-origin: 50% 100%;
}
.casesDetail .caseHero .caseHeroContent .caseHeroBtn {
  align-self: flex-start;
}
.casesDetail .caseHero .caseHeroMeta {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0 8vw 4vw;
}
.casesDetail .caseHero .caseHeroMeta .caseMetaItem {
  display: flex;
  flex-direction: column;
  gap: 0.6vw;
}
.casesDetail .caseHero .caseHeroMeta .caseMetaItem .caseMetaLabel {
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 0.85vw;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.casesDetail .caseHero .caseHeroMeta .caseMetaItem .caseMetaValue {
  font-size: 0.95vw;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.casesDetail .caseHero::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(13, 13, 12, 0.25) 0%, #000 100%);
}
.casesDetail .caseIntro {
  width: 100%;
  background: #000000;
  padding: 6vw 8vw 0 8vw;
  position: relative;
  z-index: 3;
}
.casesDetail .caseIntro .caseIntroTitle {
  flex: 0 0 40%;
  font-family: Antonio, sans-serif;
  font-size: 3.6vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: 0.01em;
}
.casesDetail .caseIntro .caseIntroInfo {
  margin-top: 2vw;
  color: white;
  font-family: 'PlusJakartaSans';
}
.casesDetail .caseIntro .caseIntroInfo p{
  margin-top: 1vw;
  font-size: 0.95vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}
.casesDetail .caseIntro .caseIntroInfo iframe{
  width: 100% !important;
  height: 45vw !important;
}
.casesDetail .caseIntro .caseIntroInfo .caseIntroLead {
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 1.05vw;
  font-weight: 600;
  color: #F18D00;
  line-height: 1.7;
  text-transform: capitalize;
}
.casesDetail .caseIntro .caseIntroInfo .caseIntroDesc {
  font-size: 0.9vw;
  color: white;
  margin-top: 2vw;
  line-height: 1.7;
}
.casesDetail .highlightsSec {
  width: 100%;
  background: #000000;
  padding: 6vw 8vw;
  position: relative;
  z-index: 1;
}
.casesDetail .highlightsSec .highlightsInner {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4vw;
  margin-top: 3vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsLeft {
  flex: 0 0 50%;
  width: 50%;
}
.casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsTitle {
  font-family: Antonio, sans-serif;
  font-size: 4vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1;
  margin-bottom: 3vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList {
  display: flex;
  flex-direction: column;
  gap: 1.6vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList .highlightItem {
  display: flex;
  align-items: flex-start;
  gap: 1.6vw;
  padding: 1.6vw 2vw;
  border: 1px solid #F18D00;
  background: radial-gradient(50% 50% at 50% 50%, rgba(241, 141, 0, 0.1) 0%, rgba(241, 141, 0, 0) 100%), #2D2D2D;
  border-radius: 0.6vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList .highlightItem .highlightNum {
  width: 3vw;
  height: 3vw;
  background: #FBBF24;
  color: #000000;
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 1.2vw;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList .highlightItem .highlightText {
  flex: 1;
  font-size: 0.95vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight {
  flex: 1;
  width: 46%;
  /* 滚动时右侧固定：左侧 .highlightsLeft 列表一直往上滚，右列吸在视口顶部，
     等左侧滚完（= .highlightsInner 的底边追上），吸附自动结束，页面继续正常滚动。
     依赖两点：父级 .highlightsInner 是 align-items: flex-start（右列不被拉伸、才有可移动空间），
     以及祖先链上没有 overflow: hidden/auto（见 .casesDetail 那条）。 */
  position: sticky;
  top: 5vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper {
  width: 100%;
  height: 22vw;
  position: relative;
  overflow: hidden;
  border-radius: 0.6vw;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-wrapper,
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-slide {
  width: 100%;
  height: 100%;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-slide {
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-pagination {
  position: absolute;
  right: 1.2vw;
  bottom: 1.4vw;
  left: auto;
  top: auto;
  width: auto;
  display: flex;
  gap: 0.5vw;
  z-index: 5;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-pagination .swiper-pagination-bullet {
  width: 0.5vw;
  height: 1.2vw;
  min-width: 5px;
  min-height: 12px;
  border-radius: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.6);
  opacity: 1;
  margin: 0;
  transform: skewX(-18deg);
  transform-origin: center;
  transition: background 0.25s ease, border-color 0.25s ease;
  cursor: pointer;
}
.casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-pagination .swiper-pagination-bullet-active {
  background: #F18D00;
  border-color: #F18D00;
}
.casesDetail .caseVideoSec {
  width: 100%;
  background: #000000;
  padding: 6vw 8vw;
  position: relative;
  z-index: 1;
}
.casesDetail .caseVideoSec .caseVideoHead {
  width: 100%;
  margin-bottom: 3vw;
  color: white;
}
.casesDetail .caseVideoSec .caseVideoHead p{
  margin-top: 1vw;
  font-size: 0.95vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}
.casesDetail .caseVideoSec .caseVideoHead iframe{
  width: 100% !important;
  height: 45vw !important;
}
.casesDetail .caseVideoSec .caseVideoHead .caseVideoTitle {
  font-size: 1.4vw;
  font-weight: 600;
  color: #F18D00;
  line-height: 1.5;
  margin-bottom: 1.2vw;
}
.casesDetail .caseVideoSec .caseVideoHead .caseVideoDesc {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.7;
}
.casesDetail .caseVideoSec .caseVideo {
  width: 100%;
  position: relative;
  border-radius: 0.6vw;
  overflow: hidden;
  background: #111;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoEl {
  display: block;
  width: 100%;
  height: 42vw;
  object-fit: cover;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoMask {
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: opacity 0.3s ease;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoMask.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoPlay {
  width: 4vw;
  height: 4vw;
  border-radius: 50%;
  border: 1px solid #F18D00;
  display: flex;
  background: transparent;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.3s ease, background 0.3s ease;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoPlay svg {
  width: 50%;
  height: 50%;
  color: #ffa233;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoPlay:hover {
  transform: scale(1.08);
  background: #ffa233;
}
.casesDetail .caseVideoSec .caseVideo .caseVideoPlay:hover svg {
  color: #ffffff;
}
.casesDetail .caseQuoteSec {
  width: 100%;
  background: #000000;
  padding: 0 8vw 8vw;
  position: relative;
  z-index: 1;
}
.casesDetail .caseQuoteSec .caseQuoteBox {
  width: 100%;
  border: 1px solid #F18D00;
  border-radius: 0.6vw;
  padding: 1.6vw 2vw;
  display: flex;
  align-items: center;
  gap: 1.6vw;
  margin-bottom: 3vw;
}
.casesDetail .caseQuoteSec .caseQuoteBox .caseQuoteIcon {
  width: 2vw;
}
.casesDetail .caseQuoteSec .caseQuoteBox .caseQuoteText {
  flex: 1;
  font-size: 1vw;
  line-height: 1.7;
  color: #F18D00;
  font-weight: 500;
}
.casesDetail .caseQuoteSec .caseQuoteBanner {
  width: 100%;
  height: 50vw;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 0.6vw;
  position: relative;
}
.casesDetail .caseQuoteSec .caseQuoteBanner::before{
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgb(0,0,0,.3);
  top: 0;
  left: 0;
}
.casesDetail .caseContactSec {
  width: 100%;
  background: #000000;
  padding: 0 8vw 8vw 8vw;
  display: flex;
  align-items: flex-start;
  gap: 4vw;
  position: relative;
  z-index: 1;
}
.casesDetail .caseContactSec .f2Title {
  flex: 0 0 45%;
  font-family: Antonio, sans-serif;
  font-size: 3vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  padding-top: 0.4vw;
}
.casesDetail .caseContactSec .caseContactInfo {
  flex: 0 0 45%;
  padding-top: 0.4vw;
}
.casesDetail .caseContactSec .caseContactInfo .infoTitle {
  margin-bottom: 2vw;
  font-weight: bold;
  font-size: 2vw;
  color: white;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactDesc {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.7;
  margin-bottom: 2.4vw;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks {
  display: flex;
  flex-direction: column;
  gap: 1.2vw;
  margin-bottom: 2.6vw;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem {
  display: flex;
  align-items: center;
  gap: 1vw;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactIcon {
  flex: 0 0 auto;
  width: 1.4vw;
  height: 1.4vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactIcon svg {
  width: 100%;
  height: 100%;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText a {
  color: #F18D00;
  text-decoration: underline;
  transition: color 0.2s ease;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText a:hover {
  color: #ffa233;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactTags {
  display: flex;
  gap: 0.8vw;
  margin-bottom: 2.4vw;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactTags .caseContactTag {
  font-size: 0.85vw;
  color: rgba(255, 255, 255, 0.9);
  text-transform: uppercase;
  padding: 0.5vw 1.1vw;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 5vw;
  line-height: 1;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactSocials {
  display: flex;
  align-items: center;
  gap: 1.2vw;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactSocials a {
  width: 1.5vw;
  height: 1.5vw;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactSocials a img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.casesDetail .caseContactSec .caseContactInfo .caseContactSocials a:hover {
  opacity: 1;
}
.casesDetail .caseContactSec .caseContactForm {
  flex: 1;
  background: rgba(28, 28, 28, 0.85);
  border: 1px solid rgba(241, 141, 0, 0.5);
  border-radius: 0.6vw;
  padding: 2.4vw 2.4vw 2.6vw;
  box-shadow: 0 8px 30px rgba(241, 141, 0, 0.12);
}
.casesDetail .caseContactSec .caseContactForm .caseContactRow {
  display: flex;
  gap: 1.4vw;
  margin-bottom: 1.6vw;
}
.casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.6vw;
}
.casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField label {
  font-size: 0.7vw;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField input {
  width: 100%;
  height: 2.4vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.3vw;
  padding: 0 0.8vw;
  font-size: 0.9vw;
  color: #ffffff;
  font-family: inherit;
  transition: border-color 0.2s ease;
}
.casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField input:focus {
  outline: none;
  border-color: #F18D00;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField {
  display: flex;
  flex-direction: column;
  gap: 0.6vw;
  margin-bottom: 1.6vw;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField label {
  font-size: 0.7vw;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField input {
  width: 100%;
  height: 2.4vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.3vw;
  padding: 0 0.8vw;
  font-size: 0.9vw;
  color: #ffffff;
  font-family: inherit;
  transition: border-color 0.2s ease;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField input:focus {
  outline: none;
  border-color: #F18D00;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField textarea {
  width: 100%;
  height: 8vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.3vw;
  padding: 0.8vw;
  font-size: 0.9vw;
  color: #ffffff;
  font-family: inherit;
  resize: vertical;
  min-height: 6vw;
  line-height: 1.6;
  transition: border-color 0.2s ease;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField textarea:focus {
  outline: none;
  border-color: #F18D00;
}
.casesDetail .caseContactSec .caseContactForm .caseContactField--full {
  width: 100%;
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree {
  display: flex;
  align-items: flex-start;
  gap: 0.8vw;
  margin-bottom: 1vw;
  cursor: pointer;
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactCheck {
  flex: 0 0 auto;
  width: 1vw;
  height: 1vw;
  margin-top: 0.15vw;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 0.2vw;
  background: transparent;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox:checked ~ .caseContactCheck {
  background: #F18D00;
  border-color: #F18D00;
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox:checked ~ .caseContactCheck::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.35vw;
  height: 0.6vw;
  border: solid #000;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -65%) rotate(45deg);
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactAgreeText {
  font-size: 0.8vw;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactAgreeText strong {
  color: #F18D00;
  font-weight: 700;
}
.casesDetail .caseContactSec .caseContactForm .caseContactDisclaimer {
  font-size: 0.75vw;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  margin-bottom: 1.6vw;
}
.casesDetail .caseContactSec .caseContactForm .caseContactSubmit {
  padding: 0.7vw 2.4vw;
  font-size: 0.85vw;
}
.contactUs {
  width: 100%;
  position: relative;
}
.contactUs .f1 {
  width: 100%;
  position: relative;
  background: #000000;
  padding: 6vw 8vw;
}
.contactUs .f1 .secTitle {
  text-align: center;
}
.contactUs .f1 .mapBox {
  width: 100%;
  position: relative;
}
.contactUs .f1 .mapBox img {
  width: 100%;
  display: block;
  height: auto;
}
.contactUs .f1 .mapBox .mapOverlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.contactUs .f1 .mapBox .mapArcs {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.contactUs .f1 .mapBox .mapArcs .arcTrack {
  opacity: 0.32;
}
.contactUs .f1 .mapBox .mapArcs .arcComet {
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 3px rgba(241, 141, 0, 0.95));
  animation-name: mapArcComet;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  will-change: stroke-dashoffset, opacity;
}
@keyframes mapArcComet {
  0% {
    stroke-dashoffset: 100;
    opacity: 0;
  }
  8% {
    opacity: 1;
  }
  88% {
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: 0;
  }
}
.contactUs .f1 .mapBox .mapDot {
  position: absolute;
  pointer-events: auto;
}
.contactUs .f1 .mapBox .mapDot::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.7vw;
  height: 0.7vw;
  border-radius: 50%;
  background: #F18D00;
  box-shadow: 0 0 8px rgba(241, 141, 0, 0.9);
  z-index: 1;
}
.contactUs .f1 .mapBox .mapDot .mapDotLabel {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  color: #ffffff;
  font-family: Antonio, sans-serif;
  font-size: 1.5vw;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1;
}
.contactUs .f1 .mapBox .mapDot.mapDotHq .mapDotLabel {
  color: #F18D00;
  margin-top: -2vw;
  left: -5vw;
}
.contactUs .f1 .mapBox .mapDot[data-pos="right"] .mapDotLabel {
  left: 14px;
}
.contactUs .f1 .mapBox .mapDot[data-pos="left"] .mapDotLabel {
  right: 14px;
  text-align: right;
}
.contactUs .f1 .mapBox .mapDot.mapDotHq::before {
  width: 1vw;
  height: 1vw;
  box-shadow: 0 0 14px #f18d00, 0 0 3px rgba(255, 255, 255, 0.7) inset;
}
.contactUs .f1 .mapBox .mapDot.mapDotHq::after {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 1vw;
  height: 1vw;
  border-radius: 50%;
  background: rgba(241, 141, 0, 0.5);
  animation: mapDotPulse 2.4s ease-out infinite;
  pointer-events: none;
}
@keyframes mapDotPulse {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.65;
  }
  100% {
    transform: translate(-50%, -50%) scale(4.5);
    opacity: 0;
  }
}
.contactUs .f2 {
  width: 100%;
}
.contactUs .f2 .caseContactSec {
  width: 100%;
  background: #000000;
  padding: 0 8vw 8vw 8vw;
  display: flex;
  align-items: flex-start;
  gap: 4vw;
  position: relative;
  z-index: 1;
}
.contactUs .f2 .caseContactSec .f2Title {
  flex: 0 0 45%;
  font-family: Antonio, sans-serif;
  font-size: 3vw;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  padding-top: 0.4vw;
}
.contactUs .f2 .caseContactSec .f2Title span{
  color: #F18D00;
}
/* 左侧列容器：标题 + 公司信息（.caseContactSec 是 flex 行，这里替掉原来 .f2Title 的 flex 占比） */
.contactUs .f2 .caseContactSec .f2Left {
  flex: 0 0 45%;
}
/* 公司信息：电话 / 邮箱 / 地址 */
.contactUs .f2 .caseContactSec .f2Left .f2Company {
  margin-top: 3vw;
  display: flex;
  flex-direction: column;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem {
  display: flex;
  align-items: flex-start;
  gap: 1.2vw;
  padding: 1.6vw 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem:first-child {
  padding-top: 0;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyIcon {
  flex: 0 0 auto;
  width: 2.4vw;
  height: 2.4vw;
  border-radius: 50%;
  background: #F18D00;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyIcon svg {
  width: 1.2vw;
  height: 1.2vw;
  fill: #ffffff;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyText h4 {
  font-family: 'BarlowSemiBold', sans-serif;
  font-size: 1.05vw;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 0.5vw;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyText p {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.65;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyText p a {
  color: #F18D00;
  text-decoration: underline;
  transition: color 0.2s ease;
}
.contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyText p a:hover {
  color: #ffa233;
}
.contactUs .f2 .caseContactSec .caseContactInfo {
  flex: 0 0 45%;
  padding-top: 0.4vw;
}
.contactUs .f2 .caseContactSec .caseContactInfo .infoTitle {
  margin-bottom: 2vw;
  font-weight: bold;
  font-size: 2vw;
  color: white;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactDesc {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.7;
  text-align: justify;
  margin-bottom: 2.4vw;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks {
  display: flex;
  flex-direction: column;
  gap: 1.2vw;
  margin-bottom: 2.6vw;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem {
  display: flex;
  align-items: center;
  gap: 1vw;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactIcon {
  flex: 0 0 auto;
  width: 1.4vw;
  height: 1.4vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactIcon svg {
  width: 100%;
  height: 100%;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText {
  font-size: 0.9vw;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText a {
  color: #F18D00;
  text-decoration: underline;
  transition: color 0.2s ease;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText a:hover {
  color: #ffa233;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactTags {
  display: flex;
  gap: 0.8vw;
  margin-bottom: 2.4vw;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactTags .caseContactTag {
  font-size: 0.85vw;
  color: rgba(255, 255, 255, 0.9);
  text-transform: uppercase;
  padding: 0.5vw 1.1vw;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 5vw;
  line-height: 1;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactSocials {
  display: flex;
  align-items: center;
  gap: 1.2vw;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactSocials a {
  width: 1.5vw;
  height: 1.5vw;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactSocials a img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.contactUs .f2 .caseContactSec .caseContactInfo .caseContactSocials a:hover {
  opacity: 1;
}
.contactUs .f2 .caseContactSec .caseContactForm {
  flex: 1;
  background: rgba(28, 28, 28, 0.85);
  border: 1px solid rgba(241, 141, 0, 0.5);
  border-radius: 0.6vw;
  padding: 2.4vw 2.4vw 2.6vw;
  box-shadow: 0 8px 30px rgba(241, 141, 0, 0.12);
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactRow {
  display: flex;
  gap: 1.4vw;
  margin-bottom: 1.6vw;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactRow .caseContactField {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.6vw;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactRow .caseContactField label {
  font-size: 0.7vw;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactRow .caseContactField input {
  width: 100%;
  height: 2.4vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.3vw;
  padding: 0 0.8vw;
  font-size: 0.9vw;
  color: #ffffff;
  font-family: inherit;
  transition: border-color 0.2s ease;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactRow .caseContactField input:focus {
  outline: none;
  border-color: #F18D00;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField {
  display: flex;
  flex-direction: column;
  gap: 0.6vw;
  margin-bottom: 1.6vw;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField label {
  font-size: 0.7vw;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField input {
  width: 100%;
  height: 2.4vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.3vw;
  padding: 0 0.8vw;
  font-size: 0.9vw;
  color: #ffffff;
  font-family: inherit;
  transition: border-color 0.2s ease;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField input:focus {
  outline: none;
  border-color: #F18D00;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField textarea {
  width: 100%;
  height: 8vw;
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.3vw;
  padding: 0.8vw;
  font-size: 0.9vw;
  color: #ffffff;
  font-family: inherit;
  resize: vertical;
  min-height: 6vw;
  line-height: 1.6;
  transition: border-color 0.2s ease;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField textarea:focus {
  outline: none;
  border-color: #F18D00;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactField--full {
  width: 100%;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree {
  display: flex;
  align-items: flex-start;
  gap: 0.8vw;
  margin-bottom: 1vw;
  cursor: pointer;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree .caseContactCheck {
  flex: 0 0 auto;
  width: 1vw;
  height: 1vw;
  margin-top: 0.15vw;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 0.2vw;
  background: transparent;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox:checked ~ .caseContactCheck {
  background: #F18D00;
  border-color: #F18D00;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox:checked ~ .caseContactCheck::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.35vw;
  height: 0.6vw;
  border: solid #000;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -65%) rotate(45deg);
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree .caseContactAgreeText {
  font-size: 0.8vw;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactAgree .caseContactAgreeText strong {
  color: #F18D00;
  font-weight: 700;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactDisclaimer {
  font-size: 0.75vw;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  margin-bottom: 1.6vw;
}
.contactUs .f2 .caseContactSec .caseContactForm .caseContactSubmit {
  padding: 0.7vw 2.4vw;
  font-size: 0.85vw;
}
.pc {
  display: block;
}
.mobile {
  display: none;
}
@media screen and (max-width: 900px) {
  .pc {
    display: none;
  }
  .mobile {
    display: block;
  }
  .aboutUs .cultureSec .coreValues .titles{
    font-size: 20px;
  }
  /* aboutUs Core Values 移动端：整块不做动画，cvItem 的单词与文案一次性直接显示 */
  .aboutUs .cultureSec .coreValues .cvList {
    flex-direction: column;
    align-items: stretch; /* 列方向下交叉轴为横向：让 cvItem 撑满，给 cvDesc 足够的换行宽度 */
    width: 100%;
    gap: 6vw;
  }
  /* cvItem 子树（cvLine / cvWord / cvTail / cvDesc）一律静态可见：
     覆盖基础态的 .cvTail{width:0;opacity:0} 与 .cvDesc{visibility:hidden;opacity:0}，无需等 JS 展开或淡入 */
  .aboutUs .cultureSec .coreValues .cvItem,
  .aboutUs .cultureSec .coreValues .cvLine,
  .aboutUs .cultureSec .coreValues .cvWord,
  .aboutUs .cultureSec .coreValues .cvTail,
  .aboutUs .cultureSec .coreValues .cvDesc {
    transform: none;
    opacity: 1;
    visibility: visible;
  }
  .aboutUs .cultureSec .coreValues .cvWord,
  .aboutUs .cultureSec .coreValues .cvTail {
    font-size: 28px;
  }
  .aboutUs .cultureSec .coreValues .cvTail {
    width: auto; /* 尾字母直接完整显示，不做 width 0→full 的展开 */
  }
  .aboutUs .cultureSec .coreValues .cvDesc {
    position: static;
    margin-top: 3vw;
    max-width: 90vw;
    font-size: 14px;
  }
  body.navLock {
    overflow: hidden;
  }
  header {
    height: 60px;
    padding: 0 20px;
  }
  header .logo {
    width: 130px;
    position: relative;
    z-index: 11;
  }
  header .menuBtn {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 18px;
    position: relative;
    z-index: 11;
    cursor: pointer;
  }
  header .menuBtn span {
    display: block;
    width: 100%;
    height: 2px;
    background: #ffffff;
    border-radius: 2px;
    transition: 0.3s all ease-in-out;
  }
  header nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #000000;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateX(100%);
    transition: transform 0.4s ease-in-out;
    z-index: 10;
  }
  header nav ul {
    display: block;
    width: 100%;
    padding: 0 30px;
    text-align: center;
  }
  header nav ul li {
    margin: 0;
  }
  header nav ul li a {
    font-size: 22px;
    padding: 14px 0;
  }
  header nav ul li a:before {
    height: 8px;
    bottom: 4px;
  }
  header nav ul li .second {
    display: none;
  }
  header nav ul .lang {
    margin-left: 0;
    margin-top: 24px;
    font-size: 22px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
  }
  header nav ul .lang .langList {
    position: static;
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
    background: none;
    padding: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
  }
  header nav ul .lang .langList a {
    padding: 0;
    font-size: 18px;
    color: #ffffff;
  }
  header nav ul .lang .langList a.active1 {
    color: #F18D00;
  }
  header.active2 {
    transform: translateY(0);
  }
  header.navOpen nav {
    transform: translateX(0);
  }
  header.navOpen .menuBtn span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  header.navOpen .menuBtn span:nth-child(2) {
    opacity: 0;
  }
  header.navOpen .menuBtn span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  body,
  p,
  li,
  span,
  a,
  button,
  input,
  textarea,
  label {
    font-size: 16px;
  }
  .secTitle {
    font-size: 36px;
  }
  h3,
  h4,
  .title,
  .subTitle,
  .itemTitle,
  .cardTitle {
    font-size: 18px;
  }
  .index .f1 .text {
    font-size: 11vw;
  }
  .index .f1 .scroll {
    bottom: 4vw;
  }
  .index .f1 .scroll img {
    width: 12vw;
  }
  .index .f1 .bgSwiper .swiper-pagination {
    bottom: 5vw;
    gap: 1vw;
  }
  .index .f1 .bgSwiper .swiper-pagination-bullet {
    width: 1.5vw;
    height: 3vw;
  }
  .index .f2 .wrap {
    width: 100%;
    display: block;
  }
  .index .f2 .wrap .left {
    width: 100%;
    position: relative;
    top: inherit;
  }
  .index .f2 .wrap .left .imgBox {
    max-width: 100%;
    margin-left: 0;
  }
  .index .f2 .wrap .left .title {
    font-size: 36px;
    line-height: 1.2;
    margin-left: 5vw;
  }
  .index .f2 .wrap .right {
    width: 100%;
    padding: 5vw;
  }
  .index .f2 .wrap .right .info p {
    font-size: 16px;
  }
  .index .f2 .wrap .right .info .btnBox {
    margin: 5vw auto;
  }
  .btnBox {
    padding: 3vw 4vw;
  }
  .btnBox .spec-label{
    font-size: 12px;
  }
  /* .spec-canvas 的尺寸不要再在媒体查询里写死（原来是 width:50vw/height:23vw），
     canvas 一律跟随按钮尺寸：基础态的 calc(100% + 40px) 已适配所有断点 */
  .index .f2 .wrap .right .nums .numItem {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding: 3vw 0;
  }
  .index .f2 .wrap .right .nums .numItem .numWrap .num {
    font-size: 66px !important;
  }
  .index .f2 .wrap .right .nums .numItem .numWrap .plus {
    font-size: 38px;
  }
  .index .f2 .wrap .right .nums .numItem .label {
    font-size: 18px;
  }
  .index .f3 {
    padding: 5vw;
  }
  .index .f3 .cards {
    margin-top: 5vw;
  }
  .index .f3 .cards .card {
    height: auto;
    padding: 0;
    position: relative;
    top: inherit;
    display: block;
    margin-top: 5vw;
  }
  .index .f3 .cards .card .bgWrap {
    position: relative;
    height: 20vw;
  }
  .index .f3 .cards .card .wrap {
    display: block;
    padding: 5vw;
  }
  .index .f3 .cards .card .wrap .left .num {
    font-size: 14px;
    letter-spacing: 0;
  }
  .index .f3 .cards .card .wrap .left .title {
    font-size: 16px;
    line-height: 1;
  }
  .index .f3 .cards .card .wrap .right {
    width: 100%;
    font-size: 14px;
    margin-top: 3vw;
  }
  .index .f3 .cards .card.active .right {
    line-height: 1.5;
  }
  .index .f3 .cards .card .wrap .right p {
    word-wrap: break-word;
  }
  .index .f4 {
    padding: 10vw 5vw;
  }
  .index .f4 .features {
    display: block;
  }
  .index .f4 .features .item {
    width: 100%;
    margin-top: 5vw;
  }
  .index .f4 .features .item .icon {
    width: 10vw;
    height: auto;
  }
  .index .f4 .features .item .title {
    font-size: 18px;
    height: auto;
  }
  .index .f4 .features .item p {
    font-size: 15px;
  }
  .index .f5 {
    padding: 10vw 0;
  }
  .index .f5 .secTitle {
    margin-left: 5vw;
  }
  .index .f5 .caseCards {
    padding: 0 5vw;
    display: block;
  }
  .index .f5 .caseCards .card {
    width: 100%;
    height: auto;
    margin-top: 5vw;
    display: block;
  }
  .index .f5 .caseCards .card .img {
    height: 100vw;
  }
  .index .f5 .caseCards .card .tags {
    top: 5vw;
    left: 5vw;
    gap: 2vw;
  }
  .index .f5 .caseCards .card .tags span {
    min-width: auto;
    height: auto;
    font-size: 14px;
    padding: 1vw 3vw;
  }
  .index .f5 .caseCards .card .info {
    padding: 5vw;
    bottom: 0;
  }
  .index .f5 .caseCards .card .info h3 {
    font-size: 22px;
  }
  .index .f5 .caseCards .card .info .arrow {
    width: 8vw;
    height: 8vw;
  }
  .index .f5 .f5Bg {
    margin-top: 0;
  }
  .index .f6 {
    margin-top: 0;
    background: #000000;
  }
  .index .f6 .f6LogoBox {
    padding: 0 5vw;
    top: inherit;
  }
  .index .f6 .f6LogoBox .logoGrid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }
  .index .f7 {
    padding: 10vw 5vw;
  }
  .index .f7 .newsGrid {
    display: block;
    margin-top: 5vw;
  }
  .index .f7 .newsGrid .newsCard {
    display: block;
    margin-top: 5vw;
  }
  .index .f7 .newsGrid .newsCard .newsImg {
    height: 50vw;
  }
  .index .f7 .newsGrid .newsCard .newsDesc {
    font-size: 16px;
  }
  .index .f7 .newsGrid .newsCard .newsDate {
    font-size: 14px;
  }
  footer {
    padding: 10vw 5vw 5vw 5vw;
  }
  footer .footerTop {
    display: block;
    margin-bottom: 10vw;
  }
  footer .footerTop .footerLeft .footerTitle {
    font-size: 22px;
  }
  footer .footerTop .footerLeft .socials {
    gap: 2vw;
    margin-top: 5vw;
  }
  footer .footerTop .footerLeft .socials a {
    width: 5vw;
    height: 5vw;
  }
  footer .footerTop .footerLeft .contactBtn {
    display: none;
  }
  footer .footerTop .footerRight {
    padding-right: 0;
    margin-top: 5vw;
  }
  footer .footerBrand {
    font-size: 24vw;
  }
  footer .footerTop .footerRight .linkCol h4 {
    font-size: 14px;
  }
  footer .footerTop .footerRight .linkCol a {
    font-size: 12px;
  }
  footer .footerBottom {
    margin-top: 38vw;
  }
  footer .footerBottom span {
    font-size: 12px;
  }
  footer .footerTop .backTops {
    width: 8vw;
    height: 8vw;
  }
  footer .footerTop .backTops svg {
    width: 5vw;
    height: 5vw;
  }
  .bannerBox {
    height: 70vw;
  }
  .aboutUs .aboutSec {
    height: auto;
    display: block;
    padding: 10vw 5vw 0 5vw;
  }
  .aboutUs .aboutSec .aboutLeft {
    width: 100%;
  }
  .aboutUs .aboutSec .aboutLeft p {
    font-size: 16px;
    line-height: 1.5;
  }
  .aboutUs .aboutSec .aboutRight {
    width: 100%;
  }
  .aboutUs .aboutSec .aboutRight .bubble1 {
    width: 35vw;
    height: 35vw;
    left: 5vw;
  }
  .aboutUs .aboutSec .aboutRight .bubble3 {
    width: 25vw;
    height: 25vw;
    top: 40vw;
    left: 3vw;
  }
  .aboutUs .aboutSec .aboutRight .bubble2 {
    width: 30vw;
    height: 30vw;
    top: -4vw;
    right: 2vw;
  }
  .aboutUs .aboutSec .aboutRight .bubble4 {
    width: 35vw;
    height: 35vw;
    top: 35vw;
    right: 2vw;
  }
  .aboutUs .aboutSec .aboutRight .thumb1 {
    top: -11vw;
    right: 33vw;
    width: 20vw;
    height: 20vw;
  }
  .aboutUs .aboutSec .aboutRight .thumb2 {
    top: 30vw;
    left: 33vw;
    width: 20vw;
    height: 20vw;
  }
  .aboutUs .aboutSec .aboutRight .bubble .num {
    font-size: 34px;
  }
  .aboutUs .aboutSec .aboutRight .bubble .num span {
    font-size: 36px;
  }
  .aboutUs .aboutSec .aboutRight .bubble .lbl {
    font-size: 14px;
  }
  .aboutUs .cultureSec .cultureBg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .aboutUs .cultureSec .cultureInner {
    margin-top: 0;
  }
  .aboutUs .cultureSec .cultureBox {
    height: auto;
    min-height: auto;
    padding: 14vw 5vw;
  }
  .aboutUs .cultureSec .coreValues {
    height: auto;
    min-height: auto;
    padding: 14vw 5vw;
  }
  .aboutUs .cultureSec .cultureBox .cultureGrid {
    display: block;
  }
  .aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem {
    width: 100%;
    margin-top: 5vw;
  }
  .aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem .icon {
    width: 8vw;
    height: auto;
  }
  .aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem h3 {
    font-size: 18px;
  }
  .aboutUs .cultureSec .cultureBox .cultureGrid .cultureItem p {
    font-size: 16px;
    line-height: 1.5;
  }
  .aboutUs .partnerSec {
    min-height: inherit;
  }
  .aboutUs .partnerSec .secTitle {
    margin-bottom: 5vw;
  }
  .aboutUs .partnerSec .partnerGrid .partnerItem .logoBox img {
    min-width: 90%;
    max-height: inherit;
  }
  .aboutUs .partnerSec .partnerGrid .partnerItem {
    justify-content: flex-start;
  }
  .aboutUs .partnerSec .partnerGrid .partnerItem h3 {
    font-size: 18px;
  }
  .aboutUs .partnerSec .partnerGrid .partnerItem p {
    font-size: 14px;
    line-height: 1.5;
    max-width: 100%;
  }
  .aboutUs .partnerSec .partnerGrid {
    grid-template-rows: inherit;
    padding: 0 5vw;
  }
  .aboutUs .partnerSec .partnerGrid .partnerItem:nth-child(1) {
    justify-content: center;
  }
  .aboutUs .certSec {
    padding: 10vw 5vw;
  }
  .aboutUs .certSec .certSwiper .certCard .certName {
    font-size: 16px;
  }
  .aboutUs .historySec .secTitle {
    margin-top: 10vw;
  }
  .aboutUs .historySec .historyTrack {
    margin-top: 15vw;
  }
  .aboutUs .historySec .historyTrack .historyNodes .historyNode {
    width: 65vw;
    height: 42vw;
  }
  .aboutUs .historySec .historyTrack .historyNodes .historyNode .year {
    font-size: 48px;
  }
  .aboutUs .historySec .historyTrack .historyNodes .historyNode .event {
    font-size: 14px;
  }
  .aboutUs .historySec .historyTrack .historyBullet {
    width: 100%;
  }
  .aboutUs .historySec .historyTrack .CircleBox .jiantouImg {
    width: 12vw;
    top: 5vw;
  }
  .services .provideSec {
    padding: 10vw 5vw;
  }
  .services .provideSec .serviceItem {
    display: block;
  }
  .services .provideSec .serviceItem .serviceImg {
    width: 100%;
    height: 65vw;
  }
  .services .provideSec .serviceItem .serviceContent {
    padding: 5vw 0;
  }
  .services .provideSec .serviceItem .serviceContent .serviceTitle {
    font-size: 18px;
  }
  .services .provideSec .serviceItem .serviceContent .serviceIcon {
    top: 5vw;
    width: 8vw;
  }
  .services .provideSec .serviceItem .serviceContent .serviceDesc {
    font-size: 16px;
  }
  .services .provideSec .serviceItem .serviceContent .serviceList li {
    font-size: 14px;
  }
  .services .provideSec .serviceItem .serviceContent .serviceList li::before {
    content: inherit;
  }
  .services .testimonialsSec .testimonialTrack {
    gap: 5vw;
  }
  .services .testimonialsSec .testimonialCard {
    width: 90vw;
    padding: 5vw;
  }
  .services .testimonialsSec .testimonialCard .cardTop .cardAvatar {
    width: 18vw;
    height: auto;
  }
  .services .testimonialsSec .testimonialCard .cardTop .cardInfo .cardName {
    font-size: 16px;
  }
  .services .testimonialsSec .testimonialCard .cardTop .cardInfo .cardPos {
    font-size: 14px;
  }
  .services .testimonialsSec .testimonialRow {
    margin-bottom: 5vw;
  }
  .services .testimonialsSec .testimonialCard .cardQuote {
    font-size: 14px;
  }
  .services .qaSec {
    padding: 10vw 5vw;
  }
  .services .qaSec .qaList {
    gap: 5vw;
    margin-top: 10vw;
  }
  .services .qaSec .qaList .qaItem .qaInfo .qaNum {
    width: 6.4vw;
    height: 6.4vw;
    line-height: 6.4vw;
    font-size: 14px;
    margin-bottom: 1vw;
  }
  .services .qaSec .qaList .qaItem .qaInfo {
    padding: 3vw;
    border-radius: 2vw;
  }
  .services .qaSec .qaList .qaItem .qaInfo .qaTitle {
    font-size: 14px;
  }
  .services .qaSec .qaList .qaItem .qaInfo .qaSub {
    font-size: 16px;
  }
  .services .qaSec .qaList .qaItem .qaInfo .qaDesc {
    font-size: 12px;
    padding-top: 2vw;
    margin-top: 2vw;
  }
  .services .qaSec .qaLine {
    top: 29vw;
    bottom: 8vw;
    left: 32%;
    width: 8vw;
  }
  .services .qaSec .qaLine img {
    height: auto;
  }
  .casesDetail .caseHero {
    height: auto;
    min-height: auto;
    padding: 24vw 5vw 8vw;
    justify-content: flex-end;
  }
  .casesDetail .caseHero .caseHeroOverlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
  }
  .casesDetail .caseHero .caseHeroContent {
    max-width: 100%;
  }
  .casesDetail .caseHero .caseHeroContent .caseHeroTitle {
    font-size: 9vw;
    margin-bottom: 5vw;
  }
  .casesDetail .caseHero .caseHeroMeta {
    position: relative;
    flex-direction: column;
    gap: 4vw;
    padding: 0;
    margin-top: 8vw;
  }
  .casesDetail .caseHero .caseHeroMeta .caseMetaItem {
    gap: 1.5vw;
  }
  .casesDetail .caseHero .caseHeroMeta .caseMetaItem .caseMetaLabel {
    font-size: 16px;
  }
  .casesDetail .caseHero .caseHeroMeta .caseMetaItem .caseMetaValue {
    font-size: 14px;
  }
  .casesDetail .caseIntro {
    flex-direction: column;
    padding: 10vw 5vw;
    gap: 8vw;
  }
  .casesDetail .caseIntro .caseIntroTitle {
    flex: none;
    width: 100%;
    font-size: 7vw;
    line-height: 1.15;
  }
  .casesDetail .caseIntro .caseIntroInfo {
    gap: 5vw;
  }
  .casesDetail .caseIntro .caseIntroInfo .caseIntroLead {
    font-size: 16px;
    line-height: 1.6;
    margin: 3vw 0;
  }
  .casesDetail .caseIntro .caseIntroInfo .caseIntroDesc {
    font-size: 14px;
    line-height: 1.7;
  }
  .casesDetail .highlightsSec {
    padding: 0 5vw;
  }
  .casesDetail .highlightsSec .highlightsInner {
    flex-direction: column;
    gap: 8vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsLeft {
    flex: none;
    width: 100%;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsTitle {
    font-size: 9vw;
    margin-bottom: 6vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList {
    gap: 3vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList .highlightItem {
    align-items: flex-start;
    padding: 3vw;
    gap: 3vw;
    border-radius: 1.2vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList .highlightItem .highlightNum {
    flex: 0 0 8vw;
    width: 8vw;
    height: 8vw;
    font-size: 14px;
    border-radius: 0.8vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsLeft .highlightsList .highlightItem .highlightText {
    font-size: 16px;
    line-height: 1.6;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsRight {
    width: 100%;
    /* 移动端 .highlightsInner 已改成纵向堆叠（左列在上），吸顶没有意义，关掉 */
    position: static;
    top: auto;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper {
    height: 50vw;
    border-radius: 1.2vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-pagination {
    right: 2vw;
    bottom: 2.5vw;
    gap: 1vw;
  }
  .casesDetail .highlightsSec .highlightsInner .highlightsRight .highlightSwiper .swiper-pagination .swiper-pagination-bullet {
    min-width: 3px;
    min-height: 8px;
  }
  .casesDetail .caseVideoSec {
    padding: 10vw 5vw;
  }
  .casesDetail .caseVideoSec .caseVideoHead {
    margin-bottom: 6vw;
  }
  .casesDetail .caseVideoSec .caseVideoHead .caseVideoTitle {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: 3vw;
  }
  .casesDetail .caseVideoSec .caseVideoHead .caseVideoDesc {
    font-size: 16px;
    line-height: 1.7;
  }
  .casesDetail .caseVideoSec .caseVideo {
    border-radius: 1.2vw;
  }
  .casesDetail .caseVideoSec .caseVideo .caseVideoPlay {
    width: 14vw;
    height: 14vw;
    min-width: 48px;
    min-height: 48px;
  }
  .casesDetail .caseVideoSec .caseVideo .caseVideoPlay svg {
    margin-left: 6%;
  }
  .casesDetail .caseQuoteSec {
    padding: 10vw 5vw;
  }
  .casesDetail .caseQuoteSec .caseQuoteBox {
    flex-direction: column;
    align-items: flex-start;
    gap: 3vw;
    padding: 4vw 4vw;
    border-radius: 1.2vw;
    margin-bottom: 5vw;
  }
  .casesDetail .caseQuoteSec .caseQuoteBox .caseQuoteIcon {
    width: 4vw;
    height: 4vw;
    display: none;
  }
  .casesDetail .caseQuoteSec .caseQuoteBox .caseQuoteText {
    font-size: 16px;
    line-height: 1.7;
  }
  .casesDetail .caseQuoteSec .caseQuoteBanner {
    height: 70vw;
    border-radius: 1.2vw;
  }
  .casesDetail .caseContactSec {
    flex-direction: column;
    padding: 10vw 5vw;
    gap: 8vw;
  }
  .casesDetail .caseContactSec .caseContactInfo {
    width: 100%;
    flex: none;
  }
  .casesDetail .caseContactSec .caseContactInfo .secTitle {
    margin-bottom: 5vw;
  }
  .casesDetail .caseContactSec .caseContactInfo .infoTitle {
    font-size: 18px;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactDesc {
    font-size: 16px;
    margin-bottom: 6vw;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactLinks {
    gap: 4vw;
    margin-bottom: 6vw;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem {
    align-items: flex-start;
    gap: 2.5vw;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactIcon {
    width: 6vw;
    height: auto;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactLinks .caseContactLinkItem .caseContactLinkText {
    font-size: 16px;
    line-height: 1.6;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactTags {
    gap: 2vw;
    margin-bottom: 6vw;
    flex-wrap: wrap;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactTags .caseContactTag {
    font-size: 14px;
    padding: 1.6vw 3vw;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactSocials {
    gap: 3vw;
  }
  .casesDetail .caseContactSec .caseContactInfo .caseContactSocials a {
    width: 5vw;
    height: auto;
  }
  .casesDetail .caseContactSec .caseContactForm {
    width: 100%;
    flex: none;
    padding: 5vw;
    border-radius: 1.4vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactRow {
    flex-direction: column;
    gap: 0;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField {
    gap: 2vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField label {
    font-size: 14px;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactRow .caseContactField input {
    height: 10vw;
    font-size: 16px;
    border-radius: 0.8vw;
    padding: 0 2.4vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactField {
    margin-bottom: 5vw;
    gap: 2vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactField label {
    font-size: 14px;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactField input {
    height: 10vw;
    font-size: 16px;
    border-radius: 0.8vw;
    padding: 0 2.4vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactField textarea {
    height: 26vw;
    font-size: 16px;
    padding: 2.4vw;
    border-radius: 0.8vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactAgree {
    gap: 2.4vw;
    margin-bottom: 3vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactCheck {
    width: 4vw;
    height: 4vw;
    margin-top: 0.6vw;
    border-radius: 0.5vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactCheckbox:checked ~ .caseContactCheck::after {
    width: 1vw;
    height: 1.8vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactAgree .caseContactAgreeText {
    font-size: 14px;
    line-height: 1.5;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactDisclaimer {
    font-size: 14px;
    margin-bottom: 5vw;
  }
  .casesDetail .caseContactSec .caseContactForm .caseContactSubmit {
    padding: 4vw 13vw;
    font-size: 14px;
  }
  .casesDetail .caseContactSec .f2Title {
    flex: none;
    width: 100%;
    font-size: 9vw;
    line-height: 1.1;
    padding-top: 0;
    margin-bottom: 4vw;
  }
  .cases .bannerBox .text {
    transform: translate(-50%, -50%);
    left: 50%;
    opacity: 1;
  }
  .cases .f1 {
    height: auto;
    padding: 10vw 5vw;
  }
  .cases .f1 .secTitle {
    opacity: 1;
    text-align: center;
  }
  .cases .f1 .caseCards {
    margin-top: 5vw;
    display: block;
    overflow-x: clip;
  }
  .cases .f1 .caseCards .he_slideRight1,
  .cases .f1 .caseCards .he_slideRight2,
  .cases .f1 .caseCards .he_slideRight3 {
    --slideX: 110vw;
  }
  .cases .f1 .caseCards .card {
    width: 100%;
    height: 130vw;
    display: block;
    margin-top: 5vw;
  }
  .cases .f1 .caseCards .card .tags {
    top: 5vw;
    left: 5vw;
    gap: 2vw;
  }
  .cases .f1 .caseCards .card .tags span {
    min-width: auto;
    height: auto;
    font-size: 14px;
    padding: 1vw 3vw;
  }
  .cases .f1 .caseCards .card .info {
    padding: 5vw;
    bottom: 5vw;
  }
  .cases .f1 .caseCards .card .info h3 {
    font-size: 22px;
  }
  .cases .f1 .caseCards .card .info p {
    font-size: 16px;
  }
  .cases .f2 {
    padding: 0 5vw 10vw 5vw;
  }
  .cases .f2 .f2Item {
    flex-direction: column;
    margin-top: 5vw;
  }
  .cases .f2 .f2Item .f2Img {
    width: 100%;
    height: 45vw;
  }
  .cases .f2 .f2Item .f2Img img {
    height: auto;
  }
  .cases .f2 .f2Item .f2Info {
    width: 100%;
    padding: 3vw 0;
  }
  .cases .f2 .f2Item .f2Info .f2Top {
    flex-direction: row;
    align-items: flex-start;
    gap: 2vw;
  }
  .cases .f2 .f2Item .f2Info .f2Top .f2Logo {
    width: 20vw !important;
      height: 15vw !important;
  }
  .cases .f2 .f2Item .f2Info .f2Top .f2Brand {
    width: 20vw;
  }
  .cases .f2 .f2Item .f2Info .f2Top .f2GameText {
    margin-left: 3vw;
  }
  .cases .f2 .f2Item .f2Info .f2Top .f2GameText h3 {
    font-size: 18px !important;
  }
  .cases .f2 .f2Item .f2Info .f2Top .f2GameText p {
    font-size: 14px !important;
  }
  .cases .f2 .f2Item .f2Info .f2Desc {
    font-size: 16px;
    margin-top: 3vw;
  }
  .cases .f2 .f2Item .f2Info .f2Tags {
    gap: 2vw;
    margin-top: 3vw;
  }
  .cases .f2 .f2Item .f2Info .f2Tags span {
    font-size: 14px;
    padding: 1vw 3vw;
  }
  .qaSec {
    padding: 8vw 4vw;
  }
  .qaSec .qaImgWrap {
    display: none;
  }
  .qaSec .qaList {
    flex-direction: column;
    gap: 6vw;
  }
  .qaSec .qaList .qaItem {
    display: flex;
    align-items: center;
  }
  .qaSec .qaList .qaItem .qaImg {
    display: block;
    width: 30%;
    flex-shrink: 0;
  }
  .qaSec .qaList .qaItem .qaImg img {
    width: 100%;
    display: block;
  }
  .qaSec .qaList .qaItem .qaInfo {
    flex: 1;
    margin-left: 10vw;
  }
  .qaSec .qaList .qaItem .qaInfo .qaNum {
    width: 5vw;
    height: 5vw;
    line-height: 5vw;
    font-size: 2vw;
  }
  .qaSec .qaList .qaItem .qaInfo .qaTitle {
    font-size: 1.8vw;
  }
  .qaSec .qaList .qaItem .qaInfo .qaSub {
    font-size: 3vw;
  }
  .qaSec .qaList .qaItem .qaInfo .qaDesc {
    font-size: 2vw;
  }
  .news .newsSec {
    padding: 8vw 4vw;
  }
  .news .newsSec .newsTabs {
    gap: 6vw;
  }
  .news .newsSec .newsTabs .newsTab {
    font-size: 16px;
    padding-bottom: 2vw;
  }
  .news .newsSec .newsTabs .newsTab.active::before {
    content: inherit;
  }
  .news .newsSec .newsList .newsFeatured {
    flex-direction: column;
    margin-bottom: 0;
  }
  .news .newsSec .newsList .newsFeatured .newsImg {
    width: 100%;
    height: 50vw;
  }
  .news .newsSec .newsList .newsFeatured .newsInfo {
    width: 100%;
  }
  .news .newsSec .newsList .newsFeatured .newsInfo .newsDate {
    font-size: 14px;
  }
  .news .newsSec .newsList .newsFeatured .newsInfo .newsTitle {
    font-size: 16px;
  }
  .news .newsSec .newsList .newsFeatured .newsInfo .newsDesc {
    display: none;
  }
  .news .newsSec .newsList .newsFeatured .newsInfo .btnBox {
    display: none;
  }
  .news .newsSec .newsList .newsGrid {
    grid-template-columns: 1fr;
  }
  .news .newsSec .newsList .newsGrid .newsItem .newsDate {
    font-size: 14px;
  }
  .news .newsSec .newsList .newsGrid .newsItem .newsTitle {
    font-size: 16px;
  }
  .news .newsSec .newsList .newsGrid .newsItem {
    margin-top: 5vw;
  }
  .news .newsSec .newsList .newsGrid .newsItem .newsImg {
    height: 50vw;
  }
  .careers .whyJoinSec {
    height: 10vw 0;
  }
  .careers .whyJoinSec .whyJoinSwiper {
    margin-top: 5vw;
  }
  .careers .whyJoinSec .whyJoinSwiper .swiper-slide {
    height: 45vw;
  }
  .careers .whyJoinSec .whyJoinList {
    padding: 5vw;
    display: block;
  }
  .careers .whyJoinSec .whyJoinList .whyJoinItem {
    padding: 5vw;
    text-align: center;
    margin-bottom: 5vw;
  }
  .careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinIcon {
    width: 8vw;
    height: auto;
    margin: 0 auto;
  }
  .careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinItemTitle {
    font-size: 18px;
    margin: 3vw 0;
  }
  .careers .whyJoinSec .whyJoinList .whyJoinItem .whyJoinDesc {
    font-size: 16px;
  }
  .careers .talentSec {
    padding: 0 5vw;
  }
  .careers .talentSec .secTitle {
    margin-bottom: 5vw;
  }
  .careers .talentSec .talentTab {
    font-size: 14px !important;
    padding-bottom: 2vw !important;
  }
  .careers .talentSec .talentTab.active::before {
    bottom: -1.5vw !important;
    width: 1.4vw !important;
    height: 1.4vw !important;
  }
  .careers .talentArrow {
    display: none !important;
  }
  .careers .talentPagination {
    top: 8vw !important;
    left: 90% !important;
  }
  .careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide {
    display: block;
  }
  .careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide img {
    width: 100%;
    height: 50vw;
  }
  .careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide .talentInfo {
    width: 100%;
  }
  .careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide .talentInfo .talentInfoTitle {
    font-size: 18px;
    margin: 3vw 0;
  }
  .careers .talentSec .talentList .talentPanel .talentSwiper .swiper-slide .talentInfo .talentDesc {
    font-size: 14px;
  }
  .careers .recruitmentSec {
    padding: 10vw 0;
  }
  .careers .recruitmentSec .secTitle {
    text-align: center;
    padding-left: 0;
    margin-bottom: 5vw;
  }
  .careers .recruitmentSec .recruitmentLayout {
    flex-direction: column;
    gap: 5vw;
    padding: 0 5vw;
  }
  .careers .recruitmentSec .recruitmentLeft {
    flex: none;
    width: 100%;
  }
  .careers .recruitmentSec .recruitmentLeft .recruitTabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5vw;
  }
  .careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab {
    font-size: 14px;
    padding: 0;
  }
  .careers .recruitmentSec .recruitmentLeft .recruitTabs .recruitTab::before {
    content: inherit;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard {
    border-radius: 2vw;
    margin-bottom: 3vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader {
    padding: 4vw !important;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitTitleWrap h3 {
    font-size: 16px !important;
    margin-bottom: 1vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitTitleWrap p {
    font-size: 14px;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitToggle {
    width: 3vw;
    height: 3vw;
    margin-left: 3vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody {
    padding: 0 4vw 4vw 4vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody h4 {
    font-size: 16px;
    margin-bottom: 2vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody ul {
    margin-bottom: 3vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody ul li {
    font-size: 14px;
    line-height: 1.6;
    padding-left: 3vw;
    margin-bottom: 1.5vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody ul li::before {
    content: inherit;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody .recruitEmail {
    font-size: 16px;
    gap: 1.5vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitBody .recruitEmail svg {
    width: 5vw;
    height: 5vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active {
    background: #2a2a2a;
    border-radius: 2vw;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard.active .recruitHeader {
    border-bottom: none;
  }
  .careers .recruitmentSec .recruitmentRight .recruitList .recruitCard .recruitHeader .recruitToggle .plus::after {
    height: 3vw;
  }
  .contactUs .f2 .caseContactSec {
    padding: 10vw 5vw;
    display: block;
  }
  .contactUs .f1 .mapBox .mapArcs .arcComet {
    stroke-width: 13;
  }
  .contactUs .f1 .mapBox .mapDot::before {
    width: 5px;
    height: 5px;
  }
  .contactUs .f1 .mapBox .mapDot.mapDotHq::before {
    width: 8px;
    height: 8px;
  }
  .contactUs .f1 .mapBox .mapDot.mapDotHq::after {
    width: 12px;
    height: 12px;
  }
  .contactUs .f1 .mapBox .mapDot .mapDotLabel {
    font-size: 10px;
  }
  .contactUs .f2 .caseContactSec .f2Title {
    font-size: 22px;
    margin-bottom: 5vw;
  }
  .contactUs .f2 .caseContactSec .f2Left {
    flex: none;
    width: 100%;
  }
  .contactUs .f2 .caseContactSec .f2Left .f2Company {
    margin-top: 6vw;
  }
  .contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem {
    gap: 3vw;
    padding: 4vw 0;
  }
  .contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyIcon {
    width: 9vw;
    height: 9vw;
  }
  .contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyIcon svg {
    width: 4.5vw;
    height: 4.5vw;
  }
  .contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyText h4 {
    font-size: 16px;
    margin-bottom: 2vw;
  }
  .contactUs .f2 .caseContactSec .f2Left .f2Company .companyItem .companyText p {
    font-size: 14px;
  }
  .contactUs .caseContactForm {
    width: 100%;
    flex: none !important;
    padding: 5vw !important;
    border-radius: 1.4vw;
    margin-top: 10vw;
  }
  .contactUs .caseContactForm .caseContactRow {
    flex-direction: column !important;
    gap: 0 !important;
  }
  .contactUs .caseContactForm .caseContactRow .caseContactField {
    gap: 2vw !important;
  }
  .contactUs .caseContactForm .caseContactRow .caseContactField label {
    font-size: 14px !important;
  }
  .contactUs .caseContactForm .caseContactRow .caseContactField input {
    height: 10vw !important;
    font-size: 16px !important;
    border-radius: 0.8vw !important;
    padding: 0 2.4vw !important;
  }
  .contactUs .caseContactForm .caseContactField {
    margin-bottom: 5vw !important;
    gap: 2vw !important;
  }
  .contactUs .caseContactForm .caseContactField label {
    font-size: 14px !important;
  }
  .contactUs .caseContactForm .caseContactField input {
    height: 10vw !important;
    font-size: 16px !important;
    border-radius: 0.8vw !important;
    padding: 0 2.4vw !important;
  }
  .contactUs .caseContactForm .caseContactField textarea {
    height: 26vw !important;
    font-size: 16px !important;
    padding: 2.4vw !important;
    border-radius: 0.8vw !important;
  }
  .contactUs .caseContactForm .caseContactAgree {
    gap: 2.4vw !important;
    margin-bottom: 3vw !important;
  }
  .contactUs .caseContactForm .caseContactAgree .caseContactCheck {
    width: 4vw !important;
    height: 4vw !important;
    margin-top: 0.6vw !important;
    border-radius: 0.5vw !important;
  }
  .contactUs .caseContactForm .caseContactAgree .caseContactCheckbox:checked ~ .caseContactCheck::after {
    width: 1vw !important;
    height: 1.8vw !important;
  }
  .contactUs .caseContactForm .caseContactAgree .caseContactAgreeText {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }
  .contactUs .caseContactForm .caseContactDisclaimer {
    font-size: 14px !important;
    margin-bottom: 5vw !important;
  }
  .contactUs .caseContactForm .caseContactSubmit {
    padding: 4vw 13vw !important;
    font-size: 14px !important;
  }
  .bannerBox .textImg .annNum .num {
    font-size: 28vw;
    -webkit-text-stroke: 0.4vw #fff;
  }
  .bannerBox .textImg .annNum .th {
    font-size: 5vw;
    margin-top: 2vw;
  }
  .bannerBox .textImg .annTag {
    font-size: 6vw;
  }
  .clipLines .clipLine{
    font-size: 36px;
  }
  .services .qaSec .secTitle{
    font-size: 32px;
  }
  .services .qaSec .secTitle .clipLines .clipLine{
    font-size: 32px;
  }
  .casesDetail .caseIntro .caseIntroInfo p{
    margin-top: 5vw;
    font-size: 16px;
  }
  .casesDetail .caseVideoSec .caseVideoHead p{
    font-size: 16px;
  }
  .bannerBox .textImg .logoN{
    width: 15vw;
  }
  .index .f1 .bgSwiper::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.2);
    top: 0;
    left: 0;
    z-index: 99;
  }
}
