/* 共享样式 — 原 build_static_merged.py HEADER_HTML 内 body 级 <style> 块
   HEADER_HTML 被 3 个渲染函数共用，故独立成文件；声明逐字照搬未改。 */
/* ================================================================
   阶段 2：设计变量层 (design token layer) —— 2026-10-27 技术员
   ---------------------------------------------------------------
   落点理由: 本文件是 1,402 个 dist 页**唯一**引用的样式表, token 层放这里
             = 1,402/1,402 页一次生效, 无需改任何 PHP。
   取值纪律: 全部沿用现网字面量, **一个色值都没改**。本层只是把散落的
             硬编码收进单点声明 (纯重构), 渲染结果必须与改前逐像素一致。
   独立声明而非 var(--ink) 引用 cigar.css 的 :root: 全站只有 cigar.css 定义
             :root, 877 个 dist 页 (二层页 / 三层追踪页) 不加载它, 引用外部
             变量会退化成无值 → 颜色失效 → 视觉变化。故本层自包含。
   命名纪律: 统一 --cigar-* 前缀, 与 cigar.css 的 --ink/--wine/--s1..--r
             及 fontawesome 的 --fa-* 均不撞车。
   ================================================================ */
:root{
  /* 品牌色 */
  --cigar-brand-ink:#18181C;   /* 主墨色 */
  --cigar-brand-ink-2:#333;    /* 导航 / 标题墨色 */
  --cigar-brand-ink-3:#666;    /* 次级文字墨色 */
  --cigar-brand-wine:#960630;  /* 品牌主色(酒红): 全站品牌色单点声明,
                                  色值与现网字面量逐字相同; 本文件当前无
                                  规则消费它 (品牌色在 cigar.css /
                                  secondlayer / pricetrack / common 以
                                  字面量 #960630 使用), 此处先立 token */
  /* 表面色 */
  --cigar-surface:#ffffff;
  --cigar-surface-2:#f8f9fa;
  --cigar-surface-3:#fafafa;
  --cigar-surface-4:#fcfcfc;
  --cigar-surface-5:#f5f5f5;
  --cigar-surface-warn:#fff3cd;
  --cigar-surface-ref:#fff4e0;
  /* 描边色 */
  --cigar-line:#e0e0e0;
  --cigar-line-2:#eee;
  --cigar-line-3:#ddd;
  --cigar-line-ref:#ffd699;
  /* 语义状态色 */
  --cigar-stock:#28a745;
  --cigar-out:#b06a00;
  --cigar-nop:#bbb;
  --cigar-warn:#856404;
  --cigar-warn-line:#ffc107;
  /* 透明叠加 / 阴影 */
  --cigar-shadow:rgba(0,0,0,0.15);
  --cigar-on-dark:rgba(255,255,255,0.2);
}

  .navQrItem:hover .navQrPopup { display:block !important; }

/* ===== stage3a：HEADER_HTML / FOOTER_HTML 共 31 处元素内联 style 迁出 =====
   本文件在三处 <head> 中均排在 cigar*.css 之后，而 HEADER_HTML/FOOTER_HTML 注入于
   <body>，保持「head 在前、body 在后」的原始层叠关系。原 :hover 强制覆盖（important）规则原位保留。 */

/* HEADER_HTML 行 126 div.topBanner（原内联已移除） */
  .hd-banner { background:var(--cigar-surface-5); color:var(--cigar-brand-ink-3); padding:8px 0; border-bottom:1px solid var(--cigar-line); }
/* HEADER_HTML 行 127 div（原无 class） */
  .hd-banner-inner { max-width:800px; margin:0 auto; text-align:center; }
/* HEADER_HTML 行 128 span（原无 class） */
  .hd-banner-text { font-size:13px; }
/* HEADER_HTML 行 133 div.mainNavBar（原内联已移除） */
  .hd-navbar { background:var(--cigar-surface); padding:15px 0; border-bottom:1px solid var(--cigar-line-2); }
/* HEADER_HTML 行 134 div（原无 class） */
  .hd-navbar-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; }
/* HEADER_HTML 行 135 div.siteLogo（原内联已移除） */
  .hd-logo-wrap { display:flex; align-items:center; }
/* HEADER_HTML 行 136 a（原无 class） */
  .hd-logo-link { text-decoration:none; display:flex; align-items:center; }
/* HEADER_HTML 行 137 img（原无 class） */
  .hd-logo-img { height:83px; width:auto; object-fit:contain; }
/* HEADER_HTML 行 140 nav.mainNav（原内联已移除） */
  .hd-nav { display:flex; gap:30px; align-items:center; }
/* HEADER_HTML 行 141-144 a ×4（原无 class；四处取值完全相同，共用一个类） */
  .hd-nav-link { color:var(--cigar-brand-ink-2); text-decoration:none; font-size:21px; }
/* HEADER_HTML 行 145/152 div.navQrItem（原内联已移除；两处取值相同） */
  .hd-qr-item { position:relative; cursor:pointer; }
/* HEADER_HTML 行 146/153 span（原无 class；两处取值相同） */
  .hd-qr-label { color:var(--cigar-brand-ink-2); font-size:21px; }
