/* ============================================================
   庐山包车网 · 设计语言：山志等高线制图冷感
   参照物：国家地理等高线地形图 / 野外测量记录册
   冷灰底、深岩字、等高线绿/褐做极克制记号，直角框、等宽数字、单线分隔。
   ============================================================ */

:root {
  --ice: #eef1f1;          /* 冰灰底 */
  --surface: #e3e8e8;      /* 次级面 */
  --ink: #1e2429;          /* 深岩 */
  --ink-soft: #4d5a62;     /* 次级文字 */
  --muted: #7a8a91;        /* 说明灰 */
  --rule: #c5cdd1;         /* 细线 */
  --rule-dark: #9ba6ab;
  --contour-green: #3a5a40;
  --contour-brown: #8c6a4a;
  --mark: #b03a2e;         /* 信号红（仅用于高程点） */
  --serif: "Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --sans: "PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  --mono: "SF Mono","Roboto Mono","Consolas","Menlo",monospace;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background: var(--ice);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.7;
  font-size: 15px;
}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }

/* 等高线底纹（极淡） */
body::before {
  content:"";
  position:fixed; inset:0;
  background:
    repeating-radial-gradient(circle at 20% 30%, rgba(58,90,64,.04) 0 1px, transparent 1.5px 18px),
    repeating-radial-gradient(circle at 80% 70%, rgba(140,106,74,.03) 0 1px, transparent 1.5px 22px);
  pointer-events:none; z-index:-1;
}

.wrap { max-width:1140px; margin:0 auto; padding:0 24px; }

