/* ============================================================
   彩格尔园林景观 中文官网样式
   配色：主绿(#3a9d7e) + 深绿(#1f6b56) + 浅绿(#5fb89a) + 白 + 金色点缀
   布局参考 yj139 七板块，加入动效/数据可视化/滑动/搜索创新
   ============================================================ */

:root {
  /* 三种绿：主色 / 深色 / 浅色，整体调淡 */
  --green: #3a9d7e;
  --green-dark: #1f6b56;
  --green-light: #5fb89a;
  --green-soft: #e6f4ed;
  --green-mist: #f3faf6;
  --gold: #c9a227;
  --gold-light: #e8c987;
  --ink: #1c2524;
  --muted: #5f6d69;
  --line: #e3ebe7;
  --white: #ffffff;
  --shadow-sm: 0 4px 14px rgba(31, 107, 86, 0.08);
  --shadow: 0 10px 30px rgba(31, 107, 86, 0.12);
  --shadow-lg: 0 20px 50px rgba(31, 107, 86, 0.18);
  --radius: 10px;
  --radius-lg: 16px;
  --maxw: 1440px;
  font-family: "PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-size:15px; line-height:1.7; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; transition:color .2s; }
a:hover { color:var(--green); }
ul,ol,li { margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,p { margin:0; overflow-wrap:anywhere; }

.wrap { width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }

/* 顶部导航条 */
.top-bar { background:var(--green-dark); color:rgba(255,255,255,.8); font-size:13px; }
.top-bar .wrap { display:flex; align-items:center; justify-content:space-between; height:38px; }
.top-bar .tb-info { display:flex; gap:22px; }
.top-bar .tb-info span { display:inline-flex; align-items:center; gap:6px; }
.top-bar .tb-info svg { width:14px; height:14px; fill:currentColor; opacity:.85; }
.top-bar .tb-links { display:flex; gap:16px; }
.top-bar .tb-links a:hover { color:var(--gold-light); }

/* 主导航 */
.site-header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); backdrop-filter:blur(10px); box-shadow:var(--shadow-sm); }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand img { height:50px; width:auto; object-fit:contain; }
.main-nav { display:flex; align-items:center; gap:4px; }
.main-nav > li { position:static; }
.main-nav > li > a { display:inline-flex; align-items:center; gap:5px; padding:12px 14px; font-size:15px; font-weight:600; color:#2a3835; border-radius:6px; position:relative; white-space:nowrap; }
.main-nav > li > a::after { content:""; position:absolute; left:18px; right:18px; bottom:6px; height:2px; background:var(--green); transform:scaleX(0); transform-origin:center; transition:transform .25s; }
.main-nav > li > a:hover::after, .main-nav > li:hover > a::after { transform:scaleX(1); }
.main-nav .has-sub > a::before { display:none; }

.mega-menu { position:absolute; left:0; right:0; top:100%; background:var(--white); border-top:3px solid var(--green); box-shadow:var(--shadow-lg); padding:30px 0; opacity:0; visibility:hidden; transform:translateY(10px); transition:all .25s; }
.main-nav .has-sub:hover .mega-menu { opacity:1; visibility:visible; transform:translateY(0); }
.mega-grid { max-width:var(--maxw); margin:0 auto; padding:0 24px; display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:20px; }
.mega-col h4 { font-size:15px; color:var(--green-dark); padding-bottom:10px; margin-bottom:8px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:8px; }
.mega-col h4::before { content:""; width:4px; height:16px; background:var(--green); border-radius:2px; }
.mega-col a { display:block; padding:6px 0; font-size:13.5px; color:var(--muted); }
.mega-col a:hover { color:var(--green); transform:translateX(4px); }

.nav-search { display:flex; align-items:center; gap:10px; }
.nav-search .search-input { display:flex; align-items:center; background:var(--green-mist); border:1px solid var(--line); border-radius:999px; padding:4px 4px 4px 16px; transition:all .25s; width:200px; }
.nav-search .search-input:focus-within { border-color:var(--green); background:var(--white); box-shadow:0 0 0 3px rgba(31,107,86,.1); width:240px; }
.nav-search input { border:0; background:transparent; outline:none; font:inherit; font-size:13px; width:100%; color:var(--ink); }
.nav-search button { display:grid; place-items:center; width:30px; height:30px; border:0; border-radius:50%; background:var(--green); color:var(--white); cursor:pointer; flex-shrink:0; }
.nav-search button svg { width:14px; height:14px; fill:currentColor; }
.nav-toggle { display:none; width:42px; height:42px; border:1px solid var(--line); background:var(--white); border-radius:8px; cursor:pointer; }
.nav-toggle span { display:block; width:20px; height:2px; margin:4px auto; background:var(--ink); transition:.3s; }

/* 通用标题 */
.sec-title { text-align:center; margin-bottom:48px; }
/* 优势板块头部：左标题 + 右数据徽章 */
.adv-head { display:flex; align-items:center; justify-content:space-between; gap:40px; margin-bottom:48px; }
.adv-head .sec-title { text-align:left; margin-bottom:0; flex:1; min-width:0; }
.adv-head .sec-title p { margin-left:0; margin-right:0; }
.adv-head .data-badges { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
.adv-head .data-badge { display:inline-flex; align-items:center; gap:4px; padding:10px 18px; background:linear-gradient(135deg,var(--green) 0%,var(--green-dark) 100%); color:var(--white); border-radius:999px; font-size:14px; font-weight:600; box-shadow:0 6px 16px rgba(31,107,86,.22); transition:all .3s; }
.adv-head .data-badge strong { font-size:20px; font-weight:800; color:var(--gold-light); letter-spacing:.5px; }
.adv-head .data-badge:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(31,107,86,.35); }
@media (max-width:880px) {
  .adv-head { flex-direction:column; align-items:flex-start; }
}
.sec-title .eyebrow { display:inline-block; font-size:13px; font-weight:700; letter-spacing:2px; color:var(--green); margin-bottom:12px; position:relative; padding:0 28px; }
.sec-title .eyebrow::before, .sec-title .eyebrow::after { content:""; position:absolute; top:50%; width:20px; height:1px; background:var(--green); }
.sec-title .eyebrow::before { left:0; }
.sec-title .eyebrow::after { right:0; }
.sec-title h2 { font-size:clamp(26px,3.2vw,38px); font-weight:800; color:var(--ink); line-height:1.2; }
.sec-title p { margin-top:14px; font-size:16px; color:var(--muted); max-width:680px; margin-left:auto; margin-right:auto; }

.section { padding:80px 0; }
.section-alt { background:var(--green-mist); }

/* ============================================================
   about.html 4 个 section 差异化背景（纯 CSS，无图片）
   - sec-story    公司简介：浅绿底 + 右上光斑
   - sec-metrics  核心数据：白色 + 中央辐射光晕
   - sec-timeline 发展历程：浅色 + 细斜条纹 + 金线
   - sec-values   服务理念：浅绿底 + 顶部金色光带 + 网格点
   ============================================================ */
/* ============================================================
   板块背景 — 全部统一为纯色（白 / 浅绿交替），无图无网格无光斑
   ============================================================ */
.sec-story, .sec-metrics, .sec-timeline, .sec-values { position:relative; overflow:hidden; }
.sec-story { background:var(--white); }
.sec-metrics { background:var(--white); }
.sec-timeline { background:var(--green-mist); }
.sec-values { background:var(--green-mist); }

/* ============================================================
   index.html 6 个 section 差异化背景（纯色：白 / 浅绿交替）
   - #advantages 六大核心优势
   - #about      关于我们
   - #products   主推产品
   - #applications 应用方案
   - #process    合作流程
   - #news       行业资讯
   ============================================================ */
#advantages, #about, #products, #applications, #process, #news { position:relative; overflow:hidden; }

#advantages { background:var(--green-mist); }
#about { background:var(--white); }
#products { background:var(--green-mist); }
#applications { background:var(--white); }
#process { background:var(--green-mist); }
#news { background:var(--white); }

/* Banner */
.hero-banner { background:var(--green-dark); }
.hero-banner .swiper { width:100%; }
.hero-banner .swiper-slide { position:relative; aspect-ratio:1920/640; min-height:380px; max-height:640px; overflow:hidden; }
.hero-banner .swiper-slide img { width:100%; height:100%; object-fit:cover; }
.hero-banner .slide-text { position:absolute; left:0; top:0; bottom:0; display:flex; flex-direction:column; justify-content:center; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px 0 calc(2% + 100px); }
.hero-banner .slide-text .wrap { display:inline-block; max-width:600px; padding:20px 44px 20px; border-radius:var(--radius-lg); background:rgba(255,255,255,.45); backdrop-filter:blur(6px) saturate(130%); -webkit-backdrop-filter:blur(6px) saturate(130%); box-shadow:0 14px 36px rgba(31,107,86,.16); border-left:4px solid var(--green); }
.hero-banner .slide-text .st-eyebrow { font-size:14px; font-weight:600; letter-spacing:1px; color:var(--green); margin-bottom:18px; opacity:0; transform:translateX(-20px); }
.hero-banner .swiper-slide-active .st-eyebrow { animation:slideInLeft .6s .2s both; }
.hero-banner .slide-text h2 { font-size:clamp(28px,3.6vw,44px); font-weight:800; line-height:1.2; max-width:640px; margin-bottom:20px; color:var(--green-dark); opacity:0; transform:translateX(-20px); }
.hero-banner .swiper-slide-active h2 { animation:slideInLeft .6s .35s both; }
.hero-banner .slide-text p { font-size:clamp(15px,1.6vw,19px); max-width:560px; color:var(--ink); margin-bottom:28px; line-height:1.75; opacity:0; transform:translateX(-20px); }
.hero-banner .swiper-slide-active p { animation:slideInLeft .6s .5s both; }
.hero-banner .slide-text .btn-row { display:flex; gap:14px; opacity:0; transform:translateX(-20px); }
.hero-banner .btn-outline { border:1.5px solid var(--green); color:var(--green-dark); background:transparent; }
.hero-banner .btn-outline:hover { background:var(--green-soft); border-color:var(--green); color:var(--green-dark); }
.hero-banner .swiper-slide-active .btn-row { animation:slideInLeft .6s .65s both; }
@keyframes slideInLeft { to { opacity:1; transform:translateX(0); } }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:9px 20px; border-radius:999px; font-size:11px; font-weight:700; cursor:pointer; border:0; transition:all .28s cubic-bezier(.22,1,.36,1); }
.btn-primary { background:var(--green); color:var(--white); }
.btn-primary:hover { background:var(--green-dark); color:var(--white); transform:translateY(-3px); box-shadow:0 12px 28px rgba(31,107,86,.35); }
.btn-outline { border:1.5px solid rgba(255,255,255,.6); color:var(--white); background:transparent; }
.btn-outline:hover { background:rgba(255,255,255,.15); border-color:var(--white); color:var(--white); transform:translateY(-3px); }
.btn-gold { background:var(--gold); color:var(--white); }
.btn-gold:hover { background:#ab8c1f; color:var(--white); transform:translateY(-3px); }
.btn-ghost { background:var(--green-soft); color:var(--green-dark); }
.btn-ghost:hover { background:var(--green); color:var(--white); }

.hero-banner .swiper-pagination { bottom:24px; }
.hero-banner .swiper-pagination-bullet { width:36px; height:4px; border-radius:2px; background:rgba(255,255,255,.5); opacity:1; transition:all .3s; }
.hero-banner .swiper-pagination-bullet-active { background:var(--gold); width:48px; }
.hero-banner .swiper-button-prev, .hero-banner .swiper-button-next { width:48px; height:48px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); border-radius:50%; color:var(--white); backdrop-filter:blur(6px); transition:all .25s; }
.hero-banner .swiper-button-prev:hover, .hero-banner .swiper-button-next:hover { background:var(--green); border-color:var(--green); }
.hero-banner .swiper-button-prev::after, .hero-banner .swiper-button-next::after { font-size:18px; font-weight:700; }

