:root{
  --blue:#0F489E;
  --blue-2:#0F479E;
  --deep:#083070;
  --navy:#142B49;
  --navy-2:#142B4A;
  --gray:#69798D;
  --muted:#98A3B3;
  --muted-2:#98A3B1;
  --line:#DEE5F0;
  --line-2:#DDE5EF;
  --soft:#F3F7FC;
  --soft-2:#F2F7FC;
  --soft-3:#EBF2FC;
  --pale:#BFCFE5;
  --f-cn:'Source Han Sans CN','Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --f-en:'Inter','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#fff}
body{font-family:var(--f-cn);color:var(--navy);-webkit-font-smoothing:antialiased}
img{display:block;max-width:none}
a{color:inherit;text-decoration:none}
button{font-family:inherit;border:0;background:none;cursor:pointer;color:inherit}
svg{display:block}
.page{display:none;overflow:hidden}
.page.active{display:block}
.stage{width:1920px;transform-origin:top left}

/* ---------- header ---------- */
.hdr{height:112px;padding:0 176px;background:#fff;display:flex;align-items:center;justify-content:space-between;position:relative}
.logo{display:flex;align-items:center;gap:14px}
.mark{width:66px;height:66px;background:var(--blue);display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--f-cn);font-size:25px;letter-spacing:.02em}
.word{display:flex;flex-direction:column;gap:3px}
.word b{font-family:var(--f-en);font-weight:700;font-size:22px;color:var(--navy);line-height:1.1}
.word span{font-family:var(--f-en);font-size:12px;color:var(--blue);line-height:1.1;letter-spacing:.04em}
.nav{display:flex;gap:54px;height:112px;align-items:center}
.nav a{display:flex;flex-direction:column;align-items:flex-start;gap:6px;justify-content:center;font-size:18px;color:var(--navy);line-height:1.2}
.nav a:hover{color:var(--blue)}
.nav a.on{color:var(--blue);font-weight:700}
.nav a.on::after{content:'';display:block;width:100%;min-width:28px;height:3px;background:var(--blue)}
.util{display:flex;align-items:center;gap:24px;color:var(--blue);font-size:16px}
.util .sep{width:1px;height:22px;background:var(--line-2)}
.util .en{font-family:var(--f-cn);color:var(--blue)}
.util .slash{font-family:var(--f-en);color:var(--line-2)}
.util .cn{font-family:var(--f-cn);color:var(--gray)}
.util .ico{display:flex;align-items:center;justify-content:center;width:22px;height:22px}
.util .langs{display:flex;align-items:center;gap:8px;font-size:15px;font-family:var(--f-cn)}
.util .langs a{color:var(--gray);text-decoration:none;transition:color .18s}
.util .langs a:hover{color:var(--blue)}
.util .langs a.on{color:var(--blue);font-weight:600}
.util .langs i{font-style:normal;color:var(--line-2)}
.ft .lang a.on{color:#fff;font-weight:600}

/* ---------- banner ---------- */
.banner{height:240px;background:var(--blue);padding:54px 176px;display:flex;flex-direction:column;justify-content:center;gap:15px;position:relative;overflow:hidden;color:#fff}
.orb{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%;pointer-events:none}
.orb.a{width:720px;height:720px;right:-90px;top:-250px}
.orb.b{width:520px;height:520px;right:60px;top:-150px}
.banner h1{font-family:var(--f-en);font-weight:600;font-size:52px;line-height:1.1;position:relative}
.banner h2{font-family:var(--f-cn);font-weight:500;font-size:26px;line-height:1.2;position:relative}

/* ---------- shared ---------- */
.sec{padding:104px 176px;display:flex;flex-direction:column;gap:48px}
.sec.soft{background:var(--soft)}
.sec.tight{padding:88px 176px}
.head-row{display:flex;justify-content:space-between;align-items:flex-start}
.intro{display:flex;flex-direction:column;gap:17px}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--blue)}
.eyebrow i{width:28px;height:2px;background:var(--blue);display:block;flex:none}
h2.title{font-size:52px;line-height:1.16;font-weight:400;color:var(--navy)}
h2.title.sm{font-size:44px;font-weight:700;font-family:var(--f-cn)}
.desc{font-size:19px;line-height:1.6;color:var(--gray)}
.link{display:inline-flex;align-items:center;gap:20px;font-size:16px;color:var(--blue);padding-bottom:8px}
.link:hover{opacity:.75}
.btn{display:inline-flex;align-items:center;gap:26px;height:56px;padding:0 26px;background:var(--blue);color:#fff;border-radius:6px;font-size:16px;line-height:1}
.btn:hover{background:#0c3a80}
.btn.light{background:#fff;color:var(--blue)}
.btn.light:hover{background:#eef4fc}
.btn:not(.full),.link,.more-link,.backlink,.contactlink{align-self:flex-start}
.btn.sm{height:46px;padding:0 22px;gap:8px;font-size:14px;font-weight:600;font-family:var(--f-en)}
.btn.full{width:100%;justify-content:center}
.arrow{flex:none}

/* ---------- home hero ---------- */
.hero{height:928px;position:relative;overflow:hidden;background:linear-gradient(160deg,#EAF4FF 0%,#CDDEF5 56%,#7EAAE0 100%)}
.hero .city{position:absolute;left:0;top:0;width:1920px;height:928px;object-fit:cover}
.hero .platform{position:absolute;left:240px;top:735px;width:1440px;height:84px;border-radius:50%;background:#ADC8E8;opacity:.55;filter:blur(2px)}
.showcase{position:absolute;left:183px;top:396px;width:1522px;height:400px;display:flex;align-items:center;gap:40px}
.showcase img{object-fit:contain}
.hero-copy{position:absolute;left:176px;top:86px;width:1350px;display:flex;flex-direction:column;gap:21px}
.hero-copy .eb{font-size:15px;color:var(--blue)}
.hero-copy h1{font-size:92px;font-weight:900;line-height:1.08;color:var(--deep);letter-spacing:.01em}
.hero-copy .sub-en{font-family:var(--f-en);font-size:25px;line-height:1.5;color:var(--navy);width:1110px}
.hero-copy .sub-cn{font-size:19px;color:var(--blue)}
.hero-foot{position:absolute;right:176px;bottom:34px;display:flex;align-items:center;gap:32px;z-index:6}
.pager{display:flex;align-items:center;gap:24px}
.circle{width:48px;height:48px;border-radius:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);background:#fff;color:var(--blue);font-family:var(--f-en);font-size:16px}
.circle.solid{background:var(--blue);border-color:var(--blue);color:#fff}
.circle:hover{opacity:.8}
.pager .num{font-size:16px;color:var(--blue)}

/* ---------- product cards ---------- */
.grid4{display:flex;gap:24px}
.pcard{flex:1;background:#fff;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.pcard:hover{box-shadow:0 12px 30px rgba(5,23,48,.1);transform:translateY(-2px)}
.pcard .shot{height:292px;background:var(--soft);display:flex;align-items:center;justify-content:center}
.pcard .body{padding:28px;display:flex;flex-direction:column;gap:16px}
.pcard .cat{font-size:12px;color:var(--blue)}
.pcard .name{font-size:24px;line-height:1.2;color:var(--navy)}
.pcard .txt{font-family:var(--f-en);font-size:16px;line-height:1.6;color:var(--gray)}

/* ---------- applications ---------- */
.apps{display:flex;gap:24px}
.app{position:relative;flex:1;height:450px;overflow:hidden}
.app img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.app .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(5,33,69,0) 35%,rgba(5,33,69,.87) 100%)}
.app .cap{position:absolute;left:28px;right:28px;bottom:28px;display:flex;flex-direction:column;gap:16px;color:#fff}
.app .idx{font-family:var(--f-en);font-size:14px;color:rgba(255,255,255,.7)}
.app .ttl{font-size:26px;line-height:1.2}
.app .cpt{font-family:var(--f-en);font-size:11px;line-height:1.4;color:rgba(255,255,255,.8)}
.app:hover img{transform:scale(1.03);transition:transform .4s}
.bar-row{display:flex;align-items:center;justify-content:space-between}
.track{display:flex;align-items:center}
.track i{display:block;height:3px}
.track .on{width:124px;background:var(--blue)}
.track .off{width:372px;background:var(--line-2)}

/* ---------- capability ---------- */
.caps{display:flex;gap:24px}
.capcard{flex:1;border:1px solid var(--line-2);overflow:hidden;display:flex;flex-direction:column;background:#fff}
.capcard img{width:100%;height:224px;object-fit:cover}
.capcard .body{padding:28px;display:flex;flex-direction:column;gap:15px}
.capcard .ttl{font-size:25px;line-height:1.2;color:var(--navy)}
.capcard .cn{font-size:16px;color:var(--blue)}
.capcard .txt{font-family:var(--f-en);font-size:16px;line-height:1.6;color:var(--gray)}

/* ---------- manufacturing ---------- */
.mfg{padding:96px 176px;background:var(--deep);display:flex;gap:80px;color:#fff}
.mfg .photo{position:relative;width:724px;height:568px;flex:none}
.mfg .photo img{width:100%;height:100%;object-fit:cover}
.mfg .tag{position:absolute;left:28px;bottom:28px;display:flex;align-items:center;gap:12px;padding:15px 22px;background:#fff;color:var(--blue);font-size:14px}
.mfg .tag i{width:7px;height:7px;background:var(--blue);display:block}
.mfg .info{flex:1;display:flex;flex-direction:column;gap:27px}
.mfg .eb{font-size:14px;color:var(--pale)}
.mfg h2{font-size:49px;line-height:1.15;font-weight:400;color:#fff}
.mfg .lead{font-family:var(--f-en);font-size:18px;line-height:1.7;color:var(--pale)}
.stats{display:flex;flex-direction:column;gap:25px;padding:8px 0}
.stats .row{display:flex;gap:36px}
.stat{flex:1;display:flex;flex-direction:column;gap:8px}
.stat b{font-size:40px;font-weight:400;line-height:1.1;color:#fff}
.stat span{font-size:14px;color:var(--pale)}

/* ---------- news block ---------- */
.news{display:flex;gap:64px}
.feature{width:752px;flex:none;display:flex;flex-direction:column;gap:23px}
.feature .shot{position:relative;height:340px}
.feature .shot img{width:100%;height:100%;object-fit:cover}
.badge{position:absolute;left:22px;top:22px;padding:12px 16px;background:var(--blue);color:#fff;font-size:12px}
.feature .date{font-family:var(--f-en);font-size:14px;color:var(--gray)}
.feature h3{font-size:29px;line-height:1.3;font-weight:400;color:var(--navy)}
.newslist{flex:1;display:flex;flex-direction:column}
.nitem{padding:25px 0 26px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:18px}
.nitem:first-child{border-top:1px solid var(--line-2)}
.nitem .meta{display:flex;justify-content:space-between;font-size:12px;color:var(--blue)}
.nitem .meta em{font-family:var(--f-en);font-size:14px;font-style:normal;color:var(--gray)}
.nitem .hl{display:flex;justify-content:space-between;align-items:center;gap:24px}
.nitem .hl h4{font-size:25px;line-height:1.3;font-weight:400;color:var(--navy)}
.nitem p{font-family:var(--f-en);font-size:16px;line-height:1.5;color:var(--gray)}
.note{font-family:var(--f-en);font-size:12px;line-height:1.5;color:var(--gray)}

/* ---------- inquiry ---------- */
.inquiry{display:flex;gap:112px;padding:104px 176px;background:var(--soft-2)}
.inquiry .left{width:560px;flex:none;display:flex;flex-direction:column;gap:28px}
.inquiry .left h2{font-size:56px;line-height:1.16;font-weight:400;color:var(--navy)}
.inquiry .left .lead{font-family:var(--f-en);font-size:19px;line-height:1.7;color:var(--gray)}
.rule{width:80px;height:3px;background:var(--blue)}
.topics{display:flex;flex-direction:column;gap:18px}
.topic{display:flex;align-items:center;gap:14px;font-family:var(--f-en);font-size:17px;color:var(--navy)}
.form{flex:1;display:flex;flex-direction:column;gap:24px}
.frow{display:flex;gap:24px}
.field{flex:1;display:flex;flex-direction:column;gap:12px}
.field label{font-family:var(--f-en);font-size:15px;font-weight:500;color:var(--navy)}
.field input,.field textarea{width:100%;height:58px;padding:0 18px;background:#fff;border:1px solid var(--line-2);border-radius:4px;font-family:var(--f-en);font-size:16px;color:var(--navy);outline:none}
.field textarea{height:168px;padding:18px;resize:none;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}
.field input:focus,.field textarea:focus{border-color:var(--blue)}
.privacy{font-family:var(--f-en);font-size:13px;line-height:1.5;color:var(--gray)}

/* ---------- footer ---------- */
.ft{padding:72px 176px 30px;background:var(--deep);color:#fff;display:flex;flex-direction:column;gap:60px}
.ft-top{display:flex;justify-content:space-between;gap:40px}
.ft .col-contact{width:490px;display:flex;flex-direction:column;gap:26px}
.ft .col-nav{width:180px;display:flex;flex-direction:column;gap:22px}
.ft .col-prod{width:240px;display:flex;flex-direction:column;gap:22px}
.ft .col-msg{width:305px;display:flex;flex-direction:column;gap:24px}
.ft h5{font-size:18px;font-weight:400;color:#fff}
.ft .flink{font-family:var(--f-en);font-size:16px;color:var(--pale)}
.ft .flink:hover{color:#fff}
.ft .company{font-size:16px;color:#fff}
.ft .guide{font-family:var(--f-en);font-size:16px;line-height:1.7;color:var(--pale)}
.ft .contactlink{display:flex;align-items:center;gap:14px;font-family:var(--f-en);font-size:16px;font-weight:500;color:#fff}
.ft .msg-h{font-family:var(--f-en);font-size:29px;font-weight:500;line-height:1.3;color:#fff}
.ft .msg-d{font-family:var(--f-en);font-size:16px;line-height:1.7;color:var(--pale)}
.ft .lang{display:flex;gap:18px;font-family:var(--f-en);font-size:14px}
.ft .lang a{color:#fff}
.ft .lang a.off{color:var(--pale)}
.ft .legal{display:flex;flex-direction:column;gap:28px}
.ft .divider{height:1px;background:rgba(255,255,255,.15)}
.ft .copy{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-en);font-size:13px;color:var(--pale)}
.ft .totop{display:flex;align-items:center;gap:12px;color:#fff}

/* ---------- about ---------- */
.about-row{display:flex;gap:80px}
.story{width:744px;flex:none;display:flex;flex-direction:column;gap:24px}
.story p{font-size:18px;line-height:1.9;color:var(--navy);white-space:pre-line}
.story .div{width:48px;height:2px;background:var(--line-2)}
.story p.en{font-family:var(--f-en);font-size:17px;line-height:1.8;color:var(--gray)}
.footprint{flex:1;display:flex;flex-direction:column;gap:24px}
.mapcard{background:var(--soft);border-radius:8px;padding:32px;display:flex;flex-direction:column;gap:18px}
.mapcard .hd{display:flex;justify-content:space-between;align-items:baseline}
.mapcard .hd b{font-size:20px;font-weight:700;color:var(--navy)}
.mapcard .hd span{font-family:var(--f-en);font-size:12px;color:var(--blue);letter-spacing:.04em}
.mapcard .disc{font-size:12px;color:var(--gray)}
.facts{display:flex;gap:24px;padding:12px 0 0}
.fact{flex:1;display:flex;flex-direction:column;gap:8px}
.fact .v{display:flex;align-items:baseline;gap:4px;color:var(--blue)}
.fact .v b{font-size:32px;font-weight:400}
.fact .v span{font-family:var(--f-en);font-size:18px}
.fact .cn{font-size:15px;color:var(--navy)}
.fact .en{font-family:var(--f-en);font-size:12px;color:var(--gray)}
.timeline{display:flex}
.mile{flex:1;display:flex;flex-direction:column;gap:18px}
.mile .yr{font-size:42px;color:var(--blue)}
.mile .line{height:20px;display:flex;align-items:center;position:relative}
.mile .line i{position:absolute;left:0;right:0;height:2px;background:#AEC7E7}
.mile .line b{position:relative;width:18px;height:18px;border-radius:50%;background:var(--soft);border:1px solid var(--blue)}
.mile.now .line b{background:var(--blue)}
.mile .ev{padding-top:28px;display:flex;flex-direction:column;gap:10px}
.mile .ev h4{font-size:23px;font-weight:700;color:var(--navy)}
.mile .ev span{font-family:var(--f-en);font-size:14px;line-height:1.5;color:var(--gray)}
.mile .ev p{font-size:14px;line-height:1.6;color:var(--gray)}
.cards4{display:flex;gap:24px}
.fcard{flex:1;background:#fff;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.fcard img{width:100%;height:262px;object-fit:cover}
.fcard .body{padding:26px;display:flex;flex-direction:column;gap:10px}
.fcard .cn{font-size:24px;font-weight:700;color:var(--navy)}
.fcard .en{font-family:var(--f-en);font-size:15px;font-weight:500;color:var(--blue)}
.fcard .cpt{font-size:14px;color:var(--gray)}
.principles{display:flex;gap:80px}
.principle{flex:1;display:flex;gap:24px}
.principle .badge-ico{width:60px;height:60px;background:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.principle .body{display:flex;flex-direction:column;gap:16px}
.principle .ttl{display:flex;align-items:center;gap:16px}
.principle .ttl b{font-size:25px;font-weight:700;color:var(--navy)}
.principle .ttl span{font-family:var(--f-en);font-size:16px;color:var(--blue)}
.principle .accent{width:32px;height:2px;background:var(--blue)}
.principle .cn{font-size:20px;line-height:1.65;color:var(--navy)}
.principle .en{font-family:var(--f-en);font-size:16px;line-height:1.65;color:var(--gray)}

/* ---------- products page ---------- */
.pgrid{display:flex;gap:24px;margin:0 -176px;padding:0 20px}
.pcol{flex:1;display:flex;flex-direction:column}
.pcard2{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;height:100%}
.pcard2 .shot{height:320px;overflow:hidden}
.pcard2 .shot img{width:100%;height:100%;object-fit:cover}
.pcard2 .body{padding:26px 28px 28px;display:flex;flex-direction:column;gap:14px;flex:1}
.pcard2 .cat{font-family:var(--f-en);font-size:12px;font-weight:600;color:var(--blue)}
.pcard2 .name{font-family:var(--f-en);font-size:22px;font-weight:600;color:var(--navy);line-height:1.25}
.pcard2 .txt{font-family:var(--f-en);font-size:14px;line-height:22px;color:var(--gray)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:6px 10px;background:var(--soft-2);border-radius:4px;font-family:var(--f-en);font-size:12px;font-weight:500;color:var(--navy)}
.pcard2 .btn{margin-top:auto;justify-content:center}
.pdetail{padding:88px 176px 96px;display:flex;gap:80px}
.pdetail.alt{background:var(--soft-2)}
.pdetail .media{width:720px;height:520px;flex:none;border-radius:6px;overflow:hidden}
.pdetail .media img{width:100%;height:100%;object-fit:cover}
.pdetail .info{flex:1;display:flex;flex-direction:column;gap:18px}
.pdetail .cat{font-family:var(--f-en);font-size:13px;font-weight:600;color:var(--blue)}
.pdetail h3{font-family:var(--f-en);font-size:40px;font-weight:600;color:var(--navy);line-height:1.15}
.pdetail h4{font-family:var(--f-cn);font-size:22px;font-weight:500;color:var(--navy)}
.pdetail .cn{font-size:16px;line-height:30px;color:var(--gray)}
.pdetail .en{font-family:var(--f-en);font-size:15px;line-height:26px;color:var(--gray)}
.pdetail .hr{height:1px;background:var(--line);width:100%}
.pdetail .spec{font-family:var(--f-en);font-size:13px;font-weight:600;color:var(--blue)}
.pdetail .sline{font-family:var(--f-en);font-size:15px;line-height:26px;color:var(--navy)}

/* ---------- news page ---------- */
.news-head{display:flex;justify-content:space-between;align-items:flex-start;gap:48px}
.news-head .cnt{font-family:var(--f-en);font-size:14px;font-weight:500;color:var(--gray)}
.nrow{display:flex;gap:40px}
.bigstory{width:900px;flex:none;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 10px 28px rgba(5,23,48,.08);display:flex;flex-direction:column}
.bigstory .shot{height:430px}
.bigstory .shot img{width:100%;height:100%;object-fit:cover}
.bigstory .body{padding:32px;display:flex;flex-direction:column;gap:16px}
.bigstory .meta{display:flex;align-items:center;gap:12px;font-family:var(--f-en);font-size:13px}
.bigstory .meta b{font-weight:600;color:var(--blue)}
.bigstory .meta i{width:1px;height:12px;background:var(--line);display:block}
.bigstory .meta span{font-weight:500;color:var(--gray)}
.bigstory h3{font-family:var(--f-en);font-size:30px;font-weight:600;line-height:44px;color:var(--navy)}
.bigstory .en{font-family:var(--f-en);font-size:17px;line-height:26px;color:var(--gray)}
.bigstory .exc{font-size:15px;line-height:26px;color:var(--gray)}
.more-link{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-en);font-size:15px;font-weight:600;color:var(--blue)}
.slist{flex:1;display:flex;flex-direction:column;gap:24px}
.scard{display:flex;gap:20px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 22px rgba(5,23,48,.07);transition:transform .2s,box-shadow .2s}
.scard:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(5,23,48,.12)}
.scard .thumb{width:200px;height:136px;flex:none;border-radius:4px;overflow:hidden}
.scard .thumb img{width:100%;height:100%;object-fit:cover}
.scard .txt{display:flex;flex-direction:column;gap:8px}
.scard .meta{font-family:var(--f-en);font-size:13px;font-weight:600;color:var(--blue)}
.scard h4{font-family:var(--f-en);font-size:18px;font-weight:600;line-height:26px;color:var(--navy)}
.scard p{font-size:13px;line-height:21px;color:var(--gray)}
.more-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.more-head .cnt{font-family:var(--f-en);font-size:13px;font-weight:500;color:var(--gray)}
.mgrid{display:flex;flex-wrap:wrap;gap:32px}
.mcard{width:501px;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 8px 22px rgba(5,23,48,.07);transition:transform .2s,box-shadow .2s}
.mcard:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(5,23,48,.12)}
.mcard .shot{height:250px}
.mcard .shot img{width:100%;height:100%;object-fit:cover}
.mcard .body{padding:24px;display:flex;flex-direction:column;gap:10px}
.mcard .meta{font-family:var(--f-en);font-size:13px;font-weight:600;color:var(--blue)}
.mcard h4{font-family:var(--f-en);font-size:18px;font-weight:600;line-height:26px;color:var(--navy)}
.mcard p{font-size:13px;line-height:21px;color:var(--gray)}
.pagination{display:flex;justify-content:center;padding-top:12px}
.pager-nums{display:flex;align-items:center;gap:8px}
.pnum{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--line);background:#fff;font-family:var(--f-en);font-size:15px;font-weight:500;color:var(--navy)}
.pnum.on{background:var(--blue-2);border-color:var(--blue-2);color:#fff;font-weight:600}
.pnum:hover{border-color:var(--blue);color:var(--blue)}
.pnum.on:hover{color:#fff}
.pnum.dots{width:24px;border:0;background:transparent;color:var(--gray)}

/* ---------- article ---------- */
.article{padding:40px 176px 88px;display:flex;flex-direction:column;gap:28px}
.crumb{font-family:var(--f-en);font-size:13px;font-weight:500;color:var(--gray);display:flex;gap:8px;align-items:center}
.crumb a:hover{color:var(--blue)}
.article h1{font-family:var(--f-en);font-size:42px;font-weight:600;line-height:58px;color:var(--navy)}
.article .en-title{font-family:var(--f-en);font-size:20px;line-height:30px;color:var(--gray)}
.article .hr{height:1px;background:var(--line)}
.article .body{width:1040px;display:flex;flex-direction:column;gap:24px}
.article .body p{font-size:16px;line-height:32px;color:var(--navy)}
.article .body p.en{font-family:var(--f-en);font-size:15px;line-height:28px;color:var(--gray)}
.article .body h3{font-family:var(--f-en);font-size:22px;font-weight:600;color:var(--blue)}
.article .body img{border-radius:6px;width:100%}
.article .pair{display:flex;gap:24px}
.article .pair > div{flex:1;height:320px;border-radius:6px;overflow:hidden}
.article .pair img{width:100%;height:100%;object-fit:cover}
.backlink{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-en);font-size:15px;font-weight:600;color:var(--blue)}

/* ---------- contact ---------- */
.ocards{display:flex;gap:24px;align-items:stretch}
.ocard{flex:1;padding:32px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 26px rgba(5,23,48,.08);display:flex;flex-direction:column;gap:14px}
.ocard .ib{width:48px;height:48px;border-radius:24px;background:var(--soft-3);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.ocard .en{font-family:var(--f-en);font-size:22px;font-weight:600;color:var(--navy)}
.ocard .cn{font-size:15px;font-weight:500;color:var(--gray)}
.ocard .hr{height:1px;background:var(--line);margin:4px 0}
.ocard .info{display:flex;flex-direction:column;gap:4px}
.ocard .info span{font-family:var(--f-en);font-size:11px;font-weight:600;color:var(--muted)}
.ocard .info p{font-family:var(--f-en);font-size:14px;line-height:22px;color:var(--navy)}
.ocard .info a{color:var(--blue)}
.ocard .info a:hover{text-decoration:underline}
.mapbox{position:relative;height:420px;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:#E8F0F7}
.mapbox svg{width:100%;height:100%}
.mappin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:28px;background:var(--blue);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(5,23,48,.28)}
.maplabel{position:absolute;left:calc(50% + 48px);top:calc(50% - 14px);padding:10px 16px;background:rgba(255,255,255,.96);border-radius:6px;font-family:var(--f-en);font-size:13px;font-weight:500;color:var(--navy);box-shadow:0 6px 16px rgba(5,23,48,.12);white-space:nowrap}
.icard{padding:48px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 28px rgba(5,23,48,.06);display:flex;gap:64px}
.icard .left{width:440px;flex:none;display:flex;flex-direction:column;gap:18px}
.icard .left h2{font-family:var(--f-en);font-size:30px;font-weight:600;line-height:42px;color:var(--navy)}
.icard .left .lead{font-family:var(--f-en);font-size:15px;line-height:26px;color:var(--gray)}
.icard .left .mail{font-family:var(--f-en);font-size:15px;font-weight:600;color:var(--blue)}
.icard .left .tel{font-family:var(--f-en);font-size:14px;line-height:24px;color:var(--gray)}
.icard .left .note{font-family:var(--f-en);font-size:13px;line-height:22px;color:var(--muted)}
.icard .form{gap:20px}
.icard .field{gap:10px}
.icard .field label{font-size:14px}
.icard .field input{height:54px;padding:0 16px;font-size:14px}
.icard .field textarea{height:126px;padding:16px;font-size:14px;line-height:24px}

/* ---------- modal ---------- */
.mask{position:fixed;top:0;left:0;width:100%;height:100%;min-height:100vh;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px}
.mask.open{display:flex}
.modal{width:1536px;height:760px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.3);display:flex;position:relative;transform-origin:center center}
.modal .media{width:768px;height:100%;flex:none;background:var(--soft)}
.modal .media img{width:100%;height:100%;object-fit:cover}
.modal .info{width:768px;padding:56px 56px 48px;display:flex;flex-direction:column;gap:20px}
.modal .cat{font-family:var(--f-en);font-size:13px;font-weight:600;color:var(--blue)}
.modal .info h3{font-family:var(--f-en);font-size:34px;font-weight:600;color:var(--navy);line-height:1.2}
.modal .info h4{font-family:var(--f-cn);font-size:19px;font-weight:500;color:var(--gray)}
.modal .desc{font-size:15px;line-height:26px;color:var(--gray)}
.modal .hr{height:1px;background:var(--line);width:100%}
.modal .spec-label{font-family:var(--f-en);font-size:13px;font-weight:600;color:var(--blue)}
.modal .spec-list{display:flex;flex-direction:column;gap:4px}
.modal .spec-row{display:flex;justify-content:space-between;padding:8px 0;font-family:var(--f-en);font-size:14px}
.modal .spec-row span{color:var(--gray)}
.modal .spec-row b{font-weight:600;color:var(--navy)}
.modal .spacer{flex:1}
.modal .actions{display:flex;align-items:center;gap:24px}
.modal .actions .btn{height:52px;padding:0 28px;gap:10px;font-family:var(--f-en);font-weight:600}
.modal .datasheet{font-family:var(--f-en);font-size:15px;font-weight:600;color:var(--blue)}
.close-btn{position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:20px;background:var(--soft-2);display:flex;align-items:center;justify-content:center;z-index:2}
.close-btn:hover{background:#e4eefb}
/* ================= 动态内容补充样式（CMS 渲染需要） ================= */

/* 单页文档模式：每个页面独立成文档，不再隐藏 */
.page{display:block!important;overflow:visible}
body{overflow-x:hidden}

/* 富文本正文 */
.rt{width:1040px;max-width:100%;display:flex;flex-direction:column;gap:24px}
.rt p{font-size:16px;line-height:32px;color:var(--navy)}
.rt p.en{font-family:var(--f-en);font-size:15px;line-height:28px;color:var(--gray)}
.rt h2,.rt h3{font-family:var(--f-cn);font-size:22px;font-weight:600;color:var(--blue);line-height:1.4;margin-top:12px}
.rt h2{font-size:26px}
.rt ul,.rt ol{padding-left:24px;display:flex;flex-direction:column;gap:8px}
.rt li{font-size:16px;line-height:32px;color:var(--navy)}
.rt img{border-radius:6px;width:100%;height:auto}
.rt blockquote{border-left:3px solid var(--blue);padding:4px 0 4px 20px;color:var(--gray);font-size:16px;line-height:30px}
.rt a{color:var(--blue);border-bottom:1px solid var(--blue)}
.rt table{width:100%;border-collapse:collapse;font-family:var(--f-en);font-size:15px}
.rt table th,.rt table td{border:1px solid var(--line);padding:12px 16px;text-align:left;line-height:24px;color:var(--navy)}
.rt table th{background:var(--soft);font-weight:600;color:var(--blue)}
.rt .pair{display:flex;gap:24px}
.rt .pair>div{flex:1;height:320px;border-radius:6px;overflow:hidden}
.rt .pair img{height:100%;object-fit:cover}

/* 空状态 */
.empty{padding:80px 0;text-align:center;font-family:var(--f-en);font-size:15px;color:var(--muted);display:flex;flex-direction:column;gap:10px;align-items:center;width:100%}
.empty b{font-family:var(--f-cn);font-size:20px;font-weight:500;color:var(--gray)}

/* 分类筛选条 */
.catebar{display:flex;flex-wrap:wrap;gap:12px}
.catebar a{padding:10px 20px;border:1px solid var(--line);border-radius:6px;font-size:14px;color:var(--navy);background:#fff;transition:all .15s}
.catebar a:hover{border-color:var(--blue);color:var(--blue)}
.catebar a.on{background:var(--blue);border-color:var(--blue);color:#fff}

/* 标签 */
.tag{display:inline-flex;align-items:center;height:26px;padding:0 10px;background:var(--soft-3);border-radius:4px;font-family:var(--f-en);font-size:12px;color:var(--blue)}

/* 面包屑回链 */
.crumb a{color:inherit}

/* 分页中禁用项 */
.pnum.disabled{opacity:.35;pointer-events:none}

/* 表单反馈 */
.form-msg{display:none;align-items:center;gap:10px;padding:14px 18px;border-radius:4px;font-family:var(--f-en);font-size:14px}
.form-msg.ok{display:flex;background:#E8F5EC;color:#1B6B3A}
.form-msg.err{display:flex;background:#FDECEC;color:#B3261E}
.field input.bad,.field textarea.bad{border-color:#B3261E}

/* 搜索框 */
.searchbar{display:flex;gap:12px;align-items:center}
.searchbar input{flex:1;height:56px;padding:0 18px;border:1px solid var(--line-2);border-radius:6px;font-family:var(--f-en);font-size:16px;color:var(--navy);outline:none;background:#fff}
.searchbar input:focus{border-color:var(--blue)}

/* 产品图片轮播缩略图 */
.thumbs{display:flex;gap:12px}
.thumbs button{width:96px;height:96px;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fff;padding:0}
.thumbs button.on{border-color:var(--blue)}
.thumbs img{width:100%;height:100%;object-fit:cover}

/* 详情页参数两列 */
.specgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;width:100%}
.specgrid .spec-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-family:var(--f-en);font-size:14px}
.specgrid .spec-row span{color:var(--gray)}
.specgrid .spec-row b{color:var(--navy);font-weight:600;text-align:right}

/* 相关推荐 */
.rel-grid{display:flex;gap:24px}
.rel-grid .pcard{flex:1}

/* ================= 移动端降级 ================= */
body.m .stage{width:auto!important;transform:none!important}
@media (max-width:1100px){
  .hdr{height:auto;padding:16px 20px;flex-wrap:wrap;gap:12px}
  .nav{gap:16px;height:auto;flex-wrap:wrap}
  .nav a{font-size:14px;gap:3px}
  .nav a.on::after{min-width:20px;height:2px}
  .logo .mark{width:44px;height:44px;font-size:18px}
  .logo .word b{font-size:18px}
  .util{gap:12px;font-size:13px}

  .hero{height:auto;padding:48px 20px 72px;display:flex;flex-direction:column;gap:28px}
  .hero .city{height:100%;object-fit:cover}
  .hero .platform{display:none}
  .hero-copy{position:static;width:auto;gap:14px}
  .hero-copy h1{font-size:44px}
  .hero-copy .sub-en{width:auto;font-size:17px}
  .hero-copy .sub-cn{font-size:14px}
  .showcase{position:static;width:auto;height:auto;flex-wrap:wrap;justify-content:center;gap:16px}
  .showcase img{height:150px!important;width:auto!important}
  .hero-foot{position:static;margin-top:8px;flex-wrap:wrap;gap:16px;justify-content:space-between}

  .banner{height:auto;padding:36px 20px}
  .banner h1{font-size:32px}
  .banner h2{font-size:19px}

  .sec,.sec.tight{padding:48px 20px;gap:28px}
  h2.title,h2.title.sm{font-size:30px}
  .desc{font-size:16px}
  .head-row{flex-direction:column;gap:16px}

  .grid4,.apps,.caps,.cards4,.principals,.ocards,.rel-grid{flex-direction:column;flex-wrap:wrap}
  .pcard,.app,.capcard,.fcard,.ocard,.rel-grid .pcard{width:100%;flex:none}
  .app{height:300px}
  .capcard img{height:200px}
  .pcard .shot{height:240px}

  .mfg{flex-direction:column;padding:48px 20px;gap:32px}
  .mfg .photo{width:100%;height:280px}
  .mfg h2{font-size:30px}
  .mfg .photo img{width:100%;height:100%}
  .stats .row{flex-direction:column;gap:16px}

  .news{flex-direction:column;gap:32px}
  .feature{width:100%}
  .feature .shot{height:220px}
  .nitem .hl h4{font-size:19px}

  .inquiry{flex-direction:column;padding:48px 20px;gap:36px}
  .inquiry .left{width:100%}
  .inquiry .left h2{font-size:30px}
  .frow{flex-direction:column;gap:20px}

  .about-row{flex-direction:column;gap:32px}
  .story{width:100%}
  .pgrid{flex-direction:column;margin:0;padding:0;gap:24px}
  .pdetail{flex-direction:column;padding:40px 20px;gap:28px}
  .pdetail .media{width:100%;height:280px}
  .pdetail h3{font-size:26px}
  .timeline{flex-direction:column;gap:24px}
  .principles{flex-direction:column;gap:32px}

  .nrow{flex-direction:column;gap:24px}
  .bigstory{width:100%}
  .bigstory .shot{height:220px}
  .bigstory h3{font-size:22px;line-height:32px}
  .mgrid{flex-direction:column}
  .mcard{width:100%}
  .scard{flex-direction:column}
  .scard .thumb{width:100%;height:180px}

  .article,.rt{padding:32px 20px;width:100%}
  .article{padding:32px 20px 56px}
  .article h1{font-size:24px;line-height:34px}
  .article .en-title{font-size:15px;line-height:24px}
  .article .body{width:100%}
  .rt{width:100%;padding:0}
  .rt .pair{flex-direction:column}
  .rt .pair>div{height:200px}
  .specgrid{grid-template-columns:1fr}

  .ft{padding:40px 20px 24px;gap:32px}
  .ft-top{flex-direction:column;gap:32px}
  .ft .col-contact,.ft .col-nav,.ft .col-prod,.ft .col-msg{width:100%}
  .ft .copy{flex-direction:column;gap:14px;align-items:flex-start}

  .mapbox{height:260px}
  .mapbox svg{height:260px}
  .img-placeholder{width:100%}
}

/* ---------- 产品列表网格（自适应列数，避免末行空洞） ---------- */
.pgrid.wrap{display:flex;flex-wrap:wrap;gap:24px;margin:0;padding:0}
.pgrid.wrap .pcell{width:calc((100% - 48px)/3);display:flex}
.pgrid.wrap .pcell .pcard2{width:100%;height:100%}
@media (max-width:1100px){.pgrid.wrap .pcell{width:100%}}

/* ---------- 移动端溢出修正 ---------- */
@media (max-width:1100px){
  /* 首屏图尺寸由 .hslide 内的规则接管（旧的全屏拉伸会压掉产品图版式） */
  .hero{position:relative}
  .hdr{width:100%}
  .nav{justify-content:flex-start}
  .util{flex:none}
  .hero-copy,.hero-copy .sub-en{max-width:100%}
  .showcase{max-width:100%;overflow:hidden}
  .pcard .body,.capcard .body,.scard .txt,.pcard2 .body{min-width:0}
  .pcard .txt,.capcard .txt,.pcard2 .txt,.desc{word-break:break-word}
  .ft{overflow:hidden}
}

/* ---------- 首屏横幅轮播 ---------- */
.hero-slides{position:absolute;left:0;top:0;width:100%;height:100%}
.hslide{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;visibility:hidden;
  transition:opacity .85s ease,visibility .85s ease;pointer-events:none}
.hslide.is-on{opacity:1;visibility:visible;pointer-events:auto}
.pager.hpg .hbars{display:flex;align-items:center;gap:9px}
.pager.hpg .hbars i{display:block;width:26px;height:2px;background:rgba(15,72,158,.26);
  cursor:pointer;transition:width .35s ease,background .35s ease}
.pager.hpg .hbars i:hover{background:rgba(15,72,158,.55)}
.pager.hpg .hbars i.on{width:46px;background:var(--blue)}
.pager.hpg .num b{font-weight:600}

@media (max-width:1100px){
  .hero-slides{position:static;width:auto;height:auto}
  .hslide{position:relative;display:none;width:auto;height:auto;opacity:1;visibility:visible}
  .hslide.is-on{display:flex;flex-direction:column;gap:20px}
  .hslide .city{position:absolute;left:0;top:0;width:100%;height:100%}
  .hslide .hero-copy,
  .hslide.is-product .hero-copy{position:relative;left:auto;top:auto;transform:none;
    z-index:2;max-width:100%;width:auto}
  .hero-slides + .platform{display:none}
  .pager.hpg .hbars i{width:20px}
  .pager.hpg .hbars i.on{width:34px}
}

/* ---------- 产品型横幅（渐变底 + 右侧产品图） ---------- */
.hslide.is-product::before{content:'';position:absolute;right:4%;top:6%;width:820px;height:820px;
  border-radius:50%;background:radial-gradient(circle,rgba(15,72,158,.10) 0%,rgba(15,72,158,0) 68%);
  pointer-events:none}
.hslide.is-product .hero-copy{max-width:880px;top:50%;transform:translateY(-50%)}
/* 产品型横幅不需要首屏那张“地面光晕” */
.hero[data-mode="product"] .platform{opacity:0;transition:opacity .5s ease}
.hslide.is-product .hero-copy h1{font-size:82px}
.hslide.is-product .hero-copy .sub-en{width:auto;max-width:860px}
.hslide.is-product .city{left:auto;right:88px;top:50%;transform:translateY(-50%);
  width:auto;height:650px;max-width:46%;object-fit:contain;object-position:right center;
}

@media (max-width:1100px){
  .hslide.is-product::before{display:none}
  .hslide.is-product .city{position:static!important;inset:auto!important;float:none!important;
    height:220px!important;width:100%!important;max-width:100%!important;
    object-fit:contain!important;object-position:center!important;
    transform:none!important;
    mix-blend-mode:normal!important;order:-1;margin:0!important;padding:0!important}
  .hslide.is-product .hero-copy{max-width:100%;top:auto;transform:none}
  .hslide.is-product .hero-copy h1{font-size:40px}
  .hslide.is-product .hero-copy .sub-en{max-width:100%}
}
