/**
 * 产品详情长页 · 专属样式（M1-02）
 *
 * 作用域：全部规则挂在 .flt-pdetail（single-flt_product.php 的 <main> 上），
 *   避免与 main.css 全局类（.quote / .info / .card / .crumb 等）撞车。
 *
 * 变量全部继承主题 main.css 的 :root；本文件唯一补的是 demo 长页自用的
 *   --ink（#0A1F44 深蓝）。若日后主题全局补 --ink，可删掉这条。
 *
 * 注意：
 *   1. 顶部 64px 留白让位 fixed nav（.nav 高 64）；admin-bar 登录态 +32 由
 *      body.admin-bar 规则追加。
 *   2. 吸顶条 .pnbar 的 sticky top = nav 高 64px（demo 是 top:0，因为 demo
 *      nav 不 fixed）；admin-bar 下 96px。
 *   3. #overview / #specs / #downloads / #inquiry 的 scroll-margin-top 已按
 *      nav+pnbar 高度校准（桌面 134px），避免锚点标题被吸顶条盖住。
 *   4. #overview .ov-content 内同时提供基础编辑器排版，以及 demo 营销样板
 *      （.ov-hero / .mod / .video / .stats / .pill / .kicker …）的作用域样式，
 *      供客户把 demo HTML 粘进「自定义 HTML」块时 1:1 呈现。
 *
 * @package FUNION LiteTrade
 */

.flt-pdetail {
	--ink: #0a1f44;
	background: var(--bg-2);
}

/* 覆盖 main.css 通用 section{padding:104px 0}（以及 v1.0.114 的
   `body:not(.home) section{padding:64px 0}`）：详情页各锚点区块
   （#overview / #specs / #downloads / #qa）的上下留白改由**内层**规则
   （.ov-content / .in）单独控制，避免 section 与内层叠加导致间隙翻倍。

   ── v1.0.125【Boss 实测 · 修正】必须排除 `.rel` 与 `.cta-band` ──
     · `.rel`（配套与同系列推荐）**自身就是节奏载体**（padding 写在 section 上）；
       本规则特异性 (0,2,1) > `.flt-pdetail .rel` (0,2,0) ⇒ 会把它的 32/56 **静默归零** ✗
       ⇒ 表现就是「相关推荐模块的边距没生效 / 与相邻区块不统一」（Boss 实测）✗
     · `.cta-band`（深色询盘通栏）的 54px/40px 内边距同样会被归零 ✗（同因）
   加两个 `:not()` 后本规则升到 (0,3,1)，排除项恢复自身 padding，其余仍为 0 ✓ */
.flt-pdetail section:not(.rel):not(.cta-band) {
	padding: 0;
}

/* 让位固定导航（.nav 高 64px；admin-bar 登录态 +32） */
body.single-flt_product .flt-pdetail {
	padding-top: 64px;
}
body.admin-bar.single-flt_product .flt-pdetail {
	padding-top: 96px;
}

/* =====================================================================
   首屏：面包屑 + 图库 + 采购面板
   ===================================================================== */
.flt-pdetail .detail {
	background: var(--bg-2);
}

.flt-pdetail .crumb {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--text-3);
	display: flex;
	gap: 8px;
	align-items: center;
	margin-bottom: 26px;
	flex-wrap: wrap;
}
.flt-pdetail .crumb a { color: var(--text-3); }
.flt-pdetail .crumb a:hover { color: var(--primary); }
.flt-pdetail .crumb span { opacity: .6; }

.flt-pdetail .dgrid {
	display: grid;
	grid-template-columns: 1fr .9fr;
	gap: 48px;
	align-items: start;
}

/* --- 图库 --- */
.flt-pdetail .gal .main {
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--border);
	aspect-ratio: 1 / 1;
	position: relative;
}
.flt-pdetail .gal .main img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity .2s;
}
.flt-pdetail .gal .main .badge {
	position: absolute;
	left: 14px;
	bottom: 14px;
	font-family: var(--mono);
	font-size: 10.5px;
	color: #fff;
	background: rgba(10, 31, 68, .72);
	border-radius: 4px;
	padding: 4px 10px;
	letter-spacing: .06em;
	backdrop-filter: blur(4px);
}
.flt-pdetail .gal .thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-top: 10px;
}
.flt-pdetail .gal .thumbs div {
	aspect-ratio: 1 / 1;
	border-radius: 6px;
	border: 1px solid var(--border);
	overflow: hidden;
	background: #fff;
	cursor: pointer;
	position: relative;
	opacity: .85;
	transition: opacity .15s, border-color .15s, box-shadow .15s;
}
.flt-pdetail .gal .thumbs div:hover { opacity: 1; }
.flt-pdetail .gal .thumbs div.on {
	border-color: var(--primary);
	box-shadow: 0 0 0 2px var(--primary-light);
	opacity: 1;
}
.flt-pdetail .gal .thumbs img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --- 深蓝采购面板 --- */
.flt-pdetail .quote {
	position: relative;
	background: linear-gradient(135deg, #0a1f44 0%, #0e3e9c 100%);
	border-radius: 10px;
	color: #fff;
	padding: 26px 28px;
	box-shadow: 0 18px 40px rgba(10, 31, 68, .22);
}
.flt-pdetail .quote .flt-cmp-add-corner {
	margin-left: auto;
}
.flt-pdetail .quote .row1 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}
.flt-pdetail .quote .rp { line-height: 1.1; }
.flt-pdetail .quote .rp small {
	display: block;
	font-size: 11.5px;
	color: #afc4ff;
	letter-spacing: .04em;
	font-family: var(--mono);
	margin-bottom: 4px;
}
.flt-pdetail .quote .rp b {
	font-family: var(--mono);
	font-size: clamp(26px, 3vw, 32px);
	font-weight: 700;
	letter-spacing: -0.01em;
}
/* 币种符号：小号高亮（对齐 demo #FFB47D）。由模板按 flt_split_price() 拆出后输出 <i> */
.flt-pdetail .quote .rp b i {
	font-style: normal;
	font-size: 15px;
	color: #ffb47d;
	margin-right: 3px;
}
.flt-pdetail .quote .rp b em {
	font-style: normal;
	font-size: 13px;
	color: #c9d6ff;
	font-weight: 400;
	margin-left: 4px;
}
.flt-pdetail .quote .cta-row {
	display: flex;
	gap: 10px;
	align-items: center;
	margin-top: 16px;
	flex-wrap: wrap;
}
.flt-pdetail .quote .row2 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255, 255, 255, .16);
	margin-top: 22px;
	padding-top: 18px;
	font-family: var(--mono);
}
.flt-pdetail .quote .row2 div {
	border-right: 1px solid rgba(255, 255, 255, .12);
	padding: 0 14px;
	min-width: 0;
}
.flt-pdetail .quote .row2 div:first-child { padding-left: 0; }
.flt-pdetail .quote .row2 div:last-child { border-right: none; padding-right: 0; }
.flt-pdetail .quote .row2 i {
	display: block;
	font-style: normal;
	font-size: 10.5px;
	color: #afc4ff;
	letter-spacing: .06em;
	margin-bottom: 3px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.flt-pdetail .quote .row2 b {
	font-size: 14px;
	font-weight: 600;
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
	align-items: center;
}
.flt-pdetail .quote .row2 .cert {
	font-family: var(--mono);
	font-size: 10px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 3px;
	padding: 1px 6px;
	font-weight: 600;
}

/* 补：quote 内的 .btn-invert 主题无全局定义，这里作用域内补一份 */
.flt-pdetail .quote .btn-invert {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .45);
}
.flt-pdetail .quote .btn-invert:hover { background: rgba(255, 255, 255, .12); }

