/* ============================================================
   首页整屏动态视觉层
   纯 CSS + SVG 实现：呼吸光晕 / 流动网格 / 旋转齿轮 / 粒子光点
   / 扫描光带 / 数据流线
   ============================================================ */

/* ---------- 整屏 Hero 容器 ---------- */
.hero-stage {
  position: relative;
  /* 首屏高度：随视口自适应，但上限 900px（超高窗口不拉伸） */
  min-height: min(calc(100vh - 77px), 900px);
  min-height: min(calc(100svh - 77px), 900px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow: hidden;
  background: #04140C;
  isolation: isolate;
}
.hero-stage > .hs-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.hero-stage > .hs-content {
  position: relative;
  z-index: 3;
  width: 100%;
  flex: 0 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 52px 0 26px;
}

/* ---------- 背景层 ---------- */

/* 呼吸光晕：绿 + 蓝双光源 */
.hs-aura {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: .5;
  will-change: transform, opacity;
}
.hs-aura.a1 {
  width: 760px; height: 760px;
  left: -180px; top: -260px;
  background: radial-gradient(circle, rgba(35,152,90,.55) 0%, rgba(35,152,90,0) 68%);
  animation: hsDrift1 22s ease-in-out infinite;
}
.hs-aura.a2 {
  width: 680px; height: 680px;
  right: -160px; top: 8%;
  background: radial-gradient(circle, rgba(29,78,216,.42) 0%, rgba(29,78,216,0) 68%);
  animation: hsDrift2 27s ease-in-out infinite;
}
.hs-aura.a3 {
  width: 560px; height: 560px;
  left: 42%; bottom: -280px;
  background: radial-gradient(circle, rgba(70,208,138,.40) 0%, rgba(70,208,138,0) 70%);
  animation: hsDrift3 19s ease-in-out infinite;
}

@keyframes hsDrift1 {
  0%,100% { transform: translate(0,0) scale(1); opacity:.42; }
  50%     { transform: translate(120px,80px) scale(1.18); opacity:.62; }
}
@keyframes hsDrift2 {
  0%,100% { transform: translate(0,0) scale(1.05); opacity:.36; }
  50%     { transform: translate(-140px,110px) scale(.88); opacity:.55; }
}
@keyframes hsDrift3 {
  0%,100% { transform: translate(-50%,0) scale(.95); opacity:.30; }
  50%     { transform: translate(-50%,-90px) scale(1.22); opacity:.50; }
}

/* 流动网格：科技底纹 */
.hs-grid {
  position: absolute;
  inset: -10%;
  background-image:
    linear-gradient(rgba(70,208,138,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(70,208,138,.055) 1px, transparent 1px);
  background-size: 62px 62px;
  animation: hsGridMove 26s linear infinite;
  mask-image: radial-gradient(ellipse 85% 70% at 50% 42%, #000 30%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 85% 70% at 50% 42%, #000 30%, transparent 78%);
}
@keyframes hsGridMove {
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(62px,62px,0); }
}

/* 环形轨道 */
.hs-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(70,208,138,.13);
}
.hs-ring.r1 {
  width: 760px; height: 760px;
  right: -160px; top: -120px;
  animation: hsSpin 46s linear infinite;
}
.hs-ring.r2 {
  width: 1020px; height: 1020px;
  right: -290px; top: -250px;
  border-color: rgba(70,208,138,.09);
  animation: hsSpin 68s linear infinite reverse;
}
.hs-ring.r3 {
  width: 560px; height: 560px;
  left: -190px; bottom: -180px;
  border-color: rgba(29,78,216,.16);
  animation: hsSpin 38s linear infinite;
}
@keyframes hsSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* 轨道上的运行光点 */
.hs-ring.r1::after,
.hs-ring.r3::after {
  content: "";
  position: absolute;
  width: 9px; height: 9px;
  border-radius: 50%;
  top: -5px; left: 50%;
  margin-left: -4px;
  background: #46D08A;
  box-shadow: 0 0 14px 4px rgba(70,208,138,.55);
}

/* 右上角大齿轮组（自动化意象） */
.hs-gears {
  position: absolute;
  right: 3%;
  top: 50%;
  transform: translateY(-50%);
  width: 460px;
  height: 460px;
  opacity: .16;
}
.hs-gears svg { width: 100%; height: 100%; }
.hs-gear-spin { transform-origin: center; animation: hsSpin 34s linear infinite; }
.hs-gear-spin.slow { animation-duration: 52s; animation-direction: reverse; }

/* 扫描光带 */
.hs-scan {
  position: absolute;
  left: 0; right: 0;
  height: 220px;
  background: linear-gradient(180deg, transparent, rgba(70,208,138,.055) 45%, rgba(70,208,138,.10) 50%, rgba(70,208,138,.055) 55%, transparent);
  animation: hsScanDown 9s linear infinite;
}
@keyframes hsScanDown {
  from { top: -220px; }
  to   { top: 100%; }
}

/* 粒子光点 */
.hs-particles { position: absolute; inset: 0; overflow: hidden; }
.hs-particles i {
  position: absolute;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: #7BE0A8;
  box-shadow: 0 0 8px 2px rgba(70,208,138,.5);
  animation: hsFloat linear infinite;
}
@keyframes hsFloat {
  0%   { transform: translateY(0) translateX(0) scale(.6); opacity: 0; }
  12%  { opacity: .85; }
  85%  { opacity: .55; }
  100% { transform: translateY(-320px) translateX(var(--dx,20px)) scale(1.15); opacity: 0; }
}

/* 底部渐隐，衔接下一屏 */
.hs-fade {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 180px;
  background: linear-gradient(180deg, transparent, #04140C 88%);
  pointer-events: none;
}

/* ---------- 前景内容 ---------- */
.hs-content > .container {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  justify-content: flex-start;
}
.hs-content > .container > * { flex: 0 0 auto; }
.hs-content > .container > .hs-title,
.hs-content > .container > .hs-lead,
.hs-content > .container > .hs-picker,
.hs-content > .container > .hs-stats { width: 100%; }
.hs-eyebrow { align-self: flex-start; width: auto; }
.hs-content > .container > .hs-eyebrow { width: auto; }

.hs-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 17px;
  border: 1px solid rgba(123,224,168,.32);
  border-radius: 999px;
  background: rgba(70,208,138,.10);
  backdrop-filter: blur(8px);
  font-size: 12.5px;
  letter-spacing: .08em;
  color: #A8EFC6;
  margin-bottom: 26px;
}
.hs-eyebrow i {
  width: 7px; height: 7px; border-radius: 50%;
  background: #46D08A;
  box-shadow: 0 0 0 4px rgba(70,208,138,.20);
  animation: hsPulse 2.2s ease-in-out infinite;
}
@keyframes hsPulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(70,208,138,.16); opacity:.75; }
  50%     { box-shadow: 0 0 0 8px rgba(70,208,138,.04); opacity:1; }
}

