/* ============================================================
   页面层：首页各板块 / 列表页 / 详情页 / 关于 / 联系
   ============================================================ */

/* ---------------- 首页 Banner ---------------- */
.hero { position: relative; height: 760px; min-height: 620px; overflow: hidden; }
.hero-slide {
  position: absolute; inset: 0; opacity: 0; transition: opacity 1s var(--ease);
  display: flex; align-items: center;
}
.hero-slide.on { opacity: 1; }
.hero-slide::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(6, 24, 52, .82) 0%, rgba(6, 24, 52, .45) 52%, rgba(6, 24, 52, .18) 100%);
}
.hero-bg { position: absolute; inset: 0; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-bg.blue { background: linear-gradient(120deg, #062a5c 0%, #0680ec 55%, #29b6f6 100%); }
.hero-bg.cyan { background: linear-gradient(120deg, #033a44 0%, #04b4c9 60%, #34d399 100%); }
.hero-bg.deep { background: linear-gradient(120deg, #0b1230 0%, #1e3a8a 55%, #0680ec 100%); }
.hero-bg.green { background: linear-gradient(120deg, #052e26 0%, #0f766e 52%, #12b76a 100%); }
.hero-grid {
  position: absolute; inset: 0; opacity: .5;
  background-image:
    linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);
  background-size: 62px 62px;
  mask-image: radial-gradient(ellipse at 68% 42%, #000 6%, transparent 68%);
}
.hero-glow {
  position: absolute; width: 720px; height: 720px; right: -140px; top: -160px; border-radius: 50%;
  background: radial-gradient(circle, rgba(41, 182, 246, .38) 0%, transparent 66%);
  animation: float 12s ease-in-out infinite;
}
@keyframes float { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-36px, 34px); } }

.hero-ct { position: relative; z-index: 3; color: #fff; padding-top: var(--head-h); max-width: 780px; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 18px 6px 8px;
  border-radius: 999px; background: rgba(255, 255, 255, .13); border: 1px solid rgba(255, 255, 255, .22);
  font-size: 13.5px; backdrop-filter: blur(8px); margin-bottom: 26px;
}
.hero-badge em { font-style: normal; background: #fff; color: var(--primary); padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.hero-ct h1 { font-size: 60px; font-weight: 700; letter-spacing: -1.5px; line-height: 1.15; }
.hero-ct p { margin: 22px 0 38px; font-size: 18px; line-height: 1.85; opacity: .88; max-width: 620px; }
.hero-acts { display: flex; gap: 14px; flex-wrap: wrap; }

.hero-dots { position: absolute; left: 0; right: 0; bottom: 210px; z-index: 5; }
.hero-dots .wrap { display: flex; gap: 10px; }
.hero-dots i {
  display: block; width: 30px; height: 3px; border-radius: 3px;
  background: rgba(255, 255, 255, .35); cursor: pointer; transition: all .3s;
}
.hero-dots i.on { width: 46px; background: #fff; }

/* 数据指标条 */
.stats-bar {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 6;
  background: rgba(255, 255, 255, .1); border-top: 1px solid rgba(255, 255, 255, .16);
  backdrop-filter: blur(16px) saturate(160%);
}
.stats-grid { display: grid; grid-template-columns: repeat(6, 1fr); }
.stat-i { padding: 26px 16px; text-align: center; color: #fff; border-right: 1px solid rgba(255, 255, 255, .12); }
.stat-i:last-child { border-right: 0; }
.stat-n { font-size: 34px; font-weight: 700; line-height: 1.1; letter-spacing: -1px; }
.stat-n em { font-style: normal; font-size: 16px; font-weight: 500; margin-left: 3px; opacity: .9; }
.stat-l { font-size: 12.5px; opacity: .72; margin-top: 6px; }

/* ---------------- 首页新闻 ---------------- */
.news-lay { display: grid; grid-template-columns: 1.15fr 1fr; gap: 44px; }
.hl-item {
  display: flex; gap: 14px; padding: 18px 0; border-bottom: 1px dashed var(--line);
  align-items: flex-start;
}
.hl-item:first-child { padding-top: 0; }
.hl-no {
  width: 26px; height: 26px; border-radius: 8px; flex-shrink: 0; margin-top: 2px;
  background: var(--bg-blue); color: var(--primary); font-size: 13px; font-weight: 600;
  display: grid; place-items: center;
}
.hl-item:nth-child(1) .hl-no { background: linear-gradient(135deg, var(--primary), var(--primary-light)); color: #fff; }
.hl-item h4 { font-size: 16.5px; font-weight: 500; line-height: 1.6; }
.hl-item:hover h4 { color: var(--primary); }

.nw-item {
  display: flex; gap: 22px; padding: 22px; border-radius: var(--radius);
  transition: all .32s var(--ease); border: 1px solid transparent;
}
.nw-item:hover { background: #fff; border-color: var(--line-2); box-shadow: var(--shadow); }
.nw-date {
  flex-shrink: 0; width: 76px; text-align: center; padding-right: 20px;
  border-right: 1px solid var(--line);
}
.nw-date b { display: block; font-size: 30px; font-weight: 700; color: var(--text); line-height: 1.1; }
.nw-date span { font-size: 12.5px; color: var(--text-4); }
.nw-item:hover .nw-date b { color: var(--primary); }
.nw-ct h4 { font-size: 16.5px; font-weight: 500; margin-bottom: 8px; line-height: 1.6; }
.nw-item:hover .nw-ct h4 { color: var(--primary); }
.nw-ct p {
  margin: 0; font-size: 13.5px; color: var(--text-3); line-height: 1.75;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ---------------- 产品与服务（Tab） ---------------- */
.tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 36px; }
.tabs button {
  height: 44px; padding: 0 26px; border-radius: 999px; font-size: 15px;
  background: #fff; border: 1px solid var(--line); color: var(--text-2); transition: all .28s var(--ease);
}
.tabs button:hover { border-color: var(--primary); color: var(--primary); }
.tabs button.on {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  border-color: transparent; color: #fff; box-shadow: 0 8px 20px rgba(6, 128, 236, .26);
}
.tabs.center { justify-content: center; }

.pd-panel { display: none; }
.pd-panel.on { display: block; animation: fadeUp .5s var(--ease); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.pd-lay { display: grid; grid-template-columns: 380px 1fr; gap: 40px; align-items: start; }
.pd-intro {
  background: linear-gradient(150deg, #062a5c 0%, #0b4ea8 60%, #0680ec 100%);
  border-radius: var(--radius-l); padding: 38px 34px; color: #fff; position: relative; overflow: hidden;
}
.pd-intro::after {
  content: ''; position: absolute; right: -70px; bottom: -70px; width: 230px; height: 230px;
  border-radius: 50%; background: radial-gradient(circle, rgba(41, 182, 246, .42), transparent 68%);
}
.pd-intro h3 { font-size: 25px; margin-bottom: 16px; position: relative; }
.pd-intro p { font-size: 14px; line-height: 1.95; opacity: .84; margin: 0 0 26px; position: relative; }
.pd-intro .btn { position: relative; }
.pd-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.pd-card { padding: 26px; display: flex; flex-direction: column; }
.pd-card .ico {
  width: 46px; height: 46px; border-radius: 13px; margin-bottom: 16px;
  background: linear-gradient(135deg, rgba(6, 128, 236, .12), rgba(4, 180, 201, .14));
  color: var(--primary); display: grid; place-items: center;
}
.pd-card h4 { font-size: 17px; margin-bottom: 10px; line-height: 1.5; }
.pd-card:hover h4 { color: var(--primary); }
.pd-card p {
  margin: 0 0 16px; font-size: 13.5px; color: var(--text-3); line-height: 1.8; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.pd-tags { display: flex; gap: 6px; flex-wrap: wrap; }

/* ---------------- 解决方案（三列） ---------------- */
.sol-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sol-col {
  background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius-l);
  overflow: hidden; transition: all .35s var(--ease);
}
.sol-col:hover { box-shadow: var(--shadow-l); transform: translateY(-5px); }
.sol-top { padding: 30px 28px 24px; position: relative; color: #fff; overflow: hidden; }
.sol-top::before {
  content: ''; position: absolute; inset: 0; opacity: .18;
  background-image: linear-gradient(rgba(255, 255, 255, .5) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .5) 1px, transparent 1px);
  background-size: 24px 24px; mask-image: radial-gradient(ellipse at 80% 10%, #000, transparent 70%);
}
.sol-top h3 { font-size: 24px; position: relative; margin-bottom: 10px; }
.sol-top p { margin: 0; font-size: 13px; line-height: 1.8; opacity: .85; position: relative; min-height: 46px; }
.sol-list { padding: 12px 16px 20px; }
.sol-list a {
  display: block; padding: 15px 16px; border-radius: 12px; transition: all .26s var(--ease);
  border-bottom: 1px solid var(--line-2);
}
.sol-list a:last-child { border-bottom: 0; }
.sol-list a:hover { background: var(--bg-blue); transform: translateX(4px); }
.sol-list b { display: block; font-size: 15.5px; font-weight: 500; margin-bottom: 4px; }
.sol-list a:hover b { color: var(--primary); }
.sol-list span { font-size: 12.5px; color: var(--text-4); }

/* ---------------- 案例 ---------------- */
.case-scroll { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.case-card { display: flex; flex-direction: column; overflow: hidden; }
.case-card .cover { aspect-ratio: 16 / 9; }
.case-body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.case-body h4 {
  font-size: 18px; line-height: 1.55; margin-bottom: 12px; min-height: 56px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.case-card:hover .case-body h4 { color: var(--primary); }
.case-body > p {
  margin: 0 0 20px; font-size: 13.5px; color: var(--text-3); line-height: 1.8; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.case-metrics { display: flex; gap: 8px; padding-top: 18px; border-top: 1px dashed var(--line); }
.case-metrics div { flex: 1; min-width: 0; }
.case-metrics b { display: block; font-size: 21px; font-weight: 700; color: var(--primary); line-height: 1.25; }
.case-metrics b em { font-style: normal; font-size: 12px; margin-left: 2px; font-weight: 500; }
.case-metrics span { font-size: 12px; color: var(--text-4); display: block; margin-top: 2px; }

/* ---------------- 客户证言 ---------------- */
.tm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 24px; }
.tm-card {
  background: #fff; border-radius: var(--radius-l); padding: 34px 32px; position: relative;
  border: 1px solid var(--line-2); transition: all .35s var(--ease);
}
.tm-card:hover { box-shadow: var(--shadow-l); transform: translateY(-4px); }
.tm-card::before {
  content: '"'; position: absolute; right: 26px; top: 8px; font-size: 82px;
  font-family: Georgia, serif; color: var(--primary); opacity: .09; line-height: 1;
}
.tm-card h4 { font-size: 19px; margin-bottom: 16px; padding-right: 40px; }
.tm-bg { font-size: 13.5px; color: var(--text-3); line-height: 1.9; margin-bottom: 16px; }
.tm-ct {
  font-size: 14px; color: var(--text-2); line-height: 1.9; padding: 16px 18px;
  background: var(--bg-blue); border-radius: 12px; border-left: 3px solid var(--primary);
}
.tm-client { margin-top: 18px; font-size: 13px; color: var(--text-4); display: flex; align-items: center; gap: 8px; }
.tm-client i { width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--cyan)); display: grid; place-items: center; color: #fff; font-style: normal; font-size: 12px; }

/* ---------------- 底部 CTA ---------------- */
.cta { position: relative; padding: 78px 0; overflow: hidden; background: linear-gradient(115deg, #062a5c, #0b4ea8 58%, #0680ec); }
.cta::before {
  content: ''; position: absolute; inset: 0; opacity: .4;
  background-image: linear-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .08) 1px, transparent 1px);
  background-size: 54px 54px; mask-image: radial-gradient(ellipse at 20% 50%, #000, transparent 72%);
}
.cta-inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; color: #fff; }
.cta h2 { font-size: 38px; letter-spacing: -.5px; }
.cta p { margin: 12px 0 0; font-size: 17px; opacity: .82; }
.cta-tel { text-align: right; }
.cta-tel span { font-size: 13px; opacity: .7; }
.cta-tel b { display: block; font-size: 34px; font-weight: 700; letter-spacing: .5px; }

/* ---------------- 内页横幅 ---------------- */
.pbanner {
  position: relative; height: 340px; display: flex; align-items: center; overflow: hidden;
  background: linear-gradient(115deg, #062a5c 0%, #0b4ea8 55%, #0680ec 100%);
}
.pbanner::before {
  content: ''; position: absolute; inset: 0; opacity: .35;
  background-image: linear-gradient(rgba(255, 255, 255, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .09) 1px, transparent 1px);
  background-size: 56px 56px; mask-image: radial-gradient(ellipse at 72% 30%, #000, transparent 70%);
}
.pbanner-img { position: absolute; inset: 0; }
.pbanner-img img { width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.pbanner .wrap { position: relative; z-index: 2; color: #fff; padding-top: 40px; }
.pbanner h1 { font-size: 42px; font-weight: 600; letter-spacing: -.5px; }
.pbanner p { margin: 14px 0 0; font-size: 16.5px; opacity: .84; max-width: 700px; }

/* ---------------- 列表页 ---------------- */
.filter-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  flex-wrap: wrap; padding: 26px 0 30px; border-bottom: 1px solid var(--line-2); margin-bottom: 36px;
}
.filter-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.filter-tabs button {
  height: 38px; padding: 0 20px; border-radius: 999px; font-size: 14.5px;
  color: var(--text-2); transition: all .25s; background: var(--bg-tint);
}
.filter-tabs button:hover { color: var(--primary); }
.filter-tabs button.on { background: var(--primary); color: #fff; }
.filter-search { display: flex; align-items: center; gap: 8px; padding: 0 16px; height: 40px; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.filter-search input { border: 0; width: 190px; background: none; font-size: 14px; }

.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }

.lc { display: flex; flex-direction: column; }
.lc-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.lc-cat { font-size: 12px; color: var(--primary); margin-bottom: 8px; }
.lc-body h3 { font-size: 18px; line-height: 1.55; margin-bottom: 10px; }
.lc:hover h3 { color: var(--primary); }
.lc-body p {
  margin: 0 0 16px; font-size: 13.5px; color: var(--text-3); line-height: 1.8; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.lc-foot { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; color: var(--text-4); padding-top: 14px; border-top: 1px solid var(--line-2); }

/* 新闻列表（横向） */
.nlist-item { display: grid; grid-template-columns: 280px 1fr; gap: 28px; padding: 26px; align-items: center; }
.nlist-item .cover { border-radius: 12px; aspect-ratio: 16/10; }
.nlist-item h3 { font-size: 20px; line-height: 1.55; margin-bottom: 12px; }
.nlist-item:hover h3 { color: var(--primary); }
.nlist-item p { margin: 0 0 16px; color: var(--text-3); font-size: 14px; line-height: 1.85; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nlist-meta { display: flex; gap: 18px; font-size: 12.5px; color: var(--text-4); align-items: center; }

/* ---------------- 详情页 ---------------- */
.dt-lay { display: grid; grid-template-columns: 1fr 320px; gap: 48px; align-items: start; padding: 48px 0 70px; }
.dt-head { padding-bottom: 26px; border-bottom: 1px solid var(--line-2); margin-bottom: 30px; }
.dt-head h1 { font-size: 33px; line-height: 1.4; letter-spacing: -.5px; }
.dt-meta { display: flex; gap: 20px; margin-top: 18px; font-size: 13px; color: var(--text-4); flex-wrap: wrap; align-items: center; }
.dt-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; margin: 0 0 34px; }
.dt-metric { background: var(--bg-blue); border-radius: 14px; padding: 22px 20px; text-align: center; }
.dt-metric b { display: block; font-size: 28px; font-weight: 700; color: var(--primary); line-height: 1.2; }
.dt-metric b em { font-style: normal; font-size: 13px; margin-left: 2px; }
.dt-metric span { font-size: 13px; color: var(--text-3); }
.dt-summary {
  background: var(--bg-soft); border-left: 3px solid var(--primary); border-radius: 0 12px 12px 0;
  padding: 20px 24px; font-size: 15px; color: var(--text-2); line-height: 1.9; margin-bottom: 30px;
}
.dt-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 46px; padding-top: 26px; border-top: 1px solid var(--line-2); font-size: 14px; flex-wrap: wrap; }
.dt-nav a { color: var(--text-2); max-width: 46%; }
.dt-nav a:hover { color: var(--primary); }
.dt-nav span { color: var(--text-4); }

.aside-box { background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius); padding: 24px; margin-bottom: 22px; }
.aside-box h4 { font-size: 17px; margin-bottom: 18px; padding-left: 12px; position: relative; }
.aside-box h4::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 16px; background: var(--primary); border-radius: 2px; }
.aside-list li { padding: 12px 0; border-bottom: 1px dashed var(--line); }
.aside-list li:last-child { border-bottom: 0; }
.aside-list a { font-size: 14px; line-height: 1.65; color: var(--text-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aside-list a:hover { color: var(--primary); }
.aside-cta { background: linear-gradient(150deg, #062a5c, #0680ec); color: #fff; text-align: center; padding: 32px 24px; }
.aside-cta h4 { color: #fff; padding: 0; font-size: 19px; margin-bottom: 10px; }
.aside-cta h4::before { display: none; }
.aside-cta p { font-size: 13px; opacity: .82; margin: 0 0 20px; }
.aside-cta b { display: block; font-size: 23px; margin-bottom: 16px; }
.aside-sticky { position: sticky; top: calc(var(--head-h) + 20px); }

/* ---------------- 关于页 ---------------- */
.ab-lay { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.ab-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ab-metric { background: linear-gradient(160deg, var(--bg-blue), #fff); border: 1px solid var(--line-2); border-radius: var(--radius); padding: 26px 24px; }
.ab-metric b { display: block; font-size: 36px; font-weight: 700; color: var(--primary); line-height: 1.15; letter-spacing: -1px; }
.ab-metric b em { font-style: normal; font-size: 15px; margin-left: 2px; }
.ab-metric span { font-size: 13.5px; color: var(--text-3); }

.timeline { position: relative; padding-left: 30px; }
.timeline::before { content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--primary), rgba(6, 128, 236, .1)); }
.timeline li { position: relative; padding-bottom: 26px; }
.timeline li::before { content: ''; position: absolute; left: -30px; top: 8px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--primary); }
.timeline b { display: inline-block; font-size: 17px; color: var(--primary); margin-right: 12px; }

.partner-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.partner-i {
  height: 96px; background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius);
  display: grid; place-items: center; padding: 16px; text-align: center;
  font-size: 14px; color: var(--text-2); transition: all .3s var(--ease);
}
.partner-i:hover { border-color: var(--primary); color: var(--primary); box-shadow: var(--shadow); transform: translateY(-3px); }
.partner-i img { max-height: 52px; width: auto; object-fit: contain; }

/* ---------------- 招聘 ---------------- */
.job-item { padding: 26px 28px; margin-bottom: 14px; cursor: pointer; }
.job-hd { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.job-hd h3 { font-size: 19px; }
.job-tags { display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--text-3); }
.job-tags i { font-style: normal; padding: 3px 12px; background: var(--bg-tint); border-radius: 999px; }
.job-body { display: none; margin-top: 22px; padding-top: 22px; border-top: 1px dashed var(--line); }
.job-item.open .job-body { display: block; animation: fadeUp .4s var(--ease); }
.job-body h5 { font-size: 15px; margin: 0 0 10px; color: var(--text); }
.job-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }

/* ---------------- 联系页 ---------------- */
.ct-lay { display: grid; grid-template-columns: 1fr 1.05fr; gap: 52px; align-items: start; }
.ct-info-card { background: linear-gradient(155deg, #062a5c, #0b4ea8 60%, #0680ec); border-radius: var(--radius-l); padding: 44px 40px; color: #fff; position: relative; overflow: hidden; }
.ct-info-card::after { content: ''; position: absolute; right: -80px; bottom: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(41, 182, 246, .4), transparent 68%); }
.ct-info-card h2 { font-size: 28px; margin-bottom: 12px; position: relative; }
.ct-info-card > p { opacity: .82; font-size: 14.5px; margin: 0 0 34px; position: relative; line-height: 1.9; }
.ct-line { display: flex; gap: 16px; padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, .14); position: relative; }
.ct-line .ico { width: 42px; height: 42px; border-radius: 12px; background: rgba(255, 255, 255, .14); display: grid; place-items: center; flex-shrink: 0; }
.ct-line span { display: block; font-size: 12.5px; opacity: .68; }
.ct-line b { font-size: 17px; font-weight: 600; line-height: 1.6; word-break: break-all; }

.form-card { background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius-l); padding: 40px; box-shadow: var(--shadow-s); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.fi { display: flex; flex-direction: column; gap: 8px; }
.fi.full { grid-column: span 2; }
.fi label { font-size: 13.5px; color: var(--text-2); font-weight: 500; }
.fi label i { color: var(--red); font-style: normal; margin-left: 2px; }
.fi input, .fi select, .fi textarea {
  height: 46px; padding: 0 15px; border: 1px solid var(--line); border-radius: 10px;
  font-size: 14.5px; color: var(--text); background: #fff; transition: all .25s; width: 100%;
}
.fi textarea { height: auto; padding: 13px 15px; resize: vertical; line-height: 1.75; }
.fi input:focus, .fi select:focus, .fi textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(6, 128, 236, .1); }
.fi .radios { display: flex; gap: 10px; }
.fi .radios label {
  flex: 1; height: 46px; display: flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--line); border-radius: 10px; cursor: pointer; transition: all .25s; font-size: 14px;
}
.fi .radios input { display: none; }
.fi .radios input:checked + span { color: var(--primary); }
.fi .radios label:has(input:checked) { border-color: var(--primary); background: var(--bg-blue); color: var(--primary); }
.form-tip { font-size: 12.5px; color: var(--text-4); margin-top: 16px; }

/* ---------------- 404 ---------------- */
.nf { min-height: 70vh; display: grid; place-items: center; text-align: center; padding: 120px 20px 80px; }
.nf b { font-size: 110px; font-weight: 800; background: linear-gradient(135deg, var(--primary), var(--cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; line-height: 1; }
.nf h2 { font-size: 25px; margin: 16px 0 10px; }
.nf p { color: var(--text-3); margin: 0 0 28px; }

/* ---------------- 响应式 ---------------- */
@media (max-width: 1180px) {
  .hero-ct h1 { font-size: 46px; }
  .stats-grid { grid-template-columns: repeat(3, 1fr); }
  .stat-i:nth-child(3) { border-right: 0; }
  .hero { height: auto; min-height: 0; padding-bottom: 0; }
  .hero-dots { bottom: 250px; }
  .pd-lay { grid-template-columns: 1fr; }
  .dt-lay { grid-template-columns: 1fr; gap: 34px; }
  .partner-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 980px) {
  .news-lay, .ab-lay, .ct-lay, .job-cols { grid-template-columns: 1fr; gap: 32px; }
  .sol-grid, .case-scroll, .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .hero { height: 640px; }
  .hero-ct h1 { font-size: 38px; }
  .hero-ct p { font-size: 16px; }
  .cta h2 { font-size: 29px; }
  .pbanner { height: 260px; }
  .pbanner h1 { font-size: 30px; }
  .nlist-item { grid-template-columns: 200px 1fr; gap: 20px; }
  .form-card { padding: 26px; }
}
@media (max-width: 680px) {
  .sol-grid, .case-scroll, .grid-3, .grid-2, .pd-grid, .form-grid, .ab-metrics { grid-template-columns: 1fr; }
  .fi.full { grid-column: span 1; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-i { border-right: 0; padding: 18px 10px; }
  .stat-n { font-size: 26px; }
  .hero-ct h1 { font-size: 30px; }
  .hero { height: 620px; }
  .hero-dots { bottom: 300px; }
  .nlist-item { grid-template-columns: 1fr; }
  .partner-grid { grid-template-columns: repeat(2, 1fr); }
  .dt-head h1 { font-size: 24px; }
  .sec-title { font-size: 23px; }
  .cta-tel { text-align: left; }
}
