
/* ============================================================
   新泽宇音响 · 新站架构稿  v3（2026-10-10 第二轮实测 apple.com.cn）

   v3 相对 v2 只做一件事：把「我加的东西」删干净，回到 v2 量到的那套。
   v2 里属于自创、这轮删掉的：眉标 eyebrow、品牌口号首屏、四栏数字段、
   首页新闻段、渐变 logo、等宽大写字距的图位标签、可切换的朱橙强调色。

   ★ 全部数字来自 apple.com.cn 首页 1440×900 的 getComputedStyle，
     不是来自任何 skill 的 token 文件（那份 token 已被证伪三次）。

   一、页面 = 白底 + 竖向堆叠的瓷砖，缝里露出白（body bg = #ffffff）
        通栏瓷砖 1425×692，半幅瓷砖 695×580
        横向：通栏 bleed 到边；两列区 padding-inline 12px
        纵横缝一律 12px；瓷砖 border-radius = 0；全站 box-shadow = 0

   二、瓷砖里的内容栈（居中，顶部对齐，就这么四行，没有第五行）
        通栏：产品名 56/600 lh60 @顶 56 → 6px → 一句话 28/400 lh35
              → 17px → 按钮对 17px 高 44
        半幅：产品名 40/600 lh44 @顶 53 → 3px → 一句话 21/400 lh28
              → 12px → 按钮对 14px 高 36
        ★ 一句话与产品名【同色】，不是灰的（实测 rgb(29,29,31) / rgb(245,245,247)）

   三、按钮对（成对出现，这是苹果唯一的 CTA 形态）
        大：17px / lh20 / padding 11px 21px / 胶囊 / 高 44
        小：14px / lh18 / padding  8px 15px / 胶囊 / 高 36
        实心 = #0071e3 底 + 白字（深浅瓷砖都是这一个蓝）
        描边 = 透明底 + 1px 描边，字与描边【同色】：
               浅瓷砖 #0066cc，深瓷砖 #2997ff（实测两套，别用一个）
        两个按钮间距 17px

   四、页脚以上的辅助文字：区块标题 32/600、正文 17/400、说明 12/400

   五、全局导航：高 44px、底 rgba(29,29,31,.8)、backdrop saturate(1.8) blur(20px)、
        链接 12px rgba(255,255,255,.8)、当前项纯白且【不加下划线】

   六、字体栈首项 "SF Pro SC"。本机没有 SF Pro / PingFang 时，退化到**自托管的
        NZY Sans SC**（Noto Sans SC 子集，OFL 1.1，见 site/fonts/）。
        它排在 PingFang 之后、【微软雅黑之前】，理由：
          · Mac / iOS 命中苹方 ⇒ **根本不会请求这份字体**（零下载）；
          · Windows / Linux / 安卓 才下载，`font-display:swap` ⇒ 从不阻塞首屏。
        ★ 2026-10-12 起【不再引 Google Fonts】：实测 `fonts.googleapis.com`
          与 `fonts.gstatic.com` 在**中国大陆基本不可用**，而且那行 <link> 是
          **渲染阻塞**的 —— 大陆访客要在首屏白等一次超时。全站已摘干净。
        真机上线时若拿到 SF Pro SC 授权，把首项换回去即可，其余不用动。
   ============================================================ */

/* 自托管字体（site/fonts/ → 生成器拷到 /assets/fonts/）。
   ★ 家族名故意不叫 "Noto Sans SC"：① 让它在字体栈里的位置由我们说了算
     （必须在 PingFang 之后、微软雅黑之前）；② 避免与本机已装的同名体混淆。
   ★ 三档字重各一个文件，子集到「站内用字 ∪ GB2312 一级字」。实测每档 ~0.56 MB。 */
@font-face{font-family:"NZY Sans SC";font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/fonts/noto-sans-sc-400.woff2) format("woff2")}
@font-face{font-family:"NZY Sans SC";font-style:normal;font-weight:500;font-display:swap;
  src:url(/assets/fonts/noto-sans-sc-500.woff2) format("woff2")}
@font-face{font-family:"NZY Sans SC";font-style:normal;font-weight:600;font-display:swap;
  src:url(/assets/fonts/noto-sans-sc-600.woff2) format("woff2")}

