/* ============================================================
   泰华液压 · Taihua Equipment —— 模板样式（CMS 零样式：模板自带全部样式）
   ------------------------------------------------------------
   架构：CMS 不带任何样式；本文件 + widgets 骨架 HTML + scripts/main.js
        就是最终视觉与交互，CMS 只负责提供字段数据。

   来源：严格对照已确认的原型 prototype/styles.css（2026-09-17 用户评审通过）
        · 设计令牌（--tp-*）原样保留
        · 新增：极简 reset 取代 Tailwind preflight（避免 h1 字重/字号被重置，
          原型依赖浏览器默认标题样式，而 preflight 会把标题变成 inherit）
        · 新增：骨架需要的类（轮播分层、导航下拉/移动菜单、图库、Tab、弹窗、
          里程碑表、询盘两栏）——按原型同类语言续写

   结构约定：模板驱动模式下 CMS 会展平容器，所以「一个骨架 = 一个完整版块」，
             版块背景/内边距/标题行全部在本文件 + 骨架里表达。
   ============================================================ */

/* ---------- 字体（Fontsource via jsDelivr）----------
   为什么不用 fonts.googleapis.com：本站 CSP 的 style-src 白名单只放了 cdn.jsdelivr.net，
   Google 那支 CSS 会被直接拦掉（实测全站 Poppins/Inter 从未加载，一直在吃后备字体）。
   Fontsource 的字体文件是相对路径 ./files/xxx.woff2，解析后仍落在 cdn.jsdelivr.net 上，
   style-src 与 font-src 两个白名单都放行。
   权重按原型：Poppins 500/600/700/800 + Inter 400/500/600/700。 */
@import url('https://cdn.jsdelivr.net/npm/@fontsource/poppins@5/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/poppins@5/600.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/poppins@5/700.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/poppins@5/800.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/inter@5/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/inter@5/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/inter@5/600.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/inter@5/700.css');

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;border:0 solid}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--tp-font);color:var(--tp-text);background:var(--tp-bg);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{margin:0;font-size:inherit;font-weight:inherit}
p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit;margin:0}
button{background:none;cursor:pointer;padding:0}
table{border-collapse:collapse;border-spacing:0}
[hidden]{display:none}
main{display:block}

/* ---------- 设计令牌（与原型一致，勿随意改） ---------- */
:root{
  --tp-navy:#16324f; --tp-navy-deep:#122c47; --tp-navy-900:#0e2740;
  --tp-blue:#2563eb; --tp-blue-700:#1d4ed8; --tp-blue-soft:#5aa2ff;
  --tp-bg:#ffffff; --tp-tint:#f4f7fa; --tp-surface:#fff;
  --tp-text:#1f2937; --tp-text-2:#5b6b7d; --tp-muted:#94a3b8; --tp-border:#e5eaf1;
  --tp-shadow-sm:0 1px 2px rgba(16,24,40,.06); --tp-shadow-md:0 10px 26px rgba(16,24,40,.10);
  --tp-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --tp-head:'Poppins','Inter',system-ui,sans-serif;
  --tp-container:1200px;
}

/* ---------- 通用 ---------- */
.container{max-width:var(--tp-container);margin:0 auto;padding:0 24px}
.section{padding:72px 0}
.section--tint{background:var(--tp-tint)}
.eyebrow{color:var(--tp-muted);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:.7rem;margin-bottom:12px}
h1,h2,h3,h4{font-family:var(--tp-head)}
.h2{font-size:1.65rem;font-weight:700;color:var(--tp-navy);line-height:1.25}
.h2 .hl{color:var(--tp-blue)}
.section-sub{color:var(--tp-text-2);font-size:.95rem;margin-top:8px}
.section-sub p+p{margin-top:10px}
.section-head{margin-bottom:34px}

/* CMS 区块外壳兜底：非模板驱动路径下 tag="block" 会产出 .block-section，
   Tailwind 的 max-w-7xl 在 CMS 零样式下不存在，这里补上容器宽度，避免内容贴边 */
