/* deeptech custom.css 鈥?缁熶竴澶嶇敤鏍峰紡 / 鍘?Elementor 淇 */
:root{
  /* ===== O2 瑙嗚绯荤粺 design tokens锛堝叏绔欏崟涓€淇℃簮锛岃鑼冭 vault Pro-B-content/design-system.md锛?==== */
  /* 鍝佺墝涓昏壊锛堟繁钃濓級 */
  --color-primary:#1B4965; --color-primary-dark:#123449; --color-primary-light:#3A7CA5; --color-primary-050:#EAF1F5;
  /* 寮鸿皟鑹诧紙姗欙級 */
  --color-accent:#F35407; --color-accent-dark:#D6440A; --color-accent-050:#FEEEE6;
  /* 涓€ч樁 */
  --color-ink:#1A2A33; --color-text:#3D4A52; --color-muted:#6B7A85; --color-border:#E1E7EB; --color-bg:#FFFFFF; --color-bg-soft:#F4F7F9;
  /* 鐘舵€佽壊 */
  --color-success:#2E7D46; --color-warning:#C77700; --color-error:#C0392B; --color-info:#3A7CA5;
  /* 瀛椾綋涓庢帓鐗?*/
  --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC","Hiragino Sans GB",sans-serif;
  --fs-xs:13px; --fs-sm:14px; --fs-base:16px; --fs-md:18px; --fs-lg:20px; --fs-xl:24px; --fs-2xl:30px; --fs-3xl:38px;
  --lh-body:1.6; --lh-heading:1.25; --fw-normal:400; --fw-medium:600; --fw-bold:700;
  /* 闂磋窛锛? 鍩烘暟锛?*/
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  /* 鍦嗚 / 闃村奖 */
  --radius-sm:4px; --radius-md:8px; --radius-lg:12px;
  --shadow-card:0 2px 8px rgba(27,73,101,.08); --shadow-card-hover:0 6px 20px rgba(27,73,101,.14);
  /* ===== 鏃х被鍚嶅吋瀹瑰埆鍚嶏紙.vt-* 娌跨敤锛涙寚鍚戜笂鏂规柊 token锛屾敼鑹插彧鏀规澶勪竴澶勶級===== */
  --vt-blue:var(--color-primary); --vt-navy:var(--color-primary-dark); --vt-orange:var(--color-accent);
  --vt-ink:var(--color-ink); --vt-muted:var(--color-muted); --vt-line:var(--color-border); --vt-soft:var(--color-bg-soft);
}

/* ---- laser-process(12609)：原此处 3 条 .page-id-12609 hero 修正规则（标题深色 / 下划线蓝 / 副标题灰）
   已于 O6-C（2026-09-19）搬进该页自带 <style> 并 token 化（--color-ink / --color-accent / --color-text），
   custom.css 不再保留任何页面级修正 —— 页面级修正一律归页面，见 [[design-system]]。---- */

/* ---- solutions(7446): 原 .entry-content{padding-top:100px} 已于 O6-A 移除 ----
   该页 O6-A 起改用全站统一的 .vt-banner--page 页头（与关于页/联系页同范式），banner 即页眉下方第一屏；
   再留 100px 顶部内距会在悬浮页眉与 banner 之间拉出一条白缝。原规则为「旧页无 banner、
   标题须避开悬浮页眉」而设，前提已不成立。窄屏 70px 变体一并删除。 */