/* 页眉：测量记录册式 */
.site-header {
  background: var(--surface);
  border-bottom: 1.5px solid var(--rule-dark);
}
.header-inner {
  max-width:1140px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.brand {
  font-family: var(--serif);
  font-size: 24px; font-weight:900; letter-spacing:.02em;
}
.brand small {
  display:block; font-family: var(--mono); font-size:11px; font-weight:400;
  letter-spacing:.14em; color: var(--muted); margin-top:3px;
}
.nav {
  display:flex; flex-wrap:wrap; gap:0;
  font-size:13.5px; letter-spacing:.06em;
  border: 1px solid var(--rule-dark);
}
.nav a {
  padding:7px 14px; border-right:1px solid var(--rule); color: var(--ink);
}
.nav a:last-child { border-right:0; }
.nav a[aria-current], .nav a:hover { background: var(--ink); color: var(--ice); }
.header-phone {
  font-family: var(--mono); font-size:16px; font-weight:700;
  border: 1px solid var(--contour-green); color: var(--contour-green);
  padding:4px 12px; letter-spacing:.04em;
}

/* Hero：冷感大图 */
.hero {
  position:relative; background: var(--ink);
  color: var(--ice);
  border-bottom: 1px solid var(--rule-dark);
}
.hero-inner {
  max-width:1140px; margin:0 auto; padding:40px 24px 44px;
  display:grid; grid-template-columns: 1.1fr .9fr; gap:30px; align-items:center;
}
.hero-text { position:relative; z-index:1; }
.hero-kicker {
  font-family: var(--mono); font-size:12px; letter-spacing:.34em;
  color: var(--muted); border-bottom: 1px solid var(--ink-soft);
  padding-bottom:8px; margin-bottom:14px;
}
.hero h1 {
  font-family: var(--serif);
  font-size: clamp(40px, 5.6vw, 68px);
  font-weight:900; line-height:1.05; letter-spacing:.02em;
}
.hero-sub { margin-top:8px; font-family: var(--serif); font-size:18px; color:#a3afb5; letter-spacing:.08em; }
.hero-para { margin-top:16px; color:#b5c0c6; font-size:14.5px; max-width:50ch; }
.hero-img { border: 1px solid var(--rule-dark); padding:10px; background: var(--surface); }
.hero-img img { width:100%; height:auto; }

/* 分节标题 */
.section-block { padding: 44px 0; border-bottom: 1px solid var(--rule); }
.section-block.alt { background: rgba(195,205,209,.18); }
.sec-head { margin-bottom:8px; }
.sec-no {
  font-family: var(--mono); font-size:12.5px; font-weight:700;
  color: var(--contour-green); letter-spacing:.26em;
}
.sec-title {
  font-family: var(--serif);
  font-size: clamp(24px, 3.2vw, 32px);
  font-weight:900; margin-top:4px; letter-spacing:.02em;
}
.sec-title::after {
  content:""; display:block; width:44px; height:2px;
  background: var(--contour-brown); margin-top:10px;
}
.sec-note { color: var(--muted); font-size:13.5px; margin-top:10px; max-width:72ch; }

/* 等高线数据表（车型） */
.data-table {
  margin-top:20px; border-collapse:collapse; width:100%; font-size:13.5px;
  border: 1px solid var(--rule-dark); background: var(--ice);
}
.data-table th {
  text-align:left; background: var(--ink); color: var(--ice);
  padding:9px 14px; font-weight:600; letter-spacing:.1em; font-size:12.5px;
}
.data-table td {
  padding:14px; border-top:1px solid var(--rule); vertical-align:top;
}
.data-table tr:nth-child(odd) td { background: rgba(227,232,232,.6); }
.fleet-no { font-family: var(--mono); font-weight:700; color: var(--mark); white-space:nowrap; }
.fleet-name { font-family: var(--serif); font-weight:900; font-size:17px; }
.fleet-fit { color: var(--ink-soft); font-size:13px; margin-top:2px; }
.fleet-use { color: var(--muted); font-size:13px; }
.fleet-tag {
  display:inline-block; font-size:11.5px;
  border:1px solid var(--contour-green); color: var(--contour-green);
  padding:1px 8px; margin:2px 4px 2px 0; letter-spacing:.08em;
}
.see-link { font-weight:700; font-size:13px; white-space:nowrap; }
.see-link::after { content:"→"; margin-left:6px; }
a.see-link:hover { border-bottom:1px solid currentColor; }

/* 线路：高程点编号 */
.run-list { margin-top:20px; }
.run-item {
  display:grid; grid-template-columns: 80px 220px 1fr 120px;
  gap:16px; padding:20px 6px; border-bottom:1px dashed var(--rule-dark); align-items:start;
}
.run-item:last-child { border-bottom:1px solid var(--rule-dark); }
.run-no {
  font-family: var(--mono); font-size:26px; font-weight:700;
  color: var(--contour-green); text-align:center; line-height:1;
  border:1.5px solid var(--contour-green); padding:8px 0; letter-spacing:.04em;
}
.run-img img { width:220px; height:150px; object-fit:cover; border:1px solid var(--rule); }
.run-title { font-family: var(--serif); font-weight:900; font-size:19px; line-height:1.4; }
.run-route { margin-top:6px; color: var(--ink-soft); font-size:13.5px; }
.run-route b { font-weight:600; }
.run-meta { font-size:12.5px; color: var(--muted); margin-top:8px; line-height:1.9; }
.run-meta b { color: var(--ink); }
.run-go { margin-top:10px; font-size:13px; font-weight:700; }
.run-go a { border-bottom:1px solid var(--rule); padding-bottom:1px; }
.run-go a:hover { border-bottom-color: var(--contour-green); color: var(--contour-green); }
@media (max-width:860px) { .run-item { grid-template-columns:1fr; gap:10px; } .run-img img { width:100%; height:auto; max-height:220px; } }

/* 司机 */
.roster-grid { margin-top:22px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.roster-card {
  border:1px solid var(--rule-dark); background: var(--surface); padding:14px 14px 18px;
}
.roster-card img { width:100%; height:240px; object-fit:cover; border:1px solid var(--rule); }
.roster-name { margin-top:12px; display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid var(--rule); padding-bottom:6px; }
.roster-name h4 { font-family: var(--serif); font-size:19px; font-weight:900; }
.roster-name span { font-family: var(--mono); font-size:11px; color: var(--contour-green); letter-spacing:.14em; }
.roster-role { font-size:12.5px; color: var(--ink-soft); margin-top:8px; letter-spacing:.04em; }
.roster-note { font-size:13px; color:#3e4a50; margin-top:6px; line-height:1.8; }
.roster-tel { margin-top:10px; display:inline-block; font-family: var(--mono); font-weight:700; font-size:16px; color: var(--mark); border:1px solid var(--mark); padding:2px 12px; letter-spacing:.04em; }
@media (max-width:860px) { .roster-grid { grid-template-columns:1fr; } }

/* 通用 prose */
.prose { max-width:80ch; }
.prose h3 { font-family: var(--serif); font-size:19px; font-weight:900; margin:26px 0 8px; display:flex; align-items:baseline; gap:10px; }
.prose h3 .h-no { font-family: var(--mono); color: var(--contour-green); font-size:13px; letter-spacing:.2em; font-weight:700; }
.prose p { color:#3e4a50; font-size:14.5px; margin-bottom:10px; }
.prose ul { margin:6px 0 12px 2px; list-style:none; }
.prose ul li { padding-left:22px; position:relative; font-size:14px; color:#3e4a50; margin-bottom:6px; }
.prose ul li::before { content:"+"; position:absolute; left:0; top:0; color: var(--contour-green); font-size:14px; }
.prose .warn { border:1px solid var(--rule-dark); background: rgba(195,205,209,.25); padding:12px 16px; font-size:13.5px; margin:16px 0; }
.prose table { border-collapse:collapse; width:100%; margin:12px 0 18px; font-size:13.5px; }
.prose th { background: var(--ink); color: var(--ice); text-align:left; padding:7px 12px; letter-spacing:.1em; font-weight:600; }
.prose td { border:1px solid var(--rule); padding:7px 12px; vertical-align:top; background: var(--ice); }

/* 联系方式 */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:10px; }
@media (max-width:860px) { .contact-grid { grid-template-columns:1fr; } }
.kv-table { border-top:1px solid var(--rule-dark); }
.kv-row { display:grid; grid-template-columns:120px 1fr; border-bottom:1px dashed var(--rule); padding:9px 2px; font-size:14px; }
.kv-row .k { color: var(--muted); letter-spacing:.1em; font-size:12.5px; padding-top:2px; }
.kv-row .v a { color: var(--mark); font-weight:700; }

/* CTA */
.stub-cta { background: var(--ink); color: var(--ice); border-top:4px solid var(--contour-green); border-bottom:4px solid var(--contour-green); }
.stub-inner { max-width:1140px; margin:0 auto; padding:28px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.stub-title { font-family: var(--serif); font-size:22px; font-weight:900; letter-spacing:.04em; }
.stub-sub { font-size:12.5px; color:#9aa5ab; margin-top:4px; letter-spacing:.06em; }
.stub-tel { font-family: var(--mono); font-size:22px; font-weight:700; border:1px solid var(--contour-green); color: var(--contour-green); padding:8px 20px; letter-spacing:.06em; }

/* footer */
.site-footer { background: #151b1e; color:#9eabb1; font-size:13px; }
.footer-top { border-top:1px dashed rgba(100,120,130,.4); margin:0 24px; }
.footer-inner { max-width:1140px; margin:0 auto; padding:26px 24px 34px; }
.footer-inner p { max-width:92ch; line-height:1.8; }
.footer-inner a { color:#7a9a8a; border-bottom:1px solid transparent; }
.footer-inner a:hover { border-bottom-color:#7a9a8a; }
.footer-inner .f-brand { font-family: var(--serif); font-size:16px; font-weight:700; color:#dde4e8; letter-spacing:.1em; margin-bottom:8px; }

/* 404 */
.err-wrap { max-width:700px; margin:70px auto; text-align:left; padding:0 24px; }
.err-code { font-family: var(--serif); font-size:90px; font-weight:900; color: var(--mark); line-height:1; }
.err-sub { font-family: var(--serif); font-size:22px; margin-top:8px; }
.err-back { margin-top:22px; display:inline-block; border:1px solid var(--ink); padding:8px 22px; font-weight:700; }
.err-back:hover { background: var(--ink); color: var(--ice); }

/* 表单 */
.form-paper { max-width:780px; border:1px solid var(--rule-dark); background: var(--surface); padding:24px 26px 26px; margin-top:22px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; }
@media (max-width:720px) { .form-grid { grid-template-columns:1fr; } }
.form-field { margin-bottom:6px; }
.form-field label { display:block; font-size:12px; letter-spacing:.18em; color: var(--ink-soft); margin-bottom:4px; font-weight:600; }
.form-field input, .form-field select, .form-field textarea {
  width:100%; border:1px solid var(--rule-dark); background: var(--ice);
  padding:9px 12px; font-family: var(--sans); font-size:14px; color: var(--ink); border-radius:0; -webkit-appearance:none; appearance:none;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline:2px solid var(--contour-green); outline-offset:0; border-color: var(--contour-green); }
.form-field.full { grid-column:1 / -1; }
.btn-seal { margin-top:16px; font-family: var(--serif); font-size:16px; font-weight:700; letter-spacing:.3em; background: var(--contour-green); color: #f4f7f7; border:0; padding:11px 34px; cursor:pointer; border-radius:0; }
.btn-seal:hover { background: #2a4532; }
.form-foot { font-size:12px; color: var(--muted); margin-top:12px; }
.form-foot a { color: var(--mark); font-weight:700; }

/* 锚点与车辆布局 */
section[id] { scroll-margin-top:90px; }
.anchor-blk { border-bottom:1px dashed var(--rule); padding:26px 0; }
.anchor-blk:last-of-type { border-bottom:0; }
.anchor-blk .ab-head { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.anchor-blk h3 { font-family: var(--serif); font-size:22px; font-weight:900; }
.anchor-blk .ab-no { font-family: var(--mono); color: var(--contour-green); font-size:13px; letter-spacing:.2em; }
.anchor-blk .ab-img { width:100%; height:240px; object-fit:cover; border:1px solid var(--rule); margin:14px 0; }
.veh-grid { display:grid; grid-template-columns:240px 1fr; gap:18px; margin-top:12px; }
@media (max-width:720px) { .veh-grid { grid-template-columns:1fr; } }
.veh-grid img { width:100%; height:180px; object-fit:cover; border:1px solid var(--rule); }