.block-section > div{max-width:var(--tp-container);margin:0 auto;padding:0 24px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:6px;font-weight:600;font-size:.88rem;font-family:var(--tp-font);cursor:pointer;border:1px solid transparent;transition:background .2s,transform .2s,box-shadow .2s,border-color .2s,color .2s}
.btn .ar{font-weight:600}
.btn-primary{background:var(--tp-blue);color:#fff}
.btn-primary:hover{background:var(--tp-blue-700);transform:translateY(-1px)}
.btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.65)}
.btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-ghost{background:#fff;color:var(--tp-navy);border-color:var(--tp-border)}
.btn-ghost:hover{border-color:var(--tp-blue);color:var(--tp-blue)}

/* ===== 页头（logo 左 / 导航居中 / 搜索 + CTA 右） ===== */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--tp-border)}
.nav{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.brand .logo{width:34px;height:34px;border-radius:7px;background:linear-gradient(135deg,#2f7bf6,#1656b8);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--tp-head);font-weight:800;font-size:1.05rem;flex:0 0 auto}
.brand .name{display:flex;flex-direction:column;font-family:var(--tp-head);font-weight:700;color:var(--tp-navy);font-size:1.02rem;line-height:1.15}
.brand .name small{font-family:var(--tp-font);font-weight:500;font-size:.6rem;color:var(--tp-muted);letter-spacing:.01em}
.nav-links{display:flex;gap:30px;margin:0 auto;font-weight:500;font-size:.9rem;color:var(--tp-text-2)}
.nav-links a{display:flex;align-items:center;gap:5px;height:64px;position:relative}
.nav-links a:hover{color:var(--tp-blue)}
.nav-links a.active{color:var(--tp-blue)}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--tp-blue)}
.nav-chev{width:11px;height:11px;flex:0 0 auto;display:none}
.nav-links a:has(.nav-chev:not([hidden])) .nav-chev{display:block}
.nav-actions{display:flex;align-items:center;gap:16px;flex:0 0 auto}
.nav-search{color:var(--tp-text-2);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px}
.nav-search svg{width:17px;height:17px}
.nav-search:hover{color:var(--tp-blue)}
.nav-burger{display:none;width:36px;height:36px;border:1px solid var(--tp-border);border-radius:6px;color:var(--tp-navy);align-items:center;justify-content:center}
.nav-burger svg{width:18px;height:18px}

/* 下拉面板 */
.nav-panel{position:absolute;left:0;right:0;top:100%;z-index:40}
.nav-panel-inner{background:#fff;border:1px solid var(--tp-border);border-top:0;border-radius:0 0 10px 10px;box-shadow:var(--tp-shadow-md)}
.nav-panel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 20px;padding:20px}
.nav-panel-item{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-radius:7px}
.nav-panel-item:hover{background:var(--tp-tint)}
.nav-panel-item .t{font-weight:600;color:var(--tp-navy);font-size:.86rem}
.nav-panel-item .d{font-size:.76rem;color:var(--tp-muted);line-height:1.45}

/* 移动端菜单 */
.nav-mobile{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .28s ease}
.nav-mobile.on{grid-template-rows:1fr}
.nav-mobile-inner{overflow:hidden;border-top:1px solid var(--tp-border);padding:10px 24px 18px;background:#fff}
.nav-mob-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--tp-tint)}
.nav-mob-row>a{display:block;flex:1 1 auto;padding:11px 0;font-weight:600;font-size:.92rem;color:var(--tp-navy)}
.nav-mob-row>a:hover{color:var(--tp-blue)}
.nav-mob-row>button{display:none;width:32px;height:32px;align-items:center;justify-content:center;color:var(--tp-text-2)}
.nav-mob-row.has-children>button{display:flex}
.nav-mob-row>button .nav-chev{display:block;width:12px;height:12px;transition:transform .2s}
.nav-mob-row>button.on .nav-chev{transform:rotate(180deg)}
.nav-mob-sub{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .24s ease}
.nav-mob-sub.on{grid-template-rows:1fr}
.nav-mob-sub-inner{overflow:hidden}
.nav-mob-sub-inner a{display:block;padding:9px 0 9px 12px;font-size:.86rem;color:var(--tp-text-2);border-bottom:1px solid var(--tp-tint)}
.nav-mobile-inner>.btn{width:100%;margin-top:16px}
@media(max-width:920px){
  .nav-links{display:none}
  .nav-actions{margin-left:auto}
  .nav-burger{display:flex}
  .nav-actions>.btn-primary{display:none}
}
@media(min-width:921px){.nav-mobile{display:none}}

