/* ==========================================================================
   InquiryPort — site.css
   零依赖：无框架、无 CDN、无外部字体、无图标库
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  --ink:      #0B1322;
  --ink-1:    #1B2739;
  --ink-2:    #4C5A70;
  --ink-3:    #7C8AA0;
  --ink-4:    #A8B3C4;

  --bg:       #FFFFFF;
  --bg-1:     #F7F9FC;
  --bg-2:     #EFF3F9;

  --line:     #E3E9F2;
  --line-2:   #EDF1F7;

  --brand:    #2F6BFF;
  --brand-1:  #1E4FD8;
  --brand-2:  #5B8CFF;
  --brand-3:  #7BA4FF;
  --brand-soft:#EEF3FF;

  --ok:       #12805C;
  --ok-soft:  #E9F7F1;
  --warn:     #B45309;
  --warn-soft:#FEF6E7;
  --danger:   #B42318;
  --danger-soft:#FDECEA;

  --dark:     #080D18;
  --dark-1:   #0D1526;
  --dark-2:   #111C30;

  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 18px;
  --r-xl: 26px;

  --sh-1: 0 1px 2px rgba(11,19,34,.045);
  --sh-2: 0 1px 2px rgba(11,19,34,.045), 0 10px 28px -22px rgba(11,19,34,.20);
  --sh-3: 0 24px 60px -32px rgba(11,19,34,.30);

  --wrap: 1200px;
  --hdr-h: 66px;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font);
  font-size:16px;
  line-height:1.7;
  color:var(--ink-1);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{ display:block; max-width:100%; }
h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
table{ border-collapse:collapse; width:100%; }
code,kbd{ font-family:var(--mono); font-size:.9em; }
:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; border-radius:4px; }
::selection{ background:rgba(47,107,255,.18); }

/* ---------- 3. Typography ---------- */
.h1{ font-size:clamp(30px,3.6vw,46px); line-height:1.15; letter-spacing:-.028em; font-weight:800; }
.h2{ font-size:clamp(24px,2.4vw,34px); line-height:1.24; letter-spacing:-.024em; font-weight:780; }
.h3{ font-size:clamp(18px,1.5vw,22px); line-height:1.36; letter-spacing:-.016em; font-weight:720; }
.h4{ font-size:16px; line-height:1.45; font-weight:700; letter-spacing:-.01em; }
.lead{ font-size:clamp(15px,1.3vw,18px); line-height:1.72; color:var(--ink-2); }
.muted{ color:var(--ink-3); }
.small{ font-size:13.5px; line-height:1.65; }
.tiny{ font-size:12px; line-height:1.55; }
.num{ font-variant-numeric:tabular-nums; letter-spacing:-.02em; }

.kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--brand-1);
}
.kicker::before{ content:''; width:16px; height:1.5px; background:currentColor; border-radius:2px; }
.on-dark .kicker{ color:var(--brand-3); }