/* 板块1: 核心优势 */
#advantages { position:relative; overflow:hidden; }
/* 装饰已全部移除（无图无网格） */
.advantages { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.adv-card { position:relative; display:flex; flex-direction:column; padding:28px 28px 26px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; transition:all .35s cubic-bezier(.22,1,.36,1); }
.adv-card::before { content:""; position:absolute; top:0; left:0; width:100%; height:4px; background:linear-gradient(90deg,var(--green),var(--gold)); }
.adv-card::after { content:""; position:absolute; right:-12px; bottom:-38px; font-size:140px; font-weight:900; line-height:1; color:var(--green); opacity:.06; pointer-events:none; font-family:Georgia,"Times New Roman",serif; }
/* 右下角大字序号（衬线大字"01-06"） */
.adv-card:nth-child(1)::after { content:"01"; }
.adv-card:nth-child(2)::after { content:"02"; }
.adv-card:nth-child(3)::after { content:"03"; }
.adv-card:nth-child(4)::after { content:"04"; }
.adv-card:nth-child(5)::after { content:"05"; }
.adv-card:nth-child(6)::after { content:"06"; }
.adv-card:hover { transform:translateY(-8px); box-shadow:0 18px 40px rgba(31,107,86,.18); border-color:var(--green-light); }
/* 图标 + 右上角标签同行布局 */
.adv-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.adv-num-title { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.adv-icon { width:56px; height:56px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,var(--green) 0%,var(--green-dark) 100%); box-shadow:0 8px 18px rgba(31,107,86,.28); transition:all .35s; flex-shrink:0; }
.adv-card:hover .adv-icon { transform:rotate(-8deg) scale(1.08); box-shadow:0 12px 24px rgba(31,107,86,.42); }
.adv-icon svg { width:28px; height:28px; fill:none; stroke:var(--white); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.adv-num { display:inline-block; font-size:12px; font-weight:800; color:var(--green); letter-spacing:2px; padding:3px 10px; background:var(--green-soft); border-radius:999px; }
.adv-card h3 { font-size:22px; font-weight:800; color:var(--green-dark); line-height:1.3; }
.adv-card p { font-size:14px; color:var(--ink); line-height:1.65; opacity:.78; flex:1; }

/* 板块2: 关于我们 + 数据 */
.about-home { display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:center; }
.about-home-media { position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.about-home-media img { width:100%; height:440px; object-fit:cover; transition:transform .6s; }
.about-home-media:hover img { transform:scale(1.05); }
.about-home-media .media-badge { position:absolute; left:24px; bottom:24px; background:rgba(31,107,86,.92); color:var(--white); padding:16px 22px; border-radius:var(--radius); backdrop-filter:blur(8px); }
.about-home-media .media-badge strong { display:block; font-size:28px; font-weight:800; color:var(--gold-light); }
.about-home-media .media-badge span { font-size:13px; }
.about-home-text .eyebrow { font-size:14px; font-weight:700; color:var(--green); margin-bottom:14px; }
.about-home-text h2 { font-size:clamp(26px,3vw,36px); font-weight:800; line-height:1.25; margin-bottom:20px; }
.about-home-text h2 em { font-style:normal; color:var(--green); }
.about-home-text > p { color:var(--muted); font-size:15px; line-height:1.85; margin-bottom:16px; }
.about-home-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:28px 0; }
.about-home-stats .stat { padding:20px; background:var(--green-mist); border-radius:var(--radius); border-left:3px solid var(--green); transition:all .3s; }
.about-home-stats .stat:hover { background:var(--white); box-shadow:var(--shadow-sm); transform:translateX(4px); }
.about-home-stats .stat strong { display:block; font-size:30px; font-weight:800; color:var(--green-dark); line-height:1; }
.about-home-stats .stat strong .count-up { color:var(--green-dark); }
.about-home-stats .stat span { display:block; margin-top:8px; font-size:13px; color:var(--muted); }

/* 板块3: 热门产品 */
.products-home { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.prod-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:all .35s; display:flex; flex-direction:column; }
.prod-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.prod-card .prod-img { position:relative; aspect-ratio:4/3; overflow:hidden; }
.prod-card .prod-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.prod-card:hover .prod-img img { transform:scale(1.08); }
.prod-card .prod-img::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(31,107,86,.4),transparent 50%); opacity:0; transition:opacity .35s; }
.prod-card:hover .prod-img::after { opacity:1; }
.prod-card .prod-tag { position:absolute; top:12px; left:12px; padding:4px 12px; background:rgba(255,255,255,.92); color:var(--green); font-size:12px; font-weight:700; border-radius:999px; }
.prod-card .prod-body { padding:20px; flex:1; display:flex; flex-direction:column; }
.prod-card h3 { font-size:17px; font-weight:700; margin-bottom:10px; transition:color .3s; }
.prod-card:hover h3 { color:var(--green); }
.prod-card p { font-size:13px; color:var(--muted); line-height:1.6; flex:1; }
.prod-card .prod-link { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:13px; font-weight:700; color:var(--green); }
.prod-card .prod-link svg { width:14px; height:14px; fill:currentColor; transition:transform .3s; }
.prod-card:hover .prod-link svg { transform:translateX(4px); }
.sec-more { text-align:center; margin-top:44px; }