:root{
  color-scheme: light;

  /* ---- 蓝：苹果的两支蓝，不是「一个强调色」
     实心胶囊永远 #0071e3；描边胶囊与文字链接跟瓷砖底色走
     （浅瓷砖 #0066cc，深瓷砖 #2997ff）。已定案，不再做可切换主题色。 ---- */
  --accent:#0066cc;          /* 浅底上的链接 / 描边胶囊 */
  --accent-btn:#0071e3;      /* 实心胶囊，两套底色都是它 */
  --accent-btn-h:#0077ed;
  --accent-hover:#0077ed;
  --accent-soft:rgba(0,102,204,.10);

  /* ---- 中性色：苹果只用这四个面 ---- */
  --bg:#ffffff;
  --bg-alt:#f5f5f7;
  --bg-dark:#000000;
  --fg:#1d1d1f;
  --fg-2:#6e6e73;
  /* ★ 2026-10-12：`--fg-3` 原来 #86868b（rgb 134），比 apple.com.cn 用过的
     **任何**文字灰都浅 —— 苹果最浅的文字灰是 rgba(0,0,0,.56)（≈110），
     往上一档是 .72（≈71）。而我们这一档用在面包屑、卡片眉标、表注、
     键值表标签这些元信息位上 ⇒ 用户反复说的"蒙蒙的"，一部分就是它。
     改成苹果的次级灰同值（110）= 与 --fg-2 同档：**我们本来多了一档，
     而多出来的那一档比苹果最浅的还浅**。两档合一，值回到苹果的取值上。 */
  --fg-3:#6e6e73;
  --fg-inv:#f5f5f7;
  --fg-inv-2:#a1a1a6;
  /* ★★ 页脚配色（2026-10-12 用户："这些太浅色了，看得辛苦"）。
     实测 apple.com.cn 页脚三项：目录链接 rgba(0,0,0,.72)（亮度 71）、
     小标题 .88（31）、法务行 .56（≈112）。
     ★ 我们原来把【目录链接】也设成了 --fg-2（110）—— 那正好是苹果
       【法务行】那一档 ⇒ 整片页脚都用了最浅的一档，只有脚注才该那么浅。
       （上一轮我拿苹果的法务行去比我们的链接，得出"对得上"的结论，是错的。）
     ⇒ 链接提到苹果的 .72；法务行比苹果再深一档（.64 ≈ 92）——
       用户明确说看得辛苦，这是客户偏好，不是苹果取值。 */
  --foot-link:rgba(0,0,0,.72);
  --foot-legal:rgba(0,0,0,.64);
  --line:rgba(0,0,0,.10);
  --line-inv:rgba(255,255,255,.14);
  /* ---- 导航配色：★ 2026-10-12 修正（用户点名"高级感不行"）----------------
     原注释是「苹果导航是深色，实测」—— 那只对【首页】成立。
     实测 apple.com.cn 七个页面，真正的规则是【两套】：
       /                深色 rgba(29,29,31,.8) + 白字（首屏是黑底瓷砖）
       /mac/ /ipad/ /shop/   底色【完全透明 transparent】+ 磨砂 none + 深字
       /iphone/         浅实色 rgb(250,250,252) + 深字（它底下是 #f5f5f7，需要自己的底）
       /support/        浅毛玻璃 rgba(250,250,252,.8) + blur(20px) + 深字
     ⇒ 【除首页外，底色浅、文字深】；而**底色要跟导航底下那一块一致**：
       /mac/ 底下是纯白 ⇒ 它就干脆透明，于是"一体"。
     ★★ 2026-10-12 第二次修正（用户：苹果是一体的白，我们做了底色没融合进来）：
        我们原先一律用 rgba(250,250,252,.8)，在白底页上就是一条**看得见的浅灰带**。
        而实测**本站除首页外每一页顶部都是 rgb(255,255,255)** ⇒ 应当照 /mac/ 那样
        **透明**（连磨砂都不要，实测 /mac/ 的 backdrop 就是 none）。
        ★ 之所以敢透明：子页导航是 position:relative 【随页面滚走】，
          它永远不会压在内容上面 ⇒ 不需要靠底色/磨砂来保证可读性。 */
  --nav-bg:transparent;
  --nav-backdrop:none;
  /* ★ 2026-10-12 用户："除了新泽宇音响与LOGO外，其他的字再加黑一点点"。
     原来导航项是 rgba(0,0,0,.8)（= rgb(51,51,51)），比品牌名和 logo 明显浅一截。
     现在导航项直接用 --fg（#1d1d1f）；当前项 / hover 用纯黑，保证仍有区分。
     ★★ 品牌与 logo 的颜色【冻结】在下面两个 token 上，不跟着 --nav-fg 走 ——
        用户明确要求这两处保持原样，这也是把它们单列出来的唯一理由。 */
  --nav-fg:#1d1d1f;
  --nav-fg-on:#000000;
  --nav-brand:rgba(0,0,0,.8);       /* 品牌文字：与改前逐值一致 */
  --nav-brand-mark:#1d1d1f;         /* logo：与改前逐值一致 */
  --nav-hover-bg:rgba(0,0,0,.06);
  --nav-drawer-bg:rgb(250,250,252);

  /* ---- 间距 ----
     ★ 首页【没有】区块留白：整页就是一摞瓷砖，缝 12px。
       这个 --gap-section 只给内页的纯文字区块用。 */
  --gap-section:clamp(64px,9vw,120px);
  --gap-sm:16px;
  --gap-md:32px;
  --gap-lg:48px;
  --gut:22px;
  --wrap:980px;                 /* 文字栏 */
  --wrap-wide:1200px;
  --tile-gap:12px;              /* 瓷砖之间的缝，实测约 12px */

  /* ---- 形状：只有这两种取值（实测） ---- */
  --r-sm:5px;
  --r-pill:980px;

  /* ---- 字体：苹果自己的栈，首项 SF Pro SC（实测）。
     真机若拿不到 SF Pro SC 授权，退到 PingFang SC；
     Windows 上没有 PingFang，故把 Noto Sans SC 提到微软雅黑【之前】——
     雅黑与苹方的字形骨架差得远，拿它当默认会把字阶的比例看错。 ---- */
  --font:"SF Pro SC","SF Pro Text","SF Pro Icons","PingFang SC","Hiragino Sans GB","NZY Sans SC","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Courier New",monospace;

  /* ---- 字阶：apple.com.cn 实测字阶，逐级比例照抄，不自创中间值 ----
     大档 = 56 / 40 / 32 / 28 / 21 / 17 / 14 / 12（相邻级差 +8 / +8 / +4 / +7 / +4 / +3 / +2）
     中档 / 小档在下方 @media 换档 —— 苹果是【阶梯】，不是流体 clamp。 */
  --fs-hero:3.5rem;      /* 56 / 600  通栏主标题 */
  --fs-tile:2.5rem;      /* 40 / 600  瓷砖标题、区块大标题 */
  --fs-page:3rem;        /* 48 / 600  内页大标题 */
  --fs-head:2rem;        /* 32 / 600  区块标题（实测是 32，不是 24） */
  --fs-lede:1.75rem;     /* 28 / 400  首屏副标题、导语 */
  --fs-sub:1.3125rem;    /* 21 / 400  瓷砖副标题、区块简介 */
  --fs-body:1.0625rem;   /* 17 / 400  默认正文、CTA、表格 */
  --fs-small:.875rem;    /* 14 / 400  次级链接 */
  --fs-cap:.75rem;       /* 12 / 400  导航、页脚、元信息 */
  --lh-display:1.07;     /* 56 → 60 */
  --lh-title:1.1;        /* 40 → 44 */
  --lh-head:1.125;       /* 32 → 36 */
  --lh-lede:1.25;        /* 28 → 35 */
  --lh-body:1.33;        /* 21 → 28（实测 1.33；原来的 1.47 明显偏松） */
  /* ★ 2026-10-12 新增：正文单独一条行高。
     由来：`--lh-body:1.33` 是在 **21px 的小标题**上实测的（28/21），
     却被拿去当了 `body` 的行高 ⇒ 17px 正文只有 22.61px，比 Apple 紧 10%。
     实测 apple.com.cn 的 body：**1440 / 834 / 390 三个断点都是 17px / 25px**
     —— 它是【绝对像素、不随断点变】，不是比值。所以这里也用绝对 px。 */
  --lh-text:25px;        /* 17 → 25（apple.com.cn 实测，三个断点一致） */
  --ls-body:.011em;      /* CJK 19~21px 实测 +0.23px；12~17px 与 40 以上都是 0 */
}

/* 深色：系统偏好 */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --bg:#000000;
    --bg-alt:#1d1d1f;
    --fg:#f5f5f7;
    --fg-2:#a1a1a6;
    --fg-3:#86868b;
    --foot-link:rgba(255,255,255,.72);
    --foot-legal:rgba(255,255,255,.64);
    --line:rgba(255,255,255,.14);
    --accent:#2997ff;
    --accent-btn:#2997ff;
    --accent-btn-h:#5ab0ff;
    --accent-hover:#5ab0ff;
    --accent-soft:rgba(41,151,255,.16);
    /* ★ 深色模式下页面底色是黑的 ⇒ 导航也透明（融进黑底），文字转白。
       注意不要给深色模式塞一个"深色底"：那会在黑页上又做出一条看得见的带，
       跟浅色模式下那条浅灰带是同一个毛病。首页的 .nav--dark 会自己覆盖回
       rgba(29,29,31,.8) + 磨砂（它是 sticky，必须保证滚动时可读）。 */
    --nav-bg:transparent;
    --nav-backdrop:none;
    --nav-fg:rgba(255,255,255,.8);
    --nav-fg-on:#fff;
    --nav-hover-bg:rgba(255,255,255,.12);
    --nav-drawer-bg:#1d1d1f;
  }
}
/* 深色：手动切换 */
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#000000;
  --bg-alt:#1d1d1f;
  --fg:#f5f5f7;
  --fg-2:#a1a1a6;
  --fg-3:#86868b;
  --foot-link:rgba(255,255,255,.72);
  --foot-legal:rgba(255,255,255,.64);
  --line:rgba(255,255,255,.14);
  --accent:#2997ff;
  --accent-btn:#2997ff;
  --accent-btn-h:#5ab0ff;
  --accent-hover:#5ab0ff;
  --accent-soft:rgba(41,151,255,.16);
  --nav-bg:transparent;            /* 同上：深色模式下也透明，融进黑底 */
  --nav-backdrop:none;
  --nav-fg:rgba(255,255,255,.8);
  --nav-fg-on:#fff;
  --nav-brand:rgba(255,255,255,.8);   /* 深色导航下品牌与 logo 也冻结（与改前一致） */
  --nav-brand-mark:#fff;
  --nav-hover-bg:rgba(255,255,255,.12);
  --nav-drawer-bg:#1d1d1f;
}

