/*! ui.css —— 由 scripts/build-css-bundles.py 自动拼接生成，请勿手改。
 *  拼接顺序（2026-10-18 P1-A）：
 *   1) shell-v3.css  sha256:3280f8187e965921
 *   2) inner-v3.css  sha256:85df88e815cf3a7d
 *  回滚：改 header 的 link 列表即可，源文件全部保留。
 */

/* ==== 源文件：shell-v3.css ==== */
/* ============================================================================
   shell-v3.css —— 全站外壳（导航 / 全屏菜单 / 页脚）
   2026-10-17
   ----------------------------------------------------------------------------
   只在 `_v3.flag` 存在时由 header-v3.php / footer-v3.php 加载。
   刻意只作用于 .v3nav / .v3menu / .v3foot 三个作用域：
   **不定义 :root 变量、不覆盖 .header / .footer / .btn 等既有全局类**，
   所以内页正文的既有样式一行都不受影响。

   ⚠ 导航高度直接复用 --header-h（72px），位置仍是 fixed —— 与旧 header 完全一致，
     因此所有内页的顶部留白、锚点偏移都不用改，也不会出现跳动。

   回滚：删掉 `_v3.flag` 即整体退回旧外壳（header.php / footer.php 有一行开关）。
   ========================================================================== */