/* ---------- 4. Layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }
.wrap-wide{ max-width:1360px; }
.section{ padding-block:clamp(56px,7vw,96px); }
.section-tight{ padding-block:clamp(40px,5vw,64px); }
.section-bg{ background:var(--bg-1); }
.section-line{ border-top:1px solid var(--line-2); }
.section-head{ max-width:760px; margin-bottom:clamp(28px,3.4vw,44px); }
.section-head .h2{ margin-top:14px; }
.section-head p{ margin-top:14px; color:var(--ink-2); }

.grid{ display:grid; gap:20px; }
.g-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.g-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.g-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.stack-8 > * + *{ margin-top:8px; }
.stack-12 > * + *{ margin-top:12px; }
.stack-20 > * + *{ margin-top:20px; }
.stack-32 > * + *{ margin-top:32px; }

.split{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(28px,4vw,64px); align-items:center; }

/* ---------- 5. Header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  height:var(--hdr-h);
  display:flex; align-items:center;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line-2);
  transition:background .28s ease,border-color .28s ease,box-shadow .28s ease;
  --hdr-ink:var(--ink);
  --hdr-sub:var(--ink-2);
  --hdr-line:var(--line);
  --hdr-hover:var(--bg-1);
}
.site-header.is-dark{
  background:#070B14;
  border-bottom-color:rgba(255,255,255,.06);
  --hdr-ink:#fff;
  --hdr-sub:rgba(255,255,255,.66);
  --hdr-line:rgba(255,255,255,.14);
  --hdr-hover:rgba(255,255,255,.08);
}
.site-header.is-solid{
  background:rgba(255,255,255,.94);
  border-bottom-color:var(--line-2);
  box-shadow:0 1px 0 rgba(11,19,34,.04);
  --hdr-ink:var(--ink);
  --hdr-sub:var(--ink-2);
  --hdr-line:var(--line);
  --hdr-hover:var(--bg-1);
}
.hdr-inner{ display:flex; align-items:center; gap:28px; width:100%; }

.brand{ display:flex; align-items:center; gap:10px; color:var(--hdr-ink); flex:none; }
.brand-mark{
  width:30px; height:30px; border-radius:9px; flex:none;
  display:grid; place-items:center;
  background:linear-gradient(150deg,var(--brand-2),var(--brand-1));
  box-shadow:0 4px 12px -4px rgba(47,107,255,.55);
}
.brand-mark svg{ width:16px; height:16px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{ font-size:15.5px; font-weight:760; letter-spacing:-.02em; }
.brand-sub{
  font-size:9.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--hdr-sub); padding-left:8px; border-left:1px solid var(--hdr-line);
  margin-top:3px;
}

.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav a{
  display:block; padding:8px 13px; border-radius:9px;
  font-size:14px; font-weight:560; color:var(--hdr-sub);
  transition:color .18s,background .18s;
}
.nav a:hover{ color:var(--hdr-ink); background:var(--hdr-hover); }
.nav a[aria-current="page"]{ color:var(--hdr-ink); font-weight:680; }
.nav a[aria-current="page"]::after{
  content:''; display:block; height:2px; border-radius:2px;
  background:var(--brand); margin:6px -4px -4px;
}

.hdr-actions{ display:flex; align-items:center; gap:10px; flex:none; }

/* 移动菜单 */
.mnav{ display:none; position:relative; }
.mnav > summary{
  list-style:none; width:38px; height:38px; border-radius:10px;
  display:grid; place-items:center; cursor:pointer;
  border:1px solid var(--hdr-line); color:var(--hdr-ink);
}
.mnav > summary::-webkit-details-marker{ display:none; }
.mnav-panel{
  position:absolute; right:0; top:calc(100% + 10px);
  width:min(78vw,280px);
  background:#fff; border:1px solid var(--line); border-radius:16px;
  box-shadow:var(--sh-3); padding:8px; z-index:70;
}
.mnav-panel a{
  display:block; padding:11px 14px; border-radius:10px;
  font-size:14.5px; font-weight:580; color:var(--ink-1);
}
.mnav-panel a:hover{ background:var(--bg-1); }
.mnav-panel .sep{ height:1px; background:var(--line-2); margin:8px 6px; }