/* ---- 字阶换档：照 apple.com.cn 的两级台阶（1068 / 734），同一档内定住不动 ---- */
@media (max-width:1067px){
  :root{
    --fs-hero:3rem;       /* 56 → 48 */
    --fs-tile:2rem;       /* 40 → 32 */
    --fs-page:2.5rem;     /* 48 → 40 */
    --fs-head:2rem;       /* 32 → 32 */
    --fs-lede:1.5rem;     /* 28 → 24 */
    --fs-sub:1.1875rem;   /* 21 → 19 */
    --fs-body:1.0625rem;  /* 17 → 17 */
    --fs-small:.875rem;   /* 14 → 14 */
    --lh-display:1.083;   /* 48 → 52 */
    --lh-title:1.125;     /* 32 → 36 */
    --lh-lede:1.29;       /* 24 → 31 */
    --lh-body:1.37;       /* 19 → 26 */
    --lh-text:25px;       /* 17 → 25（Apple 的正文行高不换档，实测 834 也是 17/25） */
  }
}
@media (max-width:734px){
  :root{
    --fs-hero:2rem;       /* 56 → 32 */
    --fs-tile:2rem;       /* 40 → 32 */
    --fs-page:2rem;       /* 48 → 32 */
    --fs-head:2rem;       /* 32 → 32 */
    --fs-lede:1.1875rem;  /* 28 → 19 */
    --fs-sub:1.1875rem;   /* 21 → 19 */
    --fs-body:.875rem;    /* 17 → 14 */
    --fs-small:.75rem;    /* 14 → 12 */
    --lh-display:1.125;   /* 32 → 36 */
    --lh-title:1.125;     /* 32 → 36 */
    --lh-lede:1.37;       /* 19 → 26 */
    /* 这一档 --fs-body 缩到 14px，Apple 那一档没实测过（它的 body 到 390 仍是 17/25），
       按 Apple 自己的规律外推：它的行高 ≈ 字号 + 7~8（17→25、19→26、21→28）⇒ 14 → 21。 */
    --lh-text:21px;       /* 14 → 21（外推，非实测） */
  }
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-text);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover);text-decoration:underline}
[hidden]{display:none!important}
/* 给爬虫看的 h1：首页设计上不出现可见大标题（苹果也不出现），
   但首页是 872 个页面里唯一得有 h1 的地方 —— 藏起来而不是不写。 */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;
    clip-path:inset(50%);overflow:hidden;white-space:nowrap}
/* 苹果 CJK 标题字重是 600，不是 900 —— 实测 56px/600、40px/600、24px/600。
   字距用 0：CJK 不该套 -0.015em 那类拉丁紧排。 */
h1,h2,h3{line-height:var(--lh-title);letter-spacing:0;font-weight:600;margin:0;text-wrap:balance}
p{margin:0}