/* 板块4: 应用方案 滑动 */
.solutions-swiper { padding:0 0 10px; }
.sol-slide, .sol-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--line); transition:all .35s; }
.sol-slide:hover, .sol-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-6px); }
.sol-slide .sol-img, .sol-card .sol-img { position:relative; aspect-ratio:16/10; overflow:hidden; }
.sol-slide .sol-img img, .sol-card .sol-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.sol-slide:hover .sol-img img, .sol-card:hover .sol-img img { transform:scale(1.06); }
.sol-slide .sol-img .sol-num, .sol-card .sol-img .sol-num { position:absolute; top:16px; left:16px; width:40px; height:40px; display:grid; place-items:center; background:var(--green); color:var(--white); border-radius:50%; font-weight:800; font-size:15px; }
.sol-slide .sol-body, .sol-card .sol-body { padding:22px; }
.sol-slide h3, .sol-card h3 { font-size:18px; font-weight:700; margin-bottom:10px; }
.sol-slide p, .sol-card p { font-size:13.5px; color:var(--muted); line-height:1.7; }
.sol-slide .sol-tags, .sol-card .sol-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.sol-slide .sol-tags span, .sol-card .sol-tags span { padding:3px 10px; background:var(--green-soft); color:var(--green-dark); border-radius:999px; font-size:12px; }
.solutions-swiper .swiper-button-next, .solutions-swiper .swiper-button-prev { width:44px; height:44px; background:var(--white); border:1px solid var(--line); border-radius:50%; color:var(--green); box-shadow:var(--shadow-sm); transition:all .25s; }
.solutions-swiper .swiper-button-next:hover, .solutions-swiper .swiper-button-prev:hover { background:var(--green); color:var(--white); border-color:var(--green); }
.solutions-swiper .swiper-button-next::after, .solutions-swiper .swiper-button-prev::after { font-size:16px; font-weight:700; }

/* applications.html 独立页：8 场景卡 4×2 网格 */
.solutions-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:1024px) { .solutions-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .solutions-grid { grid-template-columns:1fr; } }

/* 宽屏 ≥1280px：products / news 侧栏 +20%（208 → 252） */
@media (min-width:1280px) {
  .products-page-layout { grid-template-columns:252px 1fr; }
  .news-page-layout { grid-template-columns:252px 1fr; }
}

/* 板块5: 最新资讯 */
.news-home { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.news-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:all .35s; display:flex; flex-direction:column; }
.news-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent; }
.news-card .news-img { aspect-ratio:16/9; overflow:hidden; position:relative; }
.news-card .news-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.news-img .news-default-thumb { object-fit:contain !important; width:50% !important; height:50% !important; margin:auto; }
.news-card:hover .news-img img { transform:scale(1.06); }
.news-card .news-date { position:absolute; bottom:12px; left:12px; background:var(--green); color:var(--white); padding:6px 12px; border-radius:6px; font-size:12px; font-weight:600; text-align:center; line-height:1.3; }
.news-card .news-date strong { display:block; font-size:18px; }
.news-card .news-body { padding:22px; flex:1; display:flex; flex-direction:column; }
.news-card .news-cat { font-size:12px; font-weight:700; color:var(--gold); margin-bottom:10px; }
.news-card h3 { font-size:16px; font-weight:700; line-height:1.5; margin-bottom:12px; transition:color .3s; }
.news-card:hover h3 { color:var(--green); }
.news-card p { font-size:13px; color:var(--muted); line-height:1.7; flex:1; }
.news-card .news-more { margin-top:14px; font-size:13px; font-weight:700; color:var(--green); display:inline-flex; align-items:center; gap:6px; }

