:root{
  --bg:#ffffff; --ink:#241512; --muted:#6d5a52; --line:#f0dcd2;
  --brand:#d43a2e;            /* 消防红 */
  --brand-ink:#a82218;        /* 深红 */
  --brand-soft:#fdeeea;
  --gold:#f57c00;             /* 应急橙 */
  --paper:#fdf4ef;            /* 浅暖底 */
  --paper-2:#fdf1e8;          /* 图片容器底色 */
  --radius:14px; --maxw:1180px;
  /* Banner 高度：需要调整横幅高度时改这一个值即可 */
  --hero-min-h:clamp(230px,24vw,340px);
  --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans SC","Source Han Sans SC","Noto Sans SC","Microsoft YaHei",sans-serif;
  --font-head:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans SC","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(212,58,46,.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),var(--gold))}
.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}
.nav-lang{font-weight:800; font-size:13px; border:1.5px solid var(--brand); color:var(--brand); border-radius:999px; padding:3px 12px; letter-spacing:.06em}
.nav-lang:hover{background:var(--brand); color:#fff}
.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)}
.btn.gold{background:var(--gold); color:#fff}
.btn.gold:hover{background:#e65100}

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:linear-gradient(180deg,var(--brand),var(--gold)); border-radius:3px}
.section-sub{color:var(--muted); margin:0 0 30px; font-size:16px}

/* Hero（首页 Banner）：三张背景图轮播，高度由 :root 的 --hero-min-h 统一调整
   可读性方案：背景图低透明度(.18) + 一层暗色遮罩压在图之上/文字之下 + 文字投影加强
   想让图更明显：把 @keyframes heroFade 里的 .18 调大；想更素：调小 */
.hero{padding:0; min-height:var(--hero-min-h); display:flex; align-items:center; position:relative; overflow:hidden;
  background:linear-gradient(135deg,#7f1712,#a82218 55%,#c84a10)}
/* 文字可读性遮罩：位于背景图之上、文案之下（文案 .wrap 为 z-index:1）。
   左深右浅，因为 banner 文案是左对齐的，保证标题区域对比度最高 */
.hero::after{content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(22,3,1,.92) 0%, rgba(22,3,1,.76) 38%, rgba(22,3,1,.52) 72%, rgba(22,3,1,.36) 100%)}
.hero-bg{position:absolute; inset:0; pointer-events:none}
.hero-bg i{position:absolute; inset:0; background-size:cover; background-position:center; background-repeat:no-repeat; opacity:0; animation:heroFade 21s infinite}
.hero-bg .b1{background-image:url('/assets/img/hero-1.jpg'); animation-delay:0s}
.hero-bg .b2{background-image:url('/assets/img/hero-2.jpg'); animation-delay:7s}
.hero-bg .b3{background-image:url('/assets/img/hero-3.jpg'); animation-delay:14s}
/* 低透明度轮播（.18，保证文字清晰可读）：每张图活跃期 7 秒（0-7s / 7-14s / 14-21s） */
@keyframes heroFade{0%{opacity:0}3%{opacity:.18}33%{opacity:.18}40%{opacity:0}100%{opacity:0}}
.hero .wrap{position:relative; z-index:1; padding-top:56px; padding-bottom:56px; width:100%}
.hero h1{font-size:clamp(28px,4.4vw,50px); line-height:1.18; margin:0 0 18px; font-weight:900; letter-spacing:.03em; color:#fff; text-shadow:0 3px 26px rgba(18,2,0,.9), 0 1px 3px rgba(18,2,0,.95); animation:heroUp .7s cubic-bezier(.22,.9,.3,1) both}
.hero p{font-size:18px; color:#fbe9e2; max-width:760px; margin:0 0 26px; line-height:1.9; text-shadow:0 2px 16px rgba(18,2,0,.9), 0 1px 2px rgba(18,2,0,.85); 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}
  .hero-bg i{animation:none; opacity:0}
  .hero-bg .b1{opacity:.5}
}
.badges{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:28px}
.badge{background:rgba(255,255,255,.94); 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,.06); color:var(--ink)}
.badge.hot{background:var(--gold); color:#fff; border-color:var(--gold)}

/* 网格与卡片 */
.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(120,30,10,.08); 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(120,30,10,.08); transform:translateY(-2px)}
/* 图片完整显示：object-fit:contain 不裁切，底色留白保证观感统一 */
.card img{aspect-ratio:4/3; object-fit:contain; width:100%; background:var(--paper-2); padding:10px}
.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:var(--paper-2)}
.card-wide .wimg img{width:100%; height:100%; aspect-ratio:auto; object-fit:contain; padding:14px; background:var(--paper-2)}
.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:var(--paper); border:1px solid var(--line); border-radius:999px; padding:5px 12px; font-size:13px; color:var(--muted); 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; object-fit:contain}.card-wide .wdesc{min-height:0}}

/* 场景/案例卡：图片完整显示不裁切 */
.scenecard img,.casecard img{border-radius:12px; aspect-ratio:16/10; object-fit:contain; margin-bottom:12px; background:var(--paper-2); padding:8px}
.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:linear-gradient(135deg,var(--brand),var(--gold)); 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:var(--muted)}
.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:#fff3e0; border:1px solid #ffd8a8; color:#b25e00; 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:var(--paper); border:1px solid var(--line); border-radius:12px; padding:16px 18px; color:var(--muted); 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:var(--paper)}

/* 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:var(--paper); 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:var(--paper-2)}
.gal-main img{width:100%; aspect-ratio:4/3; object-fit:contain; padding:12px; background:var(--paper-2)}
.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:contain; display:block; background:var(--paper-2); padding:3px}
.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(--gold); border-color:var(--gold)}
.fphone{color:var(--gold) !important; font-weight:800; font-size:16px}
.fcopy a{color:#9a9082; text-decoration:underline}
.fcopy a:hover{color:var(--gold)}

/* 移动端浮动电话按钮 */
.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(168,34,24,.4); 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,var(--paper),#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,var(--paper),#ffffff)}
.cityhero h1{font-size:clamp(24px,3.5vw,40px); font-weight:900; margin:0 0 16px; color:var(--brand-ink); text-shadow:none}
.cityhero p{max-width:760px; color:var(--muted); margin:0 0 22px; text-shadow:none}
.cityhero .hero-bg{display:none}
/* 城市分站是浅底深字，不能套首页 hero 的暗色遮罩，否则文字看不清 */
.cityhero::after{display:none}

/* 文章 */
.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(120,30,10,.07)}
.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 .wrap{padding-top:40px; padding-bottom:40px}
  .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; object-fit:contain}
  .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}
}