/* ---------- 版心 ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.wrap--wide{max-width:var(--wrap-wide)}
.center{text-align:center}
.center .sec-sub{margin-inline:auto}

/* ---------- 架构稿提示条 ---------- */
.proto{
  position:relative;z-index:80;background:#1d1d1f;color:#f5f5f7;
  font-size:var(--fs-cap);line-height:1.333;border-bottom:1px solid rgba(255,255,255,.12);
}
.proto__in{
  max-width:var(--wrap-wide);margin-inline:auto;padding:9px var(--gut);
  display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:center;text-align:center;
}
.proto b{font-weight:600}
.proto__ctl{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.proto button{
  font:inherit;font-size:var(--fs-cap);color:#f5f5f7;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.28);border-radius:var(--r-pill);
  padding:3px 11px;cursor:pointer;
}
.proto button:hover{background:rgba(255,255,255,.22)}
.proto button[aria-pressed="true"]{background:#f5f5f7;color:#1d1d1f;border-color:#f5f5f7}

/* ============================================================
   全局导航 —— 高 44px、12px 链接（实测）；配色【两套】，见下面 --nav-bg 的注释
   ============================================================ */
.nav{
  /* ★ 2026-10-12：子页改成 relative —— 【随页面滚走】，与苹果一致。
     实测 apple.com.cn/mac/ 的导航是 position:absolute，滚下去 top 变 -600、
     往上滚回 1000 也【不回来】（纯 absolute，没有"下滑隐藏/上滑再现"的 JS）；
     而 apple.com.cn/ 首页是 fixed，一直钉着。
     ★ 我们这里用 relative 而不是 absolute：行为一样（都在文档流顶端、都滚走），
       但 relative 【仍然占着那 44px】⇒ 不用给内容补 padding-top，
       而且它仍是定位元素（手机抽屉的 absolute 要挂在它上面）。
     首页那套（.nav--dark）保留 sticky ⇒ 与苹果首页的 fixed 等效，见下。 */
  position:relative;
  top:env(safe-area-inset-top,0px);z-index:60;
  background:var(--nav-bg);color:var(--fg-inv);
  backdrop-filter:var(--nav-backdrop);
  -webkit-backdrop-filter:var(--nav-backdrop);
}
/* 首页专用（首屏是黑底瓷砖 ⇒ 白字才读得清）：实测 apple.com.cn/ 就是这一套。
   由 render_nav 只给首页加上这个类；其余页面走 :root 里的浅色默认值。
   ★ 首页导航【钉住】：苹果首页实测是 position:fixed。我们用 sticky 得到同样的
     "一直贴在顶上"，但不必给 body 补 44px 内边距（fixed 会脱离文档流）。 */
.nav--dark{
  position:sticky;
  --nav-bg:rgba(29,29,31,.8);
  /* ★ 首页是 sticky ⇒ 滚动时内容会从底下过，必须靠磨砂保证可读性。
     子页透明是因为它随页面滚走、永远不压内容（见 :root 里的说明）。 */
  --nav-backdrop:saturate(180%) blur(20px);
  --nav-fg:rgba(255,255,255,.8);
  --nav-fg-on:#fff;
  --nav-brand:rgba(255,255,255,.8);   /* 深色导航下品牌与 logo 也冻结（与改前一致） */
  --nav-brand-mark:#fff;
  --nav-hover-bg:rgba(255,255,255,.12);
  --nav-drawer-bg:#1d1d1f;
}
/* ★ 手机抽屉摊开时把导航钉回去：子页导航平时随页面滚走，
   摊着菜单再往下滚会让菜单跟着跑掉。由 site.js 加/去这个类。 */
.nav--pinned{position:sticky}
/* ★ 一条 flex 行 + space-between —— 这才是苹果的结构，不是「居中一簇」。
   实测 apple.com.cn/mac/：`#globalnav .globalnav-content` 宽 1024、padding 0 22px；
   里面 `ul.globalnav-list` 是【996px 的一条 space-between 行】，
   logo、13 个栏目、搜索、购物袋全是这一行的 flex 子项，相邻盒子之间
   恒为 31/32px —— 而且是「摊满整行」摊出来的，不是 padding 给的。
   ★ 我们原先写成 grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)，
   把菜单居中、两侧等宽。中文站没事（品牌 95px 装得进 122.8px 的侧栏），
   英文站 `New Zeyu Audio` 131px 就【压到第一个栏目上】——
   实测重叠：1440/1280/1100/1068 都 +9px，900 +22，834 +39。
   根因不是品牌太长，是「居中」这个约束本身：两侧等宽 ⇒ 中间那簇的宽度
   被【品牌与工具条里更宽的那个】反推，字一长必然互撞。
   ⇒ 换成苹果的 space-between：没有等宽侧栏，也不再有「居中」约束，
      品牌贴左、工具贴右、栏目在中间摊开，任何长度都撞不上。
   ★ .nav__menu 用 display:contents 把 <ul> 自己的盒子去掉，让 7 个 <li>
     直接成为 .nav__in 的 flex 子项 —— 苹果的 ul.globalnav-list 就是这个效果。
     <ul> 还在 DOM 里（语义、a11y 不变），只是不参与布局。 */
.nav__in{
  max-width:1024px;margin-inline:auto;padding-inline:var(--gut);
  height:44px;display:flex;align-items:center;justify-content:space-between;
}
.brand { display:flex;align-items:center;gap:7px;color:var(--nav-brand);min-width:0;text-decoration:none;flex:0 0 auto; }
.brand:hover{color:var(--nav-fg-on);text-decoration:none}
/* 占位标记。原来是个蓝橙渐变块 —— 那是我自己的手势；苹果的标志是单色的。
   ★★ 2026-10-12：主路径的 fill 从写死的 #ffffff 改成 **currentColor**。
      由来（用户）：浅色导航上"LOGO 刚好白色就不好看了"——实测导航内联的正是
      网站库里的【反白版】（`E:\网站\logo输出\新泽宇-图形LOGO-反白.svg`，
      #ffffff + #E64C24），它是**为深色导航画的**，放到白底上整个消失、只剩橙块。
      库里的三版形状**逐字节相同**（path d 完全一致），只有填色不同：
        · 新泽宇-图形LOGO.svg         #000000 + #E64C24  ← 深色底专用
        · 新泽宇-图形LOGO-反白.svg     #ffffff + #E64C24  ← 深色导航专用
        · 新泽宇-图形LOGO-单色.svg     currentColor       ← 跟着文字色走
      ⇒ 用 currentColor 【一次拿到两版】：浅色导航 = 库里的黑色+橙，
        首页深色导航 = 原来的白+橙，深色模式自动跟随。橙色 #E64C24 两版都保留。
   ★ color 显式取 --nav-fg-on（而不是让它继承 --nav-fg）：否则会和下面的
     opacity:.8 叠成"80% × 80%"，浅底上淡得看不清。 */
.brand__mark { width:24px;height:24px;flex:0 0 auto;display:block;color:var(--nav-brand-mark);opacity:.8;transition:opacity .2s ease }
.brand__mark svg { display:block;width:100%;height:100% }
.brand:hover .brand__mark { opacity:1 }
.brand__nm { font-size:.78rem;font-weight:600;letter-spacing:.02em;white-space:nowrap }
.brand__sub{display:none}

/* 苹果的栏目间距 = 【摊满剩下那条缝】摊出来的（996px 里 14 项，相邻盒子 31/32px），
   所以它随视口收窄一起收：1400→32  1000→28  900→21  850→17  834→16。
   ★ 但那只对苹果成立 —— 它是 14 项摊 996px。我们只有 7 栏，摊满会到 47px，
     一个大缝。所以这里【不再自己定间距】：格局交给 space-between，
     间隙由视口宽度和条目宽度自然决定，跟苹果同一条规律、不是同一条曲线。
   ★ display:contents 见上（<ul> 不出盒子，<li> 直接进 flex 行）。 */
.nav__menu{
  display:contents;
  list-style:none;margin:0;padding:0;
}
/* 苹果导航项：纯白 = 当前页，不上色、不加下划线（实测） */
/* 实测：链接 12px、内边距 0 8px、撑满 44px 整条导航（linkH = 44） */
.nav__menu a{
  color:var(--nav-fg);font-size:var(--fs-cap);white-space:nowrap;
  display:flex;align-items:center;height:44px;padding:0 8px;
  text-decoration:none;transition:color .2s ease;
}
.nav__menu a:hover{color:var(--nav-fg-on);text-decoration:none}
.nav__menu a[aria-current="page"]{color:var(--nav-fg-on)}
.nav__tools{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.nav__ico{
  width:28px;height:28px;border:0;background:transparent;color:var(--nav-fg);
  cursor:pointer;border-radius:var(--r-pill);display:grid;place-items:center;
  font:inherit;font-size:.6875rem;letter-spacing:.04em;padding:0;transition:color .2s ease;
  /* 语言切换是一个【真的 <a>】（爬虫要能顺着 hreflang 走出去），
     不是 <button> —— 所以这里得把链接的默认下划线/颜色压掉。 */
  text-decoration:none;
}
.nav__ico:hover{color:var(--nav-fg-on);background:var(--nav-hover-bg)}
/* 放大镜：图标本身 17px（苹果的导航图标量级），盒子仍是 .nav__ico 的 28×28。 */
.nav__ico svg{width:17px;height:17px;display:block}
.nav__ico[aria-expanded="true"]{color:var(--nav-fg-on);background:var(--nav-hover-bg)}
.burger{display:none}
/* 栏目名是中文四字，比苹果的拉丁短词宽 —— 把链接内边距从 8 收到 6，
   才够在 833 那条线上把 7 栏收进去（苹果自己不用收，它没有这个约束）。 */
@media (max-width:1067px){
  .nav__menu a{padding:0 6px}
}
/* ★ 833 是【实测】出来的，不是推的：apple.com.cn 导航高 44→48、且
   「目录」触发器出现，正好卡在 ≤833（834 还是 44 的桌面条）。 */
@media (max-width:833px){
  .nav__menu{display:none}
  .nav__menu.is-open{
    /* ★ 桌面档 .nav__menu 是 display:contents（没有自己的盒子），
       抽屉要的是【一个真盒子】，所以这里 display:flex 把它还回来。
       绝对定位挂在 .nav 上（sticky 也是定位元素）⇒ left/right:0 铺满整条，
       top:100% 正好吊在导航条下面。 */
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;left:0;right:0;top:100%;
    background:var(--nav-drawer-bg);padding:6px var(--gut) 18px;margin:0;
  }
  .nav__menu.is-open a{padding:15px 0;font-size:1.3125rem;color:var(--nav-fg-on)}
  /* 这块渐变方块单独看没有辨识度 —— 手机上留着字号名，别只留一个方点 */
  .brand__nm{font-size:.8125rem}
  .burger{display:grid}
  /* ★ 手机档按钮原来是 28×28（桌面量级），在手机上根本点不准 ——
     实测用户反馈"右上角菜单太小"。改成 44×44（Apple HIG 的最小触控尺寸），
     图标本身 17→20px，EN 字号 11→13px。导航条 48px 高，44 的按钮放得下。 */
  .nav__ico{width:44px;height:44px;font-size:.8125rem}
  .nav__ico svg{width:20px;height:20px}
  .burger{width:44px;height:44px}
  .burger svg{width:20px;height:20px}
  /* 手机档导航条 48px（实测苹果手机档 nav=48，桌面 44）。
     注意：苹果手机档的导航是另一个组件（透明底 + 搜索框），
     这一条只跟了高度，没跟透明底 —— 我们的深色条更好按。 */
  .nav__in{height:48px}
  .nav__menu a{height:48px}
}

/* ============================================================
   按钮 —— 苹果成对出现：实心胶囊 + 描边胶囊（实测）
   ============================================================ */
/* 尺寸是实测值，不是估算：大 11px 21px / lh20 / 高 44，小 8px 15px / lh18 / 高 36
   （11+1+20+1+11=44、8+1+18+1+8=36，含 1px 描边） */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font:inherit;font-size:17px;line-height:20px;
  border-radius:var(--r-pill);padding:11px 21px;
  cursor:pointer;border:1px solid transparent;text-decoration:none;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.btn:hover{text-decoration:none}
.btn--pri{background:var(--accent-btn);color:#fff;border-color:var(--accent-btn)}
.btn--pri:hover{background:var(--accent-btn-h);border-color:var(--accent-btn-h);color:#fff}
/* 描边胶囊：字与描边同色，且【跟着瓷砖底色走】—— 浅底 #0066cc、深底 #2997ff。
   实测这两支蓝是分开的，别用一个。--accent 在 .tile--dark 里被就地改写。 */
.btn--sec{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn--sec:hover{background:var(--accent-soft);color:var(--accent)}
.btn--sm{font-size:14px;line-height:18px;padding:8px 15px}
.link{font-size:var(--fs-body);color:var(--accent)}
.link::after{content:" ›";font-size:1em}

/* ============================================================
   瓷砖 —— 本站的骨架。满幅出血，无圆角、无边框、无投影。
   ============================================================ */
.tiles{display:grid;gap:var(--tile-gap);background:var(--bg)}
/* 两列区两侧留 12px —— 实测苹果的 .section-promo 是 padding:0 12px，
   于是横向的缝与它对齐，全是 12px。通栏瓷砖则 bleed 到边，不留。 */
.tiles+.tiles{margin-top:var(--tile-gap)}   /* 两摞瓷砖之间也是 12px 的缝 */
.tiles--2{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:var(--tile-gap)}
@media (max-width:734px){ .tiles--2{grid-template-columns:minmax(0,1fr)} }

.tile{
  /* 图位占位用的柔光。直接画在瓷砖自己身上，不做成独立盒子 ——
     独立盒子会留下一条硬边（20% 灰突然出现），在浅色瓷砖上看得见。 */
  --wash:radial-gradient(60% 35% at 50% 62%,rgba(128,128,128,.18),rgba(128,128,128,0) 100%);
  /* ★★ 结构照实测的苹果 .tile-wrapper（2026-10-10 重量）：
       块本身 = 背景 + 上下内边距（实测 pad 56 / 63）；
       文字层 .tile-content 在流里、贴顶（实测 headline top = 56 = padding-top）；
       图 .tile-image-wrapper 是【absolute; inset:0; 1425×692】——
       满铺整块、压在文字下面，根本不在流里。
     我原来写的是「文字在上、下面再 flex 一个空盒子 .tile__art」，
     那是个结构错误：苹果的图铺满整个 692px，不是文字下面另开一格。
     所以真图进来之前，那一格永远只能是空白。 */
  position:relative;overflow:clip;
  text-align:center;
  color:var(--fg);text-decoration:none;
  background-color:var(--bg-alt);
  background-image:var(--wash);
  min-height:580px;padding:53px 0 60px;   /* 实测：半幅 695×580、顶 53 底 60 */
}
.tile:hover{text-decoration:none}
/* 描边胶囊的字色跟着瓷砖走：深底换 #2997ff（实测苹果分两支蓝） */
/* ★ 深底瓷砖必须【就地改写整套前景色】，不能只改 --accent。
   原来只改了 --accent，于是 --fg-2 (#6e6e73) / --fg-3 (#86868b) 原样留在黑底上 ——
   这是浅底用的灰，压在 #000 上偏暗。
   量出来的后果：全站只有一处深底元信息（产品详情页顶那块），
   当初是靠一个行内 style="color:var(--fg-inv-2)" 手补的 —— 全站唯一的 #a1a1a6。
   现在把整组改到位，行内补丁删掉；也让以后任何灰字落进深底自动正确。
   黑底上的两级灰：主灰 #a1a1a6、次灰 #86868b（实测苹果深色区的取值）。 */
.tile--dark{
  background:var(--bg-dark);color:var(--fg-inv);--accent:#2997ff;
  --fg-2:#a1a1a6;--fg-3:#86868b;--line:var(--line-inv);
  --foot-link:rgba(255,255,255,.72);--foot-legal:rgba(255,255,255,.64);
}
.tile--light{background:var(--bg-alt);color:var(--fg)}
.tile--hero{min-height:692px;padding:56px 0 63px}   /* 实测：通栏 1425×692、顶 56 底 63 */
.tile--hero .tile__title{font-size:var(--fs-hero);line-height:var(--lh-display)}
.tile--dark{--wash:radial-gradient(60% 35% at 50% 62%,rgba(170,170,180,.20),rgba(170,170,180,0) 100%)}

/* ★ 一块瓷砖里只有四行：产品名 → 一句话 → 按钮对，没有眉标、没有小标题。
   实测苹果的瓷砖内边距就是「顶 56 / 53，两侧 0，底 63 / 60」，
   文案列窄且居中（hero 那块实测只有 349px）。CJK 同字数要更宽，
   故取 680px —— 这是全站唯一没照抄到的数（苹果那个宽度是文字自己撑出来的，
   不是 token），其余全部照抄。 */
.tile__body{
  position:relative;z-index:1;              /* 浮在满铺图之上 */
  width:100%;max-width:680px;margin-inline:auto;
  padding:0 24px;                           /* 上下内边距已挪到 .tile 上＝苹果的 pad */
  display:flex;flex-direction:column;align-items:center;
}
.tile__title{font-size:var(--fs-tile);line-height:var(--lh-title);font-weight:600;letter-spacing:0;text-wrap:balance}
/* ★ 一句话与产品名【同色】（实测 rgb(29,29,31)/rgb(245,245,247)），
   不是灰的 —— 灰副标会让整块瓷砖塌下去。 */
.tile__sub{
  font-size:var(--fs-sub);line-height:var(--lh-body);letter-spacing:var(--ls-body);
  color:inherit;margin-top:3px;max-width:34ch;text-wrap:balance;
}
.tile--hero .tile__sub{font-size:var(--fs-lede);line-height:var(--lh-lede);margin-top:6px}
/* ★ 按钮对的间距跟按钮尺寸走，不是「一个常量」（实测 apple.com.cn
   .tile-ctas 的 column-gap）：配 17px/44 按钮时 17px，配 14px/36 按钮时 14px。
   margin-top 同理：hero 17、半幅 12。 */
.tile__cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:12px}
.tile--hero .tile__cta{gap:17px;margin-top:17px}
/* 图位 = 满铺底图（苹果 .tile-image-wrapper: position:absolute; inset:0）。
   现在是空的；真图进来把 <img> 塞进这一层就行，其余不用动。
   柔光仍然画在瓷砖自己身上，这里必须透明，否则又出现硬边。 */
.tile__art{position:absolute;inset:0;z-index:0;margin:0}
.tile__art.plate{background:none}
/* ★ 还没有真图（.plate）时，瓷砖塌成【文字块自身的高度】，不留空盒子
   （用户 2026-10-10 拍板：「先把无图瓷砖的高度收掉」）。
   真图一进来这条自动失效（:has 不再命中），回到 min-height:692。
   特异度 (0,3,0) —— 高于下面所有换档里的 .tile / .tile--hero，不必再逐档覆盖。 */
.tile:has(> .tile__art.plate){min-height:0;padding-bottom:48px}
.tile > .tile__art.plate::after{display:none}   /* 图位标签也收掉，否则会飘在文字上 */

/* ============================================================
   ★ 瓷砖的换档 —— 这张表是量出来的，不是估的。
   在 apple.com.cn 上把视口从 1440 一路降到 390 逐档读 getComputedStyle：

              通栏 hero                        半幅 promo
    ≥1068  692h  顶56 底63  标56/60 副28/35      580h  顶53 底60  标40/44 副21/28
           gap6 按钮17/44 距17                    按钮14/36 距14 mt12
    ≤1067  650h  顶61 底69  标48/52 副24/31      490h  顶44 底48  标32/36 副19/26
           gap4 按钮17/44 距17 mt16               按钮14/36 距14 mt12
    ≤734   500h  顶39 底43  标32/36 副19/26  gap4
           ★按钮也降成小的 14/36，距14 mt11 —— 手机档【两种瓷砖完全一样】

   两个我当时估错、这次量出来的点：
   ① 半幅瓷砖的按钮对间距是 14 不是 17（苹果按按钮尺寸给间距，不是全局常量）；
   ② 手机档连 hero 的按钮也缩小成 14/36，不是保持 17/44。
   ============================================================ */
@media (max-width:1067px){
  .tile{min-height:490px;padding:44px 0 48px}
  .tile__sub{margin-top:4px}
  .tile__cta{margin-top:12px}
  .tile--hero{min-height:650px;padding:61px 0 69px}
  .tile--hero .tile__sub{margin-top:4px}
  .tile--hero .tile__cta{margin-top:16px}
}
@media (max-width:734px){
  /* ★ 500px 在 844px 高的手机上占 59%，但宽图按 cover 只能显示中间一条，
     上下留白太多。压到 430px，让首屏能带出下一块的开头。 */
  .tile,.tile--hero{min-height:430px;padding:36px 0 40px}
  .tile__sub,.tile--hero .tile__sub{margin-top:4px}
  .tile__cta,.tile--hero .tile__cta{gap:14px;margin-top:11px}
  /* 手机档按钮不分大小，一律小的那一支 */
  .tile .btn,.tile--hero .btn{font-size:14px;line-height:18px;padding:8px 15px}
}

/* 图位标签：唯一的一个，居中，取自 data-cap。
   closest-side 保证渐变恰好在最近的边收成 0，四边都不会留下硬边。 */
.plate{
  position:relative;display:grid;place-items:center;
  background:radial-gradient(closest-side,rgba(128,128,128,.14),rgba(128,128,128,0));
}
/* 图位标记只是「这里将来是产品图」的占位说明。
   原来用了等宽 + .18em 字距 + 全大写 —— 那是我自己的手势，苹果不做这个。
   现在用正文字体、12px、不动字距、不转大写。 */
.plate::after{
  content:attr(data-cap);position:absolute;inset:0;
  display:grid;place-items:center;padding:14px;text-align:center;
  font-size:var(--fs-cap);line-height:1.333;
  color:currentColor;opacity:.3;
}
.plate--sq{aspect-ratio:1/1}
.plate--43{aspect-ratio:4/3}
.plate--32{aspect-ratio:3/2}
.plate--wide{aspect-ratio:16/9}

/* ★ 详情页的图位（产品详情图集 4 张、案例详情主图 + 图位 2 张）：
   真图没进来时，这些 4:3 / 16:9 的空框就是整屏的空白 —— 产品详情那段
   实测 ≈1100px 高全是空的，跟首页那九张空洞是同一个病，也正是用户那句
   「与苹果相差很远」的观感来源。与首页瓷砖同一条口径：占位状态下把高度收掉。
   这里不能像产品栅格那样 display:none（标题会孤零零剩着、下面没内容），
   所以收成一条短横条：仍占原来的列位，只是不再撑满整段。
   ★ 自愈：容器上挂 .gal，条件是「里面还是 .plate」；真图一进来
     （.plate 换成 <img>）选择器不再命中，自动回到 4:3 / 16:9 的大图版式。
   特异度 (0,2,0) 高于 .plate--43 / .plate--wide 的 (0,1,0)。 */
.gal>.plate--43{aspect-ratio:auto;height:clamp(120px,13vw,170px)}
.gal>.plate--wide{aspect-ratio:auto;height:clamp(150px,17vw,220px)}

/* ============================================================
   ★ 出场动效：产品/瓷砖进入视口时【淡入 + 8px 上浮】
   ------------------------------------------------------------
   ① 先把话说清楚：apple.com.cn 现在【没有】这个动效。
      在 / 、/mac/ 、/macbook-air/ 三个页面逐块读 getComputedStyle：
      .tile-wrapper 与 .section-content 全是 opacity:1 / transform:none /
      transition:all 0s；全站 @keyframes 只有 globalnav-* / dotnav-* /
      ribbon-*，没有一个是给内容块出场用的。
      所以这一条【不是从苹果某个页面上抄来的】，用的是苹果【自己那套动作
      词汇】，全部从它线上 CSS 里量出来：
        · 缓动 cubic-bezier(.4,0,.6,1) —— 全局动效的标准曲线
        · 时长 .35s —— .tile-overlay-content 的实测值
        · 位移 8px —— globalnav 里 translateY(-8px) 的实测值
        · 阶梯 20ms/项 —— --r-globalnav-flyout-item-number * 20ms
      也就是说：曲线、时长、位移、阶梯都是苹果的数，只有「要不要做」是
      用户拍的。这一点必须写在这里，免得以后有人以为是照抄来的。

   ② 【爬虫安全】是这里唯一不能错的一条。整个站的前提就是百度 / GEO 能收录，
      所以「初始不可见」【绝不能写在基础 CSS 里】—— 只挂在 html.js 底下，
      而 .js 由 <head> 里一行内联脚本打上，条件是浏览器支持
      IntersectionObserver。JS 没跑（爬虫、禁 JS、脚本报错）⇒ 没有 .js
      ⇒ 所有内容 opacity:1，与加动效之前一模一样。绝不会留下一屏空白。
      同理，正文【本来就全在 HTML 源码里】，opacity 不影响任何抽取。

   ③ prefers-reduced-motion 时既不隐藏也不动画，直接就是终态。

   ④ 只动 opacity / transform —— 不改变占位 ⇒ 不会引起 CLS，
      也不会把瓷砖那套 692 / 580 的高度节奏搅乱。
   ============================================================ */
html.js [data-rv]>*{opacity:0;transform:translateY(8px)}
html.js [data-rv]>*.is-in{
  opacity:1;transform:none;
  transition:opacity .35s cubic-bezier(.4,0,.6,1),
             transform .35s cubic-bezier(.4,0,.6,1);
  transition-delay:var(--rv-d,0ms);
}
/* 同一排一起进视口的，按顺序错开 20ms（苹果的阶梯值），最多到第 8 项 */
html.js [data-rv]>*:nth-child(2){--rv-d:20ms}
html.js [data-rv]>*:nth-child(3){--rv-d:40ms}
html.js [data-rv]>*:nth-child(4){--rv-d:60ms}
html.js [data-rv]>*:nth-child(5){--rv-d:80ms}
html.js [data-rv]>*:nth-child(6){--rv-d:100ms}
html.js [data-rv]>*:nth-child(7){--rv-d:120ms}
html.js [data-rv]>*:nth-child(8){--rv-d:140ms}
@media (prefers-reduced-motion:reduce){
  html.js [data-rv]>*{opacity:1;transform:none}
  html.js [data-rv]>*.is-in{transition:none;transition-delay:0ms}
}

/* ============================================================
   区块 —— 苹果的区块标题实测 32px/600（不是 24），常居中
   ============================================================ */
.sect{padding-block:var(--gap-section)}
.sect--sm{padding-block:clamp(48px,6vw,80px)}
.sect--alt{background:var(--bg-alt)}
.sect--dark{background:var(--bg-dark);color:var(--fg-inv)}
.sect--dark .sec-sub,.sect--dark p{color:var(--fg-inv-2)}
.sec-head{text-align:center;margin-bottom:var(--gap-lg)}
.sec-h{font-size:var(--fs-head);line-height:var(--lh-head);font-weight:600}
/* ★ 2026-10-12（用户："字体的深色比较更清楚，感觉我们的有点蒙蒙的"）：
   实测 apple.com.cn/mac/ 把文字色去重后 —— **卡片眉标 / 卡片标题 / 卡片正文 /
   区块副标题一律 `rgba(0,0,0,.88)`（近黑）**，灰（`rgb(110,110,115)`，正是我们的
   `--fg-2`）只出现在极个别一句，`rgba(0,0,0,.72)/.56` @12px 才给脚注与法务。
   ⇒ 苹果的层级【靠字号与字重】，不靠把正文调灰。
   我们这三处（区块副标题、页首导语、卡片描述行）都是【主文案】却用了灰 ⇒ 发灰。
   已改成 `--fg`（近黑）。灰仍留给真正的元信息：表头、数字标签、表单标签、页脚。 */
.sec-sub{color:var(--fg);font-size:var(--fs-sub);line-height:var(--lh-body);letter-spacing:var(--ls-body);margin-top:8px;max-width:58ch;text-wrap:balance}
.sec-head .sec-sub{margin-inline:auto}
/* （这里原来有个 .eyebrow 眉标 —— 实测苹果瓷砖里没有眉标，删掉。
     内页要小标题时用 .sec-sub 上面的 .sec-h 就够。） */

/* ---------- 网格 ---------- */
.grid{display:grid;gap:clamp(28px,4vw,48px)}
.grid>*{min-width:0}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1067px){ .g4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px){ .g3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:620px){ .g2,.g3,.g4{grid-template-columns:minmax(0,1fr)} }

/* ============================================================
   产品/案例磁贴 —— 苹果产品索引页的样子：
   大图 + 名称 24px/600 + 一句说明 + 一对胶囊。无边框、无投影。
   卡片整体可能是 <a>，必须把继承来的强调色压回正文色。
   ============================================================ */
.ptile{
  color:var(--fg);display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:6px;padding:0;background:transparent;text-decoration:none;
}
.ptile:hover{text-decoration:none}
/* ── 列表卡片悬停：整张轻微放大（用户 2026-10-12："苹果移到那里，图片框会变大一点"）
   实测 apple.com.cn/mac/ 的 FeatureCardPro：
     transform: scale(1.01613)（1.6%）｜ transition: transform .3s cubic-bezier(0,0,.5,1)
     卡片 372×475 → 378×483，**里面的图跟着变大 —— 不是图片单独放大**。
   ★ 只给列表卡片（.ptile）：首页瓷砖 hover 完全不动（下面 .tile 那条有实测依据）。
   ★ :focus-visible 一起挂 —— 键盘用户该拿到同样的反馈。
   ★★ 选择器为什么写这么长：揭示动效那条 `html.js [data-rv]>*.is-in` 的权重是 (0,3,1)，
      里面写着 `transform:none`；权重低于它的悬停规则会被【整条压住】，放大静默失效。
      这里的 (0,4,2) 显式压过去。本工程反复踩"权重被压"这一类，故留下依据。
   ★ 过渡沿用 .ptile 上已有的那条 .35s（揭示动效同一条），与苹果的 .3s 差 50ms，肉眼分不出。 */
a.ptile:hover,a.ptile:focus-visible,
html.js [data-rv]>a.ptile:hover,html.js [data-rv]>a.ptile:focus-visible{
  transform:scale(1.01613);
  /* ★ 2026-10-12 顺带修掉一个既有 bug：卡片整体是 <a>，而全局 `a:hover` 的权重
     (0,1,1) 高于 `.ptile` 的 (0,1,0) ⇒ 悬停时把产品名染成了强调蓝
     （实测 rgb(0,119,237)）。而 .ptile 上面那条注释本来就写着
     「必须把继承来的强调色压回正文色」—— 意图是对的，只是被 a:hover 压过去了。
     实测 apple.com.cn/mac/ 的卡片：hover 前后文字色**完全不变**（都是 rgba(0,0,0,.88)）。 */
  color:var(--fg);
}
.ptile__art{
  width:100%;margin-bottom:20px;
  background:radial-gradient(closest-side,rgba(128,128,128,.14),rgba(128,128,128,0));
}
/* ★ 与首页瓷砖同一条口径（用户 2026-10-10 拍板「先把无图瓷砖的高度收掉」，
   并且点名「比如产品」）：还没有真图时，图位不许再占满 4:3 ——
   九张卡就是九个空洞，这正是「与苹果相差很远」的观感来源。
   真图一进来（<img> 替掉 .plate）这条自动失效。
   特异度 (0,2,0) 高于 .plate--43 的 (0,1,0)，不必再逐档覆盖。 */
.ptile__art.plate{display:none}
/* ★ 2026-10-12：卡片眉标改用近黑。实测 apple.com.cn 的卡片眉标（"灵活的付款方案"）
   是 rgba(0,0,0,.88) —— **苹果的界面文字不用中灰**。 */
.ptile__meta{font-size:var(--fs-cap);color:var(--fg);letter-spacing:.04em}
.ptile__nm{font-size:var(--fs-head);line-height:var(--lh-head);font-weight:600}
/* 卡片描述行 = 主文案 ⇒ 近黑（见上面 .sec-sub 的说明）。
   ★ 同时去掉这里的 letter-spacing：`--ls-body` 的自述是「CJK 19~21px 实测 +0.23px；
     12~17px 与 40 以上都是 0」，而这一行是 17px ⇒ 本来就该是 0。 */
.ptile__tag{font-size:var(--fs-body);line-height:var(--lh-text);color:var(--fg);max-width:34ch}
/* ★ 卡片 CTA：苹果是【成对出现：蓝实心胶囊 + 蓝描边胶囊】——
   下面那张对比表把「单个 .link 带 ›」明确标成 bad，而那正是我们的
   产品/案例卡片一直用的（用户 2026-10-12："这二个蓝色不一样"）。
   ★★ 两种蓝是【有分工的】，不是一个色，别合并：
        --accent-btn #0071e3 → 实心胶囊（两套底色都是它）
        --accent     #0066cc → 浅底上的文字链与描边
      实测苹果卡片就是「实心胶囊 + 文字链」，两个蓝同时出现在同一张卡上。
   ★ 卡片整体已经是一个 <a>，里面【不能再嵌 <a>】（非法 HTML）⇒ 这里用
     `<span class="btn btn--pri">` / `<span class="btn btn--sec">`：
     尺寸与配色全部复用站内 .btn 那一份规则，只是不可单独点（整张卡是点击目标）。
   ★ 用 .btn--sm（8px 15px / lh18 / 高 36）：卡片里两颗大胶囊（44px）会把
     版面压沉；小号正是站内为这种场合准备的。
   ★ 原来那行 `.ptile__links .link{font-size:var(--fs-small)}` 已删 ——
     它把 CTA 压到 12px（比正文还小），是"看着不像能点"的主因。 */
.ptile__links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:14px}

/* ---------- 筛选条 ---------- */
.filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:var(--gap-lg)}
.filters button{
  /* ★ 2026-10-12：未选中项原来用 --fg-2（中灰 110）。实测 apple.com.cn 的筛选行
     （UL.TabNav_items：所有产品/笔记本电脑/台式电脑/显示器）未选中项是
     **rgb(29,29,31) 近黑**（而且 17px），选中项才是白字+黑胶囊。
     苹果那一页 11~17px 的小字去重后：.8 / .88 / .72 / .56 / #1d1d1f / #333336 ——
     `rgb(110,110,115)` 那档只出现一次（一句 "Think different."）。 */
  font:inherit;font-size:.875rem;color:var(--fg);background:transparent;
  border:1px solid var(--line);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;
  transition:color .2s,border-color .2s,background-color .2s;
}
.filters button:hover{color:var(--fg);border-color:var(--fg-3)}
.filters button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}

/* ───────────────────────────────────────────────────────────
   站内搜索（2026-10-12 用户："增加一个搜索功能在顶部菜单"）
   ★ 为什么放在 arch.html 而不是 extra.css：/search/ 页与导航下方的面板
     在页面上是**同一套 DOM/类名**，样式只有一份才不会漂。
     ★ 唯一例外是面板【自己的位置规则】—— 那段在 extra.css，
       因为面板是 JS 创建的，arch.html 里没有它（与客服小窗口同一个处境）。
   ★ 全站口径：不投影，圆角只用 --r-sm / --r-pill。
   ─────────────────────────────────────────────────────────── */
.srch__form{display:flex;gap:10px;align-items:center;max-width:640px;margin:0 auto}
.srch__in{
  flex:1 1 auto;min-width:0;font:inherit;font-size:var(--fs-body);
  color:var(--fg);background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r-pill);padding:11px 18px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.srch__in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.srch__go{
  flex:0 0 auto;font:inherit;font-size:var(--fs-small);cursor:pointer;
  background:var(--accent-btn);color:var(--bg);border:0;border-radius:var(--r-pill);
  padding:10px 20px;transition:background-color .2s ease;
}
.srch__go:hover{background:var(--accent-btn-h)}
.srch__stat,.srch__none,.srch__nojs{color:var(--fg-2);font-size:var(--fs-small);margin-top:18px}
.srch__out{max-width:820px;margin:0 auto;text-align:left}
.srch__hit{
  display:block;padding:14px 0;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--fg);
}
.srch__hit:hover{text-decoration:none;color:var(--fg)}
.srch__hitk{display:block;font-size:var(--fs-cap);color:var(--fg-2);letter-spacing:.04em}
.srch__hitt{display:block;font-size:var(--fs-body);font-weight:600;margin-top:2px}
.srch__hitx{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:var(--fs-small);color:var(--fg-2);margin-top:4px;
}
.srch__more{display:inline-block;margin-top:16px;font-size:var(--fs-small)}
/* ★ 栏目页里内嵌的搜索表单（产品中心用）：与页面头部同栏宽、居中，
   与下面的筛选条拉开距离。基础样式就是上面那套，这里只加"内嵌"这一点差异。 */