.hs-title {
  font-size: clamp(34px, 5.4vw, 66px);
  line-height: 1.14;
  font-weight: 800;
  letter-spacing: -.005em;
  margin: 0 0 20px;
  max-width: 940px;
  color: #fff;
  text-shadow: 0 4px 40px rgba(0,0,0,.45);
}
.hs-title em {
  font-style: normal;
  background: linear-gradient(100deg, #7BE0A8 0%, #A8EFC6 42%, #93B9FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.hs-title .thin {
  background: linear-gradient(100deg, #93B9FF 0%, #C8DBFF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hs-lead {
  font-size: clamp(14.5px, 1.35vw, 17px);
  line-height: 1.92;
  color: rgba(255,255,255,.76);
  max-width: 700px;
  margin: 0 0 40px;
  text-shadow: 0 2px 18px rgba(0,0,0,.4);
}
.hs-lead b { color: #fff; font-weight: 650; }
.hs-lead .g { color: #7BE0A8; font-weight: 650; }
.hs-lead .b { color: #93B9FF; font-weight: 650; }

/* ---------- 双方向卡片（悬浮玻璃拟态） ---------- */
.hs-picker {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
  max-width: 1020px;
}
.hs-card {
  position: relative;
  display: block;
  border-radius: 20px;
  padding: 28px 28px 26px;
  text-decoration: none;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.13);
  background: linear-gradient(155deg, rgba(255,255,255,.085), rgba(255,255,255,.028));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform .35s cubic-bezier(.2,.8,.3,1), border-color .35s, box-shadow .35s;
  box-shadow: 0 20px 50px -28px rgba(0,0,0,.85);
}
.hs-card::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 20px;
  padding: 1px;
  background: linear-gradient(135deg, rgba(123,224,168,.55), transparent 42%, transparent 62%, rgba(147,185,255,.42));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .35s;
  pointer-events: none;
}
.hs-card:hover {
  transform: translateY(-7px);
  border-color: rgba(255,255,255,.26);
  box-shadow: 0 34px 70px -30px rgba(0,0,0,.92);
}
.hs-card:hover::before { opacity: 1; }

.hs-card .bar {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
}
.hs-card.w .bar { background: linear-gradient(180deg, #46D08A, #0B3D21); }
.hs-card.y .bar { background: linear-gradient(180deg, #93B9FF, #1D4ED8); }

/* 卡片内的动态高光扫过 */
.hs-card::after {
  content: "";
  position: absolute;
  top: -60%; left: -30%;
  width: 46%; height: 220%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.075), transparent);
  transform: rotate(18deg);
  transition: left .8s cubic-bezier(.3,.8,.3,1);
  pointer-events: none;
}
.hs-card:hover::after { left: 116%; }

.hs-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
  margin-bottom: 14px;
  font-weight: 650;
}
.hs-card.w .hs-tag { background: rgba(70,208,138,.16); color: #8CE8B4; border: 1px solid rgba(70,208,138,.24); }
.hs-card.y .hs-tag { background: rgba(120,160,255,.17); color: #A8C4FF; border: 1px solid rgba(120,160,255,.26); }

.hs-card h3 {
  margin: 0 0 9px;
  font-size: 24px;
  font-weight: 750;
  color: #fff;
  letter-spacing: .01em;
}
.hs-card .sub {
  font-size: 14px;
  color: rgba(255,255,255,.66);
  line-height: 1.78;
  margin: 0 0 17px;
  min-height: 50px;
}
.hs-card ul {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.hs-card ul li {
  font-size: 12px;
  padding: 4px 11px;
  border-radius: 7px;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.07);
  color: rgba(255,255,255,.82);
  transition: background .25s, border-color .25s;
}
.hs-card:hover ul li { background: rgba(255,255,255,.11); border-color: rgba(255,255,255,.12); }

.hs-go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 650;
}
.hs-card.w .hs-go { color: #7BE0A8; }
.hs-card.y .hs-go { color: #93B9FF; }
.hs-go svg { transition: transform .3s; }
.hs-card:hover .hs-go svg { transform: translateX(6px); }

/* 卡片右上角迷你动画图标 */
.hs-mini {
  position: absolute;
  top: 22px; right: 24px;
  width: 42px; height: 42px;
  opacity: .5;
}
.hs-mini svg { width: 100%; height: 100%; }
.hs-mini .spin { transform-origin: center; animation: hsSpin 18s linear infinite; }

/* ---------- 底部数据带 ---------- */
.hs-stats {
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.10);
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px;
  max-width: 1020px;
}
.hs-stats .s b {
  display: block;
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -.01em;
  margin-bottom: 5px;
  line-height: 1.1;
}
.hs-stats .s b i { font-style: normal; font-size: 14px; font-weight: 600; opacity: .62; }
.hs-stats .s span { font-size: 12.5px; color: rgba(255,255,255,.55); letter-spacing: .02em; }

/* ---------- 向下滚动提示 ---------- */
.hs-scroll {
  position: absolute;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  letter-spacing: .22em;
  color: rgba(255,255,255,.38);
  text-transform: uppercase;
}
.hs-scroll .bar2 {
  width: 1px; height: 38px;
  background: linear-gradient(180deg, rgba(123,224,168,.85), transparent);
  position: relative;
  overflow: hidden;
}
.hs-scroll .bar2::after {
  content: "";
  position: absolute;
  top: -38px; left: 0;
  width: 1px; height: 38px;
  background: linear-gradient(180deg, transparent, #7BE0A8);
  animation: hsScrollDot 2s ease-in-out infinite;
}
@keyframes hsScrollDot {
  0%   { top: -38px; opacity: 0; }
  30%  { opacity: 1; }
  100% { top: 38px; opacity: 0; }
}

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
  .hs-gears { opacity: .09; right: -14%; width: 560px; height: 560px; }
  .hs-ring.r1 { width: 620px; height: 620px; }
  .hs-ring.r2 { width: 860px; height: 860px; }
}
@media (max-width: 900px) {
  .hs-picker { grid-template-columns: 1fr; gap: 16px; }
  .hs-stats { grid-template-columns: repeat(2, 1fr); gap: 20px 24px; }
  .hs-content { padding: 92px 0 48px; }
  .hs-card .sub { min-height: 0; }
  .hs-gears { opacity: .07; right: -30%; top: 22%; }
  .hs-scroll { display: none; }
}
@media (max-width: 560px) {
  .hs-stats { grid-template-columns: 1fr 1fr; }
  .hs-stats .s b { font-size: 21px; }
  .hs-lead { margin-bottom: 30px; }
  .hs-card { padding: 22px 20px; }
  .hs-card h3 { font-size: 20px; }
}

/* 尊重系统「减少动态效果」偏好 */
@media (prefers-reduced-motion: reduce) {
  .hs-aura, .hs-grid, .hs-ring, .hs-gear-spin, .hs-scan,
  .hs-particles i, .hs-eyebrow i, .hs-scroll .bar2::after {
    animation: none !important;
  }
  .hs-particles { display: none; }
}

/* ---------- 首屏高度与排版收敛 ---------- */
@media (min-width: 901px) {
  .hs-title { font-size: clamp(32px, 4.5vw, 56px); max-width: 1080px; }
  .hs-title em.thin { white-space: nowrap; }
  .hs-lead { margin-bottom: 32px; max-width: 760px; }
  .hs-picker { gap: 20px; }
  .hs-card { padding: 24px 24px 22px; }
  .hs-card .sub { min-height: 46px; margin-bottom: 15px; }
  .hs-card ul { margin-bottom: 17px; }
  .hs-stats { margin-top: 40px; padding-top: 22px; }
  .hs-content { padding: 92px 0 44px; }
}
@media (min-width: 901px) and (max-height: 860px) {
  .hs-content { padding: 74px 0 34px; }
  .hs-title { font-size: clamp(30px, 3.9vw, 48px); margin-bottom: 16px; }
  .hs-eyebrow { margin-bottom: 18px; }
  .hs-lead { margin-bottom: 26px; font-size: 15px; line-height: 1.82; }
  .hs-card { padding: 20px 22px 20px; }
  .hs-card .sub { min-height: 0; font-size: 13.5px; margin-bottom: 13px; }
  .hs-card ul { margin-bottom: 14px; }
  .hs-card h3 { font-size: 22px; margin-bottom: 7px; }
  .hs-stats { margin-top: 30px; padding-top: 18px; }
  .hs-stats .s b { font-size: 25px; }
}

@media (max-width: 1100px) {
  .hs-title em.thin { white-space: nowrap; }
}

/* 数据带在 900px 高度内完整可见 */
@media (min-height: 1100px) {
  .hs-content { justify-content: flex-start; }
  .hs-content > .container { justify-content: flex-start; }
  .hs-stats { margin-top: 40px; }
}
@media (min-width: 901px) and (max-height: 940px) {
  .hs-content { padding: 62px 0 30px; }
  .hs-eyebrow { margin-bottom: 15px; padding: 6px 15px; font-size: 12px; }
  .hs-title { font-size: clamp(29px, 3.7vw, 45px); margin-bottom: 14px; }
  .hs-lead { font-size: 14.5px; line-height: 1.76; margin-bottom: 22px; max-width: 720px; }
  .hs-card { padding: 19px 21px 19px; }
  .hs-card .hs-tag { margin-bottom: 10px; padding: 4px 10px; font-size: 10.5px; }
  .hs-card h3 { font-size: 21px; margin-bottom: 6px; }
  .hs-card .sub { font-size: 13px; line-height: 1.7; min-height: 0; margin-bottom: 12px; }
  .hs-card ul { gap: 6px; margin-bottom: 13px; }
  .hs-card ul li { font-size: 11.5px; padding: 3px 9px; }
  .hs-card .hs-mini { width: 34px; height: 34px; top: 18px; right: 20px; }
  .hs-stats { margin-top: 26px; padding-top: 17px; gap: 20px; }
  .hs-stats .s b { font-size: 23px; margin-bottom: 3px; }
  .hs-stats .s span { font-size: 12px; }
}

/* ============================================================
   销售导向组件
   ============================================================ */

/* ---------- 承诺条 ---------- */
.promise-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.promise-bar .pb {
  background: #fff;
  padding: 22px 20px;
  text-align: center;
}
.promise-bar .pb b {
  display: block;
  font-size: 26px;
  font-weight: 800;
  color: var(--green-700);
  letter-spacing: -.01em;
  margin-bottom: 5px;
  line-height: 1.15;
}
.promise-bar .pb b span {
  font-size: 14px;
  font-weight: 650;
  color: var(--ink);
  margin-left: 2px;
}
.promise-bar .pb > span {
  font-size: 12.5px;
  color: var(--muted);
  letter-spacing: .02em;
}

/* ---------- 强行动号召 ---------- */
.cta-strong {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: center;
  border-radius: 18px;
  padding: 38px 42px;
  background: linear-gradient(140deg, #071F12 0%, #0B3D21 46%, #12472C 100%);
  position: relative;
  overflow: hidden;
  box-shadow: 0 26px 60px -26px rgba(11,61,33,.62);
}
.cta-strong::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(520px 260px at 88% 18%, rgba(70,208,138,.26), transparent 62%),
    radial-gradient(420px 240px at 8% 92%, rgba(29,78,216,.20), transparent 60%);
  pointer-events: none;
}
.cs-left { position: relative; z-index: 2; }
.cs-kicker {
  display: inline-block;
  font-size: 11.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #7BE0A8;
  font-weight: 700;
  margin-bottom: 11px;
}
.cs-left h3 {
  margin: 0 0 12px;
  font-size: clamp(20px, 2.3vw, 27px);
  font-weight: 750;
  color: #fff;
  line-height: 1.4;
}
.cs-left p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.85;
  color: rgba(255,255,255,.72);
  max-width: 620px;
}
.cs-right {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 11px;
  min-width: 250px;
}
.btn-lg {
  padding: 15px 28px !important;
  font-size: 16px !important;
  border-radius: 12px !important;
  justify-content: center;
}
.cta-strong .btn-ghost {
  border-color: rgba(255,255,255,.28) !important;
  color: #fff !important;
  background: rgba(255,255,255,.07) !important;
}
.cta-strong .btn-ghost:hover { background: rgba(255,255,255,.15) !important; }
.cs-note {
  font-size: 12px;
  color: rgba(255,255,255,.48);
  text-align: center;
  margin-top: 2px;
}

/* ---------- 全站悬浮询价条 ---------- */
.lead-bar {
  position: fixed;
  right: 24px;
  bottom: 24px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(18px);
  z-index: 115;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.lead-bar .lb-main {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  padding: 13px 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--green-600), var(--green-800));
  color: #fff;
  font-size: 15px;
  font-weight: 650;
  text-decoration: none;
  box-shadow: 0 14px 34px -10px rgba(11,61,33,.62);
  transition: transform .28s cubic-bezier(.2,.8,.3,1), box-shadow .28s;
  white-space: nowrap;
}
.lead-bar .lb-main:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 42px -12px rgba(11,61,33,.7);
}
.lead-bar .lb-main svg { width: 18px; height: 18px; flex: 0 0 auto; }
.lead-bar .lb-tel {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 20px;
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  color: var(--ink);
  font-size: 14.5px;
  font-weight: 650;
  text-decoration: none;
  box-shadow: var(--shadow-md);
  transition: transform .28s, border-color .28s;
  white-space: nowrap;
}
.lead-bar .lb-tel:hover { transform: translateY(-3px); border-color: var(--green-600); color: var(--green-700); }
.lead-bar .lb-tel svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--green-600); }

@media (max-width: 900px) {
  .promise-bar { grid-template-columns: repeat(2, 1fr); }
  .cta-strong { grid-template-columns: 1fr; gap: 24px; padding: 28px 24px; }
  .cs-right { min-width: 0; }
  .cs-right .btn-lg { width: 100%; }
}
@media (max-width: 560px) {
  .promise-bar { grid-template-columns: 1fr 1fr; }
  .promise-bar .pb { padding: 16px 10px; }
  .promise-bar .pb b { font-size: 21px; }
  .lead-bar { right: 14px; bottom: 14px; left: 14px; align-items: stretch; }
  .lead-bar .lb-main, .lead-bar .lb-tel { flex-direction: row; }
  .lead-bar .lb-main, .lead-bar .lb-tel { justify-content: center; }
}

/* 状态：.show 已滚动出现；.hide 到达联系区块时收起 */
.lead-bar { transition: opacity .32s ease, transform .32s ease; }
.lead-bar.show { opacity: 1; pointer-events: auto; transform: translateY(0); }
.lead-bar.hide { opacity: 0; pointer-events: none; transform: translateY(18px); }

/* ============================================================
   资讯区：左主列表 + 右侧栏
   ============================================================ */
.news-split {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 34px;
  align-items: start;
}
.ns-main { min-width: 0; }

/* ---------- 主列表 ---------- */
.ns-list {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
}
.ns-item {
  border-bottom: 1px solid var(--line);
  transition: background .2s;
}
.ns-item:last-child { border-bottom: 0; }
.ns-item:hover { background: var(--green-050); }
.ns-body { padding: 20px 24px; }
.ns-item:first-child .ns-body { padding-top: 24px; }
.ns-item:last-child .ns-body { padding-bottom: 24px; }

.ns-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 9px;
  flex-wrap: wrap;
}
.ns-meta .pill { font-size: 11px; }
.ns-meta time {
  font-size: 12px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.ns-meta .ns-src {
  font-size: 12px;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.ns-meta .ns-src::before {
  content: "";
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--line);
}
.ns-body h3 {
  margin: 0 0 7px;
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink);
}
.ns-body h3 a { color: inherit; text-decoration: none; }
.ns-body h3 a:hover { color: var(--green-700); }
.ns-body p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- 查看更多 ---------- */
.ns-more {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 20px;
  font-size: 14.5px;
  font-weight: 650;
  color: var(--green-700);
  text-decoration: none;
}
.ns-more svg { transition: transform .25s; }
.ns-more:hover svg { transform: translateX(5px); }

