/* 岱宗平台 · 视觉系统
   底色取宣纸，主色取岱宗墨，点缀取黄河金与海岱蓝 */

:root{
  --ink:#1b2a24;
  --ink-2:#3d4f46;
  --ink-3:#6b7d73;
  --paper:#f8f5ee;
  --paper-2:#f1ece0;
  --white:#fffdf8;
  --dz:#17392e;        /* 岱宗墨绿 */
  --dz-2:#235343;
  --qing:#2e7d5b;      /* 齐鲁青 */
  --gold:#b98c3c;      /* 黄河金 */
  --gold-l:#d9b978;
  --sea:#1d5b7d;       /* 海岱蓝 */
  --line:#e0d9c9;
  --shadow:0 10px 34px rgba(23,57,46,.09);
  --shadow-lg:0 22px 60px rgba(23,57,46,.14);
  --r:14px;
  --serif:"Songti SC","Source Han Serif SC","Noto Serif SC","STSong",Georgia,serif;
  --sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB",system-ui,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--ink);background:var(--paper);
  line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%}
.paper-grain{
  position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background-image:
    radial-gradient(circle at 18% 22%,rgba(185,140,60,.05),transparent 42%),
    radial-gradient(circle at 82% 78%,rgba(46,125,91,.05),transparent 46%);
}
main{position:relative;z-index:1}

/* ---------------- 顶栏 ---------------- */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;gap:26px;
  padding:16px clamp(18px,4vw,58px);
  transition:background .35s,box-shadow .35s,padding .35s;
}
.topbar.solid{
  background:rgba(248,245,238,.92);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line);padding:10px clamp(18px,4vw,58px);
}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.seal{
  width:42px;height:42px;display:grid;place-items:center;
  background:var(--dz);color:#f6efdd;border-radius:9px;
  font-family:var(--serif);font-size:23px;font-weight:700;letter-spacing:0;
  box-shadow:inset 0 0 0 1px rgba(246,239,221,.28),0 6px 16px rgba(23,57,46,.24);
}
.seal.sm{width:34px;height:34px;font-size:18px;border-radius:7px}
.brand-txt{display:flex;flex-direction:column;line-height:1.1}
.brand-txt b{font-family:var(--serif);font-size:21px;letter-spacing:.16em;color:var(--dz)}
.brand-txt i{font-style:normal;font-size:9.5px;letter-spacing:.34em;color:var(--ink-3)}

.nav{display:flex;gap:clamp(13px,1.7vw,26px);margin-left:auto;flex:0 0 auto}
.nav a{font-size:14.5px;color:var(--ink-2);position:relative;padding:4px 0;transition:color .2s;white-space:nowrap;flex:0 0 auto}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--gold);
  transition:width .28s;
}
.nav a:hover{color:var(--dz)}
.nav a:hover::after{width:100%}

/* 顶栏右侧：除搜索框外一律不收缩。
   不写 nowrap 的话，1440 宽度下 8 个导航把空间吃掉，「登录/注册/我要对接」
   会被压成竖排单字——这是本行最容易被忽略的排版事故。 */
.top-right{display:flex;align-items:center;gap:12px;margin-left:8px;flex:0 1 auto;min-width:0}
.q{display:flex;align-items:center;background:rgba(255,253,248,.75);border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 14px;flex:0 1 224px;min-width:132px;box-sizing:border-box}
.q input{border:0;background:transparent;outline:none;width:100%;min-width:0;flex:1 1 auto;font-size:13px;color:var(--ink);font-family:var(--sans)}
.q button{border:0;background:var(--dz);color:#f6efdd;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1}
.langsw{position:relative;font-size:12.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;background:rgba(255,253,248,.7);flex:0 0 auto;white-space:nowrap}
.langlist{position:absolute;right:0;top:calc(100% + 8px);background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:none;min-width:118px}
.langsw:hover .langlist{display:block}
.langlist a{display:block;padding:6px 10px;border-radius:6px;font-size:13px}
.langlist a:hover{background:var(--paper-2)}
.btn-line{border:1px solid var(--dz);color:var(--dz);padding:7px 17px;border-radius:999px;font-size:13.5px;transition:.22s;white-space:nowrap;flex:0 0 auto;display:inline-block}
.btn-line:hover{background:var(--dz);color:#f6efdd}
.burger{display:none;border:0;background:transparent;font-size:20px;color:var(--dz);cursor:pointer}

/* ---------------- HERO ---------------- */
.hero{position:relative;min-height:clamp(560px,88vh,860px);display:flex;align-items:center;overflow:hidden}
.hero-scene{position:absolute;inset:0;z-index:0}
.scene{width:100%;height:100%;display:block}
.hero-veil{
  position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(248,245,238,.92) 0%,rgba(248,245,238,.72) 34%,rgba(248,245,238,.22) 62%,transparent 88%);
}
.hero-in{position:relative;z-index:2;padding:120px clamp(18px,4vw,58px) 60px;max-width:790px}
.hero-kicker{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.14em;color:var(--dz-2);margin-bottom:22px}
.hero-kicker span{width:38px;height:1px;background:var(--gold)}
.hero-title{font-family:var(--serif);line-height:1.18;letter-spacing:.02em;margin-bottom:22px}
.hero-title .t1{display:block;font-size:clamp(38px,5.6vw,70px);color:var(--dz);font-weight:600}
.hero-title .t2{display:block;font-size:clamp(38px,5.6vw,70px);color:var(--dz);font-weight:600;position:relative}
.hero-title .t2::after{
  content:"";position:absolute;left:2px;bottom:-6px;width:min(58%,340px);height:4px;
  background:linear-gradient(90deg,var(--gold),rgba(185,140,60,0));border-radius:2px;
}
.hero-sub{font-size:clamp(15px,1.5vw,17px);color:var(--ink-2);max-width:620px;margin-bottom:34px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:46px}
.btn-primary{
  display:inline-flex;align-items:center;gap:9px;background:var(--dz);color:#f7f1e2;
  padding:14px 30px;border-radius:999px;font-size:15px;font-weight:500;
  box-shadow:0 12px 28px rgba(23,57,46,.24);transition:.26s;
}
.btn-primary em{font-style:normal;transition:transform .26s}
.btn-primary:hover{background:var(--dz-2);transform:translateY(-2px)}
.btn-primary:hover em{transform:translateX(4px)}
.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(23,57,46,.32);color:var(--dz);
  padding:14px 28px;border-radius:999px;font-size:15px;transition:.26s;background:rgba(255,253,248,.5)
}
.btn-ghost:hover{background:var(--white);border-color:var(--dz)}
.hero-stats{display:flex;gap:clamp(18px,3.4vw,46px);flex-wrap:wrap}
.hero-stats div{display:flex;flex-direction:column;gap:2px;position:relative}
.hero-stats div+div::before{content:"";position:absolute;left:-16px;top:12%;height:76%;width:1px;background:var(--line)}
.hero-stats b{font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);color:var(--dz);line-height:1}
.hero-stats span{font-size:12px;color:var(--ink-3);letter-spacing:.06em}

/* ---------------- 通用区块 ---------------- */
.sec{padding:clamp(56px,7vw,96px) clamp(18px,4vw,58px);max-width:1320px;margin:0 auto}
.sec.band{background:var(--paper-2);max-width:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec.band > *{max-width:1320px;margin-left:auto;margin-right:auto}
.sec-head{margin-bottom:38px;max-width:760px}
.sec-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:none}
.sec-head h2{font-family:var(--serif);font-size:clamp(25px,3vw,36px);color:var(--dz);font-weight:600;letter-spacing:.02em;margin-bottom:10px}
.sec-head h2::before{content:"— ";color:var(--gold)}
.sec-head p{font-size:14.5px;color:var(--ink-2);max-width:700px}
.sec-more{font-size:13.5px;color:var(--dz);border-bottom:1px solid var(--gold);padding-bottom:2px;white-space:nowrap;flex-shrink:0}

/* 一键直达 */
.direct-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.dcard{
  position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 20px 20px;display:flex;flex-direction:column;gap:6px;transition:.26s;overflow:hidden;
}
.dcard::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--gold);transition:width .3s}
.dcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(185,140,60,.4)}
.dcard:hover::before{width:100%}
.dtag{
  width:34px;height:34px;border-radius:8px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--dz),var(--qing));color:#f6efdd;
  font-family:var(--serif);font-size:16px;margin-bottom:8px;
}
.dcard b{font-family:var(--serif);font-size:17.5px;color:var(--dz);font-weight:600}
.dcard i{font-style:normal;font-size:12.5px;color:var(--ink-3);line-height:1.6}
.dcard em{position:absolute;right:18px;bottom:18px;font-style:normal;color:var(--gold);opacity:0;transform:translateX(-6px);transition:.26s}
.dcard:hover em{opacity:1;transform:translateX(0)}
.direct-more{margin-top:24px;text-align:center}
.direct-more a{font-size:13.5px;color:var(--dz);border-bottom:1px solid var(--gold);padding-bottom:2px}

/* 四大能力 */
.abil{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ab{background:var(--paper-2);padding:30px 26px;position:relative;transition:.26s}
.ab:hover{background:var(--white)}
.abnum{font-family:var(--serif);font-size:13px;color:var(--gold);letter-spacing:.2em}
.ab h3{font-family:var(--serif);font-size:20px;color:var(--dz);margin:8px 0 10px;font-weight:600}
.ab p{font-size:13.6px;color:var(--ink-2);margin-bottom:14px}
.ab ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.ab li{font-size:12.6px;color:var(--ink-3);padding-left:14px;position:relative}
.ab li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--gold-l)}

/* 产业带卡 */
.clgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.clcard{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;
  display:flex;flex-direction:column;transition:.26s;position:relative;overflow:hidden;
}
.clcard::after{
  content:"";position:absolute;right:-30px;bottom:-30px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle,rgba(46,125,91,.07),transparent 68%);
}
.clcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(46,125,91,.35)}
.cltop{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.clreg{font-size:12px;color:var(--white);background:var(--dz);padding:3px 10px;border-radius:999px;letter-spacing:.04em}
.clsec{font-size:11.5px;color:var(--ink-3);background:var(--paper-2);padding:3px 9px;border-radius:999px}
.clcard h3{font-family:var(--serif);font-size:19.5px;color:var(--dz);margin-bottom:8px;font-weight:600}
.clprod{font-size:13px;color:var(--qing);margin-bottom:8px}
.clscale{font-size:12.8px;color:var(--ink-3);line-height:1.66;flex:1}
.clbot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:13px;border-top:1px dashed var(--line)}
.hs{font-size:11.5px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace}
.go{font-size:12.5px;color:var(--gold)}