/* HEADER_HTML 行 147/154 div.navQrPopup（原内联已移除；两处取值相同。本规则刻意不加强制覆盖（important）标记：默认隐藏由本规则承担，
   悬停显示仍由上方 .navQrItem:hover .navQrPopup 的 important 规则接管，行为与改前完全一致） */
  .hd-qr-popup { display:none; position:absolute; top:35px; left:50%; transform:translateX(-50%); z-index:1000; background:var(--cigar-surface); border:1px solid var(--cigar-line-3); border-radius:8px; padding:15px; box-shadow:0 4px 12px var(--cigar-shadow); }
/* HEADER_HTML 行 148/155 div（原无 class；两处取值相同，二维码弹窗上方箭头三角） */
  .hd-qr-arrow { position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:0; height:0; border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:8px solid var(--cigar-surface); }
/* HEADER_HTML 行 149/156 img（原无 class；两处取值相同） */
  .hd-qr-img { width:120px; height:120px; display:block; object-fit:contain; }

/* FOOTER_HTML 行 166 footer（原无 class） */
  .ft-footer { background:var(--cigar-surface-2); border-top:1px solid var(--cigar-line); padding:30px 20px; margin-top:40px; }
/* FOOTER_HTML 行 167 div（原无 class） */
  .ft-inner { max-width:1200px; margin:0 auto; }
/* FOOTER_HTML 行 168 div（原无 class，黄色提示框） */
  .ft-notice { background:var(--cigar-surface-warn); border:1px solid var(--cigar-warn-line); border-radius:8px; padding:20px; margin-bottom:20px; }
/* FOOTER_HTML 行 169 h4（原无 class） */
  .ft-notice-title { color:var(--cigar-warn); margin:0 0 10px 0; font-size:16px; }
/* FOOTER_HTML 行 170 p（原无 class） */
  .ft-notice-text { color:var(--cigar-warn); margin:0; font-size:14px; line-height:1.8; }
/* FOOTER_HTML 行 174 div（原无 class，版权行） */
  .ft-copyright { text-align:center; color:var(--cigar-brand-ink-3); font-size:14px; padding-top:10px; }
/* FOOTER_HTML 行 177 div（原无 class，ICP 备案行） */
  .ft-beian { text-align:center; margin:15px 0 0; padding:10px 0; font-size:12px; color:var(--cigar-brand-ink-3); line-height:1.8; }
/* FOOTER_HTML 行 178 a（原无 class） */
  .ft-beian-link { color:var(--cigar-brand-ink-3); text-decoration:none; }

/* ===== stage3e / stage3f: 生成器里最后 9 处内联 style 迁出 =====
   落表依据: render_stock_tag 的两处 use_cls=False 调用点分别落在二层页
   (cigar-secondlayer.css + 本文件) 与款式页 (cigar.css + 本文件),
   两者唯一共同加载的样式表就是 cigar-shared.css, 故 3E 落本文件。
   3F-2 / 3F-3 / 3F-4 / 3F-5 同理: 大百科卡与比价表都在款式页 (cigar.css + 本文件),
   款式页 **不加载** cigar-pricetrack.css, 故落本文件而非 pricetrack 表。
   3F-1 在三层追踪页 (cigar-pricetrack.css + 本文件), 落 cigar-pricetrack.css。
   全部声明取值由脚本从生成器原文自动提取, 无手抄。 */


/* 3F-2 render_baike_card（生成器 L2246）—— 大百科配图。
   静态盒式属性与动态 cursor 分挂两个类, 两组属性互不重叠, 不存在同特异性互压。 */
  .pq-baike-img { width:100%; height:auto; object-fit:contain; border:1px solid var(--cigar-line-2); border-radius:4px; background:var(--cigar-surface-3); }
  .pq-baike-rot { cursor:pointer }
  .pq-baike-norot { cursor:default }



