/* 三大板块：表单 + 下拉导航（不影响原 style.css） */
.site-header .nav-links .nav-item.has-dropdown { position: relative; }
.site-header .nav-links .dropdown {
  display: none; position: absolute; top: 100%; left: 0; min-width: 260px;
  background: #fff; border: 1px solid var(--line,#e8e2d6); border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0,0,0,.12); padding: 8px; z-index: 50;
}
.site-header .nav-links .nav-item.has-dropdown:hover .dropdown { display: block; }
.site-header .nav-links .dropdown a {
  display: block; padding: 9px 12px; color: var(--ink,#222); border-radius: 6px;
  font-size: 14px; white-space: nowrap;
}
.site-header .nav-links .dropdown a:hover { background: var(--gold-soft,#fff7e6); color: var(--red,#c8102e); }

/* 顶部导航对齐修复：下拉项是 <div class="nav-item"><a>…</a><div class="dropdown">…</div></div>，
   比普通项（直接 <a>）多包了一层容器。原来 .nav-links 是 flex 且未设 align-items，
   下拉项的文字与下划线会比普通项「高一格」。统一成 42px 行高 + 垂直居中后必然齐平。 */
.site-header .nav-links { align-items: center; }
.site-header .nav-links > a,
.site-header .nav-links > .nav-item > a {
  display: flex; align-items: center; height: 42px; padding: 0 17px; box-sizing: border-box;
}
.site-header .nav-links > .nav-item { display: flex; align-items: center; }

/* 段间分栏线：收紧留白后，用带文字的分栏线明确「下面还有内容」 */
.sec-divider { display: flex; align-items: center; gap: 14px; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.sec-divider::before, .sec-divider::after { content: ""; flex: 1; height: 1px; }
.sec-divider::before { background: linear-gradient(90deg, rgba(212,160,23,0), #e6d9bf 55%, #d4a017); }
.sec-divider::after { background: linear-gradient(270deg, rgba(212,160,23,0), #e6d9bf 55%, #d4a017); }
.sec-divider span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  color: #b8860b; font-size: 13px; font-weight: 700; letter-spacing: 2px; }
.sec-divider span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--gold,#d4a017); }

/* 三大板块页专用：收紧 section 段间距（原 80px×2 = 160px 间隔，易误以为下面没内容） */
body.mod-page .section { padding: 46px 0; }
body.mod-page .section.consult { padding-top: 40px; }
body.mod-page .section-title { margin-bottom: 26px; }
body.mod-page .section-title h2 { font-size: 30px; margin: 10px 0; }

.wb-form { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--line,#e8e2d6);
  border-radius: 14px; padding: 26px 28px; }
.wb-form .form-row { margin-bottom: 16px; display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: 0 14px; }
.wb-form .form-col { min-width: 0; }
.wb-form label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ink,#222); font-size: 14px; }
.wb-form .req { color: var(--red,#c8102e); }
.wb-form input, .wb-form select, .wb-form textarea {
  width: 100%; padding: 11px 13px; border: 1px solid var(--line,#e8e2d6); border-radius: 9px;
  font-size: 14px; font-family: inherit; background: #fcfbf9; box-sizing: border-box;
}
.wb-form input:focus, .wb-form select:focus, .wb-form textarea:focus {
  outline: none; border-color: var(--red,#c8102e); background: #fff;
}
.wb-form textarea { resize: vertical; }
.wb-form .form-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 6px; }
.wb-form .btn-primary {
  background: var(--red,#c8102e); color: #fff; border: none; border-radius: 9px;
  padding: 12px 26px; font-size: 15px; font-weight: 700; cursor: pointer;
}
.wb-form .btn-primary:hover { background: #a50d24; }
.wb-form .form-hint { font-size: 12px; color: var(--ink-soft,#8a8175); max-width: 380px; line-height: 1.5; }
.wb-form .form-status { margin-top: 14px; padding: 12px 14px; border-radius: 9px; font-size: 14px; }
.wb-form .form-status.ok { background: #eafaf0; color: #1a7f43; border: 1px solid #b6e8c8; }
.wb-form .form-status.err { background: #fdeaea; color: #b3261e; border: 1px solid #f3c2c2; }
/* 一行三列：联系人 / 联系电话 / 微信号 */
.wb-form .form-row.row-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0 14px; }
.wb-form .form-row.row-3 > div { min-width: 0; }
.wb-form .form-row.row-3 label { margin-bottom: 6px; }
/* 一行两列：资质类别+需求 / 单位+城市 等 */
.wb-form .form-row.row-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 14px; }
.wb-form .form-row.row-2 > div { min-width: 0; }
/* 一行四列：AI 预警联系人/电话/邮箱/微信 */
.wb-form .form-row.row-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0 12px; }
.wb-form .form-row.row-4 > div { min-width: 0; }
/* 选填标记 */
.wb-form .opt { color: var(--ink-soft,#8a8175); font-weight: 400; font-size: 12px; }

/* 12 项预警需求：固定 6 列 × 2 行，标签强制单行不折行
   （原 auto-fill minmax(160px) 在 704px 容器里排成 4 列，标签「资质异常」被折成两行） */
.chk-group { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 14px 24px; margin-top: 6px; }
.chk-group .chk { display: flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 400;
  cursor: pointer; margin-bottom: 0; white-space: nowrap; min-width: 0; }
.chk-group .chk input { width: 13px; height: 13px; flex: 0 0 auto; margin: 0; accent-color: var(--red,#c8102e); }
.chk-group.over .chk:not(.on) { opacity: .4; pointer-events: none; }

.ov-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 14px; }
.ov-card { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--line,#e8e2d6);
  border-radius: 12px; padding: 16px 18px; text-decoration: none; color: var(--ink,#222); transition: .15s; }
.ov-card:hover { border-color: var(--red,#c8102e); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(200,16,46,.1); }
.ov-card span { font-weight: 700; font-size: 15px; }
.ov-card em { font-style: normal; font-size: 12px; color: var(--red,#c8102e); }

.std-level { background: #fff; border: 1px solid var(--line,#e8e2d6); border-radius: 14px; padding: 22px 24px; margin-bottom: 18px; }
.std-level-title { color: var(--red,#c8102e); border-left: 4px solid var(--red,#c8102e); padding-left: 12px; margin: 0 0 16px; font-size: 18px; }
.std-level-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 18px; }
.std-sec h4 { margin: 0 0 8px; font-size: 15px; color: var(--ink,#222); }
.std-items { margin: 0; padding-left: 20px; color: var(--ink-soft,#5b554c); line-height: 1.8; font-size: 14px; }
.std-scope { background: linear-gradient(135deg,#fff7e6,#fff); border: 1px solid #f0d9a8; border-radius: 14px; padding: 22px 24px; margin-bottom: 18px; }
.std-note { font-size: 13px; color: var(--ink-soft,#8a8175); background: #f8f6f1; border-left: 3px solid var(--gold,#d4a017);
  padding: 10px 14px; border-radius: 8px; margin-top: 18px; line-height: 1.7; }

.feature-list li { margin-bottom: 10px; line-height: 1.7; }

/* AI 预警专题 */
.ai-banner { display: inline-block; margin: 16px auto 0; background: var(--gold-soft,#fff7e6); color: var(--red,#c8102e);
  border: 1px dashed var(--gold,#d4a017); border-radius: 999px; padding: 8px 18px; font-weight: 700; font-size: 14px; }
.warn-list { display: flex; flex-direction: column; gap: 14px; }
.warn-card { display: flex; gap: 16px; background: #fff; border: 1px solid var(--line,#e8e2d6); border-radius: 14px; padding: 18px 20px; }
.warn-no { flex: 0 0 44px; height: 44px; border-radius: 12px; background: var(--red,#c8102e); color: #fff;
  font-weight: 800; font-size: 18px; display: flex; align-items: center; justify-content: center; }
.warn-main { flex: 1; }
.warn-main h3 { margin: 0 0 8px; }
.warn-meaning { color: var(--ink-soft,#5b554c); line-height: 1.7; margin: 0 0 10px; font-size: 14px; }
.warn-cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cmp { border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.6; }
.cmp .tag { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 1px 7px; margin-bottom: 4px; }
.cmp.ai { background: #eef6ff; border: 1px solid #bcdcff; }
.cmp.ai .tag { background: #1a73e8; color: #fff; }
.cmp.human { background: #f5f5f5; border: 1px solid #e0e0e0; }
.cmp.human .tag { background: #8a8175; color: #fff; }
.cmp p { margin: 0; color: var(--ink-soft,#5b554c); }
.table-wrap { overflow-x: auto; }
.cmp-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line,#e8e2d6); border-radius: 10px; overflow: hidden; font-size: 13px; }
.cmp-table th, .cmp-table td { padding: 10px 12px; border-bottom: 1px solid #eee; text-align: left; vertical-align: top; }
.cmp-table th { background: var(--red,#c8102e); color: #fff; }
.cmp-table tbody tr:nth-child(even) { background: #faf8f3; }
.case-card { background: #fff; border: 1px solid var(--line,#e8e2d6); border-radius: 14px; padding: 20px 22px; }
.case-card p { line-height: 1.8; color: var(--ink-soft,#5b554c); font-size: 14px; }
.case-tag { display: inline-block; background: var(--gold-soft,#fff7e6); color: var(--red,#c8102e); border-radius: 8px;
  padding: 4px 10px; font-weight: 700; font-size: 13px; margin-bottom: 10px; }
@media (max-width: 720px){
  .warn-cmp { grid-template-columns: 1fr; }
  .std-level-body { grid-template-columns: 1fr; }
  .chk-group { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .wb-form .form-row.row-3,
  .wb-form .form-row.row-2,
  .wb-form .form-row.row-4 { grid-template-columns: 1fr; }
  body.mod-page .section { padding: 34px 0; }
  body.mod-page .section-title h2 { font-size: 24px; }
  .sec-divider span { font-size: 12px; letter-spacing: 1px; }
}

/* ===== 多选下拉增强（资质类别 / 证书类别） ===== */
.wb-ms { position: relative; }
select[multiple].wb-ms-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; opacity:0; overflow:hidden; clip:rect(0 0 0 0); border:0; }
.wb-ms-control { min-height:42px; border:1px solid var(--line,#e8e2d6); border-radius:10px; background:#fff; padding:6px 10px; cursor:pointer; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.wb-ms-control.focus { border-color: var(--red,#c8102e); box-shadow:0 0 0 3px rgba(200,16,46,.08); }
.wb-ms-placeholder { color:#9a9389; font-size:14px; }
.wb-ms-tag { display:inline-flex; align-items:center; gap:6px; background:var(--gold-soft,#fff7e6); color:var(--red,#c8102e); border-radius:8px; padding:3px 8px; font-size:13px; }
.wb-ms-tag button { border:0; background:none; color:inherit; cursor:pointer; font-size:15px; line-height:1; padding:0 2px; }
.wb-ms-panel { position:absolute; z-index:50; left:0; right:0; top:calc(100% + 6px); background:#fff; border:1px solid var(--line,#e8e2d6); border-radius:12px; box-shadow:0 12px 30px rgba(0,0,0,.12); padding:10px; display:none; max-height:320px; overflow:auto; }
.wb-ms-panel.open { display:block; }
.wb-ms-search { width:100%; box-sizing:border-box; border:1px solid var(--line,#e8e2d6); border-radius:8px; padding:8px 10px; margin-bottom:8px; font-size:14px; }
.wb-ms-opt { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:8px; cursor:pointer; font-size:14px; }
.wb-ms-opt:hover { background:#faf6ee; }
.wb-ms-opt.child { padding-left:26px; color:#5b554c; }
.wb-ms-opt.group { font-weight:700; color:#222; }
.wb-ms-opt.sel { background:var(--gold-soft,#fff7e6); }
.wb-ms-opt .box { width:16px; height:16px; border:1.5px solid #c9c2b6; border-radius:4px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:11px; }
.wb-ms-opt.sel .box { background:var(--red,#c8102e); border-color:var(--red,#c8102e); }
.wb-ms-opt.sel .box::after { content:'✓'; }
.wb-ms-clear { margin-top:8px; text-align:right; }
.wb-ms-clear button { border:0; background:none; color:var(--red,#c8102e); cursor:pointer; font-size:13px; }
/* 面板展开时隐藏字段提示语：否则 6px 间隙会把提示语切出一道半截文字 */
.form-col.wb-ms-open .form-hint { visibility: hidden; }

/* 标题高亮词（限时活动提示）：红色加粗 + 轻微跳动，用于吸引访客注意 */
.hl-pulse { color:#d0021b; font-weight:800; display:inline-block;
  animation: wbHlPulse 1.15s cubic-bezier(.36,.07,.19,.97) infinite; will-change:transform; }
@keyframes wbHlPulse {
  0%, 100% { transform: translateY(0) scale(1); text-shadow: 0 0 0 rgba(208,2,27,0); }
  28%  { transform: translateY(-2px) scale(1.055); text-shadow: 0 5px 14px rgba(208,2,27,.30); }
  56%  { transform: translateY(0) scale(1.01); text-shadow: 0 2px 6px rgba(208,2,27,.14); }
  78%  { transform: translateY(-1px) scale(1.028); }
}
@media (prefers-reduced-motion: reduce) { .hl-pulse { animation: none; } }
