upgrade: adopt V8.33.1 — final merge, our patches upstreamed natively

V8.33.0 absorbed our entire platform patch set as native features
(discovery/env_for macro override/blocks.css priority/type-mapping fix/
frontend entries/locale override) and synced trade-pro from our remote;
V8.33.1 adds HESU PIPE industrial-theme home fixes (1.3.1).

Zero patch re-application this round — all verified native. Theme
suites 35/35; full run 428 passed + same 10 known Windows env fails
(FAILED set unchanged). Live: container 8.33.1-dev.1 healthy, hesupipe
192 entries intact, trade-pro build 203 pages 0 errors.

Patch registry retired to archive — future upgrades are plain overlay.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-26 14:27:17 +08:00
parent b5996bf2b1
commit e21dbb6518
66 changed files with 2137 additions and 24 deletions
+86
View File
@@ -0,0 +1,86 @@
/* Portable SiteForge blocks, loaded with every theme (all styles scoped to sf-). */
.sf-section{background:var(--sf-bg,transparent);color:var(--sf-fg,inherit);padding:var(--sf-pad,82px) 0;margin:0}.sf-section:nth-of-type(even){background:var(--sf-bg,#f4f6f9)}.sf-container{max-width:1200px;margin:auto;padding:0 32px}.sf-section h1,.sf-section h2,.sf-section h3,.sf-section p{color:inherit;line-height:1.3}.sf-section h1{font-size:clamp(38px,5vw,76px);font-weight:790;letter-spacing:-.052em}.sf-section h2{font-size:clamp(27px,3.2vw,44px);font-weight:760;letter-spacing:-.037em}.sf-kicker{display:block;font-size:12px;letter-spacing:.17em;text-transform:uppercase;font-weight:740;color:var(--accent,#3569d3);margin-bottom:18px}.sf-hero-grid,.sf-image-text{display:grid;grid-template-columns:1.08fr .92fr;gap:68px;align-items:center}.sf-hero-copy p{font-size:18px;line-height:1.75;max-width:520px;opacity:.75}.sf-hero-img,.sf-image-side{overflow:hidden;border-radius:9px;min-height:380px;background:linear-gradient(130deg,#d5e1ee,#eef3f9);display:grid;place-items:center}.sf-hero-img img,.sf-image-side img{width:100%;height:100%;max-height:580px;object-fit:cover}.sf-hero-abstract{font-size:110px;color:#a7bdd4}.sf-button{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--accent,#315ee2);color:white!important;padding:16px 26px;border-radius:6px;font-size:14px;text-decoration:none;font-weight:720;margin-top:24px}.sf-section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px;gap:24px}.sf-section-head h2{margin:0}.sf-section-head>a,.sf-link{color:var(--accent,#3569d3);font-weight:700;text-decoration:none}.sf-prose{font-size:16px;line-height:1.85;max-width:930px}.sf-prose p{line-height:1.85}.sf-features,.sf-collection,.sf-stats{display:grid;gap:20px}.sf-features{grid-template-columns:repeat(3,minmax(0,1fr))}.sf-feature{border:1px solid #e0e6eb;padding:32px 28px;border-radius:8px;background:#fff;color:#253247}.sf-feature>span{font-size:12px;font-weight:800;color:var(--accent,#346add)}.sf-feature h3{font-size:22px;margin:30px 0 8px}.sf-feature p{font-size:14px;line-height:1.7;color:#647181}.sf-stats{grid-template-columns:repeat(4,1fr);padding:40px 0;border-top:1px solid #b7c0cd66;border-bottom:1px solid #b7c0cd66}.sf-stats>div{display:flex;flex-direction:column;gap:8px}.sf-stats strong{font-size:clamp(28px,4vw,53px);letter-spacing:-.04em}.sf-stats span{font-size:12px;opacity:.65;letter-spacing:.04em}.sf-collection{grid-template-columns:repeat(var(--sf-cols,3),minmax(0,1fr))}.sf-item{display:block;text-decoration:none;color:#233044;background:#fff;border:1px solid #e8edf1;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s}.sf-item:hover{transform:translateY(-4px);box-shadow:0 18px 38px #344d7018}.sf-item-img{height:210px;overflow:hidden;background:#e4eaf0}.sf-item-img img{height:100%;width:100%;object-fit:cover}.sf-placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:190px;background:linear-gradient(130deg,#e2eaf2,#c9d7e6);font-size:72px;color:#8399b2;font-weight:800}.sf-large{min-height:360px}.sf-item-copy{padding:25px}.sf-item-copy small{text-transform:uppercase;letter-spacing:.13em;color:var(--accent,#376edc)}.sf-item-copy h3{font-size:22px;margin:12px 0 7px}.sf-item-copy p{font-size:14px;line-height:1.6;color:#7a8796;min-height:42px}.sf-item-copy span{font-size:12px;color:var(--accent,#376edc);font-weight:800}.sf-image-text>div>p{font-size:17px;line-height:1.8;max-width:520px;opacity:.7}.sf-reverse>div:first-child{order:2}.sf-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.sf-gallery img{width:100%;height:230px;object-fit:cover;border-radius:6px}.sf-faq{max-width:920px}.sf-faq details{border-bottom:1px solid #dce3eb;padding:22px 0}.sf-faq summary{font-size:17px;cursor:pointer;font-weight:700}.sf-faq p{color:#647181;line-height:1.75}.sf-cta-wrap{display:flex;justify-content:space-between;align-items:center;gap:24px}.sf-cta-wrap h2{margin:0}.sf-cta-wrap p{font-size:16px;opacity:.75}.sf-section a{cursor:pointer}.sf-muted{opacity:.65}
@media(max-width:820px){.sf-container{padding:0 20px}.sf-section{padding:50px 0}.sf-hero-grid,.sf-image-text{grid-template-columns:1fr;gap:26px}.sf-reverse>div:first-child{order:initial}.sf-hero-img,.sf-image-side{min-height:250px}.sf-features,.sf-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.sf-stats{grid-template-columns:repeat(2,1fr)}.sf-cta-wrap{align-items:flex-start;flex-direction:column}}
@media(max-width:540px){.sf-features,.sf-collection,.sf-gallery{grid-template-columns:1fr}.sf-section-head{display:block}.sf-section-head>a{display:block;margin-top:13px}.sf-item-img{height:220px}.sf-hero-grid{gap:22px}.sf-hero-copy p{font-size:16px}.sf-stats{gap:28px}}
.sf-attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;border-top:1px solid #e5eaf0}.sf-attribute{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #e5eaf0;padding:19px 10px;font-size:14px}.sf-attribute span{color:#748497}.sf-attribute strong{font-weight:720;text-align:right}@media(max-width:640px){.sf-attributes{grid-template-columns:1fr}}
/* SiteForge responsive no-code grid container */
.sf-layout-grid{display:grid;grid-template-columns:var(--sf-layout-cols,1fr 1fr);gap:var(--sf-layout-gap,24px);align-items:stretch}
.sf-layout-column{min-width:0}.sf-layout-column>.sf-section{padding:0;margin:0 0 18px}.sf-layout-column .sf-container{width:100%;padding:0}
.sf-layout-column>.sf-section:last-child{margin-bottom:0}
@media(max-width:820px){.sf-layout-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:540px){.sf-layout-grid{grid-template-columns:minmax(0,1fr)!important}}
/* V8.6: accessible, script-free commercial design blocks */
.sf-slides{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 0 18px;scrollbar-width:thin}
.sf-slide{flex:0 0 min(78%,720px);min-width:220px;margin:0;scroll-snap-align:start}
.sf-slide img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.sf-slide figcaption{padding:10px 2px;opacity:.7;font-size:14px}
.sf-video{aspect-ratio:16/9;max-width:1000px;background:#ebf0f5;border-radius:10px;overflow:hidden}
.sf-video iframe{width:100%;height:100%;border:0}
.sf-tab{padding:19px 0;border-bottom:1px solid #dde4ec;max-width:960px}
.sf-tab summary{font-size:18px;font-weight:700;cursor:pointer}.sf-tab p{max-width:850px;line-height:1.8}
.sf-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.sf-price{padding:28px;background:#fff;border:1px solid #dee5ef;border-radius:10px;color:#29394b}
.sf-price strong{display:block;font-size:27px;margin:14px 0}.sf-price li{margin:11px 0}.sf-price ul{padding-left:19px}
.sf-map-address{font-style:normal;font-size:18px;white-space:pre-line;line-height:1.8}
@media (prefers-reduced-motion:reduce){.sf-slides{scroll-behavior:auto}.sf-item{transition:none}}
@media(max-width:540px){.sf-slide{flex-basis:92%}}
/* V8.33.1 grid-class collision fix: block section and inner collection/features
share a class. The section must NOT become a grid container itself.
Restrict grid layout to its dedicated inner element. */
.sf-section.sf-features,.sf-section.sf-collection,.sf-section.sf-stats,.sf-section.sf-gallery,.sf-section.sf-attributes{display:block;grid-template-columns:none}
.sf-section.sf-faq{max-width:none}
/* V8.33.1 HesuPipe / Industrial scoped homepage blocks.
Deliberately affects only current industrial theme, not the other four.
Versioned copies remain unchanged. */
.sf-theme-industrial .pro-custom-content{min-width:0}
.sf-theme-industrial .pro-custom-content .sf-section{padding:clamp(54px,6vw,92px) 0}
.sf-theme-industrial .pro-custom-content .sf-container{max-width:var(--pro-wide,1270px);padding-inline:32px}
.sf-theme-industrial .pro-custom-content .sf-section-head{align-items:flex-end;margin-bottom:30px;gap:16px}
.sf-theme-industrial .pro-custom-content .sf-section-head h2{max-width:900px;font-size:clamp(28px,3.1vw,43px);line-height:1.18;letter-spacing:-.035em}
.sf-theme-industrial .pro-custom-content .sf-section-head>a{font-size:14px;white-space:nowrap;color:var(--pro-accent,#087c94)}
/* Advantage cards: evenly distribute 1–4 cards, maintain equal height, no orphan in 4-item groups. */
.sf-theme-industrial .pro-custom-content .sf-section.sf-features > .sf-container > .sf-features{display:grid;grid-template-columns:repeat(var(--sf-feature-cols,3),minmax(0,1fr));gap:18px}
.sf-theme-industrial .pro-custom-content .sf-feature{min-width:0;min-height:220px;border:1px solid #d9e5ea;border-top:3px solid var(--pro-accent,#0f7895);border-radius:10px;padding:28px 25px;background:#fff;display:flex;flex-direction:column;gap:0;box-shadow:0 8px 28px rgba(23,56,68,.035);overflow-wrap:anywhere}
.sf-theme-industrial .pro-custom-content .sf-feature>span{font-size:12px;font-weight:800;letter-spacing:.15em;color:var(--pro-accent,#0f7895)}
.sf-theme-industrial .pro-custom-content .sf-feature h3{font-size:clamp(18px,1.6vw,22px);margin:28px 0 10px;line-height:1.3;color:#143c4e}
.sf-theme-industrial .pro-custom-content .sf-feature p{font-size:14px;line-height:1.75;color:#56717e;margin:0}
/* Product gallery: stable image ratio, neat text baselines and equal card heights. */
.sf-theme-industrial .pro-custom-content .sf-section.sf-collection > .sf-container > .sf-collection{display:grid;grid-template-columns:repeat(var(--sf-cols,3),minmax(0,1fr));gap:21px;align-items:stretch}
.sf-theme-industrial .pro-custom-content .sf-item{min-width:0;height:100%;display:flex;flex-direction:column;border:1px solid #dfe8ec;border-radius:10px;background:#fff;overflow:hidden;color:#16384b;box-shadow:0 6px 18px rgba(16,59,82,.04)}
.sf-theme-industrial .pro-custom-content .sf-item-img{height:auto;aspect-ratio:4/3;min-height:0;background:#eff5f7;display:grid;place-items:center;padding:14px;overflow:hidden}
.sf-theme-industrial .pro-custom-content .sf-item-img img{display:block;width:100%;height:100%;object-fit:contain}
.sf-theme-industrial .pro-custom-content .sf-item-img .sf-placeholder{min-height:0;font-size:clamp(24px,5vw,52px)}
.sf-theme-industrial .pro-custom-content .sf-item-copy{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1;min-width:0}
.sf-theme-industrial .pro-custom-content .sf-item-copy small{font-size:11px;font-weight:750;color:var(--pro-accent,#087c94);letter-spacing:.08em}
.sf-theme-industrial .pro-custom-content .sf-item-copy h3{margin:11px 0 8px;font-size:clamp(17px,1.5vw,21px);line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sf-theme-industrial .pro-custom-content .sf-item-copy p{margin:0 0 15px;font-size:13px;line-height:1.65;color:#637f8c;min-height:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sf-theme-industrial .pro-custom-content .sf-item-copy>span{margin-top:auto;padding-top:10px;font-weight:750;color:var(--pro-accent,#087c94)}
.sf-theme-industrial .pro-custom-content .sf-section.sf-collection > .sf-container > .sf-collection>.sf-muted{grid-column:1/-1;border:1px dashed #bdcdd4;border-radius:9px;padding:28px;text-align:center;background:#f6fafb;opacity:1;color:#617985}
/* The dedicated listing / category view retains filters. Homepage highlights do not. */
.sf-theme-industrial .pro-custom-content .sf-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 22px}
.sf-theme-industrial .pro-custom-content .sf-filters input,.sf-theme-industrial .pro-custom-content .sf-filters select{min-width:0;max-width:100%;border:1px solid #cbdbe3;border-radius:7px;background:#fff;color:#1b4055;padding:10px 13px;font-size:14px}
@media(max-width:960px){
.sf-theme-industrial .pro-custom-content .sf-section.sf-features > .sf-container > .sf-features{grid-template-columns:repeat(2,minmax(0,1fr))}
.sf-theme-industrial .pro-custom-content .sf-section.sf-collection > .sf-container > .sf-collection{grid-template-columns:repeat(2,minmax(0,1fr))}
.sf-theme-industrial .pro-custom-content .sf-container{padding-inline:24px}
}
@media(max-width:600px){
.sf-theme-industrial .pro-custom-content .sf-section{padding:45px 0}
.sf-theme-industrial .pro-custom-content .sf-container{padding-inline:18px}
.sf-theme-industrial .pro-custom-content .sf-section-head{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:20px}
.sf-theme-industrial .pro-custom-content .sf-section-head>a{white-space:normal;margin-top:0}
.sf-theme-industrial .pro-custom-content .sf-section.sf-features > .sf-container > .sf-features{grid-template-columns:minmax(0,1fr);gap:12px}
.sf-theme-industrial .pro-custom-content .sf-feature{min-height:0;padding:24px}
.sf-theme-industrial .pro-custom-content .sf-feature h3{margin-top:18px}
.sf-theme-industrial .pro-custom-content .sf-section.sf-collection > .sf-container > .sf-collection{grid-template-columns:minmax(0,1fr);gap:16px}
.sf-theme-industrial .pro-custom-content .sf-item-img{aspect-ratio:5/3}
.sf-theme-industrial .pro-custom-content .sf-item-copy{padding:17px 20px 21px}
.sf-theme-industrial .pro-custom-content .sf-filters{display:grid;grid-template-columns:minmax(0,1fr)}
.sf-theme-industrial .pro-custom-content .sf-filters input,.sf-theme-industrial .pro-custom-content .sf-filters select{width:100%}
}
@media(prefers-reduced-motion:reduce){.sf-theme-industrial .pro-custom-content .sf-item{transition:none}}
+2 -2
View File
@@ -1,8 +1,8 @@
{
"id": "industrial",
"name": "工业制造",
"description": "V8.30 专业内页设计升级:行业化首页/产品/文章/企业/联系布局;保留抽屉菜单和可选 Tabs,历史版本独立可用。",
"version": "1.3.0",
"description": "V8.33.1 工业建材首页区块视觉修复:核心优势、动态列表自适应布局;版本1.3.0独立归档。",
"version": "1.3.1",
"style": "technical",
"entry": "pro.html",
"styles": [
@@ -0,0 +1,54 @@
{
"id": "industrial",
"name": "工业制造",
"description": "V8.30 专业内页设计升级:行业化首页/产品/文章/企业/联系布局;保留抽屉菜单和可选 Tabs,历史版本独立可用。",
"version": "1.3.0",
"style": "technical",
"entry": "pro.html",
"styles": [
"theme.css",
"blocks.css"
],
"page_templates": [
"home",
"about",
"contact",
"listing",
"category",
"product",
"article",
"brand",
"case",
"service",
"faq",
"standard",
"notfound"
],
"blocks": [
"hero",
"richtext",
"features",
"stats",
"collection",
"image_text",
"gallery",
"faq",
"cta",
"attributes",
"spacer"
],
"responsive": true,
"auto_binding": true,
"professional_layout": true,
"commercial_ui": true,
"commercial_features": [
"responsive-design",
"product-detail",
"brand-collections",
"gallery",
"content-facets",
"mega-navigation",
"contact-integration",
"readiness-audit"
]
}
@@ -0,0 +1,285 @@
{
"home": [
{
"id": "0cdf18bf7f",
"type": "hero",
"visible": true,
"title": "工程质量,值得信赖",
"subtitle": "INDUSTRIAL ENGINEERING",
"description": "{{site.tagline}}",
"button": "查看产品",
"href": "/product/",
"align": "left"
},
{
"id": "f846a2ff6b",
"type": "features",
"visible": true,
"title": "制造与服务能力",
"items": [
{
"title": "专业服务",
"text": "从咨询到交付"
},
{
"title": "品质保障",
"text": "严格的质量流程"
},
{
"title": "全球网络",
"text": "连接不同市场"
}
]
},
{
"id": "ff4655d684",
"type": "collection",
"visible": true,
"title": "工业产品系列",
"subtitle": "PRODUCT SOLUTIONS",
"source": "product",
"limit": 6,
"columns": 3,
"button": "查看全部",
"href": "/product/"
},
{
"id": "4355daaba0",
"type": "image_text",
"visible": true,
"title": "工程标准与服务流程",
"subtitle": "QUALITY FIRST",
"description": "展示业务流程和服务理念。",
"image": "",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "9e5056370d",
"type": "cta",
"visible": true,
"title": "获取专业产品方案",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"about": [
{
"id": "8ced1e0493",
"type": "image_text",
"visible": true,
"title": "认识我们",
"subtitle": "OUR APPROACH",
"description": "展示业务流程和服务理念。",
"image": "",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "52b6064084",
"type": "stats",
"visible": true,
"title": "我们的实力",
"items": [
{
"value": "50,000+",
"label": "服务案例"
},
{
"value": "70+",
"label": "市场覆盖"
},
{
"value": "30+",
"label": "合作伙伴"
}
]
},
{
"id": "cf39bcb75d",
"type": "features",
"visible": true,
"title": "我们的优势",
"items": [
{
"title": "专业服务",
"text": "从咨询到交付"
},
{
"title": "品质保障",
"text": "严格的质量流程"
},
{
"title": "全球网络",
"text": "连接不同市场"
}
]
}
],
"contact": [
{
"id": "597f6ffb08",
"type": "richtext",
"visible": true,
"title": "联系我们",
"body": "<p>请填写企业联系方式与地址。</p>"
},
{
"id": "8c02c61415",
"type": "cta",
"visible": true,
"title": "欢迎联系",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"listing": [
{
"id": "2c3106baf6",
"type": "collection",
"visible": true,
"title": "工业产品目录",
"subtitle": "为客户提供适合的解决方案",
"source": "product",
"limit": 24,
"columns": 3,
"button": "查看全部",
"href": "/product/"
}
],
"product": [
{
"id": "42925dc8e3",
"type": "image_text",
"visible": true,
"title": "产品介绍",
"subtitle": "OUR APPROACH",
"description": "{{page.summary}}",
"image": "{{page.cover}}",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "503266af35",
"type": "attributes",
"visible": true,
"title": "产品规格与参数"
},
{
"id": "b2b1f5293c",
"type": "richtext",
"visible": true,
"title": "产品详情",
"body": "{{page.body}}"
},
{
"id": "3837f66074",
"type": "cta",
"visible": true,
"title": "开启新的合作",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"article": [
{
"id": "c2573cb88d",
"type": "richtext",
"visible": true,
"title": "{{page.title}}",
"body": "{{page.body}}"
}
],
"brand": [
{
"id": "f43b705317",
"type": "image_text",
"visible": true,
"title": "{{page.title}}",
"subtitle": "OUR APPROACH",
"description": "{{page.summary}}",
"image": "{{page.cover}}",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "b3faf08170",
"type": "collection",
"visible": true,
"title": "品牌产品",
"subtitle": "为客户提供适合的解决方案",
"source": "product",
"limit": 6,
"columns": 3,
"button": "查看全部",
"href": "/product/"
}
],
"standard": [
{
"id": "7937550319",
"type": "richtext",
"visible": true,
"title": "{{page.title}}",
"body": "{{page.body}}"
}
],
"notfound": [
{
"id": "59383d762e",
"type": "cta",
"visible": true,
"title": "页面暂时无法访问",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "返回首页",
"href": "/"
}
],
"case": [
{
"type": "image_text",
"title": "{{page.title}}",
"image": "{{page.cover}}",
"description": "{{page.summary}}"
},
{
"type": "richtext",
"title": "项目概述",
"body": "{{page.body}}"
}
],
"service": [
{
"type": "richtext",
"title": "{{page.title}}",
"body": "{{page.body}}"
},
{
"type": "cta",
"title": "了解更多",
"href": "/contact/"
}
],
"faq": [
{
"type": "faq",
"title": "常见问题",
"items": []
}
],
"category": [
{
"type": "collection",
"title": "分类产品",
"source": "product",
"limit": 24
}
]
}
@@ -0,0 +1,4 @@
<div class="pro-v30-page pro-v30-about pro-v30-about-industrial"><section class="pro-v30-about-opening"><div class="pro-wrap"><span class="pro-eyebrow">OUR COMPANY / APPROACH</span><div class="pro-v30-about-heading"><h1>{{page.title}}</h1><p>{{page.summary or site.tagline or '了解材料、产品与工程应用'}}</p></div></div></section>
<section class="pro-section pro-v30-about-story"><div class="pro-wrap pro-v30-about-grid"><div class="pro-v30-about-media">{% if page.cover %}<img src="{{safe_image(page.cover)}}" alt="{{page.title}}" loading="lazy">{% else %}<div class="pro-v30-media-placeholder" aria-hidden="true"><span>OUR / STORY</span></div>{% endif %}</div><div class="pro-v30-about-copy"><span class="pro-eyebrow">ABOUT / 企业与制造</span><h2>面向实际工程需求的产品与服务</h2>{{body_copy(content,page)}}<a class="pro-v30-text-action" href="/contact/">联系与合作 ↗</a></div></div></section>
{% if features %}<section class="pro-section pro-v30-about-services"><div class="pro-wrap">{{section_title('WHAT WE DO','相关服务','/services/')}}{{grid(features,'service')}}</div></section>{% endif %}
{% if cases %}<section class="pro-section pro-v30-about-cases"><div class="pro-wrap">{{section_title('SELECTED WORK','相关项目','/cases/')}}{{grid(cases,'case')}}</div></section>{% endif %}</div>
@@ -0,0 +1,2 @@
<div class="pro-v30-page pro-v30-article pro-v30-article-industrial"><section class="pro-article-hero pro-v30-reading-head"><div class="pro-wrap"><nav class="pro-v30-crumb" aria-label="面包屑导航"><a href="/">首页</a><span aria-hidden="true">/</span><a href="/news/">技术与行业动态</a></nav><div class="pro-v30-reading-title"><span class="pro-eyebrow">IDEAS / JOURNAL</span><h1>{{page.title}}</h1>{% if page.summary %}<p>{{page.summary}}</p>{% endif %}{% if fields.get('publish_date') %}<time datetime="{{fields.get('publish_date')}}">{{fields.get('publish_date')}}</time>{% endif %}</div></div></section>
<div class="pro-wrap pro-v30-reading-layout"><aside class="pro-v30-reading-aside"><span class="pro-eyebrow">READ / EXPLORE</span><a href="/news/">← 返回资讯</a><span class="pro-v30-reading-rule" aria-hidden="true"></span><a href="/contact/">联系沟通 ↗</a></aside><article id="article-body" class="pro-v30-reading-content">{% if page.cover %}<figure><img src="{{safe_image(page.cover)}}" alt="{{page.title}}" loading="eager"></figure>{% endif %}{{body_copy(content,page)}}<a class="pro-v30-subtle-link" href="/news/">← 返回资讯</a></article></div></div>
@@ -0,0 +1 @@
<section class="pro-inner-hero pro-brand-hero"><div class="pro-wrap pro-brand-hero-grid"><div><span class="pro-eyebrow">BRAND PROFILE / PARTNERS</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div><div class="pro-brand-media">{{cover(page,'brand')}}</div></div></section><section class="pro-section"><div class="pro-wrap">{{body_copy(content,page)}}{% if related %}{{section_title('PRODUCT LINE','相关产品','/products/')}}{{grid(related,'product')}}{% endif %}</div></section>
@@ -0,0 +1 @@
<section class="pro-inner-hero"><div class="pro-wrap"><span class="pro-eyebrow">SELECTED WORK / PROJECT</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section><section class="pro-section"><div class="pro-wrap pro-case-detail">{% if page.cover %}<img src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}<div class="pro-case-meta">{% if fields.get('location') %}<span>项目地点<br><strong>{{fields.get('location')}}</strong></span>{% endif %}{% if fields.get('industry') %}<span>所属行业<br><strong>{{fields.get('industry')}}</strong></span>{% endif %}</div>{{body_copy(content,page)}}<a class="pro-text-link" href="/cases/">浏览更多案例 →</a></div></section>
@@ -0,0 +1,2 @@
<section class="pro-inner-hero pro-listing-hero"><div class="pro-wrap"><span class="pro-eyebrow">DISCOVER / {{'CATEGORY' if kind=='category' else 'COLLECTION'}}</span><h1>{{page.title}}</h1><p>{{page.summary or '查看此栏目的全部已发布内容。'}}</p><div class="pro-breadcrumb"><a href="/">首页</a><span>/</span><strong>{{page.title}}</strong></div></div></section>
<section class="pro-section pro-list-section"><div class="pro-wrap">{{ filters() }}<div class="pro-filter-scope">{{grid(listing,'catalog')}}</div>{% if pagination and pagination.pages>1 %}<nav class="pro-pages-nav" aria-label="商品列表分页">{% if pagination.previous %}<a href="{{pagination.previous}}" rel="prev">← 上一页</a>{% endif %}<span>第 {{pagination.page}} / {{pagination.pages}} 页</span>{% if pagination.next %}<a href="{{pagination.next}}" rel="next">下一页 →</a>{% endif %}</nav>{% endif %}</div></section>
@@ -0,0 +1,6 @@
<div class="pro-v30-page pro-v30-contact pro-v30-contact-industrial"><section class="pro-v30-contact-header"><div class="pro-wrap"><span class="pro-eyebrow">CONNECT / CONTACT</span><h1>{{page.title}}</h1><p>{{page.summary or '提交产品、规格和应用场景需求,方便进一步沟通。'}}</p></div></section>
<section class="pro-section pro-v30-contact-content"><div class="pro-wrap pro-v30-contact-layout"><div class="pro-v30-contact-info"><span class="pro-eyebrow">LET'S START A CONVERSATION</span><h2>咨询工程材料</h2>{{body_copy(content,page)}}
{% if footer_email %}<div class="pro-v30-contact-channel"><span>电子邮箱</span><a href="mailto:{{footer_email}}">{{footer_email}} ↗</a></div>{% endif %}
{% if not footer_email and not form_endpoint %}<p class="pro-muted">联系渠道正在更新,请稍后访问本页面。</p>{% endif %}
</div><div class="pro-v30-contact-form-wrap">{% if form_endpoint %}<span class="pro-eyebrow">SEND AN INQUIRY</span><h3>提交咨询</h3><form class="pro-inquiry" action="{{form_endpoint}}" method="POST"><label>姓名 <input name="name" autocomplete="name" required maxlength="100"></label><label>邮箱 <input name="email" type="email" autocomplete="email" required maxlength="180"></label><label>咨询内容 <textarea name="message" required minlength="6" maxlength="5000"></textarea></label><input name="website" tabindex="-1" autocomplete="off" class="pro-honeypot" aria-hidden="true"><button type="submit" class="pro-button">发送咨询 ↗</button><p>提交信息将发送至配置的外部表单服务,请了解其隐私政策。</p></form>
{% else %}<div class="pro-v30-contact-note"><span class="pro-eyebrow">HOW TO REACH US</span><p>您可以通过本页提供的联系渠道咨询产品、项目或合作事项。</p><span class="pro-v30-decorative-number" aria-hidden="true">↗</span></div>{% endif %}</div></div></section></div>
@@ -0,0 +1,2 @@
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
@@ -0,0 +1,6 @@
<section class="pro-home-hero pro-industrial-hero"><div class="pro-wrap pro-home-grid"><div class="pro-hero-copy"><span class="pro-eyebrow">ENGINEERED FOR WHAT'S NEXT / 001</span><h1>{{page.title if page.title not in (site.name,'首页','Home') else site.name}}<em> BUILT TO PERFORM.</em></h1><p>{{page.summary or site.tagline or '从材料到解决方案,一站式展示企业实力。'}}</p><div class="pro-hero-actions"><a class="pro-button" href="/products/">查看产品系列 ↗</a><a class="pro-outline-button" href="/contact/">获取方案</a></div></div><div class="pro-hero-art">{% if page.cover %}<img src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% else %}<div class="pro-technical"><div></div><div></div><div></div><strong>FORM / FUNCTION</strong></div>{% endif %}</div></div></section>
{% if categories %}<section class="pro-section pro-category-band"><div class="pro-wrap">{{section_title('PRODUCT SYSTEMS','从类别开始探索','/products/')}}<div class="pro-category-tiles">{% for cat in categories[:6] %}<a href="{{cat.url}}"><span>0{{loop.index}}</span><strong>{{cat.name}}</strong><b>↗</b></a>{% endfor %}</div></div></section>{% endif %}
<section class="pro-section pro-featured"><div class="pro-wrap">{{section_title('PRODUCT PORTFOLIO','核心产品','/products/')}}{{grid(showcase,'industrial')}}</div></section>
<section class="pro-section pro-statement"><div class="pro-wrap pro-statement-layout"><span class="pro-eyebrow">APPLICATIONS & SUPPORT</span><div><h2>专注可靠交付,服务多元项目。</h2><p>{{site.tagline or '企业技术、材料和服务能力展示。'}}</p><a class="pro-text-link" href="/services/">服务与解决方案 ↗</a></div></div></section>
{% if cases %}<section class="pro-section pro-v30-home-editorial"><div class="pro-wrap">{{section_title('APPLICATIONS / CASES','应用项目','/cases/')}}{{grid(cases,'case')}}</div></section>{% endif %}
@@ -0,0 +1,6 @@
<div class="pro-v30-page pro-v30-listing pro-v30-technical-index">
<section class="pro-v30-page-intro"><div class="pro-wrap pro-v30-intro-layout"><div class="pro-v30-intro-main"><span class="pro-eyebrow">ENGINEERING MATERIALS / INDEX</span><h1>{{page.title}}</h1><p>{{page.summary or '通过材料分类与规格快速查找产品'}}</p></div><div class="pro-v30-intro-aside"><span class="pro-v30-overline">BROWSE / EXPLORE</span><span class="pro-v30-index-number">{{'%02d'|format(listing|length)}}</span><span class="pro-v30-caption">本页展示内容</span></div></div></section>
<section class="pro-section pro-v30-index-body"><div class="pro-wrap"><div class="pro-v30-index-toolbar"><div class="pro-v30-section-title"><span class="pro-eyebrow">CONTENTS / FIND YOUR FIT</span><h2>产品与材料</h2></div><a class="pro-v30-subtle-link" href="/contact/">需要协助?联系沟通 ↗</a></div>
{{filters()}}<div class="pro-filter-scope pro-v30-results" aria-live="polite">{{grid(listing,'catalog')}}</div>
{% if pagination and pagination.pages>1 %}<nav class="pro-pages-nav" aria-label="列表分页">{% if pagination.previous %}<a href="{{pagination.previous}}" rel="prev">← 上一页</a>{% endif %}<span>第 {{pagination.page}} / {{pagination.pages}} 页</span>{% if pagination.next %}<a href="{{pagination.next}}" rel="next">下一页 →</a>{% endif %}</nav>{% endif %}
</div></section></div>
@@ -0,0 +1 @@
<section class="pro-404 pro-wrap"><span>ERROR / 404</span><h1>404</h1><p>抱歉,你访问的页面不存在,或者已被移动。</p><a class="pro-button" href="/">返回首页 ↗</a></section>
@@ -0,0 +1,4 @@
<div class="pro-product-layout pro-v30-page pro-v30-product pro-v30-product-industrial"><section class="pro-v30-product-top"><div class="pro-wrap"><nav class="pro-v30-crumb" aria-label="面包屑导航"><a href="/">首页</a><span aria-hidden="true">/</span><a href="/products/">产品与材料</a><span aria-hidden="true">/</span><span aria-current="page">{{page.title}}</span></nav>
<div class="pro-v30-product-head"><div class="pro-v30-product-intro"><span class="pro-eyebrow">ENGINEERING MATERIALS / DETAILS</span><h1>{{page.title}}</h1><p>{{page.summary or ''}}</p><div class="pro-v30-tags">{% if fields.get('brand') %}<span>{{fields.get('brand')}}</span>{% endif %}{% if fields.get('category') %}<span>{{fields.get('category')}}</span>{% endif %}</div><a class="pro-button pro-v30-action" href="/contact/">咨询相关信息 ↗</a></div>
<div class="pro-v30-product-visual"><div class="pro-product-media pro-v30-main-media">{{cover(page,'product')}}</div>{% if gallery|length > 1 %}<div class="pro-gallery-thumbs" aria-label="产品展示">{% for photo in gallery %}<button type="button" data-gallery-image="{{photo}}" aria-label="查看第{{loop.index}}张图片"><img src="{{photo}}" alt="{{page.title}} · 图片{{loop.index}}" loading="lazy"></button>{% endfor %}</div>{% endif %}</div></div></div></section>
<section class="pro-section pro-v30-product-information"><div class="pro-wrap pro-v30-product-details"><div class="pro-v30-details-main"><span class="pro-eyebrow">OVERVIEW / 产品资料</span><h2>产品资料</h2>{{body_copy(content,page)}}</div><aside class="pro-v30-details-side"><span class="pro-eyebrow">TECHNICAL / FACTS</span><h2>技术规格</h2><div class="pro-specs">{% for row in specs %}<div><span>{{row.label}}</span><strong>{{row.value}}</strong></div>{% else %}<p class="pro-muted">更多资料请通过联系页面咨询。</p>{% endfor %}</div></aside></div></section></div>
@@ -0,0 +1,2 @@
<section class="pro-inner-hero"><div class="pro-wrap"><span class="pro-eyebrow">SEARCH / CONTENT</span><h1>站内搜索</h1><p>搜索本网站的产品、品牌、新闻和案例。</p></div></section>
<main id="main-content" class="sf-search-page pro-wrap"><label for="sf-search">输入关键词</label><input type="search" id="sf-search" placeholder="搜索产品、品牌、新闻、案例……" autofocus><div id="sf-search-count" aria-live="polite"></div><div id="sf-search-results"></div></main>
@@ -0,0 +1,2 @@
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
@@ -0,0 +1,2 @@
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
+89
View File
@@ -0,0 +1,89 @@
:root{--pro-text:#173a57;--pro-muted:#6b8191;--pro-border:#d8e3eb;--pro-background:#fff;--pro-surface:#edf3f7;--pro-accent:#16629a;--pro-hero:#0e3959;--pro-radius:2px;--pro-headings:Arial,sans-serif;--pro-wide:1290px}
.pro-header{background:#fff}.pro-logo-symbol{color:#14649b;font-size:38px}.pro-utility{background:#0d3a5a;color:#c6e2f1}.pro-header-cta{border-radius:2px;background:#0c5b94}.pro-industrial-hero{background:linear-gradient(90deg,#eff4f8 0%,#e6eef5 60%,#d7e5f0 100%);color:#123b59}.pro-industrial-hero .pro-hero-copy{padding-right:6%}.pro-industrial-hero .pro-hero-copy h1{font-size:clamp(45px,5.3vw,80px)}.pro-industrial-hero .pro-hero-copy h1 em{color:#186fa4}.pro-industrial-hero .pro-hero-art{border-radius:0;background:#0c466d}.pro-technical{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3%;overflow:hidden;background:repeating-linear-gradient(0deg,transparent,transparent 39px,#ffffff0b 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ffffff0b 40px)}.pro-technical>div{width:21%;height:55%;border-radius:60px;border:27px solid #6ba6d4;transform:skewY(-13deg) rotate(-5deg);box-shadow:18px 17px 0 #14324a,0 0 0 9px #bde2fb inset,12px 22px 50px #081c30}.pro-technical>div:nth-child(2){height:72%;width:27%;border-width:34px}.pro-technical strong{position:absolute;bottom:24px;left:28px;color:#aed1e8;font-size:13px;letter-spacing:.17em}.pro-outline-button{color:#0f5988}.pro-category-band{background:#fff}.pro-category-tiles a{background:#eaf2f7;border-top:4px solid #2176aa;min-height:185px;transition:background .2s}.pro-category-tiles a:hover{background:#dce9f2}.pro-category-tiles strong{font-size:21px}.pro-featured{background:#edf3f7}.pro-card{background:#fff;border-radius:2px}.pro-card-cover{background:#d8e6ef}.pro-art-industrial,.pro-art-product{background:linear-gradient(135deg,#aecadf,#e1f1fb)}.pro-art-center{color:#45789b99}.pro-statement{background:#103e5e;color:#fff}.pro-statement .pro-eyebrow{color:#8dc8eb}.pro-statement p{color:#d3e1e9}.pro-statement .pro-text-link{color:#9cdaff}.pro-inner-hero{background:linear-gradient(115deg,#edf4f9 0%,#d9e9f4 100%)}.pro-inner-hero:after{content:'+';position:absolute;right:11%;top:6%;font-size:350px;font-weight:100;color:#15699b10;line-height:1}.pro-article-hero{background:#dceaf4}.pro-article-hero p{color:#537088}.pro-footer{background:#092c45}.pro-end-cta{background:#0a4772}.pro-end-cta a{background:#fff;color:#144b75!important}.pro-404 h1{color:#156d9d}
/* SiteForge V5 commercial signature */
.pro-industrial-hero .pro-hero-art{background-image:url("./visual/hero.svg")!important;background-position:center;background-size:cover;}
.pro-industrial-hero .pro-hero-art{border-radius:0;box-shadow:25px 25px 0 #ffffff9c}.pro-industrial-hero .pro-hero-art .pro-technical{opacity:0}.pro-category-tiles a{transition:transform .2s,background .2s}.pro-category-tiles a:hover{transform:translateY(-4px);background:#ddeef9}.pro-card{border-radius:0;border:1px solid #cddfe9}.pro-card-cover{background:linear-gradient(145deg,#dceaf0,#c3d9e7)}.pro-art{background:repeating-linear-gradient(0deg,#e2edf4,#e2edf4 24px,#d6e7ef 25px);color:#20577e}.pro-featured{background:#f4f8fb}.pro-statement{background:#103b57;color:#fff}.pro-statement p{color:#d4e5ed}.pro-statement .pro-text-link{color:#a8d8ee}.pro-footer{background:#0e3046;color:#eff5f9}
/* V8.29 presentation refinement: industrial. Preserve per-theme design language. */
body.pro-industrial{--pro-studio-ring:rgba(24,101,145,.19);--pro-focus-color:#13709b;--pro-interact-radius:7px}
body.pro-industrial .pro-wrap{max-width:100%;min-width:0}
body.pro-industrial .pro-hero-copy,body.pro-industrial .pro-card-body,body.pro-industrial .pro-card-copy{min-width:0;overflow-wrap:anywhere}
body.pro-industrial .pro-hero-copy h1{font-size:clamp(2.45rem,5.15vw,5.6rem);line-height:1.08;max-width:18ch;text-wrap:balance}
body.pro-industrial .pro-section-head h2{font-size:clamp(1.85rem,3vw,3.25rem);text-wrap:balance}
body.pro-industrial .pro-card,body.pro-industrial .pro-product-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
@media(hover:hover){body.pro-industrial .pro-card:hover,body.pro-industrial .pro-product-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px var(--pro-studio-ring)}}
body.pro-industrial :where(button,a,input,select,textarea):focus-visible{outline:3px solid var(--pro-focus-color);outline-offset:3px}
body.pro-industrial img{max-width:100%;height:auto}
body.pro-industrial .pro-card-cover img,body.pro-industrial .pro-gallery-main img{object-fit:cover;max-height:100%}
body.pro-industrial .pro-mobile-toggle,body.pro-industrial .pro-nav-disclose{min-height:44px;min-width:44px}
@media(max-width:860px){body.pro-industrial .pro-home-grid,body.pro-industrial .pro-product-layout,body.pro-industrial .pro-inquiry-wrap{min-width:0}body.pro-industrial .pro-card-grid,body.pro-industrial .pro-grid{gap:clamp(12px,3vw,23px)}}
@media(max-width:560px){body.pro-industrial .pro-wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}body.pro-industrial .pro-hero-copy h1{font-size:clamp(2rem,9vw,3.2rem)}body.pro-industrial .pro-section-head h2{font-size:clamp(1.75rem,7vw,2.5rem)}body.pro-industrial .pro-section{padding-block:clamp(34px,9vw,60px)}body.pro-industrial .pro-card-cover{height:auto;aspect-ratio:4/3}body.pro-industrial .pro-card-cover img{width:100%;height:100%;object-fit:cover}}
@media(prefers-reduced-motion:reduce){body.pro-industrial .pro-card,body.pro-industrial .pro-product-card{transition:none!important;transform:none!important}}
/* V8.30 REAL PAGE COMPOSITION. Built-in theme version 1.3.0 only.
Content-driven sections do not invent client names, certifications or KPIs. */
.pro-v30-page{--v30-ink:var(--pro-text);--v30-secondary:var(--pro-muted);--v30-line:var(--pro-border);--v30-panel:var(--pro-surface);--v30-max:1180px;color:var(--v30-ink);overflow:clip}
.pro-v30-page .pro-wrap{max-width:var(--v30-max);min-width:0}
.pro-v30-page h1,.pro-v30-page h2{overflow-wrap:anywhere;text-wrap:balance;line-height:1.11}
.pro-v30-page h1{font-size:clamp(2.55rem,5.2vw,5.6rem);margin:18px 0 22px;letter-spacing:-.035em}
.pro-v30-page h2{font-size:clamp(1.8rem,3.3vw,3rem);margin:16px 0 26px;letter-spacing:-.02em}
.pro-v30-page p{line-height:1.75;overflow-wrap:anywhere}
.pro-v30-page img{max-width:100%}
.pro-v30-intro-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:8vw;align-items:end}
.pro-v30-page-intro{padding:clamp(68px,10vw,128px) 0 clamp(55px,8vw,94px);background:var(--v30-panel)}
.pro-v30-intro-main>p{max-width:610px;font-size:clamp(16px,2vw,21px);color:var(--v30-secondary)}
.pro-v30-intro-aside{border-left:1px solid var(--v30-line);padding-left:27px;display:grid;gap:8px;align-content:end;min-height:120px}
.pro-v30-overline,.pro-v30-caption{font-size:11px;letter-spacing:.12em;color:var(--v30-secondary)}
.pro-v30-index-number{font-size:64px;line-height:1;font-weight:650;letter-spacing:-.08em}
.pro-v30-index-toolbar{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:28px}
.pro-v30-index-body{background:var(--pro-background)}
.pro-v30-index-body .pro-section-head,.pro-v30-index-toolbar h2{margin:8px 0}
.pro-v30-subtle-link,.pro-v30-text-action{display:inline-flex;gap:10px;text-decoration:none;font-weight:750;font-size:13px;align-items:center;min-height:44px}
.pro-v30-subtle-link:hover,.pro-v30-text-action:hover{text-decoration:underline}
.pro-v30-results{margin-top:clamp(28px,5vw,54px)}
.pro-v30-product-top{padding:26px 0 clamp(60px,8vw,110px);background:var(--v30-panel)}
.pro-v30-crumb{display:flex;flex-wrap:wrap;gap:11px;align-items:center;font-size:12px;color:var(--v30-secondary);margin:8px 0 46px}
.pro-v30-crumb a{text-decoration:underline;text-underline-offset:4px}
.pro-v30-product-head{display:grid;grid-template-columns:minmax(290px,.78fr) minmax(0,1.22fr);align-items:center;gap:clamp(30px,6vw,90px)}
.pro-v30-product-intro>p{font-size:clamp(16px,2vw,19px);color:var(--v30-secondary);max-width:48ch}
.pro-v30-tags{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 30px}.pro-v30-tags span{padding:8px 13px;border:1px solid var(--v30-line);font-size:12px;border-radius:2px}
.pro-v30-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px}
.pro-v30-main-media{background:var(--pro-surface);aspect-ratio:4/3;overflow:hidden;display:grid;place-items:center;border-radius:var(--pro-radius)}
.pro-v30-main-media .pro-photo{width:100%;height:100%;object-fit:contain}
.pro-v30-product-details{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,.7fr);gap:clamp(30px,7vw,104px)}
.pro-v30-details-main .pro-rich{max-width:760px}.pro-v30-details-side{align-self:start;border-top:3px solid var(--pro-accent);padding-top:25px}
.pro-v30-details-side .pro-specs>div{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px}.pro-v30-details-side .pro-specs strong{overflow-wrap:anywhere}
.pro-v30-reading-head{padding:clamp(50px,8vw,100px) 0 clamp(60px,8vw,100px);background:var(--v30-panel)}
.pro-v30-reading-title{max-width:940px;margin:auto}.pro-v30-reading-title>p{font-size:clamp(16px,2.1vw,22px);max-width:65ch;color:var(--v30-secondary)}
.pro-v30-reading-title time{display:block;margin-top:24px;font-size:13px;color:var(--v30-secondary)}
.pro-v30-reading-layout{display:grid;grid-template-columns:180px minmax(0,750px);gap:clamp(35px,7vw,110px);padding-block:clamp(55px,8vw,110px)}
.pro-v30-reading-aside{display:flex;flex-direction:column;gap:18px;align-self:start;position:sticky;top:30px;font-size:13px}
.pro-v30-reading-rule{height:1px;background:var(--v30-line)}
.pro-v30-reading-content{min-width:0}.pro-v30-reading-content figure{margin:0 0 45px}.pro-v30-reading-content figure img{display:block;width:100%;height:auto;max-height:550px;object-fit:cover}
.pro-v30-reading-content .pro-rich{line-height:1.9;font-size:clamp(16px,1.75vw,18px)}.pro-v30-reading-content .pro-rich>*+*{margin-top:1.3em}
.pro-v30-about-opening{padding:clamp(75px,10vw,130px) 0;background:var(--v30-panel)}
.pro-v30-about-heading{display:grid;grid-template-columns:1.3fr .7fr;gap:9%;align-items:end}.pro-v30-about-heading>p{font-size:clamp(17px,2vw,23px);color:var(--v30-secondary);padding-bottom:12px}
.pro-v30-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,8vw,120px);align-items:center}
.pro-v30-about-media{min-height:360px;aspect-ratio:5/4;background:var(--v30-panel);overflow:hidden}.pro-v30-about-media img{width:100%;height:100%;object-fit:cover}
.pro-v30-media-placeholder{height:100%;min-height:360px;display:grid;place-items:center;color:var(--v30-secondary);letter-spacing:.18em;font-size:12px;border:1px solid var(--v30-line)}
.pro-v30-about-copy .pro-rich{max-width:620px}.pro-v30-about-cases{background:var(--v30-panel)}
.pro-v30-contact-header{background:var(--v30-panel);padding:clamp(75px,10vw,135px) 0}.pro-v30-contact-header p{font-size:clamp(17px,2vw,21px);max-width:58ch;color:var(--v30-secondary)}
.pro-v30-contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,8vw,120px)}
.pro-v30-contact-channel{display:grid;gap:10px;margin-top:45px;border-top:1px solid var(--v30-line);padding-top:25px}.pro-v30-contact-channel span{font-size:12px;color:var(--v30-secondary)}.pro-v30-contact-channel a{font-size:clamp(15px,2vw,24px);overflow-wrap:anywhere;font-weight:650}
.pro-v30-contact-form-wrap{padding:clamp(22px,4vw,48px);background:var(--v30-panel);min-width:0}
.pro-v30-contact-form-wrap .pro-inquiry{margin-top:22px}.pro-v30-contact-form-wrap .pro-inquiry input,.pro-v30-contact-form-wrap textarea{background:var(--pro-background)}
.pro-v30-contact-note{display:grid;align-content:space-between;min-height:270px;gap:24px}.pro-v30-decorative-number{font-size:90px;line-height:1;justify-self:end;color:var(--pro-accent)}
.pro-v30-home-editorial{background:var(--pro-surface)}
.pro-v30-page :where(a,button,input,textarea,select):focus-visible{outline:3px solid var(--pro-accent);outline-offset:3px}
@media(max-width:950px){.pro-v30-product-head,.pro-v30-product-details,.pro-v30-about-grid,.pro-v30-contact-layout{grid-template-columns:1fr;gap:38px}.pro-v30-product-visual{order:-1}.pro-v30-about-heading{grid-template-columns:1fr;gap:4px}.pro-v30-about-media{max-height:430px}.pro-v30-reading-layout{grid-template-columns:1fr;gap:24px}.pro-v30-reading-aside{position:static;flex-direction:row;align-items:center;flex-wrap:wrap}.pro-v30-reading-rule{display:none}}
@media(max-width:600px){.pro-v30-page .pro-wrap{padding-inline:max(18px,env(safe-area-inset-left));}.pro-v30-page h1{font-size:clamp(2.2rem,9.2vw,3.4rem)}.pro-v30-intro-layout{grid-template-columns:1fr;gap:18px}.pro-v30-intro-aside{display:none}.pro-v30-index-toolbar{align-items:start;flex-direction:column;gap:0}.pro-v30-crumb{margin-bottom:24px}.pro-v30-product-top{padding-bottom:42px}.pro-v30-main-media{aspect-ratio:5/4}.pro-v30-product-details{gap:45px}.pro-v30-reading-title{margin:0}.pro-v30-reading-content figure{margin-bottom:22px}.pro-v30-about-media,.pro-v30-media-placeholder{min-height:220px}.pro-v30-contact-form-wrap{padding:20px}.pro-v30-contact-layout{gap:30px}}
@media(prefers-reduced-motion:reduce){.pro-v30-page *{scroll-behavior:auto!important}}
/* Theme-specific editorial composition */
.pro-v30-technical-index .pro-v30-page-intro{background:#eaf2f4;border-bottom:5px solid #154c62}.pro-v30-product-industrial .pro-v30-product-top{background:#eef3f4}.pro-v30-product-industrial .pro-v30-main-media{background:#fff;border:1px solid #d4e0e4}.pro-v30-product-industrial .pro-v30-main-media .pro-photo{object-fit:contain;padding:clamp(8px,2vw,24px)}.pro-v30-product-industrial .pro-v30-details-side{background:#edf3f5;padding:27px;border:1px solid #d8e4e7;border-top:4px solid #24718e}.pro-v30-article-industrial .pro-v30-reading-head{border-left:solid clamp(6px,1vw,18px) #276780}.pro-v30-about-industrial .pro-v30-about-media{border-radius:4px}.pro-v30-contact-industrial .pro-v30-contact-form-wrap{background:#eef4f6}
/* Retain existing gallery runtime behavior with re-composed product layout. */
.pro-v30-page .pro-product-media{height:auto;min-height:0}
+13
View File
@@ -0,0 +1,13 @@
<!doctype html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><base href="/"><title>{{ seo_title }}</title><meta name="description" content="{{ seo_description }}"><meta property="og:type" content="{{ 'article' if kind in ('article','case') else 'website' }}"><meta property="og:title" content="{{ seo_title }}"><meta property="og:description" content="{{ seo_description }}">{% if canonical %}<meta property="og:url" content="{{canonical}}">{% endif %}<meta name="theme-color" content="{{theme_color}}"><meta name="robots" content="{{ 'noindex,follow' if noindex else page.get('robots','index,follow') }}">{% if canonical and not noindex %}<link rel="canonical" href="{{ canonical }}">{% endif %}<link rel="stylesheet" href="assets/theme.css"><link rel="stylesheet" href="assets/blocks.css"><link rel="stylesheet" href="assets/factory.css"><link rel="stylesheet" href="assets/pro-base.css"><link rel="stylesheet" href="assets/pro.css"><link rel="stylesheet" href="assets/commercial.css">{% if theme_overrides %}<link rel="stylesheet" href="assets/theme-overrides.css">{% endif %}<link rel="stylesheet" href="assets/custom.css"></head><body class="sf-theme-industrial pro-industrial"><a class="pro-skip" href="#main-content">跳转至正文</a>
{% from '_professional_components.html' import card,cover,grid,section_title,filters,footer_links,body_copy with context %}
{% if chrome_is_custom %}<div class="pro-utility"{% if not chrome.header.show_announcement %} hidden{% endif %}><div class="pro-wrap"><span>{{ chrome.header.announcement }}</span><span>{{ site.tagline or site.name }}</span></div></div>{% else %}<div class="pro-utility"><div class="pro-wrap"><span>ENGINEERING · MATERIALS · SUPPLY</span><span>INDUSTRIAL SOLUTIONS</span></div></div>{% endif %}
<header class="sf-site-head pro-header"><div class="pro-wrap pro-head-inner"><a class="pro-logo" href="/" aria-label="{{site.name}} 首页">{% if safe_image(site.logo) %}<img class="pro-brand-logo" src="{{safe_image(site.logo)}}" alt="{{site.name}} Logo">{% else %}<span class="pro-logo-symbol">▥</span>{% endif %}<span class="pro-logo-name">{{site.name}}<small> INDUSTRIAL</small></span></a><button class="pro-mobile-toggle" type="button" data-pro-menu aria-controls="pro-navigation" aria-expanded="false" aria-label="打开导航">☰</button><nav id="pro-navigation" class="pro-navigation" aria-label="主导航">{% for link in nav %}{% if link.children %}<div class="pro-nav-group"><a href="{{link.route}}">{{link.title}}</a><button type="button" class="pro-nav-disclose" aria-expanded="false" aria-label="展开{{link.title}}子菜单">▾</button><div class="pro-nav-children" hidden>{% for child in link.children %}<a href="{{child.route}}">{{child.title}}</a>{% for leaf in child.children %}<a class="pro-nav-leaf" href="{{leaf.route}}">— {{leaf.title}}</a>{% endfor %}{% endfor %}</div></div>{% else %}<a href="{{link.route}}">{{link.title}}</a>{% endif %}{% endfor %}<a href="/search/">搜索 ⌕</a>{% if chrome.header.show_search %}<a class="pro-search-link" href="/search/" aria-label="站内搜索">⌕</a>{% endif %}</nav><button class="pro-catalog-toggle" type="button" data-pro-catalog aria-controls="pro-mega-content" aria-expanded="false">产品分类 ▾</button>{% if chrome_is_custom %}{% if chrome.header.show_cta %}<a href="{{chrome.header.cta_href}}" class="pro-header-cta">{{chrome.header.cta_text}} <span>↗</span></a>{% endif %}{% else %}<a href="/contact/" class="pro-header-cta">询价咨询 <span>↗</span></a>{% endif %}</div>{% if categories %}<div class="pro-mega pro-wrap" data-pro-mega id="pro-mega-content" hidden><span>产品分类导航</span><div>{% for cat in categories[:12] %}<a href="{{cat.url}}">{{cat.name}} ↗</a>{% endfor %}</div></div>{% endif %}</header>
{% if not designer_replace %}{% include 'industrial/pages/' ~ kind ~ '.html' %}{% endif %}
{% if has_custom and kind!='notfound' %}<main id="main-content" class="sf-canvas pro-custom-content">{{custom_blocks}}</main>{% else %}<main id="main-content" class="sf-canvas pro-custom-content" aria-hidden="true"></main>{% endif %}
{% if kind not in ('notfound','search') %}<section class="pro-end-cta"><div class="pro-wrap"><div><span class="pro-eyebrow">LET'S CONNECT</span><h2>从这里开始下一步。</h2><p>{{site.tagline or '了解更多产品、服务与合作信息。'}}</p></div><a href="/contact/">联系我们 <span>↗</span></a></div></section>{% endif %}
<footer class="sf-site-foot pro-footer"><div class="pro-wrap"><div class="pro-footer-top"><div><span class="pro-eyebrow">INDUSTRIAL PARTNERSHIP</span><h2>{{chrome.footer.title or site.name}}</h2><p>{{footer_text}}</p></div><div class="pro-footer-links">{{footer_links(footer_nav)}}</div><div><span class="pro-eyebrow">BUSINESS ENQUIRY</span><p>{{footer_email or '请在后台配置企业联系方式'}}</p></div></div><div class="pro-footer-bottom"><span>© {{year}} {{site.name}}</span><span>ENGINEERED TO DELIVER</span></div></div></footer>
{% if chrome.mobile_tabs['enabled'] and chrome.mobile_tabs['items'] %}<nav class="sf-mobile-tabs" style="--sf-mobile-tab-count:{{ chrome.mobile_tabs['items']|length }}" aria-label="手机底部快捷导航" data-mobile-tabs>
{% for tab in chrome.mobile_tabs['items'] %}{% if tab.action == 'menu' %}<button type="button" class="sf-mobile-tab" data-mobile-open-menu aria-label="{{tab.title}}"><span class="sf-tab-icon" aria-hidden="true">{{ mobile_tab_icons[tab.icon] }}</span><span class="sf-tab-label">{{tab.title}}</span></button>{% else %}<a class="sf-mobile-tab" href="{{tab.route}}"{% if tab.route == route %} aria-current="page"{% endif %}><span class="sf-tab-icon" aria-hidden="true">{{ mobile_tab_icons[tab.icon] }}</span><span class="sf-tab-label">{{tab.title}}</span></a>{% endif %}{% endfor %}</nav>{% endif %}
<script defer src="assets/site-runtime.js"></script><script defer src="assets/pro.js"></script></body></html>
@@ -0,0 +1,12 @@
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><base href="/"><title>{{seo_title}}</title><meta name="description" content="{{seo_description}}"><meta name="robots" content="{{'noindex,follow' if mode=='notfound' else (page.robots or 'index,follow')}}">{% if canonical %}<link rel="canonical" href="{{canonical}}">{% endif %}<link rel="stylesheet" href="assets/theme.css"><link rel="stylesheet" href="assets/blocks.css"><link rel="stylesheet" href="assets/custom.css"></head><body>
<div class="top"><div class="wrap"><span>ENGINEERING · MANUFACTURING · SUPPLY</span><span>GLOBAL INDUSTRIAL SOLUTIONS</span></div></div>
<header><div class="wrap header-inner"><a class="brand" href="./"><span class="brand-icon">▰</span><span>{{site.name}}<small>INDUSTRIAL SOLUTIONS</small></span></a><nav><a href="./">Home</a>{% for n in nav if n.route!='/' %}<a href="{{link(n.route)}}">{{n.title}}</a>{% endfor %}{% if entries|selectattr('type','equalto','product')|list %}<a href="product/">Products</a>{% endif %}{% if entries|selectattr('type','equalto','post')|list %}<a href="post/">News</a>{% endif %}</nav><a class="request" href="mailto:{{site.email or "info@example.com"}}">REQUEST A QUOTE ↗</a></div></header>
{% if blueprint_mode %}{% elif mode=='home' %}<section class="hero"><div class="wrap hero-grid"><div class="hero-text"><span class="kicker"><i></i> STRONGER CONNECTIONS. SMARTER SOLUTIONS.</span><h1>{{page.title if page.title!=site.name else 'BUILT TO LAST.'}}</h1><p>{{page.summary or site.tagline or 'Industrial excellence, quality products and dependable worldwide delivery.'}}</p><a class="button" href="product/">EXPLORE PRODUCTS <b>↗</b></a><div class="hero-tags"><span>01 / MATERIALS</span><span>02 / ENGINEERING</span><span>03 / SERVICE</span></div></div><div class="hero-art">{% if page.cover %}<img src="{{asset(page.cover)}}" alt="{{page.title}}">{% else %}<div class="ring ring-1"></div><div class="ring ring-2"></div><div class="ring ring-3"></div><span>INDUSTRY<br>IN MOTION</span>{% endif %}</div></div></section>
{% elif mode=='notfound' %}<section class="subhero"><div class="wrap"><span class="kicker">ERROR</span><h1>404 — Page not found</h1></div></section>
{% else %}<section class="subhero"><div class="wrap"><span class="kicker">{{type_names.get(page.type,'COMPANY')|upper}} / {{'PRODUCT CATALOG' if mode=='listing' else 'OUR EXPERTISE'}}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>{% endif %}
{% if blueprint_mode %}<main class="sf-canvas">{{blocks}}</main>{% else %}<main class="wrap main">{% if mode=='home' %}<div class="metrics"><div><strong>01</strong><span>PRODUCT ENGINEERING</span></div><div><strong>02</strong><span>GLOBAL SOURCING</span></div><div><strong>03</strong><span>QUALITY ASSURANCE</span></div></div>{% endif %}
{% if mode in ['home','detail'] and (content or blocks) %}<article class="rich-content">{{blocks}}{{content}}</article>{% endif %}
{% if mode=='detail' and page.cover %}<figure class="detail-image"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></figure>{% endif %}
{% set cards=listing_items if mode=='listing' else entries|selectattr('type','equalto','product')|list if mode=='home' else [] %}
{% if cards %}<div class="titlebar"><div><span class="kicker">OUR PORTFOLIO</span><h2>{{'Product Catalogue' if mode=='listing' else 'Explore Our Products'}}</h2></div>{% if mode=='home' %}<a href="product/">ALL PRODUCTS ↗</a>{% endif %}</div><div class="product-grid">{% for item in cards[:12] %}<a href="{{link(item.route)}}" class="product"><div class="product-img">{% if item.cover %}<img src="{{asset(item.cover)}}" alt="{{item.title}}">{% else %}<div class="technical-graphic"><span>+</span><span>+</span><span>+</span><span>+</span></div>{% endif %}</div><div class="product-info"><span>INDUSTRIAL / {{type_names.get(item.type,'PRODUCT')|upper}}</span><h3>{{item.title}}</h3><p>{{item.summary|truncate(100)}}</p><div class="arrow">DISCOVER DETAILS <b>→</b></div></div></a>{% endfor %}</div>{% endif %}</main>
{% endif %}<footer><div class="wrap"><div class="footer-cols"><div><h2>{{site.name}}</h2><p>{{site.tagline}}</p></div><div><span>INDUSTRIAL SOLUTIONS</span><p>Quality materials. Dependable service.<br>Worldwide supply.</p></div></div><div class="bottom"><span>© {{site.name}}</span><span>DESIGNED TO DELIVER. BUILT WITH SITEFORGE.</span></div></div></footer></body></html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 740"><defs><linearGradient id="b" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#dae9f1"/><stop offset="1" stop-color="#aacbdc"/></linearGradient><linearGradient id="pipe" x1="0" y1="0" x2=".8" y2="1"><stop stop-color="#82b4d4"/><stop offset=".48" stop-color="#276a95"/><stop offset="1" stop-color="#124668"/></linearGradient></defs><rect width="1000" height="740" fill="url(#b)"/><g stroke="#3b7d9f" stroke-opacity=".12" stroke-width="2"><path d="M0 80h1000M0 160h1000M0 240h1000M0 320h1000M0 400h1000M0 480h1000M0 560h1000M0 640h1000M80 0v740M160 0v740M240 0v740M320 0v740M400 0v740M480 0v740M560 0v740M640 0v740M720 0v740M800 0v740M880 0v740M960 0v740"/></g><g transform="rotate(-19 530 360)"><rect x="122" y="140" width="780" height="170" rx="85" fill="url(#pipe)" stroke="#155479" stroke-width="6"/><ellipse cx="900" cy="225" rx="80" ry="85" fill="#11507b" stroke="#6fa3c4" stroke-width="9"/><ellipse cx="900" cy="225" rx="52" ry="54" fill="#b3d5e8" stroke="#0b426a" stroke-width="15"/><rect x="40" y="390" width="760" height="166" rx="82" fill="url(#pipe)" stroke="#155479" stroke-width="6"/><ellipse cx="799" cy="472" rx="77" ry="83" fill="#145784" stroke="#7eaecd" stroke-width="8"/><ellipse cx="799" cy="472" rx="51" ry="53" fill="#b3d5e8" stroke="#0b426a" stroke-width="15"/></g><path d="M52 82h180" stroke="#286c90" stroke-width="2"/><text x="52" y="67" fill="#25658a" font-size="16" font-family="Arial" letter-spacing="5">MATERIAL SYSTEMS</text></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+36
View File
@@ -0,0 +1,36 @@
/* Portable SiteForge blocks, loaded with every theme (all styles scoped to sf-). */
.sf-section{background:var(--sf-bg,transparent);color:var(--sf-fg,inherit);padding:var(--sf-pad,82px) 0;margin:0}.sf-section:nth-of-type(even){background:var(--sf-bg,#f4f6f9)}.sf-container{max-width:1200px;margin:auto;padding:0 32px}.sf-section h1,.sf-section h2,.sf-section h3,.sf-section p{color:inherit;line-height:1.3}.sf-section h1{font-size:clamp(38px,5vw,76px);font-weight:790;letter-spacing:-.052em}.sf-section h2{font-size:clamp(27px,3.2vw,44px);font-weight:760;letter-spacing:-.037em}.sf-kicker{display:block;font-size:12px;letter-spacing:.17em;text-transform:uppercase;font-weight:740;color:var(--accent,#3569d3);margin-bottom:18px}.sf-hero-grid,.sf-image-text{display:grid;grid-template-columns:1.08fr .92fr;gap:68px;align-items:center}.sf-hero-copy p{font-size:18px;line-height:1.75;max-width:520px;opacity:.75}.sf-hero-img,.sf-image-side{overflow:hidden;border-radius:9px;min-height:380px;background:linear-gradient(130deg,#d5e1ee,#eef3f9);display:grid;place-items:center}.sf-hero-img img,.sf-image-side img{width:100%;height:100%;max-height:580px;object-fit:cover}.sf-hero-abstract{font-size:110px;color:#a7bdd4}.sf-button{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--accent,#315ee2);color:white!important;padding:16px 26px;border-radius:6px;font-size:14px;text-decoration:none;font-weight:720;margin-top:24px}.sf-section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px;gap:24px}.sf-section-head h2{margin:0}.sf-section-head>a,.sf-link{color:var(--accent,#3569d3);font-weight:700;text-decoration:none}.sf-prose{font-size:16px;line-height:1.85;max-width:930px}.sf-prose p{line-height:1.85}.sf-features,.sf-collection,.sf-stats{display:grid;gap:20px}.sf-features{grid-template-columns:repeat(3,minmax(0,1fr))}.sf-feature{border:1px solid #e0e6eb;padding:32px 28px;border-radius:8px;background:#fff;color:#253247}.sf-feature>span{font-size:12px;font-weight:800;color:var(--accent,#346add)}.sf-feature h3{font-size:22px;margin:30px 0 8px}.sf-feature p{font-size:14px;line-height:1.7;color:#647181}.sf-stats{grid-template-columns:repeat(4,1fr);padding:40px 0;border-top:1px solid #b7c0cd66;border-bottom:1px solid #b7c0cd66}.sf-stats>div{display:flex;flex-direction:column;gap:8px}.sf-stats strong{font-size:clamp(28px,4vw,53px);letter-spacing:-.04em}.sf-stats span{font-size:12px;opacity:.65;letter-spacing:.04em}.sf-collection{grid-template-columns:repeat(var(--sf-cols,3),minmax(0,1fr))}.sf-item{display:block;text-decoration:none;color:#233044;background:#fff;border:1px solid #e8edf1;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s}.sf-item:hover{transform:translateY(-4px);box-shadow:0 18px 38px #344d7018}.sf-item-img{height:210px;overflow:hidden;background:#e4eaf0}.sf-item-img img{height:100%;width:100%;object-fit:cover}.sf-placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:190px;background:linear-gradient(130deg,#e2eaf2,#c9d7e6);font-size:72px;color:#8399b2;font-weight:800}.sf-large{min-height:360px}.sf-item-copy{padding:25px}.sf-item-copy small{text-transform:uppercase;letter-spacing:.13em;color:var(--accent,#376edc)}.sf-item-copy h3{font-size:22px;margin:12px 0 7px}.sf-item-copy p{font-size:14px;line-height:1.6;color:#7a8796;min-height:42px}.sf-item-copy span{font-size:12px;color:var(--accent,#376edc);font-weight:800}.sf-image-text>div>p{font-size:17px;line-height:1.8;max-width:520px;opacity:.7}.sf-reverse>div:first-child{order:2}.sf-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.sf-gallery img{width:100%;height:230px;object-fit:cover;border-radius:6px}.sf-faq{max-width:920px}.sf-faq details{border-bottom:1px solid #dce3eb;padding:22px 0}.sf-faq summary{font-size:17px;cursor:pointer;font-weight:700}.sf-faq p{color:#647181;line-height:1.75}.sf-cta-wrap{display:flex;justify-content:space-between;align-items:center;gap:24px}.sf-cta-wrap h2{margin:0}.sf-cta-wrap p{font-size:16px;opacity:.75}.sf-section a{cursor:pointer}.sf-muted{opacity:.65}
@media(max-width:820px){.sf-container{padding:0 20px}.sf-section{padding:50px 0}.sf-hero-grid,.sf-image-text{grid-template-columns:1fr;gap:26px}.sf-reverse>div:first-child{order:initial}.sf-hero-img,.sf-image-side{min-height:250px}.sf-features,.sf-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.sf-stats{grid-template-columns:repeat(2,1fr)}.sf-cta-wrap{align-items:flex-start;flex-direction:column}}
@media(max-width:540px){.sf-features,.sf-collection,.sf-gallery{grid-template-columns:1fr}.sf-section-head{display:block}.sf-section-head>a{display:block;margin-top:13px}.sf-item-img{height:220px}.sf-hero-grid{gap:22px}.sf-hero-copy p{font-size:16px}.sf-stats{gap:28px}}
.sf-attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;border-top:1px solid #e5eaf0}.sf-attribute{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #e5eaf0;padding:19px 10px;font-size:14px}.sf-attribute span{color:#748497}.sf-attribute strong{font-weight:720;text-align:right}@media(max-width:640px){.sf-attributes{grid-template-columns:1fr}}
/* SiteForge responsive no-code grid container */
.sf-layout-grid{display:grid;grid-template-columns:var(--sf-layout-cols,1fr 1fr);gap:var(--sf-layout-gap,24px);align-items:stretch}
.sf-layout-column{min-width:0}.sf-layout-column>.sf-section{padding:0;margin:0 0 18px}.sf-layout-column .sf-container{width:100%;padding:0}
.sf-layout-column>.sf-section:last-child{margin-bottom:0}
@media(max-width:820px){.sf-layout-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:540px){.sf-layout-grid{grid-template-columns:minmax(0,1fr)!important}}
/* V8.6: accessible, script-free commercial design blocks */
.sf-slides{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 0 18px;scrollbar-width:thin}
.sf-slide{flex:0 0 min(78%,720px);min-width:220px;margin:0;scroll-snap-align:start}
.sf-slide img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.sf-slide figcaption{padding:10px 2px;opacity:.7;font-size:14px}
.sf-video{aspect-ratio:16/9;max-width:1000px;background:#ebf0f5;border-radius:10px;overflow:hidden}
.sf-video iframe{width:100%;height:100%;border:0}
.sf-tab{padding:19px 0;border-bottom:1px solid #dde4ec;max-width:960px}
.sf-tab summary{font-size:18px;font-weight:700;cursor:pointer}.sf-tab p{max-width:850px;line-height:1.8}
.sf-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.sf-price{padding:28px;background:#fff;border:1px solid #dee5ef;border-radius:10px;color:#29394b}
.sf-price strong{display:block;font-size:27px;margin:14px 0}.sf-price li{margin:11px 0}.sf-price ul{padding-left:19px}
.sf-map-address{font-style:normal;font-size:18px;white-space:pre-line;line-height:1.8}
@media (prefers-reduced-motion:reduce){.sf-slides{scroll-behavior:auto}.sf-item{transition:none}}
@media(max-width:540px){.sf-slide{flex-basis:92%}}
/* V8.33: trade-pro editable block layout and accessible focus treatment.
Retain the core block contracts; keep theme rules scoped to this theme. */
.sf-theme-trade-pro .sf-canvas .sf-section{max-width:100%;min-width:0}
.sf-theme-trade-pro .sf-section img{max-width:100%;height:auto}
.sf-theme-trade-pro :is(a,button,input,select,textarea):focus-visible{outline:3px solid #2563eb;outline-offset:3px}
@media(max-width:640px){.sf-theme-trade-pro .sf-layout-column{min-width:0}.sf-theme-trade-pro .sf-canvas .sf-section{padding-inline:clamp(12px,4vw,24px)}}
+39 -3
View File
@@ -5,9 +5,45 @@
"version": "1.0.0",
"style": "international-b2b",
"entry": "pro.html",
"styles": ["theme.css"],
"page_templates": ["home","about","contact","listing","category","product","article","brand","case","service","faq","standard","notfound"],
"blocks": ["hero","richtext","features","stats","collection","image_text","gallery","faq","cta","attributes","spacer","layout","carousel","video","tabs","pricing","map","form_link"],
"styles": [
"theme.css",
"blocks.css"
],
"page_templates": [
"home",
"about",
"contact",
"listing",
"category",
"product",
"article",
"brand",
"case",
"service",
"faq",
"standard",
"notfound"
],
"blocks": [
"hero",
"richtext",
"features",
"stats",
"collection",
"image_text",
"gallery",
"faq",
"cta",
"attributes",
"spacer",
"layout",
"carousel",
"video",
"tabs",
"pricing",
"map",
"form_link"
],
"responsive": true,
"auto_binding": true,
"professional_layout": true,