:root{
  --about-overlap:60px;--brand:#76B900;--brand-dark:#5a9b00;--text:#333;--muted:#777;--shadow:0 10px 20px rgba(0,0,0,.25);--logo-h:100px;--duration:30s;--strip-silver:#f0f1f2;--strip-bg:var(--strip-silver);--strip-shadow:rgba(0,0,0,0.22);--shadow-edge:rgba(0,0,0,.50);--shadow-body:rgba(0,0,0,.34);--stack-overlap:6px;--stack-trail:10px;--contact-lift:14px;--after-about-offset:calc(var(--about-overlap) + 26px);
  /* hero-more */
  --hero-more-img-w:600px;--hero-more-bleed:20px;--hero-more-gap:16px;--hero-more-img-col:clamp(320px,36vw,var(--hero-more-img-w));
  /* hero background */
  --hero-cream-1:#fff;--hero-cream-2:#f4efe3;--hero-g-top:#62f74f;--hero-g-bot:#1ac22b;--hero-curve-cx:0%;--hero-curve-cy:-18%;--hero-curve-r:63%;--hero-shadow-k:.18;
  /* back-to-top */
  --backtop-right:clamp(28px,5vw,88px);--backtop-bottom:clamp(72px,10vh,120px);--backtop-size:52px;--backtop-bg:var(--brand);--backtop-hover:var(--brand-dark)
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Arial,Helvetica,sans-serif;color:var(--text);line-height:1.6;background:#fff}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* Header */
header{position:fixed;top:0;left:0;right:0;background:#fff;border-bottom:1px solid #ddd;z-index:1100}
.header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;padding:15px 0}

.logo{display:flex;flex-direction:column;align-items:center}
.logo img{height:80px;width:auto}
nav a{text-decoration:none;color:var(--text);margin-left:20px;font-weight:600}
.logo .logo-tag,.logo-tag{margin-top:6px;font-size:14px;line-height:1.2;color:#444;white-space:nowrap;text-align:center;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;font-weight:600;letter-spacing:.2px;text-rendering:optimizeLegibility}
@media (max-width:480px){.logo .logo-tag{font-size:12px}}

/* Hero */
.hero{margin-top:100px;padding:60px 0;overflow:hidden;position:relative;background:
  radial-gradient(160% 160% at var(--hero-curve-cx) var(--hero-curve-cy),rgba(255,255,255,.55) var(--hero-curve-r),rgba(255,255,255,0) calc(var(--hero-curve-r) + 8%)),
  linear-gradient(to right,var(--hero-cream-1) 0%,var(--hero-cream-2) 60%) !important}
.hero>*{position:relative;z-index:1}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(60% 45% at 78% 100%,rgba(255,255,255,.28),rgba(255,255,255,0) 60%),
  linear-gradient(to bottom,var(--hero-g-top),var(--hero-g-bot));
  -webkit-mask:radial-gradient(160% 160% at var(--hero-curve-cx) var(--hero-curve-cy),#000 var(--hero-curve-r),transparent calc(var(--hero-curve-r) + 1px));
          mask:radial-gradient(160% 160% at var(--hero-curve-cx) var(--hero-curve-cy),#000 var(--hero-curve-r),transparent calc(var(--hero-curve-r) + 1px))}
.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(160% 160% at var(--hero-curve-cx) var(--hero-curve-cy),rgba(0,0,0,var(--hero-shadow-k)) calc(var(--hero-curve-r) + .5%),rgba(0,0,0,.08) calc(var(--hero-curve-r) + 2%),rgba(0,0,0,0) calc(var(--hero-curve-r) + 7%));
  mix-blend-mode:multiply}
@supports not ((-webkit-mask:none) or (mask:none)){
  .hero::before{clip-path:ellipse(120% 88% at 0% 0%)}
  .hero::after{display:none}
}
.hero-content{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.hero-left{flex:1 1 45%;min-width:280px}
.hero-title{font-size:36px;margin:0 0 16px}
.hero-desc{font-size:18px;margin:0 0 24px;white-space:pre-line;overflow-wrap:break-word;word-break:break-word}
.btn{background:var(--brand);color:#fff;border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-weight:700}
.btn:hover{background:var(--brand-dark)}
.hero-right{flex:1 1 45%;min-width:280px;position:relative;height:260px}
.card{width:200px;height:260px;border-radius:12px;position:absolute;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow);cursor:pointer;transition:transform .25s ease,z-index .25s ease,box-shadow .25s ease}
.card h2{margin:0 0 8px;font-size:32px}
.card p{margin:0;opacity:.9}
.card:nth-child(1){background:#1b5e20;left:38%;transform:rotate(-15deg);z-index:1}
.card:nth-child(2){background:#388e3c;left:58%;transform:rotate(-5deg);z-index:2}
.card:nth-child(3){background:#66bb6a;left:78%;transform:rotate(5deg);z-index:3}
.card:hover{transform:scale(1.12) rotate(0deg);z-index:10;box-shadow:0 14px 28px rgba(0,0,0,.3)}
.hero-right .card{position:absolute}
.hero-right .card h2,.hero-right .card p{position:absolute;left:10px;margin:0;text-align:left;pointer-events:none}
.hero-right .card h2{top:8px;line-height:1}
.hero-right .card p{top:calc(8px + 1.8em);line-height:1.2;max-width:65%}

/* Hero Learn More layout */
.hero-more-block{display:grid;grid-template-columns:1fr var(--hero-more-img-col);gap:var(--hero-more-gap);align-items:start;margin-top:12px;overflow:visible}
.hero-more{min-width:360px;font-size:16px;line-height:1.65;color:#333;white-space:pre-line;overflow-wrap:break-word;word-break:break-word}
.hero-more-figure{justify-self:end;margin-right:calc(-1 * var(--hero-more-bleed))}
.hero-more-img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 8px 18px rgba(0,0,0,.12);object-fit:cover;background:#fff}
@media (max-width:768px){
  .hero-more-block{grid-template-columns:1fr}
  .hero-more{min-width:0}
  .hero-more-figure{justify-self:start;margin-right:0}
  .hero-more-img{width:100%;max-width:360px}
}

/* About + Modal */
#about{margin:0 auto;padding:180px 50px calc(80px + var(--about-overlap) + 24px);text-align:center;color:#fff;position:relative;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.12)}
#about::after{content:"";position:absolute;top:0;bottom:calc(-1 * var(--about-overlap));left:50%;transform:translateX(-50%);width:100vw;background:url('images/about-bg.jpg') no-repeat center/cover;z-index:0;pointer-events:none}
#about::before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:100vw;background:rgba(0,0,0,.4);border-radius:0;z-index:1}
#about h2,#about p,#about .btn{position:relative;z-index:2}
.about-modal .about-modal-content{background:#fff;border-radius:20px;width:min(92vw,1500px);max-width:none;height:86vh;overflow-y:auto;padding:48px 64px;position:relative;animation:fadeIn .35s ease;box-shadow:0 15px 40px rgba(0,0,0,0.4)}
.about-slides{position:relative;overflow:hidden}
.about-slide{display:none;animation:fadeIn .4s ease}
.about-slide.active{display:block}
.about-slide-prev,.about-slide-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);color:#fff;border:none;font-size:28px;cursor:pointer;padding:12px 18px;border-radius:50%;transition:background .3s;z-index:10}
.about-slide-prev:hover,.about-slide-next:hover{background:rgba(0,0,0,.65)}
.about-slide-prev{left:10px}.about-slide-next{right:10px}
.about-modal-content h3{text-align:center;margin:0 0 24px;font-size:26px;color:var(--brand)}
.about-steps{display:flex;justify-content:space-between;align-items:flex-end;position:relative;height:720px;gap:40px;padding:0 16px 4px}
.about-step{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;height:100%}
.about-step .bar{width:56%;min-width:72px;position:absolute;bottom:240px;left:50%;transform:translateX(-50%);background:linear-gradient(to top,var(--brand),#A5D6A7);border-radius:12px 12px 0 0;transition:height .8s ease}
.about-step .bar img {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translate(-50%, -32px);
  width: 40%;
  min-width: 160px;
  max-width: 260px;
  height: auto;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,0.25);
  z-index: 2;
  pointer-events: none;
}
@media (max-width: 768px) {
  .about-step .bar img {
    width: 60%;
    min-width: 140px;
    max-width: 200px;
  }
}

.about-step p{position:absolute;left:50%;transform:translateX(-50%);top:calc(var(--bar-base) + var(--text-gap));bottom:auto;width:92%;max-width:320px;min-height:150px;max-height:190px;overflow:auto;margin:0;padding:10px;background:rgba(255,255,255,0.9);border-radius:10px;box-shadow:0 4px 12px rgba(0,0,0,0.1);font-size:15px;color:#222;line-height:1.65;text-align:center}
.about-step p span{display:block;margin-bottom:6px}
.about-step p .zh{font-weight:600;color:#111;margin-bottom:8px}
.about-slide-img{max-width:100%;height:auto;border-radius:10px;display:block;margin:0 auto 20px;box-shadow:0 8px 24px rgba(0,0,0,0.25)}
.about-slide-desc{text-align:center;font-size:18px;color:#333}
.about-modal .about-slide:not(:first-child) .about-step p{top:auto !important;bottom:0 !important}
.about-modal .about-slide:first-child .about-steps{--bar-base:240px;--text-gap:8px}
.about-modal .about-slide:first-child .about-step p{top:calc(100% - var(--bar-base) + var(--text-gap)) !important;bottom:auto !important}
@media (max-width:900px){.about-modal .about-slide:first-child .about-steps{--bar-base:220px}}

/* Products / Standards */
#products .section-title{text-align:center;margin:40px 0 20px}
.product-list{display:flex;flex-wrap:wrap;justify-content:space-around;gap:20px}
.product{flex:1 1 300px;min-width:260px;text-align:center;cursor:pointer}
.product img{width:100%;border-radius:12px;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.product-name{text-align:center;font-size:18px;font-weight:600;margin-bottom:8px}
.product-desc{font-size:15px;text-align:center;color:#333;line-height:1.6;display:block;max-height:8em;overflow:hidden;text-overflow:ellipsis}
#standards .products-row{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch;justify-content:space-between}
#standards .products-row .product{flex:0 0 calc(33.333% - 28px);max-width:calc(33.333% - 28px);box-sizing:border-box;padding:16px}
#standards .product img{height:300px;width:auto;object-fit:contain;display:block;margin:0 auto 14px}

/* Contact */
#contact{background:#f8f8f8;padding:60px 30px;border-radius:12px;max-width:640px;margin:80px auto;text-align:center;box-shadow:0 5px 18px rgba(0,0,0,.1)}
#contact form{display:flex;flex-direction:column;gap:12px}
#contact input,#contact textarea{width:100%;padding:10px;font-size:16px;border:1px solid #ccc;border-radius:6px}
#form-status.success{color:#2e7d32}
#form-status.error{color:#c62828}

/* Footer & language */
footer{background:#f1f1f1;text-align:center;padding:20px}
/* Footer & language */
.language-selector{
  position:absolute; right:12px; bottom:6px; display:flex; gap:0px; z-index:1200;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;   /* 可留可去 */
  /* padding: 0; */   /* 若想连内边距也取消就去掉注释 */
}


.language-selector button{margin-left:6px;padding:6px 10px;border:1px solid #ddd;background:#fff;cursor:pointer}
.language-selector button:hover{background:#f3f3f3}

/* Sections stripe background */
section{position:relative;isolation:isolate}
section::before{content:"";position:absolute;left:50%;transform:translateX(-50%);width:100vw;top:var(--strip-top,-20px);height:calc(100% + var(--strip-bleed,60px));background:var(--strip-bg,#f0f1f2);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.107),0 18px 18px rgba(0,0,0,0.26);z-index:0;pointer-events:none}
section>*{position:relative;z-index:1}
#standards .section-title{margin-bottom:20px}
#contact .section-title{margin-bottom:20px}
section .section-title{margin:0 0 16px;text-align:center;font-size:32px;font-weight:800;letter-spacing:.5px;color:var(--brand);line-height:1.2}
#about{z-index:1000 !important}
#catalog{z-index:30 !important}
#standards{z-index:20 !important}
#contact{z-index:10 !important}

/* Catalog */
.catalog{margin-top:var(--after-about-offset);position:relative;margin:0 auto;padding:8px 0 18px}
.catalog-carousel{z-index:3;position:relative;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;padding-bottom:12px;scroll-snap-type:none;overscroll-behavior:auto}
.catalog-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc(25% - 18px);
  gap: 24px;
  padding: 4px 36px;
}

@media (max-width: 900px) {
  .catalog-track {
    grid-auto-columns: calc(50% - 16px); /* 手机显示两张 */
  }
}
@media (max-width: 600px) {
  .catalog-track {
    grid-auto-columns: 80%; /* 超小屏显示一张半 */
  }
}

.catalog-card{background:#fff;border-radius:14px;box-shadow:0 8px 18px rgba(0,0,0,.12);overflow:hidden;display:flex;flex-direction:column;min-height:360px}
.catalog-card img{width:100%;height:180px;object-fit:contain;object-position:center;background:#fff;padding:6px;box-sizing:border-box}
.catalog-card h3{margin:12px 14px 6px;font-size:18px;color:#222}
.catalog-card p{margin:0 14px 12px;color:#444;line-height:1.55;min-height:3.2em}
.catalog-card .catalog-btn{margin:auto 14px 14px;align-self:flex-start}
.catalog-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,.4);color:#fff;cursor:pointer;z-index:5;display:grid;place-items:center}
.catalog-nav:hover{background:rgba(0,0,0,.6)}
.catalog-nav.prev{left:4px}.catalog-nav.next{right:4px}

/* Scroll anchors */
#catalog{margin-top:calc(var(--about-overlap,120px) + 24px)}
#catalog{scroll-margin-top:180px}
#standards{scroll-margin-top:180px}

/* Modal overlay (unified) */
.modal,.about-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.55);z-index:3000}
.modal .modal-content,.about-modal .about-modal-content{position:relative;background:#fff;border-radius:16px;max-width:min(1200px,92vw);max-height:90vh;width:100%;box-shadow:0 18px 48px rgba(0,0,0,.28);padding:22px 24px;overflow:auto;z-index:1}

/* Back to top */
.back-to-top{position:fixed;right:var(--backtop-right);bottom:var(--backtop-bottom);z-index:2500;width:var(--backtop-size);height:var(--backtop-size);border:none;border-radius:0;display:grid;place-items:center;cursor:pointer;background:var(--backtop-bg);box-shadow:0 10px 24px rgba(0,0,0,.18);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background .2s ease}
.back-to-top:hover{background:var(--backtop-hover)}
.back-to-top svg{width:60%;height:60%;fill:#fff}
.back-to-top.show{opacity:1;transform:none;pointer-events:auto}

/* Responsive */
@media (max-width:1024px){#standards .products-row .product{flex:0 0 calc(50% - 28px);max-width:calc(50% - 28px)}#standards .product img{height:160px}}
@media (max-width:900px){
  .hero-right{height:auto;transform:none}
  .card{position:relative;left:0;transform:none;margin:8px auto;display:block}
  .hero-content{flex-direction:column}
  .about-steps{height:560px;gap:28px}
  .about-step .bar{bottom:220px}
  .about-step .bar img{width:150px;transform:translate(-50%,-26px)}
  .about-step p{max-width:92%;min-height:140px;max-height:180px}
  :root{--hero-curve-cx:6%;--hero-curve-cy:-10%;--hero-curve-r:68%}
  .hero-right{position:relative !important;height:240px !important;overflow:visible !important;transform:none !important}
  .hero-right .card{position:absolute !important;width:180px !important;height:234px !important;margin:0 !important;display:flex !important;top:0 !important}
  .hero-right .card:nth-child(1){left:22% !important}
  .hero-right .card:nth-child(2){left:46% !important}
  .hero-right .card:nth-child(3){left:70% !important}
}
@media (max-width:600px){#standards .products-row .product{flex:0 0 100%;max-width:100%}#standards .product img{height:140px}}
@media (max-width:480px){
  .hero-right{height:220px !important}
  .hero-right .card{width:160px !important;height:208px !important}
  .hero-right .card:nth-child(1){left:18% !important;top:-4px !important}
  .hero-right .card:nth-child(2){left:44% !important;top:2px !important}
  .hero-right .card:nth-child(3){left:70% !important;top:8px !important}
  .back-to-top{right:20px;bottom:72px;width:48px;height:48px}
}

/* Desktop fine-tune */
@media (min-width:901px){
  .hero-content{flex-wrap:nowrap;gap:16px;align-items:center}
  .hero-left{flex:1 1 0;min-width:0}
  .hero-right{flex:0 0 600px;height:260px;margin-left:auto;position:relative;overflow:visible;transform:translateX(calc((100vw - min(1200px,100vw)) / 2 - 8px))}
  .hero-right .card:nth-child(1){left:38%;top:0}
  .hero-right .card:nth-child(2){left:58%;top:0}
  .hero-right .card:nth-child(3){left:78%;top:0}
  .hero{padding:60px 0;overflow:hidden}
}
#standards>*:first-child{margin-top:0}
#standards .section-title{margin-top:0}
#standards{padding-bottom:48px}

@keyframes fadeIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}

/* 全局文本换行兜底：长英文/URL 不溢出 */
html, body, body *{
  overflow-wrap: break-word;  /* 首选：必要时在单词内断行 */
  word-wrap: break-word;      /* 兼容旧属性名 */
  word-break: break-word;     /* 兜底，处理极长连续字符 */
}

/* 保持代码块等的原始空白行为（可选） */
pre, code{
  white-space: pre;
  overflow-wrap: normal;
  word-break: normal;
}
/* ==== Modal 文本换行与换行符支持（只影响模态框）==== */

/* 产品详情模态 */
#product-modal #modal-desc{
  white-space: pre-line !important;  /* 识别 \n 为换行 */
  overflow-wrap: anywhere;           /* 长英文/URL 也能断行 */
  word-break: break-word;
  line-height: 1.65;
}

/* Catalog 详情模态 */
#catalog-modal #catalog-modal-desc{
  white-space: pre-line !important;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.65;
}

/* ==== 只让 About Us 的第 2 张模态页换行 ==== */
#about-modal .about-slide:nth-child(2) .about-slide-desc,
#about-modal .about-slide:nth-child(2) p{
  white-space: pre-line !important;  /* 识别 \n 为换行 */
  overflow-wrap: anywhere;           /* 超长单词/URL 也能断开 */
  word-break: break-word;
  line-height: 1.65;
}

/* 点击“联系我们”后再往下停一点 */
#contact{ scroll-margin-top: 220px; }  /* 试 200–260px，按感觉微调 */

/* === 修正开始（2025.11版）=== */

/* === About 模态框滑动修复 === */
@media (max-width: 900px) {
  .about-steps {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    gap: 20px;
    padding-bottom: 12px;
    justify-content: flex-start;
    scroll-snap-type: x mandatory;
  }

  .about-step {
    flex: 0 0 80%;
    scroll-snap-align: center;
    position: relative;
    min-height: 480px;
  }

  .about-step .bar {
    width: 60%;
    bottom: 200px;
  }

  .about-step p {
    max-width: 90%;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 auto;
  }
}


/* 产品区域图片比例 & 居中修复 */
.catalog-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
  overflow: hidden;
  min-height: 360px;
}

.catalog-card img {
  display: block;
  margin: 0 auto;
  width: auto;
  max-width: 100%;
  max-height: 180px;
  object-fit: contain;
  object-position: center center;
  background: #fff;
  padding: 6px;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .catalog-card img {
    max-height: 120px;
  }
}

/* 改善手机端整体缩放体验 */
html {
  -webkit-text-size-adjust: 100%;
}
body {
  touch-action: manipulation;
}
img {
  max-width: 100%;
  height: auto;
  -webkit-user-drag: none;
}
/* === 修正结束 === */

.about-modal .about-modal-content {
  width: min(92vw, 1500px);
  max-width: none;
  height: 86vh;
  overflow-y: auto;
  padding: 48px 64px;
  position: relative;
  animation: fadeIn .35s ease;
  box-shadow: 0 15px 40px rgba(0,0,0,0.4);
  word-break: break-word;
  overflow-wrap: anywhere;
}

@media (max-width: 768px) {
  .about-modal .about-modal-content {
    padding: 24px 16px;
    height: auto;
  }
  .about-slide-desc,
  .about-step p {
    font-size: 15px;
    line-height: 1.6;
    padding: 10px;
  }
}
.about-modal .about-modal-content {
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

/* === Catalog Modal image size fix (only CSS) === */
#catalog-modal .modal-content{
  width: min(90vw, 720px) !important;  /* 约束弹窗宽度 */
  max-height: 90vh !important;         /* 约束弹窗高度 */
  overflow: auto;                       /* 超出可滚动 */
}

/* 提高特异性并使用 !important，防止被全局 img{width:100%} 之类覆盖 */
#catalog-modal .modal-content img#catalog-modal-img{
  display: block !important;
  width: auto !important;               /* 取消铺满 */
  max-width: 92% !important;            /* 最多占弹窗 92% 宽 */
  height: auto !important;
  max-height: 48vh !important;          /* 竖向上限，手机再小一点见下条 */
  margin: 8px auto 12px !important;
  object-fit: contain !important;       /* 保持比例，不裁切 */
  border-radius: 6px;
}

/* 手机端把图片再压小一些，避免顶满屏 */
@media (max-width: 768px){
  #catalog-modal .modal-content img#catalog-modal-img{
    max-height: 36vh !important;        /* 可按需调成 32~40vh */
    max-width: 94% !important;
  }
}

/* === Enlarge hit area for About modal arrows (safe version 2025.11) === */
.about-slide-prev,
.about-slide-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  pointer-events: auto;
  z-index: 20;
}

/* 扩大点击范围（横向宽、竖向略高），不覆盖整个模态 */
.about-slide-prev::after,
.about-slide-next::after {
  content: "" !important;
  position: absolute !important;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 120px;   /* 横向更宽 */
  height: 170px;   /* 上下稍大，但不遮住其它区域 */
  background: transparent !important;
  pointer-events: auto;
}

/* 手机端可略微再大一点 */
@media (max-width: 768px) {
  .about-slide-prev::after,
  .about-slide-next::after {
    width: 140px;
    height: 80px;
  }
}

/* === Catalog modal: 手势参数（不改外观） === */
#catalog-modal .modal-content{
  touch-action: pan-y;           /* 允许纵向滚动，把横向留给 JS */
  overscroll-behavior: contain;  /* 避免滚动穿透页面 */
}
/* 强制把语言条固定在 header 右下角（保险覆盖） */
header .language-selector{
  position: absolute !important;
  right: -350px !important;
  bottom: 6px !important;
  top: auto !important;   /* 防止旧样式的 top 抢权 */
  left: auto !important;
}

/* 移动端同样贴右下角（可选加强） */
@media (max-width: 768px){
  header .language-selector{
    right: 0px !important;
    bottom: 6px !important;
  }
}
/* --- Partners 无缝滚动：关键帧（恢复） --- */
@keyframes scrollLoop {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); } /* 配合子元素克隆一倍，实现无缝衔接 */
}

/* === BEGIN Partners (merged) === */
/* Minimal styles for the extracted Partners module */
:root{
  --partners-gap: 28px;
  --partners-height: 100px; /* logo strip height; you can change later */
  --partners-duration: 30s; /* full loop; adjust as needed */
}

/* simple container */
body{ margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
.container{ max-width: 1200px; margin: 0 auto; padding: 40px 16px; }
h2{ font-size: 24px; margin: 0 0 16px 0; }

/* carousel */
.partners-carousel{
  overflow: hidden;
  width: 100%;
}
.partners-track{
  display: inline-flex;
  align-items: center;
  gap: var(--partners-gap);
  will-change: transform;
  animation: scrollLoopPX var(--partners-duration) linear infinite;
}
.partners-track img{
  height: var(--partners-height);
  width: auto;
  object-fit: contain;
  display: block;
  flex: 0 0 auto;
  filter: none;
}

/* pixel-precise loop using JS-provided --half-px */
@keyframes scrollLoopPX{
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(-1 * var(--half-px, 50%))); }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce){
  .partners-track{ animation-duration: calc(var(--partners-duration) * 2); }
}

/* ==== Partners Title Unify Patch ==== */
/* 让 #partners 的标题与其它 section 的 .section-title 保持一致 */
#partners h2,
#partners .section-title{
  margin: 0 0 16px !important;
  text-align: center !important;
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: .5px !important;
  color: var(--brand) !important;
  line-height: 1.2 !important;
}


/* ==== Partners seamless fix overrides (do not touch other areas) ==== */
#partners .partners-track{
  gap: 0 !important; /* remove inter-image gap to avoid visible seam */
  animation: scrollLoopPX var(--partners-duration, 12s) linear infinite !important;
  will-change: transform;
}
@keyframes scrollLoopPX{
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(-1 * var(--half-px, 50%))); } /* move exactly the width of the first set */
}
/* === END Partners (merged) === */

/* ==== Header Height Patch ==== */
header .header-inner{
  padding: 25px 0 !important;   /* 调小内边距 */
}

header .logo img{
  height: 64px !important;     /* 调小 logo 高度 */
  width: auto !important;
}

header .logo .logo-tag{
  margin-top: 2px !important;  /* 收紧副标题间距 */
  line-height: 1.2 !important;
}

/* 如出现内容被固定头部遮住，可临时取消注释下面一行同步避让 */
/* .hero{ margin-top: 80px !important; } */

/* ==== LOGO Stability Patch (no stretch, same size for all languages) ==== */
/* 统一 logo 高度，禁止被 flex 挤压、全局 img 规则影响或被 transform 缩放 */

:root{
  --logo-h: 72px;  /* 想要多大就改这里：例如 64/72/80px */
}

header .logo{
  flex: 0 0 auto !important;      /* 不允许被挤压 */
  white-space: nowrap !important;  /* 防止跟副标题一起换行挤压图片 */
}

header .logo img{
  display: block !important;
  height: var(--logo-h) !important;  /* 只定高，宽自适应，保持比例 */
  width: auto !important;
  max-width: none !important;         /* 取消全局 img { max-width:100% } 对它的限制 */
  flex: 0 0 auto !important;          /* 禁止 flex-shrink */
  object-fit: contain !important;     /* 进一步避免拉伸 */
  aspect-ratio: auto !important;      /* 强制使用固有宽高比 */
  transform: none !important;         /* 清理意外的缩放/拉伸 */
}

/* 如果中文/法文副标题过长导致 header 变高，仅限压缩副标题间距（可选） */
/*
header .logo .logo-tag{
  margin-top: 2px !important;
  line-height: 1.2 !important;
}
*/
/* ==== Standards Downshift Patch ==== */
/* 想下移多少，改这个数即可（例：40/80/120px） */
:root{
  --standards-push: 80px;
}

/* 把 #standards 整段往下挪 */
#standards{
  margin-top: var(--standards-push) !important;
  /* 让该段的条纹背景向上延伸，填满新增的上方空隙 */
  --strip-top: calc(-20px - var(--standards-push));
}

/* 如果有锚点定位到 #standards 被头部挡住，可按需打开并微调：
#standards{ scroll-margin-top: 180px !important; }
*/
/* ==== Contact Upward Patch ==== */
/* 调整这个值来“往上移”联系区域：数值越大，上移越多 */
:root{
  --contact-pull: 99px;   /* 例：24/48/72；想恢复原样就设为 0 */
}

/* 你的原样式是 margin: 80px auto; 这里只改顶部间距 */
#contact{
  margin-top: calc(80px - var(--contact-pull)) !important;
  /* 如需限制不为负，可改为：
     margin-top: max(0px, calc(80px - var(--contact-pull))) !important;
  */
}

/* 如果有从导航跳转到 #contact 被头部遮住的问题，可同步加一条（可选） */
#contact{
  scroll-margin-top: calc(var(--header-offset, 40px) + 40px) !important;
}


/* ==== Partners vs Footer Overlap Fix ==== */
/* 1) 让页脚浮在合作企业上面 */
footer{
  position: relative !important;
  z-index: 200 !important;
}

/* 2) 降低 #partners 的层级，并留出与页脚的间距 */
#partners{
  position: relative !important;
  z-index: 5 !important;         /* 比 footer 低即可 */
  margin-bottom: 32px !important; /* 给页脚预留空间，按需改 16~64px */
}

/* 3) 缩短合作企业的条纹背景“下延”距离，避免盖到页脚背景 */
#partners{
  --strip-bleed: 24px !important;   /* 你的全局条纹默认 60px，这里改小 */
}
/* 如果你没有用到 --strip-bleed，也可以显式限制伪元素高度： */
#partners::before{
  top: var(--strip-top, -20px) !important;
  height: calc(100% + var(--strip-bleed, 24px)) !important;
}

/* 4) 防止内部轨道层级过高导致遮盖（保险项） */
#partners .partners-carousel,
#partners .partners-track{
  position: relative !important;
  z-index: 1 !important;
}

