
/* ============================================================
   瀚程包装 · 本地预览站样式表 · Apple 风格
   设计原则：单一强调色、无边框分隔、大留白、克制的圆角与阴影
   所有可调参数集中在 :root，换品牌色只需改 --accent 一处
   ============================================================ */
:root{
  --ink:#1d1d1f;--ink-2:#3a3a3c;--muted:#6e6e73;--faint:#6e6e73;
  --line:#d2d2d7;--line-soft:#e8e8ed;
  --surface:#f5f5f7;--surface-2:#fbfbfd;
  --accent:#0071e3;
  --accent-deep:#0050b3;--accent-hover:#0077ed;--accent-soft:rgba(0,113,227,.08);
  --warn:#b25000;
  --wrap:1120px;--wrap-narrow:720px;
  --r-s:12px;--r-m:18px;--r-l:28px;--pill:980px;
  --shadow-1:0 1px 2px rgba(0,0,0,.04);
  --shadow-2:0 2px 12px rgba(0,0,0,.06);
  --shadow-3:0 14px 40px rgba(0,0,0,.11);
  --ease:cubic-bezier(.28,.11,.32,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:#fff;color:var(--ink);overflow-x:hidden;
 font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
 font-size:17px;line-height:1.5;letter-spacing:-.01em;
 -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;display:block;border:0}
a{color:var(--accent-deep);text-decoration:none;transition:color .2s ease}
a:focus-visible,button:focus-visible{outline:3px solid rgba(0,113,227,.55);outline-offset:4px;border-radius:6px}
h1,h2,h3,h4,p,figure,ul,ol,blockquote{margin:0}
ul,ol{padding-left:22px}
.wrap{max-width:var(--wrap);width:calc(100% - 56px);margin:0 auto}
.muted{color:var(--muted)}
.mt{margin-top:20px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:200;background:#fff;color:var(--ink);padding:13px 22px;border-radius:var(--pill);box-shadow:var(--shadow-3)}

/* ---------- 顶部预览提示条 ---------- */
.review-bar{background:#1d1d1f;color:rgba(255,255,255,.66)}
.review-bar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:9px 0;font-size:12px;letter-spacing:-.01em}
.review-bar a{color:#fff}
.review-bar a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- 页头：吸顶 + 毛玻璃 ---------- */
.site-head{position:sticky;top:0;z-index:90;background:rgba(251,251,253,.72);
 -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
 border-bottom:1px solid transparent;transition:border-color .35s ease,background .35s ease}
.site-head.scrolled{border-bottom-color:var(--line-soft);background:rgba(251,251,253,.88)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:52px}
.logo{display:flex;align-items:center;gap:11px;flex:none;color:var(--ink);min-width:0}
/* 品牌区：标记 34px + 公司全称 18px。
   原来整条 4608×864 的横版 Logo 塞进页头，公司名实际只渲染到约 12px，等于看不见；
   把公司名从图里拿出来做成 HTML 文字之后，字号才真正可控 —— 这次再往上提一档。
   文字是矢量的，放大不会糊，也不受原图分辨率限制。 */
.logo-mark{display:block;height:34px;width:auto;flex:none}
.logo-name{font-size:18px;font-weight:600;letter-spacing:-.012em;white-space:nowrap;flex:0 1 auto;min-width:0}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:15px;letter-spacing:-.01em;color:rgba(29,29,31,.82);padding:6px 0}
.nav a:hover{color:#000}
.nav a.on{color:#000;font-weight:500}
.nav-toggle{display:none;width:40px;height:40px;margin-right:0;border:0;background:none;padding:0;
 cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;flex:none}
.nav-toggle span{display:block;width:17px;height:1.5px;background:var(--ink);transition:transform .35s var(--ease)}
body.nav-open .nav-toggle span:first-child{transform:translateY(3.75px) rotate(45deg)}
body.nav-open .nav-toggle span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
.nav-panel{display:none}
.site-head .nav-panel .wrap{display:flex;flex-direction:column;height:auto;
 justify-content:flex-start;align-items:stretch;gap:0;padding-bottom:14px}
body.nav-open .nav-panel{display:block;animation:navSheet .34s var(--ease) both}
@keyframes navSheet{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.nav-panel a{font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--ink);padding:16px 2px;border-bottom:1px solid var(--line-soft)}
.nav-panel a.on{color:var(--accent)}

/* ---------- 首页顶部：页头与黑色首屏连成一片 ---------- */
/* 参考页的导航是深色、和黑色 hero 融成一块，中间没有白条缝。
   这里只对首页这么做（body.hero-dark 由首页模板加），而且一旦滚离首屏
   （JS 挂上 .scrolled）就立刻换回浅色毛玻璃 —— 免得深色页头压在白色正文上。 */
body.hero-dark .site-head:not(.scrolled){background:#000;border-bottom-color:transparent}
body.hero-dark .site-head:not(.scrolled) .logo,
body.hero-dark .site-head:not(.scrolled) .nav a,
body.hero-dark .site-head:not(.scrolled) .nav a.on{color:#f5f5f7}
body.hero-dark .site-head:not(.scrolled) .nav a:hover,
body.hero-dark .site-head:not(.scrolled) .nav a.on{color:#fff}
body.hero-dark .site-head:not(.scrolled) .nav-toggle span{background:#f5f5f7}
body.hero-dark .site-head:not(.scrolled) .logo-mark{filter:brightness(1.12)}

/* ---------- 面包屑 ---------- */
.crumb{border-bottom:1px solid var(--line-soft)}
.crumb .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 0;font-size:15px;color:var(--muted)}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--ink)}
.crumb i{font-style:normal;color:var(--faint)}
.crumb span{color:var(--ink)}

/* ---------- 排版 ---------- */
.eyebrow{font-size:15px;font-weight:500;color:var(--muted);margin-bottom:14px}
h1{font-size:clamp(34px,5.2vw,60px);font-weight:600;line-height:1.07;letter-spacing:-.02em}
h2{font-size:clamp(28px,3.8vw,48px);font-weight:600;line-height:1.09;letter-spacing:-.02em}
h3{font-size:21px;font-weight:600;line-height:1.22;letter-spacing:-.01em}
.h2-sm{font-size:clamp(21px,2.2vw,28px);margin-bottom:24px}
.lead{font-size:clamp(17px,1.6vw,21px);line-height:1.5;color:var(--muted);letter-spacing:-.02em}
.chev{display:inline-block;transition:transform .3s var(--ease)}
a:hover>.chev,.btn:hover .chev,.more:hover .chev{transform:translateX(4px)}

/* ---------- 区块节奏 ---------- */
.section{padding:80px 0}
.section.alt{background:var(--surface)}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:52px}
.section-head p{color:var(--muted);font-size:19px;letter-spacing:-.02em;max-width:520px}

/* ---------- 首屏：黑底满幅 + 产品主视觉（对齐 apple.com.cn 首屏的做法） ---------- */
/* 为什么整块改黑：现有产品图是黑底聚光的棚拍，把页面底色也定成同一个黑之后，
   图的暗角与页面天然相接，产品不用抠图、也不会再"像贴上去的一张白纸"。
   排布照苹果首屏的顺序来：文案在上，主视觉吃掉剩余高度，状态徽章压在最底。
   整块按"一屏高"排，矮窗口下产品跟着缩，但始终完整落在折线以内。
   影片层默认停在起始帧（略远），由脚本推镜到终帧后冻结；静态层是无脚本/归约动效时的终帧。 */
.hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
 overflow:hidden;padding:52px 0 26px;background:#000;color:#f5f5f7;
 min-height:calc(100vh - 89px);min-height:calc(100svh - 89px)}
.hero-copy{position:relative;z-index:3;flex:none}
.hero .eyebrow{color:#86868b}
.hero h1{font-size:clamp(30px,4.6vw,56px);line-height:1.06;letter-spacing:-.025em;color:#f5f5f7}
.hero .lead{margin:14px auto 0;max-width:600px;font-size:17px;line-height:1.5;color:#a1a1a6}
.hero .actions{justify-content:center;margin-top:22px}
.hero-note{font-size:15px;color:#a1a1a6;margin-top:10px}
/* 深色底上的次级按钮用"白色幽灵按钮"，蓝描边在纯黑上会发闷（苹果黑底页也是这么做的） */
.hero .btn.outline{color:#f5f5f7;border-color:rgba(255,255,255,.42)}
.hero .btn.outline:hover{background:rgba(255,255,255,.12);color:#fff}

.hero-figure{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;
 width:100%;margin:0}
.hero-stage{position:relative;z-index:1;flex:1 1 auto;min-height:220px;width:100%;margin-top:18px;
 display:flex;align-items:center;justify-content:center}
.hero-stage>.inline-media-wrapper{position:relative;display:flex;align-items:center;justify-content:center}
/* 静态终帧默认隐藏，只在降级时露出；这条必须自带 display:none，
   否则会被上面那条组合选择器（同特异性）盖掉，导致两张图叠在一起。 */
.hero-stage>.hero-static{position:relative;display:none;align-items:center;justify-content:center}
/* 主视觉用 max 双约束等比放大：桌面由高度驱动（占满下方空间），
   手机由宽度驱动（满幅），两端都不再被 flex 剩余高度饿死 */
.hero-stage img{display:block;width:auto;height:auto;
 max-width:min(94vw,1180px);max-height:min(50vh,600px);object-fit:contain;transform-origin:50% 55%}
html.js .hero-frame{transform:scale(.94)}   /* 影片起始帧（推镜起点），脚本接手后覆盖它 */

/* 状态徽章：对应苹果首屏底部那枚青色高亮标签，色值是从官网页面上实测取的 #01ddff */
.hero-badge{position:relative;z-index:3;flex:none;display:inline-flex;align-items:center;gap:8px;
 margin:18px 0 0;background:#01ddff;color:#00323c;white-space:nowrap;
 font-size:clamp(15px,1.12vw,17px);font-weight:600;
 letter-spacing:-.012em;padding:7px 16px;border-radius:4px}
.hero-badge .pulse{width:7px;height:7px;border-radius:50%;background:#00323c;flex:none;
 animation:heroPulse 2.4s var(--ease) infinite}
@keyframes heroPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.32;transform:scale(.8)}}

/* 控制按钮：与苹果一致，右上角 36px 圆形，仅在 loaded 之后出现 */
.inline-media-ui{position:absolute;top:16px;right:16px;z-index:4;pointer-events:none}
.play-pause-button{position:relative;width:36px;height:36px;padding:0;border:0;border-radius:50%;
 background:#d2d2d7a3;cursor:pointer;opacity:0;pointer-events:none;color:#0000008f;
 transition:opacity .18s linear,background .2s ease,transform .2s var(--ease)}
.play-pause-button:hover{background:#dfdfe3b2;color:#000000a3}
.play-pause-button:active{transform:scale(.95)}
.play-pause-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.play-pause-button .ic{position:absolute;left:0;top:0;width:36px;height:36px;fill:currentColor;display:none}
/* 按钮在 .inline-media-wrapper 的兄弟节点里，状态选择器必须用兄弟组合子（~） */
.inline-media-wrapper.loaded~.inline-media-ui .play-pause-button{opacity:1;pointer-events:all}
.inline-media-wrapper.loaded~.inline-media-ui .ic-play{display:block}
.inline-media-wrapper.loaded.playing~.inline-media-ui .ic-play{display:none}
.inline-media-wrapper.loaded.playing~.inline-media-ui .ic-pause{display:block}
.inline-media-wrapper.loaded.ended~.inline-media-ui .ic-play{display:none}
.inline-media-wrapper.loaded.ended~.inline-media-ui .ic-replay{display:block}
/* 素材未就绪：按钮位置放苹果那枚八格步进转盘 */
.inline-media-wrapper.loading~.inline-media-ui .play-pause-button{
 opacity:1;background:transparent;pointer-events:none}
.inline-media-wrapper.loading~.inline-media-ui .ic-spin{
 display:block;animation:heroSpin .85s steps(8,end) infinite}
@keyframes heroSpin{to{transform:rotate(360deg)}}

/* 降级：无脚本、素材出错、或用户要求减少动态效果 → 直接给静态终帧，不出现任何控制 */
html:not(.js) .inline-media-wrapper,html.no-media .inline-media-wrapper,
html:not(.js) .inline-media-ui,html.no-media .inline-media-ui{display:none}
html:not(.js) .hero-static,html.no-media .hero-static{display:flex}

.hero-caption{font-size:15px;color:#86868b;margin:14px 0 0;letter-spacing:-.01em}

/* 文案入场：分层上移，与影片同一节奏（加载即播，不依赖交互） */
html.js .hero-copy>*{animation:heroRise 1s var(--ease) both}
html.js .hero-copy>*:nth-child(1){animation-delay:.04s}
html.js .hero-copy>*:nth-child(2){animation-delay:.12s}
html.js .hero-copy>*:nth-child(3){animation-delay:.22s}
html.js .hero-copy>*:nth-child(4){animation-delay:.32s}
html.js .hero-copy>*:nth-child(5){animation-delay:.42s}
html.js .hero-badge{animation:heroRise .8s var(--ease) both;animation-delay:.62s}
@keyframes heroRise{
 from{opacity:0;transform:translateY(22px)}
 to{opacity:1;transform:none}
}

/* ---------- 按钮与文字链接 ---------- */
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:6px;padding:13px 26px;border-radius:var(--pill);
 background:var(--accent);color:#fff;font-size:17px;letter-spacing:-.022em;border:1px solid transparent;
 transition:background .25s ease,transform .2s ease}
.btn:hover{background:var(--accent-hover);color:#fff}
.btn:active{transform:scale(.975)}
.btn.outline{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn.outline:hover{background:var(--accent-soft)}
.more{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--accent-deep);padding:12px 8px;min-height:48px;box-sizing:border-box}
.more:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- 产品瓦片（对齐 apple.com.cn 首页产品格） ----------
   实测 apple.com.cn 首页：容器宽 W，缝隙约 W/200，全宽瓦片高约 0.38W、
   半瓦片高约 0.46×半宽；底色只两种（#f5f5f7 / #000），文案居中压上部、配图落下部。
   2026-09-23 改版：弃用固定 aspect-ratio + 绝对定位配图（实测所有视口按钮都会
   压到配图上沿、文案多的机型被裁切）。改为 apple.com 同款文档流布局：
   文案区在上、配图区在下（flex 底对齐），瓦片高度由内容决定，永不互相压盖。 */
.tiles{padding:26px 0 0}
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:var(--surface);
 color:var(--ink);isolation:isolate;transition:box-shadow .5s var(--ease)}
.tile.dark{background:#000;color:#f5f5f7}
.tile-wide{grid-column:1/-1}
.tile-half{min-height:300px}
.tile:hover{box-shadow:var(--shadow-2)}
/* 整块可点：命中层铺满瓦片，文案层 pointer-events:none 让点击穿透到它，按钮再单独抬起 */
.tile-hit{position:absolute;inset:0;z-index:2}
.tile-hit:focus-visible{outline:3px solid rgba(0,113,227,.55);outline-offset:-7px;border-radius:20px}
.tile-copy{position:relative;z-index:3;padding:30px 30px 0;display:flex;flex-direction:column;
 align-items:center;text-align:center;pointer-events:none}
.tile-wide .tile-copy{padding:34px 40px 0}
.tile-kind{font-size:15px;font-weight:600;color:var(--muted)}
.tile.dark .tile-kind{color:#86868b}
.tile-title{margin-top:8px;font-size:clamp(20px,2vw,26px);font-weight:600;line-height:1.16;
 letter-spacing:-.022em}
.tile-wide .tile-title{font-size:clamp(23px,2.5vw,32px)}
.tile-lead{margin-top:10px;font-size:16px;line-height:1.5;color:var(--muted);max-width:36ch}
.tile.dark .tile-lead{color:#a1a1a6}
.tile-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px;
 position:relative;z-index:4;pointer-events:auto}
.tile-btn{display:inline-flex;align-items:center;gap:5px;padding:9px 18px;border-radius:var(--pill);
 background:var(--accent);color:#fff;font-size:15px;letter-spacing:-.01em;border:1px solid transparent;
 transition:background .25s ease,transform .2s ease}
.tile-btn:hover{background:var(--accent-hover);color:#fff}
.tile-btn:active{transform:scale(.97)}
.tile-btn.ghost{background:transparent;color:#0066cc;border-color:transparent}
.tile-btn.ghost::after{content:'›';font-weight:600;margin-left:3px;transition:transform .3s var(--ease)}
.tile-btn.ghost:hover::after{transform:translateX(3px)}
.tile-btn.ghost:hover{background:var(--accent-soft)}
.tile.dark .tile-btn.ghost{color:#2997ff;border-color:transparent}
.tile.dark .tile-btn.ghost:hover{background:rgba(41,151,255,.14)}
/* 配图只落在瓦片下部，且底对齐——产品永远压不到文案 */
.tile-figure{position:static;flex:1;margin-top:22px;z-index:1;
 display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.tile-wide .tile-figure{margin-top:26px}
.tile-figure img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;
 object-fit:contain;transition:transform .6s var(--ease)}
/* 宽瓦片那张是横幅实拍，等比装进去会只剩中间一小条 —— 改用裁切铺满，取产品所在的那一段 */
.tile-figure.cover img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.tile:hover .tile-figure img{transform:scale(1.02)}
.tile-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px 20px;
 margin-top:26px}
.tile-foot strong{font-size:15px;font-weight:600}
.tile-foot a{font-size:15px}

/* ---------- 产品磁贴 ---------- */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.product{background:#fff;border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;
 text-align:center;box-shadow:var(--shadow-1);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.product:hover{transform:translateY(-5px);box-shadow:var(--shadow-3)}
.product-image{display:block;overflow:hidden;aspect-ratio:1/1;background:var(--surface)}
.product-image img{width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease)}
.product:hover .product-image img{transform:scale(1.035)}
.product-body{padding:20px 26px 30px;display:flex;flex-direction:column;flex:1}
.product-kind{font-size:15px;color:var(--muted)}
.product-title{font-size:20px;font-weight:600;line-height:1.3;letter-spacing:-.01em;margin:6px 0 10px}
.product-title a{color:var(--ink)}
.product-title a:hover{color:var(--accent)}
.product-body h3{margin:6px 0 10px}
.product-body h3 a{color:var(--ink)}
.product-body h3 a:hover{color:var(--accent)}
.product-desc{font-size:16px;line-height:1.6;color:var(--muted);flex:1;margin-bottom:20px;
 display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-body .more{align-self:center;font-size:16px}
.catalog-note{font-size:15px;color:var(--muted);margin-top:32px;text-align:center}

/* ---------- 内页大标题 ---------- */
.page-head{padding:80px 0 0;text-align:center}
.page-head .wrap{max-width:var(--wrap-narrow)}
.page-head.wide .wrap{max-width:920px}
.page-head .lead{margin-top:20px}

/* ---------- 产品详情 ---------- */
.detail-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
.detail-figure{background:#fff;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow-2)}
.detail-figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.detail-figure figcaption{font-size:15px;color:var(--muted);padding:14px 22px;background:var(--surface-2);border-top:1px solid var(--line-soft)}
.tagpill{display:inline-block;background:var(--surface);border-radius:var(--pill);padding:6px 14px;font-size:14px;color:var(--muted);margin-bottom:18px}
.detail-body>p{font-size:17px;color:var(--muted);line-height:1.55}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:32px}
.facts>div{background:var(--surface);border-radius:var(--r-m);padding:20px 22px}
.facts small{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px}
.facts p{font-size:15px;line-height:1.55;color:var(--ink-2)}

/* ---------- 正文 ---------- */
.article-wrap{max-width:var(--wrap-narrow);margin:0 auto}
.prose{font-size:19px;line-height:1.63;letter-spacing:-.012em;color:var(--ink-2)}
.prose p{margin:24px 0}
.prose h2{font-size:28px;margin:52px 0 16px;color:var(--ink)}
.prose h3{font-size:22px;margin:40px 0 12px;color:var(--ink)}
.prose ul,.prose ol{margin:20px 0;padding-left:24px}
.prose li{margin:10px 0}
.prose img{border-radius:var(--r-m);margin:32px 0}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose table{border-collapse:collapse;width:100%;font-size:15px;margin:32px 0;display:block;overflow-x:auto}
.prose td,.prose th{border-bottom:1px solid var(--line-soft);padding:12px 14px;text-align:left}
.prose th{font-weight:600;border-bottom-color:var(--line)}
.prose blockquote{border-left:2px solid var(--line);padding-left:20px;color:var(--muted);margin:28px 0}
.prose hr{border:0;border-top:1px solid var(--line-soft);margin:40px 0}

/* ---------- 说明块 ---------- */
.notice{background:var(--surface);border-radius:var(--r-m);padding:22px 26px;font-size:15px;line-height:1.6;color:var(--muted);margin:32px 0}
.notice b{display:block;font-size:14px;font-weight:600;color:var(--warn);margin-bottom:6px}

/* ---------- 分类入口卡 ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cat-card{background:#fff;border-radius:var(--r-l);padding:34px 30px;display:flex;flex-direction:column;
 box-shadow:var(--shadow-1);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.cat-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-3)}
.cat-card h3{margin-bottom:12px}
.cat-card h3 a{color:var(--ink)}
.cat-card h3 a:hover{color:var(--accent)}
.cat-card p{font-size:15px;line-height:1.55;color:var(--muted);flex:1}
.cat-meta{font-size:15px;color:var(--muted);margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft)}
.cat-meta a{font-size:15px}

/* ---------- 内容列表 ---------- */
.li-list{display:flex;flex-direction:column}
.li{display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line-soft)}
.li:first-child{border-top:1px solid var(--line-soft)}
.li.no-img{grid-template-columns:1fr}
.li-figure{border-radius:var(--r-m);overflow:hidden;background:var(--surface)}
.li-figure img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s var(--ease)}
.li:hover .li-figure img{transform:scale(1.04)}
.li-body h3{margin-bottom:10px}
.li-body h3 a{color:var(--ink)}
.li-body h3 a:hover{color:var(--accent)}
.li-body p{font-size:16px;line-height:1.55;color:var(--muted);max-width:640px}
.li-body .more{margin-top:14px}

/* ---------- 标签列表 ---------- */
.pill-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}
.pill-list a{display:block;padding:10px 20px;background:var(--surface);border-radius:var(--pill);font-size:16px;color:var(--ink-2)}
.pill-list a:hover{background:var(--accent);color:#fff}

/* ---------- 关于 / 联系 ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.about-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:34px}
.about-links a{font-size:17px}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
.contact-check{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.contact-check span{background:var(--surface);border-radius:var(--pill);padding:9px 18px;font-size:15px;color:var(--muted)}
.contact-card{background:var(--surface);border-radius:var(--r-l);padding:38px;position:sticky;top:88px}
.contact-card small{display:block;font-size:15px;color:var(--muted)}
.contact-card .phone{display:block;font-size:clamp(22px,2.4vw,28px);font-weight:600;letter-spacing:-.02em;color:var(--ink);margin:8px 0 26px}
.contact-card .email{display:block;font-size:17px;color:var(--ink);margin:8px 0 30px;overflow-wrap:anywhere}
.contact-card .btn{width:100%;justify-content:center}
.contact-card p{font-size:15px;line-height:1.55;color:var(--muted);margin-top:22px}

/* ---------- 页脚 ---------- */
.footer{background:var(--surface);font-size:13px;color:var(--muted);letter-spacing:-.01em}
.foot-cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px;padding:56px 0 36px}
.foot-cols strong{display:block;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:10px}
.foot-cols p{line-height:1.9}
.foot-cols h3{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:12px}
.foot-cols ul{list-style:none;padding:0}
.foot-cols li{line-height:2}
.foot-cols a{color:var(--muted)}
.foot-cols a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.foot-bar{border-top:1px solid var(--line);padding:18px 0 28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--faint)}

/* ---------- 滚动进场（内容居中渐显） ---------- */
html.js .reveal{opacity:0;transform:translateY(28px)}
html.js .reveal.in{opacity:1;transform:none;
 transition:opacity .4s var(--ease),transform .4s var(--ease);
 transition-delay:calc(var(--i,0) * 65ms)}

/* ---------- 响应式：平板 ---------- */
@media(max-width:1068px){
 .wrap{width:calc(100% - 44px)}
 .product-grid,.cat-grid{grid-template-columns:1fr 1fr}
 .section{padding:68px 0}
 .section-head{grid-template-columns:1fr;gap:20px;align-items:start;margin-bottom:40px}
 .about-grid,.contact-grid,.detail-grid{grid-template-columns:1fr;gap:38px}
 .contact-card{position:static;padding:32px}
 .foot-cols{grid-template-columns:1fr 1fr;gap:28px;padding:44px 0 28px}
 .li{grid-template-columns:200px 1fr;gap:24px}
 .hero{padding:44px 0 22px}
 .hero-stage{min-height:210px}
 .page-head{padding:60px 0 0}
}

/* ---------- 响应式：手机 ---------- */
@media(max-width:834px){
 .nav{display:none}
 .nav-toggle{display:flex}
 .review-bar .wrap{font-size:11px}
 .logo{gap:8px;flex:0 1 auto;min-width:0}
 .logo-mark{height:30px}
 .logo-name{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;min-width:0}
 .site-head .wrap{gap:12px}
}
@media(min-width:835px){
 .nav-panel{display:none!important}
}
@media(max-width:734px){
 .footer{font-size:14px}
 .wrap{width:calc(100% - 32px)}
 .product-grid,.cat-grid,.foot-cols,.facts{grid-template-columns:1fr}
 .product{max-width:440px;margin:0 auto}
 .li{grid-template-columns:1fr;gap:18px}
 .li-figure img{aspect-ratio:16/9}
 .section{padding:56px 0}
 .hero{padding:34px 0 18px}
 .page-head{padding:48px 0 0}
 .hero-stage{margin-top:14px;min-height:200px}
 .hero-badge{margin-top:14px;padding:6px 13px}
 /* 瓦片转单列：布局已是文档流（文案上/配图下），高度随内容，无叠压风险 */
 .tiles{padding:18px 0 0}
 .tile-grid{grid-template-columns:1fr;gap:12px}
 .tile,.tile-hit:focus-visible{border-radius:var(--r-m)}
 .tile-copy,.tile-wide .tile-copy{padding:26px 24px 0}
 .tile-wide .tile-title,.tile-title{font-size:clamp(21px,5.4vw,25px)}
 .tile-figure{margin-top:18px}
 /* 宽瓦片首图放大：容器 2:1 -> 8:5（配图已按 8:5 重构图，主体更大且不裁切） */
 .tile-wide .tile-figure{aspect-ratio:8/5;margin-top:20px}
 /* 文案与更大的图协调：标题略放大增强层次，正文略收字号保持主次 */
 .tile-wide .tile-title{font-size:clamp(22px,5.9vw,26px)}
 .tile-wide .tile-lead{font-size:clamp(14px,3.95vw,15.4px)}
 .tile-lead{max-width:30ch}
 .tile-foot{gap:8px 16px;margin-top:22px}
 .tile-btn{min-height:44px;padding:11px 20px}
 .tile-foot a{padding:8px 12px;border-radius:var(--pill)}
 .pill-list a{min-height:44px;display:flex;align-items:center}
 .inline-media-ui{top:6px;right:6px}
 .detail-figure img{aspect-ratio:1/1}
 .detail-figure,.product,.cat-card{border-radius:var(--r-m)}
 .product-body{padding:18px 22px 26px}
 .prose{font-size:17px;line-height:1.62}
 .prose h2{font-size:24px;margin-top:40px}
 .prose h3{font-size:20px}
 .article-wrap{max-width:none}
 .contact-card{padding:26px}
 h1{font-size:clamp(28px,7.2vw,40px)}
 h2{font-size:clamp(26px,6.6vw,36px)}
 .hero h1{font-size:clamp(28px,7.8vw,40px)}
}

/* ---------- 响应式：矮窗口（笔记本常见 660–740px 视口）---------- */
/* 文案区是首屏里最占高度的一块，矮窗口下收紧它，好把空间让给产品图。 */
@media(max-height:740px){
 .hero{padding:28px 0 14px}
 .hero h1{font-size:clamp(28px,3.7vw,46px)}
 .hero .lead{margin-top:12px}
 .hero .actions{margin-top:20px}
 .hero-note{margin-top:12px}
 .hero-stage{margin-top:12px;min-height:190px}
 .hero-badge{margin-top:12px}
}

/* ---------- 尊重系统"减少动态效果" ---------- */
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 html.js .reveal{opacity:1!important;transform:none!important;transition:none!important}
 html.js .hero-copy>*{animation:none!important;opacity:1!important;transform:none!important}
 html.js .hero-badge{animation:none!important;opacity:1!important;transform:none!important}
 .hero-badge .pulse{animation:none!important}
 html.js .hero-frame{transform:none!important}
 .hero-static{display:flex!important}
 .inline-media-wrapper,.inline-media-ui{display:none!important}
 body.nav-open .nav-panel{animation:none}
}

.page-head{padding:64px 0 30px}.page-head h1{font-size:clamp(32px,5vw,58px)}.prose{max-width:900px;margin:auto;font-size:16px;line-height:1.9;overflow:auto}.prose img{max-width:100%;height:auto}.prose table{border-collapse:collapse;display:block;overflow:auto}.prose td,.prose th{padding:12px;border:1px solid #ddd}.prose p{margin:18px 0}.crumb{padding:20px 0;font-size:15px;color:var(--muted)}.pages{display:flex;flex-wrap:wrap;gap:15px;margin-top:30px}.article-list{display:grid;gap:22px}.article-item{padding:26px;background:#f5f5f7;border-radius:20px}.article-item h2{font-size:24px}.article-item p{margin:14px 0}.gallery{display:flex;gap:16px;overflow:auto}.gallery img{width:200px;height:180px;object-fit:contain}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.detail-grid>img{max-height:460px;object-fit:contain;width:100%}@media(max-width:760px){.detail-grid{grid-template-columns:1fr}.page-head{padding-top:35px}.prose{overflow-wrap:anywhere}}
/* wechat qr in contact card (20260924) */
.cc-main{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}
.cc-qr{display:flex;flex-direction:column;align-items:center;gap:8px}
.cc-qr img{width:120px;height:auto;display:block;background:#fff;border-radius:10px;border:1px solid rgba(0,0,0,.06)}
.cc-qr span{font-size:12px;color:var(--muted);text-align:center;line-height:1.4}
.cc-qr .qr-br{display:none}
@media(max-width:1068px){
.cc-qr{gap:6px}
.cc-qr img{width:104px}
.cc-qr span{max-width:104px;line-height:1.35}
.cc-qr .qr-br{display:inline}
.cc-main{gap:16px}
.contact-card .email{font-size:15px;letter-spacing:-.015em}
}
@media(max-width:374px){
.cc-qr img{width:92px}
.cc-qr span{max-width:92px}
.cc-main{gap:12px}
}
@media(max-width:359px){
.cc-main{grid-template-columns:1fr}
.cc-qr{align-items:flex-start}
}

/* 2026-09-25 体检优化：内联样式清理 / 页脚字号 / 点击区 */
.si0{--i:0}.si1{--i:1}.si2{--i:2}.si3{--i:3}.si4{--i:4}
.foot-bar{font-size:14px;line-height:1.7}
.foot-bar a,.footer a,.foot-cols a{display:inline-block;padding:4px 6px}
.nav a,.nav-panel a{padding:12px 8px}

/* 2026-09-25 体检优化（续）：正文内联链接点击区放大 */
.wrap.prose a, .prose a, .article a, .content a, .view-body a {
  line-height: 2.0;
  padding: 2px 2px;
}
.foot-bar a, .footer a, .foot-cols a { padding: 6px 8px; }
.nav a, .nav-panel a { padding: 14px 10px; }

/* ===== CSP 收紧：内联样式迁移（2026-09-26） ===== */
picture { display: block; }
.narrow-center { text-align: center; max-width: 820px; margin: 0 auto; }
.note-sm { font-size: 13px; color: var(--muted); margin-top: 14px; }
.c-lead { text-align: center; font-size: 17px; color: var(--ink-2); line-height: 1.8; }
.c-text { text-align: center; font-size: 15px; color: var(--muted); line-height: 1.8; }
.c-hot  { text-align: center; font-size: 20px; color: #d0021b; font-weight: bold; margin-top: 16px; }
.prose img { display: block; max-width: 100%; height: auto; border-radius: 8px; margin: 12px auto; }

/* 联系页 · 微信二维码卡片 */
.wx-card{max-width:340px;margin:44px auto 8px;padding:26px 24px 22px;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-m);text-align:center}
.wx-card img{display:block;width:200px;height:200px;margin:0 auto 14px;border-radius:var(--r-s);background:#fff;box-shadow:var(--shadow-1)}
.wx-card strong{display:block;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:.01em}
.wx-card span{display:block;margin-top:6px;font-size:13px;line-height:1.7;color:var(--muted)}
.wx-card .wx-note{margin-top:10px;font-size:12px;color:var(--faint)}
@media(max-width:480px){.wx-card{padding:20px 16px 16px}.wx-card img{width:170px;height:170px}}

/* ===== nav-menu-open-fix-20260927 =====
   移动端汉堡菜单"展开态"的两处修复：
   1) 展开时页头底色变实，避免毛玻璃后面正文透上来影响阅读；
   2) 首页深色首屏（body.hero-dark）上面板是纯黑底，而 .nav-panel a 的文字色是
      深色 --ink(#1d1d1f)，会出现"黑字压黑底"看不见 —— 这里补深色态的文字与分隔线颜色。
   注意：桌面档已有 @media(min-width:835px){.nav-panel{display:none!important}}，
   所以以下规则只在手机端生效。 */
body.nav-open .site-head{background:rgba(251,251,253,.96);border-bottom-color:var(--line-soft)}
body.hero-dark .site-head:not(.scrolled) .nav-panel{background:#000}
body.hero-dark .site-head:not(.scrolled) .nav-panel a{color:#f5f5f7;border-bottom-color:rgba(255,255,255,.16)}
body.hero-dark .site-head:not(.scrolled) .nav-panel a.on{color:#0a84ff}

/* ---------- 手机端文案排版微调 2026-09-27：关键句按目标行数完整显示 ---------- */
/* ① 首屏主标题：手机端由 4 行收进 2 行（文案一字未改，仅按视口缩放字号） */
@media(max-width:734px){
 .hero h1{font-size:clamp(17.5px,5.6vw,40px)}
 /* ② 产品卡描述：原 max-width:30ch（约 17.6 字/行）是「19 字必折 2 行」的根因，
    手机端去掉该宽度上限，并按视口微缩字号，保证 19 字单行完整显示 */
 .tile-lead{max-width:none;font-size:clamp(14.2px,4vw,16px)}
 /* ③ 品类说明脚注：由 3 行收进 2 行（略缩字号 + 借用两侧留白各 8px） */
 .catalog-note{font-size:clamp(14px,3.6vw,15px);margin-left:-8px;margin-right:-8px}
}
/* ④ 微信二维码两行说明：窄屏隐藏行内「/」分隔符，让「微信扫码」「长按识别」各自成行且首尾对齐 */
@media(max-width:1068px){
 .cc-qr .qr-sep{display:none}
}

/* HC-MOBILE-CONTACT-MERGED: was a separate render-blocking file, merged to satisfy CSP + reduce requests */
/* HC 手机端联系挂件 — 仅 <=768px 显示；外部资源以满足 CSP style-src 'self' */
@media (max-width:768px){
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom));}
  .hc-mc-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:99998;
    display:flex; align-items:stretch; height:calc(52px + env(safe-area-inset-bottom));
    padding-bottom:env(safe-area-inset-bottom);
    background:#0071e3; color:#fff;
    box-shadow:0 -1px 0 rgba(255,255,255,.18), 0 -5px 14px rgba(0,0,0,.10);
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  }
  .hc-mc-btn{
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; border:0; background:transparent; color:#fff; cursor:pointer;
    text-decoration:none; -webkit-tap-highlight-color:transparent;
    font-size:13px; line-height:1.15;
  }
  .hc-mc-btn svg{width:20px;height:20px;display:block;fill:#fff;}
  .hc-mc-btn:active{background:#0077ed;}
  .hc-mc-btn + .hc-mc-btn{box-shadow:inset 1px 0 0 rgba(255,255,255,.22);}
  .hc-mc-modal{display:none; position:fixed; inset:0; z-index:99999;}
  .hc-mc-modal.open{display:block;}
  .hc-mc-mask{position:absolute; inset:0; background:rgba(0,0,0,.45);}
  .hc-mc-dialog{
    position:absolute; left:50%; bottom:0; transform:translateX(-50%);
    width:100%; max-width:480px; background:#fff; color:#1d1d1f;
    border-radius:16px 16px 0 0; padding:18px 18px calc(18px + env(safe-area-inset-bottom));
    box-sizing:border-box;
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
    animation:hcMcUp .22s ease-out;
  }
  @keyframes hcMcUp{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
  .hc-mc-dlg-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
  .hc-mc-dlg-head h3{font-size:17px; margin:0; font-weight:600;}
  .hc-mc-close{border:0; background:transparent; font-size:24px; line-height:1; color:#86868b; cursor:pointer; padding:0 4px;}
  .hc-mc-form label{display:block; font-size:13px; color:#515154; margin-bottom:12px;}
  .hc-mc-form input[type=text], .hc-mc-form textarea{
    display:block; width:100%; margin-top:6px; box-sizing:border-box;
    border:1px solid #d2d2d7; border-radius:10px; padding:10px 12px; font-size:15px; color:#1d1d1f;
    font-family:inherit; background:#fff; -webkit-appearance:none;
  }
  .hc-mc-form input:focus, .hc-mc-form textarea:focus{outline:none; border-color:#0071e3;}
  .hc-mc-form textarea{resize:vertical;}
  .hc-mc-file input[type=file]{display:block; margin-top:6px; font-size:13px;}
  .hc-mc-file-name{display:block; font-size:12px; color:#86868b; margin-top:4px;}
  .hc-mc-tip{font-size:12px; color:#86868b; margin:0 0 14px;}
  .hc-mc-submit{
    width:100%; border:0; border-radius:12px; background:#0071e3; color:#fff;
    font-size:16px; font-weight:600; padding:13px; cursor:pointer; -webkit-tap-highlight-color:transparent; font-family:inherit;
  }
  .hc-mc-submit:active{background:#0077ed;}
  .hc-mc-clip-ta{position:fixed; left:-9999px; top:-9999px; opacity:0; border:0; padding:0;}
}
@media (min-width:769px){ .hc-mc-bar, .hc-mc-modal{display:none !important;} }


/* 联系页留言表单（2026-10-03 优化新增） */
.hc-contact-card{max-width:720px;margin:8px auto 0;background:#fff;border:1px solid #e6e9ed;border-radius:14px;padding:22px 24px;box-shadow:0 1px 3px rgba(20,30,45,.06)}
.hc-contact-card .hc-ct-title{font-size:17px;margin:0 0 6px;color:#1d2733}
.hc-contact-card .hc-ct-tip{font-size:13.5px;color:#67747f;margin:0 0 16px;line-height:1.6}
.hc-contact-card .ch_form ul{list-style:none;margin:0;padding:0}
.hc-contact-card .ch_form .item{margin:0 0 14px}
.hc-contact-card .ch_form input[type=text],.hc-contact-card .ch_form textarea{width:100%;box-sizing:border-box;padding:11px 12px;font-size:14px;color:#1d2733;background:#fbfcfd;border:1px solid #d8dee6;border-radius:9px;outline:none;transition:border-color .2s ease}
.hc-contact-card .ch_form input[type=text]:focus,.hc-contact-card .ch_form textarea:focus{border-color:#0050b3}
.hc-contact-card .ch_form textarea{resize:vertical;min-height:96px}
.hc-contact-card .ch_form .submit_btn{display:inline-block;padding:11px 26px;font-size:14.5px;font-weight:600;color:#fff;background:#0050b3;border:none;border-radius:9px;cursor:pointer;margin:0}
.hc-contact-card .ch_form .submit_btn:hover{background:#003f8f}
.hc-contact-card .hc-ct-alt{font-size:12.5px;color:#67747f;margin:14px 0 0}
/* 无障碍：仅供屏幕阅读器读取 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 404 页产品入口网格 */
.hc404-links{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.hc404-links li{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid rgba(0,0,0,.08);border-radius:10px;background:#fff}
.hc404-links li a{font-weight:600;color:#1a5c3a;text-decoration:none}
.hc404-links li a:hover{text-decoration:underline}
.hc404-links li span{font-size:13px;color:#666;line-height:1.5}
@media (max-width:640px){.hc404-links{grid-template-columns:1fr}}


/* === 产品详情页：图片比例占位，消除 CLS（不影响裁切与完整显示）=== */
.p-gallery{position:relative;width:100%;background:#fff}
.p-gallery img{width:100%;height:auto;display:block}
/* 主图：宽高比 16:9 容器占位，图用 contain 保证完整不裁切 */
.p-gallery > img[fetchpriority="high"]{aspect-ratio:16/9;object-fit:contain;background:#fff}
/* 正文图：给一个默认比例占位，加载后由 auto 接管 */
.prose img,.article-body img,.content img{max-width:100%;height:auto;display:block;margin:16px auto;background:#fafafa}
/* 产品描述区与规格表里的图 */
.p-desc img,.p-gallery+div img{max-width:100%;height:auto}
/* ---------- 内页标题下的栏目前言（20261020）---------- */
/* 原来 .col-intro 无任何样式，受全局 h1,p{margin:0} 影响紧贴大标题、行距偏挤 */
.page-head .col-intro{margin:clamp(20px,2.6vw,32px) auto 0;max-width:680px;font-size:17px;line-height:1.82;letter-spacing:-.005em;color:var(--muted);text-align:center}
@media(max-width:834px){.page-head .col-intro{font-size:15.5px;line-height:1.76;max-width:100%}}
