/* =========================================================
   宝锐生物主题 · 内页样式（关于宝锐等）
   只在用到内页区块的页面加载（block.json 的 style），在 main.css 之后生效也不依赖加载顺序：
   复用 main.css 的类名时都带上板块类名，提高优先级。
   尺寸规则同 main.css：calc(n * var(--r)) = 1920 设计稿上的 n×100px；900px 以下是手机布局，用 px。
   ========================================================= */

:root{--ps-h:max(52px,calc(.68 * var(--r)))}

/* ---------- 板块标题（复用首页新闻标题的样式） ---------- */
.ih .sec-en{margin-top:calc(.06 * var(--r));font-size:max(13px,calc(.2 * var(--r)))}
.ih .sec-bar{margin-top:calc(.2 * var(--r))}
.js .ih .sec-bar i{transform:scaleX(0);transition:transform 1s var(--ease) .4s}
.js .ih .sec-bar b{transform:scale(0);transition:transform .6s var(--ease-back) 1.1s}
.js .ih.is-in .sec-bar i,.js .ih.is-in .sec-bar b{transform:none}
.ih.is-dark .sec-title{color:#fff}
.ih.is-dark .sec-en{color:rgba(255,255,255,.62)}
.ih.is-dark .sec-bar i,.ih.is-dark .sec-bar b{background:#fff}

/* 锚点跳转时给固定页头和本页导航留位置 */
.ai,.tl,.pf,.hn,.cu{scroll-margin-top:var(--ps-h)}

/* =========================================================
   内页主视觉
   ========================================================= */
.pb{position:relative;height:calc(5.2 * var(--r));min-height:max(270px,calc(3.6 * var(--r)));overflow:hidden;background:#0a5ad6;color:#fff;isolation:isolate}
.pb-par{position:absolute;inset:0;will-change:transform}
.pb-bg{position:absolute;inset:-3%}
.pb-bg img{width:100%;height:100%;object-fit:cover;object-position:0 50%}
.pb-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pb-spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(calc(5 * var(--r)) circle at var(--sx,70%) var(--sy,40%),rgba(255,255,255,.22),transparent 70%);mix-blend-mode:soft-light;opacity:0;transition:opacity .6s}
.pb:hover .pb-spot{opacity:1}
.pb-in{height:100%}

/* 右侧：渐变大圆 + 透明背景图（默认总部大楼：地面部分裁进圆里，楼体伸出圆外） */
.pb-art-wrap{inset:auto calc(-.5 * var(--r)) 0 auto;width:calc(6.4 * var(--r))}
.pb-art{position:relative;width:100%;aspect-ratio:1640/1223}
.pb-circle{position:absolute;left:4%;top:30%;width:100%;aspect-ratio:1;border-radius:50%;background:linear-gradient(180deg,#034eeb 5%,#5d97f4 48%,#bcd7fd 88%)}
.pb-ripple{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.55);opacity:0;animation:ripple 5s var(--ease) infinite 2.4s}
.pb-ripple.r2{animation-delay:4.9s}
.pb-img{position:relative;width:100%;height:100%}
.pb.is-clip .pb-img{-webkit-mask:linear-gradient(#000 0 42%,transparent 42%),radial-gradient(48% 64.4% at 54% 97%,#000 99.4%,transparent 100%);mask:linear-gradient(#000 0 42%,transparent 42%),radial-gradient(48% 64.4% at 54% 97%,#000 99.4%,transparent 100%)}

/* 左侧文字 */
.pb-text{position:absolute;left:0;top:50%;transform:translateY(-50%);max-width:calc(7.2 * var(--r))}
.pb-en{font-family:var(--f-serif);font-weight:700;font-style:italic;font-size:calc(.84 * var(--r));line-height:1.05;letter-spacing:calc(.01 * var(--r));white-space:nowrap;transform:scaleX(.9);transform-origin:0 50%}
.pb-en .ch{-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;background-image:linear-gradient(100deg,#fff 0 44%,rgba(255,255,255,.5) 76%,rgba(255,255,255,.66))}
.pb-title{margin-top:calc(.16 * var(--r));font-size:calc(.5 * var(--r));line-height:1.15;font-weight:300;letter-spacing:calc(.14 * var(--r))}
.pb-sub{display:flex;align-items:center;gap:calc(.18 * var(--r));margin-top:calc(.3 * var(--r));font-size:max(14px,calc(.2 * var(--r)));color:rgba(255,255,255,.88);letter-spacing:calc(.02 * var(--r))}
.pb-tag{display:inline-flex;align-items:center;height:calc(.32 * var(--r));min-height:max(16px,calc(.22 * var(--r)));padding:0 calc(.16 * var(--r)) 0 calc(.24 * var(--r));font-family:var(--f-num);font-size:max(12px,calc(.15 * var(--r)));font-weight:700;letter-spacing:calc(.02 * var(--r));color:#18233d;background:linear-gradient(90deg,rgba(214,232,255,.3),rgba(232,242,255,.95) 30%,rgba(232,242,255,.9));clip-path:polygon(calc(.12 * var(--r)) 0,100% 0,100% 100%,0 100%)}
.pb-scroll{position:absolute;left:0;bottom:calc(.36 * var(--r));display:flex;align-items:center;gap:calc(.12 * var(--r));font-family:var(--f-num);font-size:max(11px,calc(.12 * var(--r)));letter-spacing:.24em;color:rgba(255,255,255,.72)}
.pb-scroll i{position:relative;width:calc(.22 * var(--r));height:calc(.34 * var(--r));min-width:calc(.18 * var(--r));min-height:max(21px,calc(.28 * var(--r)));border:1.5px solid rgba(255,255,255,.7);border-radius:99px}
.pb-scroll i::after{content:"";position:absolute;left:50%;top:22%;width:calc(.03 * var(--r));height:calc(.06 * var(--r));margin-left:-1.5px;border-radius:2px;background:#fff;animation:pbWheel 1.8s var(--ease) infinite}
@keyframes pbWheel{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(10px);opacity:0}}

/* 进场（main.js 在字体和首屏图片就绪后给 html 加 is-ready） */
.js .pb-bg{transform:scale(1.14);filter:blur(10px)}
.js .pb-circle{transform:scale(.35);opacity:0}
.js .pb-img{transform:translate3d(0,16%,0);opacity:0}
.js .pb-en .ch{transform:translate3d(0,60%,0) rotate(8deg);opacity:0;filter:blur(6px)}
.js .pb-title .ch{transform:translate3d(0,50%,0);opacity:0}
.js .pb-sub,.js .pb-scroll{opacity:0;transform:translate3d(0,14px,0)}
.is-ready .pb-bg{transform:none;filter:none;transition:transform 2.2s var(--ease),filter 1.4s var(--ease)}
.is-ready .pb-circle{transform:none;opacity:1;transition:transform 1.5s var(--ease-back) .25s,opacity .6s .25s}
.is-ready .pb-img{transform:none;opacity:1;transition:transform 1.6s var(--ease) .5s,opacity 1s .5s}
.is-ready .pb-en .ch{transform:none;opacity:1;filter:none;transition:transform 1s var(--ease) calc(.6s + var(--i) * 50ms),opacity .8s calc(.6s + var(--i) * 50ms),filter .8s calc(.6s + var(--i) * 50ms)}
.is-ready .pb-title .ch{transform:none;opacity:1;transition:transform .8s var(--ease) calc(1.05s + var(--i) * 80ms),opacity .6s calc(1.05s + var(--i) * 80ms)}
.is-ready .pb-sub{opacity:1;transform:none;transition:opacity .8s 1.45s,transform .9s var(--ease) 1.45s}
.is-ready .pb-scroll{opacity:1;transform:none;transition:opacity .8s 1.8s,transform .9s var(--ease) 1.8s}
/* 滚动离场：inner.js 写入 --sp（0→1） */
.pb-text{translate:0 calc(var(--sp,0) * -110px);opacity:calc(1 - var(--sp,0) * 1.3)}
.pb-art{translate:0 calc(var(--sp,0) * 50px)}

/* =========================================================
   本页导航（吸顶）
   ========================================================= */
.ps{position:sticky;top:var(--hd-h);z-index:60;height:var(--ps-h);background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid #e6eaf0;transition:box-shadow .4s}
.ps.is-stuck{box-shadow:0 8px 24px rgba(15,37,87,.07)}
body:has(.ps.is-stuck) .hd.is-scrolled{box-shadow:none}
.admin-bar .ps{top:calc(var(--hd-h) + 32px)}
@media (max-width:782px){.admin-bar .ps{top:calc(var(--hd-h) + 46px)}}
/* 编辑器里页头不固定，本页导航也不吸顶 */
.editor-styles-wrapper .ps{position:relative;top:auto}
.ps-in{display:flex;align-items:center;justify-content:space-between;height:100%}
.ps-links{position:relative;display:flex;height:100%}
.ps-links a{display:flex;align-items:center;height:100%;padding:0 calc(.26 * var(--r));font-size:max(14px,calc(.17 * var(--r)));color:#4a4f57;white-space:nowrap;transition:color .3s}
.ps-links a:first-child{padding-left:0}
.ps-links a:hover{color:var(--blue-2)}
.ps-links a.on{color:var(--blue-deep);font-weight:600}
.ps-ink{position:absolute;left:0;bottom:-1px;height:calc(.03 * var(--r));width:0;border-radius:2px;background:linear-gradient(90deg,var(--blue-2),var(--blue-deep));opacity:0;transition:transform .5s var(--ease),width .5s var(--ease),opacity .3s}
.ps-ink.ready{opacity:1}
.ps-crumb{display:flex;align-items:center;gap:calc(.1 * var(--r));font-size:max(12px,calc(.14 * var(--r)));color:#9aa1ab}
.ps-crumb a{display:inline-flex;align-items:center;gap:calc(.06 * var(--r));transition:color .3s}
.ps-crumb a:hover{color:var(--blue)}
.ps-crumb svg{width:max(13px,calc(.15 * var(--r)))}
.ps-crumb i{font-style:normal;color:#c5cad2}
.ps-crumb span{color:#4a4f57}

/* =========================================================
   企业简介
   ========================================================= */
.ai{position:relative;padding:calc(1.1 * var(--r)) 0 calc(1 * var(--r));overflow:hidden;background:#fff}
.ai-bg{position:absolute;inset:-8% 0;background:url(../img/about-bg.webp) right center/cover no-repeat}
.ai .wrap{z-index:1}
.ai-grid{display:grid;grid-template-columns:calc(5.3 * var(--r)) 1fr;column-gap:calc(.9 * var(--r))}
.ai-name{margin-top:calc(.56 * var(--r));font-size:calc(.3 * var(--r));line-height:1.3;font-weight:700;color:#1b1b1b}
.ai-lead{margin-top:calc(.2 * var(--r));font-size:calc(.26 * var(--r));line-height:calc(.46 * var(--r));font-weight:500;color:#2a2d33}
.ai-lead mark{color:var(--blue-deep);background:linear-gradient(transparent 62%,rgba(31,122,216,.16) 62%) 0 0/0 100% no-repeat;transition:background-size 1.2s var(--ease) .7s}
.ai-lead.is-in mark,html:not(.js) .ai-lead mark{background-size:100% 100%}
.ai-right{padding-top:calc(.1 * var(--r))}
.ai-body p{font-size:max(14px,calc(.18 * var(--r)));line-height:calc(.34 * var(--r));color:var(--body);text-align:justify}
.ai-body p+p{margin-top:calc(.16 * var(--r))}
.ai-segs{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.2 * var(--r));margin-top:calc(.44 * var(--r))}
.ai-seg{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:calc(.14 * var(--r));height:100%;padding:calc(.2 * var(--r)) calc(.2 * var(--r)) calc(.18 * var(--r));border:1px solid #e4eaf2;border-radius:calc(.1 * var(--r));background:rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(25,45,85,.04);transition:transform .5s var(--ease),box-shadow .5s,border-color .4s}
.ai-seg img{flex:none;width:calc(.5 * var(--r));height:calc(.5 * var(--r));min-width:max(27px,calc(.36 * var(--r)));min-height:max(27px,calc(.36 * var(--r)));border-radius:50%;transition:transform .7s var(--ease-back)}
.ai-seg b{display:block;font-size:max(14px,calc(.2 * var(--r)));color:#1b4a94;white-space:nowrap}
.ai-seg small{display:block;margin-top:calc(.04 * var(--r));font-size:max(10px,calc(.105 * var(--r)));line-height:1.35;letter-spacing:.02em;color:#8b95a5}
.ai-seg i{position:absolute;right:calc(.2 * var(--r));top:calc(.22 * var(--r));font-style:normal;color:var(--blue-2);opacity:0;transform:translateX(-6px);transition:opacity .4s,transform .5s var(--ease)}
.ai-seg:hover{transform:translateY(-4px);border-color:rgba(31,122,216,.35);box-shadow:0 14px 30px rgba(25,45,85,.1)}
.ai-seg:hover img{transform:rotate(360deg)}
.ai-seg:hover i{opacity:1;transform:none}

.ai-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:calc(.9 * var(--r));padding:calc(.42 * var(--r)) 0;border-radius:calc(.14 * var(--r));background:linear-gradient(135deg,#f2f7fd,#fff 62%);box-shadow:0 calc(.12 * var(--r)) calc(.4 * var(--r)) rgba(25,45,85,.08),inset 0 0 0 1px #e6edf6}
.ai-stat{position:relative;display:flex;flex-direction:column;align-items:center;padding:0 calc(.2 * var(--r));text-align:center}
.ai-stat+.ai-stat::before{content:"";position:absolute;left:0;top:8%;bottom:8%;width:1px;background:#dfe6f0;transform-origin:50% 0}
.js .ai-stats .ai-stat+.ai-stat::before{transform:scaleY(0);transition:transform 1s var(--ease) .5s}
.js .ai-stats.is-in .ai-stat+.ai-stat::before{transform:none}
.ai-stat .stat-ico{width:calc(.4 * var(--r));height:calc(.4 * var(--r));background:var(--blue-2)}
.ai-stat strong{display:flex;align-items:baseline;margin-top:calc(.16 * var(--r));font-family:var(--f-num);font-size:calc(.56 * var(--r));line-height:1;font-weight:700;color:#14336f;font-variant-numeric:tabular-nums}
.ai-stat strong em{margin-left:calc(.06 * var(--r));font-family:var(--f-cn);font-size:calc(.24 * var(--r));font-style:normal;font-weight:600;color:var(--blue-2)}
.ai-stat strong .sl{margin:0 calc(.1 * var(--r));font-size:calc(.46 * var(--r));font-weight:300;color:#9aa6b8}
.ai-stat small{margin-top:calc(.12 * var(--r));font-size:max(12px,calc(.15 * var(--r)));color:#7d8591}
.ai-stat:hover .stat-ico{transform:translateY(-4px) scale(1.12)}

/* =========================================================
   发展历程
   ========================================================= */
.tl{position:relative;padding:calc(1 * var(--r)) 0 calc(1.1 * var(--r));overflow:hidden;background:#0b55b8;color:#fff}
.tl-bg{position:absolute;inset:-10% 0;background:right center/cover no-repeat}
.tl::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(60% 90% at 0 0,rgba(4,38,115,.5),transparent 70%);pointer-events:none}
.tl .wrap{z-index:1}
.tl-head{display:flex;justify-content:space-between;align-items:flex-end}
.tl-view{position:relative;margin-top:calc(.66 * var(--r));overflow:hidden;touch-action:pan-y;cursor:grab}
.tl-view.dragging{cursor:grabbing}
.tl-rail{position:absolute;left:0;right:0;top:calc(.96 * var(--r) + 7px);height:1px;background:rgba(255,255,255,.28)}
.js .tl-rail{clip-path:inset(0 100% 0 0);transition:clip-path 1.6s var(--ease) .2s}
.js .tl-view.is-in .tl-rail{clip-path:inset(0)}
.tl-track{display:flex;list-style:none;will-change:transform}
html:not(.js) .tl-view{overflow-x:auto}
.tl-item{flex:0 0 25%;padding-right:calc(.4 * var(--r));user-select:none;-webkit-user-select:none}
.tl-year{display:flex;align-items:flex-start;gap:calc(.1 * var(--r));height:calc(.8 * var(--r));font-family:var(--f-num);font-size:calc(.64 * var(--r));line-height:1;font-weight:700;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55);transition:color .5s,-webkit-text-stroke-color .5s}
.tl-todo{margin-top:calc(.04 * var(--r));padding:1px calc(.08 * var(--r));border:1px dashed rgba(255,255,255,.5);border-radius:4px;font-family:var(--f-cn);font-size:max(11px,calc(.12 * var(--r)));font-style:normal;font-weight:400;line-height:1.5;letter-spacing:0;white-space:nowrap;color:rgba(255,255,255,.8);-webkit-text-stroke:0}
.tl-node{position:relative;display:block;width:calc(.14 * var(--r));height:calc(.14 * var(--r));margin-top:calc(.16 * var(--r));border-radius:50%;background:#0b55b8;border:2px solid rgba(255,255,255,.7);transition:background .4s,border-color .4s,transform .5s var(--ease-back)}
.tl-node::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(255,255,255,.7);opacity:0}
.tl-title{margin-top:calc(.34 * var(--r));font-size:max(16px,calc(.23 * var(--r)));line-height:1.35;font-weight:600}
.tl-desc{margin-top:calc(.12 * var(--r));font-size:max(13px,calc(.16 * var(--r)));line-height:calc(.28 * var(--r));color:rgba(255,255,255,.7);transition:color .4s}
.tl-item.is-on .tl-year{color:#fff;-webkit-text-stroke-color:#fff}
.tl-item.is-on .tl-node{background:#fff;border-color:#fff;transform:scale(1.15)}
.tl-item.is-on .tl-node::after{animation:tlPulse 2s var(--ease) infinite}
.tl-item.is-on .tl-desc{color:rgba(255,255,255,.92)}
@keyframes tlPulse{0%{opacity:.8;transform:scale(.5)}100%{opacity:0;transform:scale(1.5)}}

/* =========================================================
   技术平台（交互同首页应用方向卡片）
   ========================================================= */
.pf{position:relative;padding:calc(1.1 * var(--r)) 0 calc(1.2 * var(--r));overflow:hidden;background:radial-gradient(50% 60% at 0 100%,rgba(196,222,250,.4),transparent 70%),radial-gradient(40% 50% at 100% 0,rgba(214,232,252,.45),transparent 70%),#fff}
.pf-head{display:flex;justify-content:space-between;align-items:flex-end;gap:calc(.6 * var(--r))}
.pf-sub{max-width:calc(5.2 * var(--r));font-size:max(14px,calc(.18 * var(--r)));line-height:calc(.32 * var(--r));color:#7d838c;text-align:right}
.pf-map{max-width:calc(11.4 * var(--r));margin:calc(.5 * var(--r)) auto 0}
.pf-float{position:relative;animation:pfFloat 7s ease-in-out infinite}
.pf-float img{position:relative;display:block;width:100%;height:auto}
/* 中间「技术平台」大圆向外扩散的光圈：圆心在图片宽 50%、高 27%，直径约为图片宽的 20% */
.pf-pulse{position:absolute;left:50%;top:27%;width:20%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.pf-pulse i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(31,122,216,.4);opacity:0;animation:pfPulse 3.6s cubic-bezier(.2,.6,.3,1) infinite}
.pf-pulse i+i{animation-delay:1.8s}
@keyframes pfPulse{0%{opacity:.85;transform:scale(.95)}100%{opacity:0;transform:scale(2.1)}}
@keyframes pfFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,calc(-.08 * var(--r)),0)}}

/* =========================================================
   照片墙（研发与生产、工作环境；2026-11-02 品宣实拍）
   3 张 / 5 张：左边大图跨两行，右边小图；其他张数排成三列 4:3。
   进场：每张像幕布一样从下往上揭开（.pw-ph 的 clip-path），照片同时从放大回到原尺寸（img 的 scale），说明文字随后浮上来；
   悬停：照片慢慢放大（img 的 transform），说明前的短横条拉长。
   clip-path 不能放在 figure 上：Chrome 的 IntersectionObserver 会把目标自己的 clip-path 算进去，裁成 0 高就永远不触发进场。
   ========================================================= */
.pw{position:relative;padding:calc(1 * var(--r)) 0 calc(1.1 * var(--r));background:radial-gradient(45% 55% at 100% 0,rgba(214,232,252,.5),transparent 70%),linear-gradient(#f6f9fd,#fff 70%)}
.pw-head{display:flex;justify-content:space-between;align-items:flex-end;gap:calc(.6 * var(--r))}
.pw-sub{max-width:calc(5.2 * var(--r));font-size:max(14px,calc(.18 * var(--r)));line-height:calc(.32 * var(--r));color:#7d838c;text-align:right}
.pw-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(.2 * var(--r));margin-top:calc(.5 * var(--r))}
.pw-grid.is-5{grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));aspect-ratio:12/5}
.pw-grid.is-3{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));aspect-ratio:26/15}
/* 10 张（公司环境）：电脑上只占两行，每行 5 张，宽窄不一（24 栏，2026-11-06）。按顺序一一对应，手机上是两列 */
@media (min-width:900px){
  .pw-grid.is-10{grid-template-columns:repeat(24,minmax(0,1fr));grid-template-rows:repeat(2,calc(2.7 * var(--r)));gap:calc(.14 * var(--r))}
  .pw-grid.is-10 .pw-item{aspect-ratio:auto;grid-column:span var(--span,4)} /* 每格栏数、窄格子里主体的位置在 render.php（$spans10、$pos10） */
}
.pw-item{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:calc(.14 * var(--r));isolation:isolate}
.pw-grid.is-5 .pw-item,.pw-grid.is-3 .pw-item{aspect-ratio:auto}
.pw-grid.is-5 .pw-item:first-child,.pw-grid.is-3 .pw-item:first-child{grid-row:span 2}
.pw-ph{position:absolute;inset:0;overflow:hidden;background:#e6edf6}
.pw-ph img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),scale 1.7s var(--ease) var(--d)}
.pw-cap{position:absolute;left:calc(.16 * var(--r));bottom:calc(.12 * var(--r));z-index:1;font-size:max(12px,calc(.14 * var(--r)));font-weight:500;line-height:1.3;letter-spacing:.04em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 8px rgba(0,0,0,.6),0 0 20px rgba(0,0,0,.4)}
.pw-ph:hover img{transform:scale(1.06)}
/* 拼成一组（同一场景的几张，2026-11-09）：同一个圆角框里并排、中间细白缝，说明只在左下角写一次；每张按原来的栏数分宽度 */
.pw-item.is-set{display:flex;gap:3px;background:#fff}
.pw-item.is-set .pw-ph{position:relative;inset:auto;flex:var(--w,1) 1 0;min-width:0}
.js .pw-item.is-set[data-reveal="photo"] .pw-ph{transition-delay:calc(var(--d) + var(--k) * .12s)}
.js .pw-item[data-reveal="photo"] .pw-ph{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease) var(--d)}
.js .pw-item[data-reveal="photo"] .pw-ph img{scale:1.18}
.js .pw-item[data-reveal="photo"] .pw-cap{opacity:0;transform:translate3d(0,16px,0);transition:opacity .8s var(--ease) calc(var(--d) + .55s),transform .9s var(--ease) calc(var(--d) + .55s)}
.js .pw-item[data-reveal="photo"].is-in .pw-ph{clip-path:inset(0)}
.js .pw-item[data-reveal="photo"].is-in .pw-ph img{scale:1}
.js .pw-item[data-reveal="photo"].is-in .pw-cap{opacity:1;transform:none}

/* =========================================================
   资质荣誉
   ========================================================= */
.hn{position:relative;padding:calc(1.1 * var(--r)) 0 calc(1.2 * var(--r));overflow:hidden;background:#f6f7f9}
.hn-bg{position:absolute;inset:-12% 0;background:url(../img/news-bg.webp) center/cover no-repeat}
.hn .wrap{z-index:1}
.hn-wall{position:relative;max-width:calc(11.6 * var(--r));margin:calc(.56 * var(--r)) auto 0}
.hn-wall img{display:block;width:100%;height:auto}
/* 高光只落在奖牌上：用图片本身（透明底）做遮罩 */
.hn-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.7) 50%,transparent 58%) 120% 0/260% 100% no-repeat;-webkit-mask:var(--hn-mask) center/100% 100% no-repeat;mask:var(--hn-mask) center/100% 100% no-repeat}
.hn-wall.is-in .hn-shine,.hn-wall:not([data-reveal]) .hn-shine{animation:hnShine 6s ease-in-out 1.6s infinite}
@keyframes hnShine{0%{background-position:120% 0}40%,100%{background-position:-20% 0}}
.js .hn-wall img{clip-path:inset(100% 0 0 0)}
.js .hn-wall.is-in img{clip-path:inset(0);transition:clip-path 1.5s var(--ease) .15s}
.hn-names{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.1 * var(--r)) calc(.4 * var(--r));margin-top:calc(.5 * var(--r));padding-top:calc(.36 * var(--r));border-top:1px solid #e1e6ee}
.hn-names li{position:relative;padding-left:calc(.2 * var(--r));font-size:max(13px,calc(.16 * var(--r)));line-height:1.75;color:#6b717b}
.hn-names li::before{content:"";position:absolute;left:0;top:.78em;width:calc(.05 * var(--r));height:calc(.05 * var(--r));border-radius:50%;background:var(--blue-2);opacity:.55}

/* =========================================================
   企业文化
   ========================================================= */
.cu{position:relative;padding:calc(1.1 * var(--r)) 0 calc(.9 * var(--r));overflow:hidden;background:radial-gradient(45% 60% at 100% 10%,rgba(214,232,252,.45),transparent 70%),#fff}
.cu-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.36 * var(--r));margin-top:calc(.7 * var(--r))}
.cu-card{position:relative;padding:calc(.44 * var(--r)) calc(.44 * var(--r)) calc(.52 * var(--r));border-radius:calc(.16 * var(--r));background:linear-gradient(160deg,#f2f7fd,#fff 62%);box-shadow:inset 0 0 0 1px #e3eaf3;overflow:hidden;transition:box-shadow .5s,transform .6s var(--ease)}
.cu-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:calc(.03 * var(--r));background:linear-gradient(90deg,var(--blue-2),#59b0ff);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--ease)}
.cu-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(31,122,216,.25),0 calc(.18 * var(--r)) calc(.4 * var(--r)) rgba(25,45,85,.1)}
.cu-card:hover::before{transform:none}
.cu-en{font-family:var(--f-num);font-size:max(11px,calc(.13 * var(--r)));letter-spacing:.12em;color:#8b95a5}
.cu-card h3{margin-top:calc(.08 * var(--r));font-size:max(18px,calc(.24 * var(--r)));line-height:1.3;font-weight:500;color:#1b4a94}
.cu-text{margin-top:calc(.22 * var(--r));font-size:max(17px,calc(.24 * var(--r)));line-height:1.55;color:#22252b;letter-spacing:.02em;text-wrap:balance;word-break:keep-all}

/* 滚动标语 */
.cu-mq{margin-top:calc(.9 * var(--r));padding:calc(.24 * var(--r)) 0;border-top:1px solid #e6ebf2;border-bottom:1px solid #e6ebf2;overflow:hidden;white-space:nowrap}
.cu-mq-track{display:inline-flex;animation:cuMarquee 46s linear infinite}
.cu-mq:hover .cu-mq-track{animation-play-state:paused}
.cu-mq p{display:inline-flex;align-items:center;flex:none}
.cu-mq span{padding:0 calc(.34 * var(--r));font-size:calc(.56 * var(--r));line-height:1.25;font-weight:700}
.cu-mq span:nth-child(4n+1){color:transparent;-webkit-text-stroke:1px rgba(23,100,189,.42)}
.cu-mq span:nth-child(4n+3){color:var(--blue-deep)}
.cu-mq i{flex:none;width:calc(.12 * var(--r));height:calc(.12 * var(--r));border-radius:50%;background:var(--blue-2)}
@keyframes cuMarquee{to{transform:translateX(-50%)}}

/* =========================================================
   行动条
   ========================================================= */
.cta{position:relative;height:calc(1.9 * var(--r));color:#fff;overflow:hidden}
.cta-in{display:flex;align-items:center;justify-content:space-between;height:100%}
.cta-txt h2{font-size:calc(.34 * var(--r));line-height:1.3;font-weight:300;letter-spacing:calc(.02 * var(--r))}
.cta-txt p{margin-top:calc(.1 * var(--r));font-size:max(13px,calc(.17 * var(--r)));color:rgba(255,255,255,.75)}
.cta-btns{display:flex;gap:calc(.24 * var(--r))}
.cta-btn{position:relative;display:inline-flex;align-items:center;gap:calc(.1 * var(--r));height:calc(.56 * var(--r));min-height:max(32px,calc(.42 * var(--r)));padding:0 calc(.34 * var(--r));border-radius:99px;font-size:max(14px,calc(.17 * var(--r)));font-weight:600;color:var(--blue-deep);background:#fff;overflow:hidden;box-shadow:0 8px 22px rgba(5,40,110,.22);transition:box-shadow .4s,color .4s}
.cta-btn span,.cta-btn i{position:relative;z-index:1}
.cta-btn i{font-style:normal;transition:transform .5s var(--ease)}
.cta-btn::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1f7ad8,#154297);transform:translateX(-101%);transition:transform .55s var(--ease)}
.cta-btn:hover{color:#fff;box-shadow:0 12px 28px rgba(5,40,110,.35)}
.cta-btn:hover::before{transform:none}
.cta-btn:hover i{transform:translateX(5px)}
.cta-btn.is-ghost{color:#fff;background:transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.cta-btn.is-ghost::before{background:#fff}
.cta-btn.is-ghost:hover{color:var(--blue-deep)}

/* =========================================================
   中屏（900–1200）微调
   ========================================================= */
@media (max-width:1200px){
  .tl-item{flex-basis:33.3333%}
  .hn-names{grid-template-columns:repeat(2,1fr)}
}

/* =========================================================
   手机布局（<900）
   ========================================================= */
@media (max-width:899px){
  :root{--ps-h:48px}

  .ih .sec-en{margin-top:4px;font-size:13px}
  .ih .sec-bar{margin-top:12px}

  .pb{height:540px;min-height:0}
  .pb-art-wrap{right:-50px;width:360px}
  .pb-text{top:44px;transform:none;max-width:none}
  .pb-en{font-size:48px}
  .pb-title{margin-top:10px;font-size:30px;letter-spacing:8px}
  .pb-sub{flex-wrap:wrap;gap:8px 12px;margin-top:16px;font-size:14px}
  .pb-tag{height:24px;padding:0 10px 0 14px;font-size:12px;clip-path:polygon(8px 0,100% 0,100% 100%,0 100%)}
  .pb-scroll{display:none}

  .ps-crumb{display:none}
  .ps-in{margin:0;overflow-x:auto;scrollbar-width:none}
  .ps-in::-webkit-scrollbar{display:none}
  .ps-links{padding:0 8px}
  .ps-links a,.ps-links a:first-child{padding:0 12px;font-size:15px}

  .ai{padding:52px 0 56px}
  .ai-grid{grid-template-columns:1fr;row-gap:22px}
  .ai-name{margin-top:28px;font-size:20px}
  .ai-lead{margin-top:12px;font-size:17px;line-height:30px}
  .ai-body p{font-size:14px;line-height:25px}
  .ai-body p+p{margin-top:10px}
  .ai-segs{grid-template-columns:1fr;gap:10px;margin-top:22px}
  .ai-seg{flex-direction:row;align-items:center;padding:12px 14px;border-radius:10px;gap:12px}
  .ai-seg i{position:static;margin-left:auto}
  .ai-seg img{width:40px;height:40px}
  .ai-seg b{font-size:16px}
  .ai-seg small{font-size:11px}
  .ai-seg i{opacity:1;transform:none}
  .ai-stats{grid-template-columns:1fr 1fr;row-gap:26px;margin-top:36px;padding:26px 0;border-radius:12px}
  .ai-stat:nth-child(3)::before{display:none}
  .ai-stat .stat-ico{width:28px;height:28px}
  .ai-stat strong{margin-top:10px;font-size:30px}
  .ai-stat strong em{font-size:14px;margin-left:3px}
  .ai-stat strong .sl{margin:0 4px;font-size:24px}
  .ai-stat small{margin-top:8px;font-size:12px}

  .tl{padding:52px 0 56px}
  .tl-view{margin-top:30px}
  .tl-rail{top:55px}
  .tl-item{flex:0 0 min(72vw,300px);padding-right:22px}
  .tl-year{height:40px;align-items:center;gap:10px;font-size:32px}
  .tl-todo{margin-top:0;font-size:11px}
  .tl-node{width:14px;height:14px;margin-top:8px}
  .tl-title{margin-top:14px;font-size:17px}
  .tl-desc{margin-top:6px;font-size:14px;line-height:23px;color:rgba(255,255,255,.85)}

  .pf{padding:52px 0 56px}
  .pf-head{flex-direction:column;align-items:flex-start;gap:14px}
  .pf-sub{max-width:none;font-size:14px;line-height:24px;text-align:left}
  .pf-map{margin-top:26px}

  .pw{padding:52px 0 56px}
  .pw-head{flex-direction:column;align-items:flex-start;gap:14px}
  .pw-sub{max-width:none;font-size:14px;line-height:24px;text-align:left}
  .pw-grid,.pw-grid.is-5,.pw-grid.is-3,.pw-grid.is-10{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:10px;aspect-ratio:auto;margin-top:26px}
  .pw-item,.pw-grid.is-5 .pw-item,.pw-grid.is-3 .pw-item{aspect-ratio:4/3;border-radius:10px}
  .pw-grid.is-10 .pw-item:first-child{grid-column:auto;aspect-ratio:4/3}
  .pw-grid .pw-item:first-child,.pw-grid.is-5 .pw-item:first-child,.pw-grid.is-3 .pw-item:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}
  .pw-cap{left:10px;bottom:8px;font-size:12px}
  /* 拼成组的：每组占一整行，单张的也一样宽，排成一列 */
  .pw-grid.is-sets .pw-item,.pw-grid.is-sets .pw-item:first-child{grid-column:1 / -1;aspect-ratio:2/1}
  .pw-grid.is-sets .pw-item.is-set{gap:2px}

  .hn{padding:52px 0 56px}
  .hn-wall{margin-top:26px}
  .hn-names{grid-template-columns:1fr;gap:4px;margin-top:22px;padding-top:18px}
  .hn-names li{padding-left:14px;font-size:13px}

  .cu{padding:52px 0 40px}
  .cu-cards{grid-template-columns:1fr;gap:14px;margin-top:26px}
  .cu-card{padding:22px 22px 24px;border-radius:12px}
  .cu-card h3{font-size:18px}
  .cu-text{margin-top:12px;font-size:18px}
  .cu-mq{margin-top:40px;padding:14px 0}
  .cu-mq span{padding:0 16px;font-size:28px}
  .cu-mq i{width:8px;height:8px}

  .cta{height:auto;padding:36px 0}
  .cta-in{flex-direction:column;align-items:flex-start;gap:22px}
  .cta-txt h2{font-size:22px}
  .cta-txt p{margin-top:6px;font-size:13px}
  .cta-btns{flex-wrap:wrap;gap:12px}
  .cta-btn{height:44px;padding:0 20px;font-size:15px}
}

/* ---------- 减少动态 ---------- */
@media (prefers-reduced-motion:reduce){
  .pb-dust{display:none}
  .cu-mq-track{animation:none}
  .pf-float,.pf-pulse i,.hn-shine{animation:none!important}
  .js .pw-item[data-reveal="photo"] .pw-ph,.js .pw-item[data-reveal="photo"] .pw-cap{clip-path:none;opacity:1;transform:none;transition:none}
  .pw-ph img,.js .pw-item[data-reveal="photo"] .pw-ph img{scale:none;transition:none}
  .pw-ph:hover img{transform:none}
}