/* ==================== 閫氱敤椤堕儴 Banner锛堜骇鍝佸綊妗?璇︽儏绛夛級==================== */
/* full-bleed: span the viewport even when nested in a boxed container */
.vt-banner{position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background:linear-gradient(135deg,var(--vt-navy),var(--vt-blue));color:#fff;padding:58px 20px;text-align:center;background-size:cover;background-position:center}
.vt-banner__inner{max-width:1290px;margin:0 auto;padding:0 20px}
.vt-banner__title{font-size:38px;font-weight:800;margin:0;letter-spacing:-.5px;line-height:1.2}
.vt-banner__sub{font-size:17px;color:rgba(255,255,255,.86);margin:14px 0 0}
/* 褰掓。锛氳儗鏅浘 hero锛屽乏瀵归綈璐村簳锛屽榻愭棫绔?min-h 350 / 鏍囬65 #eee / 鍓爣18 #fff) */
.vt-banner--products{display:flex;align-items:flex-end;min-height:350px;padding:0 4% 42px;text-align:left;background-position:center 45%}
.vt-banner--products .vt-banner__inner{width:100%;text-align:left}
/* 2026-09-19 底图两次换版，取景定在上行基础规则里的纯百分比 center 45%（用户两轮四档取景预览定案）。
   曾有一条 ≥768px 的 calc(30% - 50px)「上移 50px」定值，是为旧 3:2 底图 man-5918679_1280.jpg 手工推的，
   换 16:9 图后已无依据，整条删除——**取景一律用百分比、不加 px 定值**（px 定值换图/换比例即失准）。
   45% 的由来：把左上那扇亮窗户移出画面，banner 顶边不压亮块；露出原图纵向约 25%–69%（头盔+焊枪完整）。
   实测：视口 768 / 784 / 800 / 1424 底部均无露缝。 */
.vt-banner--products .vt-banner__title{font-size:52px;font-weight:800;color:#eee;line-height:1.2}
.vt-banner--products .vt-banner__sub{font-size:18px;color:#fff;line-height:1.5;margin-top:8px}
/* 鍗曞搧锛氫笌褰掓。 banner 鍚屼竴濂楋紙img_1 鑳屾櫙+钂欑増+350px+鏍囬宸︿笅锛夛紝閫忔槑椤电湁瑕嗙洊椤堕儴 */
.vt-banner--single{display:flex;align-items:flex-end;min-height:350px;padding:0 4% 42px;text-align:right;background-position:center bottom}
/* 鐢靛姬鐒婃帴绫讳骇鍝? banner 鑳屾櫙缁熶竴鍨傜洿瀵归綈(浠庡眳涓線涓婄Щ鍥剧墖) */
.vt-banner--vc{background-position:center 80%}
/* 娑插帇瀵圭剨鏈?+ 鐢电啍鐒婃満: 瀵归綈鏂瑰紡淇濇寔涓€鑷?鍨傜洿灞呬腑) */
.postid-13207 .vt-banner--single,.postid-13313 .vt-banner--single{background-position:center center}
/* TEKNO-J: 鍥剧墖鍐嶅線涓嬬Щ涓€鐐?*/
.postid-14452 .vt-banner--single{background-position:center 35%!important}
.vt-banner--single .vt-banner__inner{width:100%;text-align:right}
.vt-banner--single .vt-banner__title{font-size:38px;font-weight:800;color:#fff;line-height:1.2;text-shadow:0 2px 12px rgba(0,0,0,.35)}
/* 閫氱敤椤甸潰 banner锛堣仈绯?鍏充簬绛?Gutenberg 椤靛鐢級*/
.vt-banner--page{display:flex;align-items:flex-end;min-height:420px;padding:0 4% 48px;text-align:left;background-position:center}
.vt-banner--page .vt-banner__inner{width:100%;text-align:left}
.vt-banner--page .vt-banner__title{font-size:44px;font-weight:800;color:#fff;line-height:1.2;text-shadow:0 2px 12px rgba(0,0,0,.35)}
@media(max-width:767px){.vt-banner--page{min-height:280px;padding-bottom:32px}.vt-banner--page .vt-banner__title{font-size:28px}}
/* 面包屑（banner 下方独立一行，对齐旧站布局）；2026-09-18 用户要求文字加深：--vt-muted → --color-text */
.vt-crumb__inner{max-width:1290px;margin:0 auto;padding:22px 20px 6px;font-size:14px;color:var(--color-text)}
.vt-crumb a{color:var(--color-text);text-decoration:none}
.vt-crumb a:hover{color:var(--vt-blue)}
.vt-crumb span{margin:0 7px}
@media(max-width:900px){.vt-banner--products{min-height:400px}.vt-banner--products .vt-banner__title{font-size:45px}}
@media(max-width:900px){.vt-banner--single{min-height:400px}.vt-banner--single .vt-banner__title{font-size:32px}}
@media(max-width:767px){.vt-banner{padding-left:18px;padding-right:18px}.vt-banner--products,.vt-banner--single{min-height:250px;padding-bottom:30px}.vt-banner--products .vt-banner__title,.vt-banner--single .vt-banner__title{font-size:28px}.vt-banner--products .vt-banner__sub{font-size:14px}}

/* ==================== 博客 / 资讯归档列表（resources 等 archive）==================== */
/* 由 Kadence 归档模板渲染（ul#archive-container.kadence-posts-list -> li.entry-list-item
   -> a.post-thumbnail + h2.entry-title），非页面内容，故样式收在此处。
   用 #archive-container 作用域：只影响列表，不动单篇文章页与相关文章的同名类。
   2026-09-18 用户要求：列表配图加一点圆角、图下标题字号调小一点。
   标题原为约 22px / 行距 30px（实测字形墨迹 19px、行距 30px），调为 18px / 1.45。 */
#archive-container .post-thumbnail{border-radius:var(--radius-md);overflow:hidden}
#archive-container .entry-title{font-size:18px;line-height:1.45}

/* 归档卡配图比例：维持 Kadence 基础规则的 66.67%（3:2）。2026-09-18 用户定案（16:9 看着不协调），
   本文件不再覆盖比例，勿改。
   配图「发虚」的真因不是比例，而是浏览器只取到 300px 缩略图——WP 的 sizes="auto" 会按真实布局宽
   （≈293px）选最近的候选。已在 functions.php 关掉归档页的 auto、改取 768px 缩略图解决；比例与
   清晰度由此脱钩（3:2 盒实测同样取 768px、零放大）。
   另注：定制器给本页发的 kadence-thumbnail-ratio-2-3 在 Kadence 1.4.5 里没有定义，
   该设置一直空转，实际跑的就是基础规则这条 3:2。 */

/* ==================== 浜у搧鍗★紙褰掓。/鐩稿叧鍏辩敤锛?=================== */
.vt-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--vt-line);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--vt-ink);transition:transform .2s,box-shadow .2s}
.vt-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(27,73,101,.14)}
.vt-card__media{aspect-ratio:4/3;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.vt-card__media img{width:100%;height:100%;object-fit:contain;display:block;padding:6px}
.vt-card__body{padding:14px 16px 18px;background:var(--vt-soft);border-top:1px solid var(--vt-line);display:flex;flex-direction:column}
.vt-card__cat{align-self:flex-end;font-size:12px;color:var(--vt-blue);background:rgba(27,73,101,.09);padding:2px 10px;border-radius:20px;margin-bottom:10px}
.vt-card__name{font-size:15px;font-weight:600;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.vt-card__more{display:inline-block;margin-top:10px;font-size:13px;color:var(--vt-orange)}

/* ==================== 浜у搧褰掓。 ==================== */
.vt-parch{max-width:1290px;margin:0 auto;padding:44px 20px 70px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Roboto,sans-serif}
.vt-parch__filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:34px}
.vt-parch__chip{font-size:14px;color:var(--vt-muted);border:1px solid var(--vt-line);border-radius:22px;padding:7px 18px;text-decoration:none;transition:all .18s}
.vt-parch__chip:hover{color:var(--vt-blue);border-color:var(--vt-blue)}
.vt-parch__chip.is-active{background:var(--vt-blue);border-color:var(--vt-blue);color:#fff}
.vt-parch__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.vt-parch__empty{text-align:center;color:var(--vt-muted);padding:40px}

/* ==================== 浜у搧璇︽儏 ==================== */
.vt-prod{max-width:1290px;margin:0 auto;padding:48px 20px 70px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Roboto,sans-serif;color:var(--vt-ink);line-height:1.7}
.vt-prod__hero{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-bottom:56px}
/* 涓诲浘杞挱 */
.vt-prod__gal{position:relative;background:var(--vt-soft);border-radius:14px;overflow:hidden;aspect-ratio:4/3}
.vt-prod__gal-track{position:relative;width:100%;height:100%}
.vt-prod__gal-slide{position:absolute;inset:0;opacity:0;transition:opacity .4s;display:flex;align-items:center;justify-content:center}
.vt-prod__gal-slide.is-active{opacity:1}
.vt-prod__gal-slide img{width:100%;height:100%;object-fit:contain;display:block;padding:18px}
.vt-prod__gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--vt-navy);font-size:15px;padding:0;cursor:pointer;box-shadow:0 4px 16px rgba(18,52,73,.18);display:flex;align-items:center;justify-content:center;transition:background .18s,color .18s,transform .18s,box-shadow .18s}
.vt-prod__gal-nav:hover{background:var(--vt-blue);color:#fff;transform:translateY(-50%) scale(1.08);box-shadow:0 6px 20px rgba(27,73,101,.32)}
.vt-prod__gal-nav:active{transform:translateY(-50%) scale(.96)}
.vt-prod__gal-prev{left:14px}.vt-prod__gal-next{right:14px}
.vt-prod__gal-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;gap:8px;justify-content:center}
.vt-prod__gal-dot{width:9px;height:9px;border-radius:50%;border:0;background:rgba(18,52,73,.28);cursor:pointer;padding:0;transition:background .18s}
.vt-prod__gal-dot.is-active{background:var(--vt-blue)}
/* 鍙充晶鍥炬爣琛?*/
.vt-prod__icons{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.vt-prod__icon{width:68px;height:68px;border:0;background:transparent;overflow:hidden;margin:0;padding:0}
.vt-prod__icon img{width:100%;height:100%;object-fit:contain;display:block;margin:0;padding:0;mix-blend-mode:multiply}
.vt-prod__name{font-size:22px;font-weight:800;color:var(--vt-ink);margin:0 0 22px;line-height:1.3}
.vt-prod__summary{font-size:15px;color:#4a5568;line-height:1.8;margin:0 0 22px}
.vt-prod__meta{display:flex;align-items:baseline;gap:12px;padding:12px 0;border-top:1px solid var(--vt-line)}
.vt-prod__meta-k{flex:0 0 52px;color:var(--vt-muted);font-size:14px}
.vt-prod__meta-v{font-size:15px;font-weight:600}
.vt-prod__cta{display:inline-block;margin-top:26px;background:var(--vt-orange);color:#fff!important;font-size:16px;font-weight:600;padding:13px 34px;border-radius:8px;text-decoration:none;transition:filter .18s,background .18s}
.vt-prod__cta:hover,.vt-prod__cta:focus{filter:brightness(1.08);color:#fff!important}
.vt-prod__tabs{margin-bottom:56px}
.vt-prod__tabnav{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--vt-line);margin-bottom:26px}
.vt-prod__tab{appearance:none;background:transparent!important;border:0;box-shadow:none!important;font-size:16px;font-weight:600;color:var(--vt-muted)!important;padding:12px 22px;cursor:pointer;position:relative;bottom:-2px;border-bottom:2px solid transparent;font-family:inherit}
.vt-prod__tab:hover,.vt-prod__tab:focus{background:transparent!important;color:var(--vt-blue)!important}
.vt-prod__tab.is-active{background:transparent!important;color:var(--vt-blue)!important;border-bottom-color:var(--vt-blue)}
.vt-prod__panel{display:none}
.vt-prod__panel.is-active{display:block;animation:vtfade .25s ease}
/* 鎬ц兘鐗圭偣鍐呭缁熶竴鍙崇Щ 10px锛圵P200 娑插帇瀵圭剨鏈洪櫎澶栵級*/
.vt-prod__panel--features{margin-left:10px}
.postid-13207 .vt-prod__panel--features{margin-left:0}
/* 鎬ц兘鐗圭偣锛氳鐐瑰紡鍐呭鎺掔増鎴愬甫鍥炬爣鐨勫弻鍒楀崱鐗?*/
.vt-prod__panel--features ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.vt-prod__panel--features li{position:relative;background:var(--vt-soft);border:1px solid var(--vt-line);border-radius:10px;padding:15px 16px 15px 44px;font-size:14px;line-height:1.75;color:#3a3a3a}
.vt-prod__panel--features li::before{content:"✓";position:absolute;left:14px;top:15px;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--vt-orange);color:#fff;font-size:12px;font-weight:700}
.vt-prod__panel--features li strong{display:block;color:var(--vt-navy);font-size:15px;font-weight:700;margin-bottom:4px}
@media(max-width:767px){.vt-prod__panel--features ul{grid-template-columns:1fr}}
@keyframes vtfade{from{opacity:0}to{opacity:1}}
.vt-prod__text{font-size:15px;color:#3a3a3a;line-height:2}
.vt-prod__panel table{width:100%!important;height:auto!important;border-collapse:collapse;font-size:14px;padding-left:0!important;margin-left:auto!important;margin-right:auto!important}
.vt-prod__panel table td,.vt-prod__panel table th{width:auto!important;height:auto!important;border:1px solid var(--vt-line)!important;padding:10px 14px!important;text-align:center!important;vertical-align:middle!important}
.vt-prod__panel table tr:nth-child(odd){background:var(--vt-soft)}
.vt-prod__panel ul{padding-left:22px;line-height:2;font-size:15px}
.vt-prod__gallery{margin-bottom:56px}
.vt-prod__gallery-title,.vt-prod__related-title{font-size:22px;font-weight:700;color:var(--vt-ink);margin:0 0 22px;padding-left:12px;border-left:4px solid var(--vt-orange)}
.vt-prod__gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.vt-prod__gallery-item{background:var(--vt-soft);border-radius:10px;overflow:hidden;aspect-ratio:1/1}
.vt-prod__gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.vt-prod__related-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}

@media(max-width:900px){
  .vt-parch__grid,.vt-prod__gallery-grid{grid-template-columns:repeat(2,1fr)}
  .vt-prod__related-grid{grid-template-columns:repeat(3,1fr)}
  .vt-prod__hero{grid-template-columns:1fr;gap:24px}
}
@media(max-width:480px){
  .vt-parch__grid,.vt-prod__related-grid,.vt-prod__gallery-grid{grid-template-columns:repeat(2,1fr)}
  .vt-prod__name{font-size:22px}
  .vt-prod__tab{padding:10px 14px;font-size:15px}
}

/* ==================== 博客单篇正文模板（A/B/C · U2）==================== */
/* 2026-09-19 U2 前置。这 12 篇迁移过来的文章，内容在从旧站小工具搬出时被剥掉了全部
   class 属性，各篇原有的页内样式块因此整体空转（选择器指向不存在的元素）——所以
   重建的是「结构」，不是「样式」。此处提供三套固定模板，样式集中在本文件，
   各篇 post_content 只带类名、不带 <style>、不带行内 style。
   选择器策略（Kadence 1.4.5 实测特异性）：
     · 工作马 .vt-post .vt-post__body <tag> = (0,2,1)，压过 Kadence 的 .single-content <tag> (0,1,1)
     · figure 走第三类 .vt-post__fig 升到 (0,3,0)：Kadence 有两条 (0,2,1) 的 figure 规则，
       双类只会打平、靠源序侥幸取胜
     · alignwide / alignfull 一律不用：驱动它的规则是 (0,4,0)，提权也压不过；
       出血改用自建 .vt-post__wide
   全程零 !important；未使用 .vt-post 的页面这些规则一条都不生效。 */

/* --- 单篇外层容器：1290 → 1140（正文改窄后 1290 会两侧空出过多）--- */
.single-post .content-container.site-container{max-width:1140px}

/* --- 测度：正文栏 900px，出血件 1000px（2026-09-20 用户要求正文栏与出血件更接近，原 720px）--- */
/* 用 grid 定列而不是「max-width + margin:auto」：后者会被 p{margin:0 0 …} 的 (0,2,1)
   压掉 >*{margin-inline:auto} 的 (0,2,0)，结果是左对齐而非居中——只在浏览器里看得见的静默失效。 */
.vt-post .vt-post__body,
.vt-post .vt-post__sec{display:grid;grid-template-columns:1fr min(var(--vt-post-measure,900px),100%) 1fr}
.vt-post .vt-post__body>*,
.vt-post .vt-post__sec>*{grid-column:2;min-width:0}
.vt-post .vt-post__body>.vt-post__sec{grid-column:1/-1}
.vt-post .vt-post__body>.vt-post__wide,
.vt-post .vt-post__sec>.vt-post__wide{grid-column:1/-1;width:100%;max-width:var(--vt-post-wide,1000px);margin-left:auto;margin-right:auto}

/* --- 头部：副标题 + 导语 --- */
.vt-post .vt-post__subtitle{margin:0 0 var(--space-6);font-size:var(--fs-sm);line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text)}
.vt-post .vt-post__lede{margin:0 0 var(--space-12);padding:var(--space-6);border-left:4px solid var(--color-accent);background:var(--color-bg-soft);border-radius:0 var(--radius-md) var(--radius-md) 0}
.vt-post .vt-post__lede p{margin:0;font-size:var(--fs-md);line-height:1.75;color:var(--color-ink)}

/* --- 小节（模板 A）--- */
.vt-post .vt-post__sec{margin:0 0 var(--space-12)}
.vt-post .vt-post__sechead{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}
.vt-post .vt-post__secnum{font-family:"Bahnschrift","DIN Alternate","DIN Condensed","Oswald",var(--font-sans);font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1;color:var(--color-accent)}
.vt-post .vt-post__sech{margin:0;font-size:var(--fs-2xl);line-height:var(--lh-heading);font-weight:var(--fw-bold);color:var(--color-ink)}
.vt-post .vt-post__secen{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text)}

/* --- 正文元素 --- */
/* 链接必须显式接管：Kadence 的 a{color:var(--global-palette-highlight)} 实测解析为
   --global-palette4 = #2D3748（近黑），正文链接会是黑的而不是品牌蓝。 */
.vt-post .vt-post__body a{color:var(--color-primary);text-decoration:underline;text-underline-offset:.18em}
.vt-post .vt-post__body a:hover{color:var(--color-accent-dark)}
.vt-post .vt-post__body p{margin:0 0 var(--space-6);font-size:var(--fs-base);line-height:var(--lh-body);color:var(--color-text)}
.vt-post .vt-post__body h2{margin:var(--space-12) 0 var(--space-4);font-size:var(--fs-2xl);line-height:var(--lh-heading);font-weight:var(--fw-bold);color:var(--color-ink)}
.vt-post .vt-post__body h3{margin:var(--space-8) 0 var(--space-3);font-size:var(--fs-lg);line-height:var(--lh-heading);font-weight:var(--fw-bold);color:var(--color-ink)}
.vt-post .vt-post__body h4{margin:var(--space-6) 0 var(--space-2);font-size:var(--fs-md);line-height:var(--lh-heading);font-weight:var(--fw-bold);color:var(--color-ink)}
.vt-post .vt-post__body ul,.vt-post .vt-post__body ol{margin:0 0 var(--space-6);padding-left:22px;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--color-text)}
.vt-post .vt-post__body li{margin-bottom:var(--space-2)}
.vt-post .vt-post__body li::marker{color:var(--color-accent)}
.vt-post .vt-post__body strong{font-weight:var(--fw-bold);color:var(--color-ink)}
.vt-post .vt-post__body hr{height:1px;border:0;background:var(--color-border);margin:var(--space-12) 0}

/* --- 表格：表头底/斑马行对齐 design-system §5.3 参数表 --- */
/* 2026-09-20 补：.vt-post__wide 本身不带下边距，表格若是 .vt-post__tablewrap.vt-post__wide
   出血件，紧接着的段落会和表格贴在一起（用户反馈）。
   🔴 只能写 margin-bottom，不能用 margin 简写——简写会连带把 left/right 重置成 0，
   顶掉「测度：正文栏…」那条 .vt-post__wide 的 margin:auto 居中（两条选择器特异性打平，
   靠源序谁写在后面谁赢），表格因此贴左不居中（用户第二次反馈定位到的坑）。 */
.vt-post .vt-post__body .vt-post__tablewrap{margin-bottom:var(--space-8)}
.vt-post .vt-post__body table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.vt-post .vt-post__body th,.vt-post .vt-post__body td{padding:10px 14px;border:1px solid var(--color-border);vertical-align:top;text-align:left}
/* 单元格不换行工具类（2026-09-20）：给内容短但列窄、易被挤换行的列用 */
.vt-post .vt-post__body th.vt-post__nowrap,.vt-post .vt-post__body td.vt-post__nowrap{white-space:nowrap}
.vt-post .vt-post__body th{background:var(--color-primary-050);color:var(--color-ink);font-weight:var(--fw-medium)}
.vt-post .vt-post__body tbody tr:nth-child(odd){background:var(--color-bg-soft)}

/* --- 图 / 图注 --- */
/* 图注 13px：--color-muted 白底 4.42:1 不达 AA，一律用 --color-text（§2.3）。 */
.vt-post .vt-post__body .vt-post__fig{margin:var(--space-8) 0;max-width:100%}
.vt-post .vt-post__body .vt-post__figimg{display:block;width:100%;height:auto;border-radius:var(--radius-md)}
/* 小图变体（2026-09-20）：示意图/图表类配图不需要撑满测度，收窄并居中 */
.vt-post .vt-post__body .vt-post__fig--sm{max-width:520px;margin-left:auto;margin-right:auto}
.vt-post .vt-post__body .vt-post__figcap{margin-top:var(--space-2);font-size:var(--fs-xs);line-height:1.6;color:var(--color-text);text-align:center}
.vt-post .vt-post__body p>img{display:block;width:100%;height:auto;margin:var(--space-4) 0;border-radius:var(--radius-md)}

/* --- 金句条 / 提示条 / 结语面板 --- */
.vt-post .vt-post__quote{margin:0 0 var(--space-6);padding:var(--space-4) var(--space-6);background:var(--color-bg-soft);border-left:4px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0}
.vt-post .vt-post__quote p{margin:0;color:var(--color-primary);font-weight:var(--fw-medium)}
.vt-post .vt-post__alert{--vt-alert-bg:var(--color-primary-050);--vt-alert-line:var(--color-primary);padding:var(--space-4) var(--space-6);margin:0 0 var(--space-6);background:var(--vt-alert-bg);border-left:4px solid var(--vt-alert-line);border-radius:0 var(--radius-md) var(--radius-md) 0}
.vt-post .vt-post__alert--warn{--vt-alert-bg:var(--color-accent-050);--vt-alert-line:var(--color-accent)}
/* 浅橙底上文字一律 --color-ink：--color-accent-dark 压 accent-050 只有 3.96:1 不达 AA（§2.5）。 */
.vt-post .vt-post__alert p{margin:0;font-size:var(--fs-sm);line-height:1.75;color:var(--color-ink)}
.vt-post .vt-post__conclusion{margin:var(--space-12) 0 0;padding:var(--space-8);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md)}
.vt-post .vt-post__conlabel{display:block;margin-bottom:var(--space-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}
.vt-post .vt-post__conclusion p:last-child{margin-bottom:0}

/* --- 单篇页首特色图隐藏（用户 2026-09-19 定，覆盖此前「改 21:9 横幅」的决定）--- */
/* 只隐藏正文上方那一张（Kadence 给它专属类 .article-post-thumbnail，父级 .content-wrap）。
   🔴 不可写成 .single-post .post-thumbnail —— 底部「相关文章」卡片的缩略图也叫
      .post-thumbnail（在 ul.splide__list > li > article 里），会被一并隐藏（已踩过）。
   隐藏的理由：它是 1920×1078 的通用素材、与文章主题无关、alt 为空；且它与页眉之间
   会露 29px 页面白底成一条缝（成因是 #primary 带 Kadence content-vertical-padding
   让位：桌面 80px / ≤800px 48px，而页眉 position:absolute 高 51px/50）。
   图一隐藏，缝也随之不存在。
   归档列表卡片（#archive-container）与相关文章卡片的缩略图均不受影响；
   Rank Math 取特色图做 og:image / schema 是服务端行为，同样不受影响。 */
.single-post .article-post-thumbnail{display:none}

/* --- 相关文章（Similar Posts）三卡片收窄（用户 2026-09-19 定）--- */
/* 原状：整段 alignfull 通栏到 1417px，3 张卡片各 429.5px。
   收法要两层一起收——外层的 .entry-related 有 alignfull、内层的 .entry-related-inner-content
   还带着 alignwide 类，而裸 .alignwide 规则把它撑到 100vw；只收外层是白收（已踩过）。
   两者都写 .single-post 前缀 (0,2,0) 压过 .alignfull/.alignwide 的 (0,1,0)。
   收窄后与正文卡片同宽（1140 容器 → 卡片 305px）。 */
.single-post .entry-related{width:auto;max-width:1140px;margin-left:auto;margin-right:auto}
.single-post .entry-related-inner-content{width:auto;max-width:100%;margin-left:0;margin-right:0}

/* --- 单篇标题区（用户 2026-09-19 定：隐藏分类标签 + 去色带、与底色一致）--- */
/* 原状全是 Kadence 默认值、且用全局色板的旧色：分类链 #2D3748、标题 #1A202C。
   一度给标题区上过 --color-bg-soft 的浅灰带，但用户反馈「太复杂」——去掉：
   页面上一共四种近白色（body #F7FAFC / 标题区 #F4F7F9 / 正文卡片 #FFF /
   相关文章 #EDF2F7），标题区自己再占一条只差一点点的灰带，反而显出一条刻意的分界。
   现在标题区不写 background-color（透明），直接落在页面底色上。 */
.single-post .entry-taxonomies{display:none}
.single-post .entry-hero{padding:var(--space-12) 0;--global-palette3:var(--color-ink)}
/* 🔴 灰带的真身是这一层，不是 .entry-hero —— Kadence 给 .entry-hero-container-inner
   单独刷了 var(--global-palette7)=#EDF2F7。上一版只去掉自己的 --color-bg-soft 时，
   实测左侧边距那一列仍是 y52–165 的 #EDF2F7、y166 以下才 #F7FAFC（两层灰叠着），
   只看 .entry-hero 的 computedStyle 会误判成「已经透明了」。 */
.single-post .entry-hero-container-inner{background-color:transparent}
/* 高度：Kadence 有 .entry-hero.post-hero-section .entry-header{min-height:200px} (0,3,0)。
   直接写 (0,3,0) 要靠源序赌，故带上 Kadence 自己的 post-hero-section 类升到 (0,4,0) 稳压。
   注：标题区上方另有 Kadence 的 .entry-hero-container-inner{padding-top:50px} —— 那是给
   浮动页眉（#masthead 高 51）让位的，不可撤，撤了标题会钻到页眉底下。 */
.single-post .entry-hero.post-hero-section .entry-header{min-height:0}
/* 标题取色不能靠 color 硬拼：压着它的规则是 var(--global-palette3)，且实测要写到
   (0,4,2) 以上才拼得过。改它依赖的变量即可，零特异性之争、作用域还能精确到标题区。 */
.single-post .entry-title{font-size:var(--fs-3xl);font-weight:var(--fw-bold);line-height:var(--lh-heading)}
/* 分区标题的短橙条（design-system §5.5），给文章标题一个品牌锚点 */
.single-post .entry-title::after{content:'';display:block;width:var(--space-8);height:3px;background:var(--color-accent);margin:var(--space-4) auto 0;border-radius:2px}

/* --- 模板 B 专属：对比高亮列 + 决策卡（2026-09-20 U2）---
   B 复用 A 的整套骨架（小节/导语/金句/提示条/表格），只加这两个组件：
   对比型文章的表格常有「推荐列」，结语常是「选型建议」而非单纯总结，
   故不新开一套骨架，只在 .vt-post__body 通用表格规则之上叠一个高亮修饰、
   另起一张视觉上比 .vt-post__conclusion 更醒目的卡（品牌橙描边 + 标签）。 */
.vt-post .vt-post__body th.vt-post__pick,
.vt-post .vt-post__body td.vt-post__pick{background:var(--color-accent-050);border-color:var(--color-accent)}
.vt-post .vt-post__verdict{margin:0 0 var(--space-6);padding:var(--space-6);background:var(--color-bg-soft);border:2px solid var(--color-accent);border-radius:var(--radius-md)}
.vt-post .vt-post__verdicttag{display:inline-block;margin-bottom:var(--space-3);padding:2px var(--space-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--color-accent);border-radius:var(--radius-sm)}
.vt-post .vt-post__verdict p{margin:0;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--color-ink)}
.vt-post .vt-post__verdict p+p{margin-top:var(--space-3)}

/* --- 模板 C 专属：资讯/短讯型（2026-09-20 U2）---
   唯一不走「编号小节」骨架的体裁（如展会资讯）：无分节结构，
   只需要一个事件信息块 + 图集网格，其余仍是 .vt-post__body 的通用段落/图注规则。 */
.vt-post .vt-post__meta{margin:0 0 var(--space-8);padding:var(--space-6);background:var(--color-bg-soft);border-radius:var(--radius-md);display:grid;gap:var(--space-2)}
.vt-post .vt-post__meta div{font-size:var(--fs-base);color:var(--color-text)}
.vt-post .vt-post__gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin:0 0 var(--space-8)}
/* 2026-09-20 用户反馈：三图原图比例不一，只 width:100%/height:auto 会导致三格高矮不齐；
   统一裁成 4:3 卡片，与归档列表配图口径一致 */