/* news-detail.html 顶部摘要区"分类 + 日期"水平条 */
.news-meta { display:flex; align-items:center; gap:14px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.news-meta .news-cat { color:var(--gold); font-size:13px; font-weight:700; padding:4px 12px; background:var(--green-mist); border-radius:999px; margin-bottom:0; }
.news-meta .news-date-inline { font-size:13px; color:var(--muted); font-weight:600; }

/* 板块6: 底部标语 */
.cta-band { position:relative; padding:70px 0; text-align:center; color:var(--white); background:linear-gradient(120deg,rgba(31,107,86,.88),rgba(58,157,126,.78)),url("../images/factory-building.webp") center/cover no-repeat; overflow:hidden; }
.cta-band .wrap { position:relative; }
.cta-band .eyebrow { font-size:14px; font-weight:700; color:var(--gold-light); margin-bottom:16px; }
.cta-band h2 { font-size:clamp(28px,3.6vw,44px); font-weight:800; line-height:1.25; margin-bottom:18px; }
.cta-band p { font-size:17px; color:rgba(255,255,255,.82); max-width:680px; margin:0 auto 30px; }
.cta-band .btn-row { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* 悬浮工具栏 */
.float-tools { position:fixed; right:18px; top:50%; transform:translateY(-50%); z-index:40; display:flex; flex-direction:column; gap:8px; padding:10px 8px; background:var(--green); border-radius:32px; box-shadow:0 8px 24px rgba(13,111,84,.28); }
.float-tools a { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; color:var(--white); background:rgba(255,255,255,.18); box-shadow:none; transition:all .25s; position:relative; }
.float-tools a:hover { transform:translateX(-5px) scale(1.08); background:var(--white); color:var(--green); }
.float-tools svg { width:22px; height:22px; fill:currentColor; }
.float-tools .ft-wechat { background:rgba(255,255,255,.18); }
.float-tools .ft-phone { background:rgba(255,255,255,.18); }
.float-tools .ft-email { background:rgba(255,255,255,.18); }
/* 回到顶部：默认隐藏，scroll 越多越显（透明度由 JS 实时控制） */
.float-tools .ft-top { background:rgba(255,255,255,.18); opacity:0; pointer-events:none; transform:translateY(20px) scale(.8); transition:opacity .25s, transform .25s, background .25s, color .25s; }
.float-tools .ft-top.is-visible { pointer-events:auto; }
.float-tools a .ft-tip { position:absolute; right:60px; top:50%; transform:translateY(-50%) translateX(8px); background:var(--white); color:var(--ink); padding:6px 14px; border-radius:6px; font-size:13px; font-weight:600; white-space:nowrap; box-shadow:var(--shadow-sm); opacity:0; visibility:hidden; transition:all .25s; }
.float-tools a:hover .ft-tip { opacity:1; visibility:visible; transform:translateY(-50%) translateX(0); }
.float-tools a .ft-qr { display:flex; flex-direction:column; align-items:center; gap:6px; padding:10px; border-radius:8px; width:116px; }
.float-tools a .ft-qr img { width:96px; height:96px; max-width:none; border-radius:4px; display:block; }
.float-tools a .ft-qr span { font-size:12px; font-weight:600; color:var(--ink); white-space:nowrap; }

/* 页脚 */
.site-footer { background:#0f1714; color:rgba(255,255,255,.7); padding:60px 0 0; }
.footer-main { display:grid; grid-template-columns:1.8fr 1fr 1fr 1.4fr; gap:36px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-brand img { height:52px; background:rgba(255,255,255,.95); padding:6px 10px; border-radius:6px; object-fit:contain; }
.footer-brand p { margin-top:20px; font-size:14px; line-height:1.8; color:rgba(255,255,255,.6); max-width:380px; }
.footer-col h3 { color:var(--white); font-size:16px; font-weight:700; margin-bottom:20px; position:relative; padding-bottom:12px; }
.footer-col h3::after { content:""; position:absolute; left:0; bottom:0; width:28px; height:2px; background:var(--green); }
.footer-col a, .footer-col span { display:block; padding:7px 0; font-size:14px; color:rgba(255,255,255,.6); }
.footer-col a:hover { color:var(--gold-light); transform:translateX(4px); }
.footer-col .footer-col-sep { height:1px; background:rgba(255,255,255,.1); margin:14px 0 6px; }
/* 页脚联系我们列 */
.footer-contact > span { display:flex; gap:8px; align-items:flex-start; padding:5px 0; font-size:13px; color:rgba(255,255,255,.65); line-height:1.5; }
.footer-contact > span svg { width:15px; height:15px; fill:var(--green-light); flex-shrink:0; margin-top:3px; }
.footer-qr { display:flex; gap:12px; margin-top:18px; }
.footer-qr-item { text-align:center; }
.footer-qr-item img { display:block; width:80px; height:80px; padding:5px; background:var(--white); border-radius:6px; object-fit:contain; }
.footer-qr-item span { display:block; margin-top:6px; font-size:12px; color:rgba(255,255,255,.6); line-height:1.3; }
/* 页脚产品中心：仅一级分类 */
.footer-products .footer-cats .fc-item h4 { margin:0 0 8px; font-size:14px; font-weight:700; color:var(--white); display:flex; align-items:center; gap:8px; }
.footer-products .footer-cats .fc-item h4::before { content:""; width:3px; height:14px; background:var(--green); border-radius:2px; flex-shrink:0; }
.footer-products .footer-cats .fc-item h4 a { display:inline; padding:0; font-size:14px; font-weight:700; color:var(--white); }
.footer-products .footer-cats .fc-item h4 a:hover { color:var(--gold-light); transform:none; }
.footer-products .footer-cats .fc-item a { display:block; padding:4px 0; font-size:13px; color:rgba(255,255,255,.55); }
.footer-products .footer-cats .fc-item a:hover { color:var(--gold-light); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:13px; color:rgba(255,255,255,.4); }
.footer-bottom a:hover { color:var(--gold-light); }

/* 内页通用 */
.page-hero { position:relative; padding:90px 0 70px; color:var(--white); background:linear-gradient(120deg,rgba(31,107,86,.88) 0%,rgba(58,157,126,.72) 60%,rgba(58,157,126,.45) 100%),var(--ph-bg, url("../images/factory-building.webp")) center/cover no-repeat; }
.page-hero .wrap { position:relative; }
.page-hero .breadcrumb { font-size:13px; color:rgba(255,255,255,.7); margin-bottom:18px; }
.page-hero .breadcrumb a:hover { color:var(--gold-light); }
.page-hero .breadcrumb span { margin:0 8px; opacity:.5; }
.page-hero h1 { font-size:clamp(30px,4vw,46px); font-weight:800; line-height:1.2; margin-bottom:16px; }
.page-hero p { font-size:17px; color:rgba(255,255,255,.82); max-width:680px; }

/* 产品中心页 */
.products-page-layout { display:grid; grid-template-columns:208px 1fr; gap:30px; padding:56px 0 80px; }
.prod-sidebar { position:sticky; top:130px; align-self:start; }
.sidebar-block { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); margin-bottom:22px; }
.sidebar-block .sb-head { position:relative; padding:14px 20px 14px 60px; background:var(--green); color:var(--white); font-size:16px; font-weight:700; line-height:1.3; min-height:48px; display:flex; align-items:center; }
.sidebar-block .sb-head::before { content:""; position:absolute; left:14px; top:50%; width:36px; height:36px; transform:translateY(-50%); background:url("../images/logo1.png") center/contain no-repeat; filter:brightness(0) invert(1); pointer-events:none; }
.cat-accordion .cat-item { border-bottom:1px solid var(--line); }
.cat-accordion .cat-item:last-child { border-bottom:0; }
.cat-accordion .cat-title { display:flex; align-items:stretch; padding:0; font-size:14px; font-weight:600; color:var(--ink); }
.cat-accordion .cat-title .cat-link { flex:1; min-width:0; display:flex; align-items:center; padding:14px 12px 14px 10px; color:var(--ink); transition:all .25s; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cat-accordion .cat-title .cat-link::before {
  content:"";
  flex-shrink:0;
  width:18px;
  height:18px;
  margin-right:10px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c2524' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10h18l-2 10H5z'/><path d='M8 10V7a4 4 0 0 1 8 0v3'/><path d='M12 4v2'/></svg>") center/contain no-repeat;
  transition:background .25s;
}
.cat-accordion .cat-title .cat-link:hover { background:var(--green-mist); color:var(--green); }
.cat-accordion .cat-title .cat-link:hover::before { background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a9d7e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10h18l-2 10H5z'/><path d='M8 10V7a4 4 0 0 1 8 0v3'/><path d='M12 4v2'/></svg>") center/contain no-repeat; }
.cat-accordion .cat-toggle { width:44px; flex-shrink:0; background:transparent; border:0; border-left:1px solid var(--line); cursor:pointer; color:var(--green); font-size:20px; line-height:1; position:relative; transition:background .25s; }
.cat-accordion .cat-toggle:hover { background:var(--green-mist); }
.cat-accordion .cat-toggle::before, .cat-accordion .cat-toggle::after { content:""; position:absolute; top:50%; left:50%; background:currentColor; transition:transform .25s; }
.cat-accordion .cat-toggle::before { width:12px; height:2px; transform:translate(-50%,-50%); }
.cat-accordion .cat-toggle::after  { width:2px; height:12px; transform:translate(-50%,-50%); }
.cat-accordion .cat-item.open .cat-toggle::after { transform:translate(-50%,-50%) rotate(90deg); opacity:0; }
.cat-accordion .cat-item.open .cat-link { background:var(--green-mist); color:var(--green); }
.cat-accordion .cat-sub { max-height:0; overflow:hidden; transition:max-height .3s; padding-left:20px; }
.cat-accordion .cat-item.open .cat-sub { max-height:400px; }
/* 二级菜单：点用 flex 容器内的 inline-block，与文字垂直居中对齐 */
.cat-accordion .cat-sub a { display:flex; align-items:center; gap:10px; padding:9px 20px 9px 16px; font-size:13px; color:var(--muted); }
.cat-accordion .cat-sub a::before { content:""; flex-shrink:0; width:5px; height:5px; border-radius:50%; background:var(--gold); }
.cat-accordion .cat-sub a:hover { color:var(--green); }
/* 选中高亮（AJAX 筛选当前分类） */
.cat-accordion .cat-title .cat-link.active { background:var(--green); color:var(--white); }
.cat-accordion .cat-title .cat-link.active::before { background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10h18l-2 10H5z'/><path d='M8 10V7a4 4 0 0 1 8 0v3'/><path d='M12 4v2'/></svg>") center/contain no-repeat; }
.cat-accordion .cat-sub a.active { color:var(--green); font-weight:700; }
.cat-accordion .cat-sub a.active::before { background:var(--green); width:7px; height:7px; }
/* 加载状态 */
.prod-list.is-loading { opacity:.45; pointer-events:none; transition:opacity .2s; }
.sidebar-contact { padding:22px; background:linear-gradient(150deg,var(--green-dark),var(--green)); color:var(--white); border-radius:var(--radius); }
.sidebar-contact h3 { font-size:18px; margin-bottom:10px; }
.sidebar-contact p { font-size:13px; color:rgba(255,255,255,.8); margin-bottom:14px; }
.sidebar-contact .sc-item { display:flex; gap:10px; align-items:center; padding:8px 0; font-size:13px; color:rgba(255,255,255,.9); }
.sidebar-contact .sc-item svg { width:18px; height:18px; fill:var(--gold-light); flex-shrink:0; }
.prod-list { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.prod-listing { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:all .35s; }
.prod-listing:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:transparent; }
.prod-listing .pl-img { overflow:hidden; aspect-ratio:4/3; }
.prod-listing .pl-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.prod-listing:hover .pl-img img { transform:scale(1.06); }
.prod-listing .pl-body { padding:24px; display:flex; flex-direction:column; flex:1; }
.prod-listing .pl-tag { display:inline-block; padding:4px 12px; background:var(--green-soft); color:var(--green); font-size:12px; font-weight:700; border-radius:999px; margin-bottom:12px; align-self:flex-start; }
.prod-listing h2 { font-size:18px; font-weight:700; margin-bottom:10px; transition:color .3s; }
.prod-listing:hover h2 { color:var(--green); }
.prod-listing > .pl-body > p { color:var(--muted); font-size:13.5px; line-height:1.7; margin-bottom:16px; flex:1; }

/* 产品详情页 */
.detail-top { display:grid; grid-template-columns:1fr 1fr; gap:44px; padding:50px 0; }
.detail-gallery { position:sticky; top:130px; align-self:start; }
.detail-main-img { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); margin-bottom:16px; aspect-ratio:1; }
.detail-main-img img { width:100%; height:100%; object-fit:cover; }
.detail-main-img .news-default-thumb { object-fit:contain !important; width:50% !important; height:50% !important; margin:auto; }
.detail-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.detail-thumb { border-radius:var(--radius); overflow:hidden; border:2px solid transparent; cursor:pointer; aspect-ratio:1; transition:border-color .25s; }
.detail-thumb.active { border-color:var(--green); }
.detail-thumb img { width:100%; height:100%; object-fit:cover; }
.detail-summary .detail-cat { font-size:13px; font-weight:700; color:var(--gold); margin-bottom:12px; }
.detail-summary h1 { font-size:clamp(26px,3.2vw,38px); font-weight:800; line-height:1.25; margin-bottom:18px; }
.detail-summary .detail-lead { font-size:16px; color:var(--muted); line-height:1.8; margin-bottom:26px; padding-bottom:26px; border-bottom:1px solid var(--line); }
.detail-specs { margin-bottom:28px; }
.detail-specs .ds-row { display:grid; grid-template-columns:110px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.detail-specs .ds-row:last-child { border-bottom:0; }
.detail-specs dt { font-size:13px; font-weight:700; color:var(--green); }
.detail-specs dd { margin:0; font-size:14px; color:var(--ink); }
.detail-actions { display:flex; gap:14px; flex-wrap:wrap; }
.detail-content { padding:44px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); margin-bottom:40px; }
.detail-content h2 { font-size:26px; font-weight:700; margin:36px 0 18px; padding-left:16px; border-left:4px solid var(--green); }
.detail-content h2:first-child { margin-top:0; }
.detail-content h3 { font-size:20px; font-weight:700; margin:28px 0 14px; }
.detail-content p { color:var(--muted); font-size:15px; line-height:1.9; margin-bottom:16px; }
.detail-content ul { margin-bottom:22px; }
.detail-content li { position:relative; padding-left:24px; margin-bottom:10px; color:var(--muted); font-size:15px; }
.detail-content li::before { content:""; position:absolute; left:0; top:9px; width:14px; height:8px; border-left:2px solid var(--green); border-bottom:2px solid var(--green); transform:rotate(-45deg); }
.detail-content figure { margin:28px 0; }
.detail-content figure img { width:100%; border-radius:var(--radius); }
.detail-content figcaption { text-align:center; margin-top:10px; font-size:13px; color:var(--muted); }
.detail-content table { width:100%; border-collapse:collapse; margin:24px 0; border-radius:var(--radius); overflow:hidden; box-shadow:0 0 0 1px var(--line); }
.detail-content th, .detail-content td { padding:14px 18px; text-align:left; border-bottom:1px solid var(--line); font-size:14px; }
.detail-content th { background:var(--green-soft); color:var(--ink); font-weight:700; }
.detail-content tr:last-child td { border-bottom:0; }

/* 关于我们页 */
.about-story { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; padding:56px 0; }
.about-story-media { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.about-story-media img { width:100%; height:280px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
.about-story-media img:first-child { grid-row:span 2; height:100%; }
.about-story-media img:nth-child(4) { grid-column:span 2; height:260px; }
.about-story-text .eyebrow { color:var(--green); font-weight:700; margin-bottom:14px; }
.about-story-text h2 { font-size:clamp(28px,3.4vw,40px); font-weight:800; line-height:1.2; margin-bottom:22px; }
.about-story-text h2 em { font-style:normal; color:var(--green); }
.about-story-text p { color:var(--muted); font-size:15px; line-height:1.9; margin-bottom:16px; }
.about-metrics-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.metric-box { padding:36px 24px; text-align:center; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); transition:all .35s; position:relative; overflow:hidden; }
.metric-box::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--green),var(--gold)); transform:scaleX(0); transition:transform .4s; }
.metric-box:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.metric-box:hover::before { transform:scaleX(1); }
.metric-box .m-icon { width:56px; height:56px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; background:var(--green-soft); transition:all .35s; }
.metric-box:hover .m-icon { background:var(--green); transform:rotate(360deg); }
.metric-box .m-icon svg { width:28px; height:28px; fill:none; stroke:var(--green); stroke-width:2; transition:stroke .35s; }
.metric-box:hover .m-icon svg { stroke:var(--white); }
.metric-box strong { display:block; font-size:36px; font-weight:800; color:var(--green-dark); line-height:1; margin-bottom:10px; }
.metric-box span { font-size:14px; color:var(--muted); }
/* Timeline —— grid 三列布局：[内容 | 节点 | 占位]
   节点列固定 60px 居中，圆心 = timeline 主线 = 100% 完美居中 */
.timeline { position:relative; max-width:900px; margin:0 auto; padding:20px 0; }
/* 主线：固定在中间列上 —— middle 60px 居中 */
.timeline::before { content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--line); transform:translateX(-50%); }

.tl-item { display:grid; grid-template-columns:1fr 60px 1fr; align-items:start; padding:0 0 50px 0; }
.tl-item:last-child { padding-bottom:0; }
.tl-content { padding:0 40px 0 0; text-align:right; }
.tl-item:nth-child(even) .tl-content { grid-column:3; padding:0 0 0 40px; text-align:left; order:2; }
.tl-item:nth-child(even) .tl-spacer { display:none; }
.tl-item:nth-child(even) .tl-content { grid-column:3; }
.tl-item:nth-child(odd) .tl-spacer { display:none; }
/* 节点：固定在中间列，圆心 = 30px(列中心) */
.tl-node { grid-column:2; width:14px; height:14px; margin:8px auto 0; border-radius:50%; background:var(--green); border:3px solid var(--white); box-shadow:0 0 0 2px var(--green); position:relative; }
.tl-spacer { grid-column:3; }
/* 奇数项：内容在左，节点在中，右列空 */
.tl-item:nth-child(odd) .tl-content { grid-column:1; }
/* 主线延展动效：12s 缓慢绘制，配合 6 个 2s 间隔内容依次入场 */
.timeline.is-drawn::before { animation:tl-draw 12s cubic-bezier(.45,.05,.55,.95) forwards; transform-origin:top; }
@keyframes tl-draw { from { transform:translateX(-50%) scaleY(0); } to { transform:translateX(-50%) scaleY(1); } }
/* 节点 + 内容：一起入场（2s 间隔，0s 起步） */
.tl-node { opacity:0; transform:scale(0.4); transition:opacity .5s ease, transform .5s cubic-bezier(.34,1.56,.64,1); }
.tl-content { opacity:0; transform:translateY(-30px); transition:opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1); }
.timeline.is-drawn .tl-node,
.timeline.is-drawn .tl-content { opacity:1; transform:none; }
.timeline.is-drawn .tl-item:nth-child(1) .tl-node,
.timeline.is-drawn .tl-item:nth-child(1) .tl-content { transition-delay:0s; }
.timeline.is-drawn .tl-item:nth-child(2) .tl-node,
.timeline.is-drawn .tl-item:nth-child(2) .tl-content { transition-delay:2s; }
.timeline.is-drawn .tl-item:nth-child(3) .tl-node,
.timeline.is-drawn .tl-item:nth-child(3) .tl-content { transition-delay:4s; }
.timeline.is-drawn .tl-item:nth-child(4) .tl-node,
.timeline.is-drawn .tl-item:nth-child(4) .tl-content { transition-delay:6s; }
.timeline.is-drawn .tl-item:nth-child(5) .tl-node,
.timeline.is-drawn .tl-item:nth-child(5) .tl-content { transition-delay:8s; }
.timeline.is-drawn .tl-item:nth-child(6) .tl-node,
.timeline.is-drawn .tl-item:nth-child(6) .tl-content { transition-delay:10s; }
.tl-year {
  display: inline-block;
  font-size: 18px;
  font-weight: 800;
  color: var(--green);
  background: var(--green-soft);
  border: 1.5px solid var(--green);
  border-radius: 6px;
  padding: 4px 12px;
  margin-bottom: 10px;
  letter-spacing: .5px;
  box-shadow: 0 2px 6px rgba(31, 107, 86, .08);
}
.tl-item h3 { font-size:17px; margin-bottom:8px; }
.tl-item p { font-size:14px; color:var(--muted); }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.value-card { padding:36px 30px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); transition:all .35s; text-align:center; }
.value-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.value-card .v-num { font-size:50px; font-weight:900; color:var(--green-soft); line-height:1; margin-bottom:16px; transition:color .3s; }
.value-card:hover .v-num { color:rgba(31,107,86,.15); }
.value-card h3 { font-size:20px; margin-bottom:14px; }
.value-card p { font-size:14px; color:var(--muted); line-height:1.8; }