/* --- 信息卡 --- */
.flt-pdetail .info {
	margin-top: 16px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 22px 24px;
}
.flt-pdetail .info h1 {
	font-size: clamp(20px, 2.2vw, 25px);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.35;
	margin: 0;
}
.flt-pdetail .info .sku {
	font-family: var(--mono);
	font-size: 11.5px;
	color: var(--text-3);
	margin: 6px 0 14px;
}
.flt-pdetail .info .lead {
	font-size: 14px;
	color: var(--text-2);
	line-height: 1.8;
	margin: 0 0 16px;
}
.flt-pdetail .info .ln {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 10px 0;
	border-top: 1px solid var(--divider);
	font-size: 13.5px;
	margin: 0;
}
.flt-pdetail .info .ln:first-of-type { border-top: none; }
.flt-pdetail .info .ln b {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--text-3);
	width: 64px;
	flex: 0 0 auto;
	font-weight: normal;
}
.flt-pdetail .info .ln .v { color: var(--text); font-weight: 500; }
.flt-pdetail .info .dl {
	margin-top: 14px;
	display: inline-flex;
	gap: 8px;
	align-items: center;
	font-weight: 600;
	font-size: 14px;
	color: var(--primary);
	border: 1px solid var(--primary);
	border-radius: 5px;
	padding: 9px 18px;
	transition: all .15s;
}
.flt-pdetail .info .dl:hover { background: var(--primary); color: #fff; }

/* =====================================================================
   Sticky 产品锚点条 .pnbar
   ===================================================================== */
.flt-pdetail .pnbar {
	position: sticky;
	top: 64px; /* nav 高 64；demo top:0 因 demo 无 fixed nav */
	z-index: 80;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--border);
	box-shadow: 0 4px 14px rgba(10, 31, 68, .05);
	margin-top: 52px;
}
body.admin-bar .flt-pdetail .pnbar { top: 96px; }