.vt-post .vt-post__gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md)}

/* --- 共享扩展组件：公式 / 清单 / 卡片网格 / 双图行（2026-09-21 U2 剩余 8 篇补齐）---
   覆盖旧站 8 篇里反复出现、但彼此 class 名各不相同的四类结构（公式框、勾选清单、
   并排对比卡、双图对照），归并成 A/B 两模板共用的组件，不逐篇发明新样式。 */
.vt-post .vt-post__formula{margin:0 0 var(--space-6);padding:var(--space-4) var(--space-6);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:Consolas,Monaco,monospace;font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--color-ink);text-align:center;overflow-x:auto}
.vt-post .vt-post__formula-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin:var(--space-3) 0 var(--space-6)}
.vt-post .vt-post__legend-item{padding:2px var(--space-3);font-size:var(--fs-xs);color:var(--color-text);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm)}

.vt-post .vt-post__checklist{list-style:none;padding-left:0;margin:0 0 var(--space-6)}
.vt-post .vt-post__checklist li{position:relative;padding-left:var(--space-6);margin-bottom:var(--space-2);color:var(--color-text)}
.vt-post .vt-post__checklist li::before{content:"✓";position:absolute;left:0;color:var(--color-accent);font-weight:var(--fw-bold)}

/* 卡片网格：默认 2 列，--3 修饰符改 3 列；卡内标题直接用现成的 body h4 规则，不新开 class */
.vt-post .vt-post__cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);margin:0 0 var(--space-8)}
.vt-post .vt-post__cards--3{grid-template-columns:repeat(3,1fr)}
.vt-post .vt-post__card{padding:var(--space-6);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md)}
.vt-post .vt-post__card h4{margin-top:0}
.vt-post .vt-post__card p:last-child{margin-bottom:0}