/* 工厂/设备页 */
.factory-overview { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:-50px; position:relative; z-index:2; }
.ov-card { padding:28px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); text-align:center; transition:all .35s; }
.ov-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--green); }
.ov-card strong { display:block; font-size:34px; font-weight:800; color:var(--green-dark); line-height:1; }
.ov-card span { display:block; margin-top:12px; font-size:14px; color:var(--muted); }
.split-section { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; padding:56px 0; }
.split-media { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.split-media img { width:100%; height:300px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); transition:transform .4s; }
.split-media img:hover { transform:scale(1.04); }
.split-text .eyebrow { color:var(--green); font-weight:700; margin-bottom:14px; }
.split-text h2 { font-size:clamp(28px,3.2vw,38px); font-weight:800; line-height:1.2; margin-bottom:22px; }
.split-text h2 em { font-style:normal; color:var(--green); }
.split-text p { color:var(--muted); font-size:15px; line-height:1.9; margin-bottom:16px; }
.split-text ul { margin-top:20px; }
.split-text li { position:relative; padding-left:26px; margin-bottom:12px; font-size:14.5px; color:var(--muted); }
.split-text li::before { content:""; position:absolute; left:0; top:7px; width:16px; height:9px; border-left:2px solid var(--green); border-bottom:2px solid var(--green); transform:rotate(-45deg); }
.process-flow { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; }
/* 连接线：圆心在 .pf-step 顶 50px 处 (padding 20 + 半径 30)，从左到右延展 */
.process-flow::before { content:""; position:absolute; top:50px; left:12%; right:12%; height:2px; background:linear-gradient(90deg,var(--green),var(--gold)); z-index:0; transform:scaleX(0); transform-origin:left; }
.process-flow.is-drawn::before { animation:pf-draw 1.4s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes pf-draw { to { transform:scaleX(1); } }
.pf-step { position:relative; z-index:1; text-align:center; padding:20px; }
.pf-step .pf-num { width:60px; height:60px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; background:var(--white); border:2px solid var(--green); color:var(--green); font-size:22px; font-weight:800; box-shadow:var(--shadow-sm); transition:all .35s; }
.pf-step:hover .pf-num { background:var(--green); color:var(--white); transform:scale(1.1); }
.pf-step h3 { font-size:17px; margin-bottom:10px; }
.pf-step p { font-size:13px; color:var(--muted); line-height:1.7; }
.equip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.equip-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:all .35s; }
.equip-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.equip-card .eq-img { aspect-ratio:4/3; overflow:hidden; background:var(--green-mist); }
.equip-card .eq-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.equip-card:hover .eq-img img { transform:scale(1.06); }
.equip-card .eq-body { padding:22px; }
.equip-card .eq-tag { display:inline-block; padding:3px 10px; background:var(--green-soft); color:var(--green); font-size:12px; font-weight:700; border-radius:999px; margin-bottom:10px; }
.equip-card h3 { font-size:18px; margin-bottom:10px; }
.equip-card p { font-size:13.5px; color:var(--muted); line-height:1.7; }

