/* =====================================================================
   青岛城市学院 · 计算与智能技术学院 2026 招生官网  ——  V22
   全站统一样式表 —— 视觉系统以《SCIT 2026 招生官网多页版站点设计文档》3.1 为准
   深蓝 #0a2540 + 琥珀金 #f59e0b · 正文 Noto Sans SC / 大标题 Noto Serif SC
   移动端优先（375px 基准），桌面端为次要适配
   字体策略（P1-10）：不依赖 Google Fonts CDN（大陆易被墙/极慢），
     优先使用设备本地已安装的 Noto 字体，并以平台中文系统字体兜底，
     保证 3G/弱网下首屏不被网络字体拖慢。
   ---------------------------------------------------------------------
   V22 变更（排版宽度对齐治理）：
   1. 合并 V21 散落的两处“说明段/路线图/深度层宽度补丁”，统一为文件末尾唯一的
      「V22 LAYOUT STANDARD：招生页主内容栅格统一」，便于集中维护。
   2. 新增 .course-detail 课程折叠层统一类（深色卡片，与 .deep-body 视觉一致），
      全站 10 个课程详情层均加上该类，桌面端宽度与说明段/路线图/上下卡片对齐。
   3. 保留 .copy-narrow 窄栏工具类，仅用于明确的“文章阅读型”长文，招生页默认不使用。
   ===================================================================== */

:root {
  /* —— 色彩令牌：对齐设计文档 3.1（深蓝 + 琥珀金）—— */
  --navy: #0a2540;
  --navy-light: #0d3259;
  --navy-mid: #0d3259;
  --navy-deep: #061a2e;
  --blue: #1a5fa8;
  --blue-light: #2d7dd2;
  --accent: #f59e0b;
  --accent-light: #fbbf52;
  --accent-dark: #d97706;
  --accent-glow: rgba(245,158,11,0.15);
  --green: #16a34a;
  --green-dark: #15803d;
  --red: #dc2626;
  --text: #1e293b;
  --text-sub: #475569;
  --text-muted: #94a3b8;
  --bg: #f8fafc;
  --bg-warm: #fffbeb;
  --white: #ffffff;
  --border: #e2e8f0;
  --card-bg: #ffffff;
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);
  --shadow-md: 0 6px 24px rgba(0,0,0,0.08);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.12);
  --radius: 16px;
  --radius-sm: 10px;
  --trans: 0.35s cubic-bezier(0.4,0,0.2,1);
  --page-max: 640px;
  /* —— V8 布局改造：区块满屏 + 内部内容容器限宽（参考 unitree-college.html）——
     满屏区块（.section/.hero/.cta-section/.site-footer 等）背景铺满视口，
     内容通过左右 padding = max(24px, 50% - 内容半宽) 居中限宽。 */
  --content-max: 1100px;
  --pad-x: max(24px, calc(50% - var(--content-max) / 2));
  --header-h: 56px;
  /* —— 字号令牌：正文统一 ≥15px（设计文档原则一 / 验收红线 #1，P1-9）—— */
  --fs-body: 15px;
  /* —— 字体族（无 CDN 依赖，P1-10 / 衬线大标题 P2-12）—— */
  --font-sans: 'Noto Sans SC','PingFang SC','Microsoft YaHei',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-serif: 'Noto Serif SC','Source Han Serif SC','Songti SC','SimSun',serif;
  --font-mono: 'JetBrains Mono',ui-monospace,'SF Mono',Consolas,monospace;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans);
  background: var(--bg);
  color: var(--text);
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
button { font-family:inherit; }

/* ===== PAGE WRAP (mobile-first centered column) ===== */
.page-wrap {
  width: 100%;
  max-width: none;
  margin: 0;
  background: var(--white);
  position: relative;
  min-height:100vh;
  padding-bottom: 76px; /* room for fixed bottom bar on mobile */
}