/* ==== Pin language selector to header's bottom-right PAGE EDGE (no big box) ==== */

/* 关键1：让 .language-selector 的定位参照不是 .header-inner，而是 header 本身 */
header .header-inner{
  position: static !important;   /* 不作为定位上下文 */
}

/* 关键2：直接贴到 header 的右下角（相对整个页面边缘），提升层级避免被遮盖 */
header .language-selector{
  position: absolute !important; /* 以 header 为参照；header 是 fixed */
  right: 0 !important;           /* 贴紧页面右边缘 */
  bottom: 0 !important;          /* 贴紧 header 底边缘 */
  z-index: 1200 !important;

  /* 容器不要大框 */
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;

  display: flex !important;
  gap: 6px !important;
  white-space: nowrap !important;
}

/* 按钮允许有小边框（小框），无大容器框 */
header .language-selector button{
  border: 1px solid #ddd !important;   /* 小框 OK */
  background: #fff !important;         /* 小按钮底色 OK */
  border-radius: 6px !important;
  padding: 4px 8px !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

header .language-selector button:hover{
  background: #f3f3f3 !important;
}

/* 小屏同样贴紧页面边缘 */
@media (max-width: 768px){
  header .language-selector{
    right: 0 !important;
    bottom: 0 !important;
  }
}