/* 联系页 */
.contact-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:30px; margin-top:-50px; position:relative; z-index:2; padding-bottom:60px; }
.contact-info { padding:40px; background:linear-gradient(150deg,var(--green-dark),var(--green)); color:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow); }
.contact-info .eyebrow { color:var(--gold-light); font-weight:700; margin-bottom:14px; }
.contact-info h2 { font-size:28px; margin-bottom:18px; line-height:1.3; }
.contact-info > p { color:rgba(255,255,255,.8); font-size:14px; line-height:1.8; margin-bottom:26px; }
.ci-item { display:flex; gap:14px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.ci-item:last-child { border-bottom:0; }
.ci-item .ci-icon { width:44px; height:44px; flex-shrink:0; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.12); }
.ci-item .ci-icon svg { width:22px; height:22px; fill:var(--gold-light); }
.ci-item .ci-text span { display:block; font-size:12px; color:rgba(255,255,255,.6); margin-bottom:4px; }
.ci-item .ci-text strong { font-size:15px; font-weight:600; }
.contact-form-wrap { padding:40px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); }
.contact-form-wrap h2 { font-size:24px; margin-bottom:8px; }
.contact-form-wrap > p { color:var(--muted); font-size:14px; margin-bottom:26px; }
.cform { display:grid; gap:18px; }
.cform-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cform label { display:block; }
.cform .clabel { display:block; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:8px; }
.cform input, .cform select, .cform textarea { width:100%; padding:13px 16px; border:1px solid var(--line); border-radius:8px; font:inherit; font-size:14px; color:var(--ink); background:var(--green-mist); transition:all .25s; }
.cform input:focus, .cform select:focus, .cform textarea:focus { outline:none; border-color:var(--green); background:var(--white); box-shadow:0 0 0 3px rgba(31,107,86,.1); }
.cform textarea { resize:vertical; min-height:120px; }
.cform button { justify-self:start; }