/* 双图并排行：内部直接放 .vt-post__fig（不叠 --sm，flex 已经在控制宽度） */
.vt-post .vt-post__figrow{display:flex;gap:var(--space-6);margin:var(--space-8) 0;align-items:flex-start}
.vt-post .vt-post__figrow .vt-post__fig{flex:1;margin:0}

@media(max-width:767px){
  .vt-post .vt-post__gallery{grid-template-columns:1fr 1fr}
  .vt-post .vt-post__body,
  .vt-post .vt-post__sec{grid-template-columns:1fr}
  .vt-post .vt-post__body>*,
  .vt-post .vt-post__sec>*{grid-column:1}
  .vt-post .vt-post__body>.vt-post__wide,
  .vt-post .vt-post__sec>.vt-post__wide{grid-column:1}
  .vt-post .vt-post__body h2,.vt-post .vt-post__body .vt-post__sech{font-size:var(--fs-xl)}
  .vt-post .vt-post__secnum{font-size:var(--fs-lg)}
  .vt-post .vt-post__sechead{gap:var(--space-2)}
  .vt-post .vt-post__lede,.vt-post .vt-post__conclusion{padding:var(--space-4)}
  /* 表格不压扁，改横滚 */
  .vt-post .vt-post__tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-sm)}
  .vt-post .vt-post__tablewrap table{min-width:600px}
  .vt-post .vt-post__cards,
  .vt-post .vt-post__cards--3{grid-template-columns:1fr}
  .vt-post .vt-post__figrow{flex-direction:column}
}