/* ---------- 顶部导航 ---------- */
.v3nav{
  position:fixed;top:0;left:0;right:0;height:var(--header-h,72px);z-index:100;
  display:flex;align-items:center;gap:clamp(16px,2.4vw,34px);
  padding:0 clamp(16px,4vw,52px);
  background:linear-gradient(180deg,rgba(11,13,16,.92),rgba(11,13,16,.72));
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  border-bottom:1px solid var(--line-d);
  transition:background .3s var(--ease,ease),border-color .3s var(--ease,ease);
}
.v3nav.is-stuck{
  background:rgba(7,7,8,.94);
  border-bottom-color:var(--line-d-2);
}
.v3nav-brand{display:flex;align-items:center;gap:11px;flex:0 0 auto;text-decoration:none}
.v3nav-brand svg{height:34px;width:auto;display:block}
.v3nav-brand-txt{display:flex;flex-direction:column;line-height:1.05}
.v3nav-brand-txt > span:first-child{font-size:15px;letter-spacing:.14em;color:#F2F1EE}
.v3nav-brand-txt .en{font-size:9px;letter-spacing:.28em;color:#7C828B;margin-top:4px;white-space:nowrap}

.v3nav-main{display:flex;align-items:center;gap:clamp(14px,2vw,30px);margin-left:clamp(6px,2vw,26px)}
.v3nav-main a,.v3nav-main button{
  position:relative;text-decoration:none;color:#9AA1A9;font-size:13.5px;letter-spacing:.06em;
  padding:6px 0;transition:color .22s var(--ease,ease);
  background:none;border:0;color:#9AA1A9;font-family:inherit;font-size:13.5px;letter-spacing:.06em;
}
.v3nav-main a::after,.v3nav-main button::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#C9AF6C;
  transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease,ease);
}
.v3nav-main a:hover,.v3nav-main button:hover{color:#F2F1EE}
.v3nav-main a:hover::after,.v3nav-main button:hover::after{transform:scaleX(1)}
.v3nav-main a.is-active,.v3nav-main button.is-active{color:#C9AF6C}
.v3nav-main a.is-active::after,.v3nav-main button.is-active::after{transform:scaleX(1)}

.v3nav-tools{display:flex;align-items:center;gap:10px;margin-left:auto}

/* 音频工作室：刻意做成与其它按钮不同的形态 —— 描边 + 状态点 + ↗，
   一眼看出「这是另一条线」，但仍在首屏可点。 */
.v3nav-studio{
  display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 13px;
  border:1px solid rgba(201,175,108,.42);border-radius:4px;text-decoration:none;
  color:#E0C98A;font-size:12.5px;letter-spacing:.04em;white-space:nowrap;
  background:rgba(201,175,108,.06);
  transition:background .24s var(--ease,ease),border-color .24s var(--ease,ease);
}
.v3nav-studio:hover{background:rgba(201,175,108,.15);border-color:#C9AF6C}
.v3nav-studio .dot{
  width:5px;height:5px;border-radius:50%;background:#C9AF6C;flex:0 0 auto;
  box-shadow:0 0 0 3px rgba(201,175,108,.18);
}
.v3nav-studio svg{width:11px;height:11px;opacity:.75}

.v3nav-ico{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 10px;
  border:1px solid transparent;border-radius:4px;color:#9AA1A9;font-size:12.5px;
  transition:.22s var(--ease,ease);text-decoration:none;background:none;cursor:pointer;font-family:inherit;
}
.v3nav-ico:hover{color:#F2F1EE;border-color:rgba(201,175,108,.28);background:rgba(201,175,108,.06)}
.v3nav-ico svg{width:14px;height:14px}
.v3nav-ico kbd{
  font-family:var(--mono,ui-monospace,monospace);font-size:10px;color:#7C828B;
  border:1px solid rgba(201,175,108,.3);border-radius:2px;padding:0 4px;line-height:14px;
}
.v3nav-cta{
  display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:4px;
  border:1px solid rgba(201,175,108,.3);color:#F2F1EE;font-size:12.5px;text-decoration:none;
  transition:.22s var(--ease,ease);white-space:nowrap;
}
.v3nav-cta:hover{border-color:#C9AF6C;color:#C9AF6C}
.v3nav-menu{
  display:inline-flex;align-items:center;gap:9px;height:36px;padding:0 12px 0 14px;
  border:1px solid rgba(201,175,108,.3);border-radius:4px;color:#F2F1EE;font-size:12.5px;
  background:none;cursor:pointer;font-family:inherit;transition:.22s var(--ease,ease);
}
.v3nav-menu:hover{border-color:#C9AF6C;color:#C9AF6C}
.v3nav-bars{display:flex;flex-direction:column;gap:4px;width:15px}
.v3nav-bars i{display:block;height:1.4px;background:currentColor;transition:transform .3s var(--ease,ease)}
.v3nav-menu[aria-expanded="true"] .v3nav-bars i:first-child{transform:translateY(6.7px) rotate(45deg)}
.v3nav-menu[aria-expanded="true"] .v3nav-bars i:last-child{transform:translateY(-6.7px) rotate(-45deg)}
.v3nav-menu[aria-expanded="true"] .v3nav-bars i:nth-child(2){opacity:0}

/* ---------- 全屏菜单 ---------- */
.v3menu{
  position:fixed;inset:0;z-index:200;display:none;flex-direction:column;
  background:#070708;color:#F2F1EE;font-family:var(--sans,"PingFang SC","Microsoft YaHei",sans-serif);
}
.v3menu.is-open{display:flex;animation:v3Fade .26s ease}
@keyframes v3Fade{from{opacity:0}to{opacity:1}}
.v3menu::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 80% 4%,rgba(201,175,108,.09),transparent 62%);
}
.v3menu-head{
  display:flex;align-items:center;justify-content:space-between;height:var(--header-h,72px);
  padding:0 clamp(16px,4vw,52px);border-bottom:1px solid var(--line-d);
  position:relative;z-index:1;flex:0 0 auto;
}
.v3menu-brand{display:flex;align-items:center;gap:10px;color:#F2F1EE;text-decoration:none}
.v3menu-brand svg{height:26px;width:auto}
.v3menu-brand b{font-size:12.5px;letter-spacing:.22em;font-weight:600}
.v3menu-eyebrow{
  position:absolute;left:50%;transform:translateX(-50%);
  font-family:var(--mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.2em;color:#7C828B;
}
.v3menu-close{
  display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 13px;font-size:12.5px;
  border:1px solid rgba(201,175,108,.3);border-radius:4px;color:#F2F1EE;
  background:none;cursor:pointer;font-family:inherit;
}
.v3menu-close:hover{border-color:#C9AF6C;color:#C9AF6C}
.v3menu-close svg{width:12px;height:12px}

.v3menu-body{
  flex:1 1 auto;display:grid;grid-template-columns:210px minmax(0,1fr) 268px;gap:clamp(22px,4vw,60px);
  padding:clamp(26px,5vh,54px) clamp(16px,4vw,52px);max-width:1360px;width:100%;margin:0 auto;
  overflow:auto;align-content:center;align-items:start;position:relative;z-index:1;
}
.v3menu-cats{display:flex;flex-direction:column;border-left:1px solid var(--line-d)}
.v3mcat{
  display:flex;align-items:center;gap:11px;padding:13px 14px;font-size:14.5px;color:#9AA1A9;
  border-left:1px solid transparent;margin-left:-1px;text-align:left;background:none;
  cursor:pointer;font-family:inherit;transition:.2s var(--ease,ease);
}
.v3mcat em{font-family:var(--mono,monospace);font-style:normal;font-size:10px;color:#7C828B}
.v3mcat:hover{color:#F2F1EE;background:rgba(201,175,108,.05)}
.v3mcat.is-on{color:#C9AF6C;border-left-color:#C9AF6C;background:rgba(201,175,108,.07)}
.v3mcat.is-on em{color:#C9AF6C}

.v3menu-stage{min-width:0;display:grid;align-content:start}
/* 2026-10-23 修「切换分类时整块上下跳」：
   原来是 display:none/block —— 面板高度不同（技术 433px vs 其余 239px），
   一切换就把下面的内容顶上去又拉下来。改成所有面板叠在同一网格格里，
   用 visibility/opacity 切换，容器高度恒等于最高面板，位置不再跳动。 */
.v3mpanel{
  grid-area:1/1; display:block; visibility:hidden; opacity:0; pointer-events:none;
  transition:opacity .16s var(--ease,ease);
}
.v3mpanel.is-on{visibility:visible;opacity:1;pointer-events:auto}
.v3mnote{font-size:12.5px;color:#7C828B;margin:0 0 22px;letter-spacing:.02em}
.v3mgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(201,175,108,.14);
  border:1px solid var(--line-d)}
.v3mlink{
  background:#070708;padding:22px 20px 20px;display:flex;flex-direction:column;gap:5px;
  text-decoration:none;transition:.2s var(--ease,ease);
}
.v3mlink b{font-size:16.5px;font-weight:500;color:#F2F1EE}
.v3mlink span{font-size:12.5px;color:#7C828B;line-height:1.65}
.v3mlink:hover{background:#141417}
.v3mlink:hover b{color:#C9AF6C}

.v3menu-side{display:flex;flex-direction:column;gap:22px;border-left:1px solid var(--line-d);
  padding-left:clamp(18px,2vw,28px)}
.v3mside h4{
  font-family:var(--mono,monospace);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:#7C828B;margin:0 0 12px;font-weight:500;
}
.v3mside a{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#9AA1A9;
  padding:6px 0;text-decoration:none;transition:.2s}
.v3mside a:hover{color:#C9AF6C}
.v3mside p{margin:6px 0 0;font-size:11.5px;color:#7C828B}

/* 菜单里的工作室卡：给它独立的一块，不和主站栏目混在一起 */
.v3mstudio{
  border:1px solid rgba(201,175,108,.42);border-radius:6px;padding:16px;
  background:linear-gradient(160deg,rgba(201,175,108,.13),rgba(7,7,8,.2));
}
.v3mstudio .top{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.v3mstudio .dot{width:5px;height:5px;border-radius:50%;background:#C9AF6C;
  box-shadow:0 0 0 3px rgba(201,175,108,.18)}
.v3mstudio h4{font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.16em;
  color:#C9AF6C;margin:0;font-weight:500}
.v3mstudio b{display:block;font-size:14px;color:#F5EFE1;margin-bottom:6px}
.v3mstudio p{margin:0 0 12px;font-size:11.5px;line-height:1.7;color:#9AA1A9}
.v3mstudio .go{
  display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#E0C98A;
  text-decoration:none;border-top:1px solid var(--line-d-2);padding-top:10px;
}
.v3mstudio .go:hover{color:#F5EFE1}

/* ---------- 页脚 ---------- */
.v3foot{background:#070708;border-top:1px solid var(--line-d);color:#F2F1EE;
  font-family:var(--sans,"PingFang SC","Microsoft YaHei",sans-serif);
  padding:clamp(40px,6vh,68px) 0 0;margin-top:0}
.v3foot-shell{max-width:1360px;margin:0 auto;padding:0 clamp(16px,4vw,52px)}
.v3foot-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr);
  gap:clamp(26px,5vw,70px);padding-bottom:40px}
.v3foot-brand .logo{display:flex;align-items:center;gap:10px;margin-bottom:15px}
.v3foot-brand .logo svg{height:26px;width:auto}
.v3foot-brand .logo b{font-size:12.5px;letter-spacing:.22em;color:#9AA1A9;font-weight:500}
.v3foot-brand p{margin:0;font-size:12.5px;line-height:1.9;color:#7C828B}
.v3foot-brand p + p{margin-top:8px}
.v3foot-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.v3foot-nav h4{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:#7C828B;margin:0 0 12px;font-weight:500}
.v3foot-nav a{display:block;font-size:13px;color:#9AA1A9;padding:5px 0;text-decoration:none;transition:.2s}
.v3foot-nav a:hover{color:#C9AF6C}
.v3foot-nav a.is-studio{color:#C9AF6C}
.v3foot-base{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:18px 0 24px;border-top:1px solid var(--line-d);
  font-size:12px;color:#7C828B;
}
.v3foot-base .right{display:inline-flex;align-items:center;gap:10px}
.v3foot-base .admin{
  display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
  border-radius:50%;color:#7C828B;text-decoration:none;font-size:14px;line-height:1;
}
.v3foot-base .admin:hover{color:#C9AF6C;background:rgba(201,175,108,.12)}

/* ---------- 响应式 ---------- */
@media (max-width:1180px){
  .v3nav-main{gap:16px}
  .v3nav-studio span.txt{display:none}
  .v3nav-studio{padding:0 10px}
  .v3menu-body{grid-template-columns:180px minmax(0,1fr)}
  .v3menu-side{display:none}
}
@media (max-width:1000px){
  .v3nav-main{display:none}
  .v3nav-ico span{display:none}
  .v3nav-ico kbd{display:none}
  .v3nav-cta{display:none}
}
@media (max-width:760px){
  .v3nav{gap:10px;padding:0 14px}
  .v3nav-brand svg{height:28px}
  .v3nav-brand-txt > span:first-child{font-size:13.5px}
  .v3nav-brand-txt .en{display:none}
  .v3nav-menu > span:not(.v3nav-bars){display:none}
  .v3nav-menu{padding:0 12px}
  .v3nav-studio span.txt{display:inline}
  .v3nav-studio{padding:0 9px;font-size:11.5px}
  .v3menu-eyebrow{display:none}
  .v3menu-body{grid-template-columns:1fr;gap:18px;padding-top:20px}
  .v3menu-cats{flex-direction:row;flex-wrap:wrap;border-left:0;border-top:1px solid var(--line-d)}
  .v3mcat{padding:10px 11px;font-size:13px}
  .v3mgrid{grid-template-columns:1fr}
  .v3foot-top{grid-template-columns:1fr}
  .v3foot-nav{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .v3nav-studio span.txt{display:none}
  .v3nav-studio span.txt-s{display:inline}
}
.v3nav-studio .txt-s{display:none}

@media (prefers-reduced-motion:reduce){
  .v3menu.is-open{animation:none}
}

/* ---------- 型号搜索面板 ---------- */
html.v3-lock{overflow:hidden}
.v3search{
  position:fixed;left:0;right:0;top:0;z-index:210;display:none;flex-direction:column;
  background:rgba(10,10,12,.97);border-bottom:1px solid rgba(201,175,108,.2);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  max-height:100dvh;font-family:var(--sans,"PingFang SC","Microsoft YaHei",sans-serif);
}
.v3search.is-open{display:flex}
.v3search-box{
  display:flex;align-items:center;gap:13px;padding:24px clamp(16px,4vw,52px) 18px;
  max-width:1360px;width:100%;margin:0 auto;border-bottom:1px solid var(--line-d);
}
.v3search-box svg{width:18px;height:18px;color:#C9AF6C;flex:0 0 auto}
.v3search-box input{
  flex:1;background:none;border:0;outline:0;color:#F2F1EE;font-size:19px;
  font-family:inherit;letter-spacing:.01em;
}
.v3search-box input::placeholder{color:#7C828B}
.v3search-close{
  font-family:var(--mono,monospace);font-size:10.5px;color:#7C828B;background:none;
  border:1px solid rgba(201,175,108,.3);border-radius:3px;padding:4px 8px;cursor:pointer;
}
.v3search-close:hover{color:#C9AF6C;border-color:#C9AF6C}
.v3search-list{
  max-width:1360px;width:100%;margin:0 auto;padding:12px clamp(16px,4vw,52px) 30px;
  display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;align-content:start;
}
.v3sr-item{
  display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:4px;
  text-decoration:none;transition:background .18s;
}
.v3sr-item:hover{background:rgba(201,175,108,.09)}
.v3sr-m{font-family:var(--mono,monospace);font-size:12.5px;color:#C9AF6C;min-width:104px}
.v3sr-n{font-size:13px;color:#F2F1EE;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3sr-c{font-size:11px;color:#7C828B}
.v3sr-empty{grid-column:1/-1;padding:24px 4px;font-size:13px;color:#7C828B}
.v3sr-empty b{color:#9AA1A9;font-weight:500}
@media (max-width:760px){
  .v3search-list{grid-template-columns:1fr}
  .v3search-box input{font-size:16px}
}

/* ============================================================
   语言切换（2026-10-20 改版）
   ------------------------------------------------------------
   设计依据：W3C i18n《Selecting a language》+ 实测 MDN / GitHub
     · 完整原生语言名（中文 / English），不用「中 / EN」缩写
     · 纯文字，无框 —— 与主导航同一视觉语言，不与右侧按钮抢眼
     · 当前位置用下划线标识，而不是底色块
   位置：Logo 右侧，.v3nav-main 之前
   ⭐ 回滚：删掉本段即可（HTML 也一并删掉 .nav-lang）
   ============================================================ */
.nav-lang{
  display:flex; align-items:center; gap:0;
  margin-left:clamp(10px,2vw,26px);
  height:32px;
  font-size:12.5px; letter-spacing:.02em;
  white-space:nowrap;
}
.nav-lang a{
  display:inline-flex; align-items:center;
  height:100%; padding:0 2px;
  color:rgba(232,227,216,.50);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
.nav-lang a:hover{color:rgba(232,227,216,.92)}

/* 当前语言：金色 + 下划线 */
.nav-lang a.on{
  color:#C9AF6C;
  border-bottom-color:rgba(201,175,108,.55);
}
.nav-lang a:focus-visible{
  outline:2px solid #C9AF6C; outline-offset:2px; border-radius:2px;
}
.nav-lang-sep{
  color:rgba(232,227,216,.22);
  font-size:11px; padding:0 7px; user-select:none;
}

/* 窄屏：缩小字号，并避免与主导航挤在一起 */
@media (max-width:1080px){
  .nav-lang{margin-left:12px; font-size:12px}
  .nav-lang-sep{padding:0 5px}
}
@media (max-width:760px){
  .nav-lang{font-size:11.5px; margin-left:8px}
  .nav-lang-sep{padding:0 4px}
}

/* 2026-10-23：手机上手冲图标偏淡 —— 1.4px 细线在高 DPI 深底上几乎看不见。
   加粗到 2px 并提亮，hover/展开态仍走金色。 */
.v3nav-bars i{height:2px;background:currentColor;border-radius:1px}
.v3nav-menu{color:#F6F3EB}
.v3nav-bars{width:16px;gap:4.5px}
@media (max-width:760px){
  .v3nav-bars i{height:2.2px}
}

/* ==== 源文件：inner-v3.css ==== */
/* ============================================================================
   inner-v3.css —— 内页统一到首页的视觉语言（2026-10-17）
   ----------------------------------------------------------------------------
   首页（index-v2）的四个特征，这里逐条搬到内页：
     ① 大字号标题 + 紧行高          → 第 1 节
     ② 段落呼吸：区块上下留白很足    → 第 2 节
     ③ 段落头统一左对齐 + 发丝线     → 第 3 节
     ④ 卡片：1px 发丝边 + 小圆角，不用大阴影 → 第 4 节

   只改「排版与质感」，不动任何结构与文案；全部规则挂在 <main> 之下，
   且比各页自带样式表更晚加载（header-v3.php 里最后一行 link），因此能覆盖。
   回滚：删掉 header-v3.php 里 inner-v3.css 那一行即可。
   ========================================================================== */

/* ---------- 0. 容器与基准 ---------- */
main .container{max-width:1360px;padding-left:clamp(16px,4vw,52px);padding-right:clamp(16px,4vw,52px)}
main{font-size:15px;line-height:1.78}

/* ---------- 1. 标题层级 ---------- */
main h1{
  font-size:clamp(34px,4vw,58px)!important;
  line-height:1.16!important;letter-spacing:-.012em!important;font-weight:600!important;
}
main h2{
  font-size:clamp(24px,2.5vw,36px)!important;
  line-height:1.28!important;letter-spacing:-.008em!important;font-weight:600!important;
}
main h3{font-size:clamp(16px,1.2vw,19px)!important;line-height:1.45!important;font-weight:600!important}
main .section p{line-height:1.86}

/* ---------- 2. 区块呼吸 ---------- */
main > .section{padding-top:clamp(60px,9vh,116px);padding-bottom:clamp(60px,9vh,116px)}
main > .section + .section{border-top:1px solid var(--line-d)}
main > .section:last-of-type{border-bottom:0}

/* ---------- 3. 区块头：一律左对齐 ----------
   ⚠ 这些页面的样式表写成 `.ab-page .ab-head{text-align:center}`（0,2,0），
     所以这里必须带上页面根类（0,2,1）才压得住，光写 `main .ab-head` 会被盖掉。 */
main.ab-page .ab-head,
main.news-page .nw-filter-sec,
main.contact-page .ct-sec-head,
main .ab-head{
  text-align:left!important;
  padding-top:26px;
  border-top:1px solid var(--line-d);
}
main.ab-page .ab-head > *,
main.contact-page .ct-sec-head > *{margin-left:0;margin-right:auto}
main.ab-page .ab-head{display:block}

/* 区块标题上方一小段金色起笔线 */
main.ab-page .ab-head::before,
main.contact-page .ct-sec-head::before,
main .ab-head::before{
  content:"";display:block;width:34px;height:1px;background:#C9AF6C;
  margin:0 0 18px;opacity:.7;
}
main .section-title{text-align:inherit}

/* ---------- 4. 卡片质感 ---------- */
main .nw-card,
main .ct-info-card,
main .ab-cta,
main .p3-row,
main .p3-dir,
main .ab-shots figure,
main .contact-gallery figure{
  border-radius:8px!important;
  border:1px solid var(--line-d)!important;
  background:#0D0E11;
  transition:border-color .3s cubic-bezier(.22,.61,.36,1),transform .3s cubic-bezier(.22,.61,.36,1);
}
main .nw-card:hover,
main .p3-row:hover,
main .p3-dir:hover{
  border-color:rgba(201,175,108,.34)!important;
  transform:translateY(-2px);
}
main .nw-card-media img,
main .nw-card-media{overflow:hidden;border-radius:8px 8px 0 0}

/* ---------- 5. 首屏：左对齐 + 更克制 ---------- */
.page-hero .container,
.ct-hero .container{
  text-align:left;
  display:block;
  padding-top:clamp(28px,5vh,56px);
}
.page-hero h1,.ct-hero h1{margin-left:0;margin-right:auto;max-width:16em}
.page-hero h1 + *,.ct-hero h1 + *{margin-left:0}
/* 关于页原本居中排布，这里把整块内容拉回左列 */
.ab-hero .container,.nw-hero .container{align-items:flex-start;justify-content:flex-start}
.ab-hero-cta{justify-content:flex-start}

/* ---------- 6. 按钮统一 ---------- */
main .btn{border-radius:4px;letter-spacing:.02em}

/* ---------- 7. 跑马灯式小标签（统计条 / 事实条） ---------- */
main .stats-band{border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
main .stat-num{letter-spacing:-.01em}

/* ---------- 8. 产品页（p3）--------- */
main .p3-hero{padding-top:calc(var(--header-h) + clamp(40px,7vh,84px))}
main .p3-matrix-row,
main .p3-list{background:transparent}
main .p3-list-head{border-top:1px solid var(--line-d);padding-top:14px}

/* ---------- 9. 新闻页 ---------- */
main .nw-feature-media img{border-radius:8px}
main .nw-card{background:#0E0E10}

/* ---------- 10. 联系页 ---------- */
main .ct-form-card{background:#0D0E11;border-radius:8px;border:1px solid var(--line-d)}
main .ct-info-card{background:#0E0E10}

/* ---------- 11. 响应式 ---------- */
@media (max-width:760px){
  main h1{font-size:clamp(28px,7vw,38px)!important}
  main h2{font-size:clamp(21px,5.4vw,27px)!important}
  main > .section{padding-top:clamp(40px,6vh,64px);padding-bottom:clamp(40px,6vh,64px)}
}

/* ============================================================================
   公共内页首屏（产品中心 / 产品详情 / 关于 共用）
   原来只在 products-v3-page.css 里，关于页没加载它就会塌 —— 统一提到这一层。
   ========================================================================== */

.pv-hero{
  position:relative;overflow:hidden;
  padding:calc(var(--header-h,72px) + clamp(44px,7vh,84px)) 0 clamp(40px,6vh,64px);
  background:radial-gradient(ellipse 46% 42% at 76% 34%,rgba(201,175,108,.055) 0%,transparent 70%),
             linear-gradient(180deg,#06070A 0%,var(--ink) 70%,#07080B 100%);
  border-bottom:1px solid var(--line-d);
}
.pv-hero-grid{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(90deg,rgba(190,205,225,.055) 1px,transparent 1px);
  background-size:calc(100% / 6) 100%;
  mask-image:radial-gradient(ellipse 76% 70% at 46% 40%,#000 18%,transparent 82%);
  -webkit-mask-image:radial-gradient(ellipse 76% 70% at 46% 40%,#000 18%,transparent 82%);
}
.pv-hero .shell{position:relative}
.pv-hero h1{
  font-size:clamp(34px,4.1vw,60px);line-height:1.16;letter-spacing:-.012em;font-weight:600;
  color:#FAF6EC;margin:0;
}
.pv-hero h1 .l1{display:block}
.pv-hero h1 .l2{display:inline-block}
.pv-hero h1 .l2{
  background:linear-gradient(96deg,#F7EED6 0%,#DDBF83 48%,#B89459 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.pv-lead{
  margin:22px 0 0;max-width:600px;font-size:14.5px;line-height:1.9;color:var(--tx-d-2);
}
.pv-search{
  display:flex;align-items:center;gap:12px;max-width:460px;margin-top:26px;
  border:1px solid var(--line-d-2);border-radius:4px;background:rgba(10,10,12,.5);
  padding:0 16px;height:46px;transition:border-color .25s var(--ease);
}
.pv-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(201,175,108,.1)}
.pv-search svg{width:15px;height:15px;color:var(--tx-d-3);flex:0 0 auto}
.pv-search input{
  flex:1;background:none;border:0;outline:0;color:var(--tx-d);font-size:13.5px;font-family:inherit;
}
.pv-search input::placeholder{color:var(--tx-d-3)}
.pv-facts{
  display:flex;gap:clamp(20px,3.4vw,52px);flex-wrap:wrap;
  margin:clamp(28px,4vh,44px) 0 0;padding-top:20px;border-top:1px solid var(--line-d);
}
.pv-facts dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tx-d-3)}
.pv-facts dd{margin:5px 0 0;font-size:13px;color:var(--tx-d-2)}
.pv-facts b{font-family:var(--mono);font-size:17px;color:var(--tx-d);font-weight:500;margin-right:2px}


/* ============================================================================
   公共收尾 CTA 区（关于 / 联系 / 新闻 / 产品 共用）
   原来只写在 products-v3-page.css，其它页没加载 → 右栏塌成一列文字。
   ========================================================================== */

.pv-oem{background:linear-gradient(180deg,#0A0A0B,var(--ink))}
.pv-oem-inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:clamp(28px,5vw,72px);align-items:center}
.pv-oem h2{color:#F5EFE1;margin-top:14px}
.pv-oem-sub{margin:18px 0 0;max-width:520px;font-size:14px;line-height:1.9;color:var(--tx-d-2)}
.pv-oem-actions{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.pv-oem-points{display:flex;flex-direction:column;border-top:1px solid var(--line-d)}
.pv-oem-points li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;
  padding:14px 0;border-bottom:1px solid var(--line-d);align-items:baseline}
.pv-oem-points b{font-size:12.5px;color:var(--accent);font-weight:500;letter-spacing:.04em}
.pv-oem-points span{font-size:13px;color:var(--tx-d-2);line-height:1.7}


@media (max-width:820px){ .pv-oem-inner{grid-template-columns:1fr} }

/* ============================================================================
   干净产品图（uploads/products/pro/ 下同名文件）自动切换取景
   海报图 → 放大取景到设备；干净图 → contain 居中，不裁切
   ========================================================================== */
.pv-thumb.is-pro,
.pd-shot.is-pro,
.pd-rel-thumb.is-pro,
.m-thumb.is-pro{
  background-size:contain!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.pd-shot.is-pro{background-color:#0B0D10}
.dr-thumb.is-pro{background-size:contain!important;background-position:center!important}

/* ============================================================================
   产品图统一处理（2026-10-17）
   ----------------------------------------------------------------------------
   素材现状：16 张 1200×900 宣传海报，每张都印着品牌名、卖点段落和参数表，
   放进卡片后会和页面自己的参数「打架」，看着乱。

   不去改图（改图要重做 16 张，且以后换图又会乱），用三层统一的视觉外壳解决：
     ① 暗角：上/下/四角压暗，把贴边的图内文字吃掉
     ② 降饱和：让海报的暖金色退到背景，不与页面金色抢
     ③ 固定取景：同一套 background-size / position，设备在每个框里位置一致
   ========================================================================== */
.pv-thumb,.m-thumb,.pd-shot,.pd-rel-thumb,.dr-thumb{position:relative;overflow:hidden}
.pv-thumb::after,.m-thumb::after,.pd-shot::after,
.pd-rel-thumb::after,.dr-thumb::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:
    linear-gradient(180deg,
      rgba(11,13,16,.62) 0%,
      rgba(11,13,16,.10) 20%,
      rgba(11,13,16,0) 46%,
      rgba(11,13,16,.10) 70%,
      rgba(11,13,16,.70) 100%),
    radial-gradient(ellipse 84% 84% at 50% 46%,
      rgba(11,13,16,0) 46%, rgba(11,13,16,.62) 100%);
}
/* 干净图（pro/）不需要压暗边角，已经是对的素材 */
.pv-thumb.is-pro::after,.m-thumb.is-pro::after,.pd-shot.is-pro::after,
.pd-rel-thumb.is-pro::after,.dr-thumb.is-pro::after{background:radial-gradient(ellipse 90% 90% at 50% 50%,rgba(11,13,16,0) 60%,rgba(11,13,16,.35) 100%)}

/* 小方槽（列表/卡片缩略图）用 cover：竖长图在 88px 的框里 contain 会缩成一条，
   裁掉两侧空白反而更清楚。大图（详情主图）仍用 contain，保证整块板看得全。 */
.pv-thumb.is-pro,.m-thumb.is-pro,.dr-thumb.is-pro,.pd-rel-thumb.is-pro{
  background-size:cover!important;
  background-position:center!important;
}