.flt-pdetail .pnbar .wrap {
	display: flex;
	align-items: center;
	gap: 20px;
	height: 58px;
}
.flt-pdetail .pnbar .pn-id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.flt-pdetail .pnbar .pn-id .code {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: var(--primary);
	border-radius: 4px;
	padding: 2px 7px;
	letter-spacing: .05em;
	white-space: nowrap;
}
.flt-pdetail .pnbar .pn-id .nm {
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.flt-pdetail .pnbar .pn-id .tagline {
	font-size: 11px;
	color: var(--text-3);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 230px;
}

/* ⚠️⚠️ v1.0.297：吸顶条必须**允许收缩** ✗✗（Boss 2026-09-22 英文站实测截图 ✓）
   现象 ✓：英文文案更长 ⇒「应用 / Application…」两段文字**互相压** ✗
      ＋ 右侧 tabs 文字**跨行**并与按钮叠 ✗
   根因 ✓：flex 项默认 `min-width:auto` ✗ ⇒ **内容多长就占多宽、不肯缩** ✗
     ⇒ `.nm` 与 `.tagline` 都是 `white-space:nowrap` ✗ ⇒ 直接**冲出 `.pn-id`** ✗
       ⇒ 与右侧 `.pntabs` / `.cta` 在同一行里**视觉重叠** ✓✓（典型 flex 溢出 ✓）
   ✅ 修法 ✓：给三个可缩项显式 `min-width:0` ＋ `flex:0 1 auto`
     ⇒ 空间不足时**按省略号收住** ✓（`.nm` / `.tagline` 早已有
        `overflow:hidden;text-overflow:ellipsis` ✓ 只是被 min-width 卡住发挥不了 ✗）
     ⇒ `.pntabs` 自身还有 `overflow-x:auto` ✓ ⇒ 实在放不下时**横向滚动** ✓ 不再压字 ✓
   ⚠️ 不改字号 / 不加高 ✓ ⇒ **中文站视觉零变化** ✓（中文更短 ⇒ 本来碰不到收缩 ✓）
   ⚠️ 未做浏览器实测 ✗（本机无 Playwright ✓ 已知 ✓）⇒ 部署后请给我一张英文产品页截图 ✓ 复验 ✓ */
.flt-pdetail .pnbar .pn-id { overflow: hidden; }
.flt-pdetail .pnbar .pn-id .nm { flex: 0 1 auto; min-width: 0; }
.flt-pdetail .pnbar .pn-id .tagline { flex: 0 1 auto; min-width: 0; }
.flt-pdetail .pnbar .pntabs { flex: 0 1 auto; min-width: 0; }
.flt-pdetail .pnbar .pntabs { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.flt-pdetail .pnbar .pntabs a {
	font-size: 13.5px;
	color: var(--text-2);
	padding: 17px 14px 15px;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	transition: color .15s;
}
.flt-pdetail .pnbar .pntabs a:hover { color: var(--primary); }
.flt-pdetail .pnbar .pntabs a.on { color: var(--primary); font-weight: 600; border-color: var(--primary); }
.flt-pdetail .pnbar .cta { margin-left: 6px; flex: 0 0 auto; }

/* =====================================================================
   #overview · 编辑器营销区（.ov-content 基础排版 + demo 营销样板支持）
   ===================================================================== */
.flt-pdetail .sec { background: #fff; }
/* v1.0.124【Boss 决策 · 方案 B】删除 `.sec .in{padding:40px 0 80px}` —— 这是一条**死规则**：
   #overview 的 markup 是 `.sec > .wrap > .ov-content`（见 single-flt_product.php），
   **并没有 `.in` 容器** ⇒ 该规则从未命中，实际生效的是下方 `.ov-content` 的内边距
   （原 60/80 ⇒ 顶部比其它区块多 20px ✗，这就是 Boss 看到的"上下边距不统一"）。 */

.flt-pdetail .ov-content {
	/* v1.0.126：上边距 32 → 56（避免被吸顶锚点条压住）；v1.0.127：下边距补回 56（恢复 88px 节奏）。
	   【Boss 线上手改 2026-09-13】上边距 56 → **74** —— 配合下方 `.pnbar .wrap{top:50px}`
	   （胶囊视觉下移 50px，需要更大的顶部空间）⇒ 首行仍落在胶囊下方、不被压住 ✓
	   ⚠️ 线上手改未走版本号（资源 `?ver` 仍是 1.0.127）⇒ 浏览器可能吃旧 CSS，需硬刷新/清缓存。 */
	padding: 74px 0 56px;
	max-width: 100%;
	font-size: 15px;
	line-height: 1.95;
	color: var(--text-2);
}
/* 基础编辑器排版
   v1.0.65 边界纪律（方案 B）：改用「> 直接子选择器」——只作用于正文里直接写的原生内容，
   区块内容（flt/hero|cta|section|metrics）都包在区块容器内、非直接子元素 → 永不命中，
   解决此前后代写法因特异性 (0,2,1) 高于 .flt-cta p (0,1,1) 而给区块内 p「补位」margin 的问题。
   兼容 WP 原生 Group / Column 包裹（原生段落常被包一层 div，否则会漏掉）。 */
.flt-pdetail .ov-content > h1,
.flt-pdetail .ov-content > h2,
.flt-pdetail .ov-content .wp-block-group > h1,
.flt-pdetail .ov-content .wp-block-group > h2 {
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
	line-height: 1.3;
	color: var(--text);
}
.flt-pdetail .ov-content > h3,
.flt-pdetail .ov-content .wp-block-group > h3 {
	font-size: 20px;
	font-weight: 700;
	color: var(--text);
	margin: 28px 0 10px;
	line-height: 1.4;
}
.flt-pdetail .ov-content > h4,
.flt-pdetail .ov-content .wp-block-group > h4 {
	font-size: 16px;
	font-weight: 700;
	color: var(--text);
	margin: 22px 0 8px;
}
.flt-pdetail .ov-content > p,
.flt-pdetail .ov-content .wp-block-group > p,
.flt-pdetail .ov-content .wp-block-column > p { margin: 0 0 14px; }
.flt-pdetail .ov-content > ul,
.flt-pdetail .ov-content > ol,
.flt-pdetail .ov-content .wp-block-group > ul,
.flt-pdetail .ov-content .wp-block-group > ol { margin: 0 0 16px; padding-left: 22px; }
.flt-pdetail .ov-content > ul > li,
.flt-pdetail .ov-content > ol > li { margin-bottom: 6px; }
.flt-pdetail .ov-content figure {
	margin: 26px 0;
	border: 1px solid var(--border);
	border-radius: 10px;
	overflow: hidden;
	background: var(--bg-2);
}
.flt-pdetail .ov-content figure img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.flt-pdetail .ov-content figcaption {
	font-family: var(--mono);
	font-size: 10.5px;
	color: var(--text-3);
	text-align: center;
	padding: 7px 10px;
	border-top: 1px solid var(--divider);
	background: #fff;
}
.flt-pdetail .ov-content blockquote {
	margin: 22px 0;
	padding: 16px 20px;
	border-left: 3px solid var(--primary);
	background: var(--primary-soft);
	border-radius: 0 8px 8px 0;
	color: var(--ink);
}
/* v1.0.77：正文链接去下划线（Boss：CTA 区链接带下划线不美观），hover 时再出现作为反馈
   v1.0.78：hover 规则加 :not(.btn) —— 按钮同为 a 元素，会把下划线带到按钮文字上（Boss 截图复现）
   v1.0.84【根治】：基础规则一并加 :not(.btn) —— 原规则特异性 (0,2,1) 压过 main.css 的
   `.btn-primary{background:var(--accent);color:#0F172A}` (0,1,0)，把内嵌区块（flt/hero、flt/cta 等）
   的橙底按钮文字染成主题蓝 #014dff（Boss 截图复现）。与 v1.0.78 修下划线**同一手法**：
   一处隔离「正文链接色」与「按钮色」两类元素，避免今后每新增一个区块都要单独打补丁。
   （全站排查：文章 .bsv-prose / 案例 .content 均无裸 a 规则，故此为唯一污染源。） */
.flt-pdetail .ov-content a:not(.btn) { color: var(--primary); text-decoration: none; }
.flt-pdetail .ov-content a:not(.btn):hover { text-decoration: underline; }
.flt-pdetail .ov-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	font-size: 14px;
}
.flt-pdetail .ov-content th,
.flt-pdetail .ov-content td {
	border: 1px solid var(--border);
	padding: 9px 12px;
	text-align: left;
}
.flt-pdetail .ov-content th { background: var(--bg-2); color: var(--ink); }

/* demo 营销样板（用于「自定义 HTML」块 1:1 复刻 demo） */
.flt-pdetail .ov-content .ov-hero { padding: 0 0 30px; border-bottom: 1px solid var(--divider); margin-bottom: 0; }
.flt-pdetail .ov-content .ov-hero .kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--primary);
}
.flt-pdetail .ov-content .ov-hero .kicker::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--primary);
	box-shadow: 0 0 0 4px rgba(1, 77, 255, .14);
}
.flt-pdetail .ov-content .ov-hero h2 { margin-top: 10px; }
.flt-pdetail .ov-content .ov-hero .sub { font-size: 15px; color: var(--text-2); max-width: 720px; }
.flt-pdetail .ov-content .pill { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.flt-pdetail .ov-content .pill span {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--ink);
	background: var(--primary-soft);
	border: 1px solid #dce5ff;
	border-radius: 20px;
	padding: 6px 14px;
}
.flt-pdetail .ov-content .pill span::before { content: "✓ "; color: var(--primary); font-weight: 700; }
.flt-pdetail .ov-content .mod {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	padding: 46px 0;
	border-top: 1px solid var(--divider);
	margin: 0;
}
.flt-pdetail .ov-content .mod.flip .fig { order: 2; }
.flt-pdetail .ov-content .mod .fig {
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--border);
	background: var(--bg-2);
	transition: box-shadow .2s;
}
.flt-pdetail .ov-content .mod .fig:hover { box-shadow: 0 16px 34px rgba(10, 31, 68, .1); }
.flt-pdetail .ov-content .mod .fig img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.flt-pdetail .ov-content .mod .fig figcaption {
	font-family: var(--mono);
	font-size: 10.5px;
	color: var(--text-3);
	text-align: center;
	padding: 7px 10px;
	border-top: 1px solid var(--divider);
	background: #fff;
}
.flt-pdetail .ov-content .mod h3 { margin-bottom: 12px; }
.flt-pdetail .ov-content .mod h3 i {
	font-style: normal;
	color: var(--primary);
	font-family: var(--mono);
	font-size: 12px;
	margin-right: 8px;
	vertical-align: 2px;
}
.flt-pdetail .ov-content .mod .tag {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--primary);
	background: var(--primary-light);
	display: inline-block;
	padding: 3px 10px;
	border-radius: 4px;
	margin-bottom: 14px;
	letter-spacing: .04em;
}
.flt-pdetail .ov-content .video {
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--border);
	position: relative;
	background: var(--dark);
}
.flt-pdetail .ov-content .video .ratio {
	aspect-ratio: 16 / 8.5;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 14px;
	color: #fff;
	background: linear-gradient(120deg, #0a1f44, #0e3e9c);
}
.flt-pdetail .ov-content .video .play {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--accent);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(255, 106, 0, .35);
	transition: transform .15s;
}
.flt-pdetail .ov-content .video .play:hover { transform: scale(1.07); }
.flt-pdetail .ov-content .video .play svg { margin-left: 3px; }
.flt-pdetail .ov-content .video .cap {
	font-size: 13px;
	color: #c9d6ff;
	text-align: center;
	padding: 0 18px;
	line-height: 1.8;
}
.flt-pdetail .ov-content .video .note {
	position: absolute;
	right: 14px;
	bottom: 12px;
	font-family: var(--mono);
	font-size: 10px;
	color: #afc4ff;
	letter-spacing: .05em;
}
.flt-pdetail .ov-content .stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	padding: 42px 0;
	border-top: 1px solid var(--divider);
}
.flt-pdetail .ov-content .stats .s {
	background: var(--bg-2);
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 22px 20px;
	transition: border-color .15s;
}
.flt-pdetail .ov-content .stats .s:hover { border-color: #c9d6ff; }
.flt-pdetail .ov-content .stats .s b {
	display: block;
	font-family: var(--mono);
	font-size: clamp(22px, 2.4vw, 29px);
	color: var(--ink);
	letter-spacing: -0.02em;
	line-height: 1.1;
}
.flt-pdetail .ov-content .stats .s b em { font-style: normal; color: var(--primary); font-size: 15px; }
.flt-pdetail .ov-content .stats .s i {
	font-style: normal;
	font-size: 12.5px;
	color: var(--text-2);
	display: block;
	margin-top: 6px;
}

/* =====================================================================
   #specs
   ===================================================================== */
.flt-pdetail .specs { background: var(--bg-2); }
.flt-pdetail .specs .in { padding: 32px 0 56px; }

.flt-pdetail .shead { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 26px; }
.flt-pdetail .shead h2 {
	font-size: clamp(22px, 2.4vw, 27px);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
}
.flt-pdetail .shead .lnk {
	margin-left: auto;
	font-family: var(--mono);
	font-size: 12px;
	color: var(--text-3);
}

.flt-pdetail .spec-body {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 26px;
	align-items: start;
}
/* 只渲染一张卡（无亮点 / 无参数表）时整卡占满 */
.flt-pdetail .spec-body .card:only-child { grid-column: 1 / -1; }

.flt-pdetail .card { background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: 26px 28px; }
.flt-pdetail .card h3 {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 16px;
	display: flex;
	align-items: center;
	gap: 9px;
	color: var(--text);
}
.flt-pdetail .card h3 i {
	font-style: normal;
	font-family: var(--mono);
	font-size: 11px;
	color: var(--primary);
	background: var(--primary-light);
	padding: 3px 8px;
	border-radius: 4px;
	letter-spacing: .05em;
}
.flt-pdetail .card .hl { list-style: none; margin: 0; padding: 0; }
.flt-pdetail .card .hl li {
	display: flex;
	gap: 14px;
	padding: 13px 0;
	border-bottom: 1px dashed var(--divider);
	font-size: 14px;
	color: var(--text-2);
	line-height: 1.7;
}
.flt-pdetail .card .hl li:last-child { border-bottom: none; }
.flt-pdetail .card .hl .no {
	font-family: var(--mono);
	font-weight: 700;
	color: var(--primary);
	flex: 0 0 auto;
	font-size: 12px;
	padding-top: 2px;
}
.flt-pdetail .card .hl b { color: var(--text); font-weight: 600; }
.flt-pdetail .card.spec table { width: 100%; border-collapse: collapse; }
.flt-pdetail .card.spec tr { border-bottom: 1px solid var(--divider); }
.flt-pdetail .card.spec tr:last-child { border-bottom: none; }
.flt-pdetail .card.spec th,
.flt-pdetail .card.spec td {
	padding: 10px 4px;
	text-align: left;
	font-size: 13px;
	vertical-align: top;
	line-height: 1.55;
}
.flt-pdetail .card.spec th {
	font-family: var(--mono);
	font-weight: 600;
	color: var(--text-3);
	width: 104px;
	white-space: nowrap;
}
.flt-pdetail .card.spec td { color: var(--text); word-break: break-word; }
.flt-pdetail .certline {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--divider);
}
.flt-pdetail .certline .lab {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--text-3);
	letter-spacing: .05em;
	margin-bottom: 8px;
}
.flt-pdetail .certline .chips { display: flex; gap: 8px; flex-wrap: wrap; }
.flt-pdetail .certline .chips span {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 700;
	color: var(--primary);
	background: var(--primary-light);
	border: 1px solid #d8e3ff;
	border-radius: 4px;
	padding: 3px 9px;
	letter-spacing: .04em;
}

