:root{
  --c-primary: #2b2bd6;
  --c-primary-dark: #2b2bd6;
  --font: 'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
}
/* =========================================================
   墨线智研 InkLine Research — 浅色墨线线框风格
   唯一无填充线框美学：白底 + 2px 墨黑描边 + 群青 hover 填充
   ========================================================= */

:root{
  --paper:#ffffff;
  --ink:#17171c;
  --ultra:#2b2bd6;
  --line:2px solid var(--ink);
  --line-strong:3px solid var(--ink);
  --radius:4px;
  --mono:"Courier New",ui-monospace,monospace;
  --sans:"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --shadow-hard:4px 4px 0 var(--ink);
  --shadow-hard-sm:3px 3px 0 var(--ink);
  --gap:24px;
}

*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{
  font-family:var(--sans);
  color:var(--ink);
  background-color:var(--paper);
  /* 点阵装饰：1px 墨点 / 22px 间距 / 低透明 */
  background-image:radial-gradient(rgba(23,23,28,.07) 1px,transparent 1.4px);
  background-size:22px 22px;
  background-position:0 0;
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{line-height:1.25;font-weight:700;letter-spacing:.5px}

.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}

/* ---------- 等宽工具 ---------- */
.mono{font-family:var(--mono);letter-spacing:.5px}
.tag,.eyebrow,.num,.crumb,.spec,.step-no,.data-num{font-family:var(--mono)}

/* ---------- 板块标题（线框符号前缀） ---------- */
.eyebrow{
  display:inline-block;
  border:var(--line);
  border-radius:var(--radius);
  padding:3px 10px;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  background:var(--paper);
}
.sec-title{
  font-size:30px;
  margin:14px 0 6px;
  display:flex;
  align-items:center;
  gap:12px;
}
.sec-title::before{
  content:"\25A1"; /* □ */
  color:var(--ultra);
  font-size:26px;
  border:2px solid var(--ink);
  width:30px;height:30px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--radius);
  flex:0 0 auto;
}
.sec-sub{color:var(--ink);opacity:.7;max-width:640px;margin-bottom:28px}
.rule{display:flex;align-items:center;gap:14px;margin:6px 0 24px}
.rule::after{content:"";flex:1;height:0;border-top:var(--line)}

/* ---------- 通用线框卡片 ---------- */
.card{
  background:var(--paper);
  border:var(--line);
  border-radius:var(--radius);
  padding:22px;
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.card.hard{box-shadow:var(--shadow-hard)}
.card.hard:hover{box-shadow:6px 6px 0 var(--ultra);transform:translate(-2px,-2px)}
.card:hover{background:var(--ultra);color:var(--paper)}
.card:hover .tag,
.card:hover .num,
.card:hover .spec,
.card:hover .eyebrow,
.card:hover h3,
.card:hover p{color:var(--paper)}
.card:hover .tag{border-color:var(--paper)}
.card:hover .ico{stroke:var(--paper)}

/* ---------- 按钮 / 线框 ---------- */
.btn{
  display:inline-block;
  font-family:var(--mono);
  letter-spacing:1px;
  border:var(--line);
  background:var(--paper);
  color:var(--ink);
  padding:12px 26px;
  border-radius:var(--radius);
  cursor:pointer;
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
  font-size:15px;
}
.btn:hover{background:var(--ultra);color:var(--paper);box-shadow:var(--shadow-hard-sm);transform:translate(-1px,-1px)}
.btn.solid{background:var(--ultra);color:var(--paper)}
.btn.solid:hover{background:var(--ink);box-shadow:var(--shadow-hard-sm)}

/* ---------- 顶部导航 ---------- */
.hdr{
  position:sticky;top:0;z-index:50;
  background:var(--paper);
  border-bottom:var(--line);
}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{display:flex;align-items:center;gap:12px;font-weight:700;font-size:18px;letter-spacing:1px}
.logo small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:2px;font-weight:400;opacity:.7}
.logo-mark{flex:0 0 auto}
.nav{display:flex;gap:8px}
.nav a{
  font-family:var(--mono);
  font-size:14px;
  letter-spacing:1px;
  padding:9px 16px;
  border:var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  transition:background-color .16s ease,color .16s ease;
}
.nav a:hover{background:var(--ink);color:var(--paper)}
.nav a.active{background:var(--ultra);color:var(--paper);border-color:var(--ultra)}
.burger{
  display:none;
  width:46px;height:42px;
  border:var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  cursor:pointer;
  flex-direction:column;
  align-items:center;justify-content:center;
  gap:5px;
}
.burger span{display:block;width:22px;height:2px;background:var(--ink)}