/* ================================================================
   阶段 1：手机端横向溢出修复 (2026-10-27 技术员)
   ---------------------------------------------------------------
   病 (390px 实测, 24 个 dist 页 + 4 个动态页全部复现):
       document.documentElement.scrollWidth = 482, 视口 390, 溢出 92px。
       溢出源唯一: nav.mainNav (left 206 → right 482)。
       根因: 6 个导航项 font-size:21px + gap:30px 排不开, 外层
             .hd-navbar-inner 是 justify-content:space-between 的 nowrap flex,
             logo 又占掉左侧, 导航被挤出容器右边界; flex-shrink 把每个导航项
             压到 21px 宽, 中文标题被逐字竖排 (实测 .hd-nav-link 宽 21px)。
   修法: 窄屏让导航**整体换行独占一行**并允许项内换行, 而不是横滚 ——
         横滚容器会把 hover 弹出的二维码裁掉, 换行则一个内容都不丢。
   ⚠️ 本块每一条覆盖都带 !important: 老页头 (includes/header.php) 的同名
      元素带内联 style, 内联样式优先级高于样式表, 不加 !important 会被内联
      值压住 (= 没改); dist 页元素的内联 style 已迁到本文件, !important 保留
      是为了与老页头行为一致, 对两者都安全。
   桌面 (>768px) 完全不受影响: 本块全部在 media query 内, 且不碰任何
   桌面取值 —— 改完 md5 会变, 但桌面渲染结果与改前逐像素一致。
   ================================================================ */
  @media (max-width:768px){
    .hd-navbar-inner{
      flex-wrap:wrap !important;
      justify-content:center !important;
      gap:10px 0 !important;
      padding:0 16px !important;
      box-sizing:border-box !important;
    }
    .hd-navbar-inner .hd-logo-img{ height:56px !important; }
    .hd-navbar-inner nav.hd-nav{
      flex:1 0 100% !important;
      width:100% !important;
      min-width:0 !important;
      max-width:100% !important;
      box-sizing:border-box !important;
      justify-content:center !important;
      flex-wrap:wrap !important;
      gap:8px 16px !important;
      padding:4px 0 2px !important;
      border-top:1px solid var(--cigar-line-2);
    }
    /* 导航文字本身也带 font-size, 必须 !important 才能压住 */
    .hd-navbar-inner nav.hd-nav > a,
    .hd-navbar-inner nav.hd-nav .hd-qr-item > .hd-qr-label{
      font-size:15px !important;
      white-space:nowrap !important;
      line-height:1.9 !important;
    }
    /* 触摸目标 ≥44px (改前实测: 导航项被压到 21px 宽, 不达标) */
    .hd-navbar-inner nav.hd-nav > a,
    .hd-navbar-inner nav.hd-nav .hd-qr-item{
      display:inline-flex !important;
      align-items:center !important;
      min-height:44px !important;
    }
    .hd-navbar-inner nav.hd-nav .hd-qr-item > .hd-qr-label{
      display:inline-flex !important;
      align-items:center !important;
      min-height:44px !important;
    }
    /* 二维码弹层: 窄屏改成**视口居中吸底**, 避免贴着屏幕右缘再溢出一次 */
    .hd-navbar-inner .hd-qr-popup{
      position:fixed !important;
      top:auto !important; bottom:24px !important;
      left:50% !important; right:auto !important;
      transform:translateX(-50%) !important;
      margin:0 !important;
    }
  }
  @media (max-width:400px){
    .hd-navbar-inner nav.hd-nav{ gap:8px 12px !important; }
    .hd-navbar-inner nav.hd-nav > a,
    .hd-navbar-inner nav.hd-nav .hd-qr-item > .hd-qr-label{ font-size:14px !important; }
    /* .pk-bk-desc 55px 独立溢出 (实测 320px: left 265 → right 375)。
       根因: .pk-bk-media-row 是 nowrap flex, .pk-bk-media 固定 200px 不缩,
             .pk-bk-desc 的 min-content 宽 110px 撑不下 → 溢出 55px。
       修法: 窄屏让 media 行换行, 图在上、文字在下各占整行 (与
             cigar-secondlayer.css 的 .l2row 窄屏换行同一手法)。 */
    .pk-bk-media-row{ flex-wrap:wrap !important; }
    .pk-bk-desc{ flex:1 1 100% !important; min-width:0 !important; }
  }

/* ================================================================
   新页型样式 (4 类) —— 2026-10-29 前端样式重做
   ---------------------------------------------------------------
   落点理由: 本文件是 dist 页**唯一**注入点 (1402/1402 页引用),
             新页型 (雪茄品牌/雪茄型号/斗草品牌/斗草型号) 由生成器产出,
             无论它加载哪几份样式表, 只要加载本文件即生效 ——
             新页型不会因为「漏 link 某一份 CSS」而掉样式。
   皮肤纪律: 沿用**现网页面观感** (ink #18181C / paper #FCFBF8 /
             line #ece7dd / wine #960630 / 零常态阴影 / 行间 1px 灰边),
             **不抄对方站的配色/字体/素材** —— 只借它「行式报价表」
             这一结构 (每行 = 一个来源站的一次报价)。
   命名纪律: 新增类名一律 `pt-` 前缀 (设计契约 §6.1), 不复用对方站类名,
             不与现有 pk- / pq- / hd- / ft- / .prow / .c-* 冲突。
   制式纪律: 品牌名 / 型号名 / 规格 / 价格 / 单支参考 / 来源站 / 库存 /
             免责声明 / 跳转原站 —— 每项都有对应样式位, 一个都不丢。
   交易纪律: 线上不做任何销售 —— 本块内无购买/购物车/下单/支付元素。
   响应式纪律: 1440 / 1280 / 1024 / 390 四档, 文档级横向溢出恒为 0。
   ================================================================ */