.srch__form--inline{margin:0 auto var(--gap-lg)}
@media (max-width:734px){
  .srch__form{flex-wrap:wrap}
  .srch__go{width:100%}
}

/* ---------- 表格 ---------- */
.tblbox{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:var(--fs-body)}
caption{text-align:left;color:var(--fg-3);font-size:var(--fs-cap);padding:0 0 12px}
th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--fg-2);font-size:var(--fs-cap);letter-spacing:.03em;white-space:nowrap}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px 24px;font-size:var(--fs-body)}
.kv dt{color:var(--fg-3);min-width:0}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}

/* ---------- 列表行（新闻 / 下载） ---------- */
.rows{margin:0}
.row{
  display:grid;grid-template-columns:112px minmax(0,1fr) 160px;gap:20px;
  align-items:baseline;padding:19px 0;border-bottom:1px solid var(--line);
  color:var(--fg);text-decoration:none;
}
.row:hover{color:var(--accent);text-decoration:none}
.row__d{font-size:var(--fs-cap);color:var(--fg-3);font-variant-numeric:tabular-nums}
.row__t{font-size:var(--fs-body);min-width:0;overflow-wrap:anywhere}
.row__c{font-size:var(--fs-cap);color:var(--fg-3);text-align:right}
@media (max-width:620px){
  .row{grid-template-columns:minmax(0,1fr);gap:5px;padding:17px 0}
  .row__c{text-align:left}
}

