:root {
  --navy: #06172f;
  --navy-2: #09284e;
  --blue: #0869f7;
  --cyan: #12c6ef;
  --ink: #10233f;
  --muted: #65758c;
  --line: #dce7f5;
  --wash: #f4f8fd;
  --white: #fff;
  --shadow: 0 18px 44px rgba(19, 52, 93, .09);
  --container: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.container { width: min(var(--container), calc(100% - 48px)); margin: 0 auto; }
.section { padding: 76px 0; }
.section.soft { background: linear-gradient(180deg, #f8fbff 0%, #fff 100%); }
.section.dark { color: #fff; background: var(--navy); }
.eyebrow { margin: 0 0 12px; color: var(--blue); font-size: 14px; font-weight: 700; text-transform: uppercase; }
.section-title { margin: 0; color: var(--ink); font-size: clamp(28px, 3vw, 42px); line-height: 1.2; font-weight: 750; }
.section-title.light { color: #fff; }
.section-intro { max-width: 760px; margin: 16px auto 0; color: var(--muted); font-size: 17px; line-height: 1.8; }
.section-head { margin-bottom: 42px; text-align: center; }
.text-left { text-align: left; }
.text-left .section-intro { margin-left: 0; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 24px; border: 1px solid transparent; border-radius: 4px;
  background: linear-gradient(90deg, var(--blue), #078ae8); color: #fff; font-weight: 650;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(8, 105, 247, .25); }
.btn.secondary { border-color: rgba(255,255,255,.48); background: rgba(5, 24, 47, .3); }
.btn.ghost { border-color: #bfd3ed; background: #fff; color: var(--blue); }
.btn i { width: 18px; height: 18px; }

/* Header */
.site-header {
  position: absolute; z-index: 100; inset: 0 0 auto; height: 78px;
  border-bottom: 1px solid rgba(255,255,255,.12); color: #fff;
  background: linear-gradient(180deg, rgba(3,18,36,.82), rgba(3,18,36,.2));
}
.site-header.solid { position: relative; background: var(--navy); }
.nav-wrap { height: 78px; display: flex; align-items: center; justify-content: space-between; }
.brand img { width: 166px; height: auto; }
.nav-list { display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; list-style: none; }
.nav-link { position: relative; padding: 27px 0 25px; color: rgba(255,255,255,.88); font-size: 15px; font-weight: 550; white-space: nowrap; }
.nav-link::after { content: ""; position: absolute; left: 50%; bottom: 15px; width: 0; height: 2px; background: var(--cyan); transform: translateX(-50%); transition: width .2s; }
.nav-link:hover, .nav-link.active { color: #fff; }
.nav-link.active::after, .nav-link:hover::after { width: 30px; }
.menu-button { display: none; width: 42px; height: 42px; border: 0; background: transparent; color: #fff; }
.menu-button i { width: 26px; height: 26px; }

/* Heroes */
.hero { position: relative; min-height: 610px; overflow: hidden; color: #fff; background: var(--navy); }
.hero::before { content: ""; position: absolute; inset: 0; background-position: center; background-size: cover; transform: scale(1.01); }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,15,31,.72) 0%, rgba(2,15,31,.3) 50%, rgba(2,15,31,.12) 100%); }
.hero-home { min-height: 660px; }
.hero-home::before { background-image: url("assets/bg-home-clean.png"); animation: hero-drift 16s ease-in-out infinite alternate; }
.hero-inspection::before { background-image: url("assets/bg-home-clean.png"); }
.hero-solutions::before { background-image: url("assets/bg-home-hero.jpg"); background-position: center; }
.hero-ai::before { background-image: url("assets/generated/ai-hero-city-inspection.jpg"); background-position: center 48%; }
.hero-dingtalk::before { background-image:url("assets/generated/dingtalk-hero-enterprise.jpg"); background-position:center; }
.hero-dingtalk::after { background:linear-gradient(90deg,rgba(2,15,31,.82) 0%,rgba(2,15,31,.57) 42%,rgba(2,15,31,.12) 72%,rgba(2,15,31,.08) 100%); }
.hero-dingtalk .hero-copy { max-width:760px; }
.dingtalk-hero-meta { display:flex; align-items:center; gap:18px; margin-top:24px; color:rgba(255,255,255,.72); font-size:14px; }
.dingtalk-hero-meta .trust-badge { margin:0; }
.dingtalk-hero-meta .trust-badge i { width:17px; height:17px; }
.hero-cases::before { background-image: url("assets/generated/park-case.png"); }
.hero-contact::before { background-image: url("assets/generated/contact-consultation-hero.png"); background-position:center 48%; }
@keyframes hero-drift { from { transform: scale(1.03) translate3d(-.5%,0,0); } to { transform: scale(1.08) translate3d(.8%,-.5%,0); } }
@media (prefers-reduced-motion: reduce) { .hero-home::before { animation: none; } }
.hero-content { position: relative; z-index: 2; min-height: inherit; padding-top: 78px; display: flex; align-items: center; }
.hero-copy { max-width: 790px; padding: 62px 0 48px; }
.hero-kicker { margin: 0 0 18px; color: #7ddaf7; font-size: 15px; font-weight: 700; letter-spacing: .08em; }
.hero h1 { margin: 0; font-size: clamp(40px, 5.4vw, 72px); line-height: 1.15; font-weight: 800; text-shadow: 0 4px 24px rgba(0,0,0,.2); }
.hero p { max-width: 700px; margin: 20px 0 0; color: rgba(255,255,255,.86); font-size: clamp(17px, 2vw, 22px); line-height: 1.75; }
.hero-actions { display: flex; gap: 16px; margin-top: 34px; }
.hero-tabs { display: flex; gap: 10px; margin-top: 32px; }
.hero-tab { padding: 10px 20px; border: 1px solid rgba(255,255,255,.35); border-radius: 4px; background: rgba(2,21,43,.28); color: #fff; }
.hero-tab.active { border-color: var(--blue); background: var(--blue); }
.sub-hero { min-height: 480px; }
.sub-hero h1 { font-size: clamp(38px, 4.2vw, 60px); }

/* Shared cards and flows */
.split-business { display: grid; grid-template-columns: 1.25fr .9fr; }
.business-panel { padding: 54px max(36px, calc((100vw - var(--container))/2)); background: #fff; }
.business-panel:first-child { padding-left: max(36px, calc((100vw - var(--container))/2)); padding-right: 56px; }
.business-panel:last-child { padding-left: 56px; padding-right: max(36px, calc((100vw - var(--container))/2)); background: #f5f9ff; }
.business-panel h2 { margin: 0 0 12px; font-size: 28px; }
.business-panel > p { color: var(--muted); line-height: 1.8; }
.icon-flow { display: grid; grid-template-columns: repeat(5,1fr); gap: 22px; margin-top: 32px; }
.icon-flow.four { grid-template-columns: repeat(4,1fr); }
.flow-item { position: relative; min-width: 0; text-align: center; }
.flow-item:not(:last-child)::after { content: ""; position: absolute; top: 27px; right: -18px; width: 28px; height: 1px; background: #8dc3ff; }
.flow-icon { width: 56px; height: 56px; margin: 0 auto 14px; display: grid; place-items: center; border-radius: 50%; background: #eef6ff; color: var(--blue); }
.flow-icon i { width: 26px; height: 26px; }
.flow-item h3 { margin: 0; font-size: 16px; }
.flow-item p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.feature-card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; box-shadow: var(--shadow); }
.feature-card img { width: 100%; height: 220px; object-fit: cover; }
.feature-card-body { padding: 28px; }
.feature-card h3 { margin: 0; font-size: 24px; }
.feature-card p { min-height: 58px; margin: 14px 0 0; color: var(--muted); line-height: 1.75; }
.icon-badge { width: 62px; height: 62px; margin: -58px 0 16px 20px; position: relative; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50%; background: #07509a; color: #fff; }
.icon-badge i { width: 30px; height: 30px; }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--blue); font-weight: 650; }
.link-arrow i { width: 17px; }
.process-strip { padding: 46px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-strip .icon-flow { grid-template-columns: repeat(6,1fr); }
.metric-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.metric { padding: 26px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.05); }
.metric strong { display: block; color: #fff; font-size: 36px; }
.metric span { color: #a7bdd9; font-size: 14px; }

/* Overview */
.overview-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 54px; align-items: center; }
.overview-grid.reverse { grid-template-columns: 1.2fr .8fr; }
.overview-media img { width: 100%; height: 420px; object-fit: cover; border-radius: 5px; box-shadow: var(--shadow); }
.overview-copy p { color: var(--muted); font-size: 16px; line-height: 1.9; }
.cap-list { display: grid; gap: 18px; margin-top: 28px; }
.cap-row { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: start; }
.cap-row .flow-icon { width: 46px; height: 46px; margin: 0; }
.cap-row h3 { margin: 1px 0 4px; font-size: 17px; }
.cap-row p { margin: 0; font-size: 14px; }
.object-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 18px; margin-top: 32px; }
.object-card { padding: 24px 12px; border-left: 1px solid var(--line); text-align: center; }
.object-card:first-child { border-left: 0; }
.object-card i { width: 30px; height: 30px; color: var(--blue); }
.object-card h3 { margin: 13px 0 6px; font-size: 16px; }
.object-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.dark-band { padding: 56px 0; color: #fff; background: linear-gradient(90deg,#06182f,#07315f); }
.dark-band h2 { margin: 0 0 28px; font-size: 30px; }
.dark-band .flow-item p { color: #aec2db; }
.dark-band .flow-item h3 { color: #fff; }

/* Solution / capabilities */
.solution-block { padding: 72px 0; border-bottom: 1px solid var(--line); }
.media-tiles { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.media-tile { position: relative; overflow: hidden; border-radius: 5px; }
.media-tile img { width: 100%; height: 190px; object-fit: cover; }
.media-tile span { position: absolute; inset: auto 0 0; padding: 12px; color: #fff; font-weight: 650; text-align: center; background: linear-gradient(transparent,rgba(2,17,34,.82)); }
.defect-list { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 18px; color: var(--muted); }
.defect-list span { display: inline-flex; gap: 7px; align-items: center; }
.defect-list i { width: 16px; color: var(--blue); }
.deliver-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 16px; }
.deliver-card { padding: 16px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.deliver-card img { width: 100%; height: 110px; object-fit: cover; border-radius: 3px; }
.deliver-card h3 { margin: 16px 0 7px; font-size: 15px; }
.deliver-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

/* AI */
.recognition-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.recognition-panel { padding: 20px; border: 1px solid var(--line); border-radius: 6px; background: #fff; box-shadow: 0 16px 42px rgba(19,52,93,.07); }
.recognition-heading { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:16px; }
.recognition-heading > div { display:flex; align-items:center; gap:11px; }
.recognition-heading span { color:var(--blue); font-size:13px; font-weight:750; }
.recognition-heading h3 { margin:0; font-size:22px; }
.recognition-heading p { margin:0; color:var(--muted); font-size:13px; }
.recognition-board { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:4px; }
.recognition-tags { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:14px; }
.recognition-tags span { padding:8px 4px; border:1px solid #e0eaf6; border-radius:3px; color:#526983; background:#f8fbff; font-size:12px; text-align:center; white-space:nowrap; }
.diagnosis { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.diagnosis .media-tile { border: 1px solid #9fc4f7; padding: 5px; }
.diagnosis .media-tile img { height: 220px; }
.review-workspace { padding: 76px 0; color: #fff; background: linear-gradient(135deg,#06172f,#092c57); }
.review-eyebrow { color:#62d8f6; }
.review-intro { color:#b7c9df; }
.review-console { overflow:hidden; border:1px solid rgba(122,183,255,.38); border-radius:6px; background:#061528; box-shadow:0 24px 70px rgba(0,0,0,.28); }
.review-console > img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.review-metrics { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(122,183,255,.24); }
.review-metrics span { padding:19px; border-right:1px solid rgba(122,183,255,.2); color:#9eb5d1; font-size:13px; text-align:center; }
.review-metrics span:last-child { border-right:0; }
.review-metrics strong { margin-right:8px; color:#fff; font-size:19px; }
.report-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 32px; align-items: center; }
.report-preview { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.paper { min-height: 250px; padding: 24px; border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); }
.paper-logo { width: 60px; margin-bottom: 30px; }
.paper h4 { margin: 0; font-size: 17px; }
.paper p { color: var(--muted); font-size: 12px; line-height: 1.6; }
.paper-cover { display:flex; flex-direction:column; justify-content:flex-end; color:#fff; background:linear-gradient(145deg,#08264a,#0b5798); }
.paper-cover span { margin-bottom:8px; color:#73d7f6; font-size:10px; font-weight:700; letter-spacing:.08em; }
.paper-cover .paper-logo { margin-bottom:auto; filter:brightness(0) invert(1); }
.paper-cover h4,.paper-cover p { color:#fff; }
.paper-visual { width:100%; height:118px; margin-top:18px; object-fit:cover; border-radius:3px; }
.intelligence-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; }
.intelligence-card { min-height: 170px; padding: 22px; border: 1px solid var(--line); background: #fff; }
.intelligence-card i { color: var(--blue); }
.intelligence-card h3 { margin: 18px 0 8px; }
.intelligence-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.closure-section { background:#fff; }
.closure-flow { display:grid; grid-template-columns:repeat(6,1fr); margin-bottom:26px; border:1px solid var(--line); background:#f8fbff; }
.closure-flow div { position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; padding:22px 10px; color:#46617e; }
.closure-flow div:not(:last-child)::after { content:""; position:absolute; top:32px; right:-8px; width:16px; height:16px; border-top:1px solid #91b9e9; border-right:1px solid #91b9e9; transform:rotate(45deg); }
.closure-flow i { width:24px; height:24px; color:var(--blue); }
.closure-flow strong { font-size:14px; }
.workorder-shell { overflow:hidden; border:1px solid var(--line); border-radius:5px; box-shadow:var(--shadow); }
.workorder-head { display:flex; justify-content:space-between; align-items:center; padding:18px 22px; color:#fff; background:#0b2d54; }
.workorder-head > div { display:flex; align-items:center; gap:10px; }
.workorder-head > span { color:#aec3db; font-size:13px; }
.status-dot { width:8px; height:8px; border-radius:50%; background:#1be3ae; box-shadow:0 0 0 4px rgba(27,227,174,.12); }
.workorder-row { display:grid; grid-template-columns:1.2fr 1fr 1.2fr .8fr 1fr .8fr; align-items:center; min-height:52px; padding:0 22px; border-top:1px solid #e6eef7; color:#50657e; font-size:13px; }
.workorder-row.header { min-height:44px; border-top:0; color:#778aa0; background:#f5f8fc; font-size:12px; font-weight:650; }
.risk,.state { justify-self:start; padding:5px 9px; border-radius:3px; }
.risk.high { color:#c23939; background:#fff0f0; }
.risk.medium { color:#a76800; background:#fff7e6; }
.state.processing { color:#0869f7; background:#eaf3ff; }
.state.pending { color:#6c7480; background:#f0f2f5; }
.state.done { color:#118466; background:#e9f8f3; }

/* DingTalk */
.trust-badge { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border:1px solid rgba(125,218,247,.72); border-radius:3px; color:#fff; background:rgba(5,35,67,.58); font-weight:650; }
.ui-shell { padding: 14px; border: 1px solid #c4d8f5; border-radius: 8px; background: #fff; box-shadow: 0 26px 70px rgba(39,91,160,.18); }
.dingtalk-grid > .ui-shell { min-height: 360px; padding: 0; background: #fff url("assets/generated/dingtalk-workbench.png") center / cover no-repeat; }
.dingtalk-grid > .ui-shell > * { display: none; }
.ui-top { height: 24px; border-bottom: 1px solid #e5edf7; }
.ui-body { display:grid; grid-template-columns:120px 1fr; min-height:320px; }
.ui-side { padding:18px 12px; color:#d7e6ff; background:#074b9e; }
.ui-side span { display:block; padding:9px 4px; font-size:12px; }
.ui-main { padding:20px; background:#f7faff; }
.ui-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.ui-stat { padding:16px; border:1px solid #e0eaf7; background:#fff; }
.ui-stat strong { display:block; margin-top:8px; font-size:24px; }
.ui-chart { height:150px; margin-top:16px; background:linear-gradient(180deg,rgba(14,104,247,.12),transparent), repeating-linear-gradient(0deg,#eaf1fa 0,#eaf1fa 1px,transparent 1px,transparent 30px); }
.core-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.core-card { overflow:hidden; padding:0 0 24px; border:1px solid var(--line); border-radius:5px; text-align:left; background:#fff; box-shadow:0 14px 36px rgba(19,52,93,.07); }
.core-visual { height:172px; overflow:hidden; background:#f3f7fd; }
.core-visual img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.core-card h3 { margin:20px 22px 8px; font-size:19px; }
.core-card p { margin:0 22px; color:var(--muted); font-size:14px; }
.product-band { padding:32px; border:1px solid var(--line); background:#fff; }
.product-band + .product-band { margin-top:20px; }
.product-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:38px; align-items:center; }
.product-screenshot { width:100%; height:300px; margin-top:24px; border:1px solid #dbe7f5; border-radius:5px; object-fit:cover; object-position:top center; box-shadow:0 14px 32px rgba(25,66,115,.09); }
.mini-apps { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.mini-app { padding:18px; border:1px solid var(--line); background:#f8fbff; }
.mini-app i { color:var(--blue); }
.mini-app strong { display:block; margin-top:10px; }
.platform-showcase { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:20px; }
.platform-showcase article { overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#fff; }
.platform-showcase article > img { width:100%; height:250px; object-fit:cover; object-position:top center; }
.platform-showcase article > div { padding:24px; }
.platform-showcase h3 { margin:0 0 10px; font-size:23px; }
.platform-showcase article > div > p:not(.eyebrow) { margin:0; color:var(--muted); font-size:14px; line-height:1.75; }
.platform-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.platform-tags span { padding:6px 9px; border:1px solid #d9e8fa; border-radius:3px; color:#42617f; background:#f6faff; font-size:12px; }
.employee-matrix { display:grid; grid-template-columns:1fr 160px 1fr 1fr; gap:16px; align-items:center; }
.employee-group { padding:24px; border:1px solid var(--line); background:#fff; }
.employee-group.admin { border-top:3px solid #1b78ff; }
.employee-group.business { border-top:3px solid #18b9a0; }
.employee-group.service { border-top:3px solid #7a66e8; }
.employee-group h3 { margin:0 0 16px; }
.employee-group span { display:inline-block; margin:5px 4px; padding:7px 9px; border-radius:3px; background:#f2f6fb; font-size:13px; }
.matrix-center { width:150px; height:150px; display:grid; place-items:center; justify-self:center; border-radius:50%; background:linear-gradient(145deg,#157cff,#0550c8); color:#fff; text-align:center; font-weight:700; box-shadow:0 14px 34px rgba(8,105,247,.24); }
.agent-flow { display:grid; grid-template-columns:1fr 60px 1fr 60px 1fr; align-items:center; gap:12px; }
.agent-node { padding:28px; border:1px solid var(--line); background:#fff; text-align:center; }
.agent-node i { width:36px; height:36px; color:var(--blue); }
.agent-arrow { color:#89b7f0; text-align:center; }
.path-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.path-step { padding:20px 14px; border:1px solid var(--line); background:#fff; text-align:center; }
.path-step strong { display:block; color:var(--blue); font-size:24px; }

/* Cases */
.filter-row { display:flex; gap:12px; margin-top:28px; }
.filter-button { padding:10px 22px; border:1px solid rgba(255,255,255,.34); border-radius:3px; color:#fff; background:rgba(3,21,42,.28); }
.filter-button.active { border-color:var(--blue); background:var(--blue); }
.case-stack { display:grid; gap:28px; margin-top:-34px; position:relative; z-index:4; }
.case-card { padding:26px; border:1px solid var(--line); border-radius:6px; background:#fff; box-shadow:var(--shadow); }
.case-lead { display:grid; grid-template-columns:1.1fr .9fr; gap:34px; align-items:center; }
.case-lead.reverse { grid-template-columns:.9fr 1.1fr; }
.case-lead img { width:100%; height:330px; object-fit:cover; border-radius:4px; }
.case-copy h2 { margin:0 0 10px; font-size:30px; }
.case-tag { display:inline-block; padding:5px 10px; border-radius:3px; color:var(--blue); background:#eaf3ff; font-size:13px; }
.case-copy p { color:var(--muted); line-height:1.8; }
.case-facts { display:grid; grid-template-columns:repeat(4,1fr); margin-top:28px; border-top:1px solid var(--line); }
.case-fact { padding:24px; border-right:1px solid var(--line); }
.case-fact:last-child { border-right:0; }
.case-fact i { color:var(--blue); }
.case-fact h3 { margin:12px 0 7px; font-size:16px; }
.case-fact p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; }
.case-evidence { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px; }
.evidence-card h3 { font-size:17px; }
.evidence-card img { width:100%; height:210px; object-fit:cover; border-radius:4px; }

/* Contact */
.contact-main { display:grid; grid-template-columns:.9fr 1.1fr; }
.contact-info { padding:64px max(44px,calc((100vw - var(--container))/2)) 64px max(24px,calc((100vw - var(--container))/2)); background:#fff; }
.contact-form-wrap { padding:64px max(24px,calc((100vw - var(--container))/2)) 64px 54px; border-left:1px solid var(--line); background:#fbfdff; }
.contact-list { display:grid; gap:24px; margin-top:36px; }
.contact-row { display:grid; grid-template-columns:48px 1fr; gap:16px; align-items:start; }
.contact-row .flow-icon { width:46px; height:46px; margin:0; }
.contact-row h3 { margin:0 0 5px; font-size:15px; }
.contact-row p { margin:0; color:#344b67; line-height:1.65; }
.company-map-card { height:300px; margin-top:34px; position:relative; overflow:hidden; border:1px solid #d5e2f2; border-radius:5px; background:#f8fbff; box-shadow:0 14px 34px rgba(31,78,132,.1); }
.company-map { position:absolute; inset:0; background:#eef2f5 url("assets/generated/contact-map-real-fallback.png") center/cover no-repeat; }
.company-map.is-fallback { cursor:pointer; }
.company-map-card::after { display:none; }
.map-load-status { position:absolute; z-index:3; top:14px; left:14px; margin:0; padding:8px 11px; border:1px solid #d7e4f4; border-radius:3px; color:#34516f; background:rgba(255,255,255,.94); font-size:12px; box-shadow:0 6px 18px rgba(31,78,132,.1); }
.map-load-status.is-error { color:#8c4b15; border-color:#f2d1b5; background:#fff8f1; }
.map-load-status[hidden] { display:none; }
.map-location { display:none; }
.map-location-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--blue); box-shadow:0 8px 20px rgba(8,105,247,.28); }
.map-location-icon i { width:22px; height:22px; }
.map-location strong,.map-location small { display:block; }
.map-location strong { font-size:16px; }
.map-location small { margin-top:3px; color:rgba(255,255,255,.78); font-size:12px; }
.map-action { position:absolute; z-index:3; right:14px; top:14px; display:flex; align-items:center; gap:7px; padding:9px 12px; border:1px solid #cfe0f5; border-radius:4px; color:#0869e8; background:rgba(255,255,255,.95); font-size:13px; font-weight:650; box-shadow:0 6px 18px rgba(31,78,132,.12); }
.map-action:hover { color:#fff; background:#0869e8; }
.map-action i { width:16px; height:16px; }
.amap-marker-label { padding:0; border:0; background:transparent; }
.amap-company-label { display:block; padding:3px 7px; border-radius:3px; color:#6d7d91; background:rgba(255,255,255,.9); font-size:13px; font-weight:650; white-space:nowrap; box-shadow:0 2px 8px rgba(31,78,132,.12); }
.map-zoom-controls { position:absolute; z-index:4; right:14px; bottom:72px; width:40px; overflow:hidden; border:1px solid #d4dce6; border-radius:5px; background:#fff; box-shadow:0 4px 14px rgba(31,55,82,.18); }
.map-zoom-controls button { width:40px; height:39px; display:grid; place-items:center; padding:0; border:0; border-radius:0; color:#17263a; background:#fff; font-size:27px; font-weight:400; line-height:1; cursor:pointer; }
.map-zoom-controls button + button { border-top:1px solid #e1e6ec; }
.map-zoom-controls button:hover { background:#f5f8fb; }
.form-tabs { display:grid; grid-template-columns:1fr 1fr; margin:20px 0 24px; }
.form-tab { padding:12px; border:1px solid var(--line); background:#fff; color:var(--ink); }
.form-tab.active { border-color:var(--blue); background:var(--blue); color:#fff; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-field.full { grid-column:1/-1; }
.form-field label { display:block; margin-bottom:8px; font-size:14px; font-weight:650; }
.form-field input,.form-field select,.form-field textarea { width:100%; border:1px solid #ccdaeb; border-radius:3px; padding:12px 14px; color:var(--ink); background:#fff; outline:none; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(8,105,247,.09); }
.form-field textarea { min-height:130px; resize:vertical; }
.form-submit { width:100%; margin-top:20px; }
.privacy-note { margin:12px 0 0; display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; line-height:1.5; }
.privacy-note > svg { width:18px; height:18px; flex:0 0 18px; }
.form-message { margin:12px 0 0; color:#05764d; font-size:14px; }

/* CTA and footer */
.cta-band { position:relative; overflow:hidden; padding:48px 0; color:#fff; background:#06264a; }
.cta-band::before { content:""; position:absolute; inset:0; opacity:.3; background:url("assets/bg-contact.jpg") center/cover; }
.cta-inner { position:relative; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.cta-inner h2 { margin:0 0 8px; font-size:30px; }
.cta-inner p { margin:0; color:#b9cce2; }
.site-footer { color:#c0cede; background:#071b36; }
.footer-grid { display:grid; grid-template-columns:1.25fr .8fr .8fr 1.25fr; gap:40px; padding:52px 0 34px; }
.footer-brand img { width:150px; }
.footer-brand h3 { margin:20px 0 8px; color:#fff; font-size:17px; }
.footer-brand p,.footer-col a,.footer-contact p { color:#9eb1c8; font-size:13px; line-height:1.8; }
.footer-col h3,.footer-contact h3 { margin:0 0 15px; color:#fff; font-size:14px; }
.footer-col a { display:block; margin:7px 0; }
.footer-contact p { display:flex; gap:10px; align-items:flex-start; margin:8px 0; }
.footer-contact i { width:16px; flex:0 0 auto; margin-top:4px; }
.copyright { padding:18px 0 24px; border-top:1px solid rgba(255,255,255,.1); color:#8398b1; font-size:13px; text-align:center; }
.copyright a:hover { color:#fff; }

.reveal { opacity:1; transform:none; animation:fade-up .65s ease both; }
.reveal.visible { opacity:1; transform:none; }
@keyframes fade-up { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { .reveal { animation:none; } }

@media (max-width: 1080px) {
  .nav-list { gap:20px; }
  .nav-link { font-size:14px; }
  .container { width:min(var(--container),calc(100% - 36px)); }
  .split-business { grid-template-columns:1fr; }
  .business-panel,.business-panel:first-child,.business-panel:last-child { padding:44px 32px; }
  .feature-grid,.core-grid { grid-template-columns:repeat(2,1fr); }
  .deliver-grid { grid-template-columns:repeat(3,1fr); }
  .object-grid { grid-template-columns:repeat(3,1fr); }
  .path-grid { grid-template-columns:repeat(3,1fr); }
  .employee-matrix { grid-template-columns:1fr 150px 1fr; }
  .employee-group.service { grid-column:1/-1; }
}

@media (max-width: 820px) {
  .site-header,.nav-wrap { height:68px; }
  .brand img { width:142px; }
  .menu-button { display:grid; place-items:center; }
  .nav-list { position:fixed; z-index:120; inset:68px 0 0; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:20px 24px; background:rgba(4,20,41,.98); transform:translateX(100%); transition:transform .25s ease; }
  .menu-open .nav-list { transform:none; }
  .nav-link { display:block; padding:18px 4px; border-bottom:1px solid rgba(255,255,255,.08); font-size:17px; }
  .nav-link::after { display:none; }
  .hero,.hero-home { min-height:610px; }
  .hero-content { padding-top:68px; }
  .hero-copy { padding-top:80px; }
  .hero h1 { font-size:45px; }
  .hero-actions { flex-wrap:wrap; }
  .overview-grid,.overview-grid.reverse,.dingtalk-grid,.product-grid,.case-lead,.case-lead.reverse,.contact-main,.report-layout { grid-template-columns:1fr; }
  .overview-media img { height:330px; }
  .icon-flow,.icon-flow.four,.process-strip .icon-flow { grid-template-columns:repeat(2,1fr); }
  .flow-item::after { display:none; }
  .feature-grid,.recognition-grid,.diagnosis,.case-evidence { grid-template-columns:1fr; }
  .review-metrics { grid-template-columns:repeat(2,1fr); }
  .review-metrics span:nth-child(2) { border-right:0; }
  .review-metrics span:nth-child(-n+2) { border-bottom:1px solid rgba(122,183,255,.2); }
  .closure-flow { grid-template-columns:repeat(3,1fr); }
  .closure-flow div::after { display:none; }
  .workorder-shell { overflow-x:auto; }
  .workorder-table { min-width:780px; }
  .metric-grid,.intelligence-grid { grid-template-columns:repeat(2,1fr); }
  .media-tiles { grid-template-columns:1fr; }
  .deliver-grid { grid-template-columns:repeat(2,1fr); }
  .employee-matrix { grid-template-columns:1fr; }
  .employee-group.service { grid-column:auto; }
  .matrix-center { width:170px; height:170px; margin:auto; }
  .platform-showcase { grid-template-columns:1fr; }
  .agent-flow { grid-template-columns:1fr; }
  .agent-arrow { transform:rotate(90deg); }
  .case-facts { grid-template-columns:repeat(2,1fr); }
  .case-fact:nth-child(2) { border-right:0; }
  .contact-info,.contact-form-wrap { padding:54px 24px; border-left:0; }
  .contact-form-wrap { border-top:1px solid var(--line); }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  .container { width:calc(100% - 28px); }
  .section { padding:56px 0; }
  .section-head { margin-bottom:30px; }
  .hero,.hero-home { min-height:560px; }
  .hero h1 { font-size:38px; }
  .hero p { font-size:17px; }
  .hero-actions .btn { width:100%; }
  .dingtalk-hero-meta { align-items:flex-start; flex-direction:column; gap:10px; }
  .hero-tabs,.filter-row { overflow-x:auto; padding-bottom:5px; }
  .hero-tab,.filter-button { white-space:nowrap; }
  .feature-grid,.metric-grid,.intelligence-grid,.core-grid,.object-grid,.deliver-grid,.path-grid,.report-preview { grid-template-columns:1fr; }
  .feature-card img { height:190px; }
  .icon-flow,.icon-flow.four,.process-strip .icon-flow { grid-template-columns:1fr 1fr; gap:26px 12px; }
  .flow-item h3 { font-size:15px; }
  .recognition-heading { align-items:flex-start; flex-direction:column; gap:6px; }
  .recognition-tags { grid-template-columns:repeat(2,1fr); }
  .review-workspace { padding:56px 0; }
  .review-metrics { grid-template-columns:1fr 1fr; }
  .review-metrics span { padding:14px 8px; }
  .review-metrics strong { display:block; margin:0 0 4px; }
  .closure-flow { grid-template-columns:repeat(2,1fr); }
  .case-card { padding:16px; }
  .case-lead img { height:230px; }
  .case-facts { grid-template-columns:1fr; }
  .case-fact { border-right:0; border-bottom:1px solid var(--line); }
  .company-map-card { height:260px; }
  .map-location { left:14px; bottom:14px; }
  .map-action { top:12px; right:12px; bottom:auto; }
  .form-grid { grid-template-columns:1fr; }
  .form-field.full { grid-column:auto; }
  .cta-inner { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:26px; }
}