/* ---------- 6. Hero (首页) ---------- */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(150% 74% at 50% -8%, rgba(48,100,228,.40) 0%, rgba(26,52,116,.15) 40%, transparent 70%),
    linear-gradient(180deg,#0A1020 0%,#080C16 56%,#05080F 100%);
  color:#fff;
  padding:clamp(64px,7vw,104px) 0 0;
}
.hero::before{
  content:''; position:absolute; top:-300px; left:50%;
  width:1700px; height:720px; transform:translateX(-52%);
  background:
    radial-gradient(46% 50% at 50% 50%, rgba(56,120,255,.30) 0%, transparent 72%),
    radial-gradient(34% 40% at 78% 30%, rgba(96,186,255,.12) 0%, transparent 72%);
  filter:blur(14px); pointer-events:none; z-index:0;
}
.hero::after{
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size:76px 76px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%, #000 20%, transparent 78%);
  mask-image:radial-gradient(120% 90% at 50% 0%, #000 20%, transparent 78%);
  pointer-events:none; z-index:0;
}
.hero > .wrap{ position:relative; z-index:2; }
.hero .h1{ color:#fff; max-width:16em; }
.hero .h1 .hl{
  display:block;
  background:linear-gradient(96deg,#8FB4FF 0%,#C9DCFF 100%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.hero .lead{ color:rgba(255,255,255,.74); max-width:34em; margin-top:20px; }
.hero-grid{
  display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(32px,4.5vw,72px); align-items:center;
  padding-bottom:clamp(44px,5vw,72px);
}
.hero-cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.hero-note{ display:flex; flex-wrap:wrap; gap:18px; margin-top:26px; color:rgba(255,255,255,.52); font-size:12.5px; }
.hero-note span{ display:inline-flex; align-items:center; gap:6px; }
.hero-note svg{ width:14px; height:14px; color:#4ED9AC; flex:none; }

/* 首页数据条 */
.metrics{
  position:relative; z-index:2;
  border-top:1px solid rgba(255,255,255,.10);
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
}
.metric{ padding:26px 28px 30px; border-left:1px solid rgba(255,255,255,.10); }
.metric:first-child{ border-left:0; padding-left:0; }
.metric-val{ font-size:clamp(26px,2.6vw,38px); font-weight:640; letter-spacing:-.032em; color:#fff; font-variant-numeric:tabular-nums; line-height:1.1; }
.metric-val small{ font-size:.5em; font-weight:600; color:rgba(255,255,255,.5); margin-left:3px; }
.metric-lab{ margin-top:7px; font-size:12.5px; color:rgba(255,255,255,.5); }

/* 玻璃卡片（hero 右侧） */
.feed-card{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-xl);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  backdrop-filter:blur(20px) saturate(140%);
  box-shadow:0 24px 60px -24px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.07);
  padding:20px;
}
.feed-head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.10); }
.feed-title{ font-size:12.5px; font-weight:700; letter-spacing:.06em; color:rgba(255,255,255,.72); text-transform:uppercase; }
.live{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; color:#4ED9AC; }
.live::before{ content:''; width:6px; height:6px; border-radius:50%; background:#4ED9AC; box-shadow:0 0 0 3px rgba(78,217,172,.18); animation:pulse 2.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:1 } 50%{ opacity:.35 } }
.feed-item{ padding:14px 0; border-bottom:1px solid rgba(255,255,255,.07); }
.feed-item:last-child{ border-bottom:0; padding-bottom:2px; }
.feed-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.feed-name{ font-size:14px; font-weight:600; color:#fff; line-height:1.45; flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.feed-meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:7px; font-size:11.5px; color:rgba(255,255,255,.46); }
.feed-price{ font-size:12.5px; font-weight:680; color:#A9C6FF; white-space:nowrap; flex:0 0 auto; }

/* ---------- 7. Page hero（内页） ---------- */
.page-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,#0A1020 0%,#080C16 100%);
  color:#fff;
  padding:clamp(40px,4.6vw,64px) 0 clamp(36px,4vw,52px);
}
.page-hero::before{
  content:''; position:absolute; top:-260px; left:50%;
  width:1400px; height:560px; transform:translateX(-50%);
  background:radial-gradient(48% 52% at 50% 50%, rgba(56,120,255,.26) 0%, transparent 72%);
  filter:blur(12px); pointer-events:none;
}
.page-hero::after{
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(110% 100% at 50% 0%, #000 10%, transparent 76%);
  mask-image:radial-gradient(110% 100% at 50% 0%, #000 10%, transparent 76%);
  pointer-events:none;
}
.page-hero > .wrap{ position:relative; z-index:2; }
.page-hero .h1{ color:#fff; margin-top:14px; max-width:20em; }
.page-hero .lead{ color:rgba(255,255,255,.7); max-width:44em; margin-top:16px; }
.page-hero .h1 .hl{
  display:block;
  background:linear-gradient(96deg,#8FB4FF 0%,#C9DCFF 100%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.page-stats{ display:flex; flex-wrap:wrap; gap:clamp(24px,3vw,56px); margin-top:32px; }
.page-stat-v{ font-size:clamp(20px,2vw,28px); font-weight:660; color:#fff; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.page-stat-l{ font-size:12px; color:rgba(255,255,255,.46); margin-top:4px; }

/* ---------- 8. Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:46px; padding:0 22px; border-radius:11px;
  font-size:14.5px; font-weight:640; letter-spacing:-.006em;
  border:1px solid transparent; white-space:nowrap;
  transition:transform .16s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease;
}
.btn:active{ transform:translateY(1px); }
.btn svg{ width:16px; height:16px; flex:none; }

.btn-primary{ background:var(--brand); color:#fff; box-shadow:0 10px 24px -14px rgba(47,107,255,.7); }
.btn-primary:hover{ background:var(--brand-1); box-shadow:0 14px 28px -14px rgba(47,107,255,.75); }

.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:#000; }

.btn-ghost{ background:transparent; border-color:var(--line); color:var(--ink-1); }
.btn-ghost:hover{ background:var(--bg-1); border-color:var(--ink-4); }

.btn-light{ background:#fff; color:var(--ink); }
.btn-light:hover{ background:#F1F5FC; }

.btn-outline-light{ background:transparent; border-color:rgba(255,255,255,.24); color:#fff; }
.btn-outline-light:hover{ background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.4); }

.btn-sm{ height:38px; padding:0 16px; font-size:13.5px; border-radius:9px; }
.btn-lg{ height:52px; padding:0 28px; font-size:15.5px; border-radius:12px; }
.btn-block{ width:100%; }

.link-arrow{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:640; color:var(--brand-1); }
.link-arrow svg{ width:15px; height:15px; transition:transform .18s ease; }
.link-arrow:hover svg{ transform:translateX(3px); }

/* ---------- 9. Cards ---------- */
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:24px; box-shadow:var(--sh-2);
}
.card-flat{ box-shadow:var(--sh-1); }
.card-hover{ transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.card-hover:hover{ border-color:#CBD6E6; box-shadow:var(--sh-3); transform:translateY(-2px); }
.card-ico{
  width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
  background:var(--brand-soft); color:var(--brand-1); margin-bottom:16px;
}
.card-ico svg{ width:19px; height:19px; }
.card h3{ margin-bottom:8px; }
.card p{ color:var(--ink-2); font-size:14px; line-height:1.68; }

/* 类目卡 */
.cat-card{
  display:flex; flex-direction:column; gap:12px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:22px; box-shadow:var(--sh-1);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.cat-card:hover{ border-color:#C3D2EC; box-shadow:var(--sh-3); transform:translateY(-2px); }
.cat-card-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cat-idx{ font-family:var(--mono); font-size:11.5px; font-weight:700; color:var(--brand); letter-spacing:.06em; }
.cat-card h3{ font-size:16.5px; font-weight:720; letter-spacing:-.016em; line-height:1.35; }
.cat-card p{ font-size:13px; color:var(--ink-3); line-height:1.6; }
.cat-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:4px; }

/* ---------- 10. 询盘卡 ---------- */
.inq-card{
  position:relative;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:20px 22px; box-shadow:var(--sh-2);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.inq-card:hover{ border-color:#C3D2EC; box-shadow:var(--sh-3); }
.inq-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.inq-title{ font-size:15.5px; font-weight:680; letter-spacing:-.012em; line-height:1.45; color:var(--ink); }
.inq-title a:hover{ color:var(--brand-1); }
.inq-id{ font-family:var(--mono); font-size:11px; color:var(--ink-4); margin-top:5px; letter-spacing:.02em; }
.inq-price{ text-align:right; flex:none; }
.inq-price b{ display:block; font-size:19px; font-weight:740; letter-spacing:-.028em; color:var(--ink); }
.inq-price span{ font-size:11px; color:var(--ink-4); }
.inq-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.inq-meta{
  display:flex; flex-wrap:wrap; gap:8px 20px;
  margin-top:14px; padding-top:14px; border-top:1px solid var(--line-2);
  font-size:12.5px; color:var(--ink-3);
}
.inq-meta b{ color:var(--ink-1); font-weight:640; }
.inq-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; }
.inq-slots{ font-size:12.5px; color:var(--ink-3); }
.inq-slots b{ color:var(--ok); }

/* 剩余席位点 */
.dots{ display:inline-flex; gap:3px; vertical-align:middle; margin-right:5px; }
.dots i{ width:6px; height:6px; border-radius:50%; background:var(--line); display:block; }
.dots i.on{ background:var(--brand); }

/* ---------- 11. Tags ---------- */
.tag{
  display:inline-flex; align-items:center; gap:5px;
  padding:3px 9px; border-radius:6px;
  font-size:11.5px; font-weight:600; line-height:1.5;
  background:var(--bg-2); color:var(--ink-2);
}
.tag-brand{ background:var(--brand-soft); color:var(--brand-1); }
.tag-ok{ background:var(--ok-soft); color:var(--ok); }
.tag-warn{ background:var(--warn-soft); color:var(--warn); }
.tag-danger{ background:var(--danger-soft); color:var(--danger); }
.tag-line{ background:transparent; border:1px solid var(--line); color:var(--ink-2); }

.dot-ok{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--ok); margin-right:5px; vertical-align:middle; }
.dot-warn{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--warn); margin-right:5px; vertical-align:middle; }

/* ---------- 12. Table ---------- */
.table-scroll{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; box-shadow:var(--sh-1); }
.table{ min-width:640px; font-size:13.5px; }
.table th,.table td{ padding:14px 18px; text-align:left; vertical-align:top; }
.table thead th{
  font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); background:var(--bg-1);
  border-bottom:1px solid var(--line);
}
.table tbody th{ font-weight:620; color:var(--ink); }
.table tbody tr + tr th,.table tbody tr + tr td{ border-top:1px solid var(--line-2); }
.table td{ color:var(--ink-2); }
.table th:first-child,.table td:first-child{ white-space:nowrap; }
.table .t-us{ background:rgba(47,107,255,.045); }
.table thead th.t-us{ background:rgba(47,107,255,.10); color:var(--brand-1); }
.t-ok{ color:var(--ok); font-weight:640; }
.t-no{ color:var(--ink-4); }

/* ---------- 13. 定价 ---------- */
.plan{
  display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:26px 24px; box-shadow:var(--sh-2);
}
.plan-featured{
  border-color:transparent;
  background:linear-gradient(180deg,#FBFDFF 0%,#F2F7FF 100%);
  box-shadow:0 0 0 1px var(--brand), 0 20px 44px -26px rgba(47,107,255,.42);
}
.plan-name{ font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--brand-1); }
.plan-price{ display:flex; align-items:baseline; gap:5px; margin-top:14px; }
.plan-price b{ font-size:36px; font-weight:760; letter-spacing:-.035em; line-height:1; }
.plan-price span{ font-size:13px; color:var(--ink-3); }
.plan-desc{ margin-top:10px; font-size:13px; color:var(--ink-2); line-height:1.6; min-height:3.2em; }
.plan-list{ margin-top:18px; padding-top:18px; border-top:1px solid var(--line-2); display:grid; gap:9px; }
.plan-list li{ display:flex; gap:8px; font-size:13px; color:var(--ink-2); line-height:1.55; }
.plan-list svg{ width:14px; height:14px; color:var(--ok); flex:none; margin-top:3px; }
.plan .btn{ margin-top:auto; }

/* ---------- 14. 表单 ---------- */
.field{ display:block; }
.field + .field{ margin-top:16px; }
.field label{ display:block; font-size:13px; font-weight:640; color:var(--ink-1); margin-bottom:7px; }
.field .hint{ font-size:12px; color:var(--ink-3); margin-top:6px; }
.input,.select,.textarea{
  width:100%; padding:11px 14px; border-radius:10px;
  border:1px solid var(--line); background:#fff; color:var(--ink-1);
  font-size:14px; line-height:1.5;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.input:focus,.select:focus,.textarea:focus{
  outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(47,107,255,.14);
}
.input::placeholder,.textarea::placeholder{ color:var(--ink-4); }
.textarea{ min-height:110px; resize:vertical; }
.select{ appearance:none; background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%237C8AA0' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
.form-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.check{ display:flex; gap:9px; align-items:flex-start; font-size:13.5px; color:var(--ink-2); }
.check input{ margin-top:4px; width:15px; height:15px; accent-color:var(--brand); flex:none; }

/* ---------- 15. 面包屑 ---------- */
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:12.5px; color:rgba(255,255,255,.5); }
.crumbs a:hover{ color:#fff; }
.crumbs .sep{ opacity:.4; }
.crumbs-light{ color:var(--ink-3); }
.crumbs-light a:hover{ color:var(--brand-1); }

/* ---------- 16. FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 0; cursor:pointer; list-style:none;
  font-size:15.5px; font-weight:640; color:var(--ink); letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:''; flex:none; width:9px; height:9px;
  border-right:1.8px solid var(--ink-3); border-bottom:1.8px solid var(--ink-3);
  transform:rotate(45deg) translateY(-2px); transition:transform .2s ease;
}
.faq details[open] summary::after{ transform:rotate(-135deg) translateY(-2px); }
.faq .a{ padding:0 0 22px; font-size:14px; color:var(--ink-2); line-height:1.75; max-width:62em; }
.faq .a p + p{ margin-top:10px; }

/* ---------- 17. 提示条 ---------- */
.alert{
  border:1px solid var(--line); border-left:4px solid var(--brand);
  background:var(--bg-1); border-radius:var(--r-md);
  padding:18px 20px; font-size:13.5px; color:var(--ink-2); line-height:1.68;
}
.alert b{ color:var(--ink); }
.alert-warn{ border-left-color:var(--warn); background:var(--warn-soft); }
.alert-danger{ border-left-color:var(--danger); background:var(--danger-soft); }
.alert-ok{ border-left-color:var(--ok); background:var(--ok-soft); }

/* ---------- 18. 步骤 ---------- */
.steps{ display:grid; gap:0; }
.step{ display:grid; grid-template-columns:44px minmax(0,1fr); gap:18px; padding:22px 0; border-top:1px solid var(--line-2); }
.step:first-child{ border-top:0; padding-top:0; }
.step-n{
  width:34px; height:34px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--brand-soft); color:var(--brand-1);
  font-size:13px; font-weight:740; font-variant-numeric:tabular-nums;
}
.step h3{ font-size:15.5px; font-weight:680; margin-bottom:6px; }
.step p{ font-size:13.5px; color:var(--ink-2); line-height:1.68; }

/* ---------- 19. Footer ---------- */
.site-footer{ background:var(--bg-1); border-top:1px solid var(--line); padding:clamp(44px,5vw,68px) 0 32px; }
.foot-grid{ display:grid; grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); gap:clamp(24px,4vw,56px); }
.foot-brand p{ margin-top:14px; font-size:13px; color:var(--ink-3); line-height:1.7; max-width:30em; }
.foot-col h4{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-bottom:14px; }
.foot-col li + li{ margin-top:9px; }
.foot-col a{ font-size:13.5px; color:var(--ink-2); }
.foot-col a:hover{ color:var(--brand-1); }
.foot-bottom{
  margin-top:clamp(32px,4vw,52px); padding-top:22px;
  border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:14px 24px; justify-content:space-between;
  font-size:12px; color:var(--ink-4);
}
.foot-bottom .links{ display:flex; flex-wrap:wrap; gap:18px; }

/* ---------- 20. 其他 ---------- */
.pill-row{ display:flex; flex-wrap:wrap; gap:8px; }
.pill{
  display:inline-flex; align-items:center; height:34px; padding:0 15px;
  border-radius:999px; border:1px solid var(--line); background:#fff;
  font-size:13px; font-weight:580; color:var(--ink-2);
  transition:all .18s ease;
}
.pill:hover{ border-color:var(--ink-4); color:var(--ink); }
.pill.is-on{ background:var(--ink); border-color:var(--ink); color:#fff; }

.divider{ height:1px; background:var(--line); margin-block:clamp(32px,4vw,56px); }

.prose{ max-width:72ch; }
.prose h2{ margin-top:44px; margin-bottom:14px; }
.prose h3{ margin-top:30px; margin-bottom:10px; }
.prose p{ margin-top:14px; color:var(--ink-2); line-height:1.8; }
.prose ul{ margin-top:14px; display:grid; gap:9px; }
.prose ul li{ position:relative; padding-left:18px; color:var(--ink-2); line-height:1.75; }
.prose ul li::before{ content:''; position:absolute; left:2px; top:11px; width:5px; height:5px; border-radius:50%; background:var(--brand-2); }
.prose ol{ margin-top:14px; counter-reset:n; display:grid; gap:10px; }
.prose ol li{ counter-increment:n; position:relative; padding-left:28px; color:var(--ink-2); line-height:1.75; }
.prose ol li::before{
  content:counter(n); position:absolute; left:0; top:3px;
  width:19px; height:19px; border-radius:50%;
  background:var(--brand-soft); color:var(--brand-1);
  font-size:11px; font-weight:700; display:grid; place-items:center;
}
.prose a{ color:var(--brand-1); text-decoration:underline; text-underline-offset:3px; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:#fff; color:var(--ink); padding:10px 16px; border-radius:0 0 10px 0;
}
.skip-link:focus{ left:0; }

/* ---------- 21. Responsive ---------- */
@media (max-width:1080px){
  .nav{ display:none; }
  .mnav{ display:block; }
  .hdr-inner{ gap:16px; }
  .hero-grid{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .metrics{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric:nth-child(3){ border-left:0; padding-left:0; }
  .metric:nth-child(3),.metric:nth-child(4){ border-top:1px solid rgba(255,255,255,.10); }
  .foot-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .g-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .split{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:820px){
  .g-3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hdr-actions .btn-ghost{ display:none; }
  .hdr-actions{ margin-left:auto; }
}
@media (max-width:640px){
  :root{ --hdr-h:60px; }
  .wrap{ padding-inline:18px; }
  .g-2,.g-3,.g-4{ grid-template-columns:minmax(0,1fr); }
  .hero{ padding-top:48px; }
  .hero .lead{ margin-top:16px; }
  .hero-cta{ margin-top:26px; }
  .hero-cta .btn{ flex:1 1 100%; }
  .hero-grid{ padding-bottom:36px; }
  .metrics{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric{ padding:20px 16px 22px; }
  .metric-val{ font-size:24px; }
  .foot-grid{ grid-template-columns:minmax(0,1fr); }
  .form-row{ grid-template-columns:minmax(0,1fr); }
  .page-stats{ gap:22px; }
  .brand-sub{ display:none; }
  .inq-head{ flex-direction:column; gap:10px; }
  .inq-price{ text-align:left; }
  .inq-price b{ display:inline; font-size:17px; }
  .plan-price b{ font-size:32px; }
  .table th,.table td{ padding:12px 14px; }
  .foot-bottom{ flex-direction:column; }
}

/* ---------- 21.5 询盘大厅与详情 ---------- */
.filter-bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:14px 0 18px;border-bottom:1px solid var(--line-2);margin-bottom:24px;
  position:sticky;top:var(--hdr-h);z-index:40;
  background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(12px);
}
.filter-count{font-size:13px;color:var(--ink-3);white-space:nowrap}
.filter-count b{color:var(--ink);font-weight:600}

.empty{
  padding:64px 24px;text-align:center;border:1px dashed var(--line);
  border-radius:var(--r-lg);background:var(--bg-1);
}
.empty p{font-size:15px;color:var(--ink-2);margin:0}
.empty p+p{margin-top:8px}

.detail-grid{
  display:grid;grid-template-columns:minmax(0,1fr) 320px;
  gap:clamp(32px,4vw,56px);align-items:start;
}
.detail-side{position:relative}
.card-sticky{position:sticky;top:calc(var(--hdr-h) + 24px)}

.locked{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-size:13px}
.locked svg{width:14px;height:14px;flex:none}

.seat-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2);
  font-size:13px;color:var(--ink-3);
}
.seat-bar .inq-slots b{font-size:13px;color:var(--ink)}

@media (max-width:1080px){
  .detail-grid{grid-template-columns:minmax(0,1fr)}
  .card-sticky{position:static}
}
@media (max-width:640px){
  .filter-bar{position:static;padding-top:0}
}

/* ---------- 22. Print ---------- */
@media print{
  .site-header,.site-footer,.hero::after,.page-hero::after,.btn,.mnav{ display:none !important; }
  body{ font-size:11pt; color:#000; background:#fff; }
  .hero,.page-hero{ background:#fff !important; color:#000 !important; padding:0 0 12pt; }
  .hero .h1,.page-hero .h1,.hero .lead,.page-hero .lead{ color:#000 !important; }
  .hero .h1 .hl,.page-hero .h1 .hl{ background:none !important; color:#000 !important; -webkit-text-fill-color:#000 !important; }
  .card,.inq-card,.plan,.table-scroll{ box-shadow:none !important; border-color:#ccc !important; break-inside:avoid; }
  .section{ padding-block:14pt; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555; }
}

/* ---------- 23. 减少动效 ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
