:root{
  --bg:#ffffff; --ink:#1c2a1a; --muted:#5a6b55; --line:#dde6d8;
  --brand:#2e7d32;            /* 环保绿 */
  --brand-ink:#1b5e20;
  --brand-soft:#e8f5e9;
  --gold:#7fae6b;             /* 草木绿（替代暗金） */
  --paper:#f4f8f1;            /* 浅绿底 */
  --radius:14px; --maxw:1180px;
  --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans SC","Microsoft YaHei",sans-serif;
  --font-head:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-sans);
  color:var(--ink); background:var(--bg); line-height:1.8; font-size:16px;
  letter-spacing:.012em; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5{font-family:var(--font-head); letter-spacing:.01em}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}

/* 顶部条 */
.topbar{background:var(--brand); color:#fff; font-size:13px}
.topwrap{display:flex; justify-content:space-between; align-items:center; height:38px; flex-wrap:wrap; gap:6px}
.topbar a{color:#fff; font-weight:700}
.topbar .tp{font-weight:600}

/* 导航 */
header.site{position:sticky; top:0; background:rgba(255,255,255,.95); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); z-index:50}
.nav{display:flex; align-items:center; justify-content:space-between; height:66px}
.logo{display:flex; align-items:center; gap:9px; font-weight:900; letter-spacing:1.5px; font-size:23px}
.logo-ico{flex:none; filter:drop-shadow(0 2px 6px rgba(46,125,50,.35))}
.logo-txt{color:var(--brand-ink); position:relative}
.logo-txt::after{content:""; position:absolute; left:0; bottom:-3px; width:100%; height:2.5px; border-radius:2px; background:linear-gradient(90deg,var(--brand),#7fae6b)}
.navul{display:flex; gap:24px; list-style:none; margin:0; padding:0; align-items:center}
.navul a{font-weight:600; font-size:15px; color:#222; padding:6px 0; position:relative}
.navul a:hover,.navul a.active{color:var(--brand)}
.navul a.active::after{content:""; position:absolute; left:0; right:0; bottom:-4px; height:3px; background:var(--brand); border-radius:3px}
.menu-btn{display:none; background:none; border:none; font-size:24px; cursor:pointer; color:var(--brand)}

/* 按钮 */
.btn{display:inline-block; background:var(--ink); color:#fff; padding:13px 28px; border-radius:999px; font-weight:700; font-size:16px; transition:.2s; letter-spacing:.02em}
.btn:hover{opacity:.92}
.btn.brand{background:var(--brand); color:#fff}
.btn.brand:hover{background:var(--brand-ink)}

section.block{padding:64px 0}
.section-title{font-size:clamp(23px,3vw,34px); font-weight:800; margin:0 0 10px; position:relative; padding-left:16px; letter-spacing:.02em; color:var(--ink)}
.section-title::before{content:""; position:absolute; left:0; top:7px; bottom:7px; width:5px; background:var(--brand); border-radius:3px}
.section-sub{color:var(--muted); margin:0 0 30px; font-size:16px}

/* Hero */
.hero{padding:96px 0 74px; background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,255,255,.93)),url('/assets/img/banner1.jpg') center/cover no-repeat; position:relative; overflow:hidden}
.hero::after{content:""; position:absolute; right:-80px; top:-40px; width:420px; height:420px; background:radial-gradient(circle,rgba(46,125,50,.10),transparent 70%); border-radius:50%}
.hero .wrap{position:relative; z-index:1}
.hero h1{font-size:clamp(28px,4.4vw,50px); line-height:1.18; margin:0 0 18px; font-weight:900; letter-spacing:.03em; animation:heroUp .7s cubic-bezier(.22,.9,.3,1) both; text-shadow:0 2px 24px rgba(255,255,255,.6)}
.hero p{font-size:18px; color:var(--muted); max-width:760px; margin:0 0 26px; line-height:1.9; animation:heroUp .7s .12s cubic-bezier(.22,.9,.3,1) both}
.hero .badges{animation:heroUp .7s .24s cubic-bezier(.22,.9,.3,1) both}
.hero .btn{animation:heroUp .7s .34s cubic-bezier(.22,.9,.3,1) both}
@keyframes heroUp{from{opacity:0; transform:translateY(26px)}to{opacity:1; transform:none}}
@media(prefers-reduced-motion:reduce){.hero h1,.hero p,.hero .badges,.hero .btn{animation:none}}
.badges{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:28px}
.badge{background:#fff; border:1px solid var(--line); padding:9px 16px; border-radius:999px; font-weight:700; font-size:14px; box-shadow:0 2px 8px rgba(0,0,0,.03)}
.badge.hot{background:var(--brand); color:#fff; border-color:var(--brand)}

/* 网格与卡片 */
.grid{display:grid; gap:22px}
.products{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.cols4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.cols3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cols2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
.panel{border:1px solid var(--line); border-radius:var(--radius); padding:22px; background:#fff; transition:.2s}
.panel:hover{box-shadow:0 10px 30px rgba(0,0,0,.07); transform:translateY(-2px)}
.panel h3{margin:0 0 8px; font-size:17px; font-weight:700; letter-spacing:.01em}
.panel p{margin:0; color:var(--muted); line-height:1.8}
.card{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; transition:.2s}
.card:hover{box-shadow:0 10px 30px rgba(0,0,0,.08); transform:translateY(-2px)}
.card img{aspect-ratio:4/3; object-fit:cover; width:100%}
.card .body{padding:16px}
.card h3{margin:0 0 6px; font-size:16px; font-weight:700; line-height:1.45}
.card .moq{color:var(--brand-ink); font-weight:700; font-size:14px}

/* 横版大气产品卡（首页/产品中心，每行 2 个，统一等高） */
.card-wide{display:flex; gap:0; overflow:hidden; min-height:232px; height:100%}
.card-wide .wimg{flex:0 0 42%; background:#eef5ea}
.card-wide .wimg img{width:100%; height:100%; aspect-ratio:auto; object-fit:cover}
.card-wide .wbody{flex:1; padding:26px 28px; display:flex; flex-direction:column; justify-content:center}
.card-wide h3{font-size:22px; margin:0 0 10px; color:var(--brand-ink); letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:800}
.card-wide .wdesc{color:var(--muted); font-size:15px; margin:0 0 14px; line-height:1.75;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:52px}
.card-wide .wspecs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; min-height:32px}
.card-wide .wspecs span{background:#f0f6ec; border:1px solid var(--line); border-radius:999px; padding:5px 12px; font-size:13px; color:#5f6f5a; white-space:nowrap}
.card-wide .wspecs b{color:var(--brand-ink)}
.card-wide .wmore{color:var(--brand); font-weight:800; font-size:14px; margin-top:auto}
@media(max-width:900px){.card-wide{flex-direction:column; min-height:0}.card-wide .wimg{flex:none}.card-wide .wimg img{aspect-ratio:4/3}.card-wide .wdesc{min-height:0}}

/* 场景/案例卡 */
.scenecard img,.casecard img{border-radius:12px; aspect-ratio:16/10; object-fit:cover; margin-bottom:12px}
.scenecard span,.casecard span{color:var(--brand); font-weight:700; font-size:14px}
.scenes .panel{display:block}

/* 两栏 */
.two{grid-template-columns:1fr 1fr; align-items:start}
.center{text-align:center; margin-top:26px}

/* 流程 */
.steps .step-n{width:36px; height:36px; border-radius:50%; background:var(--brand); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; margin-bottom:10px}

/* 数据卡 */
.stats-cards{display:grid; gap:16px; grid-template-columns:repeat(2,1fr)}
.stat .big{font-size:34px; font-weight:900; color:var(--brand-ink)}

/* 规格表 */
table.specs{width:100%; border-collapse:collapse; margin:14px 0 18px}
table.specs td{border-bottom:1px solid var(--line); padding:10px 4px; font-size:15px}
table.specs td:first-child{color:var(--muted); width:42%}
.tags{display:flex; flex-wrap:wrap; gap:10px}
.tag{background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:7px 16px; font-weight:600}

/* 面包屑 */
.breadcrumb{font-size:13px; color:var(--muted); padding:18px 0 0; display:flex; align-items:center; flex-wrap:wrap; gap:4px}
.breadcrumb a{color:#5f6f5a}
.breadcrumb a:hover{color:var(--brand)}
.breadcrumb .sep{color:#bbb; margin:0 4px}

/* FAQ */
.faq-item{border-bottom:1px solid var(--line); padding:15px 0}
.faq-item h4{margin:0 0 6px; color:var(--brand-ink); font-size:16.5px; font-weight:700}
.faq-item p{line-height:1.85}

/* 表单 */
form.inquiry{display:grid; gap:14px; max-width:640px}
form.inquiry label{font-weight:600; font-size:14px}
form.inquiry input,form.inquiry textarea,form.inquiry select{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font:inherit; background:#fff}
form.inquiry .row{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.ok{background:#eafaf0; border:1px solid #b7e4c7; color:#1b7a3d; padding:12px 14px; border-radius:10px; font-weight:600}
.contact-info{align-self:start}
.contact-info p{margin:8px 0}
.contact-info a{color:var(--brand); font-weight:700}

/* 联系页大电话（无表单） */
.contact-big{background:#fff; border:1px solid var(--line); border-radius:16px; padding:28px; margin:10px 0 18px}
.cbig-item{text-align:center; padding:10px 0 18px; border-bottom:1px dashed var(--line); margin-bottom:18px}
.cbig-item>span{color:var(--muted); font-size:15px}
.cbig-phone{display:block; font-size:clamp(30px,5vw,46px); font-weight:900; color:var(--brand); margin:8px 0 6px; letter-spacing:1px}
.cbig-phone:hover{color:var(--brand-ink)}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.contact-grid .panel{margin:0; padding:16px}
.contact-grid h3{margin:0 0 6px; font-size:16px}
.contact-grid p{margin:0; color:var(--muted)}
.contact-tip{background:#f0f6ec; border:1px solid var(--line); border-radius:12px; padding:16px 18px; color:#5f6f5a; margin-top:6px}

/* 产品页电话条 */
.ptel{display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:16px}
.ptel>span{font-weight:700; color:var(--brand-ink)}

/* 参数分组 */
.param-group{margin:22px 0 8px; color:var(--brand-ink); font-size:17px}
table.specs{margin:6px 0 10px}
table.specs tr:nth-child(odd){background:#f2f8ef}

/* FAQ 聚合页 */
.faq-cta{background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px 20px; margin-top:22px; text-align:center}
.faq-cta b{color:var(--brand-ink)}
.faq-cta a{color:var(--brand); font-weight:800; font-size:18px}
.faq-filter{display:flex; align-items:flex-start; gap:12px; background:#f0f6ec; border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin-bottom:8px; flex-wrap:wrap}
.faq-flabel{font-weight:700; color:var(--brand-ink); white-space:nowrap; padding-top:4px}
.faq-flinks{display:flex; flex-wrap:wrap; gap:8px}
.faq-flinks a{display:inline-block; background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 16px; font-size:14px; font-weight:600; transition:.15s}
.faq-flinks a:hover{border-color:var(--brand); color:var(--brand)}
.faq-flinks a.on{background:var(--brand); border-color:var(--brand); color:#fff}
.faq-count{color:var(--muted); font-size:14px; margin:10px 0 4px}

/* 多图相册 */
.gal{display:flex; flex-direction:column; gap:12px}
.gal-main{border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#f0f6ec}
.gal-main img{width:100%; aspect-ratio:4/3; object-fit:cover}
.gal-thumbs{display:flex; gap:10px; flex-wrap:wrap}
.gal-thumb{border:1px solid var(--line); border-radius:8px; overflow:hidden; padding:0; background:#fff; cursor:pointer; width:76px; height:58px; transition:.15s}
.gal-thumb img{width:100%; height:100%; object-fit:cover; display:block}
.gal-thumb:hover{border-color:var(--brand)}
.gal-thumb.on{border-color:var(--brand); box-shadow:0 0 0 2px var(--brand-soft)}

/* 后台多图选择 */
.galpick{display:flex; flex-wrap:wrap; gap:10px; margin-top:8px}
.galpick .cb{width:auto; padding:6px 10px; margin:0}

/* 页脚 SEO 链接 */
.fseo{display:flex; flex-wrap:wrap; gap:10px; margin-top:12px}
.fseo a{display:inline-block; background:rgba(255,255,255,.06); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:13px; color:#cfc6b8}
.fseo a:hover{color:var(--brand); border-color:var(--brand)}
.fphone{color:var(--brand) !important; font-weight:800; font-size:16px}
.fcopy a{color:#9a9082; text-decoration:underline}
.fcopy a:hover{color:var(--brand)}

/* 移动端浮动电话按钮 */
.float-tel{position:fixed; right:16px; bottom:16px; z-index:999; background:var(--brand); color:#fff !important; font-weight:800; padding:14px 20px; border-radius:999px; box-shadow:0 6px 18px rgba(46,125,50,.35); display:flex; align-items:center; gap:8px; font-size:15px}
.float-tel:hover{background:var(--brand-ink)}
@media(min-width:761px){.float-tel{display:none}}

/* CTA 板块 */
.cta{background:linear-gradient(180deg,#eef5ea,#ffffff); text-align:center}
.cta .section-title{font-size:clamp(22px,3vw,34px)}

/* 城市分站 */
.prov .provcard{display:flex; flex-direction:column; gap:6px}
.provcard span{color:var(--brand); font-weight:700; font-size:14px}
.citygrid .citycard{display:block; text-align:center; font-weight:700}
.cityrow{display:flex; flex-wrap:wrap; gap:10px}
.chip{background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 16px; font-weight:600}
.chip:hover{border-color:var(--brand); color:var(--brand)}
.cityhero{background:linear-gradient(180deg,#eef5ea,#ffffff)}
.cityhero h1{font-size:clamp(24px,3.5vw,40px); font-weight:900; margin:0 0 16px}
.cityhero p{max-width:760px; color:var(--muted); margin:0 0 22px}

/* 文章 */
.bloglist{display:grid; gap:18px}
.post{border:1px solid var(--line); border-radius:var(--radius); padding:20px; transition:.2s}
.post:hover{box-shadow:0 8px 24px rgba(0,0,0,.06)}
.post h3{margin:0 0 8px}
.post .meta{color:var(--muted); font-size:13px; margin-bottom:8px}

/* 页脚 */
footer.site{border-top:3px solid var(--brand); padding:34px 0 30px; color:var(--muted); font-size:14px; background:var(--paper)}
.fwrap{display:flex; flex-wrap:wrap; align-items:flex-start; gap:28px; justify-content:space-between}
.fbrand b{font-size:19px; color:var(--ink); font-weight:900}
.fbrand b span{color:var(--brand)}
.fbrand .fco{color:var(--muted); font-size:13px; display:block; margin-top:2px}
.fbrand .fdesc{margin-top:10px; max-width:300px}
.flinks h4,.fcontact h4,.fsub h4{color:var(--ink); font-size:15px; margin:0 0 10px}
.flinks a{display:block; color:var(--muted); margin:6px 0}
.flinks a:hover{color:var(--brand)}
.fcontact p{margin:6px 0}
.fcontact a{color:var(--brand); font-weight:700}
.fcities{display:flex; flex-wrap:wrap; gap:6px 12px; max-width:280px}
.fcities a{color:var(--muted)}
.fcities a:hover{color:var(--brand)}
.fcopy{flex-basis:100%; text-align:center; border-top:1px solid var(--line); padding-top:16px; margin-top:10px; color:#9a9082}

/* 认证/资质 */
.cert-row{display:flex; flex-wrap:wrap; gap:12px; margin:8px 0 6px}
.cert-row span{background:var(--brand-ink); color:#fff; padding:9px 18px; border-radius:999px; font-weight:700; font-size:14px}

@media(max-width:760px){
  .menu-btn{display:block}
  .navul{display:none; position:absolute; top:66px; left:0; right:0; background:#fff; flex-direction:column; gap:0; padding:10px 20px; border-bottom:1px solid var(--line)}
  .navul.open{display:flex}
  .navul li{padding:10px 0; border-bottom:1px solid var(--line)}
  .head-cta{display:none}
  .two{grid-template-columns:1fr}
  .grid.cols4{grid-template-columns:1fr 1fr}
  .grid.cols3{grid-template-columns:1fr}
  form.inquiry .row{grid-template-columns:1fr}
  .stats-cards{grid-template-columns:1fr 1fr}
  /* —— 手机端卡片紧凑化 —— */
  .grid{gap:12px}
  section.block{padding:42px 0}
  .hero{padding:60px 0 48px}
  .products{grid-template-columns:1fr 1fr; gap:10px}
  .products .card h3{font-size:15px; line-height:1.4}
  .card .body{padding:10px 12px}
  .card .moq{font-size:12px}
  .products .card img{aspect-ratio:1/1}
  .grid.cols4 .card h3{font-size:14px}
  .grid.cols4 .card .body{padding:9px 11px}
  .scenecard span,.casecard span{font-size:12px}
  .panel{padding:16px 14px}
  .card-wide .wbody{padding:16px 14px}
  .card-wide h3{font-size:19px; white-space:normal}
  .card-wide .wdesc{min-height:0; -webkit-line-clamp:2}
  .card-wide .wspecs{gap:6px; margin-bottom:10px}
  .card-wide .wspecs span{font-size:12px; padding:4px 9px}
  .section-title{font-size:22px; padding-left:12px}
  .topwrap{font-size:12px; height:auto; padding:6px 0}
  .topbar .wrap{padding:0 14px}
  .cta{padding:40px 0}
}