/* ---------- 1. 型号页 · 信息区 (型号名中/英 + 品牌 + 参数 + 图) ---------- */
.pt-model-hero{
  display:flex; gap:var(--s5); align-items:flex-start;
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  padding:var(--s5); margin-bottom:var(--s5);
}
.pt-model-img{
  flex:0 0 220px; width:220px; height:220px; object-fit:contain;
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
}
.pt-model-info{flex:1 1 auto; min-width:0;}
.pt-model-brand{
  display:inline-flex; align-items:center; min-height:44px;
  font-size:13px; line-height:1.6; color:var(--wine);
  border:1px solid var(--wine); border-radius:22px; padding:0 14px;
  margin-bottom:var(--s2); text-decoration:none;
}
.pt-model-brand:hover{background:var(--wine); color:#fff;}
.pt-model-name{
  font-size:26px; line-height:1.35; font-weight:700; color:var(--ink);
  margin:0 0 var(--s1) 0;
}
.pt-model-name-en{font-size:15px; line-height:1.5; color:#666; margin:0 0 var(--s3) 0;}
.pt-model-desc{
  font-size:13px; line-height:1.8; color:var(--mute); margin:0 0 var(--s3) 0;
}

/* 参数行 (17 行参数表载体: 有值才渲染, 空值不留空栏) */
.pt-facts-table{border-top:1px solid var(--line);}
.pt-facts-row{
  display:flex; justify-content:space-between; gap:var(--s4);
  padding:9px 0; border-bottom:1px solid var(--hair);
  font-size:14px; line-height:1.7;
}
.pt-facts-key{flex:0 0 140px; color:var(--ink); font-weight:700;}
.pt-facts-val{flex:1 1 auto; min-width:0; color:#555; text-align:right;}

/* ---------- 2. 型号页 · 报价区 (行式报价表) ---------- */
.pt-price-table{
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  overflow:hidden; margin-bottom:var(--s5);
}
.pt-price-head, .pt-price-line{
  display:grid; align-items:center;
  grid-template-columns:
    56px                       /* 商品图 */
    minmax(64px,.7fr)          /* 原价 */
    minmax(76px,.8fr)          /* 现价 */
    minmax(96px,1fr)           /* 人民币参考价 */
    minmax(80px,.85fr)         /* 单支参考 */
    minmax(96px,1.1fr)         /* 规格 */
    minmax(72px,.8fr)          /* 库存 */
    minmax(88px,.95fr)         /* 更新时间 */
    minmax(88px,.95fr)         /* 来源站 */
    84px;                      /* 跳转原站 */
  gap:var(--s2); padding:10px var(--s4);
}
.pt-price-head{
  background:var(--paper); border-bottom:1px solid var(--line);
  font-size:12px; color:var(--mute); font-weight:400;
}
.pt-price-line{
  border-bottom:1px solid var(--cigar-line-2); font-size:14px;
  min-height:56px;
}
.pt-price-line:last-child{border-bottom:0;}
.pt-price-line:hover{background:var(--paper);}

/* 单元格 */
.pt-col-img{display:flex; align-items:center; justify-content:center;}
.pt-col-img img{
  width:40px; height:40px; object-fit:contain;
  border:1px solid var(--line); border-radius:6px; background:#fff;
}
.pt-col-orig{text-align:right; color:var(--mute2); font-size:12px;}
.pt-col-now{text-align:right;}
.pt-col-now .pt-amt{font-size:16px; font-weight:700; color:var(--price);}
.pt-col-now .pt-amt.is-out{color:#999;}
.pt-col-cny{text-align:right;}
.pt-col-cny .pt-amt{font-size:16px; font-weight:700; color:var(--price);}
.pt-col-cny .pt-amt.is-out{color:#999;}
.pt-col-cny .pt-mark{display:block; font-size:11px; color:var(--out); margin-top:1px;}
.pt-col-per{text-align:right; font-size:13px;}
.pt-col-per .pt-per-val{color:var(--stock);}
.pt-col-per .pt-per-val.is-none{color:var(--mute3);}
.pt-col-spec{
  text-align:right; font-size:13px; color:#555;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pt-col-stock{text-align:center;}
.pt-col-time{text-align:right; font-size:13px; color:var(--mute);}
.pt-col-site{text-align:right; font-size:13px; color:#555;}
.pt-col-go{text-align:right;}

/* 三态胶囊 (沿用现网三态色与规格) */
.pt-badge{
  display:inline-block; padding:2px 8px; border-radius:5px;
  font-size:12px; line-height:1.5; font-weight:700; white-space:nowrap;
}
.pt-badge.s{color:var(--stock); background:#fff; border:1px solid var(--line);}
.pt-badge.o{color:var(--out); background:var(--out-bg); border:1px solid var(--out-line);}
.pt-badge.n{color:var(--mute); background:#f5f5f5; border:1px solid var(--line); font-weight:400;}

/* 跳转原站按钮 (中性文案, 无交易语义; 触摸目标 ≥44px) */
.pt-go-src{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; min-width:84px; padding:0 10px;
  background:var(--ink); color:#fff; border-radius:6px;
  font-size:13px; line-height:1.4; text-align:center;
  text-decoration:none; white-space:nowrap;
}
.pt-go-src:hover{background:#000;}

/* ---------- 3. 型号页 · 排序控件 (默认/单价最低/总价最低/有货优先) ---------- */
.pt-sort-bar{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--s2);
  padding:var(--s3) var(--s4); background:var(--paper);
  border-bottom:1px solid var(--line); font-size:13px;
}
.pt-sort-label{color:var(--mute); margin-right:var(--s1);}
.pt-sort-btn{
  font-family:inherit; font-size:13px; line-height:1.4; cursor:pointer;
  min-height:44px; padding:0 14px; border-radius:8px; white-space:nowrap;
  background:#fff; color:#555; border:1px solid var(--line);
  transition:background .15s,color .15s,border-color .15s;
}
.pt-sort-btn:hover{border-color:var(--wine); color:var(--wine);}
.pt-sort-btn.is-active{background:var(--ink); color:#fff; border-color:var(--ink); font-weight:700;}

/* ---------- 4. 型号页 · 空态 / 免责声明 / 跳转原站说明 ---------- */
.pt-empty{
  padding:48px var(--s4); text-align:center;
  background:var(--paper); border:1px dashed var(--line); border-radius:var(--r);
  margin-bottom:var(--s5);
}
.pt-empty-label{font-size:17px; font-weight:700; color:var(--mute3);}
.pt-empty-text{font-size:13px; line-height:1.8; color:var(--mute); margin-top:var(--s2);}
.pt-disclaimer{
  font-size:12px; line-height:1.9; color:#aaa; margin:0 0 var(--s3) 0;
}
.pt-disclaimer strong{color:var(--out); font-weight:700;}
.pt-src-note{
  font-size:12px; line-height:1.8; color:var(--mute); margin:0 0 var(--s5) 0;
}

/* ---------- 5. 品牌页 · 品牌介绍 + 型号行式卡片列表 ---------- */
.pt-brand-hero{
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  padding:var(--s5); margin-bottom:var(--s5);
}
.pt-brand-name{
  font-size:28px; line-height:1.35; font-weight:700; color:var(--ink);
  margin:0 0 var(--s1) 0;
}
.pt-brand-name-en{font-size:14px; color:var(--mute); margin:0 0 var(--s3) 0;}
.pt-brand-intro{font-size:14px; line-height:1.9; color:#666; margin:0;}

.pt-brand-list{
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  overflow:hidden; margin-bottom:var(--s5);
}
.pt-brand-row{
  display:grid; align-items:center; gap:var(--s3);
  grid-template-columns:48px minmax(0,1fr) auto auto;
  padding:12px var(--s4); border-bottom:1px solid var(--cigar-line-2);
  color:var(--ink); text-decoration:none;
}
.pt-model-item:last-child{border-bottom:0;}
.pt-model-item:hover{background:var(--paper);}
.pt-brand-row-thumb{
  width:40px; height:40px; object-fit:contain;
  border:1px solid var(--line); border-radius:6px; background:#fff;
}
.pt-brand-row-main{min-width:0;}
.pt-brand-row-name{
  display:block; font-size:15px; font-weight:700; color:var(--ink);
  text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pt-model-item-name:hover{color:var(--wine); text-decoration:underline;}
.pt-brand-row-en{
  display:block; font-size:12px; color:var(--mute); margin-top:2px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pt-brand-row-stats{
  display:flex; align-items:center; gap:var(--s3);
  font-size:12px; color:var(--mute); white-space:nowrap;
  text-decoration:none;
}
.pt-brand-row:hover .pt-brand-row-stats{color:var(--mute);}
.pt-brand-row-stats b{color:var(--ink); font-weight:700;}
.pt-brand-row-go{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; min-width:44px; padding:0 14px;
  border:1px solid var(--line); border-radius:6px;
  font-size:13px; color:var(--ink); text-decoration:none; background:#fff;
}
.pt-model-item-go:hover{border-color:var(--wine); color:var(--wine);}

/* ---------- 6. 斗草页型 (规格按重量; 与雪茄页共用同一套骨架) ---------- */
.pt-pipe-brand .pt-brand-name{font-size:26px;}
.pt-pipe-item .pt-brand-row-name{font-size:15px;}
.pt-pipe-param{
  display:flex; justify-content:space-between; gap:var(--s4);
  padding:8px 0; border-bottom:1px solid var(--hair); font-size:13px;
}
.pt-pipe-param .pt-facts-key{flex:0 0 120px; font-size:13px;}
.pt-pipe-empty .pt-empty-label{font-size:16px;}

/* ---------- 7. 响应式: 1024 / 768 / 390 ---------- */
@media (max-width:1199px){
  /* 10 列压到 1024 可容纳: 缩列宽 + 收字距, 文档级溢出仍为 0 */
  .pt-price-head, .pt-price-line{
    grid-template-columns:
      40px
      minmax(58px,.7fr) minmax(68px,.8fr) minmax(84px,1fr)
      minmax(70px,.85fr) minmax(80px,1fr) minmax(66px,.8fr)
      minmax(78px,.9fr) minmax(78px,.9fr) 76px;
    gap:6px; padding:9px var(--s3); font-size:13px;
  }
  .pt-col-now .pt-amt, .pt-col-cny .pt-amt{font-size:15px;}
  .pt-col-img img{width:34px; height:34px;}
  .pt-model-hero{gap:var(--s4); padding:var(--s4);}
  .pt-model-img{flex:0 0 170px; width:170px; height:170px;}
  .pt-model-name{font-size:23px;}
}
@media (max-width:900px){
  /* 报价表转「标签 : 值」形态 (沿用现网款式页 ≤768px 的堆叠手法) */
  .pt-price-head{display:none;}
  .pt-price-line{
    grid-template-columns:minmax(0,1fr); gap:var(--s1);
    padding:var(--s3) var(--s4); align-items:start;
  }
  .pt-col-img{justify-content:flex-start;}
  .pt-col-orig, .pt-col-now, .pt-col-cny, .pt-col-per,
  .pt-col-spec, .pt-col-stock, .pt-col-time, .pt-col-site, .pt-col-go{
    display:flex; justify-content:space-between; align-items:baseline;
    gap:var(--s3); text-align:right; white-space:normal;
  }
  .pt-col-orig::before, .pt-col-now::before, .pt-col-cny::before,
  .pt-col-per::before, .pt-col-spec::before, .pt-col-stock::before,
  .pt-col-time::before, .pt-col-site::before, .pt-col-go::before{
    content:attr(data-label); flex:0 0 auto;
    font-size:11px; color:var(--mute2); font-weight:400; text-align:left;
  }
  .pt-col-go{justify-content:flex-start;}
  .pt-model-hero{flex-direction:column; align-items:stretch;}
  .pt-model-img{flex:0 0 auto; width:100%; height:auto; max-height:260px;}
  .pt-brand-row{grid-template-columns:44px minmax(0,1fr); row-gap:var(--s2);}
  .pt-brand-row-stats, .pt-brand-row-go{grid-column:2;}
  .pt-brand-row-go{justify-self:start;}
}
@media (max-width:768px){
  .pt-facts-key{flex:0 0 96px; font-size:13px;}
  .pt-facts-val{font-size:13px;}
  .pt-sort-bar{padding:var(--s3);}
  .pt-sort-btn{flex:0 0 auto;}
  .pt-brand-hero{padding:var(--s4);}
  .pt-brand-name{font-size:23px;}
}
@media (max-width:400px){
  .pt-model-name{font-size:20px;}
  .pt-brand-row{padding:12px var(--s3);}
  .pt-facts-key{flex:0 0 84px;}
}

/* ---------- 8. 斗草页型 · 品牌参数条 (2026-10-30 斗草侧) ----------
   ---------------------------------------------------------------
   落点理由: 斗草品牌页多一块「品牌参数条」(型号数 / 报价条数 / 有货型号数 /
             来源站数)。它必须与同页的 .pt-brand-hero / .pt-brand-list 一样
             是**白卡片**, 否则这一块会裸贴在纸底背景上, 与上下两块不齐。
             所以这里只新增这一个包裹类, **一行已有 pt-* 规则都没动**。
   取值纪律: 全部沿用本文件与 cigar.css 既有变量与字面量, 不新造颜色值。
   响应式: 卡片内边距随档位收紧 (≤768px), 文档级横向溢出恒为 0。 */
.pt-pipe-fact-strip{
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  padding:var(--s5); margin-bottom:var(--s5);
}
.pt-pipe-fact-strip .pt-facts-table{border-top:0;}
@media (max-width:768px){
  .pt-pipe-fact-strip{padding:var(--s4);}
}

/* ---------- 9. 斗草型号页 · 单字段紧凑信息条 (2026-10-30 斗草侧) ----------
   ---------------------------------------------------------------
   落点理由: 斗草型号页的「有值字段」通常只有 1 个 (类别), 渲染成多行参数表
             就只剩孤零零一行, 观感像「内容缺失」。此时改用**一行**紧凑信息条,
             复用已有的 .pt-pipe-fact-strip 白卡片样式, 与品牌页参数条同源。
   取值纪律: 沿用本文件既有变量与字面量, 不新造颜色值。
   纪律: 只新增这一组规则, 既有 .pt-facts-* / .pt-pipe-* 语义一行未改。
   响应式: ≤768px 收紧内边距, 文档级横向溢出恒为 0。 */
.pt-pipe-fact-strip.is-compact{padding:var(--s4) var(--s5);}
.pt-pipe-fact-strip.is-compact .pt-facts-row{
  border-bottom:0; padding:0; align-items:center;
}
.pt-pipe-fact-strip.is-compact .pt-facts-key{flex:0 0 auto;}
@media (max-width:768px){
  .pt-pipe-fact-strip.is-compact{padding:var(--s4);}
}

/* ---------- 10. 品牌页 · 多标签结构 (2026-10-30 品牌页 4 tab 改造) ----------
   ---------------------------------------------------------------
   落点理由: 雪茄品牌页原来是「一列铺开」全部型号, 缺对方站 (mcigar.com)
             的多标签结构: 常规雪茄 / 限量雪茄 / 品牌介绍 / 环标。
             限量雪茄内部再按 4 档二级分组 (年度限量 / 地区限量 / 稀有限量 / 停产)。

   切换机制: **纯 CSS, 零 JavaScript**。
             DOM 结构固定为 「input(radio) -> label -> panel」三段兄弟节点,
             CSS 用 nth-of-type 兄弟选择器定位:
               第 N 个 radio 被选中 -> 显示第 N 个 panel, 并点亮第 N 个 label。
             这样:
               · 内容全部留在 DOM 里 (SEO 与缓存照旧, 不依赖 JS 渲染);
               · 静态样式表就能覆盖全部 430 个品牌页 (不靠每页内联样式);
               · 禁用 JS 也能切换。

   取值纪律: 沿用本文件既有变量与字面量, 不新造颜色值。
   纪律: 本段**只新增** .pt-tabs / .pt-tab* / .pt-subtab* / .pt-band* /
         .pt-cigar-fact-strip 这些类, 既有 .pt-brand-* / .pt-facts-* /
         .pt-pipe-* 语义一行未改。
   响应式: 窄屏下标签条横向滚动 (overflow-x:auto), 不产生文档级横向溢出。 */

/* ---- 标签条容器 ---- */
.pt-tabs{
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  margin-bottom:var(--s5); overflow:hidden;
}
.pt-tab-in{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.pt-tab{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:0 18px; border-bottom:2px solid transparent;
  font-size:14px; color:var(--mute); cursor:pointer; white-space:nowrap;
  transition:color .15s,border-color .15s,background .15s;
}
.pt-tab b{color:inherit; font-weight:700;}
.pt-tab:hover{color:var(--ink); background:var(--paper);}

/* 标签条: 横向可滚动 (窄屏不撑破文档) */
.pt-tabs{
  display:block;
}
.pt-tab-bar{
  display:flex; gap:0; overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;
  border-bottom:1px solid var(--line); background:var(--paper);
}
.pt-tab-bar::-webkit-scrollbar{height:4px;}
.pt-tab-bar::-webkit-scrollbar-thumb{background:var(--line); border-radius:2px;}

/* 选中态: radio:checked 兄弟选择器 (纯 CSS 切换, 零 JS)
   DOM: .pt-tabs > input.pt-tab-in × N -> .pt-tab-bar > label.pt-tab × N
                                  -> .pt-tab-panels > .pt-tab-panel × N
   nth-of-type 只在**同标签名**兄弟里计数, 所以 input/label/div 互不干扰。 */
.pt-tabs > .pt-tab-in:nth-of-type(1):checked ~ .pt-tab-bar .pt-tab:nth-of-type(1),
.pt-tabs > .pt-tab-in:nth-of-type(2):checked ~ .pt-tab-bar .pt-tab:nth-of-type(2),
.pt-tabs > .pt-tab-in:nth-of-type(3):checked ~ .pt-tab-bar .pt-tab:nth-of-type(3),
.pt-tabs > .pt-tab-in:nth-of-type(4):checked ~ .pt-tab-bar .pt-tab:nth-of-type(4),
.pt-tab.is-active{
  color:var(--ink); font-weight:700;
  border-bottom-color:var(--wine); background:#fff;
}
/* 选中了别的 tab -> 默认那个 .is-active 必须复位 (否则两个标签同时高亮) */
.pt-tabs > .pt-tab-in:nth-of-type(2):checked ~ .pt-tab-bar .pt-tab.is-active,
.pt-tabs > .pt-tab-in:nth-of-type(3):checked ~ .pt-tab-bar .pt-tab.is-active,
.pt-tabs > .pt-tab-in:nth-of-type(4):checked ~ .pt-tab-bar .pt-tab.is-active{
  color:var(--mute); font-weight:400;
  border-bottom-color:transparent; background:transparent;
}

/* 面板: 默认全部隐藏, 被选中的那个显示 */
.pt-tab-panel{display:none;}
.pt-tabs > .pt-tab-in:nth-of-type(1):checked ~ .pt-tab-panels .pt-tab-panel:nth-of-type(1),
.pt-tabs > .pt-tab-in:nth-of-type(2):checked ~ .pt-tab-panels .pt-tab-panel:nth-of-type(2),
.pt-tabs > .pt-tab-in:nth-of-type(3):checked ~ .pt-tab-panels .pt-tab-panel:nth-of-type(3),
.pt-tabs > .pt-tab-in:nth-of-type(4):checked ~ .pt-tab-panels .pt-tab-panel:nth-of-type(4){
  display:block;
}
.pt-tab-panel > .pt-brand-list{margin:0; border:0; border-radius:0;}

/* ---- 限量区二级分组 (4 档) ---- */
.pt-subtabs{
  border-top:1px solid var(--line); background:var(--paper);
}
.pt-subtab-in{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.pt-subtab-bar{
  display:flex; gap:0; overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;
  border-bottom:1px solid var(--line);
}
.pt-subtab-bar::-webkit-scrollbar{height:4px;}
.pt-subtab-bar::-webkit-scrollbar-thumb{background:var(--line); border-radius:2px;}
.pt-subtab{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:40px; padding:0 14px; border-bottom:2px solid transparent;
  font-size:13px; color:var(--mute); cursor:pointer; white-space:nowrap;
  transition:color .15s,border-color .15s,background .15s;
}
.pt-subtab b{color:inherit; font-weight:700;}
.pt-subtab:hover{color:var(--ink); background:#fff;}
.pt-subtabs > .pt-subtab-in:nth-of-type(1):checked ~ .pt-subtab-bar .pt-subtab:nth-of-type(1),
.pt-subtabs > .pt-subtab-in:nth-of-type(2):checked ~ .pt-subtab-bar .pt-subtab:nth-of-type(2),
.pt-subtabs > .pt-subtab-in:nth-of-type(3):checked ~ .pt-subtab-bar .pt-subtab:nth-of-type(3),
.pt-subtabs > .pt-subtab-in:nth-of-type(4):checked ~ .pt-subtab-bar .pt-subtab:nth-of-type(4){
  color:var(--ink); font-weight:700; border-bottom-color:var(--wine); background:#fff;
}
.pt-subtab-panel{display:none;}
.pt-subtabs > .pt-subtab-in:nth-of-type(1):checked ~ .pt-subtab-panels .pt-subtab-panel:nth-of-type(1),
.pt-subtabs > .pt-subtab-in:nth-of-type(2):checked ~ .pt-subtab-panels .pt-subtab-panel:nth-of-type(2),
.pt-subtabs > .pt-subtab-in:nth-of-type(3):checked ~ .pt-subtab-panels .pt-subtab-panel:nth-of-type(3),
.pt-subtabs > .pt-subtab-in:nth-of-type(4):checked ~ .pt-subtab-panels .pt-subtab-panel:nth-of-type(4){
  display:block;
}
.pt-subtab-panel > .pt-brand-list{margin:0; border:0; border-radius:0;}

/* ---- 环标区 ---- */
.pt-bands{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s4); padding:var(--s4);
}
.pt-band{
  border:1px solid var(--line); border-radius:var(--r);
  padding:var(--s3); background:#fff; text-align:center;
}
.pt-band-img{
  display:block; width:100%; height:auto; max-width:320px;
  margin:0 auto var(--s2); object-fit:contain; border-radius:6px;
  background:var(--paper);
}
.pt-band-cap{font-size:13px; line-height:1.8; color:var(--mute);}
.pt-band-head{font-weight:700; color:var(--ink); margin-bottom:2px;}
.pt-band-cap2{color:#666;}
.pt-band-cap1{color:var(--mute);}

/* ---- 雪茄型号页 · 单字段紧凑信息条 (与斗草侧同一条规则) ---- */
.pt-cigar-fact-strip{
  background:#fff; border:var(--card-bd); border-radius:var(--r);
  padding:var(--s5); margin-bottom:var(--s5);
}
.pt-cigar-fact-strip.is-compact{padding:var(--s4) var(--s5);}
.pt-cigar-fact-strip.is-compact .pt-facts-row{
  border-bottom:0; padding:0; align-items:center;
}
.pt-cigar-fact-strip.is-compact .pt-facts-key{flex:0 0 auto;}

/* ---- 响应式 ---- */
@media (max-width:768px){
  .pt-tab{padding:0 12px; font-size:13px;}
  .pt-subtab{padding:0 10px; font-size:12px;}
  .pt-bands{grid-template-columns:minmax(0,1fr); padding:var(--s3); gap:var(--s3);}
  .pt-cigar-fact-strip{padding:var(--s4);}
}

/* ---- 限量区二级分组扩到 5 档 (2026-10-30 新增「全部」档) ----
   ---------------------------------------------------------------
   照对方站 (mcigar.com) 品牌页 chunk 原文, 限量区是 5 档:
     全部 / 年度限量 / 地区限量 / 稀有限定 / 停产。
   「全部」档排在第 1 位, **复用上方既有的 nth-of-type(1) 规则**, 无需新增。
   本段**只新增** nth-of-type(5) 两条规则, 承接第 5 档 (停产) 的高亮与显示:
     第 5 个 radio 被选中 -> 点亮第 5 个 label + 显示第 5 个 panel。
   既有 4 档规则 (nth-of-type 1..4) **一行未改**。
   仍然是**纯 CSS 切换, 零 JavaScript**。
   位置: 追加在文件末尾, 不动任何既有行 (delete/replace = 0)。 */
.pt-subtabs > .pt-subtab-in:nth-of-type(5):checked ~ .pt-subtab-bar .pt-subtab:nth-of-type(5){
  color:var(--ink); font-weight:700; border-bottom-color:var(--wine); background:#fff;
}
.pt-subtabs > .pt-subtab-in:nth-of-type(5):checked ~ .pt-subtab-panels .pt-subtab-panel:nth-of-type(5){
  display:block;
}
/* ============================================================================
   2026-10-30 派单 B · 报价行 3 枚标签 + 复制本站型号页链接
   ----------------------------------------------------------------------------
   本段**只新增**规则, 既有规则一行未改 (delete/replace = 0), 追加在文件末尾。

   新增类名 (全部为本单新造, 与既有 .pt-* 体系同风格):
     .pt-tag        规格列的小标签 (支装 / 克装)
     .pt-tag-pack   包装形态标签 (对方站 5 类: 残次品/套装·保湿盒/整箱·组合/多盒组合/规格未标注)
     .pt-warn       非标准装的比价口径提示 (琥珀色, 照对方站配色)
     .pt-share      型号页「复制本站型号页链接」块
     .pt-copy-url   降级路径: 只读链接文本框 (JS 不可用时靠它)
     .pt-copy-btn   复制按钮 (默认隐藏, 由 JS 渐进增强显示)

   一条必要的覆盖: .pt-col-spec 既有规则是单行省略号 (white-space:nowrap),
   现在规格列要装「包装名 + 标签 + 提示」多行, 故用**更高优先级的新规则**覆盖,
   不改动既有那一行 (CSS 只增不改)。
   ============================================================================ */
.pt-tag{
  display:inline-block; margin:2px 0 0 4px; padding:1px 6px;
  border:1px solid var(--line); border-radius:4px; background:#f5f5f5;
  color:#555; font-size:11px; line-height:1.6; font-weight:400;
  white-space:nowrap; vertical-align:middle;
}
.pt-tag-pack{color:var(--wine); background:#faf3f4;}
.pt-warn{
  display:block; margin-top:3px; padding:2px 6px;
  border:1px solid #fde68a; border-radius:4px;
  background:#fffbeb; color:#b45309;
  font-size:11px; line-height:1.5; font-weight:400;
  white-space:normal;
}
/* 规格列现在可能装多行 (包装名 + 标签 + 提示) —— 解除单行省略号 */
.pt-price-line .pt-col-spec{
  white-space:normal; overflow:visible; text-overflow:clip;
}

/* ---- 型号页 · 复制本站型号页链接 (B6) ---- */
.pt-share{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--s2);
  margin:0 0 var(--s4) 0;
}
.pt-copy-url{
  flex:1 1 320px; min-width:0; height:44px; padding:0 10px;
  border:1px solid var(--line); border-radius:6px; background:#fff;
  font-family:inherit; font-size:12px; color:var(--mute);
}
.pt-copy-url.is-collapsed{display:none;}
.pt-copy-btn{
  display:none; align-items:center; justify-content:center;
  min-height:44px; padding:0 14px;
  border:1px solid var(--line); border-radius:6px; background:#fff;
  color:var(--ink); font-family:inherit; font-size:13px; cursor:pointer;
  white-space:nowrap;
}
.pt-copy-btn:hover{border-color:var(--wine); color:var(--wine);}
@media (max-width:768px){
  .pt-copy-url{font-size:11px;}
  .pt-copy-btn{padding:0 10px; font-size:12px;}
}
