/* ============================================================
 * 产品详情 · 源站抓取专用版式（技术手册式）  v1.1.48
 * 只作用于 .pd-wrap 内部，全部类名以 pd- 前缀，不影响站内其它页面。
 * 配色沿用站点主题：主蓝 #0f88c4 / 青绿 #12b5a4 / 深蓝 #0b3b56 / 浅底 #f4f9fc
 * ============================================================ */

.pd-wrap { color: #243b4a; font-size: 14px; line-height: 1.7; }
.pd-wrap * { box-sizing: border-box; }
.pd-mono { font-family: Consolas, Menlo, monospace; font-size: 12px; letter-spacing: .02em; }

/* ---------- 资料编号条 ---------- */
.pd-meta-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 0 0 10px; margin-bottom: 16px;
  border-bottom: 1px solid #e3edf4; font-size: 12px; color: #6b8295;
}
.pd-meta-l { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pd-meta-l b { color: #0b3b56; font-weight: 600; }
.pd-meta-l i { font-style: normal; color: #9ab0c0; }
.pd-meta-btn {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: #0f88c4; font-size: 12px; font-family: inherit;
}
.pd-meta-btn:hover { text-decoration: underline; }

/* ---------- 头部三栏（v1.1.58）：主图 | 标题/关键词/关键信息 | 动作 ---------- */
.pd-hero { display: flex; gap: 20px; align-items: flex-start; padding: 0 0 16px; }
/* v1.1.58：主图收进头部左栏。旧版单独立一块「图+信息带」，标题短时中间一片空白 */
/* v1.1.60：图廊容器 —— 手机端并排放 2 张产品图（用户要求「一共放 2 张」） */
.pd-pics { display: flex; gap: 10px; flex: none; }
.pd-cover {
  width: 172px; height: 156px; flex: none;
  border: 1px solid #e9f1f7; border-radius: 8px; background: #fff;
  display: flex; align-items: center; justify-content: center; padding: 8px;
}
.pd-cover img { max-width: 100%; max-height: 100%; object-fit: contain; }
/* PC 端仍只放主图，第二张隐藏（手机端 ≤720px 再放开） */
.pd-pics .pd-cover-2nd { display: none; }
/* v1.1.60：产品二维码 —— 指向本产品页，扫码直达 / 转发分享。
   v1.1.66：PC 端也显示（此前仅 ≤720px 显示，用户在 PC 详情页上看不到，
   误以为二维码没有生成 —— 实测手机端一直正常）。PC 端浮动在关键信息行右侧，
   factline 是 flex（BFC）会自动让位，不会重叠。 */
.pd-qr { display: block; float: right; width: 96px; margin: 2px 0 10px 14px; text-align: center; }
.pd-qr-box { width: 92px; height: 92px; padding: 5px; background: #fff; border: 1px solid #e3edf4; border-radius: 6px; }
.pd-qr-box img, .pd-qr-box canvas, .pd-qr-box table { display: block; max-width: 100% !important; height: auto !important; }
.pd-qr-t { display: block; margin-top: 4px; font-size: 11px; color: #8a99a8; line-height: 1.4; }
.pd-hero-l { flex: 1; min-width: 0; }
.pd-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.pd-badge {
  display: inline-block; padding: 2px 10px; border-radius: 3px;
  background: #f4f9fc; border: 1px solid #d8e6f0; color: #4a6a80;
  font-size: 12px; line-height: 1.8; text-decoration: none;
}
a.pd-badge:hover { border-color: #0f88c4; color: #0f88c4; }
.pd-badge.is-in { background: #e9f9f5; border-color: #9fded0; color: #0f9e90; }
.pd-hero h1 { margin: 0 0 6px; font-size: 24px; line-height: 1.4; font-weight: 600; color: #0b3b56; }
.pd-en { margin: 0 0 12px; font-size: 13px; color: #6b8295; font-family: Consolas, Menlo, monospace; word-break: break-word; }
.pd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pd-chips span {
  padding: 3px 12px; border-radius: 30px; background: #eef7fd;
  color: #0f7396; font-size: 12px; line-height: 1.7;
}

/* v1.1.58：关键信息行内化（产品编号 / 可选规格 / 配套文档 / 发货周期）。
 * 替代旧版一格格的大灰盒（.pd-fact），同样信息只占一行高度。 */
.pd-factline { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 14px; }
.pd-fl { font-size: 12.5px; color: #6b8295; line-height: 1.9; }
.pd-fl i { font-style: normal; margin-right: 5px; }
.pd-fl b { font-weight: 600; color: #0b3b56; font-size: 13.5px; word-break: break-word; }
/* 来源项（v1.1.59）：翌圣生物官网原链接 */
.pd-fl-src a { color: #0f88c4; text-decoration: none; border-bottom: 1px dashed #9ccbe4; padding-bottom: 1px; }
.pd-fl-src a:hover { color: #0d76ac; border-bottom-color: #0d76ac; }

.pd-hero-r { width: 210px; flex: none; display: flex; flex-direction: column; gap: 8px; }
.pd-btn {
  display: block; text-align: center; padding: 9px 14px; border-radius: 4px;
  border: 1px solid #d8e6f0; background: #fff; color: #24455c;
  font-size: 14px; line-height: 1.5; text-decoration: none; cursor: pointer;
  font-family: inherit; transition: all .15s;
}
.pd-btn:hover { border-color: #0f88c4; color: #0f88c4; }
.pd-btn-main { background: #0f88c4; border-color: #0f88c4; color: #fff; }
.pd-btn-main:hover { background: #0d76ac; border-color: #0d76ac; color: #fff; }
.pd-btn-full { width: 100%; }

/* ---------- 主体两栏 ---------- */
.pd-body { display: grid; grid-template-columns: 186px minmax(0, 1fr); gap: 24px; align-items: start; }
/* min-width:0 不能少：grid 子项默认 min-width:auto，内部 SKU 表/长货号会把列撑破，
   表现就是右侧内容顶出容器、出现横向滚动条。 */
.pd-main { min-width: 0; }
.pd-side { position: sticky; top: 16px; min-width: 0; }

.pd-ask { background: #f4f9fc; border-radius: 6px; padding: 14px; margin-bottom: 16px; }
.pd-ask-l { display: block; font-size: 12px; color: #6b8295; margin-bottom: 6px; }
.pd-ask p { margin: 0 0 12px; font-size: 12px; color: #5a7a8e; line-height: 1.65; }
.pd-ask-s { margin: 10px 0 0 !important; font-size: 12px; color: #6b8295; }
.pd-ask-s a { color: #0f88c4; }

.pd-nav { display: flex; flex-direction: column; gap: 2px; }
.pd-nav button {
  display: flex; align-items: center; gap: 9px; width: 100%; text-align: left;
  padding: 8px 10px; border: 0; background: none; border-radius: 4px; cursor: pointer;
  font-family: inherit; font-size: 13px; color: #5a7a8e; line-height: 1.5;
}
.pd-nav button:hover { background: #f4f9fc; color: #0f88c4; }
.pd-nav button i { font-style: normal; color: #a8c0d0; }
.pd-nav button.is-on { background: #eef7fd; color: #0f7396; font-weight: 600; }
.pd-nav button.is-on i { color: #0f88c4; }

/* ---------- 章节 ---------- */
.pd-sec { display: block; }
body.pd-js .pd-sec { display: none; }
body.pd-js .pd-sec.is-on { display: block; }
.pd-sec-hd { margin-bottom: 14px; }
.pd-sec-hd h2 { margin: 0 0 4px; font-size: 17px; font-weight: 600; color: #0b3b56; }
.pd-sec-hd p { margin: 0; font-size: 13px; color: #6b8295; }
.pd-sub { margin: 20px 0 8px; font-size: 13px; color: #6b8295; }

/* ---------- SKU 规格表 ---------- */
.pd-sku { border: 1px solid #e3edf4; border-radius: 6px; overflow: hidden; }
.pd-sku-hd,
.pd-sku-row {
  display: grid; align-items: center; gap: 10px;
  grid-template-columns: 34px minmax(0, 1.25fr) minmax(0, 1fr) 76px 68px;
  padding: 10px 14px;
}
.pd-sku-hd.has-price,
.pd-sku-row.has-price { grid-template-columns: 34px minmax(0, 1fr) minmax(0, .9fr) minmax(150px, 1.2fr) 76px 68px; }
.pd-sku-hd {
  background: #f7fbfe; border-bottom: 1px solid #e3edf4;
  font-size: 12px; color: #6b8295; font-weight: 400;
}
.pd-sku-row { border-bottom: 1px solid #eef4f9; font-size: 13px; }
.pd-sku-row:last-of-type { border-bottom: 0; }
.pd-sku-row.is-hl { background: #fbfdff; }
.pd-sku-row:hover { background: #f7fbfe; }
.pd-sku-row .pd-mono { color: #0b3b56; }
.pd-stock { font-size: 12px; color: #6b8295; }
.pd-stock.is-in { color: #0f9e90; }
.pd-stock.is-out { color: #d9534f; }
.pd-sku-btn {
  display: block; text-align: center; padding: 4px 0; border-radius: 3px;
  border: 1px solid #d8e6f0; color: #4a6a80; font-size: 12px; text-decoration: none;
}
.pd-sku-btn:hover { border-color: #0f88c4; color: #0f88c4; }
.pd-chk { display: inline-flex; cursor: pointer; }
.pd-chk input, .pd-sku-box { margin: 0; cursor: pointer; }
.pd-sku-ft {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 14px; border-top: 1px solid #e3edf4; background: #f7fbfe;
}
.pd-sku-ft .pd-btn { display: inline-block; min-width: 150px; }
.pd-sku-ft span { font-size: 12px; color: #6b8295; }

/* ---------- 图集 ---------- */
.pd-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; margin-bottom: 16px; }
.pd-gal-i {
  display: block; height: 88px; border: 1px solid #e9f1f7; border-radius: 5px;
  background: #fff; padding: 6px; overflow: hidden;
}
.pd-gal-i.is-on { border-color: #0f88c4; }
.pd-gal-i img { width: 100%; height: 100%; object-fit: contain; }

/* ---------- 通用富文本（源站 FAQ / 文献 / 描述） ---------- */
.pd-rte { font-size: 14px; color: #35505f; word-break: break-word; }
.pd-rte p { margin: 0 0 12px; line-height: 1.85; }
.pd-rte h1, .pd-rte h2, .pd-rte h3, .pd-rte h4 {
  margin: 18px 0 10px; font-size: 15px; font-weight: 600; color: #0b3b56; line-height: 1.6;
}
.pd-rte ul, .pd-rte ol { margin: 0 0 12px; padding-left: 22px; }
.pd-rte li { margin-bottom: 5px; line-height: 1.8; }
.pd-rte img { max-width: 100%; height: auto; }
.pd-rte table { width: 100%; border-collapse: collapse; margin: 0 0 14px; }
.pd-rte td, .pd-rte th { border: 1px solid #e3edf4; padding: 7px 10px; font-size: 13px; line-height: 1.7; }
.pd-rte th { background: #f7fbfe; font-weight: 600; color: #0b3b56; }
.pd-rte strong, .pd-rte b { font-weight: 600; color: #0b3b56; }
.pd-rte a { color: #0f88c4; }
.pd-faq p:last-child { margin-bottom: 0; }
.pd-lit p { font-size: 13px; }

/* ---------- 参数表（v1.1.60：整表加边框 + 行列分隔线） ----------
   之前是松散的键值对，用户反馈「没有线条、看着杂乱」。
   现在按表格画：外框 + 行线 + 中缝列线 + 标签列底色，两列对齐。 */
.pd-attr {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0;
  border: 1px solid #dbe7f0; border-radius: 8px; overflow: hidden; background: #fff;
}
.pd-attr-r {
  display: flex; gap: 0; align-items: stretch; min-width: 0;
  border-top: 1px solid #e9f1f7; font-size: 13px;
}
.pd-attr-r:nth-child(-n+2) { border-top: 0; }                    /* PC 两列：第一行不画行线 */
.pd-attr-r:nth-child(odd) { border-right: 1px solid #e9f1f7; }   /* 左列右缘 = 中缝列线 */
.pd-attr-r.is-wide { grid-column: 1 / -1; border-right: 0; }
.pd-attr-r > span:first-child {
  width: 96px; flex: none; color: #6b8295;
  background: #f8fbfd; border-right: 1px solid #e9f1f7;
  padding: 8px 10px; display: flex; align-items: center;
}
.pd-attr-r > em { font-style: normal; flex: 1; min-width: 0; color: #35505f; word-break: break-word; padding: 8px 12px; align-self: center; }
.pd-attr-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.pd-attr-tag {
  display: inline-flex; align-items: baseline; gap: 6px; max-width: 100%;
  background: #f4f9fc; border-radius: 3px; padding: 3px 9px; font-size: 12px; line-height: 1.75;
}
.pd-attr-tag b { font-weight: 600; color: #0f7396; flex: none; }
.pd-attr-tag i { font-style: normal; color: #6b8295; }

/* ---------- 文档 ---------- */
.pd-files { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.pd-file {
  display: flex; align-items: center; gap: 11px; padding: 12px 14px;
  border: 1px solid #e3edf4; border-radius: 6px; background: #fff; text-decoration: none;
}
.pd-file:hover { border-color: #0f88c4; }
.pd-file-ico {
  width: 26px; height: 32px; flex: none; position: relative;
  border: 1px solid #9fc7e0; border-radius: 3px; background: #f4f9fc;
}
.pd-file-ico::after {
  content: ''; position: absolute; right: -1px; top: -1px; width: 9px; height: 9px;
  border-left: 1px solid #9fc7e0; border-bottom: 1px solid #9fc7e0; background: #fff;
}
.pd-file-t { display: block; font-size: 13px; color: #24455c; line-height: 1.55; flex: 1; min-width: 0; }
.pd-file:hover .pd-file-t { color: #0f88c4; }
.pd-file-d { display: none; }

/* ---------- 推荐应用 ---------- */
.pd-apps { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.pd-app {
  display: flex; flex-direction: column; gap: 8px; padding: 12px;
  border: 1px solid #e3edf4; border-radius: 6px; background: #fff; text-decoration: none;
}
.pd-app:hover { border-color: #0f88c4; }
.pd-app img { width: 100%; height: 92px; object-fit: cover; border-radius: 4px; background: #f4f9fc; }
.pd-app-t { font-size: 13px; color: #24455c; line-height: 1.6; }
.pd-app:hover .pd-app-t { color: #0f88c4; }
.pd-app-y { font-size: 12px; color: #9ab0c0; }

/* ---------- 相关产品 ---------- */
.pd-rel { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.pd-rel-i {
  display: flex; flex-direction: column; gap: 6px; padding: 10px;
  border: 1px solid #e9f1f7; border-radius: 6px; background: #fff; text-decoration: none;
}
.pd-rel-i:hover { border-color: #0f88c4; }
.pd-rel-pic { display: flex; align-items: center; justify-content: center; height: 96px; background: #f8fbfd; border-radius: 4px; }
.pd-rel-pic img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pd-rel-t { font-size: 13px; color: #24455c; line-height: 1.55; }
.pd-rel-i:hover .pd-rel-t { color: #0f88c4; }
.pd-rel-m { font-size: 12px; color: #9ab0c0; font-family: Consolas, Menlo, monospace; }

/* ---------- 关键词 ---------- */
.pd-tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 24px; padding-top: 16px; border-top: 1px solid #eef4f9; }
.pd-tags > span { font-size: 12px; color: #6b8295; }
.pd-tags a {
  padding: 3px 11px; border-radius: 30px; background: #f4f9fc;
  border: 1px solid #e3edf4; color: #5a7a8e; font-size: 12px; text-decoration: none;
}
.pd-tags a:hover { border-color: #0f88c4; color: #0f88c4; }

/* ---------- 来源标注（页脚） ----------
   v1.1.51：类名由 .pd-src 统一改为 .src-note，与产品老版式、方案、选购指南
   三处详情页共用同一套结构（模板内已带内联样式，这里只作兜底/微调）。 */
.src-note { margin-top: 16px; padding-top: 12px; border-top: 1px dashed #e3e9ef; color: #8a99a8; font-size: 12px; }
.src-note a { color: #6b7c8d; text-decoration: underline; }
.src-note a:hover { color: #0f88c4; }

/* ---------- 响应式 ---------- */
@media (max-width: 1000px) {
  .pd-body { grid-template-columns: 1fr; gap: 16px; }
  .pd-side { position: static; }
  .pd-ask { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; }
  .pd-ask-l { margin: 0; }
  .pd-ask p { margin: 0; flex: 1; min-width: 200px; }
  .pd-ask .pd-btn { width: auto; flex: none; padding: 8px 20px; }
  .pd-ask-s { margin: 0 !important; }
  .pd-nav { flex-direction: row; overflow-x: auto; padding-bottom: 6px; gap: 8px; }
  .pd-nav button { width: auto; flex: none; white-space: nowrap; border: 1px solid #e3edf4; background: #fff; }
  .pd-nav button i { display: none; }
  .pd-factline { gap: 4px 16px; }
  .pd-attr { grid-template-columns: 1fr; }
  /* v1.1.60：单列时行线/列线随之调整（第二行开始画行线，去掉中缝线） */
  .pd-attr-r:nth-child(2) { border-top: 1px solid #e9f1f7; }
  .pd-attr-r:nth-child(odd) { border-right: 0; }
}
@media (max-width: 720px) {
  .pd-hero { flex-direction: column; gap: 14px; }
  .pd-hero h1 { font-size: 19px; }
  .pd-hero-r { width: 100%; flex-direction: row; flex-wrap: wrap; }
  .pd-hero-r .pd-btn { flex: 1; min-width: 132px; }
  .pd-hero-r .pd-btn-main { flex-basis: 100%; }
  /* v1.1.60：手机端并排放 2 张产品图（原来只有一张 132px 小图） */
  .pd-pics { width: 100%; }
  .pd-pics .pd-cover { flex: 1 1 40%; width: auto; max-width: 50%; height: 150px; }
  .pd-pics .pd-cover-2nd { display: flex; }
  /* v1.1.60：手机端显示产品二维码（标题关键词右侧的空白处） */
  .pd-qr { display: block; }
  /* v1.1.60：关键信息行上方加一条分隔线，头部信息不再糊成一片 */
  .pd-factline { margin-top: 12px; padding-top: 10px; border-top: 1px dashed #e3edf4; }
  /* SKU 表：窄屏改两行卡片式（注意：若开启价格列，列序需同步调整） */
  .pd-sku-hd { display: none; }
  .pd-sku-row { grid-template-columns: 26px minmax(0, 1fr) auto; row-gap: 5px; padding: 12px 14px; }
  .pd-sku-row .pd-chk { grid-row: 1 / 3; }
  .pd-sku-row .pd-mono { grid-column: 2; grid-row: 1; }
  .pd-sku-row .pd-sku-btn { grid-column: 3; grid-row: 1; padding: 4px 12px; }
  .pd-sku-row > span:nth-child(3) { grid-column: 2; grid-row: 2; }
  .pd-sku-row > span:nth-child(4) { grid-column: 3; grid-row: 2; justify-self: end; }
  /* v1.1.81：开启价格列（$PD_SHOW_PRICE=true）后窄屏行序复位——
     上面 nth-child(4) 在带价格列的行里命中的是「价格」而不是「状态」，
     这里按真实列序显式安排：状态(第5子)回右位、价格自成一整行(第3行)。
     特异度与 nth-child(4) 相同，靠书写顺序覆盖。
     【v1.1.82 · p-1275 手机端错乱的真凶】上面 `.pd-sku-row { grid-template-columns: 26px … }`
     是 (0,1,0)，压不过全局 `.pd-sku-row.has-price`（0,2,0）的六列定义 ——
     带价格列的行在手机上仍走 PC 六列，150px 最低价把 货号/规格 两列挤成 0px，
     全部单元叠成一坨。这里必须用同特异度的 .has-price 重列 3 列网格。 */
  .pd-sku-row.has-price { grid-template-columns: 26px minmax(0, 1fr) auto; }
  .pd-sku-row.has-price .pd-mono { grid-column: 2; grid-row: 1; }
  .pd-sku-row.has-price .pd-sku-btn { grid-column: 3; grid-row: 1; padding: 4px 12px; }
  .pd-sku-row.has-price .pd-chk { grid-row: 1 / 4; }
  .pd-sku-row.has-price > span:nth-child(3) { grid-column: 2; grid-row: 2; }
  .pd-sku-row.has-price > span:nth-child(5) { grid-column: 3; grid-row: 2; justify-self: end; }
  .pd-sku-row.has-price > span.pd-sku-price { grid-column: 2 / 4; grid-row: 3; justify-self: start; }
  .pd-files, .pd-apps, .pd-rel { grid-template-columns: 1fr; }
  .pd-app img { height: 140px; }
  .pd-attr-r > span:first-child { width: 84px; }
}

/* ============================================================
   v1.1.52 产品编号选择条（多货号 + 库存 + 数量 + 两个后台预留框）
   位置：pd-facts 之后、pd-body 之前；横贯一行的浅底卡片。
   ============================================================ */
.pd-numbar {
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px 14px;
  padding: 12px 18px; margin-bottom: 22px;
  background: #f7fafc; border: 1px solid #e3edf4; border-radius: 8px;
}
.pd-nb-lbl { font-size: 12.5px; color: #6b8295; flex: none; }
.pd-nb-no {
  font-size: 17px; font-weight: 700; color: #0b3b56; letter-spacing: .02em;
  min-width: 96px;
}
.pd-nb-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.pd-nb-pills button {
  font-family: Consolas, Menlo, monospace; font-size: 12.5px; cursor: pointer;
  padding: 4px 12px; border-radius: 999px;
  background: #fff; border: 1px solid #d8e6f0; color: #4a6a80;
  transition: .14s;
}
.pd-nb-pills button:hover { border-color: #0f88c4; color: #0f88c4; }
.pd-nb-pills button.is-on { background: #0f88c4; border-color: #0f88c4; color: #fff; font-weight: 600; }
.pd-nb-stock {
  font-size: 12px; padding: 3px 11px; border-radius: 3px;
  background: #fff; border: 1px solid #d8e6f0; color: #6b8295;
}
.pd-nb-stock.is-in { background: #e9f9f5; border-color: #9fded0; color: #0f9e90; }
.pd-nb-stock.is-out { background: #fdeeec; border-color: #f3c3bf; color: #d9534f; }
.pd-nb-qty { display: flex; align-items: center; gap: 0; flex: none; }
.pd-nb-qty span { font-size: 12.5px; color: #6b8295; margin-right: 8px; }
.pd-nb-qty button {
  width: 28px; height: 28px; cursor: pointer; font-size: 14px; line-height: 1;
  background: #fff; border: 1px solid #d8e6f0; color: #4a6a80;
}
.pd-nb-qty button:first-of-type { border-radius: 5px 0 0 5px; }
.pd-nb-qty button:last-of-type { border-radius: 0 5px 5px 0; }
.pd-nb-qty button:hover { border-color: #0f88c4; color: #0f88c4; }
.pd-nb-qty [data-nb-qty-v] {
  min-width: 42px; height: 28px; display: flex; align-items: center; justify-content: center;
  background: #fff; border-top: 1px solid #d8e6f0; border-bottom: 1px solid #d8e6f0;
  font-size: 13.5px; color: #0b3b56; font-weight: 600;
}
.pd-nb-ext {
  display: flex; align-items: center; gap: 8px;
  padding: 5px 12px; border-radius: 6px;
  border: 1px dashed #c9dbe8; background: #fff;
  font-size: 12.5px;
}
.pd-nb-ext span { color: #8a99a8; }
.pd-nb-ext b { color: #0b3b56; font-weight: 600; }
.pd-nb-ask { margin-left: auto; flex: none; }
@media (max-width: 900px) {
  .pd-nb-ask { margin-left: 0; width: 100%; }
  .pd-nb-no { min-width: 0; }
}

/* ============================================================
   v1.1.78 翌圣详情页头部三处调整（PC + 手机端）
   ① 产品编号选择条：hero 下方通栏横幅 → 移入标题信息栏内、关键信息行之后
   ② 产品二维码：上移到关键词行右侧空白（模板里 DOM 移到关键词之前，
      它 float:right，浮动框自然顶到关键词那一行）
   ③ 询价单卡：左侧栏顶部 → 产品图正下方（图列内纵向堆叠，左侧栏只剩章节导航）
   仅位置与内边距变化，任何交互逻辑未改。
   ============================================================ */
/* ① 编号条在信息栏内：内边距收紧，不再按整行横幅处理 */
.pd-hero-l .pd-numbar { margin: 14px 0 2px; padding: 10px 14px; }

/* ③ 询价单卡在图列下方：纵列堆叠、宽度与产品图一致（172px） */
.pd-pics { flex-direction: column; }
.pd-pics .pd-ask { width: 172px; margin: 10px 0 0; padding: 12px 11px; }
.pd-pics .pd-ask p { margin: 0 0 10px; }

/* 中屏（≤1000px）：询价单卡保持卡片式 —— 原 ≤1000px 的「横向条」规则是按
   「左侧栏整条」设计的，换到图列下方不再合适 */
@media (max-width: 1000px) {
  .pd-pics .pd-ask { display: block; }
  .pd-pics .pd-ask p { margin: 0 0 10px; }
  .pd-pics .pd-ask .pd-btn { padding: 9px 14px; }
}
/* 手机端（≤720px）：两张产品图并排一行，询价单卡通栏落在图下方 */
@media (max-width: 720px) {
  .pd-pics { flex-direction: row; flex-wrap: wrap; }
  .pd-pics .pd-ask { display: block; flex: 1 1 100%; width: auto; margin: 10px 0 0; }
}

/* ============================================================
   v1.1.78 来源品牌色带 + 来源合规框（源站无关，配置驱动）
   ------------------------------------------------------------
   色带 .brand-band：颜色/名称/域名全部由 core/collect_sources()
   的 band 配置驱动，本文件不含任何一家源站的硬编码。
   结构由 source_band_html() 产出，show.php / show_yeasen.php 共用。
   --bleed = 贴齐外层容器做通栏（show.php 面板内用）；
   不带 --bleed = 圆角卡（show_yeasen.php 的 pd-wrap 内用）。
   ============================================================ */
.brand-band{
  position:relative;display:flex;align-items:center;gap:15px;flex-wrap:wrap;
  padding:13px 20px;color:#fff;overflow:hidden;border-radius:8px;
  background:var(--bb-grad, linear-gradient(100deg,#0b3b56,#0f88c4,#12b5a4));
  box-shadow:0 3px 12px rgba(var(--bb-shadow, 15,40,70),.16);
}
.brand-band--bleed{border-radius:0;margin:-18px -18px 18px;box-shadow:none}
.brand-band:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.075) 0 2px,transparent 2px 14px);
}
.brand-band>*{position:relative;z-index:1}
.bb-logo{
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:48px;height:48px;border-radius:11px;background:#fff;color:var(--bb-ink,#0f88c4);
  font-weight:800;font-size:17px;letter-spacing:-.6px;line-height:1;
  box-shadow:0 2px 9px rgba(0,0,0,.2);
}
.bb-main{flex:1 1 320px;min-width:0}
.bb-name{font-size:17px;font-weight:700;line-height:1.32;letter-spacing:.2px}
.bb-name em{font-style:normal;font-weight:400;opacity:.86;font-size:13px;margin-left:8px}
/* 标题可点（v1.1.79 站长指示）：点色带品牌名 = 打开原始页面；无下划线保持整块协调，悬停显下划线 */
.bb-name .bb-name-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s}
.bb-name .bb-name-link:hover{border-bottom-color:rgba(255,255,255,.7)}
.bb-src{font-size:12.5px;opacity:.94;margin-top:3px;line-height:1.6}
.bb-src a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.bb-right{display:flex;align-items:center;gap:9px;flex:0 0 auto;margin-left:auto}
.bb-tag{
  border:1px solid rgba(255,255,255,.52);background:rgba(255,255,255,.16);
  border-radius:999px;padding:5px 13px;font-size:12px;white-space:nowrap;
}
.bb-btn{
  background:#fff;color:var(--bb-ink,#0f88c4);border-radius:7px;padding:8px 15px;
  font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap;
  box-shadow:0 2px 7px rgba(0,0,0,.16);
}
.bb-btn:hover{background:#f4fbff}
@media (max-width:900px){
  .bb-right{margin-left:0;width:100%}
  .bb-name em{display:block;margin:2px 0 0}
}
/* ============================================================
   v1.1.84 色带手机端紧凑态（站长点名 p-1276 手机端「太丑」）
   实测：手机端色带 225px 高占首屏 42%。改成「logo + 两行文字 + 原页胶囊」
   单行 flex，高度约 58px；来源长句合并成一行省略号，版权小字让位。
   ============================================================ */
@media (max-width:720px){
  .brand-band{gap:10px;padding:9px 10px;flex-wrap:nowrap;border-radius:10px;margin-left:-2px;margin-right:-2px}
  .brand-band--bleed{margin:-14px -14px 12px;border-radius:0}
  .bb-logo{width:34px;height:34px;border-radius:8px;font-size:12.5px}
  .bb-main{flex:1 1 auto;min-width:0}
  .bb-name{font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bb-name em{display:inline;font-size:11px;margin-left:5px}
  .bb-src{font-size:10.5px;line-height:1.45;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}
  .bb-right{width:auto;margin-left:0;flex:0 0 auto;gap:6px}
  .bb-tag{display:none}
  .bb-btn{padding:6px 10px;font-size:11px;border-radius:999px}
}

/* 来源合规框（详情页正文末尾，源站无关） */
.src-box{margin-top:18px;border:1px solid #dbe7f0;border-left:3px solid #0b3b56;
  background:#f7fbfe;border-radius:6px;padding:12px 15px;font-size:12.5px;line-height:1.85;color:#4a6377}
.src-box .src-hd{font-weight:600;color:#0b3b56;margin-bottom:3px;font-size:13px}
.src-box a{color:#0f88c4;text-decoration:underline;word-break:break-all}
.src-box .src-disc{color:#7d95a8;margin-top:5px;font-size:12px}
.src-inline{margin-top:14px;padding-top:11px;border-top:1px dashed #e3e9ef;
  font-size:12px;line-height:1.85;color:#8a99a8}
.src-inline a{color:#6b7c8d;text-decoration:underline}

/* ============================================================
   v1.1.81 详情页价格展示（站长定稿 shot-detail-price.png）
   ------------------------------------------------------------
   $PD_SHOW_PRICE 开关已打开：编号条价格位 + SKU 表价格列。
   促销判据：目录价 old_price > 促销价 price（两个价都来自源站
   goodsPrice.oldPrice / salePrice，normSkus 入库）。
   历史数据没有 old_price → 显示主价、不打「促」，重抓详情自动补全。
   ============================================================ */
/* 编号条价格位（在库存徽章后、数量步进前） */
.pd-nb-price { display: inline-flex; align-items: baseline; gap: 6px; min-width: 72px; }
.pd-nb-price .pd-nb-cur { font-size: 16px; font-weight: 700; color: #123a52; line-height: 1.2; }
.pd-nb-price.is-promo .pd-nb-cur { color: #d4380d; }           /* 只有促销时主价红（效果图口径） */
.pd-nb-price .pd-nb-cur.is-ask { font-size: 13px; font-weight: 400; color: #8a99a8; }
.pd-nb-cu {
  font-style: normal; font-size: 10.5px; font-weight: 700; line-height: 1;
  color: #fff; background: #e5484d; border-radius: 4px; padding: 2px 4px;
}
.pd-nb-mkt, .pd-sku-mkt { font-size: 12px; color: #97a6b3; }    /* 划线目录价 */
/* SKU 表价格列 */
.pd-sku-price { display: inline-flex; align-items: baseline; gap: 5px; flex-wrap: wrap; }
.pd-sku-price b { color: #123a52; }
.pd-sku-price b.pd-cu-pr { color: #d4380d; }

/* ============================================================
 * v1.1.152 稿 C 拉通 —— 产品详情页品类光谱皮肤
 * 前缀约定：pdc-（product detail · 稿C）—— 与本文体 pd-（翌圣版式）
 * 零冲突；色板自含（详情页不加载 plist.css），取值与列表页 --pl-c-N 同值。
 * 设计语言：4px 光谱条（深→品类色）+ 品类色轻点缀，数据逻辑零改动。
 * ============================================================ */
:root{
  --pdc-c-1:#0f88c4; --pdc-cd-1:#0a6c9e; --pdc-cl-1:#e5f4fc;  /* 细胞培养 */
  --pdc-c-2:#12b5a4; --pdc-cd-2:#0d8a7d; --pdc-cl-2:#e3f8f5;  /* 蛋白与免疫 */
  --pdc-c-3:#5b8def; --pdc-cd-3:#3c63c9; --pdc-cl-3:#ecf1fe;  /* 生化代谢检测 */
  --pdc-c-4:#f59e0b; --pdc-cd-4:#c97f06; --pdc-cl-4:#fdf3e3;  /* 分子生物学 */
  --pdc-c-5:#1baa6b; --pdc-cd-5:#128a53; --pdc-cl-5:#e6f6ef;  /* 细胞状态分析 */
  --pdc-c-6:#7c5cd6; --pdc-cd-6:#5f43b0; --pdc-cl-6:#f0ebfc;  /* 试剂盒与耗材 */
  --pdc-c-7:#e5484d; --pdc-cd-7:#c23338; --pdc-cl-7:#fdecec;  /* 抗体与蛋白 */
  --pdc-c-8:#0e9c8e; --pdc-cd-8:#0a7a6f; --pdc-cl-8:#e4f6f4;  /* 检测试剂盒 */
}

/* 品类光谱条：详情页主 panel 顶部（与列表网格卡顶条同语言） */
.pdc-spec{height:4px;background:linear-gradient(90deg,var(--pcd,#0a6c9e),var(--pc,#0f88c4))}

/* 标题下分类徽章：品类色浅底（置顶/推荐/品牌徽章不动） */
.pdc-catbadge{background:var(--pcl,#e5f4fc);color:var(--pcd,#0a6c9e);border:1px solid var(--pcl,#e5f4fc);font-weight:600}
.pdc-catbadge:hover{filter:brightness(.97)}

/* 价格框：左侧 4px 品类色竖条 + 边框轻染（价格红字不变，稿 C 口径） */
.pdc-scope .pro-price-box{position:relative;border-color:var(--pcl,#e5f4fc)}
.pdc-scope .pro-price-box::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--pc,#0f88c4),var(--pcd,#0a6c9e))}

/* 快捷参数行（货号/CAS/纯度…）标签列：品类色 */
.pdc-scope .pro-attrs .a .k{color:var(--pcd,#0a6c9e);font-weight:600}

/* 参数表 k 列：品类色浅底（原灰底） */
.pdc-scope .param-grid .pg-row .k{background:var(--pcl,#e5f4fc);color:var(--pcd,#0a6c9e)}

/* 各 panel 标题小竖条：蓝青渐变 → 品类色渐变（稿 C 同语言） */
.pdc-scope .panel-hd h3::before{background:linear-gradient(180deg,var(--pc,#0f88c4),var(--pcd,#0a6c9e))}

/* 图库缩略图选中态 / 关键词 tag hover：品类色 */
.pdc-scope .gallery .thumbs img.on{border-color:var(--pc,#0f88c4)}
.pdc-scope .tag:hover{background:var(--pcl,#e5f4fc);color:var(--pcd,#0a6c9e)}

/* 窄屏：价格框竖条保留，内边距略收 */
@media (max-width:900px){
  .pdc-scope .pro-price-box{padding:14px 14px 14px 18px}
  .pdc-scope .param-grid .pg-row .k{flex:0 0 88px}
}

/* ============================================================
 * v1.1.153 品类色 Hero 横幅 —— 列表页 pl-banner 语言搬上详情页
 * 深色渐变底 + 品类色双光晕 + 6px 品类顶条；白字 CTA 与品类深色字。
 * 光晕用元素级 opacity 软化（不依赖 color-mix，老浏览器安全）。
 * ============================================================ */
.pdc-hero{position:relative;overflow:hidden;border-radius:14px;margin-bottom:16px;color:#fff;
  background:linear-gradient(120deg,#0b2f45 0%,#0d3d59 55%,#0f5a80 100%);
  border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 32px rgba(11,47,69,.22)}
.pdc-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;z-index:2;
  background:linear-gradient(90deg,var(--pcd,#0a6c9e),var(--pc,#0f88c4))}
.pdc-h-glow{position:absolute;right:-60px;top:-70px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,var(--pc,#0f88c4),transparent 65%);opacity:.42;pointer-events:none}
.pdc-h-glow2{position:absolute;right:210px;bottom:-130px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,var(--pc,#0f88c4),transparent 65%);opacity:.2;pointer-events:none}
.pdc-h-in{position:relative;z-index:1;display:flex;align-items:center;gap:20px;padding:22px 26px}
.pdc-h-tx{min-width:0;flex:1}
.pdc-h-path{font-size:12px;color:rgba(255,255,255,.62);letter-spacing:2px;margin-bottom:6px}
.pdc-h-name{font-size:24px;font-weight:800;letter-spacing:.5px;line-height:1.3;
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pdc-h-en{font-size:12.5px;font-weight:400;color:rgba(255,255,255,.55);letter-spacing:1px}
.pdc-h-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:rgba(255,255,255,.78)}
.pdc-h-meta b{font-weight:800;font-variant-numeric:tabular-nums}
.pdc-h-btn{flex-shrink:0;background:#fff;color:var(--pcd,#0a6c9e);font-size:13.5px;font-weight:700;
  text-decoration:none;padding:10px 20px;border-radius:10px;transition:.15s;
  box-shadow:0 4px 14px rgba(0,0,0,.22)}
.pdc-h-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.3)}
.pdc-h-btn i{font-style:normal;margin-left:2px}

@media (max-width:900px){
  .pdc-h-in{flex-direction:column;align-items:flex-start;padding:16px 16px 18px;gap:12px}
  .pdc-h-name{font-size:19px}
  .pdc-h-btn{width:100%;text-align:center}
  .pdc-h-glow{width:220px;height:220px;right:-80px;top:-90px}
  .pdc-h-glow2{display:none}
}