/* ---------- 交错图文 ---------- */
.spot{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:center}
.spot + .spot{margin-top:var(--gap-section)}
.spot__bd{display:flex;flex-direction:column;gap:var(--gap-sm)}
.spot:nth-child(even) .spot__media{order:-1}
@media (max-width:800px){
  .spot{grid-template-columns:minmax(0,1fr);gap:22px}
  .spot:nth-child(even) .spot__media{order:0}
  .spot + .spot{margin-top:56px}
}

/* ---------- 数据条 ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap-md);text-align:center}
.stats>*{min-width:0}
.stat__n{font-size:var(--fs-tile);line-height:var(--lh-title);font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}
.stat__l{color:var(--fg-2);font-size:var(--fs-cap);margin-top:8px}
@media (max-width:733px){ .stats{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ---------- 内页头 —— 苹果不用灰底条，就是一段居中的大字 ---------- */
.phead{padding-block:clamp(40px,6vw,84px) clamp(20px,3vw,36px);text-align:center}
/* ★ 2026-10-12：面包屑改用近黑 —— 它是【导航文字】，不是脚注。
   苹果把中灰留给脚注与法务，导航/界面文字一律近黑。 */
.crumb{font-size:var(--fs-cap);color:var(--fg);margin-bottom:16px}
.crumb a{color:var(--fg)}
.crumb a:hover{color:var(--accent)}
.phead h1{font-size:var(--fs-page);line-height:var(--lh-display);font-weight:600}
.phead p{color:var(--fg);font-size:var(--fs-sub);line-height:var(--lh-body);letter-spacing:var(--ls-body);margin-top:12px;max-width:58ch;margin-inline:auto}
/* ★ 只有「成段的批注」（设计稿里的「占位说明：…」）限宽；
   架构页那种整块说明不限。 */
