/* ============================================================
   西安全日制择校参考 · 淡绿色系配色 · 响应式统一版（阶段二改造）
   ------------------------------------------------------------
   设计令牌（Design Tokens）：颜色 / 间距 / 圆角全部走 CSS 变量
   字号体系：以 16px 为 1rem 基准，全部用 rem，标题用 clamp 流体缩放
   统一断点（响应式三档）：
     桌面 ≥1025px
     平板 768–1024px  -> @media (max-width:1024px)
     手机  <768px     -> @media (max-width:767px)
   根字号：≥1200px=16px / 768–1199px=15px / <768px=14px
   所有页面共用本文件 = 全局 CSS 变量 + 响应式规则一致，无局部冲突
   边框 1px / 分割线 / box-shadow / 圆角 保留 px（按规范允许）
   ============================================================ */

:root {
  /* 主色系 Primary（淡绿系） */
  --c-primary: #2e9e74;       /* 品牌主色 清新绿 */
  --c-primary-d: #1f7d59;     /* 主色按下/深一档 */
  --c-primary-700: #14532d;   /* 标题深绿 */
  /* 辅色系 Secondary */
  --c-link: #000000;          /* 链接 纯黑 */
  /* 强调色 Accent (CTA) */
  --c-accent: #FF7A00;        /* 报名/试听/转化按钮 暖橙 */
  --c-accent-d: #D96500;
  /* 中性色 Neutral（文字统一纯黑，与绿色搭配） */
  --c-ink: #000000;           /* 标题 纯黑 */
  --c-slate: #000000;         /* 正文 纯黑 */
  --c-muted: #000000;         /* 次级文字 纯黑 */
  --c-line: #e3ece7;          /* 边框/分割线 */
  --c-surface: #f3f8f5;       /* 页面底色 淡绿白 */
  --c-bg: #ffffff;            /* 容器/卡片底 */
  /* 标签 */
  --c-tag-bg: #e7f5ec;        /* 主色-50 浅绿 */
  --c-tag-ink: #000000;       /* 标签文字 纯黑 */
  /* 功能色 */
  --c-success: #52C41A;
  --c-warning: #FAAD14;
  --c-danger: #F5222D;
  --c-info: #1f9d6b;
  /* 间距 & 圆角（圆角保留 rem 不影响缩放，边框 1px 保留） */
  --radius-card: 0.75rem;
  --radius-btn: 0.5rem;
  --shadow-card: 0 2px 8px rgba(15, 60, 40, 0.08);
  --shadow-hover: 0 4px 16px rgba(15, 60, 40, 0.12);
  /* 统一外层容器最大宽度（首页与所有子页面一致，规范值 1200px） */
  --container-max: 1560px;    /* 1200px × 1.3：整页放大 30% */
  /* 导航高度（保留 px 不换，属 1px 级布局尺寸，规范允许） */
  --nav-h: 64px;
}

/* ---------- 全局 reset + 盒模型 + 防横向溢出 ---------- */
* { box-sizing: border-box; }
html {
  font-size: 20.8px;          /* 16px × 1.3：整页放大 30%。恒定不随视口缩小，
                                 避免放大页面时断点反向把字缩更小、造成"缩放被重置"的错觉 */
  overflow-x: clip;           /* 兜底禁止横向滚动条，且不破坏 sticky */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  font-size: 1rem;            /* 16px，随根字号缩放，移动端最小 14px */
  line-height: 1.7;
  color: var(--c-slate);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;         /* 杜绝横向滚动条（规范：body 加 overflow-x:hidden） */
}

/* ---------- 媒体自适应：图片/视频/画布/iframe 永不撑破容器 ---------- */
img, svg, video, canvas, iframe { max-width: 100%; height: auto; display: block; }