/* ---------- 页头(内页) ---------- */
.phead{border-bottom:var(--line);padding:46px 0 34px;background:var(--paper)}
.crumb{font-family:var(--mono);font-size:13px;opacity:.7;margin-bottom:12px}
.crumb a:hover{color:var(--ultra)}
.phead h1{font-size:38px}

/* ---------- Hero ---------- */
.hero{border-bottom:var(--line);padding:64px 0 70px;background:var(--paper)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font-size:54px;line-height:1.1;margin:18px 0 20px}
.hero .lead{font-size:18px;max-width:520px;opacity:.85;margin-bottom:26px}
.hero .mono-note{
  font-family:var(--mono);font-size:13px;letter-spacing:1px;
  border-left:3px solid var(--ultra);padding:6px 0 6px 14px;margin-bottom:28px;opacity:.85;
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* 装裱图片：线框 + 白边距 */
.frame{
  border:var(--line-strong);
  background:var(--paper);
  padding:12px;
  border-radius:var(--radius);
  box-shadow:var(--shadow-hard);
}
.frame img{width:100%;height:340px;object-fit:cover;border:2px solid var(--ink);border-radius:2px}

/* ---------- 数据带 ---------- */
.databand{border-bottom:var(--line);padding:34px 0;background:var(--paper)}
.dabagrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.daitem{border:var(--line);border-radius:var(--radius);padding:18px 16px;text-align:center;background:var(--paper)}
.daitem:hover{background:var(--ultra);color:var(--paper)}
.data-num{font-size:34px;font-weight:700;display:block;line-height:1}
.data-lab{font-family:var(--mono);font-size:12px;letter-spacing:1px;opacity:.8;margin-top:8px;display:block}

/* ---------- 通用 section ---------- */
.sec{padding:66px 0}
.sec.alt{background:var(--paper);border-top:var(--line);border-bottom:var(--line)}

/* ---------- 产品分类 4 卡 ---------- */
.catgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.catcard{display:block;text-align:left}
.catcard .ico{width:38px;height:38px;stroke:var(--ink);fill:none;stroke-width:2;margin-bottom:14px}
.catcard h3{font-size:19px;margin-bottom:8px}
.catcard p{font-size:14px;opacity:.8}

/* ---------- 精选产品 6 卡 ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.pcard{padding:0;overflow:hidden;display:flex;flex-direction:column}
.pcard .ph{height:200px;overflow:hidden;border-bottom:var(--line)}
.pcard .ph img{width:100%;height:200px;object-fit:cover;filter:grayscale(.12)}
.pcard .body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.pcard .tag{
  align-self:flex-start;
  border:var(--line);border-radius:var(--radius);
  font-size:12px;padding:2px 10px;letter-spacing:1px;
}
.pcard h3{font-size:18px}
.pcard p{font-size:14px;opacity:.82;flex:1}
.pcard .spec{
  font-size:13px;letter-spacing:.5px;
  border-top:2px dashed var(--ink);padding-top:10px;margin-top:4px;
}
.pcard:hover .spec{border-top-color:var(--paper)}

/* ---------- 公司简介 ---------- */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.about-grid .frame img{height:380px}
.about-txt h2{font-size:30px;margin-bottom:16px}
.about-txt p{margin-bottom:14px;opacity:.88}

/* ---------- 检测流程步骤 ---------- */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--gap)}
.step{border:var(--line);border-radius:var(--radius);padding:20px 16px;background:var(--paper);position:relative}
.step-no{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border:var(--line-strong);border-radius:var(--radius);
  font-size:16px;font-weight:700;margin-bottom:12px;
}
.step:hover{background:var(--ultra);color:var(--paper);box-shadow:var(--shadow-hard-sm)}
.step:hover .step-no{border-color:var(--paper);color:var(--paper)}
.step h3{font-size:16px;margin-bottom:6px}
.step p{font-size:13px;opacity:.82}