p.note{max-width:62ch;margin-top:20px}
/* ★ 归位：正文栏里的批注贴【文字栏左边缘】，跟它解释的那一段对齐
   （原来一律居中，服务支持页底部那条就比上面的标题缩进一大截）；
   .phead 里那位是居中大标题的跟班，才居中。同特异度、后者胜。 */
.wrap > .note{margin-inline:0}
.phead .note{margin-inline:auto}
.wrap.center > .note{margin-inline:auto}   /* 批注跟随它所在那栏的对齐方式 */

/* ---------- 联系 ---------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px)}
@media (max-width:820px){ .contact{grid-template-columns:minmax(0,1fr)} }
.cblock{padding:24px 0;border-top:1px solid var(--line)}
.cblock:first-child{border-top:0;padding-top:0}
.cblock h3{font-size:var(--fs-cap);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);margin-bottom:14px}
.crow{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;padding:9px 0;align-items:baseline;margin:0}
.crow dt{font-size:var(--fs-cap);color:var(--fg-3)}
.crow dd{margin:0;font-size:var(--fs-body);line-height:var(--lh-text);overflow-wrap:anywhere}
@media (max-width:430px){ .crow{grid-template-columns:minmax(0,1fr);gap:2px;padding:11px 0} }
.form{display:grid;gap:16px}
.field{display:grid;gap:6px}
.field label{font-size:var(--fs-cap);color:var(--fg-2)}
.field input,.field textarea,.field select{
  font:inherit;font-size:var(--fs-body);color:var(--fg);background:var(--bg);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px;width:100%;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.field--full{grid-column:1/-1}
.form__2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:560px){ .form__2{grid-template-columns:minmax(0,1fr)} }

/* ---------- 时间线 ---------- */
.tl{list-style:none;margin:0;padding:0;border-left:1px solid var(--line);display:grid;gap:28px}
.tl li{padding-left:24px;position:relative}
.tl li::before{content:"";position:absolute;left:-4px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.tl__y{font-size:var(--fs-cap);color:var(--accent);letter-spacing:.04em}

/* ---------- 架构页 ---------- */
.cmp{width:100%;min-width:760px;font-size:.875rem}
.cmp th,.cmp td{padding:11px 14px}
.cmp td:nth-child(2){color:var(--fg);font-variant-numeric:tabular-nums}
.cmp td:nth-child(3){color:var(--fg-3)}
.cmp td.bad{color:#c2410c}
.arch-tree{
  font-family:var(--mono);font-size:.8125rem;line-height:1.9;
  background:var(--bg-alt);border-radius:var(--r-sm);padding:22px 24px;
  overflow-x:auto;white-space:pre;margin:0;
}
.arch-tree b{color:var(--accent);font-weight:600}
/* ---------- 批注（全站唯一出处：长相 + 字号） ----------
   ★ 为什么写成 `.note,p.note` 两条：.phead p 是 (0,1,1)，会把落在页头里的批注
     按正文规格渲染成 21px —— 跟正文一样大，就又变回「看起来就是页面正文」。
     `p.note` 这条与它同特异度、排在后面，才压得住；`.note` 这条管 div。
     （`:is(p,div).note` 也能，但这样更好读。）
   ★ 字号用 --fs-small 而不是 --fs-body：批注是给评审看的说明，不该跟正文抢。
   ★ 正式上线前把「占位说明：…」整段换成正式文案，这些规则一并删掉。 */
.note,p.note{
  border-left:2px solid var(--accent);background:var(--accent-soft);
  padding:14px 18px;border-radius:0 var(--r-sm) var(--r-sm) 0;
  /* ★ 2026-10-12：文字改用近黑（原来 --fg-2 中灰）。这里是页面说明，属于正文。 */
  font-size:var(--fs-small);line-height:1.6;color:var(--fg);text-align:left;
}
.note b{color:var(--fg)}

/* ---------- 底 ---------- */
/* ★ 页脚会横向溢出（实测 881~1067px 之间溢 43~63px）：
   `.foot__cols` 用的是 `minmax(0,1fr)`，格子本身能缩，但里面
   `.foot ul` 的隐式轨道是 `auto` = 以条目的 min-content 为下限，
   而 `placeholder@example.com` 这种长串断不开 ⇒ 轨道缩不下去，撑破整页。
   修法：`overflow-wrap:anywhere`（它会连 min-content 一起改小，
   `break-word` 不会）；`ul` 的轨道再显式给 `minmax(0,1fr)` 兜一道。 */
.foot{background:var(--bg-alt);color:var(--foot-link);font-size:var(--fs-cap);padding-block:clamp(2.5rem,4.5vw,3.5rem) 0;overflow-wrap:anywhere}
.foot__cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 24px;padding-bottom:clamp(2rem,3.5vw,2.5rem)}
.foot__cols>*{min-width:0}
.foot h4{font-size:var(--fs-cap);font-weight:600;margin:0 0 12px;color:var(--fg)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.foot li{min-width:0}
.foot a{color:var(--foot-link);font-size:var(--fs-cap)}
.foot a:hover{color:var(--accent)}
.foot__bar{
  border-top:1px solid var(--line);padding-block:18px;
  display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;
  color:var(--foot-legal);
}
@media (max-width:880px){ .foot__cols{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* ★ 手机上页脚原来掉成【单列】，五组链接竖着排 ⇒ 页脚高 938px（超过一屏）。
   改两列：高度砍一半，每列仍有约 165px 宽，12px 的字放得下。
   ★ 底部再加 76px padding：右下角「在线客服」悬浮按钮会盖住备案号那一行
     （实测截图里 "网站地图 · 后台管理" 被压住）。 */
@media (max-width:480px){
  .foot__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
  .foot__bar{padding-bottom:76px}
}
@media (max-width:880px){ .foot__bar{padding-bottom:76px} }