/* 碳 */
.carbon-band{background:linear-gradient(180deg,#0f2b22,#17392e 40%,#1b4234);color:#e8e2d2;position:relative;overflow:hidden}
.carbon-band::before{
  content:"";position:absolute;inset:0;opacity:.16;
  background:radial-gradient(circle at 78% 18%,rgba(217,185,120,.5),transparent 40%),
             radial-gradient(circle at 12% 82%,rgba(46,125,91,.5),transparent 42%);
}
.carbon-band .sec-head{position:relative;z-index:1}
.carbon-band h2{color:#f2ecda}
.carbon-band h2::before{color:var(--gold-l)}
.carbon-band p{color:#b9c4ba}
.carbon-band .sec-more{color:var(--gold-l);border-color:rgba(217,185,120,.5)}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative;z-index:1}
.ccard{
  background:rgba(255,253,248,.055);border:1px solid rgba(217,185,120,.22);border-radius:12px;
  padding:22px 20px;transition:.26s;display:flex;flex-direction:column;gap:8px;
}
.ccard:hover{background:rgba(255,253,248,.11);border-color:rgba(217,185,120,.5);transform:translateY(-3px)}
.ccat{font-size:11.5px;color:var(--gold-l);letter-spacing:.1em;border:1px solid rgba(217,185,120,.35);align-self:flex-start;padding:2px 9px;border-radius:999px}
.ccard h3{font-family:var(--serif);font-size:18px;color:#f4eedd;font-weight:600}
.ccard p{font-size:12.8px;color:#a9b6ad;flex:1}
.ccard em{font-style:normal;font-size:12.5px;color:var(--gold-l)}

/* 流程 */
.flow{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:f}
.flow li{
  counter-increment:f;position:relative;padding:0 22px 0 0;
}
.flow li::before{
  content:counter(f,decimal-leading-zero);font-family:var(--serif);font-size:13px;color:var(--gold);
  display:block;margin-bottom:10px;letter-spacing:.14em;
}
.flow li::after{
  content:"";position:absolute;left:0;top:34px;right:22px;height:1px;
  background:linear-gradient(90deg,var(--line),transparent);
}
.flow li:last-child::after{display:none}
.flow b{display:block;font-family:var(--serif);font-size:16.5px;color:var(--dz);margin-bottom:6px;font-weight:600}
.flow span{font-size:12.8px;color:var(--ink-3);line-height:1.66}

/* CTA */
.cta-band{
  background:var(--paper-2);border-top:1px solid var(--line);
  padding:clamp(52px,7vw,86px) clamp(18px,4vw,58px);text-align:center;
}
.cta-in{max-width:760px;margin:0 auto}
.cta-band h2{font-family:var(--serif);font-size:clamp(23px,2.8vw,33px);color:var(--dz);margin-bottom:14px;font-weight:600;line-height:1.4}
.cta-band p{font-size:14.5px;color:var(--ink-2);margin-bottom:30px}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------------- 页脚 ---------------- */
.foot{background:#0f2b22;color:#a9b6ad;padding:56px clamp(18px,4vw,58px) 26px;position:relative;z-index:1}
.foot-in{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px}
.fbrand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.fbrand b{font-family:var(--serif);font-size:17px;color:#f2ecda;letter-spacing:.06em}
.fquote{font-family:var(--serif);font-size:15px;color:var(--gold-l);margin-bottom:8px}
.fdesc{font-size:12.8px;line-height:1.8}
.fcol h5{font-size:12px;letter-spacing:.18em;color:#7f9188;margin-bottom:14px;font-weight:500}
.fcol a,.fcol p{display:block;font-size:13px;margin-bottom:8px;transition:color .2s}
.fcol a:hover{color:var(--gold-l)}
.muted{color:#7f9188}
.foot-bot{
  max-width:1320px;margin:38px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11.6px;line-height:1.7;
}
.foot-bot .muted{max-width:720px}

/* ---------------- 内页通用 ---------------- */
.page-head{
  padding:clamp(110px,13vw,160px) clamp(18px,4vw,58px) 40px;
  background:linear-gradient(180deg,#eef0e5,var(--paper));border-bottom:1px solid var(--line);
}
.page-head-in{max-width:1320px;margin:0 auto}
.crumb{font-size:12.5px;color:var(--ink-3);margin-bottom:16px;display:flex;gap:8px;flex-wrap:wrap}
.crumb a{color:var(--ink-2)}
.crumb a:hover{color:var(--dz)}
.page-head h1{font-family:var(--serif);font-size:clamp(28px,3.6vw,44px);color:var(--dz);font-weight:600;margin-bottom:14px;line-height:1.28}
.page-head .lead{font-size:15px;color:var(--ink-2);max-width:820px}

.wrap{padding:clamp(38px,5vw,64px) clamp(18px,4vw,58px);max-width:1320px;margin:0 auto}

/* 板块卡 */
.scgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.sccard{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px;transition:.26s;display:flex;flex-direction:column}
.sccard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(46,125,91,.35)}
.sccard .ico{width:40px;height:40px;border-radius:10px;background:var(--paper-2);display:grid;place-items:center;font-family:var(--serif);color:var(--dz);font-size:18px;margin-bottom:14px}
.sccard h3{font-family:var(--serif);font-size:19px;color:var(--dz);margin-bottom:4px;font-weight:600}
.sccard .tag{font-size:12px;color:var(--gold);margin-bottom:10px}
.sccard p{font-size:13px;color:var(--ink-3);flex:1;line-height:1.7}
.sccard .foot-row{margin-top:16px;padding-top:12px;border-top:1px dashed var(--line);font-size:12px;color:var(--ink-3);display:flex;justify-content:space-between}

/* 详情双栏 */
.two{display:grid;grid-template-columns:1fr 330px;gap:38px;align-items:start}
.side{position:sticky;top:92px;display:flex;flex-direction:column;gap:16px}
.sidebox{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px}
.sidebox h4{font-family:var(--serif);font-size:15px;color:var(--dz);margin-bottom:12px;font-weight:600}
.sidebox a{display:block;font-size:13px;color:var(--ink-2);padding:6px 0;border-bottom:1px dashed var(--line)}
.sidebox a:last-child{border:0}
.sidebox a:hover{color:var(--qing)}

.prose h3{font-family:var(--serif);font-size:21px;color:var(--dz);margin:30px 0 12px;font-weight:600}
.prose h3:first-child{margin-top:0}
.prose p{font-size:14.5px;color:var(--ink-2);margin-bottom:14px}
.kv{display:grid;grid-template-columns:110px 1fr;gap:10px 16px;font-size:13.6px}
.kv dt{color:var(--ink-3)}
.kv dd{color:var(--ink);line-height:1.7}

.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{font-size:12.5px;background:var(--paper-2);border:1px solid var(--line);color:var(--ink-2);padding:5px 12px;border-radius:999px}
.chip.gold{background:rgba(185,140,60,.09);border-color:rgba(185,140,60,.3);color:#8d6a28}

.notice{background:rgba(185,140,60,.08);border-left:3px solid var(--gold);padding:14px 18px;border-radius:0 8px 8px 0;font-size:13px;color:#6d5620;margin:16px 0}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:13.4px;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.tbl th{background:var(--paper-2);text-align:left;padding:11px 14px;font-weight:500;color:var(--ink-2);font-size:12.5px;letter-spacing:.04em;border-bottom:1px solid var(--line)}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:hover td{background:rgba(241,236,224,.5)}

/* 表单 */
.form{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,3vw,40px);max-width:760px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.fl{display:flex;flex-direction:column;gap:6px}
.fl label{font-size:12.5px;color:var(--ink-3)}
.fl input,.fl select,.fl textarea{
  border:1px solid var(--line);border-radius:8px;padding:10px 13px;font-size:14px;font-family:var(--sans);
  background:var(--paper);outline:none;transition:.2s;color:var(--ink);
}
.fl input:focus,.fl select:focus,.fl textarea:focus{border-color:var(--qing);background:var(--white)}
.fl textarea{min-height:110px;resize:vertical}
.ok{background:rgba(46,125,91,.1);border:1px solid rgba(46,125,91,.3);color:#1d5c42;padding:12px 16px;border-radius:8px;font-size:13.5px;margin-bottom:18px}

/* 搜索结果 */
.sres{margin-bottom:34px}
.sres h3{font-family:var(--serif);font-size:18px;color:var(--dz);margin-bottom:14px}
.sitem{display:block;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:15px 18px;margin-bottom:10px;transition:.2s}
.sitem:hover{border-color:var(--qing);transform:translateX(3px)}
.sitem b{display:block;font-size:15px;color:var(--dz);margin-bottom:3px}
.sitem span{font-size:12.5px;color:var(--ink-3)}

.empty{text-align:center;padding:70px 20px;color:var(--ink-3);font-size:14px}

/* 响应式 */
/* 1366 笔记本是政务/企业采购最常用的分辨率：搜索框收成图标按钮，
   把宽度让给导航与登录/注册，避免出现横向滚动 */
@media(max-width:1366px){
  .topbar{gap:18px}
  .nav{gap:15px}
  .nav a{font-size:13.5px}
  .q{padding:3px;flex:0 0 auto;min-width:0}
  .q input{display:none}
  .btn-line{padding:6px 14px;font-size:13px}
}
@media(max-width:1180px){
  .topbar{gap:14px}
  .nav{gap:12px}
  .nav a{font-size:13px}
  .q{display:none}
}
@media(max-width:1080px){
  .direct-grid{grid-template-columns:repeat(2,1fr)}
  .abil{grid-template-columns:repeat(2,1fr)}
  .clgrid,.cgrid,.scgrid{grid-template-columns:repeat(2,1fr)}
  .flow{grid-template-columns:repeat(2,1fr);gap:26px}
  .flow li::after{display:none}
  .two{grid-template-columns:1fr}
  .side{position:static}
  .foot-in{grid-template-columns:1fr 1fr}
  /* 移动端不再藏掉导航：头部保持单行、高度不变，8 个入口横向可滑；
     印章留、文字标隐藏，把宽度让给导航，右侧语言与对接按钮必须留在屏内 */
  .topbar{gap:10px;padding:12px 14px}
  .brand-txt{display:none}
  .nav{display:flex;flex:1 1 auto;min-width:0;gap:15px;margin-left:0;max-width:none;
       overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav a{font-size:13px;white-space:nowrap;flex:0 0 auto}
  .top-right{gap:8px;margin-left:0;flex:0 0 auto}
  .btn-line{padding:6px 12px;font-size:12.5px}
  .langsw{padding:5px 9px;font-size:12px}
  .q{display:none}
}
@media(max-width:680px){
  .direct-grid,.clgrid,.cgrid,.scgrid,.abil{grid-template-columns:1fr}
  .hero-in{padding-top:104px}
  .hero-stats{gap:20px}
  .hero-stats div+div::before{display:none}
  .frow{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .sec-head.row{flex-direction:column;align-items:flex-start}
  .kv{grid-template-columns:1fr}
}

/* 多语言提示条：仅当该语言未覆盖正文时出现 */
.langnote{
  background:rgba(185,140,60,.1);border-bottom:1px solid rgba(185,140,60,.25);
  color:#7a5f22;font-size:12.5px;text-align:center;padding:8px 16px;line-height:1.6;
}

/* ---------------- 智能导览 ---------------- */
.guide{position:fixed;right:24px;bottom:24px;z-index:90}
.guide-btn{
  display:flex;align-items:center;gap:8px;border:0;cursor:pointer;
  background:var(--dz);color:#f6efdd;border-radius:999px;padding:13px 22px;
  font-size:14px;font-family:var(--sans);box-shadow:0 14px 34px rgba(23,57,46,.3);
  transition:.25s;
}
.guide-btn:hover{background:var(--dz-2);transform:translateY(-2px)}
.gdot{width:7px;height:7px;border-radius:50%;background:var(--gold-l);box-shadow:0 0 0 0 rgba(217,185,120,.7);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(217,185,120,.6)}70%{box-shadow:0 0 0 12px rgba(217,185,120,0)}100%{box-shadow:0 0 0 0 rgba(217,185,120,0)}}
.guide-panel{
  position:absolute;right:0;bottom:64px;width:332px;background:var(--white);
  border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 64px rgba(23,57,46,.22);
  overflow:hidden;
}
.gp-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;background:var(--dz);color:#f4eedd}
.gp-head b{font-family:var(--serif);font-size:15.5px;font-weight:600}
.gp-close{background:transparent;border:0;color:#c9d3c9;font-size:20px;cursor:pointer;line-height:1}
.gp-body{padding:16px 18px 18px}
.gp-body label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-3);margin-bottom:12px}
.gp-body select{
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13.5px;
  font-family:var(--sans);background:var(--paper);color:var(--ink);outline:none;
}
.gp-body select:focus{border-color:var(--qing)}
.gp-go{
  width:100%;border:0;border-radius:9px;background:var(--dz);color:#f6efdd;
  padding:11px;font-size:14px;cursor:pointer;font-family:var(--sans);transition:.22s;
}
.gp-go:hover{background:var(--dz-2)}
.gp-out{margin-top:14px;font-size:13px;color:var(--ink-2);line-height:1.8}
.gp-out a{display:block;color:var(--qing);border-bottom:1px dashed var(--line);padding:7px 0}
.gp-out a:hover{color:var(--gold)}
.gp-out .tip{font-size:12px;color:var(--ink-3);margin-bottom:6px}
.gp-note{font-size:11.5px;color:var(--ink-3);line-height:1.66;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
@media(max-width:680px){.guide{right:14px;bottom:14px}.guide-panel{width:min(88vw,332px)}}

/* ================= 合约验真 / 运营台（R564） ================= */
.err{background:rgba(178,58,48,.09);border:1px solid rgba(178,58,48,.32);color:#8d2b21;
  padding:12px 16px;border-radius:8px;font-size:13.5px;margin-bottom:18px}

.verify-form{display:flex;gap:10px;max-width:620px;margin:0 0 28px}
.verify-form input{flex:1;border:1px solid var(--line);border-radius:9px;padding:12px 15px;
  font-size:14.5px;font-family:var(--sans);background:var(--white);outline:none;letter-spacing:.04em}
.verify-form input:focus{border-color:var(--qing)}
.verify-form .btn-primary{white-space:nowrap;padding:12px 24px}

.vcard{border:1px solid var(--line);border-radius:var(--r);background:var(--white);
  padding:clamp(22px,3vw,34px);max-width:760px;box-shadow:var(--shadow);margin-bottom:26px}
.ok-v{border-left:3px solid var(--qing)}
.no-v{border-left:3px solid #b23a30}
.no-v b{font-family:var(--serif);font-size:17px;color:#8d2b21}
.no-v p{font-size:13.5px;color:var(--ink-3);margin-top:8px;line-height:1.8}
.vhead{display:flex;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:16px;
  border-bottom:1px dashed var(--line)}
.vhead b{font-family:var(--serif);font-size:19px;letter-spacing:.06em}
.vtag{background:rgba(46,125,91,.12);color:#1d5c42;font-size:11.5px;padding:3px 10px;
  border-radius:999px;letter-spacing:.04em}
.vcard dl{display:grid;grid-template-columns:120px 1fr;gap:10px 16px;font-size:14px}
.vcard dt{color:var(--ink-3);font-size:13px}
.vcard dd{color:var(--ink)}
.vnote{max-width:760px;font-size:13.5px;color:var(--ink-2);line-height:1.9}
.vnote h4{font-family:var(--serif);font-size:15.5px;margin-bottom:10px;color:var(--dz)}
.vnote ol{padding-left:20px}
.vnote li{margin-bottom:6px}

.ops{max-width:1360px;margin:0 auto;padding:104px 22px 90px}  /* 顶栏是 fixed，必须留出高度，否则标题被压住 */
.ops-head{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;
  padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.ops-head h1{font-family:var(--serif);font-size:26px;color:var(--dz);margin-bottom:6px}
.ops-head p{font-size:13px;color:var(--ink-3)}
.ops-kpi{display:flex;gap:22px;flex-wrap:wrap}
.ops-kpi div{text-align:right}
.ops-kpi b{display:block;font-family:var(--serif);font-size:22px;color:var(--dz);line-height:1.2}
.ops-kpi span{font-size:11.5px;color:var(--ink-3)}
.ops-kpi .hot b{color:#b23a30}
.ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.opsbox{background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 22px;box-shadow:var(--shadow);overflow:hidden}
.opsbox h2{font-family:var(--serif);font-size:16px;color:var(--dz);margin-bottom:14px;
  display:flex;align-items:center;gap:8px}
.opsbox h2 em{font-style:normal;font-size:12px;background:var(--paper-2);color:var(--ink-3);
  padding:2px 8px;border-radius:999px}
.ops-tb{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px}
.ops-tb th{text-align:left;font-weight:500;color:var(--ink-3);font-size:11.5px;
  padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.ops-tb td{padding:8px;border-bottom:1px dashed var(--line);vertical-align:top;color:var(--ink-2)}
.ops-tb tr:last-child td{border-bottom:0}
.ops-tb .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;letter-spacing:-.01em}
.ops-tb .wide{max-width:260px}
.ops-tb td i{display:block;font-style:normal;color:var(--ink-3);font-size:11px;margin-top:2px}
.ops-tb a{color:var(--qing);border-bottom:1px dashed var(--line)}
.ops-tb select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:11.5px;
  background:var(--paper);font-family:var(--sans);color:var(--ink);outline:none}
.inline{display:inline}
.chip{border:1px solid var(--qing);color:var(--qing);background:transparent;border-radius:999px;
  padding:3px 11px;font-size:11.5px;cursor:pointer;font-family:var(--sans)}
.chip:hover{background:var(--qing);color:#fff}
.chip.done{border-color:var(--line);color:var(--ink-3);cursor:default}
.ops-form{display:flex;flex-direction:column;gap:9px;margin-bottom:18px;
  padding-bottom:18px;border-bottom:1px dashed var(--line)}
.ops-form input,.ops-form select{border:1px solid var(--line);border-radius:7px;padding:8px 10px;
  font-size:12.5px;font-family:var(--sans);background:var(--paper);color:var(--ink);outline:none;width:100%}
.ops-form input:focus,.ops-form select:focus{border-color:var(--qing);background:var(--white)}
.of-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ops-form .btn-line{align-self:flex-start;cursor:pointer;font-family:var(--sans);background:transparent}
.of-note{font-size:11px;color:var(--ink-3);line-height:1.7}
.empty{font-size:12.5px;color:var(--ink-3);padding:10px 0}
.ops-foot{margin-top:24px;font-size:12.5px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace}
@media(max-width:1080px){.ops-grid{grid-template-columns:1fr}}
@media(max-width:680px){
  .vcard dl{grid-template-columns:1fr;gap:4px 0}
  .vcard dt{margin-top:8px}
  .ops-kpi{width:100%;justify-content:space-between;gap:12px}
  .ops-kpi div{text-align:left}
}

/* 详情页底部行动区（R564） */
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.cta-row .btn-primary,.cta-row .btn-line{padding:12px 26px;font-size:14px}
.cta-note{margin-top:12px;font-size:12.5px;color:var(--ink-3);line-height:1.75}

/* 发信通道状态条（R564） */
.mailrow{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--ink-2)}
.mailrow b{color:var(--dz);font-weight:600}
.mstat{font-size:11.5px;padding:4px 12px;border-radius:999px;letter-spacing:.02em}
.mstat.on{background:rgba(46,125,91,.12);color:#1d5c42}
.mstat.off{background:rgba(178,58,48,.09);color:#8d2b21}
.of-note code{font-family:ui-monospace,Menlo,monospace;background:var(--paper-2);padding:1px 5px;border-radius:4px;font-size:11.5px}

/* ================= 四大引擎（R564） ================= */
.eng-stat{display:flex;gap:34px;flex-wrap:wrap;padding:22px 0 26px;border-bottom:1px solid var(--line);margin-bottom:28px}
.eng-stat div b{display:block;font-family:var(--serif);font-size:26px;color:var(--dz);line-height:1.2}
.eng-stat div span{font-size:12px;color:var(--ink-3)}
.eng-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:34px}
.engcard{position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 26px 22px;box-shadow:var(--shadow);transition:.26s;display:block}
.engcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(185,140,60,.42)}
.engcard .etag{position:absolute;right:22px;top:22px;font-family:var(--serif);font-size:12px;
  color:var(--gold);letter-spacing:.1em}
.engcard h3{font-family:var(--serif);font-size:19px;color:var(--dz);margin-bottom:10px}
.engcard p{font-size:13.4px;color:var(--ink-2);line-height:1.82;margin-bottom:12px}
.engcard ul{list-style:none;font-size:12.6px;color:var(--ink-3);line-height:1.9;margin-bottom:14px}
.engcard ul li{padding-left:14px;position:relative}
.engcard ul li::before{content:"·";position:absolute;left:2px;color:var(--gold);font-weight:700}
.engcard ul b{color:var(--dz)}
.engcard em{font-style:normal;font-size:12.5px;color:var(--qing)}
.engcard:hover em{color:var(--gold)}
.eng-note{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--qing);
  border-radius:10px;padding:22px 26px;margin-bottom:26px}
.eng-note h3{font-family:var(--serif);font-size:16px;color:var(--dz);margin-bottom:12px}
.eng-note ul{list-style:none;font-size:13px;color:var(--ink-2);line-height:1.9}
.eng-note ul li{padding-left:16px;position:relative;margin-bottom:6px}
.eng-note ul li::before{content:"—";position:absolute;left:0;color:var(--gold)}
.eng-note code{font-family:ui-monospace,Menlo,monospace;background:var(--paper-2);padding:1px 5px;border-radius:4px;font-size:12px}

.calc-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}
.calc-form{background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:26px;box-shadow:var(--shadow)}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.calc-form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-3)}
.calc-form input,.calc-form select{border:1px solid var(--line);border-radius:8px;padding:10px 12px;
  font-size:13.5px;font-family:var(--sans);background:var(--paper);color:var(--ink);outline:none;width:100%}
.calc-form input:focus,.calc-form select:focus{border-color:var(--qing);background:var(--white)}
.cf-check{flex-direction:row!important;align-items:center;gap:8px;font-size:12.8px;color:var(--ink-2);
  margin:4px 0 16px}
.cf-check input{width:auto}
.cf-tip{font-size:11.8px;color:var(--ink-3);line-height:1.8;margin-top:12px;padding-top:12px;
  border-top:1px dashed var(--line)}
.calc-out{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:26px;min-height:280px}
.cres-empty{display:flex;flex-direction:column;justify-content:center;height:100%;text-align:center;
  font-size:13.5px;color:var(--ink-2);gap:10px}
.cres-empty .muted{font-size:12px;color:var(--ink-3);max-width:300px;margin:0 auto;line-height:1.8}
.cres-main{text-align:center;padding-bottom:18px;border-bottom:1px dashed var(--line);margin-bottom:16px}
.cres-main span{display:block;font-size:12px;color:var(--ink-3);letter-spacing:.1em}
.cres-main b{font-family:var(--serif);font-size:42px;color:var(--dz);line-height:1.15;display:block}
.cres-main i{font-style:normal;font-size:13px;color:var(--gold);letter-spacing:.06em}
.cres-sub{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}
.cres-sub div{text-align:center;flex:1}
.cres-sub span{display:block;font-size:11.5px;color:var(--ink-3)}
.cres-sub b{font-family:var(--serif);font-size:17px;color:var(--dz-2)}
.cres-params{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:12.6px;
  padding:14px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);margin-bottom:14px}
.cres-params dt{color:var(--ink-3)}
.cres-params dd{color:var(--ink);font-family:ui-monospace,Menlo,monospace;font-size:12px}
.cres-basis{font-size:11.6px;color:var(--ink-3);line-height:1.8;margin-bottom:14px}
.cres-saved{font-size:12px;color:var(--qing);margin-bottom:12px}
.cres-advice h4{font-size:12.5px;color:var(--dz);margin-bottom:6px}
.cres-advice ul{list-style:none;font-size:12.4px;color:var(--ink-2);line-height:1.85}
.cres-advice ul li{padding-left:14px;position:relative;margin-bottom:4px}
.cres-advice ul li::before{content:"→";position:absolute;left:0;color:var(--gold);font-size:11px}
.cres-warn{margin-top:14px;background:rgba(178,58,48,.06);border:1px solid rgba(178,58,48,.22);
  border-radius:8px;padding:12px 14px;font-size:12px;color:#8d2b21;line-height:1.8}
.settle-out{margin-top:24px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:24px;box-shadow:var(--shadow)}
.so-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:12px;
  margin-bottom:14px;border-bottom:1px dashed var(--line)}
.so-head b{font-family:var(--serif);font-size:18px;color:var(--dz)}
.so-head span{font-size:12px;color:var(--ink-3)}
.settle-out h4{font-family:var(--serif);font-size:14px;color:var(--dz);margin:16px 0 8px}
.so-reasons{list-style:none;font-size:12.8px;color:var(--ink-2);line-height:1.85}
.so-reasons li{padding-left:14px;position:relative;margin-bottom:5px}
.so-reasons li::before{content:"!";position:absolute;left:0;color:var(--gold);font-weight:700}
.so-note{font-size:11.8px;color:var(--ink-3);line-height:1.8;margin-top:14px;padding-top:12px;
  border-top:1px dashed var(--line)}
.empty{font-size:13px;color:var(--ink-3)}
@media(max-width:1080px){.eng-grid,.calc-wrap{grid-template-columns:1fr}}
@media(max-width:680px){
  .cf-row{grid-template-columns:1fr}
  .eng-stat{gap:20px}
  .eng-stat div b{font-size:21px}
  .cres-main b{font-size:34px}
}

/* ==================================================================
   R565 首页实景改版：泰山真容 + 一山一水一圣人 + 26 板块 + 全球商会
   设计原则：明暗必须分明 —— 暗区压到 #0a1a14，亮区用宣纸 #f8f5ee，
   中间不留灰蒙蒙的过渡；每个区块只用一个主色，靠留白和字重做层次。
   ================================================================== */

/* ---------- 1. 首屏：泰山实景 ---------- */
.hero-photo{
  position:relative;min-height:clamp(620px,94vh,920px);
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;background:#0a1a14;isolation:isolate;
}
.hp-media{
  position:absolute;inset:-2%;z-index:0;
  background-image:var(--hero);background-size:cover;background-position:center 40%;
  background-repeat:no-repeat;
  animation:heroDrift 30s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes heroDrift{
  from{transform:scale(1.02) translate3d(0,0,0)}
  to{transform:scale(1.10) translate3d(-1.4%,-1.8%,0)}
}
/* 遮罩是本页最关键的一层：上压顶栏、中透山形、下压文字 */
.hp-veil{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,
      rgba(6,17,12,.82) 0%,
      rgba(6,17,12,.40) 16%,
      rgba(6,17,12,.14) 38%,
      rgba(6,17,12,.22) 50%,
      rgba(6,17,12,.52) 70%,
      rgba(6,17,12,.88) 90%,
      rgba(6,17,12,.96) 100%),
    linear-gradient(94deg,
      rgba(6,17,12,.74) 0%,
      rgba(6,17,12,.34) 40%,
      rgba(6,17,12,.02) 74%);
}
.hp-grain{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.12;
  background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.32) 1px,transparent 0);
  background-size:3px 3px;mix-blend-mode:overlay;
}
.hp-in{
  position:relative;z-index:3;
  padding:0 clamp(20px,4.6vw,72px);
  max-width:1080px;
}
.hp-kicker{
  display:flex;align-items:center;gap:13px;
  font-size:clamp(11.5px,1.15vw,13px);letter-spacing:.22em;
  color:rgba(232,222,196,.92);margin-bottom:24px;font-weight:400;
}
.hpline{width:44px;height:1px;background:var(--gold-l);flex-shrink:0}
.hp-title{font-family:var(--serif);line-height:1.08;letter-spacing:.03em;margin-bottom:24px}
.hp-title .t1,.hp-title .t2{
  display:block;font-size:clamp(40px,6.6vw,90px);font-weight:600;
  color:#fdfbf5;text-shadow:0 3px 26px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.5);
}
.hp-title .t2{
  background:linear-gradient(100deg,#fdfbf5 10%,#f0d9a8 52%,#d9b978 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  text-shadow:none;filter:drop-shadow(0 3px 22px rgba(0,0,0,.6));
}
.hp-sub{
  font-size:clamp(14px,1.55vw,17.5px);color:rgba(238,236,226,.90);
  max-width:640px;line-height:1.92;margin-bottom:34px;
  text-shadow:0 1px 12px rgba(0,0,0,.6);
}
.hp-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn-primary.lg{padding:15px 34px;font-size:15px}
.btn-glass{
  display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:8px;
  border:1px solid rgba(240,232,210,.52);color:#f7f3e7;font-size:14.5px;
  background:rgba(255,255,255,.07);backdrop-filter:blur(10px);
  transition:.24s;cursor:pointer;
}
.btn-glass:hover{background:rgba(255,255,255,.17);border-color:rgba(240,232,210,.9);transform:translateY(-2px)}

/* 右侧竖排印章 */
.hp-seal{
  position:absolute;right:clamp(20px,4vw,64px);top:50%;transform:translateY(-50%);
  z-index:3;display:flex;flex-direction:column;gap:6px;
  writing-mode:vertical-rl;font-family:var(--serif);font-size:clamp(18px,2vw,26px);
  color:rgba(240,232,210,.30);letter-spacing:.34em;
  border-right:1px solid rgba(240,232,210,.16);padding-right:16px;
  pointer-events:none;user-select:none;
}
.hp-seal span{display:block}

/* 底部数据条 */
.hp-stats{
  position:relative;z-index:3;
  display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,44px);
  padding:22px clamp(20px,4.6vw,72px) 26px;
  margin-top:44px;
  border-top:1px solid rgba(240,232,210,.20);
  background:linear-gradient(180deg,rgba(6,17,12,0),rgba(6,17,12,.44));
}
.hp-stats div{display:flex;flex-direction:column;gap:3px;min-width:76px}
.hp-stats b{
  font-family:var(--serif);font-size:clamp(20px,2.5vw,30px);
  color:#f7f3e7;line-height:1;letter-spacing:.01em;
}
.hp-stats span{font-size:11.5px;color:rgba(214,208,190,.80);letter-spacing:.10em}

.hp-scroll{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:4;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  font-size:10.5px;letter-spacing:.20em;color:rgba(230,224,206,.66);
}
.hp-scroll i{
  width:1px;height:26px;background:linear-gradient(180deg,rgba(230,224,206,.7),transparent);
  animation:scPulse 2.1s ease-in-out infinite;
}
@keyframes scPulse{0%,100%{opacity:.35;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}

/* ---------- 2. 一山一水一圣人 ---------- */
.triad{background:var(--paper);padding:clamp(62px,7.4vw,104px) clamp(18px,4vw,58px)}
.triad-in{max-width:1320px;margin:0 auto}
.sec-head.center{text-align:center;max-width:820px;margin:0 auto clamp(38px,4.4vw,54px)}
.sec-head.center h2::before{content:"";}
.sec-head.center p{margin:0 auto}
.eyebrow{
  display:inline-block;font-size:11.5px;letter-spacing:.24em;color:var(--gold);
  margin-bottom:14px;text-transform:uppercase;
}
.triad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
.tdc{
  position:relative;display:block;height:clamp(390px,44vw,530px);
  border-radius:var(--r);overflow:hidden;background:var(--dz);
  box-shadow:var(--shadow);transition:.34s;
}
.tdc:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.tdc-img{
  position:absolute;inset:0;background-image:var(--img);
  background-size:cover;background-position:center;
  transition:transform .95s cubic-bezier(.2,.7,.3,1);
}
.tdc:hover .tdc-img{transform:scale(1.08)}
.tdc-mask{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,20,15,.05) 0%,rgba(8,20,15,.16) 34%,rgba(8,20,15,.72) 68%,rgba(8,20,15,.96) 100%);
}
.tdc-body{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,2.2vw,28px);color:#fff}
.tdc-tag{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:6px;margin-bottom:14px;
  font-family:var(--serif);font-size:19px;color:#0e2419;
  background:linear-gradient(150deg,#f2dfb4,#c9a35c);
  box-shadow:0 4px 16px rgba(0,0,0,.34);
}
.tdc-body h3{
  font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);
  color:#fdfbf5;margin-bottom:9px;letter-spacing:.05em;
}
.tdc-body p{
  font-size:13.2px;line-height:1.86;color:rgba(238,234,222,.88);
  margin-bottom:13px;max-width:94%;
}
.tdc-body em{
  font-style:normal;font-size:12.5px;color:var(--gold-l);
  border-bottom:1px solid rgba(217,185,120,.42);padding-bottom:2px;
}
.tdc:hover .tdc-body em{color:#f2dfb4;border-color:#f2dfb4}
.triad-note{
  margin-top:26px;text-align:center;font-size:11.8px;
  color:var(--ink-3);line-height:1.8;
}
.triad-note a{color:var(--qing);border-bottom:1px dashed var(--line)}

/* ---------- 3. 26 板块网格 ---------- */
.sect26-band{background:var(--paper-2)}
.sect26{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);
}
.s26{
  display:flex;flex-direction:column;gap:5px;position:relative;
  padding:19px 18px 17px;background:var(--white);transition:.24s;
}
.s26::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .3s;
}
.s26:hover{background:var(--dz)}
.s26:hover::after{transform:scaleY(1)}
.s26n{
  font-family:var(--serif);font-size:11.5px;color:var(--gold);
  letter-spacing:.12em;transition:.24s;
}
.s26 b{font-family:var(--serif);font-size:16.5px;color:var(--dz);font-weight:600;transition:.24s;line-height:1.42}
.s26 i{font-style:normal;font-size:11.5px;color:var(--ink-3);transition:.24s}
.s26:hover b{color:#fdfbf5}
.s26:hover i{color:rgba(230,224,206,.72)}
.s26:hover .s26n{color:var(--gold-l)}

/* ---------- 4. 全球山东商会 · 山东人大本营 ---------- */
.chamber-band{
  position:relative;overflow:hidden;
  background:linear-gradient(168deg,#0c2434 0%,#123a4e 42%,#0e2f42 72%,#081b26 100%);
  color:#e6eef3;padding:clamp(62px,7.4vw,104px) clamp(18px,4vw,58px);
}
.chamber-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.34;
  background-image:
    radial-gradient(circle at 12% 18%,rgba(185,140,60,.22),transparent 46%),
    radial-gradient(circle at 84% 76%,rgba(46,125,91,.24),transparent 50%);
}
.cb-in{position:relative;max-width:1320px;margin:0 auto}
.cb-head{max-width:860px;margin-bottom:clamp(30px,3.6vw,44px)}
.cb-kicker{
  display:inline-block;font-size:11.5px;letter-spacing:.24em;
  color:var(--gold-l);margin-bottom:16px;
}
.cb-head h2{
  font-family:var(--serif);font-size:clamp(26px,3.4vw,42px);
  color:#fdfbf5;line-height:1.34;font-weight:600;margin-bottom:18px;letter-spacing:.02em;
}
.cb-head p{font-size:14.2px;line-height:1.94;color:rgba(216,228,235,.86);max-width:760px}
.cb-stats{
  display:flex;flex-wrap:wrap;gap:clamp(22px,4vw,64px);
  padding:20px 0 26px;margin-bottom:clamp(28px,3.4vw,40px);
  border-top:1px solid rgba(200,220,232,.16);
  border-bottom:1px solid rgba(200,220,232,.16);
}
.cb-stats div{display:flex;flex-direction:column;gap:3px}
.cb-stats b{font-family:var(--serif);font-size:clamp(24px,3vw,34px);color:#f2dfb4;line-height:1}
.cb-stats span{font-size:11.5px;color:rgba(196,212,222,.78);letter-spacing:.08em}

.cb-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  gap:clamp(14px,1.8vw,24px);
}
.cb-group h4{
  font-family:var(--serif);font-size:13.5px;color:var(--gold-l);
  letter-spacing:.10em;margin-bottom:12px;padding-bottom:8px;
  border-bottom:1px solid rgba(200,220,232,.16);
  display:flex;justify-content:space-between;align-items:baseline;
}
.cb-group h4 em{
  font-style:normal;font-size:11px;color:rgba(196,212,222,.60);letter-spacing:0;
}
.cbcard{
  display:block;padding:11px 12px;border-radius:8px;margin-bottom:4px;
  border:1px solid transparent;transition:.22s;
}
.cbcard:hover{background:rgba(255,255,255,.07);border-color:rgba(217,185,120,.34);transform:translateX(3px)}
.cbcard b{display:block;font-size:13.2px;color:#f2f7fa;font-weight:500;line-height:1.5;margin-bottom:2px}
.cbcard span{display:block;font-size:11.2px;color:rgba(196,212,222,.70)}
.cbcard i{display:block;font-style:normal;font-size:11px;color:rgba(217,185,120,.86);margin-top:3px}
.cb-foot{
  margin-top:clamp(28px,3.4vw,42px);padding-top:24px;
  border-top:1px solid rgba(200,220,232,.16);
  display:flex;justify-content:space-between;align-items:center;
  gap:24px;flex-wrap:wrap;
}
.cb-foot p{font-size:12.4px;line-height:1.86;color:rgba(196,212,222,.74);max-width:680px}
.cb-foot b{color:#f2dfb4;font-weight:500}
.cb-btns{display:flex;gap:12px;flex-wrap:wrap}

/* 商会名录页 */
.cb-pagehead .cb-kpi{
  display:flex;flex-wrap:wrap;gap:clamp(20px,3.4vw,50px);
  margin-top:26px;padding-top:22px;border-top:1px solid var(--line);
}
.cb-pagehead .cb-kpi b{display:block;font-family:var(--serif);font-size:26px;color:var(--dz);line-height:1.1}
.cb-pagehead .cb-kpi span{font-size:11.5px;color:var(--ink-3)}
.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:34px}
.fchip{
  padding:6px 14px;border-radius:999px;border:1px solid var(--line);
  font-size:12.5px;color:var(--ink-2);background:var(--white);transition:.2s;
}
.fchip:hover{border-color:var(--qing);color:var(--qing)}
.fchip.on{background:var(--dz);border-color:var(--dz);color:#f7f3e7}
.cb-sec{margin-bottom:44px}
.cb-h2{
  font-family:var(--serif);font-size:19px;color:var(--dz);
  margin-bottom:16px;padding-left:13px;border-left:3px solid var(--gold);
  display:flex;align-items:baseline;gap:10px;
}
.cb-h2 em{font-style:normal;font-size:12px;color:var(--ink-3);font-family:var(--sans)}
.chgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px}
.chcard{
  display:block;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:18px 18px 15px;transition:.24s;
}
.chcard:hover{border-color:rgba(185,140,60,.48);transform:translateY(-4px);box-shadow:var(--shadow)}
.chtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.chflag{
  font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.10em;
  color:var(--gold);border:1px solid rgba(185,140,60,.38);border-radius:4px;
  padding:1px 6px;
}
.chst{font-size:10.5px;padding:2px 8px;border-radius:999px;letter-spacing:.03em}
.chst.official{background:rgba(46,125,91,.13);color:#1d5c42}
.chst.listed{background:rgba(29,91,125,.11);color:#1a5270}
.chst.preparing{background:rgba(185,140,60,.15);color:#8a6522}
.chst.claiming,.chst.verified{background:rgba(46,125,91,.13);color:#1d5c42}
.chcard h3{font-family:var(--serif);font-size:16px;color:var(--dz);font-weight:600;line-height:1.48;margin-bottom:4px}
.chen{font-size:11px;color:var(--ink-3);line-height:1.5;margin-bottom:8px}
.chmeta{font-size:12px;color:var(--ink-3);margin-bottom:7px}
.chchair{font-size:12.5px;color:var(--ink-2);margin-bottom:7px}
.chchair span{color:var(--ink-3);font-size:11px;margin-left:6px}
.chfocus{
  font-size:12.2px;color:var(--ink-3);line-height:1.7;
  padding-top:9px;border-top:1px dashed var(--line);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.chbot{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:10px;font-size:11px;color:var(--ink-3);
}
.chbot em{font-style:normal;color:var(--qing)}
.cb-notice{
  background:var(--white);border:1px solid var(--line);
  border-left:3px solid var(--qing);border-radius:10px;
  padding:24px 28px;margin-top:20px;
}
.cb-notice h3{font-family:var(--serif);font-size:16px;color:var(--dz);margin-bottom:12px}
.cb-notice ul{list-style:none;font-size:13px;color:var(--ink-2);line-height:1.92}
.cb-notice li{padding-left:16px;position:relative;margin-bottom:7px}
.cb-notice li::before{content:"—";position:absolute;left:0;color:var(--gold)}
.cb-notice a{color:var(--qing);border-bottom:1px dashed var(--line)}

/* ---------- 5. 详情页通用（商会/图片页也用它） ---------- */
.detail-grid{display:grid;grid-template-columns:1fr 316px;gap:clamp(20px,3vw,38px);align-items:start}
.detail-main{min-width:0}
.dblock{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(20px,2.6vw,30px);margin-bottom:18px;
}
.dblock h2{
  font-family:var(--serif);font-size:18px;color:var(--dz);
  margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--line);
}
.dtext{font-size:13.8px;color:var(--ink-2);line-height:1.94}
.dnote{
  margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);
  font-size:12.2px;color:var(--ink-3);line-height:1.82;
}
.dnote a{color:var(--qing);border-bottom:1px dashed var(--line)}
.dtable{width:100%;border-collapse:collapse;font-size:13.2px}
.dtable th{
  text-align:left;font-weight:400;color:var(--ink-3);font-size:12.5px;
  padding:8px 12px 8px 0;width:110px;vertical-align:top;
}
.dtable td{padding:8px 0;color:var(--ink);border-bottom:1px dashed var(--line)}
.dtable tr:last-child td{border-bottom:0}
.coop{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.coop-i{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:15px 16px}
.coop-i b{display:block;font-size:13px;color:var(--dz);margin-bottom:7px;font-weight:600}
.coop-i p{font-size:12.4px;color:var(--ink-3);line-height:1.8}
.detail-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:14px}
.wrap.narrow{max-width:860px}

/* ---------- 6. 图片来源页 ---------- */
.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-bottom:34px}
.pcard{
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;margin:0;
}
.pcard img{width:100%;height:172px;object-fit:cover;display:block;background:var(--paper-2)}
.pcard figcaption{padding:14px 16px 16px}
.pcard figcaption > b{display:block;font-family:var(--serif);font-size:14.5px;color:var(--dz);margin-bottom:9px}
.pcard dl{display:grid;grid-template-columns:38px 1fr;gap:5px 10px;font-size:11.6px}
.pcard dt{color:var(--ink-3)}
.pcard dd{color:var(--ink-2);word-break:break-all}
.pcard dd a{color:var(--qing);border-bottom:1px dashed var(--line)}
.fsub{display:flex;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap}
.okv{
  background:rgba(46,125,91,.1);border:1px solid rgba(46,125,91,.3);
  color:#1d5c42;padding:13px 18px;border-radius:8px;font-size:13.5px;margin-bottom:20px;
}

/* ---------- 7. 响应式 ---------- */
@media(max-width:1180px){
  .sect26{grid-template-columns:repeat(3,1fr)}
  .triad-grid{grid-template-columns:repeat(3,1fr);gap:12px}
  .tdc-body p{font-size:12.6px}
}
@media(max-width:1080px){
  .detail-grid{grid-template-columns:1fr}
  .detail-side{position:static}
  .hp-seal{display:none}
}
@media(max-width:860px){
  .triad-grid{grid-template-columns:1fr}
  .tdc{height:clamp(320px,64vw,420px)}
  .sect26{grid-template-columns:repeat(2,1fr)}
  .hp-in{padding:0 20px}
  .hp-stats{gap:18px 22px}
  .cb-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
}
@media(max-width:680px){
  .hero-photo{min-height:clamp(540px,88vh,700px)}
  .hp-title .t1,.hp-title .t2{font-size:clamp(32px,9vw,46px)}
  .hp-kicker{font-size:10.5px;letter-spacing:.14em;margin-bottom:18px}
  .hpline{width:26px}
  .hp-sub{font-size:13.5px;margin-bottom:26px}
  .hp-cta{gap:10px}
  .btn-primary.lg,.btn-glass{padding:12px 22px;font-size:13.5px}
  .hp-stats{padding:18px 20px 22px;gap:14px 20px;margin-top:30px}
  .hp-stats b{font-size:20px}
  .hp-stats span{font-size:10px}
  .hp-scroll{display:none}
  .sec-head.center h2{font-size:24px}
  .chgrid{grid-template-columns:1fr}
  .cb-stats{gap:18px 26px}
  .cb-foot{flex-direction:column;align-items:flex-start}
  .photogrid{grid-template-columns:1fr 1fr}
  .pcard img{height:120px}
}

/* ---------- 8. 深色首屏上的顶栏反色 ----------
   首屏是实景照片，顶栏默认的墨绿字压上去等于看不见。
   用 :has() 让「有 hero-photo 的页面」在未滚动时自动转浅色，
   JS 再补一层 solid 状态切换，两重保险。 */
body:has(.hero-photo) .topbar:not(.solid) .brand-txt b{color:#f7f3e7;text-shadow:0 1px 10px rgba(0,0,0,.5)}
body:has(.hero-photo) .topbar:not(.solid) .brand-txt i{color:rgba(235,228,208,.72)}
body:has(.hero-photo) .topbar:not(.solid) .nav a{color:rgba(247,243,231,.92);text-shadow:0 1px 10px rgba(0,0,0,.5)}
body:has(.hero-photo) .topbar:not(.solid) .nav a:hover{color:#fff}
body:has(.hero-photo) .topbar:not(.solid) .langsw span{color:rgba(247,243,231,.9)}
body:has(.hero-photo) .topbar:not(.solid) .btn-line{
  border-color:rgba(240,232,210,.6);color:#f7f3e7;background:rgba(255,255,255,.08);
}
body:has(.hero-photo) .topbar:not(.solid) .btn-line:hover{background:rgba(255,255,255,.18)}
body:has(.hero-photo) .topbar:not(.solid) .q{
  background:rgba(255,255,255,.14);border-color:rgba(240,232,210,.34);backdrop-filter:blur(8px);
}
body:has(.hero-photo) .topbar:not(.solid) .q input{color:#f7f3e7}
body:has(.hero-photo) .topbar:not(.solid) .q input::placeholder{color:rgba(235,228,208,.62)}
body:has(.hero-photo) .topbar:not(.solid) .q button{color:#f7f3e7}
body:has(.hero-photo) .topbar:not(.solid) .burger{color:#f7f3e7}

/* 滚动提示去掉：底部已经有数据条，再加一个「向下」会叠在一起 */
.hp-scroll{display:none}

/* ---------- 9. 无障碍：尊重系统「减少动效」设置 ----------
   顺带解决一件事：平滑滚动会让无头浏览器截图截在半路。 */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ---------- 10. 板块深化页（R566） ---------- */
.deep-tbl td{font-size:13px}
.deep-tbl b{color:var(--dz);font-weight:600}
.mkt-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:12px;margin-bottom:26px}
.mkt{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:8px;padding:15px 17px}
.mkt b{display:block;font-family:var(--serif);font-size:14.5px;color:var(--dz);margin-bottom:6px}
.mkt p{font-size:12.6px;color:var(--ink-2);line-height:1.82;margin:0}
.chip.cert{border-color:rgba(185,140,60,.42);color:#8a6522;background:rgba(185,140,60,.07)}
.riskbox{
  background:rgba(178,58,48,.05);border:1px solid rgba(178,58,48,.20);
  border-left:3px solid #b23a30;border-radius:9px;padding:18px 20px;margin:26px 0;
}
.riskbox b{display:block;font-family:var(--serif);font-size:14.5px;color:#8d2b21;margin-bottom:8px}
.riskbox strong{font-weight:600;color:#6d2318;font-family:inherit;font-size:inherit;display:inline}
.riskbox p{font-size:13.2px;color:var(--ink-2);line-height:1.9;margin:0}
@media(max-width:680px){
  .deep-tbl th:nth-child(3),.deep-tbl td:nth-child(3){display:none}
}

/* 板块总览卡：三个代表品类（R566） */
.stops{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 10px}
.stops span{font-size:11px;color:var(--ink-3);background:var(--paper-2);
  border:1px solid var(--line);border-radius:999px;padding:2px 9px;line-height:1.6}
.sccard:hover .stops span{border-color:rgba(185,140,60,.38);color:#8a6522}

/* ---------- 11. 数据产品页（R566） ---------- */
.prod-sum{display:flex;gap:clamp(20px,4vw,60px);flex-wrap:wrap;
  padding:22px 0 26px;margin-bottom:34px;border-bottom:1px solid var(--line)}
.prod-sum div{display:flex;flex-direction:column;gap:3px}
.prod-sum b{font-family:var(--serif);font-size:27px;color:var(--dz);line-height:1.1}
.prod-sum span{font-size:11.5px;color:var(--ink-3);letter-spacing:.06em}
.prod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(18px,3vw,42px);
  padding:clamp(22px,3vw,32px) 0;border-bottom:1px solid var(--line)}
.prod:last-of-type{border-bottom:0}
.prod-l{position:relative;padding-left:0}
.prod-l .ico{width:42px;height:42px;border-radius:7px;background:var(--dz);color:#f2dfb4;
  font-family:var(--serif);font-size:19px;display:flex;align-items:center;justify-content:center;
  margin-bottom:14px}
.prod-h{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin-bottom:10px}
.prod-h h2{font-family:var(--serif);font-size:20px;color:var(--dz);letter-spacing:.02em}
.prod-tag{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--gold);
  border:1px solid rgba(185,140,60,.34);border-radius:4px;padding:1px 7px;letter-spacing:.04em}
.prod-note{font-size:13.2px;color:var(--ink-2);line-height:1.9;margin-bottom:12px}
.prod-use{font-size:12.4px;color:var(--ink-3);line-height:1.8;
  padding-top:10px;border-top:1px dashed var(--line)}
.prod-use b{color:var(--dz);margin-right:8px;font-weight:600}
.prod-r{min-width:0}
.prod-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.prod-kpi div{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;
  padding:12px 13px}
.prod-kpi b{display:block;font-family:var(--serif);font-size:22px;color:var(--dz);line-height:1.2}
.prod-kpi b.sm{font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--ink-2);font-weight:500}
.prod-kpi span{display:block;font-size:10.5px;color:var(--ink-3);margin-top:3px}
.prod-fields b{display:block;font-size:11.5px;color:var(--ink-3);margin-bottom:8px;letter-spacing:.06em}
.chip.fld{font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:-.01em;
  background:var(--paper-2);border-color:var(--line);color:var(--ink-2);padding:3px 9px}
.prod-sample{margin-top:12px}
.prod-sample summary{font-size:12.2px;color:var(--qing);cursor:pointer;padding:7px 0;
  border-bottom:1px dashed var(--line)}
.prod-sample summary:hover{color:var(--gold)}
.prod-sample .tbl{margin-top:10px;font-size:12px}
.prod-sample .tbl th{width:104px;font-family:ui-monospace,Menlo,monospace;font-size:11px;
  color:var(--ink-3);padding:5px 10px 5px 0;vertical-align:top}
.prod-sample .tbl td{padding:5px 0;word-break:break-all;font-size:12px;border-bottom:1px dashed var(--line)}
@media(max-width:1080px){.prod{grid-template-columns:1fr}}
@media(max-width:680px){
  .prod-kpi{grid-template-columns:1fr 1fr}
  .prod-sum{gap:18px 26px}
  .prod-sum b{font-size:22px}
}

/* ---------- 板块产能指标表（可核验数据）---------- */
.stat-tbl td{font-size:13px;vertical-align:top}
.stat-tbl .stat-v{font-family:var(--serif);font-size:17px;color:var(--dz);font-weight:600;letter-spacing:-.01em}
.stat-tbl .stat-u{font-size:11.5px;color:var(--ink-3);margin-left:4px}
.stat-tbl .stat-y{font-size:11.5px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace;white-space:nowrap}
.stat-tbl b{color:var(--ink);font-weight:600;font-size:13.2px;line-height:1.65;display:block}
.stat-tbl .pos{display:inline-block;font-size:11.5px;color:#8a5a12;background:rgba(185,140,60,.12);
  border:1px solid rgba(185,140,60,.3);border-radius:5px;padding:1px 7px;margin:0 6px 5px 0;
  line-height:1.7;font-weight:500}
.stat-tbl .stat-c{display:block;font-size:12.2px;color:var(--ink-2);line-height:1.75}
.stat-tbl .stat-s{display:block;font-size:11.2px;color:var(--ink-3);margin-top:5px;
  padding-top:5px;border-top:1px dashed var(--line);line-height:1.6}
.stat-note{font-size:12px;color:var(--ink-3);line-height:1.85;margin-top:12px;
  padding:12px 15px;background:var(--paper-2);border-radius:10px;border-left:3px solid var(--gold)}
@media(max-width:900px){
  .stat-tbl thead{display:none}
  .stat-tbl,.stat-tbl tbody,.stat-tbl tr,.stat-tbl td{display:block;width:100%}
  .stat-tbl tr{padding:12px 0;border-bottom:1px solid var(--line)}
  .stat-tbl td{border:0;padding:1px 0}
  .stat-tbl td:first-child{padding-bottom:4px}
  .stat-tbl .stat-v{font-size:18px}
}

/* ---------- AI 引导（规则引擎）---------- */
.gform{background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 24px;margin-bottom:18px;box-shadow:var(--shadow)}
.gform label{display:block;font-size:12px;color:var(--ink-3);letter-spacing:.08em;margin-bottom:8px}
.gform textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px 15px;
  font-family:var(--sans);font-size:14.2px;line-height:1.85;color:var(--ink);
  background:var(--paper);resize:vertical;outline:none;transition:.18s}
.gform textarea:focus{border-color:var(--qing);background:var(--white);
  box-shadow:0 0 0 3px rgba(46,125,91,.09)}
.gform textarea::placeholder{color:#a8b3ac}
.grow{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.grow .btn-primary{border:0;cursor:pointer;font-family:var(--sans)}
.ghint{font-size:11.8px;color:var(--ink-3)}
.gex{font-size:12.6px;color:var(--ink-3);margin-bottom:26px}
.gex b{font-size:12.2px;color:var(--ink-2);letter-spacing:.04em}
.gex .chip{font-size:11.8px;padding:5px 11px;transition:.18s}
.gex .chip:hover{border-color:var(--gold);color:var(--gold);background:rgba(185,140,60,.06)}

.gpath{display:grid;gap:10px;margin-bottom:26px}
.gstep{display:flex;align-items:center;gap:14px;background:var(--white);
  border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:11px;
  padding:13px 18px;transition:.2s}
.gstep:hover{transform:translateX(3px);box-shadow:var(--shadow);border-left-color:var(--qing)}
.gstep i{flex:0 0 26px;height:26px;border-radius:50%;background:var(--dz);color:#fff;
  font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:600}
.gstep span{flex:1;min-width:0}
.gstep b{display:block;font-family:var(--serif);font-size:14.5px;color:var(--dz);margin-bottom:2px}
.gstep em{display:block;font-style:normal;font-size:12.4px;color:var(--ink-3);line-height:1.65}
.gstep u{text-decoration:none;color:var(--gold);font-size:15px}

.gbar{display:inline-block;width:64px;height:5px;background:var(--paper-2);border-radius:3px;
  vertical-align:middle;overflow:hidden;margin-right:7px}
.gbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--qing));border-radius:3px}
.gpc{font-size:11.5px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace}

.gact{display:grid;gap:10px;margin-bottom:26px}
.gact-item{display:block;background:var(--white);border:1px solid var(--line);border-radius:11px;
  padding:14px 18px;transition:.2s}
.gact-item:hover{border-color:var(--qing);box-shadow:var(--shadow)}
.gact-item.on{border-left:3px solid var(--qing)}
.gact-item b{display:block;font-family:var(--serif);font-size:14.5px;color:var(--dz);margin-bottom:3px}
.gact-item em{display:block;font-style:normal;font-size:12.4px;color:var(--ink-3);line-height:1.7}
.ghits{display:block;font-size:11.2px;color:var(--ink-3);margin-top:6px;
  font-family:ui-monospace,Menlo,monospace}
.gtag{display:inline-block;font-size:10px;font-weight:500;color:#fff;background:var(--qing);
  border-radius:4px;padding:1px 6px;margin-left:8px;vertical-align:middle;font-family:var(--sans)}
.gwhy{background:var(--paper-2);border-radius:10px;padding:14px 18px;font-size:12.4px;
  color:var(--ink-2);line-height:2;font-family:ui-monospace,Menlo,monospace}
.gwhy div{word-break:break-all}

/* ---------- 遥感核验：量算结果 ---------- */
.plot-grid{display:grid;grid-template-columns:236px 1fr;gap:22px;align-items:stretch;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.plot-map{display:flex;flex-direction:column;align-items:center;gap:8px}
.plot-map svg{width:100%;max-width:200px;height:auto;border:1px solid var(--line);
  border-radius:9px;background:var(--paper);display:block}
.plot-map span{font-size:10.8px;color:var(--ink-3);text-align:center;line-height:1.5}
.plot-kpi{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;align-content:center}
.plot-kpi div{border-left:2px solid var(--gold-l);padding-left:12px}
.plot-kpi b{display:block;font-family:var(--serif);font-size:26px;color:var(--dz);
  line-height:1.15;letter-spacing:-.01em}
.plot-kpi span{display:block;font-size:11px;color:var(--ink-3);margin-top:2px;letter-spacing:.05em}
.btn-ghost{display:inline-block;border:1px solid var(--line);border-radius:8px;
  padding:9px 16px;font-size:13px;color:var(--ink-2);background:var(--white);transition:.2s}
.btn-ghost:hover{border-color:var(--qing);color:var(--qing);background:rgba(46,125,91,.05)}
@media(max-width:680px){
  .plot-grid{grid-template-columns:1fr}
  .plot-map svg{max-width:150px}
  .plot-kpi{grid-template-columns:1fr 1fr;gap:12px 16px}
  .plot-kpi b{font-size:21px}
}

/* ---------- 组织与技术架构 ---------- */
.st{display:inline-block;font-size:11.5px;padding:1px 8px;border-radius:5px;
  border:1px solid;line-height:1.75;white-space:nowrap;font-weight:500}
.st.ok{color:#2e7d5b;border-color:rgba(46,125,91,.3);background:rgba(46,125,91,.08)}
.st.part{color:#8a5a12;border-color:rgba(185,140,60,.34);background:rgba(185,140,60,.1)}
.st.wait{color:#8a4b2a;border-color:rgba(180,69,58,.26);background:rgba(180,69,58,.07)}

.arch{margin-top:2px}
.arch-row{display:flex;gap:15px}
.arch-l{flex:0 0 32px;height:32px;border-radius:50%;background:var(--dz);color:#f6efdd;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);
  font-size:13.5px;font-weight:600;letter-spacing:.02em}
.arch-b{flex:1;min-width:0;border-left:2px solid var(--line);padding:2px 0 20px 17px;
  margin-left:-16px;padding-left:33px}
.arch-row:last-child .arch-b{border-left-color:transparent;padding-bottom:2px}
.arch-b b{display:block;font-family:var(--serif);font-size:14.8px;color:var(--dz);margin-bottom:3px}
.arch-b em{display:block;font-style:normal;font-size:11.8px;color:var(--qing);
  font-family:ui-monospace,Menlo,monospace;line-height:1.7;margin-bottom:6px}
.arch-b ul{list-style:none;display:flex;flex-wrap:wrap;gap:5px 16px}
.arch-b li{font-size:12.4px;color:var(--ink-2);line-height:1.7;position:relative;padding-left:11px}
.arch-b li::before{content:"";position:absolute;left:0;top:9px;width:4px;height:4px;
  border-radius:50%;background:var(--gold-l)}

.live-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 18px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.live-grid div{border-left:2px solid var(--gold-l);padding-left:11px}
.live-grid b{display:block;font-family:var(--serif);font-size:23px;color:var(--dz);
  line-height:1.2;letter-spacing:-.01em}
.live-grid span{display:block;font-size:10.8px;color:var(--ink-3);margin-top:2px;letter-spacing:.05em}
@media(max-width:680px){
  .live-grid{grid-template-columns:1fr 1fr;gap:14px}
  .live-grid b{font-size:19px}
  .arch-b{padding-left:28px}
}

/* ---------- 首页运行实况条 ---------- */
.runband{background:var(--paper-2);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:34px 0}
.runband-in{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,58px)}
.rb-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.rb-head b{font-family:var(--serif);font-size:15px;color:var(--dz);letter-spacing:.03em}
.rb-head b::after{content:"";display:inline-block;width:22px;height:1px;background:var(--gold);
  vertical-align:middle;margin-left:10px}
.rb-head span{font-size:11.8px;color:var(--ink-3)}
.rb-nums{display:grid;grid-template-columns:repeat(7,1fr);gap:16px 12px}
.rb-nums div{border-left:2px solid var(--gold-l);padding-left:11px}
.rb-nums b{display:block;font-family:var(--serif);font-size:24px;color:var(--dz);
  line-height:1.15;letter-spacing:-.01em}
.rb-nums span{display:block;font-size:10.6px;color:var(--ink-3);margin-top:3px;line-height:1.5}
.rb-act{display:flex;gap:22px;flex-wrap:wrap;margin-top:20px}
.rb-act a{font-size:13px;color:var(--qing);border-bottom:1px dashed var(--line);padding-bottom:2px}
.rb-act a:hover{color:var(--gold);border-bottom-color:var(--gold)}
@media(max-width:1080px){.rb-nums{grid-template-columns:repeat(4,1fr)}}
@media(max-width:680px){
  .runband{padding:26px 0}
  .rb-nums{grid-template-columns:1fr 1fr;gap:12px}
  .rb-nums b{font-size:20px}
}

/* ================= R569 七件套：入口→内容→数据→归档→合约→财务→落袋 ================= */
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.8px;letter-spacing:-.01em}
.stat-v{font-family:var(--serif);font-size:16px;color:var(--dz);font-weight:600;letter-spacing:-.01em}
.stat-u{font-size:11.5px;color:var(--ink-3);margin-left:4px}

.chain{background:linear-gradient(180deg,var(--paper-2),var(--paper));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0 32px}
.chain-in{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,58px)}
.chain-head{display:block;margin-bottom:17px}
.chain-head h2{font-family:var(--serif);font-size:17px;color:var(--dz);font-weight:600;letter-spacing:.03em}
.chain-head h2::after{content:"";display:inline-block;width:24px;height:1px;background:var(--gold);
  vertical-align:middle;margin-left:11px}
.chain-head p{font-size:12.4px;color:var(--ink-3);line-height:1.72;margin-top:7px;max-width:980px}
.chain-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cstep{display:block;padding:2px 15px 4px;border-left:1px solid var(--line);
  transition:background .18s ease,transform .18s ease}
.cstep:first-child{border-left:none;padding-left:0}
.cstep:hover{background:rgba(185,140,60,.055);transform:translateY(-2px)}
.cstep-i{display:block;font-family:ui-monospace,Menlo,monospace;font-size:10px;
  color:var(--gold);letter-spacing:.14em;margin-bottom:7px}
.cstep b{display:block;font-family:var(--serif);font-size:14.5px;color:var(--dz);
  font-weight:600;margin-bottom:8px;letter-spacing:.02em}
.cstep-n{display:block;font-family:var(--serif);font-size:25px;color:var(--dz);
  line-height:1.12;letter-spacing:-.015em}
.cstep-n i{font-style:normal;font-family:var(--sans);font-size:10.4px;color:var(--ink-3);
  margin-left:5px;letter-spacing:0}
.cstep-d{display:block;font-size:11.5px;color:var(--ink-2);line-height:1.62;margin-top:8px;min-height:57px}
.cstep-t{display:inline-block;font-size:10.4px;color:var(--qing);margin-top:8px;
  border-bottom:1px dotted var(--line)}
.cstep.zero .cstep-n,.cstep.zero .cstep-t{color:var(--ink-3)}
@media(max-width:1080px){
  .chain-grid{grid-template-columns:repeat(4,1fr);row-gap:20px}
  .cstep:nth-child(4n+1){border-left:none;padding-left:0}
}
@media(max-width:680px){
  .chain{padding:22px 0 24px}
  .chain-grid{grid-template-columns:1fr 1fr;row-gap:16px}
  .cstep{padding:0 10px 0 11px}
  .cstep:nth-child(4n+1){border-left:1px solid var(--line);padding-left:11px}
  .cstep:nth-child(odd){border-left:none;padding-left:0}
  .cstep-n{font-size:20px}
  .cstep b{font-size:13.2px}
  .cstep-d{min-height:0}
}

/* ---- 数据包页 ---- */
.pk-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  background:var(--white);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:var(--r);padding:17px 22px;margin:26px 0 30px;box-shadow:var(--shadow)}
.pk-l b{display:block;font-family:var(--serif);font-size:14.6px;color:var(--dz);margin-bottom:3px}
.pk-l span{font-size:12px;color:var(--ink-3);line-height:1.65}
.pk-r{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pk-r .btn-primary,.pk-r .btn-ghost{white-space:nowrap}
.dict-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}
.dict{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.dict h4{font-family:var(--serif);font-size:13.6px;color:var(--dz);margin-bottom:9px}
.tbl-sm td,.tbl-sm th{font-size:12.4px;padding:6px 8px}
.smp-h{font-family:var(--serif);font-size:14px;color:var(--dz);margin:20px 0 8px;
  padding-left:9px;border-left:2px solid var(--gold-l)}
@media(max-width:900px){.dict-grid{grid-template-columns:1fr}}

/* ---- 财务页 ---- */
.fin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0 34px}
.fin-card{position:relative;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:20px 20px 18px;box-shadow:var(--shadow)}
.fin-i{position:absolute;top:14px;right:16px;font-family:ui-monospace,Menlo,monospace;
  font-size:10.5px;color:var(--gold-l);letter-spacing:.1em}
.fin-card h4{font-family:var(--serif);font-size:14.6px;color:var(--dz);margin-bottom:9px}
.fin-card p{font-size:12.3px;color:var(--ink-2);line-height:1.78}
.fin-warn{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line);
  font-size:11.6px;color:#8a5a12}
.fin-kpi{display:grid;grid-template-columns:repeat(6,1fr);gap:14px 12px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.fin-kpi div{border-left:2px solid var(--gold-l);padding-left:11px}
.fin-kpi b{display:block;font-family:var(--serif);font-size:21px;color:var(--dz);
  line-height:1.2;letter-spacing:-.01em}
.fin-kpi span{display:block;font-size:10.6px;color:var(--ink-3);margin-top:3px;letter-spacing:.04em}
.fin-kpi .hi b{color:#8a5a12}
@media(max-width:1080px){.fin-grid{grid-template-columns:1fr 1fr}.fin-kpi{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){
  .fin-grid{grid-template-columns:1fr}
  .fin-kpi{grid-template-columns:1fr 1fr}
  .fin-kpi b{font-size:18px}
}

/* ---- 归档页 ---- */
.arc-rules{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;margin:26px 0 34px}
.arc-r{padding:14px 0;border-top:1px solid var(--line)}
.arc-r:nth-child(1),.arc-r:nth-child(2){border-top:none}
.arc-r h4{font-family:var(--serif);font-size:13.8px;color:var(--dz);margin-bottom:6px}
.arc-r p{font-size:12.3px;color:var(--ink-2);line-height:1.8}
.arc-tbl td{font-size:12.6px}
.arc-tbl tr.on{background:rgba(185,140,60,.07)}
@media(max-width:680px){
  .arc-rules{grid-template-columns:1fr;gap:0}
  .arc-r:nth-child(2){border-top:1px solid var(--line)}
}

/* ---- 国别市场页 ---- */
.en-ab{background:var(--paper-2);border-left:3px solid var(--sea);border-radius:0 10px 10px 0;
  padding:13px 18px;margin:0 0 20px}
.en-ab b{display:inline-block;font-family:ui-monospace,Menlo,monospace;font-size:10px;
  letter-spacing:.14em;color:var(--sea);margin-bottom:5px}
.en-ab p{font-size:12.4px;color:var(--ink-2);line-height:1.78;font-family:Georgia,"Times New Roman",serif}

/* 窄屏宽表：整表横向滚动，不撑破页面 */
@media(max-width:680px){
  .wrap table.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;max-width:100%}
  .wrap table.tbl::-webkit-scrollbar{display:none}
}

/* 网格/弹性子项默认 min-width:auto 会被宽表顶破 → 显式归零 */
.two>*{min-width:0}

/* ============ 会员进场（登录入口 + 供货位） ============ */
.btn-line.reg{background:var(--dz);color:#f6efdd}
.btn-line.reg:hover{background:var(--dz-2,#1f3a34);color:#f6efdd}
.btn-line.auth{font-weight:500}

.mem{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
     padding:clamp(52px,6vw,84px) 0}
.mem-in{max-width:1240px;margin:0 auto;padding:0 clamp(18px,4vw,48px)}
.mem-head{max-width:760px;margin-bottom:34px}
.mem-head h2{font-family:var(--serif);font-size:clamp(23px,3.1vw,34px);color:var(--dz);
             line-height:1.34;margin:10px 0 14px;letter-spacing:.01em}
.mem-head p{font-size:14px;color:var(--ink-2);line-height:1.95}
.mem-body{display:grid;grid-template-columns:1.45fr .85fr;gap:clamp(24px,3.4vw,46px);align-items:start}
.mem-list{display:flex;flex-direction:column;gap:8px}
.mem-row{display:grid;grid-template-columns:1fr auto;gap:3px 14px;align-items:baseline;
         background:var(--white);border:1px solid var(--line);border-radius:10px;
         padding:14px 18px;transition:.2s;position:relative}
.mem-row:hover{border-color:rgba(31,58,52,.32);transform:translateY(-1px);
               box-shadow:0 6px 18px rgba(31,58,52,.07)}
.mr-t{font-family:var(--serif);font-size:15px;color:var(--dz);line-height:1.45}
.mr-m{font-size:12.4px;color:var(--ink-3);grid-column:1}
.mr-s{font-size:12.2px;color:var(--ink-3);grid-column:1}
.mr-b{grid-row:1;grid-column:2;font-style:normal;font-size:11.4px;letter-spacing:.03em;
      border:1px solid var(--line);color:var(--ink-3);border-radius:999px;padding:3px 10px;white-space:nowrap}
.mr-b.ok{border-color:rgba(46,125,91,.42);color:#1d5c42;background:rgba(46,125,91,.09)}
.mem-empty{background:var(--white);border:1px dashed rgba(31,58,52,.28);border-radius:12px;padding:28px 26px}
.mem-empty b{font-family:var(--serif);font-size:16px;color:var(--dz);display:block;margin-bottom:9px}
.mem-empty p{font-size:13px;color:var(--ink-2);line-height:1.9}
.mem-side{background:var(--white);border:1px solid var(--line);border-radius:12px;
          padding:24px 24px 20px;position:sticky;top:96px}
.mem-stat{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;
          padding-bottom:18px;border-bottom:1px solid var(--line)}
.mem-stat div{border-left:2px solid var(--gold-l);padding-left:10px}
.mem-stat b{display:block;font-family:var(--serif);font-size:23px;color:var(--dz);line-height:1.15}
.mem-stat span{display:block;font-size:10.8px;color:var(--ink-3);margin-top:4px;letter-spacing:.04em}
.mem-act{display:flex;flex-direction:column;gap:9px}
.mem-act .btn-primary,.mem-act .btn-ghost{text-align:center;padding:11px 18px;font-size:13.6px}
.mem-note{font-size:11.8px;color:var(--ink-3);line-height:1.8;margin-top:15px}

@media(max-width:1080px){
  .mem-body{grid-template-columns:1fr}
  .mem-side{position:static}
}
@media(max-width:680px){
  .btn-line.reg{display:none}
  .mr-t{font-size:14px}
  .mem-side{padding:20px 18px 16px}
  .mem-stat b{font-size:20px}
}

/* =====================================================================
   R574 · 主页修缮（用户 2026-11-06 五点意见的第 1/2/3 条）
   ① 顶部太暗  ② 标题用魏碑  ③ 板块要整齐、不参差
   ===================================================================== */

/* ---- ② 魏碑标题：王汉宗中魏碑简体（GPL v2，子集化 435KB，font-display:swap）
   字面缺字时自动回落到 --serif，不会出现豆腐块。 ---- */
@font-face{
  font-family:'DaizoneWeibei';
  src:url('/static/fonts/daizone-weibei.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
:root{
  --wei:'DaizoneWeibei',"Weibei SC","STWeibei","华文魏碑","方正魏碑简体","Songti SC",serif;
}
/* 只用在大字号的标题上：16px 以下用魏碑会发糊，那就不叫大气了，叫糊 */
.hp-title,.hp-title .t1,.hp-title .t2,
.sec-head h2,.cta-band h2,.cb-head h2,.mem-head h2,.triad .sec-head h2,
.brand-txt b,.ab h3,.clcard h3,.ccard h3,.dcard b,.s26 b,.flow b,
.tdc-body h3,.mem-head h2,.foot .fquote{
  font-family:var(--wei);font-weight:400;
}
.hp-title{letter-spacing:.055em}
.hp-title .t1,.hp-title .t2{letter-spacing:.055em}

/* ---- ① 顶部提亮
   原来是「hero 顶部盖 0.86 黑 + 白字」，为了白字能看清，整条顶栏压得很沉。
   现在反过来：顶部遮罩放到 0.30，顶栏改成浅色毛玻璃 + 墨绿字。
   同一个位置，亮度差了一大截。 ---- */
.hp-veil{
  background:
    linear-gradient(180deg,
      rgba(6,17,12,.30) 0%,
      rgba(6,17,12,.16) 14%,
      rgba(6,17,12,.05) 36%,
      rgba(6,17,12,.04) 50%,
      rgba(6,17,12,.40) 70%,
      rgba(6,17,12,.86) 90%,
      rgba(6,17,12,.96) 100%),
    linear-gradient(94deg,
      rgba(6,17,12,.46) 0%,
      rgba(6,17,12,.18) 44%,
      rgba(6,17,12,0) 78%);
}
body:has(.hero-photo) .topbar:not(.solid){
  background:linear-gradient(180deg,rgba(253,250,244,.97) 0%,rgba(253,250,244,.86) 58%,rgba(253,250,244,0) 100%);
  backdrop-filter:blur(8px);
}
body:has(.hero-photo) .topbar:not(.solid) .brand-txt b{color:var(--dz);text-shadow:none}
body:has(.hero-photo) .topbar:not(.solid) .brand-txt i{color:var(--ink-3)}
body:has(.hero-photo) .topbar:not(.solid) .nav a{color:var(--ink-2);text-shadow:none}
body:has(.hero-photo) .topbar:not(.solid) .nav a:hover{color:var(--dz)}
body:has(.hero-photo) .topbar:not(.solid) .langsw span{color:var(--ink-2)}
body:has(.hero-photo) .topbar:not(.solid) .btn-line{
  border-color:var(--dz);color:var(--dz);background:rgba(255,255,255,.60);text-shadow:none;
}
body:has(.hero-photo) .topbar:not(.solid) .btn-line:hover{background:var(--dz);color:#f6efdd}
body:has(.hero-photo) .topbar:not(.solid) .q{
  background:rgba(255,255,255,.86);border-color:var(--line);backdrop-filter:none;
}
body:has(.hero-photo) .topbar:not(.solid) .burger{color:var(--dz)}
body:has(.hero-photo) .topbar:not(.solid) .seal{box-shadow:inset 0 0 0 1px rgba(246,239,221,.28),0 4px 12px rgba(23,57,46,.18)}

/* 主色提亮一档：原来的 #17392e 压得太闷 */
:root{
  --dz:#1c4536;
  --dz-2:#255c49;
  --ink:#1d2e27;
}

/* ---- ③ 板块整齐
   三个来源：内容宽度不一致（1320 / 1240 / 1180）、网格末行填不满、卡片文字长短不齐 ---- */
.runband-in{max-width:1320px}
.mem-in{max-width:1320px}

/* 26 个板块：4 列 × 6 行 = 24，剩 2 个 → 末行空两格，看着像塌了一角。
   让最后一个跨 3 格，正好补满 4 格。 */
.sect26 .s26:nth-last-child(2),.sect26 .s26:last-child{grid-column:span 2}

/* 平台实况条：7 格写死，少一项就空一格 → 改成自适应 */
.rb-nums{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}

/* 网格等高：同一行的卡必须一样高，否则底部参差 */
.direct-grid,.clgrid,.cgrid,.abil{grid-auto-rows:1fr}
.cb-grid{align-items:start}
.dcard{min-height:160px}

/* 文字截断：描述长短不一，逐行限死，超了省略 */
.dcard i,.clprod,.clscale,.ccard p,.s26 b{
  display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;
}
.dcard i{-webkit-line-clamp:2}
.clprod{-webkit-line-clamp:2}
.clscale{-webkit-line-clamp:3}
.ccard p{-webkit-line-clamp:3}
.s26 b{-webkit-line-clamp:2}

@media(max-width:1080px){
  .sect26{grid-template-columns:repeat(2,1fr)}
  .sect26 .s26:nth-last-child(2),.sect26 .s26:last-child{grid-column:span 1}
}
@media(max-width:680px){
  .sect26{grid-template-columns:1fr}
  .sect26 .s26:nth-last-child(2),.sect26 .s26:last-child{grid-column:span 1}
}

/* =====================================================================
   R574 · 齐鲁风物 / 商贸城（用户第 4、5 条）
   ===================================================================== */
.blk{margin:0 0 clamp(36px,4.4vw,56px)}
.blk-head{max-width:780px;margin-bottom:20px}
.blk-head h2{font-family:var(--wei);font-weight:400;font-size:clamp(21px,2.4vw,28px);
  color:var(--dz);margin-bottom:6px;letter-spacing:.02em}
.blk-head p{font-size:13.6px;color:var(--ink-3);line-height:1.8}

/* 风物卡：三行信息（是什么 / 卖点 / 时令与对接），行数写死，保证一排等高 */
.sg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;grid-auto-rows:1fr}
.sgc{background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:18px 18px 14px;display:flex;flex-direction:column;gap:7px;transition:.24s;position:relative;overflow:hidden}
.sgc::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--qing));opacity:.55}
.sgc:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:rgba(185,140,60,.4)}
.sg-tag{align-self:flex-start;font-size:11px;color:var(--dz);background:var(--paper-2);
  border:1px solid var(--line);border-radius:999px;padding:1px 9px;letter-spacing:.04em}
.sgc b{font-family:var(--wei);font-weight:400;font-size:17.5px;color:var(--dz);line-height:1.4}
.sg-intro,.sg-hl{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.sg-intro{-webkit-line-clamp:2;font-size:12.8px;color:var(--ink-2);line-height:1.7}
.sg-hl{-webkit-line-clamp:2;font-size:12.2px;color:var(--ink-3);line-height:1.66}
.sg-foot{margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);
  display:flex;flex-direction:column;gap:2px}
.sg-foot span{font-size:11.6px;color:var(--gold)}
.sg-foot em{font-style:normal;font-size:11.4px;color:var(--ink-3)}

/* 免费展示位：左说明、右表单 */
.ads{margin:clamp(34px,4vw,52px) 0 0;background:linear-gradient(135deg,#fbf7ee,#f6f1e4);
  border:1px solid var(--line);border-radius:16px;padding:clamp(24px,3.2vw,40px);position:relative;overflow:hidden}
.ads::after{content:"鲁";position:absolute;right:-30px;bottom:-70px;font-family:var(--wei);
  font-size:220px;color:rgba(23,57,46,.045);pointer-events:none}
.ads-in{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;
  gap:clamp(24px,3.4vw,48px);align-items:start}
.ads-txt h2{font-family:var(--wei);font-weight:400;font-size:clamp(21px,2.5vw,29px);
  color:var(--dz);margin:8px 0 12px;line-height:1.42}
.ads-txt p{font-size:13.8px;color:var(--ink-2);line-height:1.92}
.ads-list{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:7px}
.ads-list li{font-size:12.8px;color:var(--ink-3);padding-left:16px;position:relative}
.ads-list li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;
  border-radius:50%;background:var(--gold)}
.ads-form{background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:20px 20px 18px;display:flex;flex-direction:column;gap:11px}
.ads-form label{display:flex;flex-direction:column;gap:5px;font-size:12.4px;color:var(--ink-3)}
.ads-form input,.ads-form textarea{border:1px solid var(--line);border-radius:8px;
  padding:9px 11px;font-size:13.4px;font-family:var(--sans);color:var(--ink);background:var(--paper);outline:none}
.ads-form input:focus,.ads-form textarea:focus{border-color:var(--qing);background:var(--white)}
.ads-form .btn-primary{justify-content:center;margin-top:2px}
.ads-note{font-size:11.6px;color:var(--ink-3);text-align:center;line-height:1.6}

@media(max-width:1080px){
  .sg{grid-template-columns:repeat(2,1fr)}
  .ads-in{grid-template-columns:1fr}
}
@media(max-width:680px){
  .sg{grid-template-columns:1fr}
}

/* 首页「齐鲁风物」带：下面紧接深色碳板块，这里给一条浅纸底把两段分开 */
.scene-band{background:linear-gradient(180deg,var(--paper) 0%,#fbf7ee 60%,var(--paper) 100%)}
.scene-foot{display:flex;justify-content:space-between;align-items:center;gap:22px;
  flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.scene-foot p{font-size:12.8px;color:var(--ink-3);max-width:640px;line-height:1.8}
.scene-btns{display:flex;gap:12px;flex-wrap:wrap}

/* 商贸城卡片底部的「外销方向」：不是 HS 编码，不该用等宽字体 */
.mk{font-size:11.6px;color:var(--ink-3);letter-spacing:.01em}

/* =====================================================================
   R575 · 排放因子库（/carbon/factors）
   表格类页面：列多、数字多，靠对齐和等宽数字，不靠花活。
   ===================================================================== */
.fchips{display:flex;gap:9px;flex-wrap:wrap;margin:6px 0 20px}
.fchip{font-size:12.8px;color:var(--ink-2);border:1px solid var(--line);
  border-radius:999px;padding:5px 14px;background:var(--white);transition:.2s}
.fchip:hover{border-color:var(--dz);color:var(--dz)}
.fchip.on{background:var(--dz);color:#f6efdd;border-color:var(--dz)}
.ftable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.ftable{width:100%;border-collapse:collapse;font-size:13px;min-width:880px}
.ftable thead th{background:var(--paper-2);color:var(--dz);font-weight:600;font-size:12.4px;
  text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.ftable thead .th-sub{font-weight:400;color:var(--ink-3);font-size:11px}
.ftable tbody td{padding:11px 12px;border-bottom:1px solid rgba(0,0,0,.05);vertical-align:top}
.ftable tbody tr:last-child td{border-bottom:0}
.ftable tbody tr:hover{background:#fcfaf4}
.ftable td b{display:block;color:var(--ink);font-weight:600;font-size:13.2px;line-height:1.5}
.ftable td em{display:block;font-style:normal;color:var(--ink-3);font-size:11.6px;
  line-height:1.6;margin-top:3px;max-width:280px}
.ftable .num{text-align:right;font-variant-numeric:tabular-nums;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.ftable .strong{color:var(--dz);font-weight:600}
.ftable .eu{font-size:10.4px;color:var(--ink-3);margin-left:3px;font-family:var(--sans);font-weight:400}
.ftable .unit{color:var(--ink-3);font-size:12px;white-space:nowrap}
.ftable .yr{color:var(--ink-2);font-size:12px;white-space:nowrap}
.ftable .bs{color:var(--ink-3);font-size:11.6px;line-height:1.6;max-width:220px}
.fnote{margin:22px 0 0;padding:18px 20px;background:var(--paper-2);border:1px solid var(--line);
  border-radius:12px;font-size:12.6px;color:var(--ink-2);line-height:2}
.fnote b{color:var(--dz)}
@media(max-width:680px){
  .ftable{min-width:720px;font-size:12.2px}
  .ftable thead th,.ftable tbody td{padding:9px 9px}
}

/* 首屏底图本身偏暗，光靠减遮罩不够——把照片提亮一档再轻微加饱和，
   山的层次出来，字压在左侧深色渐变上仍然够对比 */
.hp-media{filter:brightness(1.16) saturate(1.05)}

/* 首页碳区里那张「数据交付物」卡：与旁边的服务卡区分开，
   服务买的是承诺，数据买的是能直接填进核算表的东西 */
.ccard-data{background:linear-gradient(135deg,#f7f2e6,#efe7d3)!important;
  border:1px dashed rgba(185,140,60,.55)!important}
.ccard-data h3{color:#6b4f1d!important}
.ccard-data em{color:var(--gold)!important}
.ccard-data .ccat{background:rgba(185,140,60,.18)!important;color:#6b4f1d!important;
  border-color:rgba(185,140,60,.35)!important}

/* 因子表：排放因子这一列不必给那么宽，来源依据那一列才需要 */
.ftable th:nth-child(1){width:24%}
.ftable th:nth-child(6){width:12%}
.ftable th:nth-child(8){width:22%}
.ftable .bs{max-width:260px}
.unit-th{white-space:nowrap}

/* =====================================================================
   R576 · 首屏提亮 / 动效光影 / 立体层次
   用户意见：加动图暗影、把黑色降下来亮一些、要层次不要平面、颜色和谐多样
   做法：① 底图与遮罩同时提亮，靠光晕补对比 ② 三层纯 CSS 动效
        （光晕漂移 / 云雾横移 / 入场上升）不加载任何图片 ③ 卡片三层阴影
   ===================================================================== */

/* ---- 0. 配色再亮一档，并引入四种点缀色：只有墨绿会显得寡淡 ---- */
:root{
  --dz:#1e4d3c; --dz-2:#2b6650;
  --ink:#1a2b24; --ink-2:#3a4d43; --ink-3:#66786e;
  --jade:#3f8f6b; --ochre:#a8623a; --cyan:#2f7f92; --rose:#9c5a63;
  --sh-1:0 1px 2px rgba(20,50,40,.05),0 3px 8px rgba(20,50,40,.05);
  --sh-2:0 2px 4px rgba(20,50,40,.05),0 8px 22px rgba(20,50,40,.07),0 20px 48px rgba(20,50,40,.055);
  --sh-3:0 4px 10px rgba(20,50,40,.06),0 16px 36px rgba(20,50,40,.10),0 34px 76px rgba(20,50,40,.08);
  --sh-gold:0 16px 40px rgba(168,124,46,.18);
  --shadow:var(--sh-2); --shadow-lg:var(--sh-3);
}

/* ---- 1. 首屏：把人从「一片黑」里拉出来 ---- */
.hero-photo{background:#1b4a3c}
.hp-media{filter:brightness(1.30) saturate(1.14) contrast(.97)}

/* 遮罩重写：顶部几乎不压（顶栏已是浅色），只在文字区留一层薄墨 */
.hp-veil{
  background:
    linear-gradient(180deg,
      rgba(10,30,23,.16) 0%,
      rgba(10,30,23,.04) 10%,
      rgba(10,30,23,.00) 30%,
      rgba(10,30,23,.04) 50%,
      rgba(10,30,23,.28) 70%,
      rgba(10,30,23,.58) 88%,
      rgba(10,30,23,.72) 100%),
    linear-gradient(94deg,
      rgba(10,30,23,.50) 0%,
      rgba(10,30,23,.20) 38%,
      rgba(10,30,23,0) 70%);
}

/* 光晕：三团缓慢呼吸的暖光，screen 混合在暗底上只会提亮，不会发灰 */
.hp-glow{position:absolute;inset:-12%;z-index:2;pointer-events:none;overflow:hidden}
.hp-glow i{position:absolute;display:block;border-radius:50%;filter:blur(64px);
  mix-blend-mode:screen;will-change:transform;opacity:.26}
.hp-glow i:nth-child(1){
  width:46vw;height:46vw;left:6%;top:-10%;
  background:radial-gradient(circle,rgba(255,214,142,.62),rgba(255,214,142,0) 68%);
  animation:glowA 23s ease-in-out infinite alternate}
.hp-glow i:nth-child(2){
  width:40vw;height:40vw;right:2%;top:18%;
  background:radial-gradient(circle,rgba(126,226,196,.46),rgba(126,226,196,0) 68%);
  animation:glowB 29s ease-in-out infinite alternate}
.hp-glow i:nth-child(3){
  width:54vw;height:32vw;left:24%;bottom:-14%;
  background:radial-gradient(ellipse,rgba(255,244,216,.40),rgba(255,244,216,0) 70%);
  animation:glowC 33s ease-in-out infinite alternate}
@keyframes glowA{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(4%,3%,0) scale(1.12)}}
@keyframes glowB{from{transform:translate3d(0,0,0) scale(1.06)}to{transform:translate3d(-5%,6%,0) scale(.94)}}
@keyframes glowC{from{transform:translate3d(-3%,0,0) scale(.96)}to{transform:translate3d(3%,-4%,0) scale(1.1)}}

/* 云雾：两层极淡的横向流带，像山里的光雾在走 */
.hp-mist{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;opacity:.20}
.hp-mist span{position:absolute;left:-25%;width:150%;height:34%;
  background:radial-gradient(ellipse at 32% 50%,rgba(255,255,255,.30),transparent 62%);
  filter:blur(30px);will-change:transform;animation:mistWalk 48s linear infinite}
.hp-mist span:nth-child(1){top:26%}
.hp-mist span:nth-child(2){
  top:56%;height:44%;opacity:.75;animation-duration:68s;animation-direction:reverse;
  background:radial-gradient(ellipse at 68% 50%,rgba(214,240,230,.26),transparent 60%)}
@keyframes mistWalk{from{transform:translate3d(-5%,0,0)}to{transform:translate3d(7%,0,0)}}

/* 入场：字逐行升起，不做位移过大的花活 */
@keyframes riseIn{from{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:none}}
.hp-kicker,.hp-title .t1,.hp-title .t2,.hp-sub,.hp-note,.hp-cta,.hp-stats{
  animation:riseIn .92s cubic-bezier(.16,.84,.28,1) both}
.hp-title .t1{animation-delay:.06s}
.hp-title .t2{animation-delay:.16s}
.hp-sub{animation-delay:.26s}
.hp-note{animation-delay:.34s}
.hp-cta{animation-delay:.42s}
.hp-stats{animation-delay:.54s}

/* 副标题改成诗句：字号撑起来，用金色渐变，压在图上才立得住 */
.hp-sub{
  font-family:var(--wei);font-size:clamp(21px,2.5vw,32px);font-weight:400;
  letter-spacing:.14em;line-height:1.5;margin-bottom:14px;
  background:linear-gradient(100deg,#fff8e6 6%,#f2dca8 46%,#d9b978 96%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 3px 16px rgba(0,0,0,.5));
}
.hp-note{
  font-size:clamp(13px,1.32vw,15px);color:rgba(234,232,220,.84);
  max-width:640px;line-height:1.95;margin-bottom:32px;
  text-shadow:0 1px 12px rgba(0,0,0,.55);
}

/* 数据条：给一层玻璃底，不再是「字浮在照片上」 */
.hp-stats{
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(10,30,23,.34));
  backdrop-filter:blur(3px);
  border-top-color:rgba(240,232,210,.28);
}
.hp-stats b{text-shadow:0 2px 12px rgba(0,0,0,.4)}
.hp-scroll i{background:linear-gradient(180deg,rgba(240,232,206,.85),transparent)}

/* 印章：加一点金色微光，呼应「岱宗」 */
.hp-seal{color:rgba(242,220,168,.42);border-right-color:rgba(242,220,168,.24)}

/* ---- 2. 立体层次：卡片不再是一张贴纸 ---- */
.dcard,.clcard,.chcard,.sgc,.tdc,.ccard,.abil .ab{
  box-shadow:var(--sh-1);
  transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s,border-color .3s,background .3s;
}
.dcard:hover,.clcard:hover,.chcard:hover,.sgc:hover{box-shadow:var(--sh-3);transform:translateY(-5px)}
/* 卡片顶部一条极细高光，是「纸的厚度」而不是描边 */
.dcard::after,.clcard::after,.sgc::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);
  pointer-events:none;
}

/* 26 板块：四色轮转的左侧竖条，整片网格立刻不闷 */
.s26::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  transform:scaleY(0);transform-origin:bottom;transition:transform .32s;
}
.s26:nth-child(4n+1)::before{background:linear-gradient(180deg,var(--jade),var(--dz))}
.s26:nth-child(4n+2)::before{background:linear-gradient(180deg,var(--gold-l),var(--gold))}
.s26:nth-child(4n+3)::before{background:linear-gradient(180deg,#5aa9bd,var(--cyan))}
.s26:nth-child(4n+4)::before{background:linear-gradient(180deg,#c08a6a,var(--ochre))}
.s26:hover::before{transform:scaleY(1)}
.s26::after{display:none}

/* 板块底纸：从平涂换成极缓的斜向渐变，有光的方向 */
.sect26-band{background:linear-gradient(168deg,#f4f0e6 0%,#faf7f0 46%,#f2ede1 100%)}
.sec.band{background:linear-gradient(168deg,#f2ede2,#faf7f1 60%,#f1ece0)}

/* 深色区：黑降下来，改成墨绿与海岱蓝的渐变，不再死黑 */
.carbon-band{background:linear-gradient(168deg,#1a4638 0%,#235544 42%,#2a6350 72%,#1d4a3c 100%)}
.carbon-band::before{opacity:.26}
.chamber-band{background:linear-gradient(168deg,#14384c 0%,#1b4f68 42%,#164257 72%,#0f2f40 100%)}
.chamber-band::before{opacity:.42}

/* 深色区卡片给一点内发光，像有光打进去 */
.ccard{background:rgba(255,253,248,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 22px rgba(0,0,0,.16)}
.ccard:hover{background:rgba(255,253,248,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 18px 40px rgba(0,0,0,.26)}

/* 风物卡：顶部渐变条按四色轮转 */
.sgc::before{opacity:.7}
.sgc:nth-child(4n+1)::before{background:linear-gradient(90deg,var(--jade),var(--cyan))}
.sgc:nth-child(4n+2)::before{background:linear-gradient(90deg,var(--gold),var(--gold-l))}
.sgc:nth-child(4n+3)::before{background:linear-gradient(90deg,var(--cyan),var(--sea))}
.sgc:nth-child(4n+4)::before{background:linear-gradient(90deg,var(--ochre),var(--gold))}

/* 按钮：主按钮加一层外扩光，点下去有反馈 */
.btn-primary{box-shadow:0 6px 18px rgba(30,77,60,.22)}
.btn-primary:hover{box-shadow:0 12px 30px rgba(30,77,60,.30)}

/* 尊重系统「减少动效」设置：关掉全部循环动画，只留静态光影 */
@media (prefers-reduced-motion:reduce){
  .hp-media,.hp-glow i,.hp-mist span,.hp-scroll i{animation:none!important}
  .hp-kicker,.hp-title .t1,.hp-title .t2,.hp-sub,.hp-note,.hp-cta,.hp-stats{animation:none!important}
}

/* R576b · 首屏校色：上一版提亮过头，天空洗白、山脊发灰。
   正确做法是「压天空、提山体、加饱和」，而不是整体拉亮。 */
.hp-media{filter:brightness(1.14) saturate(1.20) contrast(1.07)}
/* R584 · 首屏提亮
   原来三层都压得重：左侧横向墨 .56 + 底部 .74 + 天空 .30，
   叠起来整块发暗，游云看不出来。用户一句话点醒：「太暗淡了」。
   改法不是把墨删掉 —— 删了黄字就飘 —— 而是「把光加回来」：
   先在顶部铺一层柔光提亮游云，再把三层墨各降三到四成，
   黄字靠自身的深投影立住，而不是靠把整张图压黑。 */
.hp-veil{
  background:
    /* 第零层：游云的亮部，天空透出来才叫「氤氲」 */
    radial-gradient(118% 64% at 60% 4%, rgba(255,255,252,.34) 0%, rgba(255,255,252,.10) 46%, rgba(255,255,252,0) 68%),
    /* 第三层：只压天空（顶部 38%），现在压得很轻 */
    linear-gradient(180deg,
      rgba(86,132,152,.14) 0%,
      rgba(96,140,156,.07) 20%,
      rgba(110,150,160,.02) 32%,
      rgba(110,150,160,0) 40%),
    /* 第二层：竖向明暗，只托住数据条那一段 */
    linear-gradient(180deg,
      rgba(10,30,23,.04) 0%,
      rgba(10,30,23,.00) 26%,
      rgba(10,30,23,.02) 52%,
      rgba(10,30,23,.18) 72%,
      rgba(10,30,23,.40) 88%,
      rgba(10,30,23,.54) 100%),
    /* 第一层：左侧横向墨，黄字压得住就够，不必压满 */
    linear-gradient(96deg,
      rgba(10,30,23,.34) 0%,
      rgba(10,30,23,.17) 34%,
      rgba(10,30,23,.02) 62%,
      rgba(10,30,23,0) 80%);
}
/* 黄字补偿：墨薄了，字靠投影立住 */
.hp-title .t1{
  text-shadow:
    0 1px 0 rgba(8,26,18,.62),0 2px 0 rgba(8,26,18,.44),
    0 5px 26px rgba(6,20,14,.66),0 0 52px rgba(255,216,77,.16);
}
.hp-title .t2{filter:drop-shadow(0 2px 0 rgba(8,26,18,.50)) drop-shadow(0 6px 24px rgba(6,20,14,.60))}
.hp-kicker{text-shadow:0 1px 10px rgba(6,20,14,.66)}
.hp-sub{filter:drop-shadow(0 1px 0 rgba(8,26,18,.48)) drop-shadow(0 3px 14px rgba(6,20,14,.52))}
.hp-note{text-shadow:0 1px 12px rgba(6,20,14,.60)}
.hp-grain{opacity:.16}
.hp-kicker{color:rgba(248,242,222,.94);text-shadow:0 1px 10px rgba(0,0,0,.45)}
.hp-title .t1{color:#fffdf7}
.hp-title .t2{
  background:linear-gradient(100deg,#fff6e2 8%,#f4d79c 44%,#cfa860 94%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.hp-sub{
  background:linear-gradient(100deg,#fff4da 4%,#efd096 46%,#cf9f55 98%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.hp-note{color:rgba(240,238,226,.88)}
/* 数据条上沿不再是一条硬边：用一段渐变过渡接住照片 */
.hp-stats{
  background:linear-gradient(180deg,rgba(10,30,23,0) 0%,rgba(10,30,23,.46) 42%,rgba(10,30,23,.62) 100%);
  border-top-color:rgba(240,232,210,.16);
}
.hp-seal{color:rgba(244,222,172,.55)}

/* =====================================================================
   R576 · 商会服务匹配卡 + 对接表单
   ===================================================================== */
.svcgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;grid-auto-rows:1fr}
.svcc{
  position:relative;display:flex;flex-direction:column;gap:6px;
  background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:18px 18px 16px;box-shadow:var(--sh-1);transition:.26s;overflow:hidden;
}
.svcc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--gold-l),var(--gold))}
.svcc:nth-child(2)::before{background:linear-gradient(180deg,#7fd0b0,var(--jade))}
.svcc:nth-child(3)::before{background:linear-gradient(180deg,#7fc0d0,var(--cyan))}
.svcc:nth-child(4)::before{background:linear-gradient(180deg,#d8a888,var(--ochre))}
.svcc:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:rgba(185,140,60,.4)}
.svck{
  align-self:flex-start;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;
  background:var(--paper-2);color:var(--dz);font-family:var(--wei);font-size:13px;
}
.svcc b{font-family:var(--wei);font-weight:400;font-size:16.5px;color:var(--dz);line-height:1.45}
.svcc p{font-size:12.8px;color:var(--ink-2);line-height:1.78}
.svcc em{font-style:normal;font-size:11.8px;color:var(--gold);line-height:1.7;
  margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}

.cc-form{margin-top:6px;background:linear-gradient(160deg,#fbf7ee,#f5efe2);
  border:1px solid var(--line);border-radius:14px;padding:22px 22px 18px;box-shadow:var(--sh-1)}
.cc-form h3{font-family:var(--wei);font-weight:400;font-size:19px;color:var(--dz);margin-bottom:10px}
.cc-form form{display:flex;flex-direction:column;gap:11px}
.cc-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.cc-form label{display:flex;flex-direction:column;gap:5px;font-size:12.4px;color:var(--ink-3)}
.cc-form input,.cc-form select,.cc-form textarea{
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13.4px;
  font-family:var(--sans);color:var(--ink);background:var(--white);outline:none;width:100%;
}
.cc-form input:focus,.cc-form select:focus,.cc-form textarea:focus{border-color:var(--qing)}
.cc-form .btn-primary{justify-content:center;margin-top:2px}
.cc-note{font-size:11.6px;color:var(--ink-3);line-height:1.7}
.cc-ok{margin-bottom:10px;padding:10px 12px;border-radius:8px;font-size:12.8px;
  background:rgba(63,143,107,.12);color:#2c6b4e;border:1px solid rgba(63,143,107,.3)}
.cc-err{margin-bottom:10px;padding:10px 12px;border-radius:8px;font-size:12.8px;
  background:rgba(168,98,58,.10);color:#8a4a2a;border:1px solid rgba(168,98,58,.28)}
@media(max-width:880px){
  .svcgrid{grid-template-columns:1fr}
  .cc-row{grid-template-columns:1fr}
}

/* =====================================================================
   R576 · 企业碳赋能单元（/carbon/units）
   每个单元是一张「规格卡」：适用 / 客户提供 / 交付物 / 周期 / 计价
   ===================================================================== */
.ustage{margin:0 0 clamp(30px,3.6vw,44px)}
.ustage-h{font-family:var(--wei);font-weight:400;font-size:clamp(19px,2.2vw,24px);
  color:var(--dz);margin-bottom:14px;display:flex;align-items:baseline;gap:12px}
.ustage-h::before{content:"";width:26px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-l));transform:translateY(-6px)}
.ustage-h em{font-style:normal;font-size:12px;color:var(--ink-3);font-family:var(--sans);letter-spacing:.04em}
.ugrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;grid-auto-rows:1fr}
.uunit{
  background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:18px 18px 15px;display:flex;flex-direction:column;gap:8px;
  box-shadow:var(--sh-1);transition:.26s;
}
.uunit:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:rgba(185,140,60,.38)}
.uhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ucode{font-size:10.5px;letter-spacing:.08em;color:var(--ink-3);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ustag{font-size:10.5px;color:var(--dz);background:var(--paper-2);border:1px solid var(--line);
  border-radius:999px;padding:1px 8px}
.uunit h3{font-family:var(--wei);font-weight:400;font-size:17px;color:var(--dz);line-height:1.44}
.utarget{font-size:12.2px;color:var(--ink-3);line-height:1.7}
.utarget b{color:var(--gold);font-weight:600;margin-right:6px;font-size:11.6px}
.ukv{display:grid;grid-template-columns:56px 1fr;gap:5px 9px;margin-top:2px;
  padding-top:9px;border-top:1px dashed var(--line)}
.ukv dt{font-size:11.2px;color:var(--ink-3);letter-spacing:.03em}
.ukv dd{font-size:12.2px;color:var(--ink-2);line-height:1.7}
.ukv dd.ufee{color:var(--dz);font-weight:600}
.unote{margin-top:auto;font-size:11.6px;color:var(--ochre);line-height:1.68;
  background:rgba(168,98,58,.06);border-left:2px solid rgba(168,98,58,.4);
  padding:6px 9px;border-radius:0 6px 6px 0}
.ubasis{font-size:10.8px;color:var(--ink-3);line-height:1.6;opacity:.85}
@media(max-width:1080px){ .ugrid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:680px){ .ugrid{grid-template-columns:1fr} }

/* =====================================================================
   R576 · 全链运行看板（/autopilot）
   ===================================================================== */
.ap-score{display:flex;align-items:center;gap:26px;margin-top:22px;flex-wrap:wrap}
.ap-ring{
  width:112px;height:112px;border-radius:50%;position:relative;flex:0 0 auto;
  display:grid;place-items:center;text-align:center;
  background:
    radial-gradient(circle at 50% 50%,var(--white) 58%,transparent 59%),
    conic-gradient(var(--jade) calc(var(--p) * 1%),rgba(30,77,60,.12) 0);
  box-shadow:0 8px 26px rgba(20,50,40,.10);
}
.ap-ring b{display:block;font-family:var(--serif);font-size:34px;color:var(--dz);line-height:1}
.ap-ring span{display:block;font-size:10.5px;color:var(--ink-3);letter-spacing:.1em;margin-top:2px}
.ap-sum p{font-size:14px;color:var(--ink-2)}
.ap-sum em{font-style:normal;font-weight:700;font-size:16px;margin-right:8px;
  padding:2px 10px;border-radius:999px}
.ap-sum em.ok{background:rgba(63,143,107,.14);color:#2c6b4e}
.ap-sum em.mid{background:rgba(185,140,60,.16);color:#8a6415}
.ap-sum em.bad{background:rgba(168,98,58,.14);color:#8a4a2a}
.ap-note{font-size:12.8px;color:var(--ink-3);margin-top:6px}

.apchain{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:8px 0 44px}
.apnode{
  position:relative;display:flex;flex-direction:column;gap:5px;
  background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:15px 15px 13px;box-shadow:var(--sh-1);transition:.26s;overflow:hidden;
}
.apnode::after{content:"";position:absolute;right:0;top:0;bottom:0;width:3px;opacity:.85}
.apnode.on::after{background:linear-gradient(180deg,#8fd6b4,var(--jade))}
.apnode.off::after{background:linear-gradient(180deg,#e0b090,var(--ochre))}
.apnode:hover{transform:translateY(-3px);box-shadow:var(--sh-3)}
.aptop{display:flex;align-items:center;justify-content:space-between}
.apdot{width:8px;height:8px;border-radius:50%;background:var(--jade);
  box-shadow:0 0 0 3px rgba(63,143,107,.16)}
.apnode.off .apdot{background:var(--ochre);box-shadow:0 0 0 3px rgba(168,98,58,.16)}
.apk{font-size:10.5px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace}
.apnode b{font-family:var(--wei);font-weight:400;font-size:16px;color:var(--dz);line-height:1.4}
.apn{font-family:var(--serif);font-size:24px;color:var(--ink);line-height:1.1}
.apn i{font-style:normal;font-size:11px;color:var(--ink-3);margin-left:4px;font-family:var(--sans)}
.apsub{font-size:11.6px;color:var(--ink-3);line-height:1.6}
.aplast{font-size:11px;color:var(--gold);letter-spacing:.02em}
.aphint{font-size:11.4px;color:var(--ink-2);line-height:1.65;margin-top:2px;
  padding-top:6px;border-top:1px dashed var(--line)}
.aprun h2{font-family:var(--wei);font-weight:400;font-size:clamp(19px,2.2vw,24px);
  color:var(--dz);margin-bottom:8px}
.aprun-note{font-size:13px;color:var(--ink-3);line-height:1.9;margin-bottom:16px;max-width:820px}
.apok{color:#2c6b4e;font-size:12px;background:rgba(63,143,107,.14);padding:1px 8px;border-radius:999px}
.apfail{color:#8a4a2a;font-size:12px;background:rgba(168,98,58,.14);padding:1px 8px;border-radius:999px}
@media(max-width:1080px){ .apchain{grid-template-columns:repeat(3,1fr)} }
@media(max-width:680px){ .apchain{grid-template-columns:repeat(2,1fr)} .ap-ring{width:92px;height:92px} }

/* R576c · 四色竖条常显（原来是 hover 才出现，静态页面看不到颜色层次） */
.s26::before{transform:scaleY(.32);opacity:.6;border-radius:0 2px 2px 0}
.s26:hover::before{transform:scaleY(1);opacity:1}

/* 商会搜索：152 家名录，没有搜索就只能靠翻 */
.chsearch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 18px;padding:12px 14px;background:var(--white);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-1)}
.chsearch input{flex:1 1 320px;min-width:220px;border:1px solid var(--line);border-radius:8px;
  padding:9px 13px;font-size:13.6px;font-family:var(--sans);color:var(--ink);
  background:var(--paper);outline:none}
.chsearch input:focus{border-color:var(--qing);background:var(--white)}
.chsearch button{border:0;border-radius:8px;padding:9px 20px;font-size:13.4px;
  background:var(--dz);color:#f6efdd;cursor:pointer;font-family:var(--sans);transition:.2s}
.chsearch button:hover{background:var(--dz-2)}
.chclear{font-size:12.4px;color:var(--ink-3);text-decoration:underline}
.chnote{font-size:12px;color:var(--ink-3)}

/* ============================================================
   R577 · 首页商会带按洲别轮播（152 家全铺会把首页拉到几万像素）
   一次只摊开一个洲别 / 6 家；11 个洲别全在 DOM 里，前端切，服务端定开场
   ============================================================ */
.cb-rot{position:relative;margin-top:clamp(4px,1vw,10px)}
.cb-tabs{
  display:flex;flex-wrap:wrap;gap:7px;margin-bottom:clamp(16px,2vw,22px);
  padding-bottom:16px;border-bottom:1px solid rgba(200,220,232,.12);
}
.cbt{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 13px;border-radius:999px;cursor:pointer;
  font-family:var(--sans);font-size:12.4px;letter-spacing:.04em;
  color:rgba(214,229,237,.82);background:rgba(255,255,255,.045);
  border:1px solid rgba(200,220,232,.16);
  transition:color .22s,background .22s,border-color .22s,transform .22s;
}
.cbt em{
  font-style:normal;font-size:10.8px;line-height:1;
  padding:2px 6px;border-radius:999px;
  background:rgba(217,185,120,.16);color:rgba(242,223,180,.92);
}
.cbt:hover{color:#fff;background:rgba(255,255,255,.10);border-color:rgba(217,185,120,.42);transform:translateY(-1px)}
.cbt.on{
  color:#1c2a33;font-weight:600;
  background:linear-gradient(160deg,#f4e3bd,#dcbb80);
  border-color:rgba(255,255,255,.55);
  box-shadow:0 6px 18px -8px rgba(220,187,128,.85),inset 0 1px 0 rgba(255,255,255,.7);
}
.cbt.on em{background:rgba(28,42,51,.14);color:#3a2d16}

.cb-panels{position:relative;min-height:236px}
.cb-panel{display:none}
.cb-panel.on{display:block;animation:cbIn .46s cubic-bezier(.22,.72,.24,1) both}
@keyframes cbIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.cb-panelbar{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;
  margin-bottom:13px;
}
.cb-panelbar span{font-size:12.4px;color:rgba(196,212,222,.74);letter-spacing:.02em}
.cb-panelbar b{color:#f2dfb4;font-weight:500;font-size:13px;letter-spacing:.06em}
.cb-panelbar a{font-size:12px;color:rgba(217,185,120,.92);text-decoration:none;
  border-bottom:1px solid rgba(217,185,120,.30);padding-bottom:1px;transition:.2s}
.cb-panelbar a:hover{color:#f7e9c9;border-bottom-color:rgba(247,233,201,.7)}

.cb-cards{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  gap:clamp(12px,1.5vw,18px);
}
.cb-cards .cbcard{
  margin:0;padding:13px 14px;border-radius:10px;
  background:rgba(255,255,255,.032);
  border:1px solid rgba(200,220,232,.10);
  box-shadow:0 10px 26px -20px rgba(0,0,0,.9);
}
.cb-cards .cbcard:hover{
  background:rgba(255,255,255,.075);border-color:rgba(217,185,120,.38);
  transform:translateY(-2px);box-shadow:0 16px 34px -22px rgba(0,0,0,.95)
}
.cb-rotnote{
  margin-top:16px;font-size:11.8px;line-height:1.9;color:rgba(196,212,222,.58);
  letter-spacing:.01em;
}
.cb-rotnote b{color:rgba(242,223,180,.86);font-weight:500}
@media(max-width:760px){
  .cb-panels{min-height:0}
  .cb-cards{grid-template-columns:1fr}
  .cb-tabs{gap:6px}
  .cbt{font-size:11.8px;padding:5px 11px}
}
@media(prefers-reduced-motion:reduce){
  .cb-panel.on{animation:none}
  .cbt,.cb-cards .cbcard{transition:none}
}

/* R577 · 首页碳区打头五单元：报价与周期必须露出来，不然「能马上签」无从判断 */
.ccard-cu .cu-kv{
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  margin-top:10px;padding-top:9px;border-top:1px solid rgba(217,185,120,.22);
}
.ccard-cu .cu-kv i{font-style:normal;font-size:12.6px;color:var(--gold-l);font-weight:500;line-height:1.4}
.ccard-cu .cu-kv em{font-style:normal;font-size:11.2px;color:rgba(185,196,186,.86);white-space:nowrap}
.cu-pick{
  display:flex;justify-content:space-between;align-items:center;gap:clamp(16px,2.4vw,32px);
  flex-wrap:wrap;margin-top:clamp(20px,2.6vw,28px);
  padding:clamp(15px,1.8vw,20px) clamp(16px,2vw,24px);
  border-left:3px solid var(--gold-l);border-radius:0 12px 12px 0;
  background:rgba(255,253,248,.055);
}
.cu-pick p{font-size:12.9px;line-height:1.92;color:#c3cec4;max-width:820px;flex:1 1 460px}
.cu-pick p b{color:#f2dfb4;font-weight:500}
@media(max-width:680px){ .cu-pick{padding:14px 15px} .ccard-cu .cu-kv{flex-direction:column;gap:3px;align-items:flex-start} }

/* R577 · 全链看板：公开面（健康分 + 十关节）与运维台账（持口令）视觉上分开 */
.aprun{
  margin-top:clamp(26px,3.2vw,42px);padding:clamp(20px,2.5vw,28px);
  background:var(--white);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--sh-2);
}
.aprun-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.aprun-head h2{margin-bottom:0}
.aprun-lock{
  font-size:11px;letter-spacing:.08em;color:#6b4f1d;
  background:rgba(217,185,120,.22);border:1px solid rgba(217,185,120,.42);
  padding:2px 9px;border-radius:999px;
}
.aprun-gate{
  border-style:dashed;border-color:rgba(160,140,96,.42);
  background:linear-gradient(150deg,rgba(250,246,236,.92),rgba(255,253,247,.96));
}
.aprun-gate h2{margin-bottom:10px}
.aprun-gate p{font-size:13.2px;line-height:1.95;color:var(--ink-2);max-width:780px}
.aprun-gate p b{color:var(--dz);font-weight:600}
.aprun-gate-note{color:var(--ink-3)!important;font-size:12.6px!important;margin-top:8px}
.aprun-back{margin-top:14px;font-size:12.8px}
.aprun-back a{color:var(--dz);text-decoration:none;border-bottom:1px solid rgba(24,62,58,.24);padding-bottom:1px}
.aprun-back a:hover{border-bottom-color:var(--dz)}
@media(max-width:680px){ .aprun{padding:16px 14px;border-radius:12px} }

/* R577b · 两处收口
   ① 商会 6 家要正行：auto-fit 在 1320px 下算出 5 列，剩 1 家孤零零挂第二行 → 钉成 3 列（6=3×2）
   ② 碳卡报价与周期挤在一行会断字（「维护 8,000 元/」换行）→ 改成上下两行，六卡等高 */
.cb-cards{grid-template-columns:repeat(3,1fr)}
@media(max-width:1080px){ .cb-cards{grid-template-columns:repeat(2,1fr)} }
@media(max-width:680px){ .cb-cards{grid-template-columns:1fr} }

.ccard-cu .cu-kv{display:block}
.ccard-cu .cu-kv i{display:block;margin-bottom:3px;white-space:normal}
.ccard-cu .cu-kv em{display:block;white-space:normal}

/* R577c · 碳区右上「碳服务全景」在深绿底上偏暗，提到可读对比 */
.carbon-band .sec-more{color:#f0dcb0;border-color:rgba(240,220,176,.55)}
.carbon-band .sec-more:hover{color:#fff6e2;border-color:rgba(255,246,226,.85)}

/* ============================================================
   R578 · 在售货架（商品上架层）
   2026-11-06 第 1 条：农业机械/工程机械/二手机械/矿产钢材/型材/
   商贸城/电商/康养/机器人/矿山机械/基建，全部做成可点可询价的条目
   ============================================================ */
.goods-band{
  background:linear-gradient(168deg,#f3efe3 0%,#faf7ef 46%,#eef2ea 78%,#f6f2e7 100%);
}
.gchips{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
  gap:9px;margin-bottom:clamp(20px,2.4vw,28px);
}
.gchip{
  position:relative;display:flex;flex-direction:column;gap:1px;
  padding:11px 13px 10px;border-radius:10px;background:var(--white);
  border:1px solid var(--line);box-shadow:var(--sh-1);
  transition:transform .22s,box-shadow .22s,border-color .22s;
  overflow:hidden;
}
.gchip::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--jade),var(--cyan));
}
.gchip:nth-child(4n+2)::before{background:linear-gradient(180deg,var(--gold),var(--gold-l))}
.gchip:nth-child(4n+3)::before{background:linear-gradient(180deg,var(--sea),var(--cyan))}
.gchip:nth-child(4n+4)::before{background:linear-gradient(180deg,var(--ochre),var(--gold))}
.gchip:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:rgba(185,140,60,.38)}
.gchip b{font-size:13.4px;color:var(--dz);font-weight:600;letter-spacing:.02em}
.gchip i{font-style:normal;font-size:11px;color:var(--gold);font-family:var(--serif)}
.gchip em{font-style:normal;font-size:10.8px;color:var(--ink-3);line-height:1.5;
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,18px)}
.gcard{
  position:relative;display:flex;flex-direction:column;gap:7px;
  padding:16px 16px 14px;border-radius:12px;background:var(--white);
  border:1px solid var(--line);box-shadow:var(--sh-1);
  transition:transform .24s,box-shadow .24s,border-color .24s;overflow:hidden;
}
.gcard::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--jade),var(--cyan) 60%,transparent);
}
.gcard:nth-child(3n+2)::before{background:linear-gradient(90deg,var(--gold),var(--gold-l) 60%,transparent)}
.gcard:nth-child(3n+3)::before{background:linear-gradient(90deg,var(--ochre),var(--gold) 60%,transparent)}
.gcard:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:rgba(185,140,60,.4)}
.gk{display:flex;justify-content:space-between;align-items:center;gap:8px}
.gtag{font-size:10.8px;letter-spacing:.08em;color:var(--qing);
  background:rgba(46,125,91,.10);border:1px solid rgba(46,125,91,.18);
  padding:1px 8px;border-radius:999px}
.ghs{font-size:10.6px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace;letter-spacing:.02em}
.gcard h3{font-family:var(--serif);font-size:16.4px;color:var(--ink);line-height:1.42;font-weight:600}
.gspec{font-size:12.2px;color:var(--ink-2);line-height:1.72;flex:1;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.gkv{display:flex;gap:14px;flex-wrap:wrap;margin-top:2px;
  padding-top:9px;border-top:1px dashed var(--line)}
.gkv div{display:flex;flex-direction:column;gap:1px;min-width:0}
.gkv dt{font-size:10.4px;color:var(--ink-3);letter-spacing:.08em}
.gkv dd{font-size:11.8px;color:var(--ink);line-height:1.5}
.gmk{font-size:11px;color:var(--gold);letter-spacing:.01em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gmore{font-size:11.8px;color:var(--dz);font-weight:500;margin-top:2px}
.gnote{
  margin-top:clamp(18px,2.2vw,26px);padding:14px 17px;border-radius:10px;
  background:rgba(255,253,247,.72);border:1px solid var(--line);
  border-left:3px solid var(--gold);
  font-size:12.4px;line-height:1.9;color:var(--ink-2);
}
.gnote b{color:var(--dz);font-weight:600}

/* 货架列表页 */
.gsearch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px;
  padding:11px 13px;background:var(--white);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--sh-1);max-width:760px}
.gsearch input{flex:1 1 300px;min-width:200px;border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;font-size:13.4px;font-family:var(--sans);color:var(--ink);
  background:var(--paper);outline:none}
.gsearch input:focus{border-color:var(--qing);background:var(--white)}
.gsearch button{border:0;border-radius:8px;padding:9px 20px;font-size:13.2px;
  background:var(--dz);color:#f6efdd;cursor:pointer;transition:.2s}
.gsearch button:hover{background:var(--dz-2)}
.gclear{font-size:12.2px;color:var(--ink-3);text-decoration:underline}
.gkw{font-size:12.6px;color:var(--ink-3);margin:-4px 0 14px}
.gkw b{color:var(--dz)}

/* 商品详情 */
.gd-wrap{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);
  gap:clamp(16px,2.2vw,28px);align-items:start;padding-top:8px}
.gd-main,.gd-side{display:flex;flex-direction:column;gap:16px}
.gd-box{
  padding:clamp(18px,2.2vw,26px);background:var(--white);
  border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-1);
}
.gd-box h2{font-family:var(--serif);font-size:17.5px;color:var(--dz);
  margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);font-weight:600}
.gd-kv{display:grid;grid-template-columns:96px minmax(0,1fr);gap:9px 16px;font-size:13.2px}
.gd-kv dt{color:var(--ink-3);font-size:12.4px;letter-spacing:.04em}
.gd-kv dd{color:var(--ink);line-height:1.78}
.gd-dim{font-style:normal;color:var(--ink-3);font-size:11.8px}
.gd-note{margin-top:16px;padding:12px 14px;border-radius:8px;
  background:rgba(46,125,91,.055);border-left:3px solid var(--qing);
  font-size:12.6px;line-height:1.85;color:var(--ink-2)}
.gd-note b{color:var(--dz)}
.gd-form{display:flex;flex-direction:column;gap:12px}
.gd-f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gd-form label{display:flex;flex-direction:column;gap:5px;font-size:12.2px;color:var(--ink-2)}
.gd-form input,.gd-form textarea{
  border:1px solid var(--line);border-radius:8px;padding:9px 12px;
  font-size:13.2px;font-family:var(--sans);color:var(--ink);background:var(--paper);
  outline:none;transition:.2s;width:100%
}
.gd-form input:focus,.gd-form textarea:focus{border-color:var(--qing);background:var(--white)}
.gd-form textarea{resize:vertical;line-height:1.7}
.gd-form button{align-self:flex-start;padding:11px 32px}
.gd-fine{font-size:11.4px;color:var(--ink-3);line-height:1.75}
.gd-ok{padding:12px 14px;border-radius:8px;margin-bottom:14px;
  background:rgba(46,125,91,.09);color:#245c42;font-size:13px;line-height:1.8}
.gd-err{padding:12px 14px;border-radius:8px;margin-bottom:14px;
  background:rgba(168,98,58,.10);color:#8a4a2a;font-size:13px}
.gd-rel{display:flex;flex-direction:column;gap:2px}
.gd-rel a{display:block;padding:9px 10px;border-radius:8px;transition:.2s}
.gd-rel a:hover{background:rgba(46,125,91,.06)}
.gd-rel b{display:block;font-size:12.8px;color:var(--ink);font-weight:500;line-height:1.5}
.gd-rel span{display:block;font-size:11px;color:var(--ink-3)}
.gd-tags{display:flex;flex-wrap:wrap;gap:7px}
.gd-tags a{font-size:11.8px;color:var(--ink-2);padding:4px 11px;border-radius:999px;
  border:1px solid var(--line);background:var(--paper);transition:.2s}
.gd-tags a:hover{border-color:var(--qing);color:var(--dz);background:rgba(46,125,91,.06)}

@media(max-width:1080px){
  .ggrid{grid-template-columns:repeat(2,1fr)}
  .gd-wrap{grid-template-columns:1fr}
}
@media(max-width:680px){
  .ggrid{grid-template-columns:1fr}
  .gchips{grid-template-columns:repeat(2,1fr)}
  .gd-f2{grid-template-columns:1fr}
  .gd-kv{grid-template-columns:76px minmax(0,1fr);gap:8px 12px}
}

/* ============================================================
   R578b · 整体降对比、加层次（2026-11-06 第 2 条）
   「黑白太刺眼」不是把颜色调淡，是把纯黑字与纯白底换成暖墨与奶油纸，
   再让浅色区之间有色差，页面才有层次而不是一片平白。
   ============================================================ */
:root{
  --ink:#33302a;      /* 暖墨，不用纯黑 */
  --ink-2:#4f4d44;
  --ink-3:#7d7a6f;
  --paper:#f7f3e9;    /* 宣纸偏暖 */
  --paper-2:#f0ebdd;
  --white:#fdfaf2;    /* 奶油白，不反光 */
  --line:#e5ddcb;
  --gold:#b58a3e;
  --lilac:#8c7f9d;    /* 藕荷 */
  --indigo:#4a6291;   /* 靛青 */
  --bamboo:#6f8f6a;   /* 竹青 */
}
body{color:var(--ink);background:var(--paper)}

/* 浅色区之间拉开极淡色差：米 → 青 → 藕 → 赭，不做撞色 */
.sec.band{background:linear-gradient(168deg,#f4f0e3 0%,#faf7f0 50%,#eff2e9 100%)}
.sec.band:nth-of-type(3n+2){background:linear-gradient(168deg,#f6f1e6 0%,#fbf8f1 52%,#f3edf1 100%)}
.goods-band{background:linear-gradient(168deg,#f3efe2 0%,#faf7ef 44%,#edf2ea 76%,#f6f1e6 100%)}

/* 卡片底面做一点上下渐变，比纯平白更有纸感 */
.gcard,.gchip{background:linear-gradient(180deg,#fdfaf2 0%,#faf6eb 100%)}
.gcard:hover,.gchip:hover{background:linear-gradient(180deg,#fffdf8 0%,#fbf8ef 100%)}

/* 正文段落统一暖色，表格与说明也跟上 */
.lead,.fnote,.gnote{color:var(--ink-2)}

/* ============================================================
   R578c · 商会带收身（2026-11-06 第 2 条：整个板块占太多空间、底部那块太大）
   标题区 / 统计条 / 标签条 / 卡片 / 页脚五段逐一收，整块从 ~660px 降到 ~500px
   ============================================================ */
.chamber-band{padding:clamp(36px,4.4vw,60px) clamp(18px,4vw,58px)}
.cb-head{margin-bottom:clamp(16px,1.9vw,24px)}
.cb-head h2{font-size:clamp(23px,2.7vw,34px);margin-bottom:10px;line-height:1.28}
.cb-head p{font-size:13.2px;line-height:1.84;max-width:720px}
.cb-kicker{margin-bottom:10px;font-size:10.8px}
.cb-stats{
  padding:13px 0 15px;margin-bottom:clamp(14px,1.7vw,20px);
  gap:clamp(16px,2.8vw,44px);
}
.cb-stats b{font-size:clamp(20px,2.3vw,27px)}
.cb-stats span{font-size:10.6px;letter-spacing:.04em}
.cb-tabs{padding-bottom:11px;margin-bottom:13px;gap:6px}
.cbt{padding:5px 11px;font-size:11.8px;gap:5px}
.cbt em{font-size:10.2px;padding:1px 5px}
.cb-panels{min-height:206px}
.cb-panelbar{margin-bottom:9px}
.cb-panelbar span{font-size:11.6px}
.cb-rotnote{margin-top:9px;font-size:11px;line-height:1.7}
.cb-cards{gap:10px}
.cb-cards .cbcard{padding:10px 12px;border-radius:8px}
.cb-cards .cbcard b{font-size:12.6px;line-height:1.45}
.cb-cards .cbcard span,.cb-cards .cbcard i{font-size:10.6px}
.cb-foot{
  margin-top:clamp(14px,1.8vw,20px);padding-top:14px;gap:14px;
  align-items:center;
}
.cb-foot p{font-size:11.6px;line-height:1.76;max-width:780px}
.cb-btns{gap:9px}
.cb-btns .btn-glass{padding:8px 16px;font-size:12.2px}
@media(max-width:680px){
  .cb-stats{gap:12px 20px;padding:11px 0 12px}
  .cb-foot{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ============================================================
   R579 · 消费商城（B2C 独立线）
   大宗货架走询价制、深色金属感；零售走明码标价、暖纸感。
   两边视觉上要能一眼分清，不能让人以为是一个东西的两种说法。
   ============================================================ */

/* 顶栏购物车 */
.cartbtn{
  position:relative;display:inline-flex;align-items:center;gap:5px;
  font-size:13.6px;color:var(--ink-2);text-decoration:none;white-space:nowrap;
  padding:6px 12px;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,253,248,.72);transition:.2s;flex:0 0 auto;
}
.cartbtn:hover{color:var(--dz);border-color:rgba(185,140,60,.5);background:var(--white)}
.cartbtn i{
  font-style:normal;font-size:10.6px;line-height:1;min-width:16px;height:16px;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0 4px;border-radius:999px;background:var(--dz);color:#f6efdd;
}

/* 商城页头：比大宗页头更轻、更暖 */
.shophead .page-head-in{max-width:1200px}
.shophead.slim .page-head-in{padding-bottom:8px}
.shophead h1{font-family:var(--serif)}

/* 结算步骤条 */
.steps{display:flex;gap:0;list-style:none;margin:18px 0 0;padding:0;flex-wrap:wrap}
.steps li{
  display:flex;align-items:center;gap:7px;font-size:12.4px;color:var(--ink-3);
  padding-right:16px;margin-right:16px;border-right:1px solid var(--line);
}
.steps li:last-child{border-right:0;margin-right:0;padding-right:0}
.steps li b{
  width:20px;height:20px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;font-size:11.4px;font-weight:600;
  background:var(--paper-2);color:var(--ink-3);border:1px solid var(--line);
}
.steps li.on{color:var(--dz);font-weight:600}
.steps li.on b{background:var(--dz);color:#f6efdd;border-color:var(--dz)}
.steps li.done{color:var(--qing)}
.steps li.done b{background:rgba(46,125,91,.14);color:var(--qing);border-color:rgba(46,125,91,.3)}

/* 分类说明条 */
.shop-cathead{
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin:6px 0 14px;padding:11px 16px;border-radius:10px;
  background:rgba(255,253,248,.8);border:1px solid var(--line);
  border-left:3px solid var(--gold);
}
.shop-cathead b{font-family:var(--serif);font-size:16px;color:var(--dz)}
.shop-cathead span{font-size:12.2px;color:var(--gold)}
.shop-cathead em{font-style:normal;font-size:12.4px;color:var(--ink-2);line-height:1.7}

/* 排序条 */
.shopbar{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  flex-wrap:wrap;margin:4px 0 16px;padding-bottom:10px;
  border-bottom:1px solid var(--line);
}
.shopbar > span{font-size:12.6px;color:var(--ink-3)}
.shopbar > span b{color:var(--dz);font-weight:600}
.sorts{display:flex;gap:6px}
.sorts a{
  font-size:12.2px;color:var(--ink-2);text-decoration:none;
  padding:4px 11px;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,253,248,.7);transition:.2s;
}
.sorts a:hover{border-color:rgba(185,140,60,.42);color:var(--dz)}
.sorts a.on{background:var(--dz);color:#f6efdd;border-color:var(--dz)}

/* 商城网格与卡片 */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,20px)}
.sgrid-2{grid-template-columns:repeat(2,1fr)}
.scard{
  display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,#fdfaf2 0%,#faf6eb 100%);
  border:1px solid var(--line);border-radius:12px;
  box-shadow:0 2px 6px -3px rgba(60,48,30,.10),0 10px 24px -22px rgba(60,48,30,.5);
  transition:transform .24s,box-shadow .24s,border-color .24s;
}
.scard:hover{
  transform:translateY(-3px);border-color:rgba(185,140,60,.42);
  box-shadow:0 4px 10px -4px rgba(60,48,30,.14),0 18px 34px -24px rgba(60,48,30,.55);
}
.scard-top{position:relative;display:block;height:112px;overflow:hidden;text-decoration:none}
.sph{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:44px;color:rgba(255,255,255,.9);
  letter-spacing:.1em;text-shadow:0 2px 10px rgba(0,0,0,.16);
}
.sph-0{background:linear-gradient(140deg,#4a7d68,#2f5f52 55%,#24574c)}
.sph-1{background:linear-gradient(140deg,#b08a4e,#8f6a30 55%,#7a5722)}
.sph-2{background:linear-gradient(140deg,#5a7398,#3f5678 55%,#334765)}
.sph-3{background:linear-gradient(140deg,#a06a58,#85503f 55%,#70402f)}
.sph-4{background:linear-gradient(140deg,#6b6a90,#4f4e72 55%,#41405f)}
.sph-big{position:relative;height:290px;border-radius:12px;font-size:96px}
.sph-mini{
  position:relative;inset:auto;width:58px;height:58px;flex:0 0 58px;border-radius:9px;
  font-size:22px;text-shadow:none;
}
.scat{
  position:absolute;left:10px;top:10px;font-size:10.8px;letter-spacing:.06em;
  color:#fff;background:rgba(20,30,26,.32);border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(3px);padding:2px 8px;border-radius:999px;
}
.scard-bd{display:flex;flex-direction:column;gap:5px;padding:12px 14px 14px;flex:1}
.scard-bd h3{font-family:var(--serif);font-size:15.4px;line-height:1.44;font-weight:600}
.scard-bd h3 a{color:var(--ink);text-decoration:none}
.scard-bd h3 a:hover{color:var(--dz)}
.ssub{font-size:12px;color:var(--gold);line-height:1.6}
.sspec{
  font-size:11.6px;color:var(--ink-3);line-height:1.65;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.sprice{display:flex;align-items:baseline;gap:3px;flex-wrap:wrap;margin-top:2px}
.sprice b{font-family:var(--serif);font-size:20px;color:#a8623a;letter-spacing:-.01em}
.sprice i{font-style:normal;font-size:11.4px;color:var(--ink-3)}
.sprice em{
  font-style:normal;font-size:10.4px;padding:1px 6px;border-radius:4px;margin-left:4px;
}
.sCold{background:rgba(74,98,145,.12);color:#3f5678;border:1px solid rgba(74,98,145,.22)}
.sLow{background:rgba(168,98,58,.12);color:#8a4a2a;border:1px solid rgba(168,98,58,.24)}
.sadd{margin-top:8px}
.sadd button{
  width:100%;border:1px solid rgba(24,62,58,.2);border-radius:8px;
  padding:8px 0;font-size:12.8px;font-family:var(--sans);
  background:rgba(24,62,58,.055);color:var(--dz);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.sadd button:hover{background:var(--dz);color:#f6efdd;border-color:var(--dz)}
.sadd button:disabled{background:var(--paper-2);color:var(--ink-3);border-color:var(--line);cursor:not-allowed}

/* 商城页脚说明 */
.shopfoot{
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  margin-top:clamp(22px,2.8vw,34px);padding:18px 20px;border-radius:12px;
  background:rgba(255,253,248,.72);border:1px solid var(--line);
  border-left:3px solid var(--qing);
}
.shopfoot b{font-family:var(--serif);font-size:14.4px;color:var(--dz);display:block;margin-bottom:5px}
.shopfoot p{font-size:12.2px;line-height:1.85;color:var(--ink-2);max-width:720px}
.shopfoot-act{display:flex;gap:9px;flex-wrap:wrap}

/* 商品详情 */
.sd-wrap{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);
  gap:clamp(16px,2.2vw,28px);align-items:start;padding-top:8px}
.sd-main,.sd-side{display:flex;flex-direction:column;gap:16px}
.sd-visual{position:relative}
.sd-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.sd-tags a{
  font-size:11.6px;color:var(--ink-2);text-decoration:none;
  padding:3px 11px;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,253,248,.8);transition:.2s;
}
.sd-tags a:hover{border-color:var(--qing);color:var(--dz)}

.buybox{
  position:sticky;top:88px;display:flex;flex-direction:column;gap:12px;
  padding:18px 18px 16px;border-radius:14px;background:var(--white);
  border:1px solid var(--line);box-shadow:0 2px 8px -4px rgba(60,48,30,.12),0 16px 34px -26px rgba(60,48,30,.5);
}
.buybox-price{display:flex;align-items:baseline;gap:3px;flex-wrap:wrap;
  padding-bottom:11px;border-bottom:1px dashed var(--line)}
.buybox-price b{font-family:var(--serif);font-size:30px;color:#a8623a;line-height:1}
.buybox-price i{font-style:normal;font-size:12.4px;color:var(--ink-3)}
.buybox-price em{font-style:normal;margin-left:auto;font-size:11.6px;color:var(--qing)}
.buybox-ship{font-size:11.8px;line-height:1.7;color:var(--ink-3);
  background:rgba(46,125,91,.05);border-radius:8px;padding:8px 10px}
.buyform{display:flex;flex-direction:column;gap:9px}
.qtybox{
  display:flex;align-items:center;border:1px solid var(--line);
  border-radius:8px;overflow:hidden;width:100%;background:var(--paper);
}
.qtybox button{
  width:38px;height:38px;border:0;background:transparent;cursor:pointer;
  font-size:17px;color:var(--ink-2);line-height:1;transition:.2s;
}
.qtybox button:hover{background:rgba(24,62,58,.08);color:var(--dz)}
.qtybox input{
  flex:1;min-width:0;height:38px;border:0;background:transparent;text-align:center;
  font-size:14px;font-family:var(--sans);color:var(--ink);outline:none;font-weight:600;
}
.qty-sm{width:118px}
.qty-sm button{width:30px;height:30px;font-size:15px}
.qty-sm input{height:30px;font-size:12.8px}
.buybtn{width:100%;padding:12px 0;font-size:14.2px}
.buynow{width:100%;padding:11px 0;font-size:13.4px;text-align:center;justify-content:center}
.buylist{list-style:none;margin:2px 0 0;padding:11px 0 0;border-top:1px dashed var(--line);
  display:flex;flex-direction:column;gap:6px}
.buylist li{position:relative;padding-left:14px;font-size:11.6px;line-height:1.65;color:var(--ink-3)}
.buylist li::before{content:"";position:absolute;left:3px;top:7px;width:4px;height:4px;
  border-radius:50%;background:var(--gold)}
.side-note{
  padding:15px 16px;border-radius:12px;background:rgba(255,253,248,.8);
  border:1px solid var(--line);border-left:3px solid var(--gold);
  display:flex;flex-direction:column;gap:8px;align-items:flex-start;
}
.side-note b{font-family:var(--serif);font-size:14px;color:var(--dz)}
.side-note p{font-size:12.2px;line-height:1.8;color:var(--ink-2)}

/* 购物车 */
.cart-wrap{display:grid;grid-template-columns:minmax(0,1fr) 306px;
  gap:clamp(16px,2.2vw,26px);align-items:start;padding-top:8px}
.cart-main{background:var(--white);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;box-shadow:0 2px 6px -3px rgba(60,48,30,.1)}
.cart-head,.cart-row{
  display:grid;grid-template-columns:minmax(0,1fr) 96px 132px 82px 54px;
  gap:10px;align-items:center;padding:12px 16px;
}
.cart-head{background:rgba(240,235,221,.55);font-size:11.6px;color:var(--ink-3);
  letter-spacing:.06em;border-bottom:1px solid var(--line)}
.cart-row{border-bottom:1px solid var(--line)}
.cart-row:last-of-type{border-bottom:0}
.cart-p{display:flex;gap:11px;align-items:flex-start;min-width:0}
.cart-p > div{min-width:0;display:flex;flex-direction:column;gap:2px}
.cart-name{font-family:var(--serif);font-size:14px;color:var(--ink);text-decoration:none;font-weight:600;line-height:1.45}
.cart-name:hover{color:var(--dz)}
.cart-spec{font-size:11.4px;color:var(--ink-2);line-height:1.55}
.cart-meta{font-size:10.8px;color:var(--ink-3);line-height:1.5}
.cart-price{font-size:13px;color:var(--ink);white-space:nowrap}
.cart-price i{font-style:normal;font-size:10.6px;color:var(--ink-3)}
.cart-qty .qform{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.qlink{border:0;background:transparent;color:var(--dz);font-size:11.4px;
  cursor:pointer;text-decoration:underline;padding:0;font-family:var(--sans)}
.qlink:hover{color:var(--gold)}
.cart-sum{font-family:var(--serif);font-size:15px;color:#a8623a;white-space:nowrap}
.cart-del{text-align:right}
.qdel{border:0;background:transparent;color:var(--ink-3);font-size:11.4px;
  cursor:pointer;padding:0;font-family:var(--sans);transition:.2s}
.qdel:hover{color:#8a4a2a;text-decoration:underline}
.cart-extra{display:flex;justify-content:space-between;align-items:center;gap:14px;
  flex-wrap:wrap;padding:13px 16px;background:rgba(240,235,221,.4);
  border-top:1px solid var(--line)}
.cart-extra span{font-size:12px;color:var(--ink-2)}
.cart-extra b{color:#a8623a}

.cart-side{position:sticky;top:88px}
.sum-box{padding:18px;border-radius:14px;background:var(--white);
  border:1px solid var(--line);box-shadow:0 16px 34px -26px rgba(60,48,30,.5)}
.sum-box h3{font-family:var(--serif);font-size:16px;color:var(--dz);
  padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.sum-box dl{display:flex;flex-direction:column;gap:9px;margin:0}
.sum-box dl > div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.sum-box dt{font-size:12.2px;color:var(--ink-3)}
.sum-box dd{font-size:13px;color:var(--ink);font-weight:500}
.sum-note dt,.sum-note dd{color:var(--ink-3)!important;font-size:11.4px!important}
.sum-total{padding-top:10px;margin-top:4px;border-top:1px dashed var(--line)}
.sum-total dt{font-size:13.4px!important;color:var(--ink)!important;font-weight:600}
.sum-total dd{font-family:var(--serif);font-size:23px;color:#a8623a!important;font-weight:600}
.sum-btn{display:block;text-align:center;margin-top:14px;padding:12px 0;font-size:14.2px}
.sum-fine{margin-top:9px;font-size:11.2px;line-height:1.7;color:var(--ink-3)}

.cart-empty{padding:60px 20px;text-align:center;background:var(--white);
  border:1px solid var(--line);border-radius:14px;margin:20px 0}
.cart-empty b{font-family:var(--serif);font-size:20px;color:var(--dz);display:block;margin-bottom:8px}
.cart-empty p{font-size:13px;color:var(--ink-2);margin-bottom:18px}

/* 结算 */
.co-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;
  gap:clamp(16px,2.2vw,26px);align-items:start;padding-top:8px}
.co-form{display:flex;flex-direction:column;gap:16px}
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.co-grid label{display:flex;flex-direction:column;gap:5px;font-size:12.2px;color:var(--ink-2)}
.co-grid label em{font-style:normal;color:#a8623a}
.co-grid input{
  border:1px solid var(--line);border-radius:8px;padding:9px 12px;
  font-size:13.2px;font-family:var(--sans);color:var(--ink);background:var(--paper);
  outline:none;transition:.2s;width:100%;
}
.co-grid input:focus{border-color:var(--qing);background:var(--white)}
.co-full{grid-column:1 / -1}
.payopts{display:flex;flex-direction:column;gap:9px}
.payopt{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;
  border:1px solid var(--line);border-radius:10px;background:var(--paper);
  cursor:pointer;transition:.2s}
.payopt:hover{border-color:rgba(185,140,60,.42);background:var(--white)}
.payopt input{margin-top:2px;accent-color:var(--dz);cursor:pointer}
.payopt span{display:flex;flex-direction:column;gap:3px}
.payopt b{font-size:13.2px;color:var(--ink);font-weight:600}
.payopt i{font-style:normal;font-size:11.6px;color:var(--ink-3);line-height:1.6}
.payoff{color:#a8623a;font-style:normal}
.payopt:has(input:checked){border-color:rgba(24,62,58,.42);background:rgba(46,125,91,.055)}
.pay-fine{margin-top:11px;font-size:11.4px;line-height:1.8;color:var(--ink-3)}
.co-submit{padding:13px 0;font-size:14.6px;width:100%}
.co-fine{font-size:11.2px;line-height:1.7;color:var(--ink-3);text-align:center}
.co-side{position:sticky;top:88px}
.co-lines{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;
  padding-bottom:12px;border-bottom:1px dashed var(--line);max-height:260px;overflow:auto}
.co-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;
  font-size:12px;color:var(--ink-2)}
.co-line b{font-weight:500;color:var(--ink);line-height:1.5}
.co-line span{grid-column:1;font-size:11.2px;color:var(--ink-3)}
.co-line em{grid-row:1 / span 2;grid-column:2;font-style:normal;align-self:center;
  font-family:var(--serif);font-size:13.4px;color:#a8623a}
.co-back{display:block;margin-top:12px;text-align:center;font-size:12.4px}

/* 订单页 */
.od-wrap{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:clamp(16px,2.2vw,26px);align-items:start;padding-top:8px}
.od-main,.od-side{display:flex;flex-direction:column;gap:16px}
.od-lines{display:flex;flex-direction:column;gap:0}
.od-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;
  align-items:center;padding:11px 0;border-bottom:1px dashed var(--line)}
.od-line:last-child{border-bottom:0}
.od-line > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.od-line a{font-size:13.2px;color:var(--ink);text-decoration:none;font-weight:500}
.od-line a:hover{color:var(--dz)}
.od-line span{font-size:11.2px;color:var(--ink-3)}
.od-line em{font-style:normal;font-size:12px;color:var(--ink-2);white-space:nowrap}
.od-line b{font-family:var(--serif);font-size:14.4px;color:#a8623a;white-space:nowrap}
.od-sum{display:flex;flex-direction:column;gap:8px;margin-top:14px;
  padding-top:12px;border-top:1px solid var(--line)}
.od-sum > div{display:flex;justify-content:space-between}
.od-sum dt{font-size:12.2px;color:var(--ink-3)}
.od-sum dd{font-size:13px;color:var(--ink)}
.paybox h3{font-size:15px}
.paydesc{font-size:12.4px;line-height:1.85;color:var(--ink-2);margin-bottom:12px}
.payway{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border-radius:10px;
  background:rgba(168,98,58,.07);border:1px solid rgba(168,98,58,.2);margin-bottom:13px}
.payway b{font-family:var(--serif);font-size:20px;color:#a8623a}
.payway span{font-size:11.4px;line-height:1.65;color:var(--ink-2)}
.paysteps{list-style:none;counter-reset:ps;margin:0;padding:0;display:flex;
  flex-direction:column;gap:8px}
.paysteps li{position:relative;padding-left:24px;font-size:12px;line-height:1.7;color:var(--ink-2)}
.paysteps li::before{
  counter-increment:ps;content:counter(ps);position:absolute;left:0;top:1px;
  width:17px;height:17px;border-radius:50%;background:var(--paper-2);
  color:var(--ink-2);font-size:10.6px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
}
.paysafe{margin-top:13px;padding-top:11px;border-top:1px dashed var(--line);
  font-size:11.2px;line-height:1.75;color:var(--ink-3)}

/* 我的订单 */
.ordlist{display:flex;flex-direction:column;gap:10px;padding-top:6px}
.ordrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;
  align-items:center;padding:14px 18px;border-radius:12px;
  background:var(--white);border:1px solid var(--line);text-decoration:none;
  transition:.2s;box-shadow:0 2px 6px -4px rgba(60,48,30,.12)}
.ordrow:hover{border-color:rgba(185,140,60,.42);transform:translateY(-1px);
  box-shadow:0 10px 24px -20px rgba(60,48,30,.55)}
.ordrow-l{display:flex;flex-direction:column;gap:3px}
.ordrow-l b{font-family:var(--serif);font-size:14.2px;color:var(--dz);letter-spacing:.02em}
.ordrow-l span{font-size:11.2px;color:var(--ink-3)}
.ordrow-m{display:flex;gap:18px;font-size:12.4px;color:var(--ink-2);white-space:nowrap}
.ordrow-r{display:flex;align-items:center;gap:12px}
.ordrow-r i{font-style:normal;font-size:12px;color:var(--gold)}
.stag{font-style:normal;font-size:11.2px;padding:3px 10px;border-radius:999px;white-space:nowrap}
.stag.wait{background:rgba(168,98,58,.1);color:#8a4a2a;border:1px solid rgba(168,98,58,.22)}
.stag.paid{background:rgba(46,125,91,.1);color:#245c42;border:1px solid rgba(46,125,91,.22)}
.stag.ship{background:rgba(74,98,145,.1);color:#3f5678;border:1px solid rgba(74,98,145,.22)}

/* 首页商城带 */
.shopband{
  background:linear-gradient(168deg,#f7f2e6 0%,#fbf8f1 46%,#f2f0e4 100%);
}
.shopcats{
  display:grid;grid-template-columns:repeat(5,1fr);gap:9px;
  margin-bottom:clamp(18px,2.2vw,26px);
}
.shopcat{
  position:relative;display:flex;flex-direction:column;gap:2px;
  padding:12px 13px;border-radius:10px;background:var(--white);
  border:1px solid var(--line);text-decoration:none;overflow:hidden;
  box-shadow:0 2px 5px -3px rgba(60,48,30,.12);transition:.22s;
}
.shopcat::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--ochre),var(--gold));
}
.shopcat:nth-child(2)::before{background:linear-gradient(180deg,var(--jade),var(--qing))}
.shopcat:nth-child(3)::before{background:linear-gradient(180deg,var(--lilac),var(--indigo))}
.shopcat:nth-child(4)::before{background:linear-gradient(180deg,var(--gold),var(--gold-l))}
.shopcat:nth-child(5)::before{background:linear-gradient(180deg,var(--indigo),var(--sea))}
.shopcat:hover{transform:translateY(-2px);border-color:rgba(185,140,60,.4);
  box-shadow:0 12px 26px -20px rgba(60,48,30,.6)}
.shopcat b{font-family:var(--serif);font-size:14.2px;color:var(--dz)}
.shopcat i{font-style:normal;font-size:10.8px;color:var(--gold)}
.shopcat em{font-style:normal;font-size:10.8px;color:var(--ink-3);line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:1180px){
  .shopcats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1080px){
  .sgrid{grid-template-columns:repeat(2,1fr)}
  .sd-wrap,.cart-wrap,.co-wrap,.od-wrap{grid-template-columns:1fr}
  .buybox,.cart-side,.co-side{position:static}
  .cart-head{display:none}
  .cart-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:
    "p p" "qty sum" "del del";gap:8px;padding:14px}
  .cart-p{grid-area:p}
  .cart-price{display:none}
  .cart-qty{grid-area:qty}
  .cart-sum{grid-area:sum;text-align:right}
  .cart-del{grid-area:del;text-align:left}
  .od-line{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
  .od-line b{grid-column:2}
}
@media(max-width:680px){
  .sgrid,.sgrid-2{grid-template-columns:1fr}
  .shopcats{grid-template-columns:repeat(2,1fr)}
  .co-grid{grid-template-columns:1fr}
  .ordrow{grid-template-columns:1fr;gap:8px}
  .ordrow-m{gap:14px}
}
@media(prefers-reduced-motion:reduce){
  .scard,.shopcat,.ordrow{transition:none}
  .sadd button{transition:none}
}

/* R579b · 加购提示条（右下浮出，3 秒自己走） */
.dztoast{
  position:fixed;right:22px;bottom:26px;z-index:9999;
  padding:11px 18px;border-radius:10px;max-width:min(78vw,340px);
  font-size:13.2px;line-height:1.55;color:#f4efe0;
  background:rgba(28,52,46,.95);border:1px solid rgba(217,185,120,.34);
  box-shadow:0 14px 34px -16px rgba(0,0,0,.6);
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:opacity .25s,transform .25s;
}
.dztoast.on{opacity:1;transform:none}
.dztoast.bad{background:rgba(112,52,34,.96);border-color:rgba(240,190,160,.34)}
@media(max-width:680px){ .dztoast{right:14px;left:14px;bottom:16px;max-width:none;text-align:center} }

/* R579c · 运营台商城订单操作按钮（表格内联，不能撑破列宽） */
.opform{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.opform-ship{flex-wrap:nowrap}
.opbtn{
  border:1px solid rgba(24,62,58,.24);background:rgba(24,62,58,.06);
  color:var(--dz);font-size:11.6px;font-family:var(--sans);
  padding:4px 11px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:.2s;
}
.opbtn:hover{background:var(--dz);color:#f6efdd;border-color:var(--dz)}
.opinput{
  width:82px;border:1px solid var(--line);border-radius:6px;
  padding:4px 7px;font-size:11.4px;font-family:var(--sans);
  background:#fffdf6;color:var(--ink);outline:none;
}
.opinput:focus{border-color:var(--qing)}
@media(max-width:900px){ .opform-ship{flex-wrap:wrap} .opinput{width:70px} }

/* R579d · 详情页「加入购物车」文字贴左（.btn-primary 默认 inline-flex 起点对齐） */
.buybtn{display:flex;align-items:center;justify-content:center}

/* R579e · 结算表单：label 用 flex-column 会把「*」挤成单独一行，改回块级 */
.co-grid label{display:block}
.co-grid label em{font-style:normal;color:#a8623a;margin-left:2px}
.co-grid input{display:block;margin-top:5px}

/* R579f · 首页商城带只摆一行 4 件（首页是导航，不是货架） */
.shopband .sgrid{grid-template-columns:repeat(4,1fr)}
@media(max-width:1080px){ .shopband .sgrid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:680px){ .shopband .sgrid{grid-template-columns:1fr} }

/* ============================================================
   R580 · 页脚重做（2026-11-06 末条）
   「太占空间 + 太黑」不是把绿色调浅，是这块本身有两处病：
   ① 二十多条入口竖排堆在「联系」列里，「·」被折行挤成孤零零一个 → 整块拉到 1300px+
   ② #0f2b22 深墨绿压在明度很高的正文之后，视线一到页脚就掉进暗坑
   改成淡蓝灰纸底（藏青字 / 描边印章 / 一行平铺入口），高度回到 400px 上下。
   ============================================================ */
.foot{
  background:linear-gradient(180deg,#f3f7fa 0%,#e9f0f6 62%,#e4ecf4 100%);
  color:#46596b;
  padding:clamp(32px,3.8vw,44px) clamp(18px,4vw,58px) 20px;
  border-top:1px solid rgba(96,132,166,.16);
  position:relative;z-index:1;overflow:hidden;
}
/* 顶部一道极淡白晕，把页脚与上方米色块切开，又不留硬边 */
.foot::before{
  content:"";position:absolute;left:0;right:0;top:0;height:150px;
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,0));
  pointer-events:none;
}
.foot-in{
  position:relative;max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1.52fr .9fr .9fr 1.16fr;
  gap:clamp(20px,2.8vw,40px);
}
.fbrand{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.fbrand b{font-family:var(--serif);font-size:15.6px;color:#22384c;letter-spacing:.08em;font-weight:600}
/* 印章在浅底上做描边式：填色块会像贴了张标签，太吵 */
.foot .seal{
  background:transparent;color:#33587a;box-shadow:none;
  border:1px solid rgba(51,88,122,.46);
  font-size:17px;
}
.fquote{font-family:var(--serif);font-size:13.6px;color:#4f7a9c;margin-bottom:6px;letter-spacing:.03em}
.fdesc{font-size:12.2px;line-height:1.74;color:#5d748a}

.fcol h5{font-size:10.6px;letter-spacing:.2em;color:#8199ae;margin-bottom:10px;font-weight:500}
.fcol a,.fcol p{
  display:block;font-size:12.4px;line-height:1.6;
  margin-bottom:5px;color:#46596b;transition:color .2s;
}
.fcol a{text-decoration:none}
.fcol a:hover{color:#1f5d8c}
.fcol .muted{color:#7a90a4;font-size:11.6px;line-height:1.68}
.f4 p{margin-bottom:5px}

/* 一行平铺的全站入口：不用「·」，靠间距分组，换行后仍然整齐 */
.foot-links{
  position:relative;max-width:1320px;
  margin:clamp(22px,2.8vw,30px) auto 0;
  padding-top:clamp(16px,2vw,22px);
  border-top:1px solid rgba(96,132,166,.15);
  display:flex;flex-wrap:wrap;gap:7px clamp(14px,1.9vw,26px);
}
.foot-links a{
  font-size:11.9px;color:#54708a;text-decoration:none;
  letter-spacing:.01em;transition:color .2s;
}
.foot-links a:hover{color:#1f5d8c}

.foot-bot{
  position:relative;max-width:1320px;
  margin:clamp(16px,2vw,22px) auto 0;padding-top:13px;
  border-top:1px solid rgba(96,132,166,.12);
  display:flex;justify-content:space-between;align-items:baseline;
  gap:14px 24px;flex-wrap:wrap;
  font-size:10.9px;line-height:1.68;color:#7b91a5;
}
.foot-bot .muted{color:#849aae;max-width:760px}

@media(max-width:1080px){
  .foot-in{grid-template-columns:1.4fr 1fr 1fr;gap:22px 28px}
  .f4{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:0 26px;align-items:baseline}
  .f4 h5{width:100%;margin-bottom:8px}
}
@media(max-width:680px){
  .foot{padding:28px 18px 18px}
  .foot-in{grid-template-columns:1fr 1fr;gap:20px}
  .f1{grid-column:1 / -1}
  .f4{grid-column:1 / -1}
  .foot-links{gap:6px 16px}
  .foot-links a{font-size:11.4px}
  .foot-bot{flex-direction:column;gap:6px}
}

/* R580b · 手机端「联系」列：1080 断点里做成了横向 flex，390px 下电话与邮箱会串行断开
   （「电话：」在一行、号码被挤到下一行贴左），改成两列网格各就各位 */
@media(max-width:680px){
  .f4{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;align-items:start}
  .f4 h5{grid-column:1 / -1}
  .f4 .muted{grid-column:1 / -1;margin-top:2px}
}

/* R580c · 联系列里的电话/邮箱原本被 .fcol a{display:block} 顶到下一行
   （「电话：」一行、号码一行，桌面与手机都这样）→ 行内的还原成 inline */
.fcol p a,.f4 p a{display:inline;margin-bottom:0;border-bottom:1px solid rgba(31,93,140,.22)}
.fcol p a:hover,.f4 p a:hover{border-bottom-color:rgba(31,93,140,.6)}

/* R580d · 第四列内容窄于列宽，右侧留白比左内边距大一截，看着「右空」
   把四列比例收紧一点，联系列不再悬在中间 */
.foot-in{grid-template-columns:1.72fr .92fr .92fr 1.02fr}

/* R580e · R580d 那句列宽比例漏了媒体条件，把 1080 / 680 两档断点全盖掉了
   → 390px 下四列均分，每列约 60px，「产品碳足迹」被挤成两行。只留桌面生效 */
@media(min-width:1081px){
  .foot-in{grid-template-columns:1.72fr .92fr .92fr 1.02fr}
}
@media(max-width:1080px){
  .foot-in{grid-template-columns:1.4fr 1fr 1fr;gap:22px 28px}
}
@media(max-width:680px){
  .foot-in{grid-template-columns:1fr 1fr;gap:20px}
}

/* R580f · 平板下品牌列 1.4fr 偏宽，右侧三列被推远；收到 1.15fr 后四块比重接近 */
@media(max-width:1080px){
  .foot-in{grid-template-columns:1.15fr 1fr 1fr}
}

/* =====================================================================
   R581 · 十六大系统矩阵
   色板：海岱蓝作主，宣纸作底，不加第三种强调色。
   目的：让「这是一个能跑的系统」比「这是一段文案」更容易看出来。
   ===================================================================== */
:root{
  --sys-blue:#1d5b7d;
  --sys-blue-2:#2f7ba5;
  --sys-blue-l:#e8f1f6;
  --sys-blue-x:#f4f9fc;
  --sys-line:#dbe6ee;
}
.syshead{
  background:
    radial-gradient(1200px 340px at 12% -10%,rgba(29,91,125,.10),transparent 62%),
    linear-gradient(180deg,#f7fbfd 0%,#eef5f9 62%,var(--paper) 100%);
  border-bottom:1px solid var(--sys-line);
}
.syshead h1{letter-spacing:.01em}
.sysbar{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;
  margin-top:18px;font-size:14px;color:#4a6273;
}
.sysbar b{color:var(--sys-blue);font-size:17px;font-weight:700;margin-right:2px}
.sysbar em{margin-left:auto;font-style:normal;font-size:12.5px;color:#7c93a3}
.sysdot{width:7px;height:7px;border-radius:50%;display:inline-block}
.sysdot.on{background:#2e9e6b;box-shadow:0 0 0 3px rgba(46,158,107,.14)}
.sysdot.rd{background:#2f7ba5;box-shadow:0 0 0 3px rgba(47,123,165,.14)}
.sysdot.pd{background:#b0bcc5;box-shadow:0 0 0 3px rgba(176,188,197,.16)}

.syswrap{padding-top:46px;padding-bottom:20px}
.sysgroup{margin-bottom:46px}
.sysgh{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.sysgh h2{font-family:var(--serif);font-size:23px;letter-spacing:.04em;color:#1b3444}
.sysgh p{font-size:13.5px;color:#6e8698}
.sysgh span{margin-left:auto;font-size:12.5px;color:#8ba0ae;letter-spacing:.06em}

.sysgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.syscard{
  display:flex;flex-direction:column;position:relative;
  padding:20px 20px 16px;border-radius:12px;
  background:#fff;border:1px solid var(--sys-line);
  box-shadow:0 1px 2px rgba(29,91,125,.04);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.syscard:hover{
  transform:translateY(-3px);border-color:#b9d3e2;
  box-shadow:0 14px 32px rgba(29,91,125,.11);
}
.syscard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.sysno{
  font-family:var(--serif);font-size:15px;color:#9fb3c0;letter-spacing:.14em;
}
.sysflag{
  font-size:11.5px;padding:2px 9px;border-radius:20px;letter-spacing:.04em;
  background:#f0f4f7;color:#7a8f9d;border:1px solid #e3eaef;
}
.sysflag.on{background:#eaf6f0;color:#25795a;border-color:#cfe9dd}
.sysflag.rd{background:var(--sys-blue-l);color:var(--sys-blue);border-color:#cfe1eb}
.sysflag.pd{background:#f4f5f6;color:#8a949c;border-color:#e6e9eb}
.syscard h3{font-size:17px;font-weight:650;color:#16313f;letter-spacing:.01em;margin-bottom:6px}
.systag{font-size:13px;line-height:1.65;color:#6b8091;min-height:42px}
.syskpi{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;
  margin:14px 0 12px;padding-top:13px;border-top:1px dashed var(--sys-line);
  list-style:none;
}
.syskpi li{display:flex;flex-direction:column;min-width:0}
.syskpi b{font-size:19px;font-weight:700;color:var(--sys-blue);line-height:1.2}
.syskpi i{font-style:normal;font-size:11px;color:#95a9b6;margin-left:2px}
.syskpi span{font-size:11.5px;color:#7d92a1;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sysfoot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:auto;padding-top:12px;border-top:1px solid #f0f5f8;
  font-size:12.5px;color:#5f7a8c;
}
.sysfoot em{font-style:normal;color:var(--sys-blue);opacity:0;transition:opacity .2s}
.syscard:hover .sysfoot em{opacity:1}

/* ---- 详情页 ---- */
.syshead-code{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.sysbig{
  font-family:var(--serif);font-size:13px;letter-spacing:.22em;color:#8aa3b3;
  padding:3px 10px;border:1px solid var(--sys-line);border-radius:5px;background:#fff;
}
.sysd-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:38px}
.skpi{
  background:#fff;border:1px solid var(--sys-line);border-radius:11px;
  padding:16px 18px;display:flex;flex-direction:column;
}
.skpi b{font-size:25px;font-weight:700;color:var(--sys-blue);line-height:1.15;letter-spacing:-.01em}
.skpi b i{font-style:normal;font-size:12px;color:#8aa3b3;margin-left:3px;font-weight:500}
.skpi span{font-size:13px;color:#42596a;margin-top:5px}
.skpi em{font-style:normal;font-size:11.5px;color:#8fa3b1;margin-top:6px;line-height:1.5}

.syssec{margin-bottom:34px}
.sysh2{
  font-family:var(--serif);font-size:19px;color:#1b3444;letter-spacing:.05em;
  padding-left:11px;border-left:3px solid var(--sys-blue-2);margin-bottom:14px;line-height:1.3;
}
.systbl-wrap{overflow-x:auto;border:1px solid var(--sys-line);border-radius:10px;background:#fff}
.systbl{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}
.systbl th{
  text-align:left;font-weight:600;color:#46606f;background:var(--sys-blue-x);
  padding:10px 13px;border-bottom:1px solid var(--sys-line);white-space:nowrap;
}
.systbl td{padding:9px 13px;border-bottom:1px solid #f2f6f9;color:#3d5566;vertical-align:top}
.systbl tr:last-child td{border-bottom:0}
.systbl tbody tr:hover td{background:#fafcfe}
.systbl td.fee{color:var(--gold);font-weight:600;white-space:nowrap}
.outflow{min-width:0}
.syscaliber{
  margin-top:12px;padding:13px 16px;border-radius:9px;
  background:var(--sys-blue-x);border:1px solid var(--sys-line);
  font-size:12.5px;line-height:1.78;color:#4d6577;
}
.syscaliber b{
  display:inline-block;margin-right:9px;color:var(--sys-blue);
  font-size:11.5px;letter-spacing:.08em;border:1px solid #cfe1eb;
  padding:1px 7px;border-radius:4px;background:#fff;vertical-align:1px;
}
.sysempty{
  padding:26px;border:1px dashed #cfdde7;border-radius:10px;
  color:#7d92a1;font-size:13.5px;background:#fbfdfe;
}
.sysabil{list-style:none;display:grid;gap:9px}
.sysabil li{
  position:relative;padding:11px 15px 11px 38px;background:#fff;
  border:1px solid var(--sys-line);border-radius:9px;font-size:13.5px;color:#3d5566;line-height:1.7;
}
.sysabil li:before{
  content:"";position:absolute;left:15px;top:18px;width:7px;height:7px;
  border-radius:2px;background:var(--sys-blue-2);opacity:.55;
}
.sysin{list-style:none;display:grid;gap:7px}
.sysin li{
  position:relative;padding-left:20px;font-size:13.5px;color:#42596a;line-height:1.7;
}
.sysin li:before{content:"·";position:absolute;left:7px;color:var(--sys-blue-2);font-weight:700}
.sys2col{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.syslinks{display:flex;flex-wrap:wrap;gap:10px}
.syslinks a{
  font-size:13px;padding:8px 15px;border-radius:8px;background:#fff;
  border:1px solid var(--sys-line);color:var(--sys-blue);transition:.18s;
}
.syslinks a:hover{background:var(--sys-blue);color:#fff;border-color:var(--sys-blue)}
.sysoth{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sysoth a{
  display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:9px;
  background:#fff;border:1px solid var(--sys-line);transition:.18s;
}
.sysoth a:hover{border-color:#b9d3e2;box-shadow:0 8px 20px rgba(29,91,125,.08)}
.sysoth b{font-size:11px;letter-spacing:.16em;color:#9fb3c0;font-weight:600}
.sysoth em{font-style:normal;font-size:12px;color:#7d92a1;line-height:1.6}
.sysoth a{font-size:14px;color:#1b3444}
.sysnote{margin-top:6px}

@media(max-width:1280px){
  .sysgrid{grid-template-columns:repeat(2,1fr)}
  .sysd-kpi{grid-template-columns:repeat(2,1fr)}
  .sysoth{grid-template-columns:repeat(2,1fr)}
  .sys2col{grid-template-columns:1fr;gap:10px}
}
@media(max-width:680px){
  .sysgrid{grid-template-columns:1fr;gap:13px}
  .sysd-kpi{grid-template-columns:repeat(2,1fr);gap:10px}
  .skpi{padding:13px 14px}
  .skpi b{font-size:21px}
  .sysoth{grid-template-columns:1fr}
  .syswrap{padding-top:30px}
  .sysgh h2{font-size:20px}
  .systbl{min-width:460px;font-size:12.5px}
  .sysbar{font-size:13px;gap:6px 12px}
  .sysbar em{display:none}
}

/* R581b · 详情页二级区块标题（推荐情报表用） */
.sysh3{
  font-size:15px;color:#1b3444;letter-spacing:.04em;margin:26px 0 10px;
  padding-bottom:7px;border-bottom:1px solid var(--sys-line);
}

/* R581c · 推荐情报表：标题列要宽，其余列不许被标题挤成竖排 */
.rec-tbl th:nth-child(1),.rec-tbl td:nth-child(1){width:42px;color:#8aa3b3}
.rec-tbl th:nth-child(2),.rec-tbl td:nth-child(2){min-width:300px;max-width:520px;white-space:normal;line-height:1.55}
.rec-tbl th:nth-child(3),.rec-tbl td:nth-child(3),
.rec-tbl th:nth-child(4),.rec-tbl td:nth-child(4){white-space:nowrap;min-width:74px}
.rec-tbl th:nth-child(5),.rec-tbl td:nth-child(5){white-space:nowrap;min-width:132px;color:#6b8091}

/* R581d · 顶栏加一项后 1400 以下开始挤：搜索框被压到只剩图标，占位字全没了。
   收导航间距和字号，把宽度让给搜索框，不动右侧按钮组（它们不收缩）。 */
@media(max-width:1400px){
  .nav{gap:13px}
  .nav a{font-size:13.6px}
  .q{flex:0 1 190px;min-width:132px}
}

/* ==================================================================
   R582 · 首屏改「淡绿 · 朦胧 · 游云氤氲」
   前一版是暗色实景：压得住字，但一进站就沉。这一版把照片退成极淡山影，
   用淡绿做底、五团游云做气，字转深墨绿 —— 同一个「一山一水一圣人」，
   味道从「碑」换成「晨雾里的山」。
   色阶只有三段绿：底 #eef7f0 → 中 #dfeee3 → 收 #f3f9f4，不掺灰。
   ================================================================== */
.hero-photo{
  background:
    radial-gradient(120% 80% at 18% 8%,#f4faf5 0%,#eaf5ec 34%,#e2f0e5 58%,#dcebe0 78%,#e8f3ea 100%);
  min-height:clamp(600px,90vh,860px);
}
/* 山影：照片留 18% 不透明，去色后偏绿，等于远山 */
.hp-media{
  opacity:.30;
  filter:grayscale(1) contrast(.72) brightness(1.42);
  mix-blend-mode:multiply;
  animation:heroDrift 46s ease-in-out infinite alternate;
}
/* 压在照片上的绿雾：越靠上越白，靠下越绿，把山压成「隐约」 */
.hp-veil{
  background:
    linear-gradient(180deg,
      rgba(243,250,245,.93) 0%,
      rgba(236,247,239,.82) 18%,
      rgba(226,241,230,.68) 40%,
      rgba(219,237,224,.60) 54%,
      rgba(224,240,228,.74) 72%,
      rgba(235,247,238,.90) 88%,
      #f3f9f4 100%),
    radial-gradient(90% 60% at 78% 42%,rgba(255,255,255,.55),transparent 62%);
}
/* 游云：五团，尺寸与速度都错开，才不像一块布在平移 */
.hp-cloud{position:absolute;inset:-14% -8%;z-index:1;pointer-events:none;overflow:hidden}
.hp-cloud i{
  position:absolute;display:block;border-radius:50%;
  background:radial-gradient(circle at 46% 44%,rgba(255,255,255,.98),rgba(255,255,255,.66) 40%,rgba(255,255,255,.20) 66%,rgba(255,255,255,0) 78%);
  filter:blur(22px);
  will-change:transform;
}
.hp-cloud i:nth-child(1){width:64vw;height:20vw;left:-30vw;top:6%;opacity:.72;animation:cloudA 78s linear infinite}
.hp-cloud i:nth-child(2){width:52vw;height:15vw;left:-10vw;top:26%;opacity:.55;animation:cloudB 104s linear infinite -22s}
.hp-cloud i:nth-child(3){width:78vw;height:23vw;right:-40vw;top:40%;opacity:.46;animation:cloudA 132s linear infinite -64s}
.hp-cloud i:nth-child(4){width:40vw;height:12vw;left:24vw;top:60%;opacity:.40;animation:cloudB 92s linear infinite -40s}
.hp-cloud i:nth-child(5){width:56vw;height:16vw;left:-18vw;top:74%;opacity:.34;animation:cloudA 118s linear infinite -90s}
@keyframes cloudA{from{transform:translate3d(0,0,0)}to{transform:translate3d(120vw,0,0)}}
@keyframes cloudB{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(110vw,-2.2vw,0) scale(1.08)}}
/* 氤氲：一层缓慢呼吸的薄霭，让静态截图也有湿气 */
.hp-mist{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.55}
.hp-mist span{
  position:absolute;display:block;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.85),rgba(255,255,255,0) 70%);
  filter:blur(34px);animation:mistBreath 19s ease-in-out infinite;
}
.hp-mist span:nth-child(1){width:70%;height:44%;left:-6%;bottom:2%}
.hp-mist span:nth-child(2){width:56%;height:36%;right:-4%;bottom:12%;animation-delay:-8s;opacity:.8}
@keyframes mistBreath{0%,100%{transform:scale(1);opacity:.42}50%{transform:scale(1.13);opacity:.72}}
/* 颗粒改柔光，压在淡底上做纸感，不再压暗 */
.hp-grain{opacity:.16;mix-blend-mode:soft-light}

/* 文字：白 → 深墨绿；标题第二行改成墨绿到青的渐变，保留一点金属感但不刺眼 */
.hp-kicker{color:#4a6b58;letter-spacing:.20em}
.hpline{background:linear-gradient(90deg,#8aa892,rgba(138,168,146,0))}
.hp-title .t1,.hp-title .t2{
  color:#16341f;
  text-shadow:0 2px 26px rgba(240,250,243,.95),0 1px 2px rgba(255,255,255,.9);
}
.hp-title .t2{
  background:linear-gradient(100deg,#183a22 6%,#2f6b45 46%,#1d5c47 84%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  text-shadow:none;filter:drop-shadow(0 2px 18px rgba(255,255,255,.85));
}
.hp-sub{color:#33503f;text-shadow:0 1px 14px rgba(255,255,255,.92)}
.hp-note{color:#4a6b58}
/* 按钮：主按钮保住墨绿实底，玻璃按钮改成淡绿描边深字 */
.btn-glass{
  border-color:rgba(47,107,69,.34);color:#1e4a30;
  background:rgba(255,255,255,.52);backdrop-filter:blur(9px);
}
.btn-glass:hover{background:rgba(255,255,255,.86);border-color:rgba(47,107,69,.62);color:#12331f}
.hp-seal{color:rgba(35,74,50,.30);border-right-color:rgba(35,74,50,.16)}
/* 底部数据条：从深色压条改成淡绿玻璃条 */
.hp-stats{
  border-top:1px solid rgba(47,107,69,.16);
  background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(236,247,239,.72));
  backdrop-filter:blur(6px);
}
.hp-stats b{color:#16412b}
.hp-stats span{color:#5b7a66}
.hp-stats div+div::before{background:rgba(47,107,69,.16)}
/* 顶栏透明态：首屏变浅，反色必须一起翻过来，否则白字压白底 */
body:has(.hero-photo) .topbar:not(.solid) .brand-txt b{color:#16341f;text-shadow:0 1px 12px rgba(255,255,255,.9)}
body:has(.hero-photo) .topbar:not(.solid) .brand-txt i{color:#5b7a66}
body:has(.hero-photo) .topbar:not(.solid) .nav a{color:#22452f;text-shadow:0 1px 10px rgba(255,255,255,.85)}
body:has(.hero-photo) .topbar:not(.solid) .nav a:hover{color:#0d2a18}
body:has(.hero-photo) .topbar:not(.solid) .langsw span{color:#2b5039}
body:has(.hero-photo) .topbar:not(.solid) .btn-line{
  border-color:rgba(47,107,69,.32);color:#1d4429;background:rgba(255,255,255,.55);
}
body:has(.hero-photo) .topbar:not(.solid) .btn-line:hover{background:#fff}
body:has(.hero-photo) .topbar:not(.solid) .q{
  background:rgba(255,255,255,.72);border-color:rgba(47,107,69,.24);
}
body:has(.hero-photo) .topbar:not(.solid) .q input{color:#1d3a29}
body:has(.hero-photo) .topbar:not(.solid) .q input::placeholder{color:#7d9a86}
body:has(.hero-photo) .topbar:not(.solid) .q button{color:#2b5039}
body:has(.hero-photo) .topbar:not(.solid) .burger{color:#1d3a29}

@media(max-width:680px){
  .hero-photo{min-height:clamp(520px,86vh,660px)}
  .hp-cloud i{filter:blur(16px)}
  .hp-mist span{filter:blur(24px)}
}

/* R582b · 首屏三处修正
   ① 副标题还在用金色渐变（-webkit-text-fill-color 优先级高于 color），淡底上等于隐形；
   ② 山影 multiply 后亮部近白，几乎被洗掉，改成正常混合提不透明度；
   ③ 底绿偏白，往青绿方向压两档，云才有「浮在绿上」的感觉。 */
.hp-sub{
  background:none;
  -webkit-text-fill-color:#1d4a33;color:#1d4a33;
  filter:drop-shadow(0 2px 16px rgba(255,255,255,.95));
}
.hero-photo{
  background:linear-gradient(166deg,#f2f9f3 0%,#e7f3ea 26%,#daecdf 50%,#cde2d5 70%,#e2f0e6 100%);
}
.hp-media{
  opacity:.46;
  filter:grayscale(1) contrast(1.02) brightness(1.06);
  mix-blend-mode:normal;
}
.hp-veil{
  background:
    linear-gradient(180deg,
      rgba(243,250,245,.90) 0%,
      rgba(233,245,237,.72) 16%,
      rgba(222,239,227,.52) 36%,
      rgba(214,234,220,.44) 50%,
      rgba(220,238,226,.58) 70%,
      rgba(233,246,236,.86) 88%,
      #f2f9f3 100%),
    radial-gradient(92% 62% at 76% 44%,rgba(255,255,255,.62),transparent 64%);
}
.hp-cloud i{opacity:.82}
.hp-mist{opacity:.62}

/* ==================================================================
   R582 · 山东非遗商城
   配色取「宣纸 + 赭石」：底色比商品页暖一档，让它像一本册子而不是货架。
   级别标签只用两种色：国家级用赭红，省级用墨绿 —— 不做彩虹标签。
   ================================================================== */
.iyhead{
  background:
    radial-gradient(1100px 320px at 84% -20%,rgba(176,124,74,.12),transparent 62%),
    linear-gradient(180deg,#fbf7f0 0%,#f6f0e6 60%,var(--paper) 100%);
  border-bottom:1px solid #e8ddcb;
}
.iybar{display:flex;flex-wrap:wrap;gap:10px 34px;margin-top:22px}
.iybar div{display:flex;flex-direction:column;gap:2px}
.iybar b{font-family:var(--serif);font-size:26px;color:#6b4a2a;line-height:1.1}
.iybar span{font-size:11.5px;color:#8c7a63;letter-spacing:.08em}

.iywrap{padding-top:34px;padding-bottom:24px}
.iynote{
  background:#fdfaf4;border:1px solid #e8ddcb;border-left:3px solid #b07c4a;
  border-radius:9px;padding:16px 20px;margin-bottom:36px;
}
.iynote b{display:block;font-family:var(--serif);font-size:14.5px;color:#6b4a2a;margin-bottom:7px}
.iynote p{font-size:12.8px;line-height:1.92;color:#6a5c49;margin:0}
.iynote p b{display:inline;font-family:inherit;font-size:inherit;color:#5a3d20}

.iysec{margin-bottom:46px}
.iysh{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:9px;border-bottom:1px solid #e8ddcb}
.iysh h2{font-family:var(--serif);font-size:21px;color:#3a2c1c;letter-spacing:.06em}
.iysh span{font-size:12.5px;color:#95836c;margin-left:auto}

.iygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.iyc{
  display:flex;flex-direction:column;padding:17px 18px 15px;border-radius:11px;
  background:#fffdf9;border:1px solid #ece2d2;transition:.2s;
}
.iyc:hover{transform:translateY(-2px);border-color:#d8c4a6;box-shadow:0 12px 28px rgba(107,74,42,.10)}
.iyc-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.iyc-lv{font-size:11px;padding:2px 8px;border-radius:4px;letter-spacing:.05em;flex-shrink:0}
.iyc-lv.nat{background:rgba(168,64,44,.09);color:#9c3c28;border:1px solid rgba(168,64,44,.22)}
.iyc-lv.prov{background:rgba(47,107,69,.08);color:#2a6344;border:1px solid rgba(47,107,69,.20)}
.iyc-rg{font-size:11.5px;color:#9b8a74;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iyc h3{font-family:var(--serif);font-size:16.5px;color:#2f2318;letter-spacing:.02em;margin-bottom:5px;line-height:1.4}
.iyc-alias{font-style:normal;font-size:11.5px;color:#a2907a;display:block;margin-bottom:7px}
.iyc p{font-size:12.8px;line-height:1.85;color:#6a5c49;flex:1;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.iyc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:12px;padding-top:10px;border-top:1px dashed #ece2d2}
.iyc-foot span{font-size:11.5px;color:#9b8a74;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iyc-foot b{font-size:12.5px;color:#2a6344;white-space:nowrap;font-weight:600}
.iyc-foot b.off{color:#b3a794;font-weight:500}

.iygoods{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.iyg{
  display:flex;flex-direction:column;border-radius:11px;overflow:hidden;
  background:#fff;border:1px solid #ece2d2;transition:.2s;
}
.iyg:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(107,74,42,.10);border-color:#d8c4a6}
.iyg-badge{
  padding:9px 13px;font-size:11.5px;letter-spacing:.10em;color:#8a6a42;
  background:linear-gradient(180deg,#faf3e7,#f4ecdd);border-bottom:1px solid #f0e7d8;
}
.iyg h3{font-size:14px;color:#2f2318;line-height:1.5;padding:12px 13px 4px;font-weight:600}
.iyg p{font-size:12.2px;color:#7c6d58;line-height:1.7;padding:0 13px;flex:1}
.iyg-meta{display:flex;gap:6px;padding:8px 13px 0;flex-wrap:wrap}
.iyg-meta span{font-size:11px;color:#9b8a74;background:#f7f2e9;padding:2px 7px;border-radius:3px}
.iyg-buy{display:flex;align-items:baseline;gap:3px;padding:10px 13px 13px;margin-top:4px}
.iyg-buy b{font-family:var(--serif);font-size:19px;color:#a8402c;line-height:1}
.iyg-buy i{font-style:normal;font-size:11px;color:#a2907a}
.iyg-buy em{font-style:normal;font-size:11px;color:#a2907a;margin-left:auto}

.iycta{
  display:flex;align-items:center;gap:26px;flex-wrap:wrap;
  margin:20px 0 10px;padding:26px 30px;border-radius:12px;
  background:linear-gradient(120deg,#f7f1e6,#efe6d5);border:1px solid #e8ddcb;
}
.iycta b{display:block;font-family:var(--serif);font-size:18px;color:#3a2c1c;margin-bottom:6px}
.iycta p{font-size:13px;color:#6a5c49;line-height:1.85;margin:0;max-width:660px}
.iycta .btn-primary{margin-left:auto;flex-shrink:0}

/* ---- 项目详情 ---- */
.iydhead{background:linear-gradient(180deg,#fbf7f0,rgba(250,246,238,.6) 70%,var(--paper))}
.iyd-tags{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.iyd-cat,.iyd-rg{font-size:11.5px;color:#7c6d58;background:#f5efe3;padding:3px 9px;border-radius:4px}
.iyd-alias{font-size:13px;color:#9b8a74;margin:-8px 0 12px}
.iydwrap{padding-top:38px;padding-bottom:26px}
.iyd-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:38px;align-items:start}
.iyd-sec{margin-bottom:28px}
.iyd-sec h2{
  font-family:var(--serif);font-size:17px;color:#3a2c1c;letter-spacing:.05em;
  padding-left:10px;border-left:3px solid #b07c4a;margin-bottom:11px;line-height:1.35;
}
.iyd-big{font-size:15px;line-height:1.95;color:#2f2318;margin:0}
.iyd-p{font-size:13.6px;line-height:1.95;color:#5c4e3d;margin:8px 0 0}
.iyd-warn{
  margin-top:12px;padding:12px 15px;border-radius:8px;font-size:12.5px;line-height:1.85;
  background:#fbf6ec;border:1px solid #ece0cb;color:#7a6a53;
}
.iyd-warn b{color:#5a3d20}
.iyd-card{
  background:#fffdf9;border:1px solid #ece2d2;border-radius:10px;
  padding:16px 18px;margin-bottom:14px;
}
.iyd-card b{display:block;font-family:var(--serif);font-size:14.5px;color:#3a2c1c;margin-bottom:11px}
.iyd-card dl{margin:0}
.iyd-card dt{font-size:11.5px;color:#9b8a74;letter-spacing:.06em;margin-top:9px}
.iyd-card dd{margin:2px 0 0;font-size:13px;color:#3f3222;line-height:1.7}
.iyd-card ul{margin:0;padding-left:16px}
.iyd-card li{font-size:12.6px;color:#5c4e3d;line-height:1.85;margin-bottom:6px}
.iyd-card.soft{background:#fbf7ef}
.iyd-back{display:inline-block;font-size:13px;color:#8a6a42;margin-top:4px}

@media(max-width:1080px){
  .iygrid{grid-template-columns:repeat(2,1fr)}
  .iygoods{grid-template-columns:repeat(3,1fr)}
  .iyd-main{grid-template-columns:1fr;gap:8px}
  .iyd-r{order:-1}
}
@media(max-width:680px){
  .iygrid{grid-template-columns:1fr}
  .iygoods{grid-template-columns:repeat(2,1fr);gap:11px}
  .iybar{gap:8px 22px}
  .iybar b{font-size:21px}
  .iyc p{-webkit-line-clamp:2}
  .iycta{padding:20px 20px;gap:16px}
  .iycta .btn-primary{margin-left:0;width:100%;justify-content:center}
  .iyd-card{padding:14px 15px}
}

/* R582b · 非遗页两处收口
   ① 五个统计数字挨在一起像一串号码，加分隔才读得出「项/件/地区」；
   ② 传统技艺 16 项在 3 列下必然多出一张孤卡，改 4 列正好 4×4。 */
.iybar div{padding-right:26px;border-right:1px solid #e8ddcb}
.iybar div:last-child{padding-right:0;border-right:0}
.iygrid{grid-template-columns:repeat(4,1fr)}
.iyc{padding:15px 16px 14px}
.iyc h3{font-size:15.5px}
.iyc p{font-size:12.4px;-webkit-line-clamp:3}
@media(max-width:1240px){.iygrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1080px){.iygrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){
  .iygrid{grid-template-columns:1fr}
  .iybar div{padding-right:16px}
}

/* R582 · 商城电商化：满减条、价格筛选、排序、分页、销量角标
   一条原则：所有促销语都必须是能算出来的，页面上不出现「限时」「疯抢」这类无依据的词。 */
.shopromo{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;
  margin:0 0 14px;padding:11px 16px;border-radius:9px;
  background:linear-gradient(100deg,#fdf3e6,#fbead8);border:1px solid #f0dcc2;
}
.shopromo span{font-size:13px;color:#8a5a20}
.shopromo b{color:#b3541e;font-weight:650}
.shopromo em{margin-left:auto;font-style:normal;font-size:11.5px;color:#a08a6c}

.shoprices{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}
.shoprices a{
  font-size:12.5px;padding:5px 13px;border-radius:999px;color:#5a6b5f;
  border:1px solid var(--line);background:#fff;transition:.16s;
}
.shoprices a:hover{border-color:#b9d3c2;color:#22513a}
.shoprices a.on{background:#22513a;border-color:#22513a;color:#fff}

.spage{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:26px 0 34px}
.spage a,.spage b,.spage i{
  min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 12px;border-radius:7px;font-size:13px;font-style:normal;
}
.spage a{border:1px solid var(--line);background:#fff;color:#3d5566;transition:.16s}
.spage a:hover{border-color:#b9d3c2;color:#22513a}
.spage b{background:#22513a;color:#fff;border:1px solid #22513a;font-weight:600}
.spage i{color:#9fb0a6}

.sSold{background:rgba(47,107,69,.09)!important;color:#2a6344!important}
.sum-disc dt{color:#b3541e}
.sum-disc dd{color:#b3541e;font-weight:600}
.sum-tip dt{font-size:12.5px;color:#8a7a62}

/* R582 · 商品网格 4 列：101 件在 3 列下一屏只有 9 张，翻页变成体力活 */
.sgrid{grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:1280px){.sgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.sgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sgrid{grid-template-columns:1fr}}


/* =====================================================================
   R582 · 超级智能获客系统（/grow）
   配色取海岱蓝：获客是「往外走」的事，跟非遗那套赭石暖色分开，
   进这个页面就该知道自己在看作业台，不是在看展柜。
   ===================================================================== */
.gwhead{
  background:
    radial-gradient(900px 340px at 12% -30%, rgba(29,91,125,.10), transparent 70%),
    linear-gradient(168deg,#f4f8fa,#eaf1f5 60%,#f2f7f6);
  border-bottom:1px solid #dae6ec;
}
.gwhead h1{color:#12384c}
.gwhead .lead{color:#3f5b6a;max-width:860px}
.gwbar{display:flex;flex-wrap:wrap;gap:0;margin-top:24px;border-top:1px solid #dbe7ec;padding-top:16px}
.gwbar div{display:flex;flex-direction:column;gap:3px;padding-right:30px;margin-right:30px;border-right:1px solid #dbe7ec}
.gwbar div:last-child{border-right:0;margin-right:0;padding-right:0}
.gwbar b{font-family:var(--serif);font-size:23px;color:#1d5b7d;line-height:1.15;font-feature-settings:"tnum"}
.gwbar span{font-size:11.5px;color:#6d8492;letter-spacing:.07em}

.gwwrap{max-width:1240px;margin:0 auto;padding:34px 22px 70px}

.gwnote{
  background:#eff5f8;border:1px solid #d5e4ec;border-left:3px solid #1d5b7d;
  padding:20px 24px;margin-bottom:34px;border-radius:0 10px 10px 0;
}
.gwnote.warn{background:#fdf6ee;border-color:#eadbc4;border-left-color:#b98c3c}
.gwnote b{display:block;font-family:var(--serif);font-size:15px;color:#12384c;margin-bottom:8px;letter-spacing:.02em}
.gwnote.warn b{color:#7a5620}
.gwnote p{font-size:13.2px;line-height:1.95;color:#415966;margin:0}
.gwnote p b{display:inline;font-family:inherit;font-size:inherit;color:#0f3345}

.gwsec{margin-bottom:52px;scroll-margin-top:90px}
.gwsh{display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.gwsh h2{font-family:var(--serif);font-size:20.5px;color:#12384c;font-weight:600;letter-spacing:.01em}
.gwsh span{font-size:12.4px;color:var(--ink-3);flex-shrink:0}
.gwsh span a{color:#1d5b7d;text-decoration:none;border-bottom:1px solid rgba(29,91,125,.3)}
.gwlead{font-size:13.6px;line-height:2;color:#3d4f46;max-width:960px;margin-bottom:20px}
.gwlead b{color:#12384c}
.gwfoot{font-size:12.4px;line-height:1.95;color:#6b7d73;margin-top:14px;max-width:980px}
.gwfoot b{color:#3d4f46}
.gwfoot a{color:#1d5b7d;text-decoration:none}

/* --- 表格 --- */
.gwt{width:100%;border-collapse:collapse;font-size:13px;background:var(--white);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.gwt thead th{background:#eef4f7;color:#3d5c6b;font-weight:600;font-size:11.8px;
  letter-spacing:.06em;text-align:left;padding:10px 12px;border-bottom:1px solid #dbe7ec;white-space:nowrap}
.gwt td{padding:11px 12px;border-bottom:1px solid #f0ece1;vertical-align:middle;line-height:1.6}
.gwt tbody tr:last-child td{border-bottom:0}
.gwt tbody tr:hover{background:#fafcfd}
.gwt .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.gwt a{color:#12384c;text-decoration:none;border-bottom:1px solid rgba(18,56,76,.22)}
.gwt a:hover{border-bottom-color:#1d5b7d;color:#1d5b7d}
.gwt .sm{font-size:12.2px;color:#5c6f66}
.gwt i{font-style:normal}
.gwt i.off{color:#a9a094;font-size:11.8px}
.gwt .gwarea{font-style:normal;font-size:11px;color:#7d909c;margin-left:7px;letter-spacing:.04em}
.gd{font-size:11.4px;padding:2px 9px;border-radius:999px;font-weight:600;white-space:nowrap;letter-spacing:.04em}
.gd.first{background:#1d5b7d;color:#fff}
.gd.second{background:#dcecf3;color:#155570}
.gd.third{background:#eef4ef;color:#2e6b46}
.gd.keep{background:#f4f0e6;color:#7a6a4a}
.gd.none{background:#f1efea;color:#9a9184;font-weight:500}

/* --- 覆盖矩阵 --- */
.gwcov{overflow-x:auto;border-radius:10px}
.cvt{min-width:820px}
.cvt .ct{text-align:left;white-space:nowrap;background:#fafcfd;position:sticky;left:0;z-index:1}
.cvt thead th.ct{background:#eef4f7;z-index:2}
.cvt td.num{text-align:center;font-variant-numeric:tabular-nums}
.cvt td.hot{background:#e6f0f5;color:#12384c;font-weight:600}
.cvt td.zero{color:#cfc9bd}
.cvt tr.tot td{background:#f7fafb;font-weight:600;border-top:1px solid #dbe7ec}
.cvt a{text-decoration:none;border-bottom:0;color:#12384c}

/* --- 内容计划卡 --- */
.gwplan{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gp{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:18px 19px 15px;
  display:flex;flex-direction:column;transition:.22s}
.gp:hover{box-shadow:0 10px 26px rgba(23,57,46,.09);transform:translateY(-2px);border-color:#cfdcd8}
.gp-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.gp-day{font-size:11.5px;color:#fff;background:#1d5b7d;padding:2px 9px;border-radius:5px;letter-spacing:.04em}
.gp-ch{font-size:11.8px;color:#2f5f52;background:#eaf2ee;padding:2px 8px;border-radius:5px}
.gp-mk{font-size:11.8px;color:#7a5620;background:#f7f0e3;padding:2px 8px;border-radius:5px}
.gp-lg{font-size:11px;color:#8a9a93;letter-spacing:.1em;text-transform:uppercase;margin-left:auto}
.gp h3{font-family:var(--serif);font-size:15.5px;line-height:1.62;color:#16241f;margin-bottom:9px;font-weight:600}
.gp-hook{font-size:12.6px;line-height:1.8;color:#6b7d73;font-style:italic;margin-bottom:13px;
  padding-left:10px;border-left:2px solid #e4ece9}
.gp-met{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}
.gp-met span{font-size:11px;color:#6d8492;background:#f2f6f8;padding:1px 7px;border-radius:4px}
.gp-met .gp-prio{background:#eef4ef;color:#2e6b46}
.gp-foot{margin-top:auto;padding-top:11px;border-top:1px dashed #e8e2d4;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.gp-cta{font-size:12px;color:#2e6b46;font-weight:500}
.gp-lk{font-size:12px;color:#1d5b7d;text-decoration:none;white-space:nowrap}
.gp-lk:hover{text-decoration:underline}

/* --- 归因 --- */
.gwat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);gap:26px;align-items:start}
.gwnum{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gwnum div{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:16px 14px;text-align:center}
.gwnum b{display:block;font-family:var(--serif);font-size:25px;color:#1d5b7d;line-height:1.2;font-feature-settings:"tnum"}
.gwnum span{font-size:11.5px;color:#7d909c;letter-spacing:.05em}
.gwat-r{background:#fafcfd;border:1px solid #e2ebef;border-radius:12px;padding:20px 22px}
.gwat-h{display:block;font-family:var(--serif);font-size:14.5px;color:#12384c;margin-bottom:12px}
.gwgap{list-style:none;counter-reset:gg}
.gwgap li{counter-increment:gg;position:relative;padding-left:30px;margin-bottom:13px;font-size:12.8px;line-height:1.85}
.gwgap li:last-child{margin-bottom:0}
.gwgap li:before{content:counter(gg);position:absolute;left:0;top:1px;width:20px;height:20px;
  border-radius:50%;background:#e6eff4;color:#1d5b7d;font-size:11px;font-weight:600;
  display:flex;align-items:center;justify-content:center;font-family:var(--sans)}
.gwgap li b{display:block;color:#16241f;font-size:13px;margin-bottom:2px;font-weight:600}
.gwgap li span{color:#6b7d73}
.gwgap.wide li{padding-left:34px;margin-bottom:17px;font-size:13.2px}
.gwgap.wide li:before{width:23px;height:23px;background:#eef4f7;color:#155570}

/* --- 漏斗 --- */
.gwfun{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;background:var(--white);
  border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px}
.gwfun label{display:flex;flex-direction:column;gap:6px;font-size:11.8px;color:#6d8492;letter-spacing:.04em}
.gwfun input{width:118px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;
  font-size:14px;font-family:var(--sans);color:#16241f;background:#fdfcf8;outline:none;
  font-variant-numeric:tabular-nums}
.gwfun input:focus{border-color:#1d5b7d;background:#fff}
.gwfun button{border:0;background:#1d5b7d;color:#fff;border-radius:8px;padding:10px 22px;
  font-size:13.5px;font-family:var(--sans);cursor:pointer;transition:.2s}
.gwfun button:hover{background:#164a66}
.gwfout{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gwfout div{background:#f4f8fa;border:1px solid #e0eaef;border-radius:10px;padding:16px;text-align:center}
.gwfout b{display:block;font-family:var(--serif);font-size:22px;color:#12384c;line-height:1.25;font-feature-settings:"tnum"}
.gwfout span{font-size:11.4px;color:#6d8492}

/* --- 渠道分组 --- */
.gwkind{margin-bottom:22px}
.gwkind h3{font-size:13px;color:#3d5c6b;font-weight:600;margin-bottom:10px;letter-spacing:.05em}
.gwkind h3 i{font-style:normal;font-size:11.5px;color:#9aa8a2;margin-left:6px;font-weight:400}
.gwchips{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:10px}
.gwchip{display:flex;flex-direction:column;gap:3px;background:var(--white);border:1px solid var(--line);
  border-radius:9px;padding:12px 13px;text-decoration:none;position:relative;transition:.2s}
.gwchip:hover{border-color:#b9cfd9;box-shadow:0 6px 16px rgba(29,91,125,.09);transform:translateY(-1px)}
.gwchip b{font-size:13.2px;color:#16241f;font-weight:600;line-height:1.4;padding-right:34px}
.gwchip i{font-style:normal;font-size:11.2px;color:#8a9a93}
.gwchip em{position:absolute;top:11px;right:11px;font-style:normal;font-size:10px;
  color:#9aa8a2;background:#f3f5f3;padding:1px 6px;border-radius:3px}
.gwchip.on{border-left:2px solid #2e7d5b}
.gwchip.on em{color:#2e6b46;background:#eaf2ee}

/* --- 区域条形 --- */
.gwbars{display:flex;flex-direction:column;gap:11px;max-width:820px}
.gbb{display:flex;align-items:center;gap:14px}
.gbb-n{font-size:12.6px;color:#3d4f46;width:150px;flex-shrink:0;text-align:right}
.gbb-bar{flex:1;height:9px;background:#eef2f0;border-radius:999px;overflow:hidden}
.gbb-bar i{display:block;height:100%;background:linear-gradient(90deg,#4e93b5,#1d5b7d);border-radius:999px}
.gbb b{font-size:12.6px;color:#1d5b7d;width:38px;text-align:right;font-variant-numeric:tabular-nums}

/* --- 表单 --- */
.gwform{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px 24px}
.gwf-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:16px}
.gfl{display:flex;flex-direction:column;gap:7px;font-size:12.2px;color:#3d5c6b;font-weight:500}
.gfl input,.gfl select{border:1px solid var(--line);border-radius:8px;padding:10px 12px;
  font-size:13.5px;font-family:var(--sans);color:#16241f;background:#fdfcf8;outline:none}
.gfl input:focus,.gfl select:focus{border-color:#1d5b7d;background:#fff}
.gfl i{font-style:normal;font-size:11.2px;color:#9aa8a2;line-height:1.6}
.gfl-btn{justify-content:flex-end}
.gfl-btn button{border:0;background:#1d5b7d;color:#fff;border-radius:8px;padding:11px 20px;
  font-size:13.5px;font-family:var(--sans);cursor:pointer;width:100%;transition:.2s}
.gfl-btn button:hover{background:#164a66}
.gwf-note{font-size:11.8px;color:#8a9a93;line-height:1.9;margin-top:4px}
.gwf-note code{background:#f2f6f8;padding:1px 5px;border-radius:3px;font-size:11.5px;color:#1d5b7d}

/* --- 生成结果 / 提示 --- */
.gwmsg{background:#eef6f1;border:1px solid #cfe6d8;border-left:3px solid #2e7d5b;
  padding:13px 18px;border-radius:0 8px 8px 0;font-size:13px;color:#2b5c42;margin-bottom:18px}
.gwmsg.bad{background:#fdf1ef;border-color:#edd3cd;border-left-color:#b2453a;color:#8d3227}
.gwmade{background:#f7fafb;border:1px solid #d5e4ec;border-radius:12px;padding:20px 22px;margin-bottom:26px}
.gwmade>b{display:block;font-family:var(--serif);font-size:14.5px;color:#12384c;margin-bottom:12px}
.gwmade-url{background:#fff;border:1px dashed #b9cfd9;border-radius:8px;padding:13px 15px;overflow-x:auto}
.gwmade-url code{font-size:12.6px;color:#155570;word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace}
.gwmade-act{display:flex;align-items:center;gap:14px;margin-top:13px;flex-wrap:wrap}
.gwmade-act a{font-size:12.4px;color:#1d5b7d;text-decoration:none}
.gwmade-act span{font-size:11.8px;color:#8a9a93}
.gwcopy{border:1px solid #b9cfd9;background:#fff;color:#155570;border-radius:7px;
  padding:7px 15px;font-size:12.5px;font-family:var(--sans);cursor:pointer;transition:.2s}
.gwcopy:hover{background:#1d5b7d;color:#fff;border-color:#1d5b7d}
.gwcopy.sm{padding:4px 11px;font-size:11.5px}
.lkt code{font-size:12px;color:#415966;font-family:ui-monospace,Menlo,Consolas,monospace}
.lknote{display:block;font-style:normal;font-size:11.2px;color:#9aa8a2;margin-top:2px}
.gwempty{font-size:13px;color:#8a9a93;padding:26px 0;text-align:center;background:#fafcfd;
  border:1px dashed #dbe7ec;border-radius:10px}

/* --- 周切换 --- */
.gwtabs{display:flex;gap:9px;margin-bottom:26px;flex-wrap:wrap}
.gwtabs a{font-size:12.6px;color:#3d5c6b;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:6px 17px;text-decoration:none;transition:.2s}
.gwtabs a:hover,.gwtabs a.on{background:#1d5b7d;color:#fff;border-color:#1d5b7d}

/* --- CTA --- */
.gwcta{display:flex;align-items:center;gap:30px;background:linear-gradient(120deg,#12384c,#1d5b7d);
  border-radius:14px;padding:30px 34px;margin-top:8px}
.gwcta>div{flex:1;min-width:0}
.gwcta b{display:block;font-family:var(--serif);font-size:17px;color:#fff;margin-bottom:9px}
.gwcta p{font-size:13px;line-height:1.9;color:rgba(255,255,255,.76);margin:0;max-width:720px}
.gwcta .btn-primary{background:#fff;color:#12384c;border:0;flex-shrink:0;margin-left:auto}
.gwcta .btn-primary em{font-style:normal;margin-left:6px}

@media(max-width:1180px){
  .gwplan{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gwat{grid-template-columns:1fr;gap:20px}
  .gwfout{grid-template-columns:repeat(2,1fr)}
  .gwf-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .gwwrap{padding:26px 16px 56px}
  .gwbar div{padding-right:20px;margin-right:20px}
  .gwbar b{font-size:20px}
  .gwnum{grid-template-columns:repeat(2,1fr)}
  .gwfun{gap:12px}
  .gwfun input{width:100%}
  .gwfun label{flex:1 1 140px}
  .gwf-row{grid-template-columns:1fr}
  .gbb-n{width:104px;font-size:12px}
  .gwcta{flex-direction:column;align-items:flex-start;padding:26px 22px}
  .gwcta .btn-primary{margin-left:0;width:100%;justify-content:center}
}
@media(max-width:640px){
  .gwplan{grid-template-columns:1fr}
  .gwfout{grid-template-columns:1fr}
  .gwsh{flex-direction:column;gap:4px;align-items:flex-start}
  .gwchips{grid-template-columns:1fr}
}

/* 覆盖矩阵：格子里是「已通 / 可用」，一个区一行行摊开就能看出哪格没人 */
.cvt td i{font-style:normal;font-size:11px;color:#a3b0b9;margin-left:1px}
.cvt td.on{background:#e9f2f6;color:#12384c;font-weight:600}
.cvt td.on i{color:#7d9eb0}
.cvt td b{font-weight:600}
.cvt .gcol{background:#f6f9fa}
.cvt thead th.gcol{background:#e7eff3}
.cvt tr.tot td.gcol{background:#f0f5f7}
/* 渠道方块：用 flex 左对齐自然换行 —— 用 auto-fill 网格的话，
   某个类型只有一两条时右边会留一大片空，看着像没加载完 */
.gwchips{display:flex;flex-wrap:wrap;gap:10px}
.gwchip{flex:0 0 212px;max-width:100%}

/* 区域 × 形态 矩阵：14 列，窄屏横向滚动，首列钉住 */
.cvt.fmt{min-width:1020px}
.cvt.fmt td.num{text-align:center}
.cvt.fmt td.zero{color:#d5cec1}
.cvt.fmt thead th.fh{font-size:11px;letter-spacing:.02em;white-space:nowrap;
  writing-mode:horizontal-tb;max-width:64px;overflow:hidden;text-overflow:ellipsis}
.cvt i.off{font-style:normal;color:#b8b1a4}

/* 渠道/区域详情：打法引文 + 六行属性表 */
.gwplay{background:#f6fafb;border-left:3px solid #1d5b7d;border-radius:0 10px 10px 0;
  padding:16px 20px;margin-bottom:18px}
.gwplay p{font-size:13.6px;line-height:2.05;color:#33484f;margin:0}
.gwrows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.gwrows>div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;
  padding:13px 2px;border-bottom:1px solid #f0ece1}
.gwrows>div:last-child{border-bottom:0}
.gwrows b{font-size:12.4px;color:#3d5c6b;font-weight:600;letter-spacing:.02em;line-height:1.9}
.gwrows span{font-size:13px;line-height:1.95;color:#415966;min-width:0}
@media(max-width:720px){
  .gwrows>div{grid-template-columns:1fr;gap:3px;padding:11px 2px}
  .gwrows b{color:#6d8492;font-size:11.8px}
}

/* 体检报告 */
.hp .st{width:78px}
.hp-tag{display:inline-block;font-size:11.4px;padding:2px 9px;border-radius:999px;font-weight:600;white-space:nowrap}
.hp-tag.ok{background:#e9f2ec;color:#2e6b46}
.hp-tag.ng{background:#fbeae7;color:#a5392d}
.hp tr.bad td{background:#fdf8f6}
.hp td.fix{color:#7a5620;font-size:12.2px;line-height:1.8}
.gwbar b.warn{color:#a5392d}

.hpmats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hpm{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:18px 20px;position:relative}
.hpm-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.hpm-top b{font-family:var(--serif);font-size:15.5px;color:#16241f;font-weight:600}
.hp-st{font-size:10.6px;padding:1px 8px;border-radius:999px;margin-left:auto;white-space:nowrap}
.hp-st.live{background:#e5f1ea;color:#2b6b45}
.hp-st.ready{background:#e9eff5;color:#2a5573}
.hp-st.pending{background:#f5efe2;color:#7a6231}
.hpm-tag{font-size:12.4px;color:#6b7d73;line-height:1.75;margin-bottom:12px;
  padding-bottom:11px;border-bottom:1px dashed #e8e2d4}
.hpm-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;margin-bottom:9px}
.hpm-row i{font-style:normal;font-size:11.4px;color:#8a9a93;line-height:1.9;letter-spacing:.04em}
.hpm-row span{font-size:12.5px;line-height:1.85;color:#415966}
.hpm-lk{font-size:12px;color:#1d5b7d;text-decoration:none;display:inline-block;margin-top:4px}
.hpm-lk:hover{text-decoration:underline}
@media(max-width:980px){.hpmats{grid-template-columns:1fr}}

/* 体检表：结论列必须固定宽，否则「达标」会被挤成竖排两个字 */
.hp{table-layout:auto}
.hp th.st,.hp td.st{width:88px;min-width:88px;white-space:nowrap}
.hp td.st{padding-left:14px}
.hp th:nth-child(4),.hp td:nth-child(4){width:34%}
.hp td:nth-child(2){min-width:180px}

/* ===== R582 内容日历：真实日期 / 已发标记 / 过期重排 ===== */
.gpbar{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;
  background:#f5fafb;border:1px solid #dce9ee;border-left:3px solid #1d5b7d;
  border-radius:10px;padding:15px 20px;margin-bottom:18px}
.gpbar-l b{display:block;font-family:var(--serif);font-size:14.5px;color:#12384c;margin-bottom:5px}
.gpbar-l span{font-size:12.4px;line-height:1.8;color:#5a7382}
.gpbar-r{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.gpbar-bg{width:150px;height:6px;background:#e0ebef;border-radius:3px;overflow:hidden}
.gpbar-bg i{display:block;height:100%;background:linear-gradient(90deg,#2e8b6b,#1d5b7d);border-radius:3px;
  transition:width .4s}
.gbtn{font-family:inherit;font-size:12.4px;color:#1d5b7d;background:#fff;border:1px solid #bcd2dc;
  border-radius:6px;padding:7px 14px;cursor:pointer;transition:.2s;white-space:nowrap}
.gbtn:hover{background:#1d5b7d;color:#fff;border-color:#1d5b7d}
.gbtn.sm{font-size:11.8px;padding:4px 11px;color:#5a7382;border-color:#d8e3e8}
.gbtn.sm:hover{background:#12384c;color:#fff;border-color:#12384c}
.gpn{font-size:12.6px;line-height:1.85;border-radius:9px;padding:13px 18px;margin-bottom:16px;
  background:#f3f8f5;border:1px solid #d9e8de;color:#3d5c4c}
.gpn b{color:#1d5b7d}
.gpn.bad{background:#fdf6f2;border-color:#ecd9cb;color:#7a5233}
.gpn.bad b{color:#a4552a}
.gpn.ok{background:#f4faf6;border-color:#d5e9dc;color:#356b4e}
.wst{font-style:normal;font-size:11px;padding:1px 8px;border-radius:4px;letter-spacing:.03em}
.wst.past{background:#f0f0ee;color:#93938c}
.wst.now{background:#e3f1ea;color:#2e6b46}
.wst.future{background:#eef3f7;color:#5a7382}
.gwsh em.wst{vertical-align:1px}
.gp.dn{border-color:#cfe3d5;background:#fbfdfc}
.gp.dn h3{color:#5c6f65}
.gp.dn .gp-day{background:#8aa89b}
.gp-do{margin-top:11px;padding-top:9px;border-top:1px dashed #e8e2d4;
  display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.gp-note{font-size:11px;color:#8a9a93;letter-spacing:.02em}
@media(max-width:980px){.gpbar{flex-direction:column;align-items:flex-start}}
.gp-do form{display:inline-flex;margin:0}
.lkt td.sm{white-space:nowrap}
.lkt .lknote{display:block;font-size:11px;color:#8a9a93;font-style:normal;margin-top:2px}

/* =====================================================================
   R583 · 标题改亮黄 / 淡黄
   难点不在「改黄」，在「黄在浅底上看不见」。所以分两处处理：
     首屏：淡绿游云不动，文字区加一层墨绿云影（径向、羽化），黄字才立得住；
     正文版块：黄字加一圈极细的墨绿描边（text-stroke + 多层 text-shadow 双保险），
               浅米底上靠边线立形 —— 谷歌内核走 stroke，火狐走 shadow，两边都能读。
   只动标题与首屏文字，卡片内小标题保持墨绿：全站小标题改黄会糊成一片。
   ===================================================================== */
/* --- 首屏：文字区压一层云影，淡绿朦胧保持不动 --- */
.hero-photo .hp-veil::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  /* 只压文字所在的中段偏左，天空顶部留干净 —— 压到顶会把淡绿游云压成灰雾 */
  background:
    radial-gradient(96% 62% at 2% 52%,rgba(9,42,29,.66) 0%,rgba(9,42,29,.40) 34%,rgba(9,42,29,.14) 58%,rgba(9,42,29,0) 74%);
}
.hp-kicker{color:#FFDF8F;letter-spacing:.18em;
  text-shadow:0 1px 8px rgba(8,26,18,.62)}
.hpline{background:linear-gradient(90deg,#FFD84D,rgba(255,216,77,0))}
.hp-title .t1{
  color:#FFD84D;
  text-shadow:
    0 1px 0 rgba(10,32,22,.55),0 2px 0 rgba(10,32,22,.45),
    0 4px 22px rgba(6,20,14,.62),0 0 46px rgba(255,216,77,.20);
}
.hp-title .t2{
  background:linear-gradient(100deg,#FFF6C9 6%,#FFE07A 42%,#FFC93C 88%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  text-shadow:none;
  filter:drop-shadow(0 2px 0 rgba(10,32,22,.42)) drop-shadow(0 5px 20px rgba(6,20,14,.55));
}
.hero-photo .hp-sub{color:#FFE08A;-webkit-text-fill-color:#FFE08A;
  text-shadow:0 1px 12px rgba(8,26,18,.66);filter:none}
.hp-note{color:rgba(255,230,168,.92);text-shadow:0 1px 10px rgba(8,26,18,.55)}
/* 数字行：提高一级选择器 + 显式写 text-fill-color —— 只写 color 会被更早的
   background-clip:text 规则留下的 text-fill 顶掉，肉眼看到的是「改了没生效」 */
.hero-photo .hp-stats div b{
  color:#FFD84D;-webkit-text-fill-color:#FFD84D;
  -webkit-text-stroke-width:.5px;-webkit-text-stroke-color:rgba(22,52,38,.85);
  text-shadow:0 1px 0 rgba(22,52,38,.45),0 -1px 0 rgba(22,52,38,.35),0 2px 8px rgba(10,30,22,.35);
}
.hero-photo .hp-stats div span{color:#46604f}

/* --- 正文版块大标题：亮黄 + 极细墨绿描边 --- */
.sec-head h2,
.cta-band h2,.cb-head h2,.mem-head h2,.triad .sec-head h2,
.page-head h1,.gwhead h1,.hp2 h1{
  color:#FFD84D !important;
  -webkit-text-fill-color:#FFD84D;
  /* 不用 text-stroke：亚像素描边在这个渲染器里会把字形整块填成描边色，
     黄字变成橄榄绿 —— 试过三次才认，靠 text-shadow 压边更稳 */
  text-shadow:
    0 1px 0 rgba(26,58,44,.55),0 2px 0 rgba(26,58,44,.30),
    0 3px 12px rgba(26,58,44,.22);
}
.sec-head h2::before{color:#F0A81E}
.sec-head p{color:#4a5d52}
/* 内页页头也是浅底，黄字同样靠描边立形，不另开一套 */
/* ★ 数据条被首屏那层云影覆盖了：.hp-veil 是 z-index:1，.hp-stats 没设层级，
   于是数字被半透明墨绿罩了一层，黄字看上去像暗橄榄绿 —— 不设层级，改多少次颜色都白改 */
.hp-stats{position:relative;z-index:2}

/* ===== R583 · 政策对齐页 ===== */
.pnote{background:#f5f8fb;border:1px solid #dde7ef;border-left:3px solid #1d5b7d;
  border-radius:10px;padding:16px 20px;margin-bottom:26px}
.pnote>b{display:block;font-family:var(--serif);font-size:14.5px;color:#12384c;margin-bottom:8px}
.pnote p b{display:inline;font-size:inherit;margin-bottom:0;color:#12384c}
/* .pnote>p:first-of-type>b 这条选择器会把段内所有加粗都撑成块级，
   造成「环节 / 生产制造 / 研发设计」各自独占一行 —— 已删，只保留 .pnote>b */
.pnote p{font-size:12.8px;line-height:1.9;color:#4a5f6d;margin-bottom:8px}
.pnote p:last-child{margin-bottom:0}
.pnote b{color:#12384c}
.lvtag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:4px;margin:0 2px;vertical-align:1px}
.lvtag.ok{background:#e3f1ea;color:#2e6b46}
.lvtag.part{background:#fbf1df;color:#8a5f10}
.lvtag.no{background:#f7ebeb;color:#9b3a3a}

.pcl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pc{background:var(--white);border:1px solid var(--line);border-left:3px solid #cbd8d2;
  border-radius:10px;padding:18px 20px 16px;display:flex;flex-direction:column}
.pc-h{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.pc-lv{font-size:11px;padding:2px 9px;border-radius:4px;letter-spacing:.03em}
.pc-lv.ok{background:#e3f1ea;color:#2e6b46}
.pc-lv.part{background:#fbf1df;color:#8a5f10}
.pc-lv.no{background:#f7ebeb;color:#9b3a3a}
.pc-code{font-size:11px;color:#9aa8a2;letter-spacing:.08em}
.pc h3{font-family:var(--serif);font-size:15.5px;line-height:1.6;color:#16241f;margin-bottom:6px;font-weight:600}
.pc-src{font-size:11.2px;color:#8a9a93;line-height:1.7;margin-bottom:12px;
  padding-bottom:11px;border-bottom:1px dashed #e8e2d4}
.pc-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;margin-bottom:9px}
.pc-row>b{font-size:11.5px;color:#7d909c;font-weight:600;letter-spacing:.04em;padding-top:2px}
.pc-row p{font-size:12.6px;line-height:1.85;color:#41544a}
.pc-row p a{color:#1d5b7d;text-decoration:none;border-bottom:1px solid #cfe0e8}
.pc-row p a:hover{border-bottom-color:#1d5b7d}
.pc-ev p em{font-style:normal;font-family:var(--serif);font-size:14px;color:#1d5b7d;
  margin-left:8px;font-feature-settings:"tnum"}
.pc-gap b{color:#a4552a}
.pc-gap p{color:#7a5233}
.pc-fix b{color:#2e6b46}
.pc-fix p{color:#3d5c4c}
.pct td.sm{font-size:11.8px;color:#5c6f65}
.pct .pclack{color:#a4552a}
.p1pbox{background:#fbfcfb;border:1px solid #dfe8e3;border-radius:10px;padding:22px 26px}
.p1pbox p{font-size:13.2px;line-height:2;color:#33463c;margin-bottom:10px}
.p1pbox p:last-child{margin-bottom:0}
.p1pbox b{color:#12384c}
.p1psrc{font-size:11.4px;color:#9aa8a2;margin-top:10px;text-align:right}
@media(max-width:980px){
  .pcl{grid-template-columns:1fr}
  .pc-row{grid-template-columns:1fr;gap:3px}
}

/* 数字行：去掉描边后黄字正常显色（描边见上一条注释） */
.hero-photo .hp-stats div b{
  color:#FFD84D;-webkit-text-fill-color:#FFD84D;
  -webkit-text-stroke-width:0;   /* 上面那条旧规则留了 .5px 描边，必须显式清掉 */
  text-shadow:0 1px 0 rgba(20,50,36,.55),0 2px 8px rgba(8,26,18,.30);
}
.hero-photo .hp-stats div span{color:#46604f}

/* 浅米底上的黄字对比不够：给版块大标题垫一块深墨绿铭牌，
   黄字靠底色立起来，比加描边干净（描边见前面那条注释）。 */
.sec-head h2,
.triad .sec-head h2,.cta-band h2,.cb-head h2,.mem-head h2{
  display:inline-block;
  background:linear-gradient(120deg,#14332a 0%,#1c4a3a 62%,#17392e 100%);
  padding:.16em .62em .20em;
  border-radius:7px;
  box-shadow:0 6px 20px rgba(20,51,42,.18);
  text-shadow:0 1px 0 rgba(0,0,0,.35);
}
.sec-head h2::before{color:#FFC93C}
.sec-head.center h2{margin-left:auto;margin-right:auto}

/* ===== R584 · 场景清单（6 环节 × 18 场景） ===== */
.sct td{vertical-align:middle}
.sct .pctbar{display:inline-block;width:56px;height:6px;background:#e6eef1;border-radius:3px;
  overflow:hidden;margin-right:8px;vertical-align:1px}
.sct .pctbar i{display:block;height:100%;background:linear-gradient(90deg,#2e8b6b,#1d5b7d);border-radius:3px}
.scl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.scl.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.sc{background:#fff;border:1px solid var(--line);border-left:3px solid #cbd8d2;
  border-radius:10px;padding:16px 18px 14px;display:flex;flex-direction:column}
.sc-h{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.sc-code{font-size:11px;color:#8a9a93;letter-spacing:.1em;font-family:var(--mono,monospace)}
.sc-st{font-size:11px;padding:1px 7px;border-radius:4px;background:#eef3f7;color:#5a7382}
.sc-n{margin-left:auto;font-size:11.5px;color:#7d909c;white-space:nowrap}
.sc-n b{font-family:var(--serif);font-size:15px;color:#1d5b7d;margin-right:2px}
.sc h3{font-family:var(--serif);font-size:15px;line-height:1.55;color:#16241f;
  margin-bottom:7px;font-weight:600}
.sc-why{font-size:12.4px;line-height:1.85;color:#4a5f6d;margin-bottom:10px}
.sc-met{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:11.2px;color:#8a9a93;padding-top:9px;border-top:1px dashed #e8e2d4}
.sc-met a{color:#1d5b7d;text-decoration:none;white-space:nowrap}
.sc-met a:hover{text-decoration:underline}
.sc-dl{list-style:none;margin-top:10px;padding-top:9px;border-top:1px dashed #e8e2d4}
.sc-dl li{margin-bottom:8px}
.sc-dl li:last-child{margin-bottom:0}
.sc-dl a{display:block;font-size:12px;line-height:1.6;color:#33544a;text-decoration:none;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical}
.sc-dl a:hover{color:#1d5b7d}
.sc-dl em{display:block;font-style:normal;font-size:10.8px;color:#9aa8a2;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc.gen{border-left-color:#c8a86a;background:#fffdf8}
.sc.no{border-left-color:#d9c3b8;background:#fdfaf8}
.sc-gap{font-size:11.8px;line-height:1.8;color:#7a5233;background:#fdf6f2;
  border:1px solid #ecd9cb;border-radius:7px;padding:9px 12px;margin-top:2px}
.sc-gap b{color:#a4552a}
@media(max-width:980px){
  .scl,.scl.two{grid-template-columns:1fr}
  .sct{display:block;overflow-x:auto;white-space:nowrap}
  .sct td.sm:last-child{white-space:normal}
}
/* 页头黄字在浅米底上对比不足：用暗边托一下（不用 text-stroke，见 R583 那条坑） */
.page-head h1,.gwhead h1{
  text-shadow:0 1px 0 rgba(20,51,42,.50),0 2px 0 rgba(20,51,42,.26),
              0 3px 14px rgba(20,51,42,.20);
}

/* ===== R584 · 发件箱 / 成品页 ===== */
.dsl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ds{background:#fff;border:1px solid var(--line);border-left:3px solid #c8d8d0;
  border-radius:10px;padding:15px 17px 13px;display:flex;flex-direction:column}
.ds.blk{border-left-color:#d9b8a8;background:#fdfaf8}
.ds-h{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap}
.ds-ch{font-size:11px;padding:1px 8px;border-radius:4px;background:#e8f0f4;color:#1d5b7d;letter-spacing:.02em}
.ds-mk{font-size:11px;padding:1px 8px;border-radius:4px;background:#f0f4ef;color:#4a6b52}
.ds-lg{font-size:11px;padding:1px 7px;border-radius:4px;background:#f4f1ea;color:#8a7a52;
  letter-spacing:.06em;text-transform:uppercase}
.ds-n{margin-left:auto;font-size:11px;color:#a9b4ae;font-family:var(--mono,monospace)}
.ds h3{font-size:14.5px;line-height:1.6;color:#16241f;margin-bottom:6px;font-weight:600}
.ds h3 a{color:inherit;text-decoration:none}
.ds h3 a:hover{color:#1d5b7d}
.ds-lede{font-size:12.2px;line-height:1.8;color:#5c6f65;margin-bottom:9px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ds-met{display:flex;align-items:center;gap:12px;font-size:11px;color:#93a09a;
  padding-top:9px;border-top:1px dashed #e8e2d4;margin-top:auto}
.ds-rev{color:#a4552a;background:#fdf3ec;padding:1px 7px;border-radius:4px}
.ds-do{margin-top:10px;padding-top:9px;border-top:1px dashed #e8e2d4;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ds-form{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.ds-form input{flex:1;min-width:0;font-family:inherit;font-size:11.5px;color:#33463c;
  border:1px solid #d8e3e8;border-radius:6px;padding:5px 9px;background:#fbfcfb}
.ds-form input:focus{outline:none;border-color:#1d5b7d;background:#fff}
.ds-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.ds-acts form{display:flex;margin:0}
.dst td a{color:#16241f;text-decoration:none}
.dst td a:hover{color:#1d5b7d;text-decoration:underline}

.dpst{font-size:12px;color:#6b7d73;margin-bottom:14px;display:flex;align-items:center;
  gap:10px;flex-wrap:wrap}
.dart{background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:30px 38px 26px;max-width:900px;margin-bottom:20px}
.dart h2{font-family:var(--serif);font-size:17px;color:#14332a;margin:24px 0 10px;
  padding-left:11px;border-left:3px solid #2e8b6b;line-height:1.5}
.dart h2:first-child{margin-top:0}
.dart p{font-size:14px;line-height:2.05;color:#33463c;margin-bottom:13px}
.dart ul{margin:0 0 14px 0;padding-left:0;list-style:none}
.dart ul li{position:relative;padding-left:19px;font-size:13.6px;line-height:1.95;
  color:#3d5147;margin-bottom:9px}
.dart ul li::before{content:'';position:absolute;left:2px;top:12px;width:5px;height:5px;
  border-radius:50%;background:#8aa89b}
.dart .dkv{display:grid;grid-template-columns:118px minmax(0,1fr);gap:0;
  border:1px solid #e4ece8;border-radius:9px;overflow:hidden;margin:0 0 16px}
.dart .dkv dt{background:#f6faf8;font-size:12.2px;color:#6b7d73;padding:9px 14px;
  border-bottom:1px solid #e4ece8;border-right:1px solid #e4ece8}
.dart .dkv dd{font-size:12.8px;color:#26382f;padding:9px 14px;border-bottom:1px solid #e4ece8}
.dart .dkv dt:nth-last-of-type(1),.dart .dkv dd:nth-last-of-type(1){border-bottom:0}
.dcta{max-width:900px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.dbtn{display:inline-block;background:linear-gradient(120deg,#1d5b7d,#2e8b6b);color:#fff;
  font-size:13.6px;padding:11px 26px;border-radius:7px;text-decoration:none;
  box-shadow:0 6px 18px rgba(29,91,125,.22)}
.dbtn:hover{filter:brightness(1.08)}
.dctan{font-size:11.5px;color:#8a9a93;line-height:1.7;max-width:520px}
.dtags{max-width:900px;margin-bottom:22px}
.dtags span{display:inline-block;font-size:11.5px;color:#1d5b7d;background:#eef4f7;
  border-radius:4px;padding:2px 9px;margin:0 6px 6px 0}
.dplain{width:100%;max-width:900px;font-family:var(--mono,monospace);font-size:12px;
  line-height:1.85;color:#33463c;background:#fbfcfb;border:1px solid #dfe8e3;
  border-radius:9px;padding:16px 18px;resize:vertical}
.dut{word-break:break-all;font-size:11.5px}
@media(max-width:980px){
  .dsl{grid-template-columns:1fr}
  .dart{padding:22px 20px 18px}
  .dart .dkv{grid-template-columns:1fr}
  .dart .dkv dt{border-right:0;padding-bottom:2px;border-bottom:0}
  .dart .dkv dd{padding-top:2px}
}

/* ===== R584 · 落地山东 ===== */
.lvtxt{font-style:normal;font-size:12px;color:#93a09a}
.ldt tr.ok td{background:#fbfdfc}
.ldt .gbtn.on{background:#2e8b6b;color:#fff;border-color:#2e8b6b}
.ldt form{margin:0;display:flex}
.ld2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.ldbox{background:#fff;border:1px solid var(--line);border-left:3px solid #c8d8d0;
  border-radius:10px;padding:16px 18px 14px}
.ldbox>b{display:block;font-family:var(--serif);font-size:14.5px;color:#14332a;margin-bottom:11px}
.ldl{list-style:none;margin:0}
.ldl li{margin-bottom:10px;padding-bottom:9px;border-bottom:1px dashed #eef0ea}
.ldl li:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}
.ldl em{display:block;font-style:normal;font-size:13px;color:#1d5b7d;margin-bottom:3px;
  letter-spacing:.01em}
.ldl span{display:block;font-size:11.8px;line-height:1.7;color:#6b7d73}
.ldn{font-size:11.2px;line-height:1.75;color:#9aa8a2;margin-top:11px;
  padding-top:9px;border-top:1px dashed #eef0ea}

.csl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.cs{background:#fff;border:1px solid var(--line);border-left:3px solid #2e8b6b;
  border-radius:10px;padding:16px 17px 14px;display:flex;flex-direction:column}
.cs-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cs-code{font-size:11px;color:#8a9a93;letter-spacing:.1em;font-family:var(--mono,monospace)}
.cs-n{font-size:11.5px;color:#7d909c}
.cs-n b{font-family:var(--serif);font-size:16px;color:#1d5b7d;margin-right:2px}
.cs h3{font-family:var(--serif);font-size:14.5px;line-height:1.55;color:#16241f;
  margin-bottom:7px;font-weight:600}
.cs-why{font-size:12.2px;line-height:1.8;color:#5c6f65;margin-bottom:12px}
.cs-bars{margin-bottom:11px}
.cs-b{display:grid;grid-template-columns:88px minmax(0,1fr) 34px;align-items:center;
  gap:8px;margin-bottom:6px}
.cs-b span{font-size:11.2px;color:#5c6f65;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-b i{display:block;height:6px;background:linear-gradient(90deg,#2e8b6b,#6aa88b);
  border-radius:3px;min-width:2px}
.cs-b em{font-style:normal;font-size:11px;color:#8a9a93;text-align:right;
  font-variant-numeric:tabular-nums}
.cs-s{list-style:none;margin:0 0 10px 0;padding:9px 0 0;border-top:1px dashed #eef0ea}
.cs-s li{font-size:11.4px;line-height:1.6;color:#6b7d73;margin-bottom:6px;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical}
.cs-ts{font-size:10.8px;line-height:1.65;color:#a9b4ae;margin-top:auto;padding-top:9px;
  border-top:1px dashed #eef0ea}
.cs-ts code{font-size:10.5px;background:#f4f6f4;padding:1px 4px;border-radius:3px}
.lvt td{vertical-align:top}
.lmt{margin-top:14px}
.lmt th{text-align:left;font-weight:600}
@media(max-width:1080px){.csl{grid-template-columns:1fr}}
@media(max-width:980px){.ld2{grid-template-columns:1fr}}
/* R584b · 提亮后的补偿：整体亮了，但文字块那一小块要暗回来
   用一块「贴身的」径向墨（只罩住标题区，不外扩），
   做到「图是亮的、字是清的」—— 而不是把整张图重新压黑。 */
.hero-photo .hp-veil::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(50% 38% at 19% 33%, rgba(6,26,18,.30) 0%, rgba(6,26,18,.15) 50%,
                    rgba(6,26,18,.03) 72%, rgba(6,26,18,0) 86%);
}
/* 亮底上黄字要更饱和才站得住：#FFE08A 这类淡黄在浅绿上会「发闷」 */
.hp-kicker{color:#FFDA5F;-webkit-text-fill-color:#FFDA5F;
  text-shadow:0 1px 0 rgba(6,20,14,.55),0 2px 10px rgba(6,20,14,.60)}
.hero-photo .hp-sub{color:#FFE066;-webkit-text-fill-color:#FFD24A;
  text-shadow:0 1px 0 rgba(6,20,14,.55),0 3px 16px rgba(6,20,14,.55);filter:none}
.hp-title .t2{
  background:linear-gradient(100deg,#FFF0B8 4%,#FFD84D 42%,#EFAF2C 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 2px 0 rgba(6,22,14,.50)) drop-shadow(0 6px 22px rgba(6,20,14,.55));
}
.hp-note{color:#FFE5A6;-webkit-text-fill-color:#FFE5A6;
  text-shadow:0 1px 0 rgba(6,20,14,.50),0 2px 10px rgba(6,20,14,.52)}
.hero-photo .hp-stats{background:linear-gradient(180deg,rgba(6,24,16,.10) 0%,
  rgba(6,24,16,.42) 38%,rgba(6,24,16,.60) 100%)}

/* R584c · 提亮之后的收尾：底色一亮，浅色小字就读不清了
   规则很简单：**大标题用黄（要求），小字用深墨绿（可读）**。
   小字也刷成黄，只会变成一团发灰的黄 —— 那不是统一，是看不清。 */
.hp-kicker{color:#2f5a45 !important;-webkit-text-fill-color:#2f5a45 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.55),0 0 10px rgba(255,255,255,.35) !important;
  font-weight:600}
.hp-note{color:#38584a !important;-webkit-text-fill-color:#38584a !important;
  text-shadow:0 1px 0 rgba(255,255,255,.45) !important}
.hero-photo .hp-stats div span{color:#3f5b4d !important;-webkit-text-fill-color:#3f5b4d !important;
  text-shadow:0 1px 0 rgba(255,255,255,.40)}
.hero-photo .hp-sub{text-shadow:0 1px 0 rgba(255,255,255,.50),0 2px 12px rgba(255,255,255,.28),
  0 0 1px rgba(6,20,14,.30) !important}

/* R584d · 两处收尾：
   ① 数据条是深绿渐变底，标签必须用浅色，用深色是糊成一团；
   ② 说明段的类名是 .hp-note，但被更早的渐变文字规则按住，
      提高一级特异性才压得住。 */
.hero-photo .hp-stats div span{color:rgba(234,242,230,.88) !important;
  -webkit-text-fill-color:rgba(234,242,230,.88) !important;
  text-shadow:0 1px 6px rgba(6,20,14,.40)}
.hero-photo .hp-note{color:#24483a !important;-webkit-text-fill-color:#24483a !important;
  font-weight:500;text-shadow:0 1px 0 rgba(255,255,255,.56)}

/* =====================================================================
   R585 · 首屏终版（本文件里首屏的唯一权威定义）
   背景：首屏在此前被改过四轮，规则互相覆盖且颜色自相矛盾 ——
     · R58x 浅色版把照片去色 + 压到 30%/46% 不透明 + multiply，再盖 90% 白绿雾
     · R584a 又把亮度拉到 1.30
     · R584b/c/d 黄字补偿里小字一会儿亮黄一会儿深墨绿，还留了一条
       -webkit-text-stroke:.5px（正是把黄字糊成橄榄绿的那条）
   四层叠加的结果是「照片看不见、黄字立不住、整体发灰」。
   这里不再打补丁，直接给终版值，并把前几轮的白雾/白游云/伪元素雾层显式关掉。
   ===================================================================== */

/* --- 1. 底：深墨绿兜底，照片回本色 --- */
.hero-photo{
  background:#08130f !important;
  min-height:clamp(620px,94vh,920px);
}
.hero-photo .hp-media{
  opacity:1 !important;
  filter:brightness(1.05) saturate(1.08) contrast(1.03) !important;
  mix-blend-mode:normal !important;
  background-position:center 42%;
  background-size:cover;
}

/* --- 2. 遮罩：只此一层，上压顶栏 / 中留山形 / 下压文字 --- */
.hero-photo .hp-veil{
  background:
    linear-gradient(180deg,
      rgba(4,14,10,.90) 0%,
      rgba(4,14,10,.50) 14%,
      rgba(4,14,10,.12) 34%,
      rgba(4,14,10,.16) 48%,
      rgba(4,14,10,.50) 68%,
      rgba(4,14,10,.86) 88%,
      rgba(4,14,10,.95) 100%) !important;
}
/* 前几轮挂在 .hp-veil 上的两块伪元素云影：直接不生成 */
.hero-photo .hp-veil::before,
.hero-photo .hp-veil::after{content:none !important;background:none !important}

/* --- 3. 雾层与光斑：留一点点空气感，绝不再盖棉被 --- */
.hero-photo .hp-cloud i{opacity:.05 !important}
.hero-photo .hp-glow i{opacity:.14 !important}
/* .hp-mist 在本文件里被定义过三次（.20 / .55 / .62），后两条生效，
   所以这里必须写 !important 才能压住 */
.hero-photo .hp-mist,
.hp-mist{opacity:.08 !important}
.hero-photo .hp-grain{opacity:.10 !important;mix-blend-mode:overlay !important}

/* --- 4. 顶栏：深底不能配一条米白渐变 --- */
body:has(.hero-photo) .topbar:not(.solid){
  background:linear-gradient(180deg,rgba(4,14,10,.58) 0%,rgba(4,14,10,.20) 62%,rgba(4,14,10,0) 100%) !important;
  backdrop-filter:none !important;
}
body:has(.hero-photo) .topbar:not(.solid) .brand-txt b{color:#F7F3E7 !important;text-shadow:0 1px 10px rgba(0,0,0,.55) !important}
body:has(.hero-photo) .topbar:not(.solid) .brand-txt i{color:rgba(235,228,208,.72) !important}
body:has(.hero-photo) .topbar:not(.solid) .nav a{color:rgba(247,243,231,.92) !important;text-shadow:0 1px 10px rgba(0,0,0,.55) !important}
body:has(.hero-photo) .topbar:not(.solid) .nav a:hover{color:#FFD84D !important}
body:has(.hero-photo) .topbar:not(.solid) .langsw span{color:rgba(247,243,231,.90) !important}
body:has(.hero-photo) .topbar:not(.solid) .q{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(240,232,210,.36) !important;
}
body:has(.hero-photo) .topbar:not(.solid) .q input{color:#F7F3E7 !important}
body:has(.hero-photo) .topbar:not(.solid) .q input::placeholder{color:rgba(235,228,208,.60) !important}
body:has(.hero-photo) .topbar:not(.solid) .q button{color:#F7F3E7 !important}
body:has(.hero-photo) .topbar:not(.solid) .burger{color:#F7F3E7 !important}
body:has(.hero-photo) .topbar:not(.solid) .btn-line{
  color:#F7F3E7 !important;border-color:rgba(240,232,210,.52) !important;
  background:rgba(255,255,255,.07) !important;
}
body:has(.hero-photo) .topbar:not(.solid) .btn-line:hover{background:rgba(255,255,255,.18) !important}

/* --- 5. 首屏文字：深底配色，亮黄 / 淡黄 / 米白三档 --- */
.hero-photo .hp-kicker{
  color:#FFD24A !important;-webkit-text-fill-color:#FFD24A !important;
  text-shadow:0 1px 10px rgba(0,0,0,.62) !important;font-weight:500;
}
.hero-photo .hpline{background:linear-gradient(90deg,#FFD84D,rgba(255,216,77,0)) !important}
.hero-photo .hp-title .t1{
  color:#FFD84D !important;-webkit-text-fill-color:#FFD84D !important;
  /* 描边一律为 0：亚像素描边会把整块字形填成描边色（踩过三次） */
  -webkit-text-stroke-width:0 !important;
  text-shadow:0 2px 0 rgba(0,0,0,.30),0 6px 28px rgba(0,0,0,.58) !important;
}
.hero-photo .hp-title .t2{
  background:linear-gradient(100deg,#FFF8D8 4%,#FFE483 40%,#F5C13C 92%) !important;
  -webkit-background-clip:text !important;background-clip:text !important;
  -webkit-text-fill-color:transparent !important;color:transparent !important;
  -webkit-text-stroke-width:0 !important;
  filter:drop-shadow(0 2px 0 rgba(0,0,0,.28)) drop-shadow(0 6px 22px rgba(0,0,0,.52)) !important;
}
.hero-photo .hp-sub{
  color:#FFE08A !important;-webkit-text-fill-color:#FFE08A !important;
  text-shadow:0 2px 14px rgba(0,0,0,.62) !important;filter:none !important;
}
.hero-photo .hp-note{
  color:rgba(240,242,232,.94) !important;-webkit-text-fill-color:rgba(240,242,232,.94) !important;
  text-shadow:0 1px 12px rgba(0,0,0,.66) !important;font-weight:400;
}
.hero-photo .hp-seal{color:rgba(240,232,210,.32) !important;border-right-color:rgba(240,232,210,.16) !important}

/* --- 6. 数据条：深玻璃 + 亮黄数字（描边清零） --- */
.hero-photo .hp-stats{
  position:relative;z-index:3;
  background:linear-gradient(180deg,rgba(4,14,10,0) 0%,rgba(4,14,10,.52) 40%,rgba(4,14,10,.72) 100%) !important;
  backdrop-filter:blur(2px);
}
.hero-photo .hp-stats div b{
  color:#FFD84D !important;-webkit-text-fill-color:#FFD84D !important;
  -webkit-text-stroke-width:0 !important;-webkit-text-stroke-color:transparent !important;
  text-shadow:0 2px 10px rgba(0,0,0,.55) !important;
}
.hero-photo .hp-stats div span{
  color:rgba(226,236,222,.84) !important;-webkit-text-fill-color:rgba(226,236,222,.84) !important;
  text-shadow:0 1px 6px rgba(0,0,0,.50) !important;
}

/* --- R585b · 首屏文字列的贴身影 --- */
.hero-photo .hp-in{position:relative;z-index:3}
.hero-photo .hp-in::before{
  content:'';position:absolute;z-index:-1;pointer-events:none;
  left:-56px;right:-90px;top:-70px;bottom:-26px;
  background:
    radial-gradient(74% 64% at 24% 50%,
      rgba(4,14,10,.58) 0%, rgba(4,14,10,.34) 46%,
      rgba(4,14,10,.10) 72%, rgba(4,14,10,0) 88%);
}
.hero-photo .hp-kicker{
  color:#FFD84A !important;-webkit-text-fill-color:#FFD84A !important;
  text-shadow:0 1px 0 rgba(0,0,0,.42),0 2px 12px rgba(0,0,0,.72) !important;
  font-weight:600;
}
.hero-photo .hp-note{
  color:rgba(244,246,238,.96) !important;
  -webkit-text-fill-color:rgba(244,246,238,.96) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.40),0 2px 12px rgba(0,0,0,.70) !important;
}
/* 玻璃按钮：浅色版把它改成了白底墨绿字，深底上等于两块灰斑 */
.hero-photo .hp-cta .btn-glass{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(240,232,210,.58) !important;
  color:#F7F3E7 !important;
  backdrop-filter:blur(8px);
}
.hero-photo .hp-cta .btn-glass:hover{
  background:rgba(255,255,255,.20) !important;
  border-color:#FFD84D !important;color:#FFD84D !important;
}

/* =====================================================================
   R585c · 标题黄只属于深底
   R583 把全站 .sec-head h2 / .page-head h1 都刷成了 #FFD84D，但内页是米白底，
   亮黄在米白上对比度只有 1.8:1 —— 等于看不见。用户要的是「主页标题亮黄」，
   不是「全站都黄」。按底色分档：深底留亮黄，浅底换深金（仍是金色调，可读）。
   ===================================================================== */
body:not(:has(.hero-photo)) .sec-head h2,
body:not(:has(.hero-photo)) .cta-band h2,
body:not(:has(.hero-photo)) .cb-head h2,
body:not(:has(.hero-photo)) .mem-head h2,
body:not(:has(.hero-photo)) .triad .sec-head h2,
body:not(:has(.hero-photo)) .page-head h1,
body:not(:has(.hero-photo)) .gwhead h1,
body:not(:has(.hero-photo)) .hp2 h1{
  color:#A9761B !important;
  -webkit-text-fill-color:#A9761B !important;
  text-shadow:0 1px 0 rgba(255,255,255,.55) !important;
}
/* 深色版块里的标题（如深底 CTA 带）继续用亮黄，别一刀切 */
.cta-band h2,.mem-head h2,.hp2 h1{
  color:#FFD84D !important;
  -webkit-text-fill-color:#FFD84D !important;
}

/* --- R585d · 眉标：浅金在米白底上等于没有，换深金 --- */
.eyebrow{color:#8C6112;letter-spacing:.24em;font-weight:600}

/* --- R585e · 首屏顶栏的浅底胶囊改深玻璃（ZH / 购物车） --- */
body:has(.hero-photo) .topbar:not(.solid) .langsw{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(240,232,210,.38) !important;
  color:#F7F3E7 !important;
}
body:has(.hero-photo) .topbar:not(.solid) .langsw span{color:#F7F3E7 !important}
body:has(.hero-photo) .topbar:not(.solid) .cartbtn{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(240,232,210,.38) !important;
  color:#F7F3E7 !important;
}
body:has(.hero-photo) .topbar:not(.solid) .cartbtn:hover{
  background:rgba(255,255,255,.20) !important;color:#FFD84D !important;
}
/* 下拉菜单是白底，菜单项必须回到深色，别跟着顶栏一起变浅 */
body:has(.hero-photo) .topbar:not(.solid) .langlist a{color:#22352a !important}

/* =====================================================================
   R586 · 全链驾驶舱 + 全球鲁商对接台
   ===================================================================== */
.chnflow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:6px}
.chncard{display:block;position:relative;background:#fff;border:1px solid #e4e9e4;
  border-radius:10px;padding:16px 16px 13px;text-decoration:none;transition:.2s}
.chncard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(23,57,46,.10);
  border-color:#cfe0d4}
.chnno{font:600 11px/1 ui-monospace,Menlo,Consolas,monospace;color:#8a9a90;letter-spacing:.14em}
.chnt{font-size:17px;font-weight:700;color:#17392e;margin:7px 0 9px}
.chnn{font:700 26px/1 var(--serif);color:#A9761B}
.chnn i{font-size:12px;font-style:normal;color:#7b8a80;margin-left:5px;font-weight:400}
.chns{font-size:12.2px;color:#4e6357;margin:7px 0 9px;line-height:1.7}
.chnd{font-size:12.4px;line-height:1.74;color:#41564b;padding-top:9px;border-top:1px dashed #e4e9e4}
.chng{font-size:12px;line-height:1.7;color:#7a5320;background:#fdf7ea;border-radius:6px;
  padding:8px 10px;margin-top:10px}
.chnc{margin-top:11px;font-size:12.4px;color:#1d5b7d;font-weight:600}
.chncard.st-zero{background:#fcfbf8;border-style:dashed;border-color:#e8dcd2}
.chncard.st-zero .chnn{color:#b04a2a}
.tag-ok,.tag-warn,.tag-zero{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px}
.tag-ok{background:#e8f5ec;color:#1f6b45;border:1px solid #cfe8d8}
.tag-warn{background:#fdf3e0;color:#8a5a10;border:1px solid #f0dcb4}
.tag-zero{background:#fbeee9;color:#a3401f;border:1px solid #f0d3c6}
.ccf{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 15px}
.ccchip{font-size:12.2px;padding:4px 11px;border-radius:999px;border:1px solid #dde5df;
  color:#3d5c4c;text-decoration:none;background:#fff}
.ccchip:hover{border-color:#b9cfc1}
.ccchip.on{background:#17392e;color:#f6efdd;border-color:#17392e}
.cct td{vertical-align:top}
.ccnone{font-size:11px;color:#9aa8a0}
.ccl{width:100%;font:13px/1.9 ui-monospace,Menlo,Consolas,monospace;color:#25352c;
  background:#fbfaf6;border:1px solid #e2e6e0;border-radius:8px;padding:14px 16px;resize:vertical}
@media(max-width:900px){.chnflow{grid-template-columns:1fr}}
/* =====================================================================
   R589 · 主页视觉：流云暗影 / 柔化深色 / 八件事
   用户意见：① 太苍白的地方加暗影流云 ② 颜色深重的弱化，别太刺眼
            ③ 更美观大气、人人喜欢
   判断：真正刺眼的不是「深色」，是浅米白底上压纯亮黄（#FFD84D）的正文标题。
        黄字在白底上对比不足还夺目，读起来累。这一版把正文标题收回墨绿，
        亮金只留给首屏和深蓝底的鲁商带——金色用在少数地方才贵气。
   ===================================================================== */

/* ---- ① 全站底纹：三层极淡流云，缓慢漂移。只做氛围，不抢字 ---- */
.paper-grain {
  opacity: .92;
  background-image:
    radial-gradient(62% 42% at 12% 6%, rgba(185, 140, 60, .060), transparent 62%),
    radial-gradient(54% 40% at 88% 20%, rgba(46, 125, 91, .055), transparent 64%),
    radial-gradient(72% 48% at 46% 98%, rgba(29, 91, 125, .045), transparent 68%);
  animation: veilDrift 72s ease-in-out infinite alternate;
}
@keyframes veilDrift {
  from { background-position: 0 0, 0 0, 0 0; }
  to   { background-position: 2.4% -1.8%, -2.8% 2.2%, 1.6% 1.4%; }
}

/* ---- ② 段内流云：浅底区段不再是一块死白，而是一层会走的雾 ----
   只给显式加了 .clouded 的段用，避免影响表单页与表格页的清晰度。 */
.clouded { position: relative; overflow: hidden; }
.clouded::before {
  content: ""; position: absolute; inset: -8% -12%; pointer-events: none; z-index: 0;
  background:
    radial-gradient(46% 30% at 18% 10%, rgba(255, 255, 255, .88), transparent 68%),
    radial-gradient(42% 26% at 80% 74%, rgba(185, 140, 60, .11), transparent 70%),
    radial-gradient(60% 34% at 50% 106%, rgba(23, 57, 46, .06), transparent 72%),
    radial-gradient(34% 22% at 62% 30%, rgba(46, 125, 91, .07), transparent 72%);
  filter: blur(7px);
  animation: cloudWalk 54s ease-in-out infinite alternate;
}
.clouded > * { position: relative; z-index: 1; }
@keyframes cloudWalk {
  from { transform: translate3d(-2.2%, 0, 0) scale(1.01); }
  to   { transform: translate3d(3.0%, -1.5%, 0) scale(1.03); }
}

/* ---- ③ 标题回归墨绿：黄字只留深底 ----
   原来 .sec-head h2 被统一刷成 #FFD84D，浅底上又晃又虚。 */
.sec-head h2,
.triad .sec-head h2,
.cta-band h2,
.mem-head h2,
.page-head h1,
.gwhead h1 {
  color: #17392e !important;
  -webkit-text-fill-color: #17392e !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .55), 0 6px 20px rgba(23, 57, 46, .07) !important;
  letter-spacing: .018em;
}
/* 深蓝底的全球鲁商带：金色要留，但换成柔金，不用纯亮黄 */
.cb-head h2 {
  color: #F2E1B6 !important;
  -webkit-text-fill-color: #F2E1B6 !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .38) !important;
  letter-spacing: .03em;
}
.cb-head p, .cb-head .cb-kicker { color: rgba(226, 236, 241, .82) !important; }

/* 段首小标题（eyebrow）用深金，浅底上够清楚 */
.eyebrow { color: #8a5f14 !important; }

/* ---- ④ 首屏金色柔和一档：亮黄 → 暖金，仍有对比但不扎眼 ---- */
.hero-photo .hp-title .t1 {
  color: #F3D891 !important;
  -webkit-text-fill-color: #F3D891 !important;
  text-shadow: 0 2px 0 rgba(6, 22, 15, .34), 0 8px 30px rgba(4, 16, 11, .52) !important;
}
.hero-photo .hp-title .t2 {
  background: linear-gradient(100deg, #FFF6D8 4%, #F3DDA4 44%, #E4BE76 94%) !important;
}
.hero-photo .hp-kicker { color: #EBD6A0 !important; -webkit-text-fill-color: #EBD6A0 !important; }
.hero-photo .hp-note { color: rgba(246, 238, 218, .90) !important; -webkit-text-fill-color: rgba(246, 238, 218, .90) !important; }
.hero-photo .hpline { background: linear-gradient(90deg, #E8C886, rgba(232, 200, 134, 0)) !important; }
.hero-photo .hp-stats div b {
  color: #F6E6BC !important;
  -webkit-text-fill-color: #F6E6BC !important;
  text-shadow: 0 1px 0 rgba(22, 52, 38, .40), 0 3px 12px rgba(8, 24, 17, .38) !important;
}

/* ---- ⑤ 深色区段弱化：鲁商带从近黑深蓝提到中深青，加一层雾光 ---- */
.chamber-band {
  background: linear-gradient(165deg, #1e4356 0%, #2a5c72 40%, #234d61 72%, #1b3f50 100%) !important;
}
.chamber-band::before { opacity: .30 !important; }
.chamber-band::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(52% 42% at 16% 26%, rgba(255, 255, 255, .10), transparent 70%),
    radial-gradient(46% 36% at 82% 68%, rgba(126, 226, 196, .11), transparent 72%);
  animation: cloudWalk 62s ease-in-out infinite alternate;
}
.chamber-band .cb-in { position: relative; z-index: 2; }
.cbcard {
  background: rgba(255, 255, 255, .07) !important;
  border-color: rgba(226, 240, 246, .18) !important;
  backdrop-filter: blur(2px);
}
.cbcard:hover { background: rgba(255, 255, 255, .13) !important; border-color: rgba(242, 225, 182, .40) !important; }

/* 深底按钮：不用高饱和黄，用米金 */
.cta-band .btn-primary, .cb-btns .btn-glass {
  border-color: rgba(242, 225, 182, .55);
}

/* ---- ⑥ 岱宗赋能：八件事两行四列，卡片有纸的厚度 ---- */
.abil8 { grid-template-columns: repeat(4, 1fr); }
.abil8 .ab {
  background: linear-gradient(180deg, #fffdf8 0%, #f8f3e7 100%);
  transition: transform .3s cubic-bezier(.2, .7, .3, 1), box-shadow .3s, background .3s;
}
.abil8 .ab:hover {
  background: #fffdf8;
  box-shadow: 0 2px 4px rgba(20, 50, 40, .05), 0 14px 34px rgba(20, 50, 40, .11);
  transform: translateY(-3px);
}
.abil8 .ab h3 { font-size: 19px; letter-spacing: .02em; }
.abil8 .ab .abnum { color: #a9791f; }
.abil8 .ab li::before { background: linear-gradient(135deg, #d9b978, #b98c3c); }

/* ---- ⑦ 实时数字：变化时轻微提示，不闪不跳 ---- */
.live-at { font-style: normal; color: #7d8f85; margin-left: 6px; font-size: 11.5px; letter-spacing: .04em; }
[data-live].live-pop { animation: livePop .95s cubic-bezier(.2, .8, .3, 1); }
@keyframes livePop {
  0%   { color: #b98c3c; transform: translateY(3px); opacity: .55; }
  55%  { color: #b98c3c; transform: translateY(0); opacity: 1; }
  100% { transform: none; }
}

/* ---- ⑧ 小屏：八件事两列、单列 ---- */
@media (max-width: 1080px) {
  .abil8 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .abil8 { grid-template-columns: 1fr; }
  .sec-head h2 { letter-spacing: 0; }
}

/* 尊重系统「减少动态效果」：关掉漂移，不影响内容 */
@media (prefers-reduced-motion: reduce) {
  .paper-grain, .clouded::before, .chamber-band::after, [data-live].live-pop { animation: none !important; }
}
/* --- R589b · 首屏修复 ---
   ① .t2 被 background 简写重置了 background-clip，渐变铺成了一块黄条（截图确认）。
      必须把 clip 一起写回来，只改 background 不够。
   ② 首屏说明文字在亮山雾上偏暗，改米白 + 双层阴影。
   ③ 数据条标签提亮一档。 */
.hero-photo .hp-title .t2 {
  background: linear-gradient(100deg, #FFF6D8 4%, #F3DDA4 44%, #E4BE76 94%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  filter: drop-shadow(0 2px 0 rgba(6, 22, 15, .34)) drop-shadow(0 6px 22px rgba(4, 16, 11, .50)) !important;
}
.hero-photo .hp-note {
  color: #FBF4E3 !important;
  -webkit-text-fill-color: #FBF4E3 !important;
  text-shadow: 0 1px 3px rgba(6, 22, 15, .70), 0 2px 16px rgba(6, 22, 15, .52) !important;
}
.hero-photo .hp-stats div span {
  color: rgba(240, 236, 222, .88) !important;
  -webkit-text-fill-color: rgba(240, 236, 222, .88) !important;
  text-shadow: 0 1px 6px rgba(6, 22, 15, .55);
}
/* 文字区左侧再压一层柔光，不是硬黑块：从左上到右渐隐，山形仍看得见 */
.hero-photo .hp-veil::after {
  background:
    radial-gradient(88% 66% at 0% 54%, rgba(8, 34, 24, .70) 0%, rgba(8, 34, 24, .44) 34%, rgba(8, 34, 24, .14) 60%, rgba(8, 34, 24, 0) 78%) !important;
}
/* --- R589c · 去铭牌，标题回归文字 ---
   R583 给 .sec-head h2 垫了一块深墨绿圆角铭牌（inline-block + 渐变背景），
   本意是让黄字立起来。这一版标题已回墨绿，铭牌和字同色 → 变成一块看不清的绿方块
   （首屏「一山一水一圣人」实测如此）。深色块本来就该弱化，直接去掉铭牌，
   用墨绿字 + 金色破折号，比压一块深底更干净。 */
.sec-head h2,
.triad .sec-head h2,
.cta-band h2,
.mem-head h2 {
  display: block;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  color: #17392e !important;
  -webkit-text-fill-color: #17392e !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .60) !important;
}
/* 深蓝底的鲁商带：去掉铭牌，留柔金字 */
.cb-head h2 {
  display: block;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  color: #F2E1B6 !important;
  -webkit-text-fill-color: #F2E1B6 !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .40) !important;
}
/* 居中段的标题仍居中（原来是 inline-block + margin:auto） */
.sec-head.center h2 { margin-left: 0; margin-right: 0; }
.sec-head.center { text-align: center; }

/* 破折号回到暖金，别用亮黄 */
.sec-head h2::before { color: #b98c3c !important; }
/* --- R589d · 顶栏收拢：19 个入口 → 7 个主入口 + 「更多」面板 ---
   1440 宽度下 19 项已经溢出，右侧登录/购物车被挤出屏；入口多不等于好用。
   桌面 hover 展开，触屏点击展开（base.html 内联 3 行 JS 切换 .open）。 */
.navmore { position: relative; display: flex; align-items: center; flex: 0 0 auto; }
.nm-btn {
  font-family: var(--sans); font-size: 14.5px; color: var(--ink-2); background: none;
  border: 0; cursor: pointer; padding: 4px 0; display: flex; align-items: center;
  gap: 4px; white-space: nowrap;
}
.nm-btn i { font-style: normal; font-size: 10px; opacity: .62; transition: transform .2s; }
.navmore:hover .nm-btn i, .navmore.open .nm-btn i { transform: rotate(180deg); }
.nm-btn:hover, .navmore.open .nm-btn { color: var(--dz); }
.navmore-panel {
  position: absolute; top: calc(100% + 14px); right: 0; z-index: 90;
  display: none; grid-template-columns: repeat(3, minmax(148px, 1fr)); gap: 6px 18px;
  padding: 16px 18px 14px; min-width: 480px;
  background: rgba(255, 253, 248, .985); border: 1px solid var(--line);
  border-radius: 12px; box-shadow: 0 20px 48px rgba(23, 57, 46, .16);
  animation: nmIn .18s ease-out both;
}
.navmore:hover .navmore-panel, .navmore.open .navmore-panel { display: grid; }
@keyframes nmIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.nm-col { display: flex; flex-direction: column; gap: 1px; }
.nm-col b {
  font-size: 11px; letter-spacing: .16em; color: #8a9a90; font-weight: 600;
  padding: 0 9px 6px; border-bottom: 1px solid var(--line); margin-bottom: 5px;
}
.nav .navmore-panel a { font-size: 13.4px; padding: 7px 9px; border-radius: 7px; color: var(--ink-2); }
.nav .navmore-panel a:hover { background: var(--paper-2); color: var(--dz); }
.nav .navmore-panel a::after { display: none; }
/* 首屏未滚动的深色顶栏：面板里的字回到深色，别跟着变浅 */
body:has(.hero-photo) .topbar:not(.solid) .nav .navmore-panel a,
body:has(.hero-photo) .topbar:not(.solid) .nav .navmore-panel a:hover { color: #22352a !important; text-shadow: none !important; }
body:has(.hero-photo) .topbar:not(.solid) .nav .nm-btn { color: #22452f !important; text-shadow: 0 1px 10px rgba(255,255,255,.85); }
@media (max-width: 1366px) { .nm-btn { font-size: 13.5px; } }
@media (max-width: 1180px) { .nm-btn { font-size: 13px; } }
@media (max-width: 1080px) {
  .navmore-panel {
    position: fixed; left: 12px; right: 12px; top: 62px; min-width: 0;
    grid-template-columns: 1fr 1fr; gap: 8px 14px; padding: 14px;
  }
}
@media (max-width: 620px) {
  .navmore-panel { grid-template-columns: 1fr 1fr; }
  .nm-col b { font-size: 10.4px; }
}
/* --- R589e · 可读性收口 ---
   两个实测问题：
   ① 卡片小标题（16–17px）用魏碑，笔画细，远看像灰字。魏碑只给 24px 以上的大字，
      小标题换无衬线 600，同色也立得住。
   ② 次要文字（--ink-3）原来 #66786e，12.5px 在米白底上偏灰。加深一档，
      不刺眼但看得清。 */
:root {
  --ink-2: #33463c;
  --ink-3: #55685e;
}
.s26 b, .dcard b, .clcard h3, .ccard h3, .abil .ab h3, .flow b, .tdc-body h3 {
  font-family: var(--sans) !important;
  font-weight: 600 !important;
  letter-spacing: .012em;
}
.s26 b { font-size: 16px; }
.dcard b { font-size: 17px; }
.abil .ab h3 { font-size: 18.5px; }

/* 首屏未滚动的顶栏是深底，「更多」要跟其他入口同色，不能压深墨绿 */
body:has(.hero-photo) .topbar:not(.solid) .nav .nm-btn {
  color: rgba(247, 243, 231, .92) !important;
  text-shadow: 0 1px 10px rgba(0, 0, 0, .55) !important;
}
body:has(.hero-photo) .topbar:not(.solid) .nav .nm-btn:hover,
body:has(.hero-photo) .topbar:not(.solid) .nav .navmore.open .nm-btn {
  color: #F3D891 !important;
}
/* 滚动后是浅底毛玻璃，回到深色 */
body:has(.hero-photo) .topbar.solid .nav .nm-btn { color: var(--ink-2); }

/* 段落说明再清楚一点：正文 13–14px 的字重从 400 提到 450 观感更实 */
.sec-head p, .mem-head p, .cb-head p { font-weight: 450; }
/* --- R589f · 板块网格补角 ---
   31 个板块 4 列 = 7 行 + 3 个，末行空 1 格，看着像塌了一角。
   原来的 nth-last-child(2)/last-child 两条规则是给 26 个写的，31 个时对不上，
   且被后续规则压掉（实测无效）。改成：先全部还原，再由首页脚本按取余加类。 */
.sect26 .s26:nth-last-child(2),
.sect26 .s26:last-child { grid-column: auto !important; }
.sect26 .s26.span2 { grid-column: span 2 !important; }
.sect26 .s26.span4 { grid-column: 1 / -1 !important; }
@media (max-width: 1180px) {
  .sect26 .s26.span2, .sect26 .s26.span4 { grid-column: auto !important; }
}
/* --- R589g · 深底区段的标题必须回到浅色 ---
   R589c 把 .sec-head h2 统一刷成墨绿（!important），碳专区是深墨绿底，
   标题和说明就沉进背景里了（截图确认「碳，是山东制造的下一张通行证」几乎看不见）。
   规则：浅底用墨绿，深底用米金。这里只补深底那几处。 */
.carbon-band .sec-head h2 {
  color: #F6EFDB !important;
  -webkit-text-fill-color: #F6EFDB !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .38) !important;
}
.carbon-band .sec-head h2::before { color: #D9B978 !important; }
.carbon-band .sec-head p,
.carbon-band .sec-head .eyebrow {
  color: rgba(233, 228, 213, .88) !important;
  -webkit-text-fill-color: rgba(233, 228, 213, .88) !important;
}
.carbon-band .sec-head .eyebrow { color: #DFC08A !important; -webkit-text-fill-color: #DFC08A !important; }
.carbon-band .sec-more { color: #E7CB95 !important; border-color: rgba(217, 185, 120, .55) !important; }
.carbon-band .cu-pick p { color: rgba(226, 234, 226, .86) !important; }
.carbon-band .cu-pick p b { color: #F3E7C8 !important; }
/* --- R589h · 匹配页：覆盖口径 + 分级标签 + 求购榜 --- */
.mcover {
  background: linear-gradient(160deg, #fbf7ec 0%, #f6f1e3 60%, #f8f4ea 100%);
  border: 1px solid var(--line); border-radius: 14px;
  padding: 18px 20px 16px; margin-bottom: 20px;
  box-shadow: 0 1px 2px rgba(20, 50, 40, .04), 0 10px 26px rgba(20, 50, 40, .06);
}
.mc-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.mc-head b { font-family: var(--serif); font-size: 16px; color: var(--dz); letter-spacing: .03em; }
.mc-head span { font-size: 12.2px; color: var(--ink-3); }
.mc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.mc-cell {
  background: #fffdf8; border: 1px solid var(--line); border-radius: 10px;
  padding: 12px 14px; display: flex; flex-direction: column; gap: 2px;
}
.mc-cell b {
  font-family: var(--serif); font-size: 27px; line-height: 1.1; color: #17392e;
  font-variant-numeric: tabular-nums;
}
.mc-cell span { font-size: 12.4px; color: var(--ink-2); letter-spacing: .06em; }
.mc-cell i { font-style: normal; font-size: 11.6px; color: var(--ink-3); line-height: 1.6; margin-top: 2px; }
.mc-cell.zero b { color: #a8623a; }
.mc-cell.hi { background: linear-gradient(150deg, #fdf9ee, #f7efd9); border-color: rgba(185, 140, 60, .38); }
.mc-cell.hi b { color: #8a5f14; }

.lv {
  font-size: 10.6px; padding: 1px 7px; border-radius: 999px; margin-left: 4px;
  vertical-align: 1px; letter-spacing: .04em;
}
.lv-ok { background: #e8f5ec; color: #1f6b45; border: 1px solid #cfe8d8; }
.lv-near { background: #fdf3e0; color: #8a5a10; border: 1px solid #f0dcb4; }
.lv-weak { background: #f2f0ec; color: #6b7d73; border: 1px solid #e0d9c9; }

.pull-list { display: flex; flex-direction: column; gap: 8px; }
.pull-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 210px 190px auto;
  align-items: center; gap: 12px;
  background: #fffdf8; border: 1px solid var(--line); border-left: 3px solid #d8b98a;
  border-radius: 9px; padding: 11px 14px;
}
.pr-t { font-size: 13.4px; color: var(--ink); line-height: 1.7; }
.pr-m { display: flex; flex-wrap: wrap; gap: 6px; font-size: 11.6px; color: var(--ink-3); }
.pr-m span { background: var(--paper-2); border-radius: 999px; padding: 1px 8px; }
.pr-r { font-size: 11.8px; color: var(--ink-3); line-height: 1.7; }
.pull-row .btn-line.sm { font-size: 12.4px; padding: 5px 11px; white-space: nowrap; }
@media (max-width: 900px) {
  .mc-grid { grid-template-columns: 1fr 1fr; }
  .pull-row { grid-template-columns: 1fr; gap: 7px; }
}