/* ---------- 新闻 ---------- */
.newsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.ncard{padding:0;overflow:hidden;display:flex;flex-direction:column}
.ncard .nh{height:170px;overflow:hidden;border-bottom:var(--line)}
.ncard .nh img{width:100%;height:170px;object-fit:cover}
.ncard .body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}
.ncard .date{font-family:var(--mono);font-size:12px;letter-spacing:1px;color:var(--ultra)}
.ncard h3{font-size:17px}
.ncard p{font-size:13px;opacity:.82;flex:1}
.ncard .more{font-family:var(--mono);font-size:13px;letter-spacing:1px}
.ncard:hover .more{text-decoration:underline}

/* 新闻列表(内页) */
.newslist{display:flex;flex-direction:column;gap:var(--gap);margin-top:36px}
.newsrow{display:grid;grid-template-columns:260px 1fr;gap:24px;border:var(--line);border-radius:var(--radius);padding:16px;background:var(--paper);transition:background-color .18s,color .18s}
.newsrow img{width:100%;height:160px;object-fit:cover;border:2px solid var(--ink);border-radius:2px}
.newsrow:hover{background:var(--ultra);color:var(--paper)}
.newsrow:hover .date{color:var(--paper)}
.newsrow .date{font-family:var(--mono);font-size:12px;color:var(--ultra);margin-bottom:8px}
.newsrow h3{font-size:19px;margin-bottom:8px}
.newsrow p{font-size:14px;opacity:.85}

/* ---------- CTA ---------- */
.cta{background:var(--paper);border-top:var(--line);padding:60px 0}
.ctabox{border:var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-hard);padding:44px;text-align:center;background:var(--paper)}
.ctabox h2{font-size:30px;margin-bottom:12px}
.ctabox p{opacity:.85;margin-bottom:24px}

/* ---------- 联系页 ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.info li{list-style:none;border:var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;background:var(--paper)}
.info li b{font-family:var(--mono);letter-spacing:1px;display:block;margin-bottom:4px;color:var(--ultra)}
.form .field{margin-bottom:18px}
.form label{display:block;font-family:var(--mono);font-size:13px;letter-spacing:1px;margin-bottom:6px}
.form input,.form textarea,.form select{
  width:100%;font-family:var(--sans);font-size:15px;
  border:var(--line);border-radius:var(--radius);
  padding:12px 14px;background:var(--paper);color:var(--ink);
  transition:border-color .16s,box-shadow .16s;
}
.form input:focus,.form textarea:focus,.form select:focus{
  outline:none;border-color:var(--ultra);box-shadow:3px 3px 0 var(--ultra);
}
.form textarea{resize:vertical;min-height:120px}

/* ---------- 页脚 ---------- */
.ftr{border-top:var(--line);background:var(--paper);padding:50px 0 0}
.ftr .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:32px}
.ftr h4{font-family:var(--mono);font-size:14px;letter-spacing:1px;margin-bottom:14px;border-bottom:var(--line);padding-bottom:8px}
.ftr a{display:block;font-size:14px;padding:4px 0;opacity:.85}
.ftr a:hover{color:var(--ultra);opacity:1}
.ftr p{font-size:14px;opacity:.85}
.ftr .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;margin-bottom:12px}
.ftr .brand small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:2px;font-weight:400;opacity:.7}
.ftr .bottom{border-top:var(--line);margin-top:36px;padding:18px 0;text-align:center;font-family:var(--mono);font-size:13px;letter-spacing:1px}