a { color: #000000; text-decoration: none; }
a:hover { color: #000000; text-decoration: underline; }

h1, h2, h3, h4 { color: var(--c-ink); line-height: 1.3; margin: 0 0 .5em; }
/* 标题用 clamp(vw) 流体缩放：带最小/最大限制，随屏幕等比例变化 */
h1 { font-size: clamp(1.75rem, 4vw, 2.375rem); }   /* 28 → 38 */
h2 { font-size: clamp(1.3125rem, 2.6vw, 1.625rem); } /* 21 → 26 */
h3 { font-size: 1.125rem; }                          /* 18px */
p { margin: 0 0 1em; }

/* ---------- 统一外层容器：首页与所有子页面一致（规范基准） ---------- */
.container {
  width: 100%;
  max-width: var(--container-max);   /* 1200px */
  margin: 0 auto;
  padding: 0 10%;                     /* 左右各 10% 间隙（盒模型已 border-box） */
  box-sizing: border-box;
}

.section { padding: 3.5rem 0; }              /* 56px */
.section--soft { background: var(--c-surface); }
.section-head { margin-bottom: 1.75rem; }    /* 28px */
.section-head p { color: var(--c-muted); margin-top: 0.375rem; }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  height: var(--nav-h);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--c-line);
}
.nav { display: flex; align-items: center; justify-content: space-between; height: var(--nav-h); }
.nav-brand { display: inline-flex; align-items: center; gap: 0.625rem; font-weight: 700; color: var(--c-ink); font-size: 1.0625rem; letter-spacing: .3px; }
.nav-logo { height: 2.125rem; width: 2.125rem; border-radius: 50%; object-fit: cover; flex: 0 0 auto; box-shadow: 0 1px 3px rgba(15,23,42,.18); }
.nav-links { display: flex; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.nav-links a {
  display: block; padding: 0.5rem 0.875rem; border-radius: 0.5rem;
  color: var(--c-slate); font-size: 0.9375rem; font-weight: 500;
}
.nav-links a:hover { background: var(--c-surface); color: var(--c-ink); }
.nav-links a.active { color: #000000; background: var(--c-tag-bg); }
.nav-toggle { display: none; background: none; border: 1px solid var(--c-line); border-radius: 0.5rem; width: 2.625rem; height: 2.375rem; cursor: pointer; }
.nav-toggle span { display: block; width: 1.25rem; height: 2px; background: var(--c-ink); margin: 0.25rem auto; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-block; padding: 0.75rem 1.375rem; border-radius: var(--radius-btn);
  font-weight: 600; font-size: 0.9375rem; cursor: pointer; border: 1px solid transparent;
  transition: all .15s ease; text-align: center;
}
.btn-primary { background: var(--c-primary); color: #fff; }
.btn-primary:hover { background: var(--c-primary-d); color: #fff; }
.btn-ghost { background: #fff; color: #000000; border-color: var(--c-primary); }
.btn-ghost:hover { background: var(--c-tag-bg); color: #000000; }
.btn-sm { padding: 0.5625rem 1rem; font-size: 0.875rem; }

/* ---------- Hero（首页 + 内页统一页头，同比例） ---------- */
.hero {
  padding: 4rem 0 3rem;       /* 64 / 48 */
  min-height: 20rem;          /* 320px，随根字号等比 */
  background: linear-gradient(180deg, #eaf6ef 0%, #ffffff 100%);
}
.hero--home { background: linear-gradient(180deg, #eaf6ef 0%, #ffffff 100%); }
.hero h1 { max-width: none; }
.hero .sub { font-size: 1.125rem; color: var(--c-slate); margin-bottom: 1.5rem; }
.hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.25rem; }

/* 内页统一页头（与首页 hero 同比例，必须写在 .hero 之后以覆盖） */
.hero--page { padding-bottom: 2.5rem; }
.hero--page .sub { font-size: 1.125rem; margin-bottom: 0; }
.hero--page .tags { margin-bottom: 0.875rem; }
.hero--page .region-meta { color: var(--c-muted); font-size: 0.90625rem; margin-top: 0.75rem; }

.crumb {
  display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
  font-size: 0.84375rem; color: var(--c-muted); margin-bottom: 0.875rem;
}
.crumb a { color: var(--c-muted); }
.crumb a:hover { color: #000000; }
.crumb .sep { color: #cbd5e1; }
.crumb [aria-current] { color: var(--c-ink); font-weight: 600; }

/* ---------- Notice (中立声明) ---------- */
.notice {
  border: 1px solid var(--c-line); border-left: 4px solid var(--c-primary);
  background: var(--c-surface); border-radius: var(--radius-card);
  padding: 1.25rem 1.5rem; margin-top: 0.5rem;
}
.notice h3 { margin-bottom: 0.5rem; }
.notice p { margin: 0; color: var(--c-slate); }

/* ---------- Cards grid（Grid 布局，自动列数） ---------- */
.grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(18.125rem, 1fr)); }
.grid--schools { grid-template-columns: repeat(3, 1fr); }   /* 学校卡片：桌面固定一行 3 个 */
.card {
  background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-card);
  padding: 1.375rem; box-shadow: var(--shadow-card); transition: transform .15s ease, box-shadow .15s ease;
  display: flex; flex-direction: column; overflow: hidden;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.school-thumb { width: 100%; aspect-ratio: 16 / 7; overflow: hidden; margin: -1.375rem -1.375rem 0.875rem;
  background: var(--c-surface); border-bottom: 1px solid var(--c-line); }
.school-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card h3 { margin-bottom: 0.25rem; }
.card .name { font-size: 1.0625rem; font-weight: 700; color: var(--c-ink); margin-bottom: 0.25rem; }
.card .meta { color: var(--c-muted); font-size: 0.875rem; margin-bottom: 0.625rem; }

/* ---------- Tags ---------- */
.tags { display: flex; flex-wrap: wrap; gap: 0.375rem; margin: 0.625rem 0 0.875rem; }
.tag {
  display: inline-block; padding: 0.1875rem 0.625rem; border-radius: 999px; font-size: 0.78125rem;
  background: var(--c-tag-bg); color: var(--c-tag-ink); font-weight: 500;
}
.tag--slate { background: #f1f5f9; color: var(--c-slate); }

/* ---------- School card ---------- */
.school-card .name { font-size: 1.0625rem; font-weight: 600; color: var(--c-ink); }
.school-card .desc { font-size: 0.875rem; color: var(--c-slate); margin: 0.5rem 0 0.875rem; flex: 1; }
.school-card .foot { margin-top: auto; }

/* 移动端折叠多余学校卡片：仅手机生效，桌面始终全显示 */
.school-fold-btn { display: none; }
@media (max-width: 767px) {
  .school-card--fold { display: none; }
  .school-grid--open .school-card--fold { display: flex; }
  .school-fold-btn { display: inline-flex; margin-top: 1.125rem; }
}

/* ---------- Detail field table ---------- */
.field-table { width: 100%; border-collapse: collapse; margin: 0; }
.field-table th, .field-table td {
  text-align: left; vertical-align: top; padding: 0.75rem 0.875rem;
  border-bottom: 1px solid var(--c-line); font-size: 0.9375rem;
}
.field-table th { width: 8.125rem; color: var(--c-ink); font-weight: 600; background: var(--c-surface); }
.field-table tr:last-child th, .field-table tr:last-child td { border-bottom: none; }
.detail-block { margin-bottom: 1.875rem; }
.detail-block h2 { border-left: 4px solid var(--c-primary); padding-left: 0.75rem; }
.cover {
  width: 100%; aspect-ratio: 16 / 7; border-radius: var(--radius-card);
  background: linear-gradient(135deg, #eef2ff, #e0e7ff); border: 1px solid var(--c-line);
  display: flex; align-items: center; justify-content: center; color: var(--c-muted);
  font-size: 1.125rem; font-weight: 600; margin-bottom: 1.5rem; overflow: hidden;
}
.cover img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Filter bar ---------- */
.toolbar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-bottom: 1.5rem; }
.search-box { flex: 1; min-width: 13.75rem; position: relative; }
.search-box input {
  width: 100%; padding: 0.6875rem 0.875rem 0.6875rem 2.375rem; border: 1px solid var(--c-line);
  border-radius: var(--radius-btn); font-size: 0.9375rem; outline: none;
}
.search-box input:focus { border-color: var(--c-primary); }
.search-box svg { position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%); }
.filters { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.filters select {
  padding: 0.625rem 0.75rem; border: 1px solid var(--c-line); border-radius: var(--radius-btn);
  font-size: 0.875rem; color: var(--c-slate); background: #fff; outline: none;
}
.filters select:focus { border-color: var(--c-primary); }
.result-count { color: var(--c-muted); font-size: 0.875rem; margin-bottom: 1rem; }

/* ---------- FAQ ---------- */
.faq-item { border: 1px solid var(--c-line); border-radius: var(--radius-btn); margin-bottom: 0.625rem; overflow: hidden; }
.faq-q { width: 100%; text-align: left; background: #fff; border: none; padding: 1rem 1.125rem; font-size: 0.96875rem; font-weight: 600; color: var(--c-ink); cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.faq-q::after { content: "+"; font-size: 1.25rem; color: var(--c-muted); }
.faq-item.open .faq-q::after { content: "\2212"; }
.faq-a { display: none; padding: 0 1.125rem 1rem; color: var(--c-slate); }
.faq-item.open .faq-a { display: block; }

/* ---------- Forms ---------- */
.form-wrap { width: 100%; }
.form-row { margin-bottom: 1.125rem; }
.form-row label { display: block; font-weight: 600; color: var(--c-ink); margin-bottom: 0.375rem; font-size: 0.90625rem; }
.form-row input, .form-row select, .form-row textarea {
  width: 100%; padding: 0.6875rem 0.8125rem; border: 1px solid var(--c-line); border-radius: var(--radius-btn);
  font-size: 0.9375rem; font-family: inherit; outline: none; color: var(--c-ink); background: #fff;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { border-color: var(--c-primary); }
.form-note { font-size: 0.84375rem; color: var(--c-muted); margin-top: 0.375rem; }
.form-ok { display: none; background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; padding: 0.75rem 1rem; border-radius: var(--radius-btn); margin-top: 0.875rem; }
.form-ok.show { display: block; }

/* ---------- Download list ---------- */
.resource { display: flex; gap: 1rem; align-items: flex-start; padding: 1.125rem; border: 1px solid var(--c-line); border-radius: var(--radius-card); background: #fff; }
.resource .ico { flex: none; width: 2.75rem; height: 2.75rem; border-radius: 0.625rem; background: var(--c-tag-bg); color: var(--c-tag-ink); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; }
.resource h3 { margin: 0 0 0.25rem; font-size: 1rem; }
.resource p { margin: 0; font-size: 0.875rem; color: var(--c-muted); }

/* ---------- About ---------- */
.profile-head { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; margin-bottom: 1.5rem; }
.profile-name { font-size: 1.25rem; font-weight: 700; color: var(--c-ink); margin: 0 0 0.25rem; }
.profile-role { color: var(--c-muted); margin: 0; font-size: 0.90625rem; }
.avatar { width: 6rem; height: 6rem; border-radius: 50%; background: var(--c-tag-bg); border: 1px solid var(--c-line); display: flex; align-items: center; justify-content: center; color: var(--c-tag-ink); font-weight: 700; font-size: 1.375rem; flex: none; overflow: hidden; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.work-list { padding-left: 1.25rem; margin: 0; }
.work-list li { margin-bottom: 0.5rem; }

/* ---------- Footer ---------- */
.site-footer { background: #0f172a; color: #cbd5e1; padding: 2.5rem 0 1.75rem; margin-top: 2.5rem; }
.site-footer a { color: #93c5fd; }
.site-footer .fcols { display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-between; }
.site-footer .fcol { min-width: 9rem; }
.site-footer .fcol--brand { max-width: 18.75rem; }
.site-footer .fcol h4 { color: #fff; font-size: 0.9375rem; margin-bottom: 0.625rem; }
.site-footer .fcol a { display: block; margin-bottom: 0.375rem; font-size: 0.875rem; }
/* 原内联 style="color:#b6e3cf" 收归此处（局部仅读变量，不写死颜色到标签） */
.site-footer .footer-note { font-size: 0.875rem; color: #94a3b8; margin: 0; }
.site-footer .footer-contact { font-size: 0.875rem; color: #a9c7ba; margin: 0; }
.site-footer .footer-contact a { color: #b6e3cf; }
.disclaimer {
  margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid #1e293b;
  font-size: 0.8125rem; color: #94a3b8; line-height: 1.7;
}
.site-footer .copy { margin-top: 0.875rem; font-size: 0.78125rem; color: #64748b; }

/* ---------- 404 ---------- */
.notfound { text-align: center; padding: 6.25rem 1.25rem; }
.notfound h1 { font-size: 4rem; color: #000000; }

/* ---------- Note box (资质/数据说明) ---------- */
.note-box {
  background: var(--c-surface); border: 1px solid var(--c-line);
  border-radius: var(--radius-card); padding: 0.875rem 1rem; font-size: 0.90625rem; color: var(--c-slate);
  margin: 0;
}

/* ---------- 学校客观对比页 ---------- */
.compare-picker { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.375rem; }
.cmp-chip { cursor: pointer; }
.cmp-chip.on { border-color: var(--c-primary); background: var(--c-tag-bg); color: #000000; font-weight: 600; }
.cmp-chip.rep { border-style: dashed; }
.rep-badge {
  display: inline-block; background: var(--c-primary); color: #fff; font-size: 0.6875rem;
  line-height: 1; padding: 0.125rem 0.375rem; border-radius: 999px; margin-right: 0.375rem; font-weight: 600;
}
.compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.compare-table { width: 100%; border-collapse: collapse; min-width: 33.75rem; background: #fff; }
.compare-table th, .compare-table td {
  border: 1px solid var(--c-line); padding: 0.75rem 0.875rem; text-align: left;
  vertical-align: top; font-size: 0.875rem; color: var(--c-slate);
}
.compare-table thead th { background: var(--c-surface); }
.compare-table th.dim {
  width: 7.25rem; color: var(--c-ink); background: var(--c-surface);
  font-weight: 600; white-space: nowrap;
}
.cmp-thumb {
  width: 100%; max-width: 8.25rem; aspect-ratio: 16 / 7; object-fit: cover;
  border-radius: 0.375rem; display: block; margin-bottom: 0.375rem; background: var(--c-surface);
}
.cmp-name { font-weight: 600; color: var(--c-ink); }
.compare-hint { color: var(--c-muted); font-size: 0.8125rem; margin-top: 0.75rem; }

/* ---------- 校区实拍画廊（Grid，平板 2 列 / 手机 1 列） ---------- */
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.gallery-item {
  position: relative; aspect-ratio: 4 / 3; border: 1px solid var(--c-line);
  border-radius: 0.625rem; overflow: hidden; background: var(--c-surface);
  display: flex; align-items: center; justify-content: center;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-item .ph-label { font-size: 0.8125rem; color: var(--c-muted); text-align: center; padding: 0 0.5rem; }
.gallery-item.has-img .ph-label { display: none; }

/* ---------- Region landing / chips ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.chip {
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.5rem 0.875rem; border: 1px solid var(--c-line); border-radius: 999px;
  background: #fff; color: var(--c-slate); font-size: 0.875rem; font-weight: 500;
  transition: all .15s ease;
}
.chip:hover { border-color: var(--c-primary); color: #000000; background: var(--c-tag-bg); }
.chip .n { color: var(--c-muted); font-size: 0.78125rem; }
.region-hero { padding: 0.5rem 0 0.25rem; }
.region-hero h1 { margin-bottom: 0.5rem; }
.region-hero p { color: var(--c-slate); }
.region-meta { color: var(--c-muted); font-size: 0.875rem; margin-top: 0.375rem; }

/* ---------- 刘主任一对一择校建议 ---------- */
.consult-card { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-card); padding: 1.75rem 1.875rem; margin-top: 0.375rem; }
.consult-copy { flex: 1 1 26.25rem; }
.consult-copy p { color: var(--c-slate); line-height: 1.85; margin: 0 0 0.75rem; }
.consult-copy p:last-child { margin-bottom: 0; }
.consult-cta { flex: 0 0 auto; display: flex; flex-direction: column; gap: 0.875rem; align-items: flex-start; }
.consult-phone { font-weight: 700; color: var(--c-ink); margin: 0; }

/* ---------- 18 校同维度数据表（宽表，包在 .compare-wrap 内横向滚动） ---------- */
.data-table { min-width: 56.25rem; }
.data-table thead th { font-size: 0.875rem; color: var(--c-ink); white-space: nowrap; }
.data-table tbody th[scope="row"] { width: auto; background: #fff; font-weight: 600; white-space: nowrap; }
.data-table tbody th[scope="row"] a { color: #000000; }
.data-table td { color: var(--c-slate); font-size: 0.875rem; }
.data-table tbody tr:nth-child(even) td,
.data-table tbody tr:nth-child(even) th[scope="row"] { background: var(--c-surface); }

/* ---------- 适合 / 不适合 ---------- */
.fit-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17.5rem, 1fr)); gap: 1rem; }
.fit-card { border: 1px solid var(--c-line); border-radius: var(--radius-card); padding: 1.125rem 1.25rem; background: #fff; }
.fit-card h3 { font-size: 0.9375rem; margin: 0 0 0.5rem; }
.fit-card p { margin: 0; color: var(--c-slate); font-size: 0.90625rem; line-height: 1.8; }
.fit-card--yes { border-left: 4px solid #0d9488; }
.fit-card--yes h3 { color: #0f766e; }
.fit-card--no { border-left: 4px solid #ea580c; }
.fit-card--no h3 { color: #c2410c; }

/* ---------- 全站浮动登记界面 ---------- */
.lead-fab {
  position: fixed;
  right: 1.375rem;
  bottom: 1.375rem;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.125rem;
  background: var(--c-accent);
  color: #fff;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(255, 122, 0, 0.34);
  cursor: pointer;
  font-size: 0.9375rem;
  font-weight: 600;
  user-select: none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.lead-fab:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(255, 122, 0, 0.42); }
.lead-fab:focus-visible { outline: 3px solid var(--c-accent-d); outline-offset: 2px; }
.lead-fab-ico { font-size: 1.0625rem; line-height: 1; }

.lead-mask {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
  z-index: 95;
}
.lead-mask[hidden] { display: none; }

.lead-panel {
  position: fixed;
  right: 1.375rem;
  bottom: 1.375rem;
  z-index: 100;
  width: 22.5rem;
  max-width: calc(100vw - 2rem);
  max-height: calc(100vh - 2.75rem);
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: 1rem;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.28);
  padding: 1.375rem;
  transform: translateY(1rem) scale(.98);
  opacity: 0;
  pointer-events: none;
  transition: transform .18s ease, opacity .18s ease;
}
.lead-panel.open { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }

.lead-close {
  position: absolute;
  top: 0.625rem;
  right: 0.75rem;
  width: 1.875rem;
  height: 1.875rem;
  border: none;
  background: transparent;
  font-size: 1.375rem;
  line-height: 1;
  color: var(--c-muted);
  cursor: pointer;
  border-radius: 0.5rem;
}
.lead-close:hover { background: var(--c-tag-bg); color: var(--c-ink); }

.lead-head h3 { margin: 0 0 0.375rem; font-size: 1.125rem; }
.lead-head p { margin: 0 0 0.875rem; font-size: 0.84375rem; color: var(--c-muted); }

.lead-form .lead-row { margin-bottom: 0.75rem; }
.lead-form label { display: block; font-size: 0.875rem; color: var(--c-ink); margin-bottom: 0.3125rem; font-weight: 600; }
.lead-form .req { color: #dc2626; }
.lead-form input,
.lead-form select,
.lead-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--c-line);
  border-radius: 0.625rem;
  padding: 0.625rem 0.75rem;
  font-size: 0.90625rem;
  color: var(--c-ink);
  background: #fff;
  outline: none;
  font-family: inherit;
}
.lead-form input:focus,
.lead-form textarea:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-tag-bg); }
.lead-form textarea { resize: vertical; }

.lead-submit { width: 100%; margin-top: 0.25rem; }
.lead-note { font-size: 0.78125rem; color: var(--c-muted); margin: 0.625rem 0 0; }
.lead-err { font-size: 0.8125rem; color: #dc2626; margin: 0.5rem 0 0; }
.lead-ok { font-size: 0.875rem; color: #0f766e; font-weight: 600; margin: 0.625rem 0 0; }

/* ---------- 第三方嵌入比例盒子（如有 iframe / 视频嵌入） ---------- */
.responsive-iframe {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;   /* 16:9 */
  height: 0;
  overflow: hidden;
}
.responsive-iframe iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

/* ============================================================
   统一响应式断点（桌面 / 平板 / 手机 三档）
   ============================================================ */
/* 平板 ≤1024px：导航收紧 + 画廊 2 列 + 咨询卡竖排 + 区块留白收敛 */
@media (max-width: 1024px) {
  .nav-brand { font-size: 0.95rem; }
  .nav-links a { padding: 0.5rem 0.6rem; font-size: 0.875rem; }
  .section { padding: 3rem 0; }
  .field-table th { width: 7rem; }
  .consult-card { flex-direction: column; align-items: stretch; }
  .consult-cta { align-items: stretch; }
  .consult-cta .btn { width: 100%; }
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .grid--schools { grid-template-columns: repeat(2, 1fr); }   /* 平板：学校卡一行 2 个 */
  .hero { padding: 3rem 0 2.5rem; }
  .hero .sub { font-size: 1.0625rem; }
}

/* 手机 ≤767px：导航折叠汉堡 + 卡片单列 + 学校折叠 + 按钮满宽 + 浮动贴边 */
@media (max-width: 767px) {
  .nav-toggle { display: block; }
  .nav-links {
    position: absolute; top: var(--nav-h); left: 0; right: 0;
    flex-direction: column; gap: 0; background: #fff;
    border-bottom: 1px solid var(--c-line); padding: 0.5rem 0; display: none;
  }
  .nav-links.open { display: flex; }
  .nav-links a { border-radius: 0; padding: 0.8125rem 1.25rem; }
  .grid, .grid--schools { grid-template-columns: 1fr; }   /* 手机：学校卡单列 */
  .hero { min-height: 0; padding: 2.5rem 0 2rem; }
  .hero-actions .btn { width: 100%; }
  .lead-fab { right: 0.875rem; bottom: 0.875rem; padding: 0.6875rem 0.9375rem; font-size: 0.875rem; }
  .lead-panel { right: 0.75rem; left: 0.75rem; bottom: 0.75rem; width: auto; }
}

/* 小屏 ≤480px：画廊单列微调 */
@media (max-width: 480px) {
  .gallery { grid-template-columns: 1fr; }
}