/* 404 */
.not-found { min-height:60vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:80px 24px; }
.not-found .nf-code { font-size:clamp(90px,18vw,200px); font-weight:900; line-height:1; background:linear-gradient(135deg,var(--green),var(--green-dark)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.not-found h1 { font-size:28px; margin:16px 0 12px; }
.not-found p { color:var(--muted); max-width:480px; margin-bottom:28px; }
.not-found .btn-row { display:flex; gap:14px; flex-wrap:wrap; }

/* 响应式 */
@media (max-width:1080px) {
  .products-home, .news-home, .advantages, .about-metrics-grid, .equip-grid { grid-template-columns:repeat(2,1fr); }
  .mega-grid { grid-template-columns:repeat(3,1fr); }
}
/* 1024px 以下：搜索框隐藏（顶栏文字会挤变形），但导航和 logo 仍横向显示 */
@media (max-width:1024px) {
  .nav-search { display:none; }
}
@media (max-width:880px) {
  .top-bar, .nav-search { display:none; }
  .nav-toggle { display:block; }
  .main-nav { position:fixed; top:78px; right:0; width:280px; height:calc(100vh - 78px); flex-direction:column; align-items:stretch; background:var(--white); padding:16px; box-shadow:var(--shadow-lg); transform:translateX(100%); transition:transform .3s; overflow-y:auto; gap:0; }
  .main-nav.open { transform:translateX(0); }
  .main-nav > li > a { padding:14px 16px; border-radius:0; border-bottom:1px solid var(--line); }
  .main-nav > li > a::after { display:none; }
  .mega-menu { position:static; box-shadow:none; border:0; padding:0; max-height:0; overflow:hidden; opacity:1; visibility:visible; transform:none; transition:max-height .3s; }
  .main-nav .has-sub.open .mega-menu { max-height:800px; padding:12px 0; border-top:2px solid var(--green); }
  .mega-grid { grid-template-columns:1fr; gap:12px; padding:0; }
  .about-home, .about-story, .split-section, .detail-top, .contact-layout, .products-page-layout { grid-template-columns:1fr; }
  .prod-sidebar { position:static; }
  .prod-list { grid-template-columns:repeat(2,1fr); }
  .process-flow { grid-template-columns:repeat(2,1fr); }
  .process-flow::before { display:none; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
  .detail-gallery { position:static; }
  .factory-overview { grid-template-columns:repeat(2,1fr); }
}
/* ============================================================
   滚动渐显动效 (data-reveal)
   支持方向：up / left / right / zoom / fade，默认 up
   同组兄弟元素通过 --reveal-delay 错落入场
   ============================================================ */
[data-reveal] {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
[data-reveal="up"]     { transform: translateY(36px); }
[data-reveal="left"]   { transform: translateX(-44px); }
[data-reveal="right"]  { transform: translateX(44px); }
[data-reveal="zoom"]   { transform: scale(.9); }
[data-reveal="fade"]   { transform: none; }
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
/* 无障碍：尊重「减少动态效果」系统偏好 */
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

@media (max-width:560px) {
  .wrap { padding:0 16px; }
  .section { padding:56px 0; }
  .products-home, .news-home, .advantages, .about-metrics-grid, .equip-grid, .values-grid, .factory-overview, .process-flow, .about-home-stats, .footer-main, .cform-row, .prod-list { grid-template-columns:1fr; }
  .hero-banner .swiper-slide { aspect-ratio:16/10; min-height:300px; }
  .btn { width:100%; }
  .hero-banner .slide-text { padding:0 16px; }
  .hero-banner .slide-text .wrap { padding:26px 22px 28px; border-radius:var(--radius); border-left-width:3px; }
  .hero-banner .slide-text .st-eyebrow { margin-bottom:14px; }
  .hero-banner .slide-text h2 { margin-bottom:16px; line-height:1.3; }
  .hero-banner .slide-text p { margin-bottom:22px; line-height:1.7; }
  .hero-banner .slide-text .wrap > * { text-align:left; }
  .hero-banner .slide-text .btn-row { flex-direction:column; }
  .timeline::before { left:14px; }
  .tl-item, .tl-item:nth-child(even) { width:100%; margin-left:0; padding:0 0 30px 40px; }
  .tl-item::before, .tl-item:nth-child(even)::before { right:auto; left:7px; }
  .float-tools { right:auto; left:50%; top:auto; bottom:16px; transform:translateX(-50%); flex-direction:row; background:rgba(15,23,20,.9); padding:8px; border-radius:999px; backdrop-filter:blur(10px); }
  .float-tools a .ft-tip { display:none; }
  .footer-bottom { flex-direction:column; gap:8px; text-align:center; }
}

/* ============================================================
   news.html 新闻列表页样式
   ============================================================ */
.news-page-layout { display:grid; grid-template-columns:208px 1fr; gap:30px; padding:56px 0 80px; }
.news-sidebar { position:sticky; top:130px; align-self:start; }
.news-sidebar .sidebar-block { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); margin-bottom:22px; }
.news-sidebar .sb-head { position:relative; padding:14px 20px 14px 60px; background:var(--green); color:var(--white); font-size:16px; font-weight:700; line-height:1.3; min-height:48px; display:flex; align-items:center; }
.news-sidebar .sb-head::before { content:""; position:absolute; left:14px; top:50%; width:36px; height:36px; transform:translateY(-50%); background:url("../images/logo1.png") center/contain no-repeat; filter:brightness(0) invert(1); pointer-events:none; }
.news-cat-item { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; font-size:14px; font-weight:600; color:var(--ink); border-bottom:1px solid var(--line); cursor:pointer; transition:all .2s; }
.news-cat-item:last-child { border-bottom:0; }
.news-cat-item::before { content:""; width:4px; height:14px; background:transparent; border-radius:2px; margin-right:10px; transition:background .2s; }
.news-cat-item:hover { background:var(--green-mist); color:var(--green); }
.news-cat-item.active { background:var(--green-mist); color:var(--green); }
.news-cat-item.active::before { background:var(--green); }
.news-cat-item .nci-count { font-size:12px; color:var(--muted); font-weight:500; }
.news-cat-item.active .nci-count { color:var(--green); }

/* 列表头 */
.news-list-head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:14px; }
.news-list-head h1 { font-size:clamp(26px,3.4vw,38px); font-weight:800; color:var(--green-dark); }
.news-list-head p { color:var(--muted); font-size:14px; }
.news-list-head .nlf-right { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.news-filter-tabs { display:flex; gap:6px; padding:4px; background:var(--white); border:1px solid var(--line); border-radius:999px; }
.news-filter-tabs [data-cat] { padding:7px 16px; font-size:13px; font-weight:600; color:var(--muted); border-radius:999px; cursor:pointer; transition:all .2s; }
.news-filter-tabs [data-cat]:hover { color:var(--green); }
.news-filter-tabs [data-cat].active { background:var(--green); color:var(--white); }

/* 列表卡片网格（沿用 .news-home） */
.news-list { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }

/* 分页 */
.news-pagination { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:40px; flex-wrap:wrap; }
.news-pagination a { display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 12px; font-size:14px; font-weight:600; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:8px; cursor:pointer; transition:all .2s; }
.news-pagination a:hover:not(.disabled):not(.active) { color:var(--green); border-color:var(--green); }
.news-pagination a.active { background:var(--green); color:var(--white); border-color:var(--green); }
.news-pagination a.disabled { color:var(--muted); opacity:.4; cursor:not-allowed; }

/* 响应式 */
@media (max-width:1024px) {
  .news-page-layout { grid-template-columns:1fr; }
  .news-sidebar { position:static; }
  .news-list { grid-template-columns:1fr; }
}