/* =========================================================
   响应式断点：960 / 640
   ========================================================= */
@media (max-width:960px){
  .nav{
    position:absolute;top:74px;left:0;right:0;
    flex-direction:column;gap:0;
    background:var(--paper);
    border-bottom:var(--line);
    display:none;
  }
  .nav.open{display:flex}
  .nav a{border:none;border-top:var(--line);border-radius:0;text-align:center;padding:14px}
  .nav a.active{border-radius:0}
  .burger{display:flex}
  .hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:32px}
  .hero h1{font-size:42px}
  .dabagrid,.catgrid{grid-template-columns:repeat(2,1fr)}
  .pgrid,.newsgrid{grid-template-columns:repeat(2,1fr)}
  .flow{grid-template-columns:repeat(2,1fr)}
  .ftr .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .hero{padding:44px 0 50px}
  .hero h1{font-size:34px}
  .phead h1{font-size:28px}
  .sec{padding:46px 0}
  .sec-title{font-size:24px}
  .databand .dabagrid,.catgrid,.pgrid,.newsgrid,.flow,.ftr .grid{grid-template-columns:1fr}
  .frame img{height:240px}
  .about-grid .frame img{height:260px}
  .newsrow{grid-template-columns:1fr}
  .ctabox{padding:28px}
}

/* ===== CMS 共享：列表 / 详情 / 分页 / 表单 ===== */
.cms-page{padding:72px 0;}
.cms-page .container{max-width:1200px;margin:0 auto;padding:0 20px;}
.cms-page .cms-title{font-size:34px;font-weight:800;text-align:center;margin-bottom:8px;}
.cms-page .cms-subtitle{text-align:center;color:#888;margin-bottom:36px;}
.cms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px;}
.cms-card{display:block;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 26px rgba(0,0,0,.07);transition:.25s;text-decoration:none;color:inherit;}
.cms-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.12);}
.cms-card img{width:100%;height:200px;object-fit:cover;display:block;}
.cms-card h3{margin:0;padding:18px 18px 4px;font-size:18px;}
.cms-card p{padding:0 18px 18px;color:#777;font-size:14px;margin:0;}
.cms-detail{max-width:860px;margin:0 auto;padding:0 20px;}
.cms-detail img{max-width:100%;border-radius:14px;margin:18px 0;}
.cms-detail h1{font-size:34px;margin:10px 0 6px;}
.cms-detail .lead{color:#888;font-size:16px;}
.cms-content{line-height:1.9;color:#444;margin-top:18px;}
.cms-content img{max-width:100%;}
.cms-back{display:inline-block;margin:8px 0 18px;color:var(--c-primary,#e11d2e);text-decoration:none;font-weight:600;}
.cms-pager{margin:34px 0;text-align:center;}
.cms-pager a,.cms-pager span{padding:8px 14px;margin:0 3px;border-radius:8px;background:#fff;color:#444;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.cms-pager .active{background:var(--c-primary,#e11d2e);color:#fff;}
.contact-form{max-width:640px;margin:18px auto 0;display:grid;gap:14px;}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;padding:12px 14px;border:1px solid #e3e3e3;border-radius:10px;font-size:15px;font-family:inherit;}
.contact-form textarea{min-height:120px;resize:vertical;}
.btn-primary{background:var(--c-primary,#e11d2e);color:#fff;padding:12px 22px;border-radius:10px;font-weight:700;border:none;cursor:pointer;}
.form-alert{padding:12px 14px;border-radius:10px;margin-bottom:12px;font-size:14px;}
.form-alert-ok{background:#eafaf0;color:#1c7a43;}
.form-alert-err{background:#fdecea;color:#b42318;}
.form-alert-err ul{margin:6px 0 0;padding-left:18px;}
.ve-editable-bg{cursor:pointer;}