/* =====================================================================
   #downloads
   ===================================================================== */
.flt-pdetail .down { background: #fff; }
.flt-pdetail .down .in { padding: 32px 0 56px; }
.flt-pdetail .down .dhead { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.flt-pdetail .down .dhead h2 {
	font-size: clamp(22px, 2.4vw, 27px);
	font-weight: 700;
	margin: 0;
}
.flt-pdetail .down .dhead .cnt {
	margin-left: auto;
	font-family: var(--mono);
	font-size: 12px;
	color: var(--text-3);
}
.flt-pdetail .drow {
	display: flex;
	align-items: center;
	gap: 20px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 18px 22px;
	margin-bottom: 12px;
	transition: border-color .15s, box-shadow .15s;
}
.flt-pdetail .drow:hover { border-color: var(--primary); box-shadow: 0 8px 20px rgba(1, 77, 255, .08); }
.flt-pdetail .drow .ext {
	flex: 0 0 auto;
	font-family: var(--mono);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .04em;
	padding: 7px 9px;
	border-radius: 5px;
}
.flt-pdetail .ext-pdf { background: #ffeee2; color: #c2410c; }
.flt-pdetail .ext-zip { background: #ede9fe; color: #5b21b6; }
.flt-pdetail .ext-doc { background: #e0f2fe; color: #0369a1; }
.flt-pdetail .ext-file { background: var(--bg-2); color: var(--text-3); }
.flt-pdetail .drow .dtt { flex: 1; min-width: 0; }
.flt-pdetail .drow .dtt b { display: block; font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.4; }
.flt-pdetail .drow .dtt span {
	font-size: 12px;
	color: var(--text-3);
	font-family: var(--mono);
	display: block;
	margin-top: 2px;
}
.flt-pdetail .drow .dl2 {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--primary);
	padding: 8px 14px;
	border: 1px solid var(--border);
	border-radius: 5px;
	transition: all .15s;
}
.flt-pdetail .drow .dl2:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

/* =====================================================================
   配套与同系列推荐
   ===================================================================== */
.flt-pdetail .rel { padding: 32px 0 56px; background: var(--bg-2); }
.flt-pdetail .rel .rhead { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.flt-pdetail .rel .rhead h2 {
	font-size: clamp(22px, 2.4vw, 27px);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--text);
}
.flt-pdetail .rel .rhead .cnt {
	margin-left: auto;
	font-family: var(--mono);
	font-size: 12px;
	color: var(--text-3);
}
.flt-pdetail .rel .prod-grid { padding-top: 0; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* =====================================================================
   询盘 CTA
   ===================================================================== */
.flt-pdetail .cta-band { background: var(--dark); color: #fff; text-align: center; padding: 54px 20px; }
.flt-pdetail .cta-band h3 { font-size: clamp(20px, 2.6vw, 25px); font-weight: 700; margin: 0 0 8px; }
.flt-pdetail .cta-band p { color: #afc4ff; font-size: 14px; margin: 0 0 22px; }
.flt-pdetail .cta-band .btn { margin-top: 4px; }

/* =====================================================================
   移动端底部询盘条 .mbar（默认隐藏）
   ===================================================================== */
.flt-pdetail .mbar { display: none; }

/* =====================================================================
   断点适配
   ===================================================================== */
@media (max-width: 1023px) {
	.flt-pdetail .dgrid { grid-template-columns: 1fr; gap: 30px; }
	.flt-pdetail .spec-body { grid-template-columns: 1fr; }
	.flt-pdetail .ov-content .mod { grid-template-columns: 1fr; gap: 24px; }
	.flt-pdetail .ov-content .mod.flip .fig { order: 0; }
	.flt-pdetail .ov-content .stats { grid-template-columns: repeat(2, 1fr); }
	.flt-pdetail .pnbar .pn-id .tagline { display: none; }
	.flt-pdetail .rel .prod-grid { grid-template-columns: repeat(2, 1fr); }
}

/* 锚点让位（基础层，桌面）：nav 64 + pnbar 58 + 余量 */
.flt-pdetail #overview,
.flt-pdetail #specs,
.flt-pdetail #downloads,
.flt-pdetail #qa,
.flt-pdetail #inquiry { scroll-margin-top: 134px; }
body.admin-bar .flt-pdetail #overview,
body.admin-bar .flt-pdetail #specs,
body.admin-bar .flt-pdetail #downloads,
body.admin-bar .flt-pdetail #qa,
body.admin-bar .flt-pdetail #inquiry { scroll-margin-top: 166px; }

@media (max-width: 767px) {
	/* 锚点偏移加大（吸顶条两行更高） */
	.flt-pdetail #overview,
	.flt-pdetail #specs,
	.flt-pdetail #downloads,
	.flt-pdetail #qa,
	.flt-pdetail #inquiry { scroll-margin-top: 172px; }
	body.admin-bar .flt-pdetail #overview,
	body.admin-bar .flt-pdetail #specs,
	body.admin-bar .flt-pdetail #downloads,
	body.admin-bar .flt-pdetail #qa,
	body.admin-bar .flt-pdetail #inquiry { scroll-margin-top: 204px; }

	.flt-pdetail .detail { padding: 10px 0 0; }
	.flt-pdetail .crumb { font-size: 11px; margin-bottom: 18px; }

	/* 图库横滑 */
	.flt-pdetail .gal .main { aspect-ratio: 4 / 3; border-radius: 6px; }
	.flt-pdetail .gal .thumbs {
		display: flex;
		overflow-x: auto;
		gap: 8px;
		margin-top: 8px;
		scrollbar-width: none;
		padding-bottom: 2px;
	}
	.flt-pdetail .gal .thumbs::-webkit-scrollbar { display: none; }
	.flt-pdetail .gal .thumbs div { flex: 0 0 68px; aspect-ratio: 1 / 1; border-radius: 5px; }

	/* 报价面板：紧凑 + 按钮全宽 */
	.flt-pdetail .quote { padding: 20px; }
	.flt-pdetail .quote .row1 { align-items: center; gap: 12px; }
	.flt-pdetail .quote .rp b { font-size: 26px; }
	.flt-pdetail .quote .cta-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin-top: 14px; }
	.flt-pdetail .quote .cta-row .btn { padding: 12px 8px; font-size: 14px; width: 100%; }
	/* v1.0.37 去重：CTA 收敛到底部 mbar 双按钮，蓝卡不再重复 */
	.flt-pdetail .quote .cta-row { display: none; }
	.flt-pdetail .quote .row2 { grid-template-columns: 1fr 1fr; gap: 14px 0; padding-top: 16px; margin-top: 18px; }
	.flt-pdetail .quote .row2 div { border: none; padding: 0; }
	.flt-pdetail .info { padding: 18px; }
	.flt-pdetail .info .lead { font-size: 13.5px; }
	.flt-pdetail .info .ln { font-size: 13px; }
	.flt-pdetail .info .ln b { width: 56px; }

	/* 吸顶条：id 行 + tabs 行换行 */
	.flt-pdetail .pnbar { margin-top: 30px; }
	.flt-pdetail .pnbar .wrap { height: auto; flex-wrap: wrap; gap: 0; padding: 0 18px; }
	.flt-pdetail .pnbar .pn-id { height: 50px; order: 1; flex: 1; min-width: 0; }
	.flt-pdetail .pnbar .pn-id .nm { font-size: 13.5px; }
	.flt-pdetail .pnbar .cta { order: 2; margin-left: 0; }
	.flt-pdetail .pnbar .pntabs {
		order: 3;
		width: 100%;
		overflow-x: auto;
		scrollbar-width: none;
		border-top: 1px solid var(--divider);
		margin-left: 0;
	}
	.flt-pdetail .pnbar .pntabs::-webkit-scrollbar { display: none; }
	.flt-pdetail .pnbar .pntabs a { padding: 10px 14px 9px; font-size: 13px; }

	/* 登录态 admin-bar 下顶部留白过大，移动端收窄 */
	body.admin-bar.single-flt_product .flt-pdetail { padding-top: 8px; }

	/* 营销区 */
	/* v1.0.124：`.ov-content` 的 ≤1023 值已并入下方统一组（28/40）⇒ 删除本条重复 */
	.flt-pdetail .ov-content .ov-hero { padding-bottom: 24px; }
	.flt-pdetail .ov-content .mod { padding: 30px 0; }
	.flt-pdetail .ov-content .mod p { font-size: 14px; }
	.flt-pdetail .ov-content .video .ratio { aspect-ratio: 16 / 9; }
	.flt-pdetail .ov-content .stats { gap: 10px; padding: 28px 0; }
	.flt-pdetail .ov-content .stats .s { padding: 16px 14px; }
	.flt-pdetail .ov-content .stats .s b { font-size: 20px; }
	.flt-pdetail .ov-content .stats .s i { font-size: 11px; }

	/* v1.0.124（方案 B）：≤1023 一并收紧，并把 #overview（.ov-content）与相关推荐（.rel）
	   纳入同一组 —— 原先 .ov-content 不在组里、.rel 又单独写 70 ⇒ 同页三套值 ✗ */
	.flt-pdetail .ov-content,
	.flt-pdetail .specs .in,
	.flt-pdetail .down .in,
	.flt-pdetail .qa .in,
	.flt-pdetail .rel { padding: 28px 0 40px; }
	.flt-pdetail .spec-body { gap: 18px; }
	.flt-pdetail .card { padding: 20px 18px; }
	.flt-pdetail .card.spec th { width: 92px; font-size: 12px; }
	.flt-pdetail .card.spec td { font-size: 12px; }

	.flt-pdetail .drow { flex-wrap: wrap; gap: 10px; padding: 14px; }
	.flt-pdetail .drow .dtt { flex: 1 0 calc(100% - 110px); }
	.flt-pdetail .drow .dl2 { width: 100%; justify-content: center; }

	/* v1.0.124：`.rel` 的单独断点值（32/70）已并入上方统一组（28/40）⇒ 删除 */
	.flt-pdetail .rel .prod-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
	.flt-pdetail .cta-band { padding: 40px 20px; }
	.flt-pdetail .shead .lnk { margin-left: 0; }

	/* 底部询盘条（v1.0.37 起为双按钮：普通询盘 / 批量价；参考价由顶部蓝卡承载） */
	.flt-pdetail .mbar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		background: rgba(255, 255, 255, .96);
		backdrop-filter: blur(10px);
		border-top: 1px solid var(--border);
		box-shadow: 0 -6px 20px rgba(10, 31, 68, .08);
		padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
		align-items: center;
		gap: 8px;
	}
	.flt-pdetail .mbar .mb-a {
		flex: 1 1 0;
		min-width: 0;
		justify-content: center;
		text-align: center;
		padding: 12px 8px;
		font-size: 14px;
		border-radius: 6px;
		white-space: nowrap;
	}
	/* 次级「获取批量价」：白底描边（区别于主按钮的实心询盘） */
	.flt-pdetail .mbar .mb-bulk {
		background: #fff;
		color: var(--primary);
		border: 1px solid var(--primary);
	}
	.flt-pdetail .mbar .mb-bulk:hover {
		background: var(--primary-soft);
		color: var(--primary);
	}

	/* 页脚垫高，避免被 fixed 询盘条盖住 */
	body.single-flt_product .flt-pdetail ~ footer {
		padding-bottom: calc(76px + env(safe-area-inset-bottom));
	}

	/* 加入对比后底部 .mbar 与 .flt-tray 同时 fixed 会互相遮挡，隐藏 .mbar 让位 */
	body.single-flt_product.has-cmp-tray .mbar { display: none; }
	body.single-flt_product.has-cmp-tray .flt-pdetail ~ footer { padding-bottom: 0; }
}

@media (max-width: 480px) {
	.flt-pdetail .rel .prod-grid { grid-template-columns: 1fr; }
}

/* 注（v1.0.125）：区块节奏的归零规则只在**文件顶部那一条** ——
   `.flt-pdetail section:not(.rel):not(.cta-band){padding:0}`（已排除 .rel / .cta-band）。
   这里**不再重复声明**，避免又出现"两处定义、特性性互相盖"的老问题（v1.0.124 的教训）。 */


/* =====================================================================
   产品问答 #qa（FAQ 手风琴，v1.0.21）
   ===================================================================== */
.flt-pdetail .qa { background: #fff; }
.flt-pdetail .qa .in { padding: 32px 0 56px; }
.flt-pdetail .qa .qhead { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.flt-pdetail .qa .qhead h2 { font-size: clamp(22px, 2.4vw, 27px); font-weight: 700; margin: 0; }
.flt-pdetail .qa .qhead .cnt { margin-left: auto; font-family: var(--mono); font-size: 12px; color: var(--text-3); }
.flt-pdetail .qa-item {
	border: 1px solid var(--border);
	border-radius: 10px;
	background: #fff;
	margin-bottom: 12px;
	overflow: hidden;
}
.flt-pdetail .qa-item summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 17px 20px;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}
.flt-pdetail .qa-item summary::-webkit-details-marker { display: none; }
.flt-pdetail .qa-item summary:hover,
.flt-pdetail .qa-item[open] summary { background: var(--bg-2); }
.flt-pdetail .qa-item summary .q { flex: 1; min-width: 0; font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.5; }
.flt-pdetail .qa-item .ic { position: relative; flex: 0 0 15px; height: 15px; color: var(--primary); }
.flt-pdetail .qa-item .ic::before,
.flt-pdetail .qa-item .ic::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	background: currentColor;
	border-radius: 2px;
}
.flt-pdetail .qa-item .ic::before { width: 15px; height: 2px; }
.flt-pdetail .qa-item .ic::after { width: 2px; height: 15px; transition: opacity .18s ease; }
/* 展开后竖线隐藏：＋ → － */
.flt-pdetail .qa-item[open] .ic::after { opacity: 0; }
.flt-pdetail .qa-item .a {
	border-top: 1px solid var(--divider);
	padding: 16px 20px 18px;
	font-size: 14px;
	line-height: 1.85;
	color: var(--text-2);
	white-space: pre-line;
}
.flt-pdetail .qa-item .a p { margin: 0 0 10px; }
.flt-pdetail .qa-item .a p:last-child { margin-bottom: 0; }
.flt-pdetail .qa-item .a a { color: var(--primary); }

@media (max-width: 767px) {
	/* v1.0.124：`.qa .in` 的 ≤767 值已并入 ≤1023 统一组（28/40）——
	   原先它写在更后面的媒体查询里，会盖掉统一组、导致"问答区块比相邻区块高一档"✗ */
	.flt-pdetail .qa-item summary { padding: 15px 16px; }
	.flt-pdetail .qa-item summary .q { font-size: 14px; }
	.flt-pdetail .qa-item .a { padding: 14px 16px 16px; font-size: 13.5px; }
}

/* =====================================================================
   桌面端 pnbar 双态（v1.0.38 · Boss 拍板）
   ---------------------------------------------------------------------
   初始（未吸顶）从「通栏白条」改为「居中浮动胶囊」——不再把首屏与正文
   之间用一条横向整栏硬性切开；滚动吸顶后（.is-stuck 由 product-detail.js
   判定）恢复 v1.0.37 之前的通栏 bar。
   仅 ≥1024px 生效；≤1023px 的移动/平板维持上方原有样式不变。
   ===================================================================== */
@media (min-width: 1024px) {

	/* 初始态：外层透明、只负责把胶囊水平居中 */
	.flt-pdetail .pnbar {
		display: flex;
		justify-content: center;
		margin-top: 34px;
		background: transparent;
		border-bottom: none;
		/* v1.0.127【Boss 决策 · 方案 ② · 流位置补偿】见下方 `.pnbar:not(.is-stuck)` 规则 */
		box-shadow: none;
		backdrop-filter: none;
	}

	/* 胶囊本体：内容收缩、大圆角、轻描边 + 柔投影。
	   v1.0.123【Boss 决策】：宽度改为 `var(--max)`。
	   原值 `calc(var(--max) - 64px)` 出自 v1.0.41 —— 那时页面级 `.wrap` 自带
	   32px×2 内边距，胶囊要扣掉才能与内容边界对齐；v1.0.122 把页面级 `.wrap`
	   左右 padding 归 0 之后，这个扣减反而让胶囊比内容**窄 64px**（Boss 实测）。 */
	.flt-pdetail .pnbar .wrap {
		position: relative;
		width: 100%;
		max-width: var(--max);
		/* 【Boss 线上手改 2026-09-13】top: 25px → **50px**：
		   设计意图就是让胶囊**压住上/下两个模块的结合部位**（视觉锚点），
		   因此需要更明显的下移量；配合 `.ov-content` 上边距 74px 保证首行不被压住 ✓。
		   吸顶态不受影响（`.is-stuck .wrap{top:0}` ✓）。 */
		top: 50px;
		margin: 0 auto;
		height: auto;
		gap: 8px;
		padding: 6px 18px;
		background: rgba(255, 255, 255, .92);
		border: 1px solid rgba(10, 31, 68, .08);
		border-radius: 999px;
		box-shadow: 0 12px 32px rgba(10, 31, 68, .10);
		backdrop-filter: blur(10px);
	}

	/* v1.0.127【Boss 决策 · 方案 ② · 流位置补偿】——
	   胶囊 `.wrap` 是 `position:relative; top:25px`：视觉下移 25px，但**仍占着原来的
	   文档流位置** ⇒ 会溢出到下一段内容上、压住首屏第一行 ✗。
	   给外层补 25px 底部空间 ⇒ 锚点条**不再压任何内容** ✓（首屏上边距因此可自由设定）。
	   ⚠️ 只作用于**初始态**：吸顶态（.is-stuck）胶囊回到 top:0、无溢出，
	      且吸顶条高度必须保持 58px（锚点 scroll-margin-top:134px 依赖它）✗ 不能加高。 */
	.flt-pdetail .pnbar:not(.is-stuck) { padding-bottom: 25px; }

	/* 型号/名称行允许压缩，名称单行省略 */
	.flt-pdetail .pnbar .pn-id { min-width: 0; }
	.flt-pdetail .pnbar .pn-id .nm { max-width: 380px; }

	/* 胶囊内锚点：用小圆角色块表达「当前项」，替换原下划线。
	   pntabs 横向滚动仅作窄桌面兜底，正常宽度无滚动条；
	   默认态 tabs + CTA 整体右对齐（v1.0.40）。 */
	.flt-pdetail .pnbar .pntabs {
		margin-left: auto;
		min-width: 0;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.flt-pdetail .pnbar .pntabs::-webkit-scrollbar { display: none; }
	.flt-pdetail .pnbar .pntabs a {
		padding: 9px 15px;
		border-bottom: none;
		border-radius: 999px;
		transition: color .15s, background .15s;
	}
	.flt-pdetail .pnbar .pntabs a:hover { background: rgba(1, 77, 255, .08); }
	.flt-pdetail .pnbar .pntabs a.on {
		background: var(--primary);
		color: #fff;
		font-weight: 600;
		border-color: transparent;
	}
	.flt-pdetail .pnbar .cta { margin-left: 10px; }

	/* ---------- 吸顶态：还原 v1.0.37 的通栏 bar ---------- */
	.flt-pdetail .pnbar.is-stuck {
		display: block;
		background: rgba(255, 255, 255, .94);
		border-bottom: 1px solid var(--border);
		box-shadow: 0 4px 14px rgba(10, 31, 68, .05);
		backdrop-filter: blur(8px);
	}
	.flt-pdetail .pnbar.is-stuck .wrap {
		width: 100%;
		max-width: var(--max);
		top: 0;
		margin: 0 auto;
		height: 58px;
		min-height: 0;
		gap: 20px;
		/* v1.0.124【Boss 决策】：0 32px → 0 —— v1.0.122 起页面级 `.wrap` 已无 32px 内边距，
		   吸顶通栏条必须与内容边界严格对齐，否则两侧各多 32px。 */
		padding: 0;
		background: transparent;
		border: none;
		border-radius: 0;
		box-shadow: none;
		backdrop-filter: none;
	}
	.flt-pdetail .pnbar.is-stuck .pn-id .nm { max-width: none; }
	.flt-pdetail .pnbar.is-stuck .pntabs {
		margin-left: auto;
		overflow-x: visible;
	}
	.flt-pdetail .pnbar.is-stuck .pntabs a {
		padding: 17px 14px 15px;
		border-bottom: 2px solid transparent;
		border-radius: 0;
		transition: color .15s;
	}
	.flt-pdetail .pnbar.is-stuck .pntabs a:hover { background: transparent; }
	.flt-pdetail .pnbar.is-stuck .pntabs a.on {
		background: transparent;
		color: var(--primary);
		border-color: var(--primary);
	}
	.flt-pdetail .pnbar.is-stuck .cta { margin-left: 6px; }
}