/* ===== 首屏轮播（高度写死，文案超出由 JS 等比缩放） ===== */
.hero{position:relative;color:#fff;overflow:hidden;height:clamp(440px,58vh,560px);display:flex;align-items:center;background:var(--tp-navy-900)}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.hero-slide.on{opacity:1}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,29,50,.94) 0%,rgba(10,29,50,.78) 42%,rgba(10,29,50,.30) 100%)}
.hero-body{position:relative;width:100%;padding:0 24px}
.hero-copys{display:grid}
.hero-slide-copy{grid-area:1/1;max-width:600px;opacity:0;transition:opacity .35s ease;transform-origin:left center;pointer-events:none;visibility:hidden}
.hero-slide-copy.on{opacity:1;pointer-events:auto;visibility:visible}
.hero .eyebrow{color:#c6d8ec;font-size:.68rem;letter-spacing:.2em;margin-bottom:14px}
.hero h1{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:700;line-height:1.22;margin-bottom:16px}
.hero h1 .hl{color:var(--tp-blue-soft)}
.hero p.lead{color:#c3d2e2;font-size:.94rem;max-width:440px;margin-bottom:28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-dots{position:absolute;right:44px;bottom:24px;display:flex;gap:7px;z-index:2}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;transition:.2s}
.hero-dot.on{background:#fff}
@media(max-width:720px){
  .hero{height:clamp(430px,72vh,540px)}
  .hero-slide-copy{max-width:100%}
  .hero-dots{right:24px}
}

/* ===== 内页头图 ===== */
.page-hero{background:linear-gradient(90deg,var(--tp-navy-900),var(--tp-navy-deep) 60%,#1a3c60);color:#fff;padding:58px 0}
.page-hero .eyebrow{color:#8fb4dd}
.page-hero h1{color:#fff;font-size:1.9rem;font-weight:700}
.page-hero p{color:#a9bdd2;margin-top:10px;max-width:620px;font-size:.95rem}

/* ===== 通用标题行（左标题 + 右链接） ===== */
.row-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:34px;flex-wrap:wrap}
.view-all{color:var(--tp-blue);font-weight:600;font-size:.9rem;white-space:nowrap}
.view-all:hover{text-decoration:underline}

/* ===== 产品线卡（一行 6 张） ===== */
.cat-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.cat-card{background:#fff;border:1px solid var(--tp-border);border-radius:10px;padding:10px 12px 14px;display:block;transition:transform .2s,box-shadow .2s}
.cat-card:hover{transform:translateY(-4px);box-shadow:var(--tp-shadow-md)}
.cat-card .pic{width:100%;aspect-ratio:3/4;border-radius:8px;object-fit:cover;background:#eef2f7}
.cat-card .t{text-align:center;font-family:var(--tp-head);font-weight:600;color:var(--tp-navy);font-size:.84rem;line-height:1.3;margin-top:12px;min-height:2.2em;display:block}
@media(max-width:1024px){.cat-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.cat-strip{grid-template-columns:repeat(2,1fr)}}

/* ===== 深色方案带（左文案 + 右竖图卡） ===== */
.band-dark{background:var(--tp-navy-deep);color:#fff}
.band-dark .eyebrow{color:#8fb4dd}
.sol-wrap{display:grid;grid-template-columns:290px 1fr;gap:38px;align-items:center}
.sol-wrap .h2{color:#fff}
.sol-wrap .section-sub{color:#a9bdd2}
.sol-more{margin-top:22px}
.sol-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sol-card{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:3/4;display:block;background:#1c3c5c}
.sol-card .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.sol-card:hover .bg{transform:scale(1.05)}
.sol-card .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,29,50,.02) 40%,rgba(10,29,50,.88))}
.sol-card .cap{position:absolute;left:12px;right:12px;bottom:12px;z-index:1;color:#fff;font-size:.76rem;font-weight:600;line-height:1.35;display:flex;justify-content:space-between;gap:6px;align-items:flex-end}
.sol-card .cap .ar{color:#8fc0ff}
@media(max-width:1024px){.sol-wrap{grid-template-columns:1fr}.sol-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.sol-strip{grid-template-columns:repeat(2,1fr)}}

/* ===== 要点卡（4 列，蓝色线性图标） ===== */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:36px}
.why-item .wic{width:42px;height:42px;color:var(--tp-blue);margin-bottom:14px;font-family:var(--tp-head);font-weight:700;font-size:1.15rem;display:flex;align-items:center;justify-content:center}
.why-item .wic svg{width:100%;height:100%}
.why-item h3{color:var(--tp-blue);font-size:.92rem;font-weight:600;margin-bottom:8px}
.why-item p{font-size:.85rem;color:var(--tp-text-2)}
@media(max-width:900px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.why-grid{grid-template-columns:1fr}}

/* ===== 图文版块（左文案 + 右 1 大 4 小图） ===== */
.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:center}
.about-copy .btn{margin-top:24px}
.about-copy .section-sub{margin-bottom:0}
.about-imgs{display:grid;grid-template-columns:1fr 1.15fr;gap:12px}
.about-imgs .big{width:100%;height:100%;object-fit:cover;border-radius:10px}
.about-imgs .mini{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.about-imgs .mini img{width:100%;height:100%;object-fit:cover;border-radius:10px;aspect-ratio:4/3}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}.about-imgs{grid-template-columns:1fr}.about-imgs .big{aspect-ratio:16/9;max-height:none}}

/* ===== CTA 通栏 ===== */
.cta-band{background:var(--tp-navy-deep);color:#fff;padding:36px 0}
.cta-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta-left{display:flex;align-items:center;gap:16px}
.cta-ic{flex:0 0 46px;width:46px;height:46px;border-radius:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:#8fc0ff}
.cta-ic svg{width:22px;height:22px}
.cta-band h2{color:#fff;font-size:1.22rem;font-weight:700;margin-bottom:4px}
.cta-band p{color:#a9bdd2;font-size:.88rem;margin:0}

/* ===== 页脚 ===== */
.site-footer{background:var(--tp-navy-deep);color:#a9bdd2;padding:56px 0 0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.25fr;gap:30px;padding-bottom:44px}
.site-footer h4{color:#fff;font-size:.92rem;font-weight:600;margin-bottom:16px}
.site-footer a{color:#a9bdd2;display:block;padding:4px 0;font-size:.86rem}
.site-footer a:hover{color:#fff}
.site-footer .brand .name{color:#fff}
.site-footer .brand .name small{color:#7e94ab}
.site-footer .fdesc{font-size:.85rem;margin-top:14px;max-width:260px}
.site-footer .contact p{font-size:.85rem;margin-bottom:8px}
.site-footer .contact a{display:inline;padding:0}
.footer-feedback{color:#8fc0ff;font-size:.85rem;padding:4px 0}
.footer-feedback:hover{color:#fff;text-decoration:underline}
.footer-bottom{border-top:1px solid rgba(255,255,255,.10);background:var(--tp-navy-900)}
.footer-bottom .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:14px;padding-bottom:14px;font-size:.78rem;color:#7e94ab}
.footer-bottom a:hover{color:#fff}
.footer-bottom .container{position:relative}
.footer-bottom .legal{display:flex;flex-wrap:nowrap;gap:20px;list-style:none;margin:0;padding:0;flex-shrink:0;white-space:nowrap}
.footer-bottom .legal li{white-space:nowrap;width:max-content}
.footer-bottom .legal a{color:inherit}
.footer-bottom .legal a:hover{color:#fff}
@media(max-width:920px){.footer-grid{grid-template-columns:1fr 1fr}}

/* ===== 产品目录页 ===== */
.catalog-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 22px}
.catalog-bar .count{font-size:.9rem;color:var(--tp-text-2)}
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.prod-card{background:#fff;border:1px solid var(--tp-border);border-radius:10px;padding:10px 12px 14px;display:block;transition:transform .2s,box-shadow .2s}
.prod-card:hover{transform:translateY(-4px);box-shadow:var(--tp-shadow-md)}
.prod-card .thumb{position:relative;display:block;overflow:hidden;aspect-ratio:4/3.4;border-radius:8px;background:#eef2f7}
.prod-card .thumb img{width:100%;height:100%;object-fit:cover}
.badge{position:absolute;top:8px;left:8px;font-size:.66rem;font-weight:700;padding:3px 9px;border-radius:999px}
.badge.best{background:#fef3c7;color:#92600a}
.badge.new{background:#dbeafe;color:#1e40af}
.badge.stock{background:#dcfce7;color:#166534}
.badge.pop{background:#ede9fe;color:#5b21b6}
.prod-card .body{padding-top:12px;text-align:center;display:flex;flex-direction:column;gap:4px}
.prod-card .cat{font-size:.68rem;color:var(--tp-muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.prod-card h3{font-size:.92rem;font-weight:600;color:var(--tp-navy);line-height:1.3}
.prod-card .cap{font-size:.76rem;color:var(--tp-blue);font-weight:600}
/* 骨架解析会丢掉「纯空白文本节点」，内联片段之间的间距一律用 CSS 补 */
.prod-card .cap>span+span{margin-left:.3em}
.prod-card .desc{font-size:.8rem;color:var(--tp-text-2)}
.prod-card .more{color:var(--tp-blue);font-weight:700;font-size:.85rem;margin-top:4px}
@media(max-width:1024px){.prod-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.prod-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.prod-grid{grid-template-columns:1fr}}

/* ===== 产品线详情 ===== */
.detail-section{padding-top:0}
.breadcrumb{font-size:.82rem;color:var(--tp-muted);padding:18px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumb a:hover{color:var(--tp-blue)}
.detail-layout{display:grid;grid-template-columns:270px 1fr;gap:36px;align-items:start}
.sidebar{min-width:0}
.cat-tree{background:#fff;border:1px solid var(--tp-border);border-radius:10px;padding:14px 16px;margin-bottom:18px;max-height:460px;overflow:auto}
.cat-tree .tt{font-size:.7rem;color:var(--tp-muted);letter-spacing:.1em;margin-bottom:8px;font-weight:600}
.cat-tree a{display:block;padding:6px 0;color:var(--tp-text-2);font-size:.86rem;border-bottom:1px solid var(--tp-tint)}
.cat-tree a:last-child{border-bottom:0}
.cat-tree a:hover,.cat-tree a.active{color:var(--tp-blue)}
.contact-box{background:var(--tp-navy-deep);color:#fff;border-radius:10px;padding:18px}
.contact-box h4{color:#fff;font-size:.92rem;font-weight:600;margin-bottom:8px}
.contact-box p{font-size:.8rem;color:#a9bdd2;margin-bottom:12px}
.contact-box .btn{width:100%}
.detail-main{min-width:0}
.detail-main h1{font-size:1.7rem;font-weight:700;margin-bottom:6px}
.detail-main .code{color:var(--tp-blue);font-weight:600;font-size:.85rem;margin-bottom:8px}
.detail-main .sub{color:var(--tp-text-2);margin-bottom:18px}
.spec-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0;padding:18px;background:var(--tp-tint);border-radius:10px}
.spec-icons .si{text-align:center}
.spec-icons .si .v{font-family:var(--tp-head);font-weight:700;color:var(--tp-navy);font-size:.98rem}
.spec-icons .si .k{font-size:.72rem;color:var(--tp-muted)}
.gallery{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0}
.gallery .main{display:block;width:100%;height:auto;max-height:640px;border-radius:10px;object-fit:contain;background:#eef2f7}
.gallery .thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery .thumbs img{width:100%;aspect-ratio:1;border-radius:8px;object-fit:contain;background:#eef2f7;cursor:pointer}
.pd-tabs-wrap{margin-top:6px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--tp-border);margin:22px 0 14px}
.tabs button{padding:10px 4px;margin-right:18px;font-weight:600;font-size:.9rem;color:var(--tp-muted);border-bottom:2px solid transparent}
.tabs button.on{color:var(--tp-blue);border-color:var(--tp-blue)}
.tab-panel{display:none;color:var(--tp-text-2);font-size:.92rem}
.tab-panel.on{display:block}
.tab-panel ul{margin-left:18px;list-style:disc}
.tab-panel li{margin-bottom:5px}
.spec-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:.88rem}
.spec-table th,.spec-table td{border:1px solid var(--tp-border);padding:9px 12px;text-align:left}
.spec-table th{background:var(--tp-tint);color:var(--tp-navy);font-weight:600;width:220px}
.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.related{margin-top:30px}
.related .h2{margin-top:34px;margin-bottom:18px}
.related-grid{grid-template-columns:repeat(5,1fr)}
@media(max-width:1024px){.related-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){.detail-layout{grid-template-columns:1fr}.spec-icons{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.related-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== 询盘版块 ===== */
.inquiry-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}
.inquiry-left h1{font-size:1.8rem;font-weight:700;margin-bottom:14px}
.inquiry-left>.inquiry-sub{color:var(--tp-text-2)}
.inquiry-left>.inquiry-sub p+p{margin-top:10px}
.inquiry-left .vals{margin-top:18px;display:flex;flex-direction:column;gap:12px}
.inquiry-left .vals div{display:flex;gap:10px;align-items:flex-start;color:var(--tp-text-2);font-size:.9rem}
.inquiry-left .vals .tick{color:var(--tp-blue);font-weight:800}
.inquiry-left .contact-info{margin-top:24px;font-size:.88rem;color:var(--tp-text-2)}
.inquiry-left .contact-info p{margin-bottom:6px;display:flex;gap:8px}
.inquiry-left .contact-info strong{color:var(--tp-navy)}
.form-card{background:#fff;border:1px solid var(--tp-border);border-radius:12px;padding:28px;box-shadow:var(--tp-shadow-sm)}
.field{margin-bottom:16px}
.field label{display:block;font-size:.84rem;font-weight:600;color:var(--tp-navy);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid var(--tp-border);border-radius:8px;font-family:inherit;font-size:.9rem;color:var(--tp-text);background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--tp-blue);border-color:var(--tp-blue)}
.field .err{color:#dc2626;font-size:.76rem;margin-top:4px;display:none}
.field.invalid .err{display:block}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#dc2626}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-success{display:none;background:#dcfce7;color:#166534;border-radius:10px;padding:14px;font-weight:600;margin-bottom:14px}
.form-submit{width:100%}
.form-note{font-size:.76rem;color:var(--tp-muted);margin-top:10px}
@media(max-width:860px){.inquiry-layout{grid-template-columns:1fr}.form-2col{grid-template-columns:1fr}}

/* ===== 询盘 / 反馈弹窗（标记由 scripts/main.js 注入，页面无需任何弹窗 HTML） ===== */
.modal-mask{position:fixed;inset:0;background:rgba(10,29,50,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-mask.open{display:flex}
.modal{background:#fff;border-radius:14px;max-width:520px;width:100%;padding:26px;position:relative;max-height:90vh;overflow:auto}
.modal .x{position:absolute;top:12px;right:16px;font-size:1.5rem;line-height:1;color:var(--tp-muted)}
.modal .x:hover{color:var(--tp-navy)}
.modal h3{font-size:1.25rem;font-weight:700;color:var(--tp-navy);margin-bottom:6px}
.modal p.hint{color:var(--tp-text-2);font-size:.85rem;margin-bottom:16px}
.stars{display:flex;gap:4px;font-size:1.6rem;margin-bottom:10px}
.stars span{color:#cbd5e1;transition:color .15s;cursor:pointer}
.stars span:hover{color:#fbbf24}

/* ===== 逐列吸顶（框架 widget flex-row 的 sticky 变体） =====
   框架 render-widget.tsx 按 colSticky 给列加 .widget-flex-row__cell--sticky，
   并写行内 top（默认 96px，避开固定页头）。
   ⚠ 公共侧是「零 CMS 样式」：styles/base/widgets.css 只被后台布局引入，
   所以这条规则【必须由模板包提供】。缺了它 → 勾了「逐列吸顶」毫无反应，
   而后台编辑器里看着却是好的（那边加载了 widgets.css），极易误判成操作错误。
   护栏：本注释内勿写「星号+斜杠」连续序列，会提前闭合注释（本包曾因此吞掉 @import 与 :root{}）。 */
.widget-flex-row__cell--sticky{position:sticky;align-self:start;z-index:1}
/* 手机窄屏不分栏 → 吸顶失去意义，退回普通流 */
@media(max-width:767px){
  .widget-flex-row__cell--sticky{position:static}
}

/* ===== 404 页面版块（骨架 widgets/error/404.html） =====
   深色海军蓝底 + 工程网格 + 蓝色光晕 + 幽灵数字 404。
   全部纯 CSS（不依赖图片），因为它是"任意错误地址"的落点，必须永远能显示。
   护栏：本注释内勿写「星号+斜杠」连续序列，会提前闭合注释。 */
.error-404{position:relative;overflow:hidden;background:var(--tp-navy-900);color:#fff;padding:92px 0 100px;text-align:center}
.error-404::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:64px 64px;pointer-events:none}
.error-404::after{content:'';position:absolute;left:50%;top:-34%;width:820px;height:820px;transform:translateX(-50%);background:radial-gradient(circle,rgba(37,99,235,.30),transparent 62%);pointer-events:none}
.error-404__inner{position:relative}
.error-404__code{display:block;font-family:var(--tp-head);font-weight:800;font-size:clamp(96px,17vw,208px);line-height:.86;letter-spacing:.02em;color:transparent;-webkit-text-stroke:2px rgba(90,162,255,.55);user-select:none}
.error-404 .eyebrow{color:var(--tp-blue-soft);margin-top:16px}
.error-404__title{color:#fff;font-family:var(--tp-head);font-weight:700;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.2;margin-top:10px}
.error-404__summary{color:#a9bdd2;font-size:.95rem;margin:14px auto 0;max-width:600px}
.error-404__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px}
.error-404__links{display:flex;justify-content:center;flex-wrap:wrap;gap:26px;margin-top:36px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12)}
.error-404__link{display:inline-flex;align-items:center;gap:7px;color:#cfe0f5;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .18s}
.error-404__link::after{content:'→';color:var(--tp-blue-soft);transition:transform .18s}
.error-404__link:hover{color:#fff}
.error-404__link:hover::after{transform:translateX(3px)}
@media(max-width:767px){
  .error-404{padding:64px 0 72px}
  .error-404__code{font-size:clamp(78px,26vw,132px);-webkit-text-stroke-width:1.5px}
  .error-404__links{gap:16px;margin-top:28px}
}

  /* ===== 页头语言切换器（下拉式，骨架 nav 的 langSwitcher 容器）=====
     前端按站点已启用语言生成触发按钮 + 菜单；展开/收起由 main.js 的 initLang 驱动。
     动效：菜单 透明度+位移+轻微缩放，箭头 180° 旋转；收起后 visibility:hidden 不可误点。
     护栏：本注释内勿写「星号+斜杠」连续序列，会提前闭合注释。 */
  .nav-lang{position:relative;margin-right:4px}
  .nav-lang:empty{display:none}
  .nav-lang-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 11px;border:1px solid var(--tp-border);border-radius:999px;background:var(--tp-bg);color:var(--tp-text-2);font-size:.78rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:color .18s,border-color .18s,box-shadow .18s,background .18s}
  .nav-lang-btn:hover{color:var(--tp-navy);border-color:var(--tp-navy)}
  .nav-lang.open .nav-lang-btn{color:var(--tp-navy);border-color:var(--tp-navy);background:#fff;box-shadow:0 0 0 3px var(--tp-blue-soft)}
  .nav-lang-globe{width:14px;height:14px;flex-shrink:0}
  .nav-lang-caret{width:10px;height:10px;flex-shrink:0;transition:transform .22s cubic-bezier(.4,0,.2,1)}
  .nav-lang.open .nav-lang-caret{transform:rotate(180deg)}
  .nav-lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:158px;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--tp-border);border-radius:12px;box-shadow:var(--tp-shadow-md);opacity:0;visibility:hidden;transform:translateY(8px) scale(.97);transform-origin:top right;transition:opacity .2s ease,transform .2s cubic-bezier(.4,0,.2,1),visibility .2s;z-index:80}
  .nav-lang.open .nav-lang-menu{opacity:1;visibility:visible;transform:none}
  .nav-lang-menu li+li{margin-top:2px}
  .nav-lang-menu a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 11px;border-radius:8px;color:var(--tp-text-2);font-size:.8rem;font-weight:600;text-decoration:none;transition:background .16s,color .16s}
  .nav-lang-menu a:hover{background:var(--tp-tint);color:var(--tp-navy)}
  .nav-lang-menu a.on{color:var(--tp-blue);background:var(--tp-blue-soft)}
  .nav-lang-tick{width:11px;height:11px;flex-shrink:0}
  @media(max-width:1023px){
    .nav-lang{margin-right:0}
    .nav-lang-menu{right:-8px}
  }
  @media(prefers-reduced-motion:reduce){
    .nav-lang-menu,.nav-lang-caret{transition:none}
  }
/* ===== 版式容器（混合模式 P6a：容器带 settings.layout 时由渲染器输出的外壳）=====
   分割方式与比例由这里定义（安全档位）；内容部件（.tp-w-*）只管内容、宽度自适应。
   护栏：本注释内勿写「星号+斜杠」连续序列，会提前闭合注释。 */
.tp-layout{display:grid;align-items:start}
.tp-layout-cols-2{grid-template-columns:1fr 1fr;gap:32px}
.tp-layout-cols-2.tp-ratio-2-1{grid-template-columns:2fr 1fr}
.tp-layout-cols-2.tp-ratio-1-2{grid-template-columns:1fr 2fr}
.tp-layout-cols-3{grid-template-columns:1fr 1fr 1fr;gap:28px}
.tp-layout-cols-4{grid-template-columns:repeat(4,1fr);gap:24px}
.tp-layout.tp-gap-s{gap:20px}
.tp-layout.tp-gap-m{gap:32px}
.tp-layout.tp-gap-l{gap:48px}
@media(max-width:1023px){
  .tp-layout-cols-2,.tp-layout-cols-3,.tp-layout-cols-4{grid-template-columns:1fr}
  .tp-layout-cols-2.tp-stack-right > :first-child{order:2}
}
/* ===== 容器友好内容部件（只显示字段，无版式）===== */
.tp-w-text{color:var(--tp-text);font-size:1rem;line-height:1.75}
.tp-w-text h2{color:var(--tp-navy);font-size:1.45rem;font-weight:700;margin:0 0 14px;letter-spacing:-.01em}
.tp-w-text h3{color:var(--tp-navy);font-size:1.12rem;font-weight:700;margin:22px 0 10px}
.tp-w-text p{margin:0 0 12px}
.tp-w-text p:last-child{margin-bottom:0}
.tp-w-text ul{margin:0 0 12px;padding-left:1.2em}
.tp-w-text li{margin-bottom:6px}
.tp-w-text strong{color:var(--tp-navy);font-weight:700}
.tp-w-image{margin:0}
.tp-w-image img{width:100%;height:auto;display:block;border-radius:14px;box-shadow:var(--tp-shadow-sm)}
.tp-w-image figcaption{margin-top:10px;color:var(--tp-muted);font-size:.82rem;text-align:center}
/* ===== 页头容器化增量规则（部件复用 .brand/.nav-links/.nav-panel 原有类）===== */
.nav-links li{display:flex;list-style:none}
.nav-links li>.nav-panel{opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.nav-links li:hover>.nav-panel,.nav-links li:focus-within>.nav-panel{opacity:1;visibility:visible;transform:none}
.brand .brand-logo-img{height:34px;width:auto;display:block}
@media(max-width:1023px){
  .nav-links{flex-wrap:wrap;gap:2px 14px}
  .nav-links a{height:44px}
  .nav-links li>.nav-panel{display:none}
}
@media(prefers-reduced-motion:reduce){
  .nav-links li>.nav-panel{transition:none}
}
/* ===== row 版式 + 位置标记档位（H2 位置系统：引擎只输出 data-pos，表现由模板定义）===== */
.tp-layout-row{display:flex;align-items:center}
.tp-layout-row[data-pos$="-center"]{justify-content:center;justify-items:center}
.tp-layout-row[data-pos$="-right"]{justify-content:flex-end;justify-items:end}
.tp-layout-row[data-pos^="top"]{align-items:flex-start}
.tp-layout-row[data-pos^="bottom"]{align-items:flex-end}
.tp-layout-row[data-pos^="center"]{align-items:center}
.tp-layout-cols-2[data-pos^="top"],.tp-layout-cols-3[data-pos^="top"],.tp-layout-cols-4[data-pos^="top"]{align-items:start}
.tp-layout-cols-2[data-pos^="center"],.tp-layout-cols-3[data-pos^="center"],.tp-layout-cols-4[data-pos^="center"]{align-items:center}
.tp-layout-cols-2[data-pos^="bottom"],.tp-layout-cols-3[data-pos^="bottom"],.tp-layout-cols-4[data-pos^="bottom"]{align-items:end}
/* ===== 部件级对齐档位（两级模型：容器 data-pos=组默认；部件 data-self-pos=自身覆盖）===== */
/* 部件在列内的位置档位（data-self-pos → 九宫格；列是 flex 纵向，align-self 管横向、margin 自动管纵向） */
.tp-col>[data-self-pos$="-left"]{align-self:flex-start}
.tp-col>[data-self-pos="center"],.tp-col>[data-self-pos$="-center"]{align-self:center}
.tp-col>[data-self-pos$="-right"]{align-self:flex-end}
.tp-col>[data-self-pos^="top"]{margin-bottom:auto}
.tp-col>[data-self-pos^="bottom"]{margin-top:auto}
.tp-col>[data-self-pos="center"],.tp-col>[data-self-pos^="center"]{margin-top:auto;margin-bottom:auto}
/* ===== 列块（TMP v1 列实体）+ 列宽神圣硬约束 =====
   列宽只由容器设定，列内内容绝不允许撑开/挤压/重叠其他列 */
.tp-col{display:flex;flex-direction:column;min-width:0;max-width:100%;overflow-wrap:anywhere}
.tp-col>*{min-width:0;max-width:100%}
.tp-col img,.tp-col video,.tp-col svg,.tp-col table{max-width:100%}
.tp-col pre,.tp-col code{white-space:pre-wrap;word-break:break-word}
/* 空列占位（仅画布可见） */
.tp-col-empty{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:32px;padding:0 8px;border:1px dashed rgba(47,123,246,.45);border-radius:6px;color:rgba(47,123,246,.75);font-size:.7rem;font-weight:600}
/* ===== 编辑画布参考线（三色：容器蓝 / 列绿带列号 / 部件橙；仅画布，前台无 data-editor）===== */
.tp-layout[data-editor="1"]{outline:2px dashed rgba(47,123,246,.8);outline-offset:-2px}
.tp-layout[data-editor="1"]>.tp-col{outline:2px dashed rgba(22,163,74,.85);outline-offset:-2px;background:rgba(22,163,74,.06);position:relative;min-height:28px;min-width:56px}
.tp-layout[data-editor="1"]>.tp-col::before{content:"列" attr(data-col);position:absolute;left:2px;top:1px;z-index:5;font-size:9px;line-height:1.4;color:#15803d;background:rgba(255,255,255,.9);padding:0 4px;border-radius:3px;pointer-events:none}
.tp-layout[data-editor="1"] .tp-col>[data-ruyi-skeleton]{outline:1px dashed rgba(245,158,11,.85);outline-offset:-1px}
/* ===== 滚动揭示 ===== */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .cat-card:hover,.prod-card:hover,.sol-card:hover .bg{transform:none;transition:none}
  html{scroll-behavior:auto}
}