/* ---------- 右侧栏 ---------- */
.ns-side {
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: sticky;
  top: 96px;
}
.ns-side-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 20px 22px;
}
.ns-side-card h4 {
  margin: 0 0 14px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
.ns-cats { list-style: none; margin: 0; padding: 0; }
.ns-cats li {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.ns-cats li:last-child { border-bottom: 0; padding-bottom: 0; }
.ns-cats .dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.ns-cats .dot.policy { background: #C0392B; }
.ns-cats .dot.assoc  { background: #1B7A43; }
.ns-cats .dot.tech   { background: #1D4ED8; }
.ns-cats .dot.ind    { background: #B7791F; }
.ns-cats .ct {
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 400;
  color: var(--muted);
  text-align: right;
}

.ns-side-card.cta {
  background: linear-gradient(150deg, #071F12, #0B3D21 60%, #14532D);
  border-color: transparent;
}
.ns-kick {
  display: inline-block;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #7BE0A8;
  font-weight: 700;
  margin-bottom: 8px;
}
.ns-side-card.cta b {
  display: block;
  font-size: 18px;
  font-weight: 750;
  color: #fff;
  margin-bottom: 8px;
  line-height: 1.4;
}
.ns-side-card.cta p {
  margin: 0 0 16px;
  font-size: 13px;
  line-height: 1.75;
  color: rgba(255,255,255,.68);
}
.ns-side-card.cta .btn { width: 100%; justify-content: center; }

@media (max-width: 980px) {
  .news-split { grid-template-columns: 1fr; gap: 24px; }
  .ns-side { position: static; flex-direction: row; flex-wrap: wrap; }
  .ns-side-card { flex: 1 1 240px; }
}
@media (max-width: 560px) {
  .ns-body { padding: 16px 18px; }
  .ns-body h3 { font-size: 15.5px; }
  .ns-cats .ct { display: none; }
}

/* 资讯分类链接 */
.ns-cats li a {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
.ns-cats li a:hover { color: var(--green-700); }

/* ============================================================
   资讯详情页 / 归档页
   ============================================================ */
.npage { padding: 40px 0 70px; background: #F7F9F8; min-height: 60vh; }
.npage .crumb { font-size: 13px; color: var(--muted); margin: 0 0 22px; }
.npage .crumb a { color: var(--muted); text-decoration: none; }
.npage .crumb a:hover { color: var(--green-700); }
.npage h1 {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 750;
  line-height: 1.45;
  margin: 0 0 30px;
  color: var(--ink);
  letter-spacing: -.01em;
}
.npage .lead { font-size: 15px; line-height: 1.85; color: var(--muted); margin: 0 0 26px; max-width: 760px; }

.np {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 34px 38px;
  margin-bottom: 26px;
}
.np-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.np-meta time { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.np-src { font-size: 12.5px; color: var(--muted); }
.np-body p {
  font-size: 16px;
  line-height: 2;
  color: #333;
  margin: 0 0 18px;
  text-indent: 2em;
}
.np-foot {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px dashed var(--line);
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.np-foot p {
  flex: 1 1 320px;
  margin: 0;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--muted);
}
.np-foot p b { color: var(--ink); }
.np-foot p a { color: var(--green-700); font-weight: 600; }

.nlinks {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 30px;
  margin-bottom: 22px;
}
.nlinks h2 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 14px;
  color: var(--ink);
}
.il-wrap { display: flex; flex-wrap: wrap; gap: 10px; }
.il {
  display: inline-block;
  padding: 8px 15px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13.5px;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s, color .2s, background .2s;
}
.il:hover { border-color: var(--green-600); color: var(--green-700); background: var(--green-050); }

.rel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 30px;
}
.rel h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 14px;
  color: var(--ink);
}
.rel ul { list-style: none; margin: 0; padding: 0; }
.rel li {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 14px;
}
.rel li:last-child { border-bottom: 0; }
.rel li a { color: var(--ink); text-decoration: none; flex: 1; }
.rel li a:hover { color: var(--green-700); }
.rel li time { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }

/* 归档页 */
.mo { margin-bottom: 34px; }
.mo h2 {
  font-size: 19px;
  font-weight: 750;
  color: var(--green-700);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--green-700);
}
.mo ul { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.mo li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 13px 22px;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
}
.mo li:last-child { border-bottom: 0; }
.mo li time { font-size: 12.5px; color: var(--muted); flex: 0 0 84px; font-variant-numeric: tabular-nums; }
.mo li a { color: var(--ink); text-decoration: none; flex: 1; }
.mo li a:hover { color: var(--green-700); }
.mo li .src { font-size: 12px; color: var(--muted); flex: 0 0 auto; }

@media (max-width: 700px) {
  .np { padding: 24px 20px; }
  .np-body p { font-size: 15px; line-height: 1.95; }
  .mo li { flex-wrap: wrap; gap: 6px; padding: 12px 16px; }
  .mo li time { flex: 0 0 auto; }
  .mo li a { flex: 1 1 100%; }
}

/* ---------- 详情页：专业解读区块 ---------- */
.np-enrich {
  margin: 30px 0 6px;
  padding: 26px 28px;
  background: linear-gradient(160deg, #F4F9F6, #FFFFFF 70%);
  border: 1px solid #DCEAE1;
  border-left: 3px solid var(--green-600);
  border-radius: 12px;
}
.np-enrich h2 {
  font-size: 17px;
  font-weight: 750;
  color: var(--green-800, #0B3D21);
  margin: 0 0 16px;
  line-height: 1.5;
}
.np-enrich h3 {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ink);
  margin: 18px 0 7px;
  line-height: 1.5;
}
.np-enrich h3:first-of-type { margin-top: 0; }
.np-enrich p {
  font-size: 14.5px;
  line-height: 1.95;
  color: #444;
  margin: 0 0 10px;
  text-indent: 0;
}
.np-enrich .enrich-cta {
  margin: 18px 0 0;
  padding: 13px 16px;
  background: #fff;
  border: 1px dashed var(--green-600);
  border-radius: 8px;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--green-800, #0B3D21);
  font-weight: 600;
}
@media (max-width: 700px) {
  .np-enrich { padding: 20px 18px; }
}

/* ---------- 页脚备案信息（工信部要求：底部展示并链接工信部查询） ---------- */
.footer-icp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 0 4px;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--muted);
}
.footer-icp:empty { display: none; }
.footer-icp a {
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .2s, border-color .2s;
}
.footer-icp a:hover {
  color: var(--green-700);
  border-bottom-color: var(--green-600);
}
.footer-icp .sep { color: var(--line); }

/* 详情页厂区归属行 */
.np-from {
  margin: -6px 0 20px;
  font-size: 12.5px;
  color: var(--muted);
}

/* 工厂直线信息条 */
.plant-line {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 20px;
  padding: 11px 16px;
  background: var(--green-050);
  border: 1px solid #DCEAE1;
  border-radius: 10px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
}
.plant-line a { color: var(--green-700); font-weight: 650; text-decoration: none; }
.plant-line a:hover { text-decoration: underline; }
.plant-line .pl-tag {
  font-size: 11px;
  letter-spacing: .08em;
  font-weight: 700;
  color: var(--green-700);
  background: #fff;
  border: 1px solid var(--green-600);
  padding: 2px 8px;
  border-radius: 4px;
  flex: 0 0 auto;
}
.plant-line .pl-sep { color: var(--line); }

/* 详情页：核心词引导段 */
.links-lead {
  font-size: 14px;
  line-height: 1.9;
  color: var(--ink-2);
  margin: 0 0 14px;
  padding: 13px 16px;
  background: var(--green-050);
  border-left: 3px solid var(--green-600);
  border-radius: 8px;
}
.links-lead b { color: var(--green-700); font-weight: 700; }

/* 工艺术语对照表 */
.term-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}
.term-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 640px; }
.term-table th, .term-table td {
  padding: 14px 18px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
  line-height: 1.8;
}
.term-table thead th {
  background: var(--green-800);
  color: #fff;
  font-weight: 700;
  font-size: 14.5px;
  white-space: nowrap;
}
.term-table tbody tr:nth-child(even) { background: #FAFCFB; }
.term-table tbody tr:hover { background: var(--green-050); }
.term-table tbody td:first-child {
  font-weight: 700;
  color: var(--green-800);
  white-space: nowrap;
  width: 130px;
  background: rgba(27,122,67,.04);
}
.term-table tbody tr:last-child td { border-bottom: 0; }
@media (max-width: 700px) {
  .term-table th, .term-table td { padding: 11px 13px; font-size: 13px; }
}