/* ============================================================
   HEADER (fixed, frosted) + 汉堡菜单
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(11,29,51,0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: var(--trans);
}
.site-header.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,0.25); }

/* —— 学校主站返回顶栏（嵌入 .site-header 内部，做法 B：仅保留一个 sticky 容器，技术风险最低）—— */
.school-topbar-in-header {
  background: rgba(7,21,37,0.95);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.school-topbar-inner {
  max-width: var(--content-max); margin: 0 auto;
  padding: 5px 16px;
  display: flex; align-items: center; justify-content: flex-start;
}
.school-topbar-inner a {
  color: rgba(255,255,255,0.82);
  font-size: 12px; font-weight: 600; line-height: 1.4;
  text-decoration: none; transition: color 0.2s ease;
}
.school-topbar-inner a:hover,
.school-topbar-inner a:active { color: var(--accent-light); }
@media (min-width: 680px) {
  .school-topbar-inner { padding: 6px 16px; }
  .school-topbar-inner a { font-size: 13px; }
}
.header-inner {
  max-width: var(--content-max); margin:0 auto;
  height: var(--header-h);
  display:flex; align-items:center; justify-content:space-between;
  padding: 0 16px;
}
.logo { display:flex; align-items:center; gap:9px; }
.logo-icon {
  width:34px; height:34px; border-radius:8px;
  background:linear-gradient(135deg,var(--accent),var(--accent-dark));
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-weight:700;
  color:#fff; font-size:13px; letter-spacing:0.5px;
}
.logo-text h1 { font-size:14px; font-weight:700; color:#fff; line-height:1.15; }
.logo-text p { font-size:9px; color:rgba(255,255,255,0.5); letter-spacing:0.5px; }
.menu-toggle {
  background:none; border:none; color:#fff; font-size:22px;
  cursor:pointer; padding:4px 6px; line-height:1;
}

/* mobile nav drawer */
.main-nav {
  display:none;
  position:absolute; top:var(--header-h); left:0; right:0;
  background:var(--navy); border-top:1px solid rgba(255,255,255,0.08);
  padding:8px 0 14px;
  box-shadow:var(--shadow-lg);
}
.main-nav.open { display:block; animation:navDrop .25s ease; }
@keyframes navDrop { from{opacity:0; transform:translateY(-8px)} to{opacity:1; transform:translateY(0)} }
.main-nav > a, .nav-group > .nav-group-label {
  display:block; padding:12px 20px; color:rgba(255,255,255,0.82);
  font-size:15px; font-weight:500; border-bottom:1px solid rgba(255,255,255,0.05);
}
.main-nav > a.active, .main-nav > a.hot {
  color:var(--accent-light); font-weight:700;
}
.main-nav > a.hot::after { content:' 🔥'; }
.nav-group-label { cursor:pointer; display:flex; justify-content:space-between; align-items:center; }
.nav-group .sub { display:none; background:rgba(0,0,0,0.25); }
.nav-group.open .sub { display:block; }
.nav-group .sub a {
  display:block; padding:10px 20px 10px 36px; font-size:14px;
  color:rgba(255,255,255,0.7); border-bottom:1px solid rgba(255,255,255,0.04);
}
.nav-group .sub a:active { color:var(--accent-light); }

/* breadcrumb */
.breadcrumb {
  font-size:12px; color:var(--text-muted);
  padding:10px var(--pad-x); display:flex; gap:6px; align-items:center; flex-wrap:wrap;
  background:var(--white);
}
.breadcrumb a { color:var(--blue); }
.breadcrumb strong { color:var(--text); font-weight:600; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position:relative;
  padding: 54px var(--pad-x) 44px;
  background: linear-gradient(175deg, #0b1d33 0%, #112a4a 40%, #183d6e 75%, #1565c0 100%);
  overflow:hidden; text-align:center;
}
.hero.compact { padding:40px var(--pad-x) 36px; }
.hero::before {
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 400px 300px at 70% 30%, rgba(255,143,0,0.1), transparent),
    radial-gradient(ellipse 300px 250px at 20% 80%, rgba(66,165,245,0.08), transparent);
}
.hero-grid {
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size:40px 40px; animation: gridDrift 25s linear infinite;
}
@keyframes gridDrift { 0%{transform:translate(0,0)} 100%{transform:translate(40px,40px)} }
.hero-content { position:relative; z-index:2; }
.hero-school { font-size:12px; color:rgba(255,255,255,0.55); letter-spacing:2px; margin-bottom:6px; }
.hero-tag {
  display:inline-block; background:rgba(255,143,0,0.15);
  border:1px solid rgba(255,143,0,0.3); border-radius:100px;
  padding:4px 16px; font-size:12px; font-weight:600; color:var(--accent-light);
  margin-bottom:16px;
}
.hero h1, .hero-college {
  font-family:var(--font-serif);
  font-size:27px; font-weight:900; color:#fff; line-height:1.32;
  margin-bottom:10px; letter-spacing:0.5px;
}
.hero h1 .acc, .hero-college .acc { color:var(--accent-light); }
.hero-slogan { font-size:15px; color:rgba(255,255,255,0.85); line-height:1.8; margin-bottom:26px; }
.hero-slogan strong { color:#fff; }
.hero-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.hero-stat {
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.1);
  border-radius:12px; padding:15px 6px;
}
.hero-stat .num {
  font-family:var(--font-mono); font-size:24px; font-weight:700;
  color:var(--accent-light); line-height:1.2;
}
.hero-stat .num sup { font-size:13px; }
.hero-stat .lbl { font-size:10.5px; color:rgba(255,255,255,0.55); margin-top:4px; line-height:1.4; }

/* hero buttons */
.hero-btns { display:flex; flex-direction:column; gap:10px; margin-top:26px; }
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:13px 22px; border-radius:100px; font-size:14.5px; font-weight:700;
  cursor:pointer; transition:var(--trans); border:none; min-height:46px;
}
.btn-primary { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; box-shadow:0 4px 18px rgba(255,143,0,0.35); }
.btn-primary:active { transform:translateY(1px); }
.btn-ghost { background:rgba(255,255,255,0.08); color:#fff; border:1px solid rgba(255,255,255,0.25); }
.btn-blue { background:linear-gradient(135deg,var(--blue),var(--blue-light)); color:#fff; }
.btn-light { background:#fff; color:var(--accent); }

/* ============================================================
   SECTION GENERIC
   ============================================================ */
.section { padding:44px var(--pad-x); }
.section.tight { padding:32px var(--pad-x); }
.section-tag {
  font-family:var(--font-mono); font-size:11px; font-weight:600;
  letter-spacing:2px; color:var(--blue); text-transform:uppercase; margin-bottom:6px;
}
.section-title { font-family:var(--font-serif); font-size:22px; font-weight:800; color:var(--navy); margin-bottom:8px; line-height:1.4; }
.section-desc { font-size:var(--fs-body); color:var(--text-sub); line-height:1.7; margin-bottom:26px; }
.section-desc strong { color:var(--navy); }
.section-divider { height:6px; background:linear-gradient(90deg, var(--blue), var(--accent), var(--blue)); opacity:0.15; }
.sub-h { font-size:16px; font-weight:700; color:var(--navy); margin:6px 0 14px; }
.lead { font-size:15px; color:var(--text-sub); line-height:1.85; }
.lead strong { color:var(--navy); }

/* tone helpers for dark sections */
.section.dark { background:linear-gradient(175deg,#0b1d33,#183d6e); color:#fff; }
.section.dark .section-tag { color:var(--accent-light); }
.section.dark .section-title { color:#fff; }
.section.dark .section-desc { color:rgba(255,255,255,0.82); }
.section.warm { background:var(--bg-warm); }
.section.plain { background:var(--white); }
.section.grey { background:var(--bg); }

/* ============================================================
   零基础友好横条 / highlight strip
   ============================================================ */
.highlight-strip {
  background: linear-gradient(135deg, #e8f5e9, #fff8e1);
  border-radius: var(--radius-sm); padding: 14px 18px; margin-bottom: 16px;
  display: flex; align-items: center; gap: 10px;
  border: 1px solid rgba(0,200,83,0.2);
}
.highlight-strip .hs-icon { font-size: 22px; flex-shrink: 0; }
.highlight-strip .hs-text { font-size: var(--fs-body); font-weight: 600; color: var(--navy); line-height: 1.5; }
.highlight-strip .hs-text span { color: var(--blue); font-weight: 700; }
.zero-base { border-color:rgba(21,101,192,0.25); background:linear-gradient(135deg,#e3f2fd,#fff8e1); }

/* one-line positioning under hero on major pages */
.one-liner {
  background:linear-gradient(135deg,#0b1d33,#1565c0); color:#fff;
  padding:26px var(--pad-x) 22px; text-align:center;
  border-bottom:3px solid rgba(255,255,255,.08);
}
.one-liner .ql { font-size:20px; font-weight:800; line-height:1.55; letter-spacing:.01em; }
.one-liner .ql .acc { color:var(--accent-light); }

/* ============================================================
   WHY CHOOSE cards
   ============================================================ */
.why-card {
  background: linear-gradient(135deg, #f0f7ff 0%, #fff8e1 100%);
  border-radius:var(--radius); padding:22px 20px; margin-bottom:14px;
  border-left:4px solid var(--blue); position:relative;
}
.why-card .icon { font-size:26px; margin-bottom:8px; }
.why-card h3 { font-size:16px; font-weight:700; color:var(--navy); margin-bottom:6px; }
.why-card p { font-size:var(--fs-body); color:var(--text-sub); line-height:1.7; }

/* feature 4-grid */
.feat-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.feat-card {
  border-radius:var(--radius-sm); padding:18px 14px; text-align:center;
  border:1px solid var(--border); transition:var(--trans); background:var(--white);
}
.feat-card:hover { border-color:var(--blue-light); transform:translateY(-2px); }
.feat-card .fc-icon { font-size:30px; margin-bottom:8px; }
.feat-card h4 { font-size:14px; font-weight:700; color:var(--navy); margin-bottom:4px; }
.feat-card p { font-size:13.5px; color:var(--text-sub); line-height:1.5; }

/* ============================================================
   STATS BANNER / data board
   ============================================================ */
.stats-banner { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%); padding:34px var(--pad-x); text-align:center; }
.stats-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.stats-grid.c3 { grid-template-columns:repeat(3,1fr); }
.stats-grid.c4 { grid-template-columns:repeat(2,1fr); }
.stat-item { padding:16px 8px; border-radius:12px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.08); }
.stat-item .val { font-family:var(--font-mono); font-size:27px; font-weight:700; color:var(--accent-light); line-height:1.15; }
.stat-item .val sup { font-size:13px; }
.stat-item .desc { font-size:11.5px; color:rgba(255,255,255,0.55); margin-top:3px; }
/* light variant on white bg */
.board-light .stat-item { background:var(--bg); border:1px solid var(--border); }
.board-light .stat-item .val { color:var(--blue); }
.board-light .stat-item .desc { color:var(--text-sub); }

/* ============================================================
   IMG placeholder
   ============================================================ */
.img-placeholder {
  background:linear-gradient(135deg,#e3e8ef,#d5dce6); border-radius:var(--radius);
  height:190px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:var(--text-muted); font-size:13px; margin-bottom:18px; border:2px dashed var(--border);
  text-align:center; padding:0 14px;
}
.img-placeholder.sm { height:130px; }
.img-placeholder .cam-icon { font-size:34px; margin-bottom:8px; opacity:0.5; }
.img-placeholder.dark { background:rgba(255,255,255,0.05); border:1px dashed rgba(255,255,255,0.18); color:rgba(255,255,255,0.4); }
.img-placeholder.dark .cam-icon { opacity:0.4; }

/* ============================================================
   FACULTY slider
   ============================================================ */
.hslider {
  overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory;
  display:flex; gap:14px; padding-bottom:14px; margin:0 -24px; padding-left:24px; padding-right:24px;
}
.hslider::-webkit-scrollbar { height:4px; }
.hslider::-webkit-scrollbar-track { background:transparent; }
.hslider::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }
.faculty-card {
  min-width:248px; max-width:268px; scroll-snap-align:start; background:var(--white);
  border-radius:var(--radius); box-shadow:var(--shadow-md); overflow:hidden; flex-shrink:0;
}
.faculty-photo { height:96px; background:linear-gradient(135deg,var(--navy),var(--blue)); display:flex; align-items:center; justify-content:center; position:relative; }
.faculty-avatar { width:58px; height:58px; border-radius:50%; background:rgba(255,255,255,0.15); border:2px solid rgba(255,255,255,0.3); display:flex;align-items:center;justify-content:center; font-size:23px; font-weight:700; color:#fff; }
.faculty-photo .hint { position:absolute; bottom:6px; right:10px; font-size:10px; color:rgba(255,255,255,0.4); }
.faculty-body { padding:15px; }
.faculty-name { font-size:17px; font-weight:700; color:var(--navy); margin-bottom:3px; }
.faculty-title-tag { display:inline-block; background:var(--accent-glow); color:var(--accent); font-size:11px; font-weight:600; padding:2px 10px; border-radius:100px; margin-bottom:10px; }
.faculty-detail { font-size:15px; color:var(--text-sub); line-height:1.6; margin-bottom:4px; padding-left:12px; position:relative; }
.faculty-detail::before { content:''; position:absolute; left:0; top:8px; width:5px; height:5px; border-radius:50%; background:var(--blue-light); }
.slider-hint { text-align:center; font-size:12px; color:var(--text-muted); margin-top:8px; }

/* ============================================================
   V24：所有师资模块统一平铺卡片，替代横向滑动。
   覆盖校内教师、骨干教师、客座教授、企业导师、企业师资。
   断点：手机 1 列 / 平板 2 列 / 桌面 3 列（桌面硬要求 3 个一排）。
   ============================================================ */
.faculty-section { width:100%; }

.faculty-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  width: 100%;
}
.faculty-grid .faculty-card {
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  flex-shrink: 1;
}
.faculty-grid .faculty-photo {
  aspect-ratio: 1 / 1;
  height: auto;
  position: relative;
  overflow: hidden;
}
/* 企业导师真实照片：填满照片位，加载失败时由底层头像兜底，不显示断图 */
.faculty-grid .faculty-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.faculty-grid .faculty-avatar { width:62px; height:62px; font-size:25px; }
.faculty-info,
.faculty-body {
  padding: 14px 15px;
}
.faculty-grid .faculty-detail { font-size:13.5px; line-height:1.55; }
.faculty-title {
  display: inline-block;
  background: var(--accent-glow);
  color: var(--accent-dark);
  font-size: 11px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 100px;
  margin-bottom: 10px;
  line-height: 1.6;
}
/* 深色区（如 faculty.html 企业导师团）内的平铺卡片仍为浅底卡片，保证可读 */
.section.dark .faculty-grid .faculty-card { background:var(--white); }

@media (min-width: 768px) {
  .faculty-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  /* 桌面端硬要求：所有师资照片 / 师资卡片统一 3 个一排，不使用 auto-fit，避免变成 4 列或横向滑动。 */
  .faculty-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* ============================================================
   V24：统一素材、二维码、地图占位，避免占位过大或显得未完工
   ============================================================ */
.media-slot,
.img-placeholder { min-height: 160px; }

.media-slot {
  background: linear-gradient(135deg,#e3e8ef,#d5dce6);
  border-radius: var(--radius);
  border: 2px dashed var(--border);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--text-muted);
  font-size: 13px;
  padding: 18px;
}
.media-slot .cam-icon { font-size:32px; margin-bottom:8px; opacity:0.5; }
.media-slot.hero-photo { min-height: 210px; }
.media-slot.video-slot { min-height: 180px; }
.media-slot.map-slot { min-height: 200px; }

.asset-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.asset-grid .media-slot { min-height: 130px; }

.qr-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.qr-box {
  width: 160px;
  height: 160px;
  margin: 0 auto 10px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  font-size: 12px;
  text-align: center;
}

@media (min-width: 768px) {
  .media-slot.hero-photo { min-height: 280px; }
  .asset-grid { grid-template-columns: repeat(4,1fr); }
}

/* ============================================================
   UNITREE banner (deep "特区")
   ============================================================ */
.unitree-banner {
  background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);
  border-radius:var(--radius); padding:26px 20px; margin-bottom:18px; position:relative; overflow:hidden;
}
.unitree-banner::after { content:''; position:absolute; top:-30px; right:-30px; width:120px; height:120px; background:radial-gradient(circle, rgba(255,143,0,0.15), transparent 70%); border-radius:50%; }
.unitree-tag { display:inline-block; background:rgba(255,143,0,0.2); border:1px solid rgba(255,143,0,0.3); color:var(--accent-light); font-size:11px; font-weight:600; padding:3px 12px; border-radius:100px; margin-bottom:10px; position:relative; z-index:1; }
.unitree-banner h4 { font-size:18px; font-weight:800; color:#fff; margin-bottom:8px; position:relative; z-index:1; }
.unitree-banner p { font-size:15px; color:rgba(255,255,255,0.88); line-height:1.7; position:relative; z-index:1; }
.unitree-banner p strong { color:var(--accent-light); }
.unitree-cards { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; position:relative; z-index:1; }
.unitree-mini { background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12); border-radius:10px; padding:14px 12px; text-align:center; }
.unitree-mini .um-icon { font-size:22px; margin-bottom:6px; }
.unitree-mini h5 { font-size:12px; font-weight:700; color:rgba(255,255,255,0.85); margin-bottom:4px; }
.unitree-mini p { font-size:10.5px; color:rgba(255,255,255,0.5); line-height:1.5; margin:0; }
.unitree-do { margin-top:14px; position:relative; z-index:1; }
.unitree-do-title { font-size:13px; font-weight:700; color:var(--accent-light); margin-bottom:8px; }
.unitree-do-tags { display:flex; flex-wrap:wrap; gap:6px; }
.unitree-do-tag { background:rgba(255,143,0,0.12); border:1px solid rgba(255,143,0,0.2); border-radius:100px; padding:4px 12px; font-size:11px; color:rgba(255,255,255,0.75); white-space:nowrap; }
.unitree-outcome { margin-top:14px; position:relative; z-index:1; background:rgba(255,143,0,0.08); border:1px solid rgba(255,143,0,0.15); border-radius:10px; padding:12px 14px; }
.unitree-outcome .uo-title { font-size:12px; font-weight:700; color:var(--accent-light); margin-bottom:4px; }
.unitree-outcome p { font-size:13px; color:rgba(255,255,255,0.8); line-height:1.6; margin:0; }
/* enterprise mentor mini-cards inside dark areas */
.um-slider { overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; display:flex; gap:10px; padding-bottom:8px; }
.um-slider::-webkit-scrollbar { height:3px; }
.um-slider::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.15); border-radius:3px; }
.um-card { min-width:184px; max-width:204px; scroll-snap-align:start; flex-shrink:0; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:12px; }
.um-card .um-name { font-size:14px; font-weight:700; color:#fff; margin-bottom:2px; }
.um-card .um-role { font-size:10px; font-weight:600; color:var(--accent-light); margin-bottom:6px; line-height:1.3; }
.um-card .um-info { font-size:10.5px; color:rgba(255,255,255,0.5); line-height:1.5; }

/* ============================================================
   COMPARISON cards (横滑对比 / 方向对比)
   ============================================================ */
.cmp-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -24px; padding:4px 24px 14px; }
.cmp-table { border-collapse:separate; border-spacing:0; min-width:560px; width:100%; font-size:13.5px; }
.cmp-table th, .cmp-table td { padding:11px 12px; text-align:left; vertical-align:top; border-bottom:1px solid var(--border); line-height:1.55; }
.cmp-table thead th { background:var(--navy); color:#fff; font-weight:700; font-size:13px; position:sticky; top:0; }
.cmp-table thead th:first-child { background:var(--navy-deep); }
.cmp-table tbody th { background:var(--bg); color:var(--text-sub); font-weight:600; white-space:nowrap; width:84px; }
.cmp-table td { color:var(--text-sub); background:var(--white); }
.cmp-table .hot-col { background:linear-gradient(180deg,var(--bg-warm),#fffdf5); }
.cmp-table thead th.hot-col { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; }
.cmp-table .hl { color:var(--accent-dark); font-weight:700; }
.cmp-hint { text-align:center; font-size:12px; color:var(--text-muted); margin-top:6px; }

/* ============================================================
   TIMELINE / 四年成长路线图
   ============================================================ */
.timeline { position:relative; padding-left:30px; }
.timeline::before { content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:linear-gradient(180deg,var(--blue),var(--accent)); }
.tl-item { position:relative; margin-bottom:18px; }
.tl-item::before { content:''; position:absolute; left:-26px; top:4px; width:14px; height:14px; border-radius:50%; background:var(--accent); border:3px solid var(--white); box-shadow:0 0 0 2px var(--accent); }
.tl-item h5 { font-size:14.5px; font-weight:700; color:var(--navy); margin-bottom:4px; }
.tl-item p { font-size:var(--fs-body); color:var(--text-sub); line-height:1.65; }
.tl-item .quote { color:var(--accent-dark); font-weight:600; }
.tl-item .tag-101 { display:inline-block; font-size:10px; font-weight:600; color:var(--green-dark); background:rgba(0,200,83,0.1); border-radius:4px; padding:1px 7px; margin-left:4px; }

/* ============================================================
   岗位卡 / job cards
   ============================================================ */
.job-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.job-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; }
.job-card .jc-icon { font-size:22px; margin-bottom:6px; }
.job-card h5 { font-size:13.5px; font-weight:700; color:var(--navy); margin-bottom:3px; }
.job-card p { font-size:13px; color:var(--text-sub); line-height:1.5; }

/* tags */
.tags { display:flex; flex-wrap:wrap; gap:7px; }
.tag { background:var(--bg); border:1px solid var(--border); border-radius:100px; padding:5px 13px; font-size:12px; color:var(--text-sub); }
.tag.accent { background:var(--accent-glow); border-color:rgba(255,143,0,0.25); color:var(--accent-dark); }
.tag.blue { background:rgba(21,101,192,0.08); border-color:rgba(21,101,192,0.18); color:var(--blue); }
.tags.dark .tag { background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.12); color:rgba(255,255,255,0.78); }

/* info table */
.info-table { width:100%; border-collapse:collapse; font-size:15px; background:var(--white); border-radius:var(--radius-sm); overflow:hidden; box-shadow:var(--shadow-sm); }
.info-table tr { border-bottom:1px solid var(--border); }
.info-table tr:last-child { border-bottom:none; }
.info-table th { text-align:left; padding:11px 14px; font-size:15px; background:var(--bg); color:var(--text-sub); font-weight:600; width:38%; }
.info-table td { padding:11px 14px; color:var(--text); }

/* 校友/学生故事卡 */
.story-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:16px; margin-bottom:12px; display:flex; gap:14px; box-shadow:var(--shadow-sm); }
.story-photo { width:64px; height:64px; border-radius:14px; flex-shrink:0; background:linear-gradient(135deg,var(--navy),var(--blue)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:24px; position:relative; }
.story-photo .hint { position:absolute; bottom:-16px; left:0; right:0; text-align:center; font-size:9px; color:var(--text-muted); }
.story-body { flex:1; min-width:0; }
.story-body h5 { font-size:14px; font-weight:700; color:var(--navy); }
.story-body .origin { display:inline-block; font-size:10.5px; font-weight:600; color:var(--accent-dark); background:var(--accent-glow); border-radius:4px; padding:1px 8px; margin:3px 0 6px; }
.story-body p { font-size:15px; color:var(--text-sub); line-height:1.6; }

/* 引文卡 / quote */
.quote-card { background:linear-gradient(135deg,#f0f7ff,#fff8e1); border-radius:var(--radius); padding:20px; border-left:4px solid var(--accent); }
.quote-card p { font-size:var(--fs-body); color:var(--text-sub); line-height:1.85; font-style:italic; }
.quote-card .qc-who { display:flex; align-items:center; gap:12px; margin-top:14px; }
.quote-card .qc-avatar { width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,var(--navy),var(--blue)); color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:700; flex-shrink:0; }
.quote-card .qc-name { font-size:14px; font-weight:700; color:var(--navy); font-style:normal; }
.quote-card .qc-role { font-size:11px; color:var(--text-muted); }

/* ============================================================
   ACCORDION (志愿手风琴 / 课程折叠)
   ============================================================ */
.accordion { border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); }
.acc-group { border-bottom:1px solid var(--border); background:var(--white); }
.acc-group:last-child { border-bottom:none; }
.acc-head {
  width:100%; text-align:left; background:var(--white); border:none; cursor:pointer;
  padding:15px 18px; font-size:15px; font-weight:700; color:var(--navy);
  display:flex; justify-content:space-between; align-items:center; gap:8px; min-height:48px;
}
.acc-head .acc-count { font-size:12px; font-weight:500; color:var(--text-muted); }
.acc-head .acc-arrow { transition:var(--trans); color:var(--blue); font-size:14px; }
.acc-group.open .acc-head { background:var(--bg); }
.acc-group.open .acc-arrow { transform:rotate(180deg); }
.acc-body { display:none; padding:4px 16px 16px; background:var(--bg); }
.acc-group.open .acc-body { display:block; animation:accReveal .25s ease; }
@keyframes accReveal { from{opacity:0} to{opacity:1} }

/* 志愿卡 (in accordion) */
.zy-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; margin-bottom:10px; border-left:4px solid var(--blue); }
.zy-card:last-child { margin-bottom:0; }
.zy-card.hot { border-left-color:var(--accent); }
.zy-card.intl { border-left-color:#7e57c2; }
.zy-card.order { border-left-color:var(--green); }
.zy-card .zy-name { font-size:14.5px; font-weight:700; color:var(--navy); margin-bottom:4px; }
.zy-card .zy-badge { display:inline-block; font-size:10.5px; font-weight:600; padding:1px 8px; border-radius:4px; margin-left:4px; vertical-align:middle; }
.zy-badge.b-hot { background:var(--accent-glow); color:var(--accent-dark); }
.zy-badge.b-intl { background:rgba(126,87,194,0.12); color:#5e35b1; }
.zy-badge.b-order { background:rgba(0,200,83,0.12); color:var(--green-dark); }
.zy-card .zy-line { font-size:15px; color:var(--text-sub); line-height:1.6; }
.zy-card .zy-meta { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.zy-meta .m { font-size:12.5px; background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:3px 9px; color:var(--text-sub); }
.zy-meta .m b { color:var(--navy); }
.zy-meta .m.fee b { color:var(--accent-dark); }
.zy-meta .m.cert b { color:var(--blue); }
.zy-card .zy-link { display:inline-block; font-size:12.5px; font-weight:700; color:var(--blue); margin-top:4px; }
.zy-card .zy-warn { font-size:11.5px; color:var(--accent-dark); margin-top:4px; }
.todo { color:var(--red); font-weight:600; }

/* ============================================================
   决策树 / 场景问答 (按兴趣/就业/分数选)
   ============================================================ */
.picker-tabs { display:flex; gap:8px; margin-bottom:18px; }
.picker-tab { flex:1; padding:11px 6px; border-radius:var(--radius-sm); background:var(--bg); border:1px solid var(--border); font-size:13px; font-weight:600; color:var(--text-sub); text-align:center; cursor:pointer; transition:var(--trans); }
.picker-tab.active { background:linear-gradient(135deg,var(--navy),var(--blue)); color:#fff; border-color:transparent; }
.picker-panel { display:none; }
.picker-panel.active { display:block; animation:accReveal .3s ease; }
.qa-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; margin-bottom:10px; }
.qa-card .qa-voice { font-size:14px; font-weight:700; color:var(--navy); margin-bottom:6px; }
.qa-card .qa-voice::before { content:'“'; color:var(--accent); }
.qa-card .qa-voice::after { content:'”'; color:var(--accent); }
.qa-card .qa-rec { font-size:14px; color:var(--text-sub); }
.qa-card .qa-rec b { color:var(--blue); }
.qa-card .qa-deep { font-size:15px; color:var(--accent-dark); background:var(--bg-warm); border-radius:8px; padding:8px 12px; margin-top:8px; line-height:1.6; display:flex; gap:6px; }
.qa-card .qa-deep::before { content:'💎'; flex-shrink:0; }

/* ============================================================
   FAQ
   ============================================================ */
.faq-item { border-bottom:1px solid var(--border); }
.faq-q { width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:15px 2px; font-size:14.5px; font-weight:600; color:var(--navy); display:flex; justify-content:space-between; gap:10px; align-items:flex-start; min-height:48px; }
.faq-q .fq-mark { color:var(--accent); flex-shrink:0; font-weight:800; }
.faq-q .fq-arrow { color:var(--blue); transition:var(--trans); flex-shrink:0; }
.faq-item.open .fq-arrow { transform:rotate(45deg); }
.faq-a { display:none; padding:0 2px 16px; font-size:var(--fs-body); color:var(--text-sub); line-height:1.8; }
.faq-item.open .faq-a { display:block; animation:accReveal .25s ease; }
.faq-a .todo-note { background:#fff3e0; border-left:3px solid var(--accent); padding:8px 12px; border-radius:6px; font-size:12px; color:var(--accent-dark); margin-top:6px; }

/* ============================================================
   深度视图开关 / deep view
   ============================================================ */
.deep-toggle { width:100%; background:linear-gradient(135deg,#f0f7ff,#fff8e1); border:1px dashed var(--blue); border-radius:var(--radius-sm); padding:13px; font-size:13.5px; font-weight:700; color:var(--blue); cursor:pointer; display:flex; align-items:center; justify-content:center; gap:7px; margin-top:8px; }
.deep-body { display:none; margin-top:12px; padding:16px; background:var(--navy); color:rgba(255,255,255,0.82); border-radius:var(--radius-sm); font-size:var(--fs-body); line-height:1.8; }
.deep-body.open { display:block; animation:accReveal .3s ease; }
.deep-body strong { color:var(--accent-light); }
.deep-open .deep-toggle .dt-label::after { content:'（收起）'; }

/* V24：修复深色展开层内 .lead / p / 列表文字继承全局深灰色导致看不清的问题
   覆盖 class/ic.html“这个联合体什么来头”、major/vr.html“进阶技术平台和行业术语”等展开层 */
.deep-body,
.deep-body p,
.deep-body .lead,
.deep-body li,
.deep-body td {
  color: rgba(255,255,255,0.88) !important;
}
.deep-body b,
.deep-body strong {
  color: var(--accent-light) !important;
}
/* 表格仍保持浅底深字，不被上面的白字规则误伤 */
.deep-body .info-table th {
  color: var(--text-sub) !important;
}
.deep-body .info-table td {
  color: var(--text) !important;
}
.deep-body a {
  color: var(--accent-light) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* V22：课程折叠层统一类 —— 与 .deep-body 同为"深度信息"，采用一致的深色卡片样式，
   避免各专业页课程详情层有的带深色卡、有的是裸文字。默认 display:none 隐藏，
   展开/收起由 js 的 toggleFold 切换内联 display:block / none 控制（内联样式优先级更高）。 */
.course-detail { display:none; margin-top:12px; padding:16px; background:var(--navy); color:rgba(255,255,255,0.82); border-radius:var(--radius-sm); font-size:var(--fs-body); line-height:1.8; }
.course-detail strong, .course-detail b { color:var(--accent-light); }
.course-detail .lead { color:rgba(255,255,255,0.82); }
/* 课程层转为深色卡后，内嵌的“国家级精品教材”绿色徽标改为深底可读配色（内联样式需 !important 覆盖） */
.course-detail .tag-101 { color:#86efac !important; background:rgba(22,163,74,0.22) !important; }

/* ============================================================
   设备网格 / equipment
   ============================================================ */
.equip-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.equip-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.equip-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.1); }
/* emoji 占位样式（兼容旧代码） */
.equip-img { height:96px; background:linear-gradient(135deg,#e3e8ef,#d5dce6); display:flex; align-items:center; justify-content:center; color:var(--text-muted); font-size:26px; aspect-ratio:4/3; height:auto; }
.equip-card .ec-body { padding:11px 13px; }
.equip-card h5 { font-size:13px; font-weight:700; color:var(--navy); }
.equip-card p  { font-size:11px; color:var(--text-sub); line-height:1.5; }
/* 图片滑动卡 */
.equip-img-wrap { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e2e8f0; }
.equip-photo { width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:opacity .4s ease; }
.equip-info { padding:12px 14px; }
.equip-info h4 { font-size:13px; font-weight:700; color:var(--navy); margin-bottom:3px; }
.equip-info p  { font-size:11px; color:var(--text-sub); line-height:1.5; margin:0; }
/* 滑动按钮 */
.eq-prev,.eq-next { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,.38); color:#fff; border:none; border-radius:50%; width:28px; height:28px; font-size:16px; line-height:28px; text-align:center; cursor:pointer; opacity:0; transition:opacity .2s; padding:0; }
.eq-prev { left:6px; }
.eq-next { right:6px; }
.equip-img-wrap:hover .eq-prev,
.equip-img-wrap:hover .eq-next { opacity:1; }
/* dots */
.eq-dots { position:absolute; bottom:6px; left:50%; transform:translateX(-50%); display:flex; gap:5px; }
.eq-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.55); border:none; cursor:pointer; padding:0; transition:background .2s; }
.eq-dot.active { background:#fff; }

/* 证据墙 evidence */
.evidence { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:16px; margin-bottom:12px; border-left:4px solid var(--green); }
.evidence h5 { font-size:14px; font-weight:700; color:var(--navy); margin-bottom:6px; display:flex; align-items:center; gap:7px; }
.evidence p { font-size:var(--fs-body); color:var(--text-sub); line-height:1.7; }
.evidence ul { margin:6px 0 0 18px; }
.evidence li { font-size:var(--fs-body); color:var(--text-sub); line-height:1.7; }

/* 强调卡 emphasis */
.emph-card { background:linear-gradient(135deg,#0b1d33,#1565c0); color:#fff; border-radius:var(--radius); padding:22px; }
.emph-card h4 { font-size:17px; font-weight:800; color:var(--accent-light); margin-bottom:8px; }
.emph-card p { font-size:13px; color:rgba(255,255,255,0.82); line-height:1.85; }

/* value box (论证金句) */
.value-box { background:var(--bg-warm); border:1px solid rgba(255,143,0,0.25); border-radius:var(--radius); padding:18px 20px; margin-bottom:14px; }
.value-box p { font-size:var(--fs-body); color:var(--text-sub); line-height:1.9; }
.value-box p strong { color:var(--accent-dark); }

/* checklist */
.checklist { list-style:none; }
.checklist li { font-size:var(--fs-body); color:var(--text-sub); line-height:1.7; padding:7px 0 7px 28px; position:relative; border-bottom:1px solid var(--border); }
.checklist li::before { content:'✅'; position:absolute; left:0; top:7px; font-size:14px; }
.checklist li:last-child { border-bottom:none; }

/* ============================================================
   专业速览卡 / major grid (home)
   ============================================================ */
.major-list { display:flex; flex-direction:column; gap:12px; }
.major-row { display:block; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:16px; transition:var(--trans); }
.major-row:hover { border-color:var(--blue); box-shadow:var(--shadow-md); transform:translateY(-2px); }
.major-row .mr-head { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.major-row .mr-icon { font-size:26px; }
.major-row .mr-name { font-size:16px; font-weight:800; color:var(--navy); flex:1; }
.major-row .mr-arrow { color:var(--blue); font-size:14px; font-weight:700; }
.major-row .mr-dirs { display:flex; flex-direction:column; gap:5px; }
.major-row .mr-dir { font-size:14px; color:var(--text-sub); display:flex; align-items:center; gap:6px; }
.major-row .mr-dir::before { content:'·'; color:var(--blue); font-weight:700; }
.major-row .mr-note { font-size:13px; color:var(--text-sub); margin-top:8px; }
.dir-badge { font-size:10px; font-weight:600; padding:1px 7px; border-radius:4px; }

/* 特色班速览卡 (着陆页) */
.tese-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:18px; margin-bottom:12px; border-top:4px solid var(--accent); }
.tese-card h4 { font-size:16px; font-weight:800; color:var(--navy); margin-bottom:6px; }
.tese-card p { font-size:var(--fs-body); color:var(--text-sub); line-height:1.65; margin-bottom:10px; }

/* ============================================================
   CTA + download/share
   ============================================================ */
.cta-section { background: linear-gradient(135deg, var(--accent), #ff6f00); padding:42px var(--pad-x); text-align:center; }
.cta-section h2 { font-family:var(--font-serif); font-size:21px; font-weight:900; color:#fff; margin-bottom:8px; line-height:1.45; }
.cta-section p { font-size:13.5px; color:rgba(255,255,255,0.9); margin-bottom:22px; line-height:1.7; }
.cta-section .btn-light { box-shadow:0 4px 20px rgba(0,0,0,0.18); }
.cta-section.navy { background:linear-gradient(135deg,var(--navy),#183d6e); }
.cta-section.navy h2 { color:#fff; }
.cta-section.navy .btn-primary { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); }

.download-bar { background:var(--bg); padding:20px var(--pad-x); }
.download-bar h4 { font-size:14px; font-weight:700; color:var(--navy); margin-bottom:12px; text-align:center; }
.dl-grid { display:flex; flex-direction:column; gap:9px; }
.dl-btn { display:flex; align-items:center; gap:10px; background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 15px; font-size:13.5px; font-weight:600; color:var(--navy); cursor:pointer; transition:var(--trans); min-height:46px; }
.dl-btn:active { border-color:var(--blue); }
.dl-btn .dl-ic { font-size:18px; }
.dl-btn .dl-todo { margin-left:auto; font-size:10px; color:var(--text-muted); }

/* ============================================================
   固定底部行动栏 (mobile)
   ============================================================ */
.action-bar {
  position:fixed; bottom:0; left:0; right:0;
  width:100%; max-width:none; z-index:900;
  background:rgba(11,29,51,0.97); backdrop-filter:blur(10px);
  display:flex; border-top:1px solid rgba(255,255,255,0.1);
  box-shadow:0 -4px 20px rgba(0,0,0,0.2);
}
.action-bar a { flex:1; text-align:center; padding:11px 4px 9px; color:rgba(255,255,255,0.85); font-size:11px; font-weight:600; border-right:1px solid rgba(255,255,255,0.08); }
.action-bar a:last-child { border-right:none; }
.action-bar a .ab-ic { font-size:20px; display:block; margin-bottom:2px; }
.action-bar a.call { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { background:var(--navy); padding:36px var(--pad-x) 28px; color:rgba(255,255,255,0.5); font-size:12px; line-height:1.9; }
.footer-brand strong { color:rgba(255,255,255,0.85); font-size:14px; }
.footer-brand p { color:rgba(255,255,255,0.72); }
.footer-nav { display:flex; flex-wrap:wrap; gap:8px 16px; margin:16px 0; padding:16px 0; border-top:1px solid rgba(255,255,255,0.08); border-bottom:1px solid rgba(255,255,255,0.08); }
.footer-nav a { color:rgba(255,255,255,0.72); font-size:12px; }
.footer-nav a:active { color:var(--accent-light); }
.footer-bottom { text-align:center; font-size:10.5px; color:rgba(255,255,255,0.5); margin-top:12px; line-height:1.9; }
.footer-bottom a { color:rgba(255,255,255,0.62); white-space:nowrap; }
.footer-bottom a:hover, .footer-bottom a:active { color:var(--accent-light); }

/* ============================================================
   线索收集表单 / lead form (P1-8)
   ============================================================ */
.lead-form { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:18px 16px; box-shadow:var(--shadow-sm); }
.lf-row { margin-bottom:14px; }
.lf-row > label { display:block; font-size:14px; font-weight:600; color:var(--navy); margin-bottom:6px; }
.lf-row .req { color:var(--red); }
.lead-form input[type=text], .lead-form input[type=tel], .lead-form select, .lead-form textarea {
  width:100%; font-family:inherit; font-size:var(--fs-body); color:var(--text);
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:11px 12px; min-height:46px; -webkit-appearance:none; appearance:none;
}
.lead-form textarea { min-height:78px; resize:vertical; line-height:1.7; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { outline:none; border-color:var(--blue); background:var(--white); }
.lf-2col { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.lf-chips { display:flex; flex-wrap:wrap; gap:8px; }
.lf-chip { position:relative; }
.lf-chip input { position:absolute; opacity:0; pointer-events:none; }
.lf-chip span { display:inline-block; font-size:14px; color:var(--text-sub); background:var(--bg); border:1px solid var(--border); border-radius:100px; padding:8px 14px; cursor:pointer; min-height:40px; line-height:1.5; }
.lf-chip input:checked + span { background:var(--accent-glow); border-color:var(--accent); color:var(--accent-dark); font-weight:700; }
.lf-seg { display:flex; gap:8px; }
.lf-seg .lf-chip { flex:1; }
.lf-seg .lf-chip span { display:block; text-align:center; }
.lf-note { font-size:13px; color:var(--text-muted); line-height:1.6; margin-top:4px; }
.lf-submit { width:100%; }
.lf-consent { background:var(--bg-warm); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; }
.lf-consent-check { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.lf-consent-check input[type=checkbox] { flex:0 0 auto; width:20px; height:20px; min-height:20px; margin-top:2px; accent-color:var(--accent-dark); cursor:pointer; }
.lf-consent-check span { font-size:13px; line-height:1.7; color:var(--text-sub); }
.lf-consent-check a { color:var(--blue); font-weight:700; text-decoration:underline; }
.lf-ok { display:none; background:linear-gradient(135deg,#e8f5e9,var(--bg-warm)); border:1px solid rgba(22,163,74,0.3); border-radius:var(--radius); padding:18px; text-align:center; color:var(--green-dark); font-size:var(--fs-body); font-weight:600; line-height:1.7; }
.lf-ok.show { display:block; animation:accReveal .3s ease; }

/* hero 下方满屏图横幅：背景满屏、内容限宽 */
.bleed-pad { padding: 22px var(--pad-x) 0; background: var(--white); }

/* 就业/升学名单口径脚注 */
.tags-note { font-size:12px; color:var(--text-muted); margin-top:8px; line-height:1.6; }

/* ============================================================
   SCROLL REVEAL + back to top
   ============================================================ */
/* 默认可见：弱网/低端机/JS 未执行时不空白；仅当 main.js 接管(html.js-ready)后才先隐藏再渐显 */
.reveal { opacity:1; transform:none; transition: opacity .6s ease, transform .6s ease; }
html.js-ready .reveal { opacity:0; transform:translateY(22px); }
html.js-ready .reveal.visible { opacity:1; transform:none; }
.back-top { position:fixed; bottom:88px; right:16px; width:42px; height:42px; border-radius:50%; background:var(--navy); color:#fff; border:none; font-size:18px; cursor:pointer; opacity:0; pointer-events:none; transition:var(--trans); z-index:850; box-shadow:var(--shadow-md); }
.back-top.show { opacity:1; pointer-events:auto; }

/* ============================================================
   DESKTOP adaptation (secondary)
   ============================================================ */
@media (min-width:680px) {
  .page-wrap { padding-bottom:0; }
  .main-nav { position:static; display:flex !important; background:none; border:none; box-shadow:none; padding:0; gap:4px; }
  .main-nav > a, .nav-group > .nav-group-label { padding:8px 12px; border:none; font-size:14px; }
  .menu-toggle { display:none; }
  .nav-group { position:relative; }
  .nav-group .sub { display:none; position:absolute; top:100%; left:0; background:var(--navy); border-radius:8px; min-width:200px; box-shadow:var(--shadow-lg); padding:6px 0; }
  .nav-group:hover .sub { display:block; }
  .nav-group.open .sub { display:block; }
  .nav-group .sub a { padding:9px 16px; }
  .action-bar { display:none; }
  .back-top { right:24px; bottom:24px; }
  .hero h1, .hero-college { font-size:34px; }
  .hero-btns { flex-direction:row; justify-content:center; }
  .stats-grid.c4 { grid-template-columns:repeat(4,1fr); }
  .feat-grid { grid-template-columns:repeat(4,1fr); }
  .cmp-table { min-width:0; }
  .cmp-scroll { overflow:visible; }
  .job-grid { grid-template-columns:repeat(3,1fr); }
}

/* ============================================================
   宽屏增强（≥1024px）：内容限宽场景下的栅格与可读性
   ============================================================ */
@media (min-width:1024px) {
  .hero-content { max-width:760px; margin:0 auto; }
  .hero-stats { max-width:560px; margin-left:auto; margin-right:auto; }

  /* V22：原 V21 在此处的 section-desc/lead/timeline 宽度补丁已统一迁移到文件末尾
     “V22 LAYOUT STANDARD：招生页主内容栅格统一”，此处不再重复声明，避免补丁分散难维护。 */

  .hslider, .cmp-scroll { margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
  .major-list { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .equip-grid { grid-template-columns:repeat(4,1fr); }
  .unitree-cards { grid-template-columns:repeat(4,1fr); }
  .acc-body { display:grid; grid-template-columns:repeat(auto-fit, minmax(360px, 1fr)); gap:10px; align-items:start; }
  .acc-body .zy-card { margin-bottom:0; }
  .qa-card .qa-voice { font-size:15px; }
  .picker-tabs { max-width:640px; }
  .faq-q { font-size:15px; }
}

/* ============================================================
   FIX: 顶部 Logo 中文 + 英文排版优化
   目标：
   1. 中文学院名不换行
   2. 英文学院名不换行
   3. 两行之间保持舒适间距
   4. 不影响右侧菜单栏
   ============================================================ */

.logo {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
  min-width: max-content;
}

.logo-icon {
  flex: 0 0 auto;
}

.logo-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 0 auto;
  min-width: max-content;
}

.logo-text h1,
.logo-text p {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.logo-text h1 {
  margin: 0;
  font-size: 14px;
  line-height: 1.22;
  font-weight: 700;
}

.logo-text p {
  margin: 4px 0 0;
  font-size: 9.5px;
  line-height: 1.25;
  letter-spacing: 0.2px;
  opacity: 0.72;
}


.main-nav,
.main-nav > a,
.nav-group,
.nav-group > .nav-group-label,
.nav-group .sub a {
  white-space: nowrap;
  word-break: keep-all;
}

.main-nav > a,
.nav-group > .nav-group-label {
  flex-shrink: 0;
}

.nav-group .sub {
  width: max-content;
  min-width: max-content;
}

/* ============================================================
   V22 LAYOUT STANDARD：招生页主内容栅格统一
   （唯一权威规则，合并自 V21 两处重复的宽度补丁）
   目标：解决 section-desc / lead / timeline / 深度层 / 课程层
        与上下卡片、表格、标签、按钮左右边界不齐的问题。
   说明：仅作用于 ≥1024px 桌面端，移动端（单列）不受影响。
   维护原则：
   1. 招生官网默认不是长文阅读站，而是模块化招生页。
   2. .section 内的说明文字、路线图、提示条、深度层默认跟随主内容区
      （--content-max:1100px），与上下卡片/表格/标签/按钮同宽。
   3. 只有明确需要窄排的长文，才允许人工加 .copy-narrow，
      不要再回头修改 .section-desc / .lead / .timeline 的全局宽度规则。
   ============================================================ */

@media (min-width: 1024px) {
  /* 一、核心文本模块：必须与主内容区同宽 */
  .section > .section-desc,
  .section > .lead,
  .section > .timeline,
  .section > .deep-toggle,
  .section > .deep-toggle-wrap,
  .section > .deep-body,
  .section > .tags-note,
  .section > .highlight-strip,
  .section > [id$="-courses"],
  .section > .course-detail {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  /* 二、嵌套在深度层 / 课程层 / 手风琴体内部的正文，也不允许继承窄栏 */
  .deep-body .section-desc,
  .deep-body .lead,
  [id$="-courses"] .section-desc,
  [id$="-courses"] .lead,
  .course-detail .section-desc,
  .course-detail .lead,
  .acc-body .section-desc,
  .acc-body .lead {
    width: 100%;
    max-width: 100%;
  }

  /* 三、卡片式内容也要遵循主栅格，避免提示条比上下卡片短 */
  .section > .unitree-banner,
  .section > .quote-card,
  .section > .value-box,
  .section > .emph-card,
  .section > .lead-form,
  .section > .stats-banner {
    width: 100%;
    max-width: 100%;
  }
}

/* 只有明确设计为"文章阅读模式"的长文，才使用窄栏；招生页默认不要加这个类 */
.copy-narrow { max-width: 860px; }
.copy-narrow.center { margin-left: auto; margin-right: auto; }

/* Lab list (replaces equip-grid after photo removal) */
.lab-list { display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.lab-item { display:flex; align-items:baseline; gap:10px; padding:10px 14px; background:var(--bg); border-radius:8px; border-left:3px solid var(--blue); }
.lab-item strong { font-size:14px; font-weight:700; color:var(--text); white-space:nowrap; }
.lab-item span { font-size:13px; color:var(--text-muted); }
@media(min-width:640px){
  .lab-list { display:grid; grid-template-columns:repeat(2,1fr); }
}
