Files
cms-SiteForge/themes/trade-pro/pro.css
T
浅念 5ea0c8c5e8 feat: port cms product detail layout into trade-pro (gallery/specs/inquiry)
Rewrite pages/product.html from the 3-row skeleton to the cms
[slug].astro design: breadcrumb -> gallery (main + scrolling thumbs,
reusing the platform pro.js data-gallery-image hooks, zero new JS) +
summary column (eyebrow/h1/lead/brand+model/actions) -> flattened
Product details panel -> Specifications table from fields (hidden when
empty) -> related products on the home card grid -> inquiry section
(left contact info, right external form only when form_endpoint is
configured, CTA to /contact/ otherwise).

Component CSS lands in pro.css under .sf-theme-trade-pro with
900/620 breakpoints; stale .pro-specs tint rules removed (other
themes keep their pro-base skeleton); cross-theme skeleton assertion
in test_theme_pro_v3.py now excludes trade-pro; new
test_trade_pro_product_layout_structure covers the build output.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 10:17:31 +08:00

266 lines
28 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* trade-pro pro.css — component layer.
Phase 2 shipped a skeleton tint layer; Phase 3 Task 10a prepends the ported
cms home components; Task 10b adds the product detail components. Sources
(scoped CSS + dist pixel baseline
D:/project/cms/runtimes/astro-site-runtime/dist/hesupipe/en/):
- src/pages/[locale]/index.astro (hero / trustbar / two-col about /
applications band / section-head / card / feature / cta-band)
- src/pages/[locale]/products/[slug].astro (product hero gallery /
summary / panel titles / spec table / quote grid)
- src/components/{PageHero,FeatureGrid,CardGrid,Cta,SectionHead}.astro
Layer split with theme.css (= tokens + element baseline + shared utilities):
pro.css owns the sf-tp-* component classes; markup composes on the
theme.css base utilities (.wrap / .section / .section--soft / .eyebrow /
.icon-circle / .mono / .sf-tp-btn) and the pro-base chrome (.pro-*).
Responsive breakpoints follow the ported tokens: 900px stack, 767px hero
portrait, 620px compact (design-spec mobile). Size stays above the 2 KB
floor required by tests/test_theme_pro_v3.py for packaged assets. */
/* ── Home hero:大图完整显示(height:auto 不裁剪)+ 左深右透叠层 + 白字 ── */
.sf-theme-trade-pro .sf-tp-hero{position:relative;overflow:hidden;min-height:clamp(420px,60vh,640px);background:linear-gradient(115deg,var(--sf-tp-color-surface-inverse),var(--sf-tp-color-brand-primary-deep) 78%)}
.sf-theme-trade-pro .sf-tp-hero-slides{display:grid}
.sf-theme-trade-pro .sf-tp-hero-slide{grid-area:1/1;opacity:0;transition:opacity var(--sf-tp-duration-slow) var(--sf-tp-easing-standard)}
.sf-theme-trade-pro .sf-tp-hero-slide.active{opacity:1}
.sf-theme-trade-pro .sf-tp-hero-slide img{width:100%;height:auto;display:block}
.sf-theme-trade-pro .sf-tp-hero-overlay{position:absolute;inset:0;z-index:var(--sf-tp-z-base);background:linear-gradient(90deg,color-mix(in srgb,var(--sf-tp-color-surface-inverse) 68%,transparent) 0,color-mix(in srgb,var(--sf-tp-color-surface-inverse) 42%,transparent) 34%,transparent 62%)}
.sf-theme-trade-pro .sf-tp-hero::after{content:"";position:absolute;inset:auto 0 0;height:calc(var(--sf-tp-space-10) + var(--sf-tp-space-1));background:linear-gradient(transparent,color-mix(in srgb,var(--sf-tp-color-neutral-0) 35%,transparent));pointer-events:none}
.sf-theme-trade-pro .sf-tp-hero-content{position:absolute;inset:0;z-index:var(--sf-tp-z-raised);display:flex;align-items:center;pointer-events:none}
.sf-theme-trade-pro .sf-tp-hero-copy{position:relative;z-index:var(--sf-tp-z-raised);pointer-events:auto;width:min(calc(var(--sf-tp-container-content-max) - var(--sf-tp-space-16)),56%)}
.sf-theme-trade-pro .sf-tp-hero-copy .eyebrow{color:var(--sf-tp-color-text-inverse-muted)}
.sf-theme-trade-pro .sf-tp-hero-copy h1{color:var(--sf-tp-color-text-inverse)}
.sf-theme-trade-pro .sf-tp-lead{color:color-mix(in srgb,var(--sf-tp-color-text-inverse) 88%,transparent);font-size:var(--sf-tp-font-size-lg);line-height:var(--sf-tp-line-height-relaxed);max-width:var(--sf-tp-container-content-max);margin-block-end:var(--sf-tp-space-6)}
/* ── 信任条:4 列分隔线,图标圆位 + 标题/副题 ── */
.sf-theme-trade-pro .sf-tp-trustbar{position:relative;z-index:var(--sf-tp-z-raised);background:var(--sf-tp-color-surface-default);border-block-end:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-subtle)}
.sf-theme-trade-pro .sf-tp-trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.sf-theme-trade-pro .sf-tp-trust-item{text-align:center;padding:var(--sf-tp-space-6) var(--sf-tp-space-4);border-inline-end:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-subtle)}
.sf-theme-trade-pro .sf-tp-trust-item:last-child{border:0}
.sf-theme-trade-pro .sf-tp-trust-item .icon-circle{margin-block-end:var(--sf-tp-space-2)}
.sf-theme-trade-pro .sf-tp-trust-item strong{display:block;font-size:var(--sf-tp-font-size-sm);font-weight:var(--sf-tp-font-weight-semibold)}
.sf-theme-trade-pro .sf-tp-trust-item span{display:block;color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-xs)}
/* ── 关于两栏:文案 + 实景(悬浮数据条压在图底部)── */
.sf-theme-trade-pro .sf-tp-two-col{display:grid;grid-template-columns:1fr 1.22fr;gap:calc(var(--sf-tp-space-12) + var(--sf-tp-space-4));align-items:center}
.sf-theme-trade-pro .sf-tp-copy p{color:var(--sf-tp-color-text-muted);margin-block-end:var(--sf-tp-space-6)}
.sf-theme-trade-pro .sf-tp-photo{border-radius:var(--sf-tp-radius-md);overflow:hidden;box-shadow:var(--sf-tp-shadow-md);aspect-ratio:var(--sf-tp-ratio-landscape)}
.sf-theme-trade-pro .sf-tp-photo img{width:100%;height:100%;object-fit:cover;display:block}
.sf-theme-trade-pro .sf-tp-photo-plain{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(130deg,var(--sf-tp-color-surface-brand-soft),var(--sf-tp-color-neutral-200));color:var(--sf-tp-color-text-brand);font-weight:var(--sf-tp-font-weight-bold);letter-spacing:var(--sf-tp-letter-spacing-wide);font-size:var(--sf-tp-font-size-xs)}
.sf-theme-trade-pro .sf-tp-stats{display:grid;grid-template-columns:repeat(4,1fr);border-radius:var(--sf-tp-radius-sm);background:var(--sf-tp-color-surface-default);box-shadow:var(--sf-tp-shadow-md);margin-block-start:calc(-1 * var(--sf-tp-space-10));position:relative;width:92%;margin-left:auto;margin-right:auto}
.sf-theme-trade-pro .sf-tp-stat{text-align:center;padding:var(--sf-tp-space-5) var(--sf-tp-space-2);border-inline-end:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-default)}
.sf-theme-trade-pro .sf-tp-stat:last-child{border:0}
.sf-theme-trade-pro .sf-tp-stat strong{display:block;color:var(--sf-tp-color-text-brand);font-size:var(--sf-tp-font-size-2xl);line-height:var(--sf-tp-line-height-tight)}
.sf-theme-trade-pro .sf-tp-stat span{color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-xs)}
/* ── 区块头行(SectionHead):眉题/标题左,简介/动作右 ── */
.sf-theme-trade-pro .sf-tp-section-head{display:flex;align-items:end;justify-content:space-between;gap:var(--sf-tp-space-8);margin-block-end:var(--sf-tp-space-8);flex-wrap:wrap}
.sf-theme-trade-pro .sf-tp-intro{max-width:calc(var(--sf-tp-container-content-max) - var(--sf-tp-space-16));color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-sm)}
.sf-theme-trade-pro .sf-tp-more{color:var(--sf-tp-color-text-brand);font-size:var(--sf-tp-font-size-sm);font-weight:var(--sf-tp-font-weight-semibold)}
.sf-theme-trade-pro .sf-tp-more:hover{color:var(--sf-tp-color-text-link-hover)}
.sf-theme-trade-pro .sf-tp-more .sf-tp-icon{margin-inline-start:var(--sf-tp-space-1)}
/* ── 卡片网格(CardGrid):4 列默认 / --news 3 列;媒体 4:3 + 悬浮上抬缩放 ── */
.sf-theme-trade-pro .sf-tp-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sf-tp-space-4) calc(var(--sf-tp-space-4) + var(--sf-tp-space-1))}
.sf-theme-trade-pro .sf-tp-card-grid--news{grid-template-columns:repeat(3,minmax(0,1fr))}
.sf-theme-trade-pro .sf-tp-card{background:var(--sf-tp-color-surface-default);border:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-subtle);border-radius:var(--sf-tp-card-border-radius);overflow:hidden;box-shadow:var(--sf-tp-shadow-xs);transition:transform var(--sf-tp-duration-fast) var(--sf-tp-easing-standard),box-shadow var(--sf-tp-duration-fast) var(--sf-tp-easing-standard)}
.sf-theme-trade-pro .sf-tp-card:hover{transform:translateY(calc(-1 * var(--sf-tp-space-1)));box-shadow:var(--sf-tp-shadow-md)}
.sf-theme-trade-pro .sf-tp-card-media{aspect-ratio:var(--sf-tp-ratio-landscape);overflow:hidden;background:var(--sf-tp-color-surface-muted)}
.sf-theme-trade-pro .sf-tp-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--sf-tp-duration-slow) var(--sf-tp-easing-standard)}
.sf-theme-trade-pro .sf-tp-card:hover .sf-tp-card-media img{transform:scale(1.04)}
.sf-theme-trade-pro .sf-tp-card-media .pro-art{height:100%}
.sf-theme-trade-pro .sf-tp-card-body{padding:var(--sf-tp-space-4) var(--sf-tp-space-4) var(--sf-tp-space-5)}
.sf-theme-trade-pro .sf-tp-card h3{font-size:var(--sf-tp-font-size-lg);margin-block-end:var(--sf-tp-space-2)}
.sf-theme-trade-pro .sf-tp-card h3 a{color:inherit}
.sf-theme-trade-pro .sf-tp-card p{color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-sm);margin-block-end:var(--sf-tp-space-2);line-height:var(--sf-tp-line-height-normal)}
.sf-theme-trade-pro .sf-tp-tag{display:inline-block;background:var(--sf-tp-color-surface-brand-soft);color:var(--sf-tp-color-text-brand);border-radius:var(--sf-tp-radius-full);padding:var(--sf-tp-space-1) var(--sf-tp-space-3);font-size:var(--sf-tp-font-size-xs)}
/* ── 应用带(applications):深蓝渐变 + 光晕 + 2×2 图片瓦片 ── */
.sf-theme-trade-pro .sf-tp-applications{position:relative;padding-block:calc(var(--sf-tp-space-12) + var(--sf-tp-space-6));color:var(--sf-tp-color-text-inverse);overflow:hidden;background:linear-gradient(90deg,color-mix(in srgb,var(--sf-tp-color-surface-inverse) 96%,transparent),color-mix(in srgb,var(--sf-tp-color-brand-primary-deep) 88%,transparent))}
.sf-theme-trade-pro .sf-tp-applications::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--sf-tp-color-brand-primary) 24%,transparent),transparent 42%);pointer-events:none}
.sf-theme-trade-pro .sf-tp-applications-grid{position:relative;display:grid;grid-template-columns:0.95fr 1.15fr;gap:calc(var(--sf-tp-space-12) + var(--sf-tp-space-6));align-items:center}
.sf-theme-trade-pro .sf-tp-applications .eyebrow{color:color-mix(in srgb,var(--sf-tp-color-text-inverse) 85%,transparent)}
.sf-theme-trade-pro .sf-tp-applications h2{color:var(--sf-tp-color-text-inverse);font-size:clamp(34px,3.6vw,var(--sf-tp-font-size-4xl));margin-block-end:var(--sf-tp-space-4)}
.sf-theme-trade-pro .sf-tp-applications-copy p{max-width:510px;color:color-mix(in srgb,var(--sf-tp-color-text-inverse) 88%,transparent);margin-block-end:calc(var(--sf-tp-space-5) + var(--sf-tp-space-1))}
.sf-theme-trade-pro .sf-tp-applications-copy .sf-tp-btn{background:var(--sf-tp-color-surface-default);border-color:var(--sf-tp-color-surface-default);color:var(--sf-tp-color-text-brand)}
.sf-theme-trade-pro .sf-tp-applications-copy .sf-tp-btn:hover{background:var(--sf-tp-color-brand-primary);color:var(--sf-tp-color-text-on-brand)}
.sf-theme-trade-pro .sf-tp-application-tiles{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--sf-tp-space-4) - var(--sf-tp-space-1))}
.sf-theme-trade-pro .sf-tp-app-tile{position:relative;min-height:150px;display:flex;align-items:flex-end;overflow:hidden;border-radius:var(--sf-tp-radius-sm);box-shadow:var(--sf-tp-shadow-md);background:var(--sf-tp-color-surface-inverse-muted);transition:transform var(--sf-tp-duration-fast) var(--sf-tp-easing-standard),box-shadow var(--sf-tp-duration-fast) var(--sf-tp-easing-standard)}
.sf-theme-trade-pro .sf-tp-app-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sf-theme-trade-pro .sf-tp-tile-art{position:absolute;inset:0;background:linear-gradient(135deg,var(--sf-tp-color-brand-primary-deep),var(--sf-tp-color-brand-accent))}
.sf-theme-trade-pro .sf-tp-app-tile::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,color-mix(in srgb,var(--sf-tp-color-surface-inverse) 86%,transparent))}
.sf-theme-trade-pro .sf-tp-app-tile span{position:relative;z-index:var(--sf-tp-z-raised);width:100%;padding:var(--sf-tp-space-5);color:var(--sf-tp-color-text-inverse);font-size:var(--sf-tp-font-size-lg);font-weight:var(--sf-tp-font-weight-bold);text-shadow:0 2px 6px color-mix(in srgb,var(--sf-tp-color-surface-inverse) 45%,transparent)}
.sf-theme-trade-pro .sf-tp-app-tile:hover{transform:translateY(calc(-1 * var(--sf-tp-space-1)));box-shadow:var(--sf-tp-shadow-lg)}
/* ── 特性网格(FeatureGrid):圆图标 + 标题 + 描述 ── */
.sf-theme-trade-pro .sf-tp-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(var(--sf-tp-space-4) - var(--sf-tp-space-1))}
.sf-theme-trade-pro .sf-tp-feature{background:var(--sf-tp-color-surface-default);border-radius:var(--sf-tp-card-border-radius);text-align:center;padding:var(--sf-tp-space-6) var(--sf-tp-space-4);border:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-subtle)}
.sf-theme-trade-pro .sf-tp-feature .icon-circle{margin-block-end:var(--sf-tp-space-3)}
.sf-theme-trade-pro .sf-tp-feature h3{font-size:var(--sf-tp-font-size-md);margin-block-end:var(--sf-tp-space-2)}
.sf-theme-trade-pro .sf-tp-feature p{color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-sm);margin:0}
/* ── CTA 横幅(Cta):藏青→品牌蓝渐变 + 幽灵按钮(cms 叠加实景图,静态产物用纯渐变)── */
.sf-theme-trade-pro .sf-tp-cta{padding-block:calc(var(--sf-tp-space-12) + var(--sf-tp-space-4));color:var(--sf-tp-color-text-inverse);background:linear-gradient(90deg,color-mix(in srgb,var(--sf-tp-color-surface-inverse) 94%,transparent),color-mix(in srgb,var(--sf-tp-color-brand-primary) 67%,transparent))}
.sf-theme-trade-pro .sf-tp-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sf-tp-space-6);flex-wrap:wrap}
.sf-theme-trade-pro .sf-tp-cta .eyebrow{color:var(--sf-tp-color-text-inverse-muted)}
.sf-theme-trade-pro .sf-tp-cta h2{margin-block-end:var(--sf-tp-space-2);color:var(--sf-tp-color-text-inverse)}
.sf-theme-trade-pro .sf-tp-cta p{color:color-mix(in srgb,var(--sf-tp-color-text-inverse) 83%,transparent);margin:0}
/* ── 产品详情(Task 10b,[slug].astro 移植):画廊 + 标题区 + 参数表 + 询盘 ── */
.sf-theme-trade-pro .sf-tp-product-hero{padding-block:calc(var(--sf-tp-space-8) + var(--sf-tp-space-4)) var(--sf-tp-space-8)}
.sf-theme-trade-pro .sf-tp-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-sm);margin-block-end:var(--sf-tp-space-6)}
.sf-theme-trade-pro .sf-tp-breadcrumb>*+*::before{content:"›";margin-inline:var(--sf-tp-space-3) calc(var(--sf-tp-space-3) - var(--sf-tp-space-1));color:var(--sf-tp-color-neutral-400)}
.sf-theme-trade-pro .sf-tp-breadcrumb a:hover{color:var(--sf-tp-color-text-link)}
.sf-theme-trade-pro .sf-tp-breadcrumb-current{color:var(--sf-tp-color-text-secondary);font-weight:var(--sf-tp-font-weight-semibold)}
.sf-theme-trade-pro .sf-tp-product-grid{display:grid;grid-template-columns:1.08fr 0.92fr;gap:calc(var(--sf-tp-space-12) + var(--sf-tp-space-4));align-items:center}
/* grid 列最小宽归零:缩略图横滚依赖列宽被约束(cms 同款注释) */
.sf-theme-trade-pro .sf-tp-product-gallery,.sf-theme-trade-pro .sf-tp-product-summary{min-width:0}
/* 主图:cms product-main-image(4:3 + 圆角 + 浅底);覆盖 pro-product-media 的骨架固定高。
.pro-product-media 类仅作 pro.js 画廊钩子(querySelector 定位主图)保留。 */
.sf-theme-trade-pro .sf-tp-product-media{height:auto;aspect-ratio:var(--sf-tp-ratio-product-main);overflow:hidden;border-radius:var(--sf-tp-radius-sm);background:var(--sf-tp-color-surface-muted)}
.sf-theme-trade-pro .sf-tp-product-media img{width:100%;height:100%;object-fit:cover;display:block}
/* 缩略图:单行横滚 + scroll-snap(cms product-thumbs);激活态沿用 pro.js
维护的 aria-pressed,品牌描边 + 焦点环 */
.sf-theme-trade-pro .sf-tp-product-thumbs{display:flex;gap:var(--sf-tp-space-3);margin-block-start:var(--sf-tp-space-3);overflow-x:auto;scroll-behavior:smooth;scrollbar-width:thin;scroll-snap-type:x proximity;padding-block-end:var(--sf-tp-space-1)}
.sf-theme-trade-pro .sf-tp-product-thumb{flex:0 0 120px;aspect-ratio:var(--sf-tp-ratio-landscape);padding:0;overflow:hidden;border:var(--sf-tp-border-width-medium) solid transparent;border-radius:var(--sf-tp-radius-xs);background:var(--sf-tp-color-surface-muted);cursor:pointer;scroll-snap-align:center}
.sf-theme-trade-pro .sf-tp-product-thumb[aria-pressed="true"],.sf-theme-trade-pro .sf-tp-product-thumb:focus-visible{border-color:var(--sf-tp-color-border-brand);box-shadow:var(--sf-tp-shadow-focus-ring)}
.sf-theme-trade-pro .sf-tp-product-thumb img{width:100%;height:100%;object-fit:cover;display:block}
/* 标题区:产品名 h1 用 cms 量级(2xl,非巨型 display),导语 + 管理字段行 + CTA 对 */
.sf-theme-trade-pro .sf-tp-product-title{font-size:var(--sf-tp-font-size-2xl);line-height:var(--sf-tp-line-height-snug);letter-spacing:var(--sf-tp-letter-spacing-normal);margin-block-end:var(--sf-tp-space-3)}
.sf-theme-trade-pro .sf-tp-product-lead{color:var(--sf-tp-color-text-muted);line-height:var(--sf-tp-line-height-relaxed);margin-block-end:var(--sf-tp-space-4)}
.sf-theme-trade-pro .sf-tp-product-meta{display:flex;flex-wrap:wrap;gap:var(--sf-tp-space-2) var(--sf-tp-space-5);color:var(--sf-tp-color-text-secondary);font-size:var(--sf-tp-font-size-sm);margin-block-end:var(--sf-tp-space-6)}
.sf-theme-trade-pro .sf-tp-product-actions{display:flex;gap:var(--sf-tp-space-4);flex-wrap:wrap}
.sf-theme-trade-pro .sf-tp-product-actions .sf-tp-btn{border-radius:var(--sf-tp-radius-full)}
/* 详情面板标题:品牌色下划短线(cms .detail-section h2 层次) */
.sf-theme-trade-pro .sf-tp-panel-title{display:inline-block;margin-block-end:var(--sf-tp-space-6);padding-block-end:var(--sf-tp-space-3);border-block-end:var(--sf-tp-border-width-strong) solid var(--sf-tp-color-border-brand)}
/* 正文:迁移富文本(.pro-rich 基线之上补表格形态——WP 迁移正文常带规格表) */
.sf-theme-trade-pro .sf-tp-product-body table{width:100%;border-collapse:collapse;table-layout:auto;font-size:var(--sf-tp-font-size-sm);margin-block:var(--sf-tp-space-6)}
.sf-theme-trade-pro .sf-tp-product-body th,.sf-theme-trade-pro .sf-tp-product-body td{border:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-default);padding:var(--sf-tp-space-3) var(--sf-tp-space-4);text-align:start;vertical-align:middle;word-break:break-word}
.sf-theme-trade-pro .sf-tp-product-body tbody tr:nth-child(even) td{background:var(--sf-tp-color-neutral-50)}
/* 参数表(cms spec-table):键列灰底,横向可滚(宽表不溢出容器) */
.sf-theme-trade-pro .sf-tp-table-scroll{overflow-x:auto}
.sf-theme-trade-pro .sf-tp-spec-table{width:100%;border-collapse:collapse;font-size:var(--sf-tp-font-size-sm)}
.sf-theme-trade-pro .sf-tp-spec-table th,.sf-theme-trade-pro .sf-tp-spec-table td{border:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-default);padding:var(--sf-tp-space-3) var(--sf-tp-space-4);text-align:start}
.sf-theme-trade-pro .sf-tp-spec-table th{background:var(--sf-tp-color-surface-muted);font-weight:var(--sf-tp-font-weight-semibold);white-space:nowrap}
/* 询盘板块(cms quote-grid 同构):左联系信息 + 右表单卡 */
.sf-theme-trade-pro .sf-tp-quote-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:calc(var(--sf-tp-space-12) + var(--sf-tp-space-4));align-items:start}
.sf-theme-trade-pro .sf-tp-quote-info>p{color:var(--sf-tp-color-text-muted)}
.sf-theme-trade-pro .sf-tp-quote-list{display:grid;gap:var(--sf-tp-space-5);margin-block-start:var(--sf-tp-space-6)}
.sf-theme-trade-pro .sf-tp-quote-item{display:flex;align-items:center;gap:var(--sf-tp-space-4)}
.sf-theme-trade-pro .sf-tp-quote-item .icon-circle{margin:0;flex-shrink:0}
.sf-theme-trade-pro .sf-tp-quote-item strong{display:block;margin-block-end:var(--sf-tp-space-1)}
.sf-theme-trade-pro .sf-tp-quote-item p{margin:0;color:var(--sf-tp-color-text-muted);font-size:var(--sf-tp-font-size-sm)}
.sf-theme-trade-pro .sf-tp-quote-item a:hover{color:var(--sf-tp-color-text-link)}
.sf-theme-trade-pro .sf-tp-quote-form{background:var(--sf-tp-color-surface-muted);padding:calc(var(--sf-tp-space-8) + var(--sf-tp-space-1));border-radius:var(--sf-tp-radius-sm)}
.sf-theme-trade-pro .sf-tp-quote-form form{display:grid;gap:var(--sf-tp-space-4)}
.sf-theme-trade-pro .sf-tp-quote-form .sf-tp-btn{justify-self:start}
.sf-theme-trade-pro .sf-tp-quote-form textarea{min-height:110px}
.sf-theme-trade-pro .sf-tp-quote-note{font-size:var(--sf-tp-font-size-xs);color:var(--sf-tp-color-text-muted);margin:0}
/* ── 响应式(断点随 cms 设计稿:900 栅格堆叠 / 767 hero 竖版 / 620 紧凑)── */
@media (max-width: 900px){
.sf-theme-trade-pro .sf-tp-applications-grid{grid-template-columns:1fr;gap:calc(var(--sf-tp-space-8) + var(--sf-tp-space-1))}
.sf-theme-trade-pro .sf-tp-two-col{grid-template-columns:1fr}
/* 产品详情:画廊/标题区上下堆叠;询盘左右并排收窄间距(cms 900 同款) */
.sf-theme-trade-pro .sf-tp-product-grid{grid-template-columns:1fr;gap:var(--sf-tp-space-8)}
.sf-theme-trade-pro .sf-tp-quote-grid{grid-template-columns:1fr;gap:var(--sf-tp-space-8)}
.sf-theme-trade-pro .sf-tp-card-grid,.sf-theme-trade-pro .sf-tp-card-grid--news{grid-template-columns:repeat(2,minmax(0,1fr))}
.sf-theme-trade-pro .sf-tp-feature-grid,.sf-theme-trade-pro .sf-tp-trust-grid{grid-template-columns:1fr 1fr}
.sf-theme-trade-pro .sf-tp-trust-item{border-inline-end:0;border-block-end:var(--sf-tp-border-width-hairline) solid var(--sf-tp-color-border-subtle)}
}
@media (max-width: 767px){
.sf-theme-trade-pro .sf-tp-hero{aspect-ratio:3/4;min-height:520px}
.sf-theme-trade-pro .sf-tp-hero-copy{width:100%}
}
@media (max-width: 620px){
.sf-theme-trade-pro .sf-tp-hero{aspect-ratio:375/320;min-height:320px}
.sf-theme-trade-pro .sf-tp-hero-copy{max-width:57%}
.sf-theme-trade-pro .sf-tp-hero-copy .sf-tp-lead{font-size:11px;line-height:1.35;margin-block-end:12px}
/* 信任条:浮动圆角卡片 2×2(图标左、文字右) */
.sf-theme-trade-pro .sf-tp-trustbar{margin-block-start:-1px;padding-inline:0;border-radius:10px;box-shadow:var(--sf-tp-shadow-md);overflow:hidden}
.sf-theme-trade-pro .sf-tp-trust-grid{grid-template-columns:1fr 1fr}
.sf-theme-trade-pro .sf-tp-trust-item{min-height:72px;padding:11px 7px;text-align:left;display:grid;grid-template-columns:45px 1fr;align-content:center;border-inline-end:1px solid var(--sf-tp-color-border-subtle);border-block-end:1px solid var(--sf-tp-color-border-subtle)}
.sf-theme-trade-pro .sf-tp-trust-item:nth-child(2n){border-inline-end:0}
.sf-theme-trade-pro .sf-tp-trust-item:nth-last-child(-n+2){border-block-end:0}
.sf-theme-trade-pro .sf-tp-trust-item .icon-circle{grid-row:1/3;margin:0;background:transparent;font-size:20px}
.sf-theme-trade-pro .sf-tp-trust-item strong{font-size:10px}
.sf-theme-trade-pro .sf-tp-trust-item span{font-size:9px}
/* 关于区:紧凑双栏 + 数据 2×2 */
.sf-theme-trade-pro .sf-tp-two-col{grid-template-columns:1fr 1.08fr;gap:13px;align-items:start}
.sf-theme-trade-pro .sf-tp-copy p{font-size:11px;line-height:1.35;margin-block-end:10px}
.sf-theme-trade-pro .sf-tp-photo{min-height:162px}
.sf-theme-trade-pro .sf-tp-stats{grid-template-columns:repeat(2,1fr);margin-block-start:-1px}
.sf-theme-trade-pro .sf-tp-stat{padding:9px 3px}
.sf-theme-trade-pro .sf-tp-stat strong{font-size:19px}
.sf-theme-trade-pro .sf-tp-stat span{font-size:8px}
/* 应用带:浅底代替深色,按钮隐藏 */
.sf-theme-trade-pro .sf-tp-applications{padding-block:28px;color:var(--sf-tp-color-text-primary);background:linear-gradient(135deg,var(--sf-tp-color-neutral-50),var(--sf-tp-color-surface-brand-soft))}
.sf-theme-trade-pro .sf-tp-applications::before{content:none}
.sf-theme-trade-pro .sf-tp-applications .eyebrow{color:var(--sf-tp-color-text-brand)}
.sf-theme-trade-pro .sf-tp-applications h2{color:var(--sf-tp-color-text-primary);font-size:22px;margin-block-end:4px}
.sf-theme-trade-pro .sf-tp-applications-copy p{color:var(--sf-tp-color-text-secondary);font-size:11px;margin-block-end:9px}
.sf-theme-trade-pro .sf-tp-applications-copy .sf-tp-btn{display:none}
.sf-theme-trade-pro .sf-tp-applications-grid{display:block}
.sf-theme-trade-pro .sf-tp-application-tiles{gap:7px}
.sf-theme-trade-pro .sf-tp-app-tile{min-height:92px}
.sf-theme-trade-pro .sf-tp-app-tile span{padding:9px;font-size:11px}
/* 卡片 2 列紧凑;新闻网格移动端只显示前 2 张 */
.sf-theme-trade-pro .sf-tp-card-grid,.sf-theme-trade-pro .sf-tp-card-grid--news{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sf-theme-trade-pro .sf-tp-card-media{aspect-ratio:16/9}
.sf-theme-trade-pro .sf-tp-card-body{padding:9px 10px 11px}
.sf-theme-trade-pro .sf-tp-card h3{font-size:13px;margin-block-end:2px}
.sf-theme-trade-pro .sf-tp-card p{font-size:11px;margin-block-end:5px}
.sf-theme-trade-pro .sf-tp-more{font-size:10px}
.sf-theme-trade-pro .sf-tp-card-grid--news .sf-tp-card:nth-child(n+3){display:none}
/* 特性 2 列横排(图标左、文字右) */
.sf-theme-trade-pro .sf-tp-feature-grid{grid-template-columns:1fr 1fr;gap:8px}
.sf-theme-trade-pro .sf-tp-feature{min-height:92px;text-align:left;padding:12px;display:grid;grid-template-columns:44px 1fr;align-content:center;column-gap:7px}
.sf-theme-trade-pro .sf-tp-feature .icon-circle{grid-row:1/3;align-self:center;margin:0;font-size:20px}
.sf-theme-trade-pro .sf-tp-feature h3{font-size:12px;margin:0 0 3px}
.sf-theme-trade-pro .sf-tp-feature p{font-size:10px;line-height:1.3}
.sf-theme-trade-pro .sf-tp-section-head{display:block}
/* CTA:纵向堆叠 */
.sf-theme-trade-pro .sf-tp-cta{padding-block:28px}
.sf-theme-trade-pro .sf-tp-cta-inner{display:block}
.sf-theme-trade-pro .sf-tp-cta h2{font-size:22px}
.sf-theme-trade-pro .sf-tp-cta p{font-size:11px}
.sf-theme-trade-pro .sf-tp-cta .sf-tp-btn{margin-block-start:12px}
/* 产品详情 620 紧凑(cms 移动端设计稿):面包屑收紧、缩略图缩格、
CTA 双列铺满、表单卡与参数表留白降档 */
.sf-theme-trade-pro .sf-tp-product-hero{padding-block:14px 21px}
.sf-theme-trade-pro .sf-tp-breadcrumb{margin-block-end:8px;font-size:10px}
.sf-theme-trade-pro .sf-tp-product-grid{gap:14px}
.sf-theme-trade-pro .sf-tp-product-media{aspect-ratio:16/9}
.sf-theme-trade-pro .sf-tp-product-thumbs{gap:8px;margin-block-start:7px}
.sf-theme-trade-pro .sf-tp-product-thumb{flex-basis:86px}
.sf-theme-trade-pro .sf-tp-product-lead{font-size:11px;line-height:1.35}
.sf-theme-trade-pro .sf-tp-product-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sf-theme-trade-pro .sf-tp-product-actions .sf-tp-btn{min-height:37px;font-size:11px}
.sf-theme-trade-pro .sf-tp-quote-list{gap:12px;margin-block-start:16px}
.sf-theme-trade-pro .sf-tp-quote-form{padding:16px}
.sf-theme-trade-pro .sf-tp-spec-table th,.sf-theme-trade-pro .sf-tp-spec-table td{padding:9px 12px}
}
/* ── Phase 2 skeleton tint layer(chrome 着色,供其余页面与 pro-base 骨架)── */
.sf-theme-trade-pro .pro-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.sf-theme-trade-pro .pro-header{background:#fff;border-bottom:3px solid var(--sf-tp-primary,#0b3d91)}
.sf-theme-trade-pro .pro-logo-name small{color:var(--sf-tp-primary,#0b3d91);letter-spacing:.18em}
.sf-theme-trade-pro .pro-navigation a{color:var(--sf-tp-text,#1a2332);text-decoration:none;font-weight:500}
.sf-theme-trade-pro .pro-navigation a:hover{color:var(--sf-tp-primary,#0b3d91)}
.sf-theme-trade-pro .pro-header-cta{white-space:nowrap}
.sf-theme-trade-pro .pro-mega{border-top:1px solid #e3e9f2;background:#f7fafd}
.sf-theme-trade-pro .pro-mega a{color:var(--sf-tp-primary,#0b3d91)}
.sf-theme-trade-pro .pro-category-tiles a{border:1px solid #dfe7f2;border-radius:var(--sf-tp-radius,8px);background:#fff}
.sf-theme-trade-pro .pro-category-tiles a span{color:var(--sf-tp-accent,#f5a623)}
.sf-theme-trade-pro .pro-card{border:1px solid #dfe7f2;border-radius:var(--sf-tp-radius,8px);background:#fff;overflow:hidden}
.sf-theme-trade-pro .pro-card h3{color:var(--sf-tp-text,#1a2332)}
.sf-theme-trade-pro .pro-card:hover{border-color:var(--sf-tp-primary,#0b3d91)}
.sf-theme-trade-pro .pro-card-link{color:var(--sf-tp-primary,#0b3d91)}
.sf-theme-trade-pro .pro-end-cta{background:var(--sf-tp-primary,#0b3d91);color:#fff}
.sf-theme-trade-pro .pro-end-cta .pro-eyebrow{color:var(--sf-tp-accent,#f5a623)}
.sf-theme-trade-pro .pro-end-cta .sf-tp-btn{background:#fff;color:var(--sf-tp-primary,#0b3d91);border-color:#fff}
.sf-theme-trade-pro .pro-footer{background:#0d1b2e;color:#c7d3e2}
.sf-theme-trade-pro .pro-footer h2{color:#fff}
.sf-theme-trade-pro .pro-footer a{color:#fff}
.sf-theme-trade-pro .pro-footer-bottom{border-top:1px solid #24344c}
.sf-theme-trade-pro .pro-filter-panel{border:1px solid #dfe7f2;border-radius:var(--sf-tp-radius,8px)}
.sf-theme-trade-pro .pro-404 strong{color:var(--sf-tp-primary,#0b3d91)}