/* ===== 全站合并样式表（自动生成）：style.css + 各页 css，按原级联顺序拼接，冲突已按页面隔离 ===== */

/* ==================== 来源：style.css ==================== */


/* ---- 自托管思源宋体（pyftsubset 子集，仅标题/日期用字，woff2） ---- */
@font-face {
  font-family: "Noto Serif SC";
  src: url("fonts/NotoSerifSC-sub.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Noto Serif SC";
  src: url("fonts/NotoSerifSC-sub-bold.woff2") format("woff2");
  font-weight: 600 700; font-style: normal; font-display: swap;
}

:root {
  --blue: #2A66C8;
  --blue-dark: #2E5EAD;
  --blue-deep: #003F7E;
  --accent: #4F8CFF;
  --gold: #C9AA76;
  /* 仅作参考值：页脚底图为 images/under.png 位图，颜色不可改，周边色彩向其靠拢 */
  --footer: #1E5FAE;
  --ink: #1a1a1a;
  --ink-strong: #1F2933;
  --ink-2: #474747;
  --ink-3: #5B6B78; /* 正文浅灰下限，保证 4.5:1 对比度 */
  --line: #DCE5F2;
  --bg: #F2F6FB;
  --card: #fff;
  --shadow-1: 0 2px 8px rgba(15, 58, 110, .06);
  --shadow-2: 0 8px 20px rgba(15, 58, 110, .10);
  --shadow-3: 0 24px 48px rgba(15, 58, 110, .16);
  --radius: 10px;
  --font-serif: "Noto Serif SC", "Source Han Serif SC", "STZhongsong", "SimSun", serif;
  --container: 1200px;
  /* 单行导航条实际高度（hero 负 margin 依据），与渲染高度对齐 */
  --nav-h: 50px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
  /* 显式 16px：主页/子页的 .nh 新页头把根字号改为流式 rem 基准，
     若 body 不显式设定，未设字号的容器会继承超大根字号，
     行内块的"支柱"(strut)把卡片/悬浮窗撑出大面积空白 */
  font-size: 16px;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden; /* 满幅出血区块 + 水印词 nowrap 的横向保护 */
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.container { width: min(var(--container), 100% - 48px); margin: 0 auto; }

/* ===================== 头部：白底品牌行 + 半透明毛玻璃导航（叠压 hero 大图上缘） =====================
   .site-header 自身不带背景：毛玻璃导航背后必须透出 hero 大图；
   白底移至 .header-inner（品牌行区域）。 */
.site-header {
  position: relative; z-index: 100;
}
.header-inner { background: #fff; }
.brand-row {
  width: min(var(--container), 100% - 48px); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 0; gap: 32px;
}
.brand { display: flex; align-items: center; min-width: 0; }
.brand-logo { width: 64px; height: 64px; flex: none; }
.brand-logo.brand-banner { width: auto; height: 132px; max-width: 640px; }
@media (min-width: 1560px) {
  .brand-logo.brand-banner { height: 148px; max-width: 720px; }
}
/* logo 右侧：学院资质 2×2 徽标网格（星标 + 细竖线分隔，编辑风留白） */
.brand-honors {
  flex: none; list-style: none; margin-left: auto;
  display: grid; grid-template-columns: repeat(2, minmax(0, auto));
  gap: 14px 36px; align-items: center;
  border-left: 1px solid rgba(42, 102, 200, .28); padding-left: 30px;
}
.brand-honors li {
  display: flex; align-items: center; gap: 10px;
  font-size: 15px; font-weight: 600; letter-spacing: 1px; color: #1E4E9C; line-height: 1.5;
  white-space: nowrap;
}
.brand-honors svg { width: 15px; height: 15px; flex: none; fill: var(--gold); } /* 资质星标改香槟金角标 */

/* 汉堡按钮（≤992px 显示） */
.nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; padding: 8px; }
.nav-toggle span { display: block; height: 3px; border-radius: 2px; background: var(--blue); transition: transform .3s ease, opacity .3s ease; }
.nav-open .nav-toggle span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ===================== 导航色块条：单行导航 + 毛玻璃渐变，悬浮于 hero 之上 ===================== */
.nav-bar {
  background: linear-gradient(90deg, rgba(47, 109, 208, .42) 0%, rgba(74, 144, 232, .30) 100%);
  backdrop-filter: blur(6px) saturate(1.15);
  -webkit-backdrop-filter: blur(6px) saturate(1.15);
  box-shadow: 0 4px 14px rgba(0, 40, 70, .14);
  border-bottom: 2px solid rgba(201, 170, 118, .45); /* 底部细金线提气质 */
}
.nav-bar-inner {
  width: min(var(--container), 100% - 48px); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
}
nav {
  display: flex; align-items: center; flex-wrap: nowrap; gap: 26px;
  position: relative; min-width: 0;
}
nav > a, .nav-item > a {
  display: flex; flex-direction: row; align-items: center;
  padding: 15px 2px; font-size: 16px; font-weight: 600; letter-spacing: 1px;
  line-height: 1.25; color: rgba(255, 255, 255, .96); white-space: nowrap; position: relative;
  transition: color .2s ease;
  text-shadow: 0 1px 3px rgba(0, 40, 70, .38); /* 底色更透后保障白字可读性 */
}
/* 导航 hover 下划线：scaleX 生长动画（origin left，参考站同款 .4s） */
nav > a::after, .nav-item > a::after {
  content: ""; position: absolute; left: 2px; right: 2px; bottom: 10px; height: 3px;
  background: linear-gradient(90deg, #fff 0 78%, var(--gold) 78% 100%);
  border-radius: 2px; transform: scaleX(0); transform-origin: left center;
  transition: transform .4s ease;
}
nav > a:hover, .nav-item > a:hover { color: #fff; }
nav > a:hover::after, .nav-item > a:hover::after,
nav > a.active::after, .nav-item.active > a::after { transform: scaleX(1); }
nav > a.active, .nav-item.active > a { color: #fff; font-weight: 700; }
.nav-item { position: relative; }
.submenu {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(8px);
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-3);
  min-width: 132px; padding: 6px 0; opacity: 0; visibility: hidden;
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  z-index: 50;
}
.submenu::before { content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px; }
.nav-item:hover .submenu, .nav-item:focus-within .submenu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.submenu a { display: block; padding: 9px 20px; font-size: 14px; color: var(--ink-2); white-space: nowrap; transition: background .2s ease, color .2s ease, padding-left .2s ease; }
.submenu a:hover { background: #EAF1FB; color: var(--blue); padding-left: 26px; }

/* 色块条右侧：描边胶囊搜索框 */
.nav-bar .search-form {
  flex: none; display: flex; align-items: center;
  border: 1.5px solid rgba(255, 255, 255, .85); border-radius: 999px;
  background: rgba(255, 255, 255, .14); padding: 5px 6px 5px 18px;
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.nav-bar .search-form:hover, .nav-bar .search-form:focus-within {
  background: rgba(255, 255, 255, .22); border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .16);
}
.nav-bar .search-form input {
  border: 0; outline: 0; width: 130px; padding: 6px 8px 6px 0;
  font-size: 14px; color: #fff; background: transparent;
}
.nav-bar .search-form input::placeholder { color: rgba(255, 255, 255, .78); }
.nav-bar .search-trigger {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border: 0; border-radius: 50%; cursor: pointer;
  background: transparent; color: #fff; transition: background .25s ease;
}
.nav-bar .search-trigger svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.nav-bar .search-trigger:hover { background: rgba(255, 255, 255, .2); }

/* ===================== Hero ===================== */
.hero {
  position: relative; height: clamp(320px, 42vw, 600px); overflow: hidden; background: #0A2E5C;
  /* 上移到毛玻璃导航条之下，让导航透出大图（导航不吸顶，随页面滚动） */
  margin-top: calc(-1 * var(--nav-h));
}
.hero-track, .hero .slide { position: absolute; inset: 0; }
.hero .slide { opacity: 0; transition: opacity 1s ease; }
.hero .slide.on { opacity: 1; }
.hero .slide img { width: 100%; height: 100%; object-fit: cover; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 30, 66, .10) 0%, rgba(3, 30, 66, 0) 40%, rgba(3, 30, 66, .48) 100%); pointer-events: none; }
/* 编辑风标题字幕：衬线白字 + 左侧白色竖线，压在渐变遮罩上 */
.hero-caption {
  position: absolute; left: 40px; bottom: 64px; z-index: 4;
  color: #fff; font-family: var(--font-serif);
  font-size: 24px; font-weight: 600; letter-spacing: 3px; line-height: 1.4;
  padding-left: 16px; border-left: 4px solid #fff;
  text-shadow: 0 2px 10px rgba(0, 20, 40, .55);
}
/* 底部白色弧形过渡：消除"大图下切平"的生硬感，衔接白色氛围层 */
.hero-arc {
  position: absolute; left: 0; right: 0; bottom: -1px; height: 46px; z-index: 3;
  pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 46' preserveAspectRatio='none'%3E%3Cpath d='M0 46V28C280 6 560 2 820 8c260 6 460 12 620 8v30Z' fill='%23FFFFFF'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100%;
}
.hero-dots { position: absolute; right: 28px; bottom: 56px; display: flex; gap: 10px; z-index: 5; }
.hero-dots button { width: 11px; height: 11px; border-radius: 50%; border: 0; cursor: pointer; background: rgba(255, 255, 255, .55); transition: transform .25s ease, background .25s ease; }
.hero-dots button.on { background: #fff; transform: scale(1.25); }

/* ===================== 内容区：皇家蓝氛围层（径向光晕 + 顶部白渐变，淡色波纹已移除） ===================== */
.page-background {
  position: relative; z-index: 0; /* 建立层叠上下文：.edge-watermark 底纹层(z-index:-1)压在氛围层背景之上、卡片内容之下 */
  background:
    radial-gradient(960px 576px at 6% -2%, rgba(42, 102, 200, .07), transparent 62%),
    radial-gradient(864px 544px at 98% 104%, rgba(42, 102, 200, .05), transparent 60%),
    linear-gradient(180deg, #FFFFFF 0, #F2F6FB 480px);
  background-color: #F2F6FB;
}

.content-section { margin-top: 44px; }
.compact-section { margin-top: 36px; }

/* ---- 栏目头：衬线中文标题 + 右端渐隐细规则线 + 背后超大英文水印词 ---- */
.section-head {
  position: relative;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 20px; padding-bottom: 14px;
}
/* 英文水印词已按用户要求移除；规则线用 ::after */
.section-head::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, rgba(42, 102, 200, .40) 0%, rgba(42, 102, 200, .16) 45%, rgba(42, 102, 200, 0) 92%);
}
.section-head-text { min-width: 0; position: relative; z-index: 1; }
/* 「儒魂商才」书法底纹：放在「学院数据」栏目前的空白处，水平居中；
   字上边缘对齐上面栏目（会计之约）轮播图片下边缘，图层在栏目内容之下、底部色块背景之上 */
.data-section .kj-wm {
  position: absolute; top: -96px; left: 50%; transform: translateX(-50%);
  height: 216px; width: auto; max-width: none;
  opacity: .13; pointer-events: none; z-index: -1;
  user-select: none; -webkit-user-select: none;
}
.section-head h2 {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-serif);
  font-size: 24px; font-weight: 700; letter-spacing: 2px; line-height: 1.25;
  color: var(--ink-strong);
}
/* 标题左侧斜切蓝色绶带记号（平行四边形，底端一小段金色衔接） */
.section-head h2::before {
  content: ""; flex: none; width: 7px; height: 22px;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 72%, var(--gold) 72%, var(--gold) 100%);
  transform: skewX(-14deg); border-radius: 1px;
}
.more-link {
  flex: none; display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 14px; position: relative; z-index: 1;
  color: var(--blue); font-size: 13.5px; font-weight: 500;
  border: 1px solid rgba(42, 102, 200, .38); border-radius: 999px;
  background: rgba(42, 102, 200, .05);
  transition: color .2s ease, background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.more-link .more-arrow {
  width: 15px; height: 15px; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
  transition: transform .2s ease;
}
.more-link:hover {
  color: #fff; background: var(--blue); border-color: var(--blue);
  transform: translateX(3px); box-shadow: 0 6px 14px rgba(42, 102, 200, .28);
}
.more-link:hover .more-arrow { transform: translateX(4px); }

/* ---- 最新消息：左大图轮播 + 右侧卡片 ---- */
.news-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 24px; }
.news-feature { aspect-ratio: 16 / 10; }

/* 轮播通用（.rotating-image 由 script.js 填充） */
.rotating-image {
  position: relative; border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--line); box-shadow: var(--shadow-2); background: #0A2E5C;
}
.rotating-image .slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease; }
.rotating-image .slide.on { opacity: 1; }
.rotating-image .slide img { width: 100%; height: 100%; object-fit: cover; }
.rotating-image .slide::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(2, 22, 48, .72) 100%);
}
.slide-caption {
  position: absolute; left: 20px; right: 64px; bottom: 16px; z-index: 2; color: #fff;
}
.slide-caption h3 {
  font-size: 17px; font-weight: 600; line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  text-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}
.slide-caption time { font-size: 12px; opacity: .85; }
.rotating-image .dots { position: absolute; right: 14px; bottom: 14px; display: flex; gap: 8px; z-index: 3; }
.rotating-image .dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; cursor: pointer; background: rgba(255, 255, 255, .5); transition: background .25s ease, transform .25s ease; }
.rotating-image .dots button.on { background: #fff; transform: scale(1.2); }

/* 右侧新闻栏：四条紧凑行卡 —— 左侧品牌蓝日期方块 + 右侧标题，整体与左图轮播等高拉伸 */
.news-side { display: flex; flex-direction: column; gap: 14px; }
.news-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-1); padding: 12px 16px;
  display: flex; align-items: center; gap: 14px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.news-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: rgba(42, 102, 200, .30); }
.news-card h3 {
  flex: 1; min-width: 0; font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  /* hover 标题下划线滑入（underLine：background-size 0 → 100%） */
  background-image: linear-gradient(var(--gold), var(--gold));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: color .25s ease, background-size .35s ease;
}
.news-card:hover h3 { color: var(--blue); background-size: 100% 2px; }
/* 品牌蓝圆角日期块：白色大数字 + 年月小字 */
.news-date {
  flex: none; width: 56px; padding: 7px 0; text-align: center; border-radius: 8px;
  background: linear-gradient(160deg, #2E6BC9, #1D4E9B); color: #fff;
  box-shadow: inset 0 -3px 0 0 var(--gold); /* 日期块底部香槟金基线点缀 */
  transition: filter .2s ease;
}
.news-date b {
  display: block; font-family: var(--font-serif); font-size: 26px;
  font-weight: 700; line-height: 1.05; font-variant-numeric: tabular-nums;
}
.news-date small { display: block; font-size: 11px; color: rgba(255, 255, 255, .78); letter-spacing: .5px; margin-top: 2px; }
.news-card:hover .news-date { filter: brightness(1.08); }
.news-stack { display: flex; flex-direction: column; gap: 14px; flex: 1; }
.small-news { flex: 1; }

/* ---- 通知公告 ---- */
.notice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.notice-grid article {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  display: flex; align-items: center; gap: 14px; padding: 18px 20px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.notice-grid article:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: rgba(42, 102, 200, .30); }
.notice-grid article > span {
  flex: none; width: 68px; padding: 8px 0; text-align: center;
  border-radius: 8px; background: #EEF3FB;
  font-family: var(--font-serif); font-variant-numeric: tabular-nums;
  font-size: 34px; font-weight: 700; color: var(--blue); line-height: 1.1;
  box-shadow: inset 0 -3px 0 0 rgba(201, 170, 118, .55); /* 金色基线点缀 */
  transition: background-color .18s ease, color .18s ease;
}
.notice-grid article > span small { display: block; font-size: 12px; font-weight: 500; color: #64788C; letter-spacing: .5px; transition: color .18s ease; }
/* 日期块 hover 翻转：深蓝渐变底 + 金色年月（金/蓝组合） */
.notice-grid article:hover > span { background: linear-gradient(160deg, var(--blue-dark), var(--blue-deep)); color: #fff; }
.notice-grid article:hover > span small { color: var(--gold); }
.notice-grid article h3 {
  font-size: 14.5px; font-weight: 500; color: var(--ink-2); line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  /* hover 标题下划线滑入（underLine） */
  background-image: linear-gradient(var(--gold), var(--gold));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: color .25s ease, background-size .35s ease;
}
.notice-grid article:hover h3 { color: var(--blue); background-size: 100% 2px; }

/* ---- 通栏图文轮播：每栏四张，上图下文悬浮标题卡，底部圆点切换；两栏目上下排列 ---- */
.exchange-block { min-width: 0; }
.exchange-block + .exchange-block { margin-top: 64px; } /* 视觉间距 ≈48px，与其它栏目间距一致（轮播内部溢出会吃掉约 16px） */

/* ---- 湖波纹理区块：满幅出血，白→浅蓝干净渐变铺底（淡色波纹已移除） ---- */
.exchange-section {
  margin-top: 48px;
  margin-inline: calc(50% - 50vw);       /* 突破 .container，扩展到视口满幅 */
  padding: 64px max(24px, calc(50vw - var(--container) / 2)) 52px; /* 内容区随 --container 对齐（大屏加宽同步生效） */
  background: linear-gradient(180deg, #FFFFFF 0%, #EAF3FA 100%);
}
.card-carousel { position: relative; min-width: 0; }
.carousel-viewport {
  position: relative;
  overflow: hidden; padding: 6px 2px 16px; margin: -6px -2px -16px;
  cursor: grab; touch-action: pan-y;
  user-select: none; -webkit-user-select: none;
}
/* 左右箭头按钮：白色圆形浮于视口两侧，点击单格滚动 */
.carousel-arrow {
  position: absolute; top: 44%; transform: translateY(-50%); z-index: 6;
  width: 42px; height: 42px; border: 0; border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  background: #fff; color: var(--blue);
  box-shadow: 0 8px 20px rgba(6, 45, 90, .28);
  transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.carousel-arrow svg {
  width: 20px; height: 20px; fill: none; stroke: currentColor;
  stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round;
}
.carousel-arrow:hover { background: var(--blue); color: #fff; box-shadow: 0 10px 24px rgba(6, 45, 90, .36); }
/* 页签模式：已到首页/末页时对应箭头置灰禁用，不再响应 hover 与点击 */
.carousel-arrow:disabled { opacity: .32; cursor: default; pointer-events: none; box-shadow: 0 4px 12px rgba(6, 45, 90, .14); background: #fff; color: var(--blue); }
.carousel-arrow-prev { left: 4px; }
.carousel-arrow-next { right: 4px; }
.carousel-viewport.dragging { cursor: grabbing; }
.carousel-card img { -webkit-user-drag: none; }
.carousel-track { display: flex; gap: 16px; transition: transform .45s ease; }
/* 卡片仿 SUFE 师生风采：上图下文，白色标题卡悬浮压住图片下缘 */
.carousel-card {
  position: relative;
  flex: 0 0 calc(25% - 12px); min-width: 0; cursor: pointer;
}
.carousel-card .card-img {
  aspect-ratio: 4 / 3; overflow: hidden; background: #0A2E5C;
  border-radius: var(--radius);
  box-shadow: 0 18px 36px rgba(6, 45, 90, .28);
  transition: transform .2s ease, box-shadow .2s ease;
}
.carousel-card .card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.carousel-card:hover .card-img { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(6, 45, 90, .34); }
.carousel-card:hover .card-img img { transform: scale(1.06); }
/* 标题承载盒：承担固定高 96px + 垂直居中，使同排卡片等高、1/2/3 行均居中；
   文字截断交给内层 h3。关键——把「定高/居中」与「line-clamp:3」拆到两层：
   若二者同置一个元素，Chromium 会把被截断的第 4 行漏进纵向 padding、在卡底
   露出一截（露字），3 行截断形同虚设（1000/1200px 下实测复现）。 */
.card-title {
  position: relative; z-index: 2;
  width: 86%; height: 96px; margin: -44px auto 0;
  background: var(--card);
  border-radius: 10px;
  box-shadow: 0 12px 26px rgba(6, 45, 90, .22);
  display: flex; align-items: center; justify-content: center;
  transition: color .25s ease;
}
.carousel-card h3 {
  width: 100%; padding: 0 16px;
  font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.55; text-align: center;
  /* 固定三行截断：1/2/3 行均垂直居中，超出省略号；此处不得设纵向 padding/定高，否则截断失效 */
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-box-pack: center;
  -webkit-line-clamp: 3; overflow: hidden;
  transition: color .25s ease;
}
.carousel-card:hover h3 { color: var(--blue); }

/* ---- 我的支部我的家：图片内叠字卡片（与会计之约的白色悬浮题卡差异化）----
   作用于 .exchange-block:first-child，不影响会计之约的悬浮题卡；
   图片底部加深蓝渐变 scrim（上透下深，#003F7E/#0A2E5C 系），
   衬线白字直接压在图上；hover 图片轻微放大 + scrim 加深，不再上浮 */
.exchange-block:first-child .card-img { position: relative; }
.exchange-block:first-child .card-img::before,
.exchange-block:first-child .card-img::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
}
/* 常态 scrim：上透下深（3 行标题时上抬渐深位置，保障衬线白字可读） */
.exchange-block:first-child .card-img::after {
  background: linear-gradient(180deg, rgba(10, 46, 92, 0) 22%, rgba(0, 63, 126, .55) 54%, rgba(10, 46, 92, .90) 100%);
}
/* hover 加深层：以 opacity 过渡实现 scrim 平滑加深 */
.exchange-block:first-child .card-img::before {
  background: linear-gradient(180deg, rgba(0, 24, 52, 0) 14%, rgba(0, 40, 84, .62) 50%, rgba(3, 24, 52, .96) 100%);
  opacity: 0; transition: opacity .35s ease;
}
.exchange-block:first-child .carousel-card:hover .card-img::before { opacity: 1; }
/* 本区块不使用白色承载盒：display:contents 让承载盒不生成盒子，
   h3 的布局/绝对定位与此前完全一致（不影响叠字卡既有观感） */
.exchange-block:first-child .card-title { display: contents; }
/* 叠字标题：衬线白字压图，取消白色悬浮题卡的负 margin 浮卡布局（仅本区块）
   padding-top 预留 scrim 渐变空间；高度 auto，最多 3 行（line-clamp 继承自通用规则），底对齐 */
.exchange-block:first-child .carousel-card h3 {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  width: 100%; height: auto; margin: 0; padding: 46px 16px 14px;
  background: none; border-radius: 0; box-shadow: none;
  color: #fff; font-family: var(--font-serif); font-size: 15px;
  text-align: left; text-shadow: 0 1px 6px rgba(0, 20, 44, .55);
}
/* hover 仅保留图片放大 + scrim 加深，取消上浮位移与阴影增强 */
.exchange-block:first-child .carousel-card:hover .card-img {
  transform: none; box-shadow: 0 18px 36px rgba(6, 45, 90, .28);
}
/* 底部圆点分页：点数随可视张数变化（与左右箭头并存） */
.carousel-dots { display: flex; justify-content: center; gap: 10px; margin-top: 30px; }
.carousel-dots button {
  width: 10px; height: 10px; border-radius: 50%; border: 0; cursor: pointer;
  background: rgba(42, 102, 200, .25);
  transition: background .25s ease, transform .25s ease;
}
.carousel-dots button:hover { background: rgba(42, 102, 200, .45); }
.carousel-dots button.on { background: var(--blue); transform: scale(1.25); }
/* 我的支部我的家 / 会计之约 栏目：隐藏轮播圆点（左右箭头与其它交互不变，JS 逻辑保持运行） */
.exchange-section .carousel-dots { display: none; }

/* ---- 会计之约分组页签：标题下衬线蓝字页签，选中下划线；面板切换淡入上移动动画 ----
   区块背景已换为干净渐变，页签去掉半透明白底与 backdrop-filter，
   改为透明底 + 香槟金选中线，视觉更利落 */
.kj-tabs { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: -4px 0 22px; }
.kj-tabs button {
  position: relative; padding: 5px 14px 9px; border: 0; border-radius: 9px; cursor: pointer;
  color: rgba(31, 41, 51, .60);
  font-family: var(--font-serif); font-size: 17px; font-weight: 600; letter-spacing: 2px;
  background: transparent;
  transition: color .25s ease, background .25s ease;
}
.kj-tabs button::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 5px; height: 2px;
  /* 页签选中下划线：香槟金（SUFE 标志性点缀） */
  background: var(--gold); transform: scaleX(0); transform-origin: left center;
  transition: transform .3s ease;
}
.kj-tabs button:hover { color: var(--blue); background: rgba(42, 102, 200, .07); }
.kj-tabs button.on { color: var(--blue-deep); background: rgba(42, 102, 200, .09); }
.kj-tabs button.on::after { transform: scaleX(1); }
.kj-panel { display: none; }
.kj-panel.on { display: block; animation: tabSwap .55s ease; }
@keyframes tabSwap {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}

/* ===================== 学院数据：满幅浅蓝数据条（置于会计之约之后、页脚之前） =====================
   对齐上财「DATA 学院数据」大数字条：满幅浅蓝渐变 + 极淡波纹纹理；
   数字大号衬线/加粗皇家蓝（"+" 等点缀用香槟金），标签小号灰字；
   无英文水印词、无「更多」链接、无英文小标题。 */
.data-section {
  position: relative; z-index: 0; /* 建立层叠上下文：.kj-wm 底纹压在色块背景之上、数据内容之下 */
  margin-top: 44px;
  margin-inline: calc(50% - 50vw);        /* 满幅出血，与页面氛围层协调 */
  padding: 56px max(24px, calc(50vw - var(--container) / 2)) 60px;
  background: linear-gradient(180deg, #EAF3FA 0%, #DCE9F7 100%);
}
/* 居中中文小标题：衬线 + 左侧蓝金斜切记号 + 两侧渐隐细线（克制，不使用英文水印） */
.data-head {
  display: flex; align-items: center; justify-content: center; gap: 18px;
  max-width: var(--container); margin: 0 auto 36px;
}
.data-head::before, .data-head::after {
  content: ""; height: 1px; flex: 0 1 clamp(28px, 8vw, 140px);
}
.data-head::before { background: linear-gradient(90deg, rgba(42, 102, 200, 0), rgba(42, 102, 200, .42)); }
.data-head::after { background: linear-gradient(90deg, rgba(42, 102, 200, .42), rgba(42, 102, 200, 0)); }
.data-head h2 {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-serif); font-size: 22px; font-weight: 700;
  letter-spacing: 3px; color: var(--ink-strong); white-space: nowrap;
}
.data-head h2::before {
  content: ""; flex: none; width: 7px; height: 20px;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 72%, var(--gold) 72%, var(--gold) 100%);
  transform: skewX(-14deg); border-radius: 1px;
}
/* 数据横滑：宽屏一屏 5 项，超出可左右拖动 / 点两侧箭头逐格滚动（无自动滚动） */
.data-wrap {
  position: relative;
  max-width: var(--container); margin: 0 auto;
}
.data-scroller {
  overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
  scroll-snap-type: x mandatory;
  margin: 0 64px;                        /* 两侧为箭头预留空间 */
  cursor: grab;
}
.data-scroller::-webkit-scrollbar { display: none; }
.data-scroller.dragging { cursor: grabbing; scroll-snap-type: none; }
.data-inner {
  display: flex; gap: clamp(20px, 3vw, 44px);
  text-align: center;
}
.data-item {
  flex: 0 0 calc((100% - 4 * clamp(20px, 3vw, 44px)) / 5);
  scroll-snap-align: start;
  transition: transform .25s ease;
}
/* 「4 国家级一流本科课程」文案最长：仅该项微调 +22px（滚动容器内，不影响其它列），
   让括号行"审计学"三字不被折到两行（2026-09-30 客户要求） */
.data-item-wide { flex-basis: calc((100% - 4 * clamp(20px, 3vw, 44px)) / 5 + 46px); }
/* 两侧极简线条箭头：颜色与数字同色系（皇家蓝） */
.data-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 46px; height: 64px; padding: 0;
  background: none; border: 0; cursor: pointer;
  color: var(--blue);
  transition: opacity .2s ease, transform .2s ease;
}
.data-arrow svg {
  width: 100%; height: 100%; fill: none;
  stroke: currentColor; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
}
.data-arrow:hover:not(:disabled) { transform: translateY(-50%) scale(1.14); }
.data-arrow:disabled { opacity: .22; cursor: default; }
.data-prev { left: 0; }
.data-next { right: 0; }
.data-item { transition: transform .25s ease; }
.data-item:hover { transform: translateY(-4px); }
/* 大号数字：衬线加粗皇家蓝，数字用等宽数字对齐；金色点缀（+ 号）
   nowrap 确保「5.6万」与其后的金色「+」始终同行、不折行、整行齐平 */
.data-num {
  font-family: var(--font-serif); font-size: 56px; font-weight: 700;
  line-height: 1.05; letter-spacing: 1px; color: var(--blue);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transition: color .25s ease;
}
.data-num .data-plus { color: var(--gold); font-size: .66em; vertical-align: .06em; margin-left: 1px; }
.data-item:hover .data-num { color: var(--blue-deep); }
/* 标签：小号灰字 */
.data-label {
  margin-top: 12px; font-size: 13.5px; line-height: 1.7; color: var(--ink-3);
}

/* ===================== 校训底纹：竖排书法四字
   左列 厚德/博学、右列 笃行/鼎新，只在「最新消息/通知公告」两栏旁出现一遍；
   随页面滚动（.page-background 内绝对定位，不进轮播大图；页脚背景图在其上层覆盖），
   横向位于栏目边缘与页边之间的居中位置；窄屏隐藏 ===================== */
.edge-watermark { position: absolute; inset: 0; z-index: 1; /* 在栏目背景色块之上；字宽自适应收窄保证永不压到栏目内容 */ pointer-events: none; overflow: hidden; }
.edge-watermark .ew {
  position: absolute; height: auto; opacity: .07;
  /* 与栏目同比例缩放：基准为容器宽度的 17.1%（在 9.5% 基础上放大 80%）；
     三重上限取最小：① 栏目外侧留白（留 8px，不被栏目遮挡）
     ② 纵向空间上限 175px（两字各 ≤400px 高，低缩放比例下也不会上下重叠） */
  width: min(calc(var(--container) * 0.171), calc((100vw - var(--container)) / 2 - 8px), 175px);
}
/* 左列：右缘紧贴栏目左边缘外 16px（translateX 锚定右缘，不受字宽影响） */
.edge-watermark [class*="ew-l"] { left: calc((100vw - var(--container)) / 2 - 16px); transform: translateX(-100%); }
/* 右列：左缘紧贴栏目右边缘外 16px */
.edge-watermark [class*="ew-r"] { left: calc((100vw + var(--container)) / 2 + 16px); }
/* 第一行（厚德/笃行）顶端对齐「最新消息」栏目图片顶端（实测 68px）；
   第二行（博学/鼎新）底端对齐「通知公告」栏目底边（实测 888px，不超过下方色块区） */
.edge-watermark .ew-l1, .edge-watermark .ew-r1 { top: 66px; }
.edge-watermark .ew-l2 { top: 888px; transform: translate(-100%, -100%); }
.edge-watermark .ew-r2 { top: 888px; transform: translateY(-100%); }
@media (max-width: 1340px) {
  .edge-watermark { display: none; }
}

@media (max-width: 992px) {
  .data-section .kj-wm { display: none; }
}

/* ===================== 页脚：under.png 波浪色块置于页底，页脚信息含于色块内 ===================== */
footer {
  position: relative; z-index: 2; /* 压在 .edge-watermark 校训底纹层之上，页脚内不出现底纹字 */
  color: #fff; margin-top: 44px;
  background: url('images/under.png') no-repeat center bottom / 100% 100%;
  text-shadow: 0 1px 5px rgba(0, 50, 90, .5);
}
.footer-inner {
  position: relative; z-index: 1;
  /* 页脚比正文容器略宽（1480 > --container 1400）：联系我们左移、二维码右移，三板块横向展开对齐 */
  width: min(1480px, 100% - 48px); margin: 0 auto;
  /* 联系我们固定 440px：保证「办公室…（党务）」「团委…（辅导员）」两行不换行；快速链接弹性居中；二维码贴右缘 */
  display: grid; grid-template-columns: minmax(440px, auto) minmax(0, 1fr) auto; gap: 36px;
  padding: 96px 0 22px; align-items: start;
}
.footer-contact h3, .footer-links h3 {
  font-size: 15.5px; font-weight: 600; margin-bottom: 10px; padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, .28);
}
.footer-contact p { font-size: 12.5px; line-height: 1.9; color: rgba(255, 255, 255, .92); }
/* 快速链接：与联系我们之间以竖线分隔成两大块，块内再分左右两列校内/校外；
   行距收紧，使链接块高度不超过联系我们块，页脚整体高度不变 */
.footer-links { border-left: 1px solid rgba(255, 255, 255, .28); padding-left: 36px; }
.link-cols { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px 44px; } /* 校内/校外两组间距固定 44px（原宽屏下约 87px，减半） */
.link-group h4 {
  font-size: 12.5px; font-weight: 600; letter-spacing: 2px;
  color: rgba(255, 255, 255, .78); margin-bottom: 8px;
  padding-left: 9px; border-left: 3px solid var(--gold); /* 页脚分组标题金色角标 */
}
.links { display: grid; justify-content: start; justify-items: start; gap: 8px 12px; }
.links-2col { grid-template-columns: repeat(2, auto); }
.links-3col { grid-template-columns: repeat(3, auto); }
.links a {
  display: inline-block; font-size: 12.5px; color: rgba(255, 255, 255, .92);
  border: 1px solid rgba(255, 255, 255, .38); border-radius: 999px;
  padding: 4px 13px; white-space: nowrap;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.links a:hover { background: #fff; color: var(--blue-deep); border-color: #fff; }
.qr { display: flex; align-items: center; gap: 18px; }
.qr-code { text-align: center; flex: none; }
.qr img { width: 100px; height: 100px; border-radius: 8px; background: #fff; padding: 6px; }
.qr small { display: block; margin-top: 10px; font-size: 12px; color: rgba(255, 255, 255, .85); }
/* 返回顶部：页脚二维码右侧的圆形白底按钮（仅主页） */
.to-top {
  flex: none; margin: 0;
  width: 66px; height: 66px; border: 0; border-radius: 50%; cursor: pointer;
  background: #fff; color: var(--blue);
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  font-size: 13px; font-weight: 700; letter-spacing: 1px;
  box-shadow: 0 6px 16px rgba(0, 40, 70, .28);
  transition: transform .25s ease, box-shadow .25s ease;
}
.to-top:hover { transform: translateY(-4px); box-shadow: 0 10px 22px rgba(0, 40, 70, .34); }
.to-top svg {
  width: 20px; height: 20px; fill: none; stroke: currentColor;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}
.copyright { position: relative; z-index: 1; text-align: center; font-size: 12px; color: rgba(255, 255, 255, .85); padding: 10px 16px 14px; }

/* ===================== 滚动渐入（含栏目头错峰） ===================== */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
.section-head.reveal { transition-delay: 60ms; }
.notice-section .section-head.reveal { transition-delay: 120ms; }
.exchange-block .section-head.reveal { transition-delay: 180ms; }
.exchange-block + .exchange-block .section-head.reveal { transition-delay: 240ms; }

/* ===================== 响应式 ===================== */
@media (max-width: 1200px) {
  nav { gap: 16px; }
  nav > a, .nav-item > a { padding: 14px 2px; font-size: 15px; letter-spacing: .5px; }
  .nav-bar .search-form { padding-left: 14px; }
  .nav-bar .search-form input { width: 96px; }
  .brand-logo.brand-banner { height: 104px; max-width: 520px; }
}

@media (max-width: 992px) {
  .brand-logo.brand-banner { height: 78px; max-width: 380px; }
  .nav-toggle { display: flex; }
  .nav-bar { display: none; }
  /* 汉堡展开时导航面板改回近实底：毛玻璃在展开菜单上无法保证可读性 */
  .nav-open .nav-bar {
    display: block;
    background: rgba(10, 46, 92, .96);
    backdrop-filter: none; -webkit-backdrop-filter: none;
    box-shadow: 0 12px 28px rgba(0, 40, 70, .28);
  }
  .nav-bar-inner { flex-direction: column; align-items: stretch; gap: 12px; padding: 8px 0 16px; }
  nav {
    flex-direction: column; align-items: stretch; gap: 0;
    width: 100%; max-height: 60vh; overflow-y: auto;
  }
  nav > a, .nav-item > a { padding: 13px 6px; font-size: 16px; letter-spacing: 1px; }
  .exchange-section { padding-top: 44px; padding-bottom: 40px; }
  .carousel-card { flex-basis: calc(50% - 8px); }
  /* 学院数据：992 以下每屏 3 项，横向滚动 */
  .data-section { padding-top: 44px; padding-bottom: 46px; }
  .data-scroller { margin: 0 48px; }
  .data-item { flex-basis: calc((100% - 2 * clamp(20px, 3vw, 44px)) / 3); }
  nav > a::after, .nav-item > a::after { display: none; }
  .submenu {
    position: static; transform: none; opacity: 1; visibility: visible;
    box-shadow: none; background: rgba(255, 255, 255, .14); min-width: 0;
    border: 0; border-radius: var(--radius); padding: 4px 0; margin: 2px 0 6px;
  }
  .submenu::before { display: none; }
  .submenu a { color: rgba(255, 255, 255, .88); padding: 10px 16px 10px 24px; }
  .submenu a:hover { background: rgba(255, 255, 255, .16); color: #fff; padding-left: 30px; }
  .nav-bar .search-form { align-self: flex-start; }
  .news-grid { grid-template-columns: 1fr; }
  .brand-honors { padding-left: 16px; }
  .brand-honors li { font-size: 13px; letter-spacing: 1px; }
  .news-stack { display: grid; grid-template-columns: repeat(2, 1fr); }
  .notice-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .qr { grid-column: 1 / -1; justify-self: center; }
  .links-3col { grid-template-columns: repeat(2, auto); }
}

/* 1440 及以下：快速链接三组改两列，避免联系我们加宽后挤压溢出 */
@media (max-width: 1440px) {
  .links-3col { grid-template-columns: repeat(2, auto); }
}

/* 1200 及以下：页脚改两列（联系我们列固定 440px 会挤压快速链接，提前折叠） */
@media (max-width: 1200px) {
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .qr { grid-column: 1 / -1; justify-self: center; }
  .links-3col { grid-template-columns: repeat(2, auto); }
}

@media (max-width: 640px) {
  .container, .brand-row, .nav-bar-inner { width: min(100% - 32px, var(--container)); }
  .footer-inner { width: min(100% - 32px, 1480px); }
  .brand-logo.brand-banner { height: 56px; max-width: 100%; }
  .brand-honors { display: none; }
  .hero { height: 240px; }
  .hero-arc { height: 30px; }
  .hero-caption {
    left: 16px; bottom: 42px;
    font-size: 16px; letter-spacing: 1.5px;
    padding-left: 10px; border-left-width: 3px;
  }
  .hero-dots { right: 16px; bottom: 40px; }
  .kj-tabs { gap: 8px 26px; margin-bottom: 16px; }
  .kj-tabs button { font-size: 15px; letter-spacing: 1.5px; }
  .notice-grid article > span { font-size: 28px; width: 60px; }
  .section-head h2 { font-size: 20px; letter-spacing: 1.5px; }
  .section-head { padding-bottom: 10px; margin-bottom: 16px; }
  .content-section { margin-top: 30px; }
  .news-stack { grid-template-columns: 1fr; }
  .notice-grid { grid-template-columns: 1fr; }
  .carousel-card { flex-basis: 100%; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; }
  .footer-links { border-left: 0; padding-left: 0; }
  .link-cols { grid-template-columns: 1fr; gap: 18px; }
  .slide-caption { left: 14px; right: 44px; bottom: 12px; }
  .slide-caption h3 { font-size: 15px; }
  /* 学院数据：640 起每屏 2 项，数字缩小，箭头收小 */
  .data-section { padding-top: 34px; padding-bottom: 38px; }
  .data-head { margin-bottom: 26px; }
  .data-head::before, .data-head::after { flex-basis: clamp(18px, 12vw, 60px); }
  .data-head h2 { font-size: 19px; letter-spacing: 2px; }
  .data-scroller { margin: 0 38px; }
  .data-arrow { width: 32px; height: 46px; }
  .data-item { flex-basis: calc((100% - clamp(20px, 3vw, 44px)) / 2); }
  .data-num { font-size: 42px; }
  .data-label { font-size: 12.5px; }
}

/* 学院数据 5 列窄档（993–1120px）：容器刚过 992 进入 5 列，每列仅约 165–190px，
   「5.6万+」在 56px 下会折行/溢出 → 本档数字缩为 48px，配合 .data-num:nowrap，
   保证「+」始终与数字同行、5 项等高齐平（≤992 为 3 列/≤640 为 2 列，单列更宽无需缩小） */
@media (min-width: 993px) and (max-width: 1120px) {
  .data-num { font-size: 48px; }
}

/* ===================== 大屏适度加宽（不做全宽） =====================
   仅提升 --container 变量：≥1440 视口 1320px，≥1680 视口 1400px（上限）；
   1200px 基准不变，避免逐处改宽度破坏既有布局。
   （刻意不做 1920 全宽：正文行宽过长可读性下降，hero 素材按 1200 宽度设计，
    拉伸过宽会失焦；8 张图单卡因此由约 276px 增至约 305/325px，接近参考站比例。）
   .exchange-section / .data-section 的 padding 已用 var(--container) 计算，自动对齐。 */
@media (min-width: 1440px) {
  :root { --container: 1320px; }
}
@media (min-width: 1680px) {
  :root { --container: 1400px; }
}

/* 尊重系统减弱动效设置 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .reveal { opacity: 1; transform: none; transition-delay: 0s !important; }
}

/* ============================================================
   首页新版页头 + 头图轮播（.nh 作用域，仅主页使用；
   1920 基准 rem 流体缩放：html.home-nh 根字号 = 100vw/19.2，
   ≤768px 时 = 100vw/7.5。全站其它页面/区块均为 px，不受影响）
   ============================================================ */
html.home-nh { font-size: calc(100vw / 19.2); }
@media (max-width: 768px) {
  html.home-nh { font-size: calc(100vw / 7.5); }
}

/* ---- 页头：透明覆盖在头图上，滚动后变白底 ---- */
.nh .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; transition: background .35s ease, box-shadow .35s ease; }
.nh .hwrap { width: 16.4rem; margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-start; }
/* LOGO 左移、右侧导航整体（菜单+搜索框+学校主页）右移各一个字宽（.2rem），
   加大 LOGO 与「首页」之间的间距，其余相对位置不变 */
.nh .logo { display: block; margin-top: .3rem; margin-left: -.2rem; }
.nh .logo img { width: 5.65rem; display: block; }
.nh .logo .logo-c { display: none; }
.nh .hright { display: flex; flex-direction: column; align-items: flex-end; margin-right: -.2rem; }
.nh .htop { display: flex; align-items: center; gap: .18rem; padding-top: .36rem; }
.nh .hsearch { display: flex; align-items: center; width: 3.97rem; height: .42rem; background: rgba(255,255,255,.94); border: 1px solid #DADADA; border-radius: .3rem; overflow: hidden; }
.nh .hsearch input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: none; padding: 0 .2rem; font-size: .13rem; color: #727272; font-family: inherit; }
.nh .hsearch input::placeholder { color: #9AA3B2; }
.nh .hsearch button { width: .46rem; height: 100%; border: 0; background: none; color: #6B7690; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.nh .hsearch button svg { width: .19rem; height: .19rem; }
.nh .hsearch svg, .nh .home-pill svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nh .home-pill { display: inline-flex; align-items: center; gap: .08rem; height: .42rem; padding: 0 .2rem; background: #fff; border-radius: .3rem; font-size: .18rem; color: #444; white-space: nowrap; }
.nh .home-pill svg { width: .17rem; height: .17rem; color: #2A66C8; }
.nh .home-pill:hover { background: var(--blue); color: #fff; }
.nh .home-pill:hover svg { color: #fff; }
.nh .nav-toggle { display: none; }

.nh .main-nav { display: block; margin-top: .08rem; }
.nh .main-nav ul { list-style: none; }
.nh .main-nav > ul { display: flex; }
.nh .main-nav > ul > li { position: relative; }
.nh .main-nav > ul > li > a { display: block; padding: .14rem .17rem .43rem; font-size: .2rem; line-height: .3rem; font-weight: 700; color: #fff; white-space: nowrap; position: relative; transition: color .3s; text-shadow: none; }
.nh .main-nav > ul > li > a::after { content: ""; position: absolute; left: 50%; bottom: .32rem; width: 0; height: .05rem; background: var(--blue); border-radius: .03rem; transform: translateX(-50%); transition: width .3s; }
.nh .main-nav > ul > li:hover > a::after { width: .5rem; }
.nh .main-nav .sub { position: absolute; left: 50%; top: 100%; min-width: 100%; background: #fff; box-shadow: 0 .12rem .3rem rgba(13,44,94,.16); border-radius: 0 0 .08rem .08rem; opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(.1rem); transition: all .3s; z-index: 20; }
.nh .main-nav > ul > li:hover .sub { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.nh .main-nav .sub a { display: block; padding: 0 .2rem; line-height: .49rem; font-size: .18rem; color: #444; text-align: center; white-space: nowrap; border-bottom: 1px solid #D9D9D9; }
.nh .main-nav .sub li:last-child a { border-bottom: 0; }
.nh .main-nav .sub a:hover { color: var(--blue); }
.nh .site-header.scrolled { background: rgba(255,255,255,.94); box-shadow: 0 .06rem .2rem rgba(13,44,94,.08); }
.nh .site-header.scrolled .logo .logo-w { display: none; }
.nh .site-header.scrolled .logo .logo-c { display: block; }
.nh .site-header.scrolled .main-nav > ul > li > a { color: #444; }
.nh .site-header.scrolled .main-nav > ul > li:hover > a { color: var(--blue); }
.nh .site-header.scrolled .home-pill { border: 1px solid #DADADA; color: #444; }
.nh .site-header.scrolled .home-pill:hover { background: var(--blue); border-color: var(--blue); color: #fff; }

/* ---- 头图轮播 ---- */
.nh .hero { position: relative; height: 8.26rem; margin: 0; border-bottom: .05rem solid var(--blue); overflow: hidden; background: #0B1F3E; }
.nh .hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; z-index: 0; }
.nh .hero-slide.on { opacity: 1; z-index: 1; }
.nh .hero-slide a { display: block; height: 100%; }
.nh .hero-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nh .hero-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,22,50,.5), rgba(6,22,50,.16) 28%, rgba(6,22,50,0) 50%, rgba(5,18,42,.44)); pointer-events: none; }
.nh .hero-dots { position: absolute; left: 0; right: 0; bottom: .44rem; display: flex; justify-content: center; align-items: center; gap: .18rem; z-index: 6; }
.nh .hero-dots span { width: .11rem; height: .11rem; background: rgba(255,255,255,.5); transform: rotate(45deg); transition: all .3s; cursor: pointer; }
.nh .hero-dots span.on { width: .15rem; height: .15rem; background: #fff; box-shadow: 0 0 .12rem rgba(255,255,255,.65); }

/* ---- 子页静态横幅：与主页同位置，高度减半，固定显示 1.jpg 顶部一半（无轮播） ---- */
.nh .hero.hero-static { height: 4.13rem; }
.nh .hero.hero-static img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 静态横幅保留与轮播一致的上下渐变压暗，保证页头白字可读 */
.nh .hero.hero-static::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,22,50,.5), rgba(6,22,50,.16) 28%, rgba(6,22,50,0) 50%, rgba(5,18,42,.44)); pointer-events: none; }

/* ---- 平板 ---- */
@media (max-width: 1200px) {
  .nh .hsearch { width: 3rem; }
  .nh .logo img { width: 4.8rem; }
  .nh .main-nav > ul > li > a { padding: .14rem .12rem .42rem; }
}

/* ---- 手机 ---- */
@media (max-width: 768px) {
  .nh .hwrap { width: auto; padding: 0 .3rem; }
  .nh .logo { margin-top: .22rem; margin-left: 0; }
  .nh .hright { margin-right: 0; }
  .nh .logo img { width: 3.6rem; }
  .nh .htop { padding-top: .24rem; gap: .14rem; }
  .nh .hsearch { display: none; }
  .nh .home-pill { height: .36rem; padding: 0 .16rem; font-size: .14rem; }
  .nh .nav-toggle { display: flex; flex-direction: column; justify-content: center; gap: .05rem; width: .36rem; height: .36rem; padding: 0; background: none; border: 0; align-items: center; }
  .nh .nav-toggle span { display: block; width: .22rem; height: 2px; background: #fff; border-radius: 1px; transition: all .3s; }
  .nh .site-header.scrolled .nav-toggle span, .nh .site-header.nav-open .nav-toggle span { background: #1B3564; }
  .nh .site-header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(.07rem) rotate(45deg); }
  .nh .site-header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  .nh .site-header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-.07rem) rotate(-45deg); }
  .nh .main-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; box-shadow: 0 .16rem .3rem rgba(13,44,94,.18); max-height: 70vh; overflow-y: auto; }
  .nh .site-header.nav-open .main-nav { display: block; }
  .nh .main-nav > ul { display: block; padding: .1rem 0; }
  .nh .main-nav > ul > li > a { padding: .12rem .3rem; color: #1B3564; font-size: .16rem; }
  .nh .main-nav > ul > li.has-sub > a::after { content: ""; position: absolute; right: .3rem; top: 50%; left: auto; bottom: auto; width: .08rem; height: .08rem; border-right: 2px solid #9AA6BC; border-bottom: 2px solid #9AA6BC; transform: translateY(-70%) rotate(45deg); background: none; border-radius: 0; }
  .nh .main-nav .sub { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; border-radius: 0; display: none; background: #F5F8FD; min-width: 0; }

.nh .main-nav > ul > li:hover .sub { transform: none; }
.nh .main-nav > ul > li.has-sub > a::after { width: .2rem; height: .2rem; }

  .nh .main-nav > ul > li.open .sub { display: block; }
  .nh .main-nav .sub a { padding-left: .5rem; text-align: left; line-height: .4rem; font-size: .14rem; }
  .nh .hero { height: 3.4rem; }
  .nh .hero.hero-static { height: 1.7rem; }
}

/* ==================== 来源：templates/templates.css ==================== */
/* ============================================================
   全站通用模板共享样式（templates/ 下文章页 / 列表页 / 搜索结果页）
   复用根目录 style.css 的设计变量（--blue / --blue-dark / --blue-deep
   / --gold / --font-serif / --line / --shadow-* / --radius / --container）。
   栏目内容区正文最小字号参照 Word 四号字（14pt ≈ 18.7px，正文取 20px）；
   响应式断点沿用全站约定 1200 / 992 / 640。
   ============================================================ */

/* ---- 子页面无 hero 大图：毛玻璃导航覆盖为实色亮蓝渐变（与领导页/师资页一致） ---- */
body.subpage .nav-bar {
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 4px 14px rgba(0, 40, 70, .18);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
}body.subpage nav > a, body.subpage .nav-item > a { text-shadow: none; }

/* ===================== 两栏子页布局：左侧边导航 + 右侧主内容 ===================== */
.subpage-wrap  {
  width: min(var(--container), 100% - 48px); margin: 0 auto;
  display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px;
  padding: 40px 0 8px;
}
.subpage-wrap.single  { grid-template-columns: minmax(0, 1fr); max-width: 980px; }
.subpage-main  { min-width: 0; }

/* ---- 侧边导航（配色跟随领导页：组头/active 用顶部导航同款亮蓝渐变 + 香槟金线） ---- */
.side-nav  {
  align-self: start;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  overflow: hidden;
}
.side-head  {
  padding: 18px 24px;
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
  color: #fff; font-family: "Songti SC","STSong","STZhongsong","SimSun",serif;
  font-size: 23px; font-weight: 700; letter-spacing: 4px;
}
.side-nav a  {
  display: block; padding: 13px 24px;
  font-size: 17px; color: var(--ink-2);
  border-left: 3px solid transparent;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.side-nav a:hover  { color: var(--blue); background: rgba(42, 102, 200, .06); }
.side-nav a.active  {
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-left-color: var(--gold);
  color: #fff; font-weight: 600;
}
.side-nav a.active:hover  { color: #fff; }

/* ---- 面包屑行 ---- */
.crumb-row  {
  display: flex; align-items: flex-end; justify-content: space-between;
  flex-wrap: wrap; gap: 8px 16px;
  margin-bottom: 24px; padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.page-title  {
  display: flex; align-items: center; gap: 10px;
  font-family: "Songti SC","STSong","STZhongsong","SimSun",serif;
  font-size: 30px; font-weight: 700; letter-spacing: 2px; line-height: 1.25;
  color: var(--ink-strong);
}
.page-title::before  {
  content: ""; flex: none; width: 7px; height: 24px;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 72%, var(--gold) 72%, var(--gold) 100%);
  transform: skewX(-14deg); border-radius: 1px;
}
.crumb  { font-size: 16px; color: var(--ink-3); }

/* ============================================================
   一、文章详情模板（article.html）
   ============================================================ */
.article-card  {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 40px 48px 32px;
}
/* 公文标准（GB/T 9704）：标题 2 号小标宋；正文 3 号仿宋；一级标题黑体；二级标题楷体。
   字体按用户系统可用性逐级回退（未装方正/国标字体时用系统宋体/仿宋替代） */

.article-title  {
  font-family: "Microsoft YaHei","PingFang SC",sans-serif;

  font-size: 34px; font-weight: 700; line-height: 1.45; letter-spacing: 1.5px;
  color: var(--ink-strong); text-align: center;
  margin-bottom: 18px;
}
.article-meta  {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 30px;
  padding-bottom: 22px; margin-bottom: 30px;
  font-size: 18px; color: var(--ink-3);
  border-bottom: 1px solid var(--line);
}
.article-meta span  { display: inline-flex; align-items: center; gap: 7px; }
.article-meta svg  {
  width: 18px; height: 18px; fill: none;
  stroke: var(--gold); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.article-body p  {
  font-family: "仿宋_GB2312","FangSong_GB2312","仿宋","FangSong","STFangsong","Songti SC",serif;
  font-size: 20px; line-height: 2; color: var(--ink-2);
  text-indent: 2em; margin-bottom: 20px;
}
/* 公文层级：一级标题（一、）黑体，二级标题（（一））楷体 */
.article-body h2, .article-body h3  {
  font-family: "黑体","SimHei","Heiti SC","STHeiti","PingFang SC",sans-serif;
  font-size: 22px; font-weight: 700; color: var(--ink-strong);
  line-height: 1.8; margin: 26px 0 15px;
}
.article-body h4  {
  font-family: "楷体_GB2312","楷体","KaiTi_GB2312","KaiTi","STKaiti",serif;
  font-size: 20px; font-weight: 700; color: var(--ink-strong);
  line-height: 1.8; margin: 22px 0 13px;
}
.article-body p:last-of-type  { margin-bottom: 0; }
.article-body img  {
  display: block; max-width: 100%; margin: 8px auto 22px;
  border-radius: 10px; box-shadow: var(--shadow-1);
}
.article-body .img-cap  {
  text-indent: 0; text-align: center;
  font-size: 17px; color: var(--ink-3); margin-top: -12px;
}
/* 上一篇 / 下一篇：浅蓝色块（呼应领导页 featured 卡色系），hover 加深 */
.article-nav  {
  display: grid; gap: 10px;
  margin-top: 34px; padding-top: 22px;
  border-top: 1px solid var(--line);
}
.article-nav a  {
  display: flex; align-items: baseline; gap: 10px;
  padding: 11px 18px;
  font-size: 17px; color: var(--ink-2); line-height: 1.6;
  background: #F2F7FD; border: 1px solid rgba(42, 102, 200, .14); border-radius: 8px;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.article-nav a:hover  { color: var(--blue); background: #E9F2FB; border-color: rgba(42, 102, 200, .35); }
.article-nav a .an-label  {
  flex: none; font-weight: 600; color: var(--blue);
}
.article-nav a span:last-child  {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.article-nav .an-empty  { color: var(--ink-3); }

/* ============================================================
   二、列表模板（list.html）
   ============================================================ */
.news-list  {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 10px 32px;
}
.news-list li  {
  display: flex; align-items: baseline; gap: 18px;
  padding: 17px 0;
  border-bottom: 1px dashed var(--line);
}
.news-list li:last-child  { border-bottom: 0; }
.news-list .nl-title  {
  flex: 1; min-width: 0;
  font-size: 17px; color: var(--ink-2); line-height: 1.6;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  /* 条目小圆点 */
  position: relative; padding-left: 18px;
  transition: color .2s ease;
}
.news-list .nl-title::before  {
  content: ""; position: absolute; left: 0; top: .72em;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold);
}
.news-list a.nl-title:hover  { color: var(--blue); }
.news-list .nl-date  {
  flex: none; font-size: 16px; color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

/* ---- 分页（列表页 / 搜索页共用） ---- */
.pagination  {
  display: flex; justify-content: center; align-items: center;
  flex-wrap: wrap; gap: 8px;
  margin: 28px 0 12px;
}
.pagination a, .pagination span  {
  min-width: 40px; padding: 7px 13px; text-align: center;
  font-size: 16px; color: var(--ink-2);
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.pagination a:hover  { color: var(--blue); border-color: rgba(42, 102, 200, .5); }
.pagination .pg-current  {
  background: linear-gradient(135deg, #2A66C8, #4A90E8);
  border-color: #2A66C8; color: #fff; font-weight: 600;
}
.pagination .pg-disabled  { color: var(--ink-3); background: transparent; border-style: dashed; }
.pagination .pg-ellipsis  { border: 0; background: transparent; color: var(--ink-3); }

/* ============================================================
   三、搜索结果模板（search.html）
   ============================================================ */
/* ---- 搜索面板：featured 浅蓝渐变卡（领导页 featured 名片同款），输入框白底浮出 ---- */
.search-panel  {
  background: linear-gradient(135deg, #E9F2FB 0%, #DAE7F6 100%);
  border: 1px solid rgba(42, 102, 200, .22);
  border-radius: var(--radius); box-shadow: var(--shadow-2);
  padding: 30px 36px 26px; margin-bottom: 26px;
}
.search-panel form  {
  display: flex; gap: 12px;
}
.search-panel input[type="search"]  {
  flex: 1; min-width: 0;
  padding: 12px 18px;
  font-size: 17px; color: var(--ink);
  border: 1px solid var(--line); border-radius: 10px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.search-panel input[type="search"]:focus  {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(42, 102, 200, .14);
}
.search-panel button  {
  flex: none; padding: 0 30px;
  font-size: 17px; font-weight: 600; color: #fff; letter-spacing: 2px;
  background: linear-gradient(135deg, #2A66C8, #4A90E8);
  border: 0; border-radius: 10px; cursor: pointer;
  transition: filter .2s ease, transform .15s ease;
}
.search-panel button:hover  { filter: brightness(1.08); }
.search-panel button:active  { transform: scale(.97); }
.search-summary  {
  margin-top: 16px;
  font-size: 16px; color: var(--ink-3);
}
.search-summary em  { font-style: normal; color: var(--blue); font-weight: 600; }

.result-list  { display: grid; gap: 16px; }
.result-item  {
  background: var(--card); border: 1px solid var(--line);
  border-left: 3px solid transparent;
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 20px 28px 18px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
/* hover 浮起 + 蓝色左缘强调（同师资页分组标题带的蓝色竖条手法） */
.result-item:hover  { transform: translateY(-2px); box-shadow: var(--shadow-2); border-left-color: var(--blue); }
.result-item h3  {
  font-size: 18px; font-weight: 600; line-height: 1.6; margin-bottom: 8px;
}
.result-item h3 a  {
  color: var(--ink-strong);
  background-image: linear-gradient(var(--gold), var(--gold));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: color .25s ease, background-size .35s ease;
}
.result-item h3 a:hover  { color: var(--blue); background-size: 100% 2px; }
.result-item h3 em, .result-item p em  {
  font-style: normal; color: #C0392B; font-weight: 600;
}
.result-item p  {
  font-size: 16px; line-height: 1.85; color: var(--ink-3);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.result-item .ri-meta  {
  display: flex; gap: 20px; margin-top: 10px;
  font-size: 16px; color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}
.result-item .ri-meta span  { display: inline-flex; align-items: center; gap: 6px; }
.result-item .ri-meta svg  {
  width: 15px; height: 15px; fill: none;
  stroke: var(--gold); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}

/* ===================== 响应式 ===================== */
@media (max-width: 1200px) {
  .subpage-wrap  { grid-template-columns: 220px minmax(0, 1fr); gap: 30px; }
  .subpage-wrap.single  { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 992px) {
  .subpage-wrap  { grid-template-columns: 1fr; gap: 22px; padding-top: 28px; }
  .side-nav  { display: flex; flex-wrap: wrap; align-items: stretch; }
  .side-head  { width: 100%; padding: 13px 20px; font-size: 20px; letter-spacing: 3px; }
  .side-nav a  { padding: 10px 16px; border-left: 0; border-radius: 8px; margin: 4px; }
  .side-nav a.active  { border-left-color: transparent; }
  .article-card  { padding: 28px 26px 24px; }
  .article-title  { font-size: 28px; }
}

@media (max-width: 640px) {
  .subpage-wrap  { width: min(100% - 32px, var(--container)); padding-top: 22px; }
  .page-title  { font-size: 26px; letter-spacing: 1.5px; }
  .crumb-row  { margin-bottom: 18px; padding-bottom: 12px; }
  .article-card  { padding: 22px 18px 20px; }
  .article-title  { font-size: 24px; }
  .article-body p  { font-size: 18px; }
  .article-body h2, .article-body h3  { font-size: 20px; }
  .article-body h4  { font-size: 18px; }
  .news-list  { padding: 6px 20px; }
  .news-list li  { flex-direction: column; gap: 4px; padding: 14px 0; }
  .search-panel  { padding: 20px 18px 16px; }
  .search-panel form  { flex-direction: column; }
  .search-panel button  { padding: 11px 0; }
  .result-item  { padding: 16px 18px 14px; }
}

/* ==================== 来源：about/leaders/leaders.css ==================== */
/* ============================================================
   学院领导子页（about/leaders/index.html）特有样式
   复用根目录 style.css 的设计变量（--blue / --blue-dark / --blue-deep
   / --gold / --font-serif / --line / --shadow-* / --radius / --container），
   本文件只覆盖子页差异部分：实色导航、两栏子页布局（左侧边导航 + 右侧主内容）、
   领导卡片栅格与左右交错滚动渐入。
   响应式断点沿用全站约定：1200 / 992 / 640。
   ============================================================ */

/* ---- 子页面无 hero 大图：毛玻璃导航覆盖为实色渐变 ----
   客户反馈原深蓝渐变（blue-deep→blue-dark）太沉闷，改为更明亮通透的蓝色渐变，
   底部加香槟金细线呼应全站蓝金体系 */
body.subpage .nav-bar {
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 4px 14px rgba(0, 40, 70, .18);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
}/* 实色底下白字已足够清晰，去掉为毛玻璃准备的重投影 */
body.subpage nav > a, body.subpage .nav-item > a { text-shadow: none; }

/* ===================== 两栏子页布局：左侧边导航 + 右侧主内容 ===================== */
.subpage-wrap  {
  width: min(var(--container), 100% - 48px); margin: 0 auto;
  display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px;
  padding: 40px 0 8px;
}
.subpage-main  { min-width: 0; }

/* ---- 侧边导航：白卡 + 组头，配色跟随顶部导航（亮蓝渐变 #2A66C8→#4A90E8 + 香槟金细线） ---- */
.side-nav  {
  align-self: start;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  overflow: hidden;
}
.side-head  {
  padding: 18px 24px;
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
  color: #fff; font-family: "Songti SC","STSong","STZhongsong","SimSun",serif;
  font-size: 23px; font-weight: 700; letter-spacing: 4px;
}
.side-nav a  {
  display: block; padding: 13px 24px;
  font-size: 17px; color: var(--ink-2);
  border-left: 3px solid transparent;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.side-nav a:hover  { color: var(--blue); background: rgba(42, 102, 200, .06); }
/* 选中项：与顶部导航同款亮蓝渐变底白字 + 香槟金左线点缀 */
.side-nav a.active  {
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-left-color: var(--gold);
  color: #fff; font-weight: 600;
}
.side-nav a.active:hover  { color: #fff; }

/* ---- 面包屑行：页标题（蓝金斜切记号，同主页 h2 风格） + 当前位置 ---- */
.crumb-row  {
  display: flex; align-items: flex-end; justify-content: space-between;
  flex-wrap: wrap; gap: 8px 16px;
  margin-bottom: 24px; padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.page-title  {
  display: flex; align-items: center; gap: 10px;
  font-family: "Songti SC","STSong","STZhongsong","SimSun",serif;
  font-size: 30px; font-weight: 700; letter-spacing: 2px; line-height: 1.25;
  color: var(--ink-strong);
}
.page-title::before  {
  content: ""; flex: none; width: 7px; height: 24px;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 72%, var(--gold) 72%, var(--gold) 100%);
  transform: skewX(-14deg); border-radius: 1px;
}
.crumb  { font-size: 16px; color: var(--ink-3); }

/* ---- 领导卡片栅格（2026-09-30 改版：去简介，书记/院长大卡 + 副职小卡）：
   4 列栅格——featured（书记/院长）各占 2 列（半行大卡），
   4 张副职卡各占 1 列（正好一排小卡） ---- */
.leader-grid  {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px;
}
.leader-card  {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 22px 20px 18px;
  display: flex; flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease;
  /* 卡片内所有文字（姓名/职务/链接）统一为系统宋体栈，只靠字号、粗细、颜色分层；
     不用 "Songti SC","STSong","STZhongsong","SimSun",serif：其 Noto Serif SC 是子集字体，缺字回退会造成逐字混排 */
  font-family: "STZhongsong", "Songti SC", "STSong", "SimSun", serif;
}
.leader-card:hover  { transform: translateY(-5px); box-shadow: var(--shadow-2); }
/* 副职小卡：姓名一行、职务换行（仅比姓名略小一点），下接香槟金短线 */
.leader-card h3  {
  font-size: 23px; font-weight: 700; letter-spacing: 2px; line-height: 1.3;
  color: var(--ink-strong);
}
.leader-card h3 small  {
  display: block; margin: 7px 0 0;
  font-size: 19px; font-weight: 600; letter-spacing: 1px; line-height: 1.5;
  color: var(--blue);
}
/* 香槟金短 divider */
.leader-card .divider  {
  width: 36px; height: 3px; margin: 12px 0;
  background: var(--gold); border-radius: 2px;
}

/* 姓名链接：继承卡片文字色，hover 香槟金下划线滑入（同全站标题动画） */
.leader-card h3 a  {
  color: inherit; padding-bottom: 2px;
  background-image: linear-gradient(var(--gold), var(--gold));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: background-size .35s ease;
}
.leader-card h3 a:hover  { background-size: 100% 2px; }

/* 卡片底部「领导详情」链接（margin-top:auto 使各卡底对齐） */
.leader-more  {
  display: inline-flex; align-items: center; gap: 5px;
  margin-top: auto; padding-top: 4px; font-size: 15px; font-weight: 500;
  color: var(--blue); letter-spacing: .5px;
  transition: color .2s ease, transform .2s ease;
}
.leader-more svg  {
  width: 13px; height: 13px; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
  transition: transform .2s ease;
}
.leader-more:hover  { color: var(--blue-deep); transform: translateX(3px); }
.leader-more:hover svg  { transform: translateX(3px); }

/* featured（党委书记 / 院长）：占 2 列大卡，浅蓝渐变底，姓名职务同行、整体放大 */
.leader-card.featured  {
  grid-column: span 2;
  padding: 34px 34px 28px;
  background: linear-gradient(135deg, #E9F2FB 0%, #DAE7F6 100%);
  border-color: rgba(42, 102, 200, .22);
  box-shadow: var(--shadow-2);
}
.leader-card.featured h3  { font-size: 34px; letter-spacing: 3px; color: var(--blue-deep); }
.leader-card.featured h3 small  {
  display: inline; margin: 0 0 0 14px;
  font-size: 26px; letter-spacing: 2px;
}
.leader-card.featured .divider  { width: 54px; margin: 16px 0; }
.leader-card.featured .leader-more  { font-size: 17px; padding-top: 8px; }
.leader-card.featured:hover  { box-shadow: var(--shadow-3); }

/* ---- 滚动渐入：左右交错（leaders.js 添加 reveal/from-left/from-right，
   进入视口时加 .visible；尊重 prefers-reduced-motion，见 style.css 全局规则） ---- */
.leader-card.reveal  { transition: opacity .7s ease, transform .7s ease; }
.leader-card.reveal.from-left  { opacity: 0; transform: translateX(-36px); }
.leader-card.reveal.from-right  { opacity: 0; transform: translateX(36px); }
.leader-card.reveal.visible  { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .leader-card.reveal.from-left,
  .leader-card.reveal.from-right  { opacity: 1; transform: none; }
}

/* ===================== 响应式 ===================== */
@media (max-width: 1200px) {
  .subpage-wrap  { grid-template-columns: 220px minmax(0, 1fr); gap: 30px; }
}

@media (max-width: 992px) {
  /* 侧边栏折到顶部横排 */
  .subpage-wrap  { grid-template-columns: 1fr; gap: 22px; padding-top: 28px; }
  .side-nav  { display: flex; flex-wrap: wrap; align-items: stretch; }
  .side-head  {
    width: 100%; padding: 13px 20px;
    font-size: 20px; letter-spacing: 3px;
  }
  .side-nav a  { padding: 10px 16px; border-left: 0; border-radius: 8px; margin: 4px; }
  /* 2 列：featured 整行大卡，副职两排 */
  .leader-grid  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .subpage-wrap  { width: min(100% - 32px, var(--container)); padding-top: 22px; }
  .page-title  { font-size: 26px; letter-spacing: 1.5px; }
  .crumb-row  { margin-bottom: 18px; padding-bottom: 12px; }
  .leader-grid  { grid-template-columns: 1fr; gap: 18px; }
  .leader-card.featured  { grid-column: span 1; padding: 26px 24px 22px; }
  .leader-card.featured h3  { font-size: 28px; }
  .leader-card.featured h3 small  { font-size: 22px; margin-left: 10px; }
  .leader-card h3  { font-size: 22px; }
  .leader-card h3 small  { font-size: 18px; }
}

/* ==================== 来源：faculty/faculty.css ==================== */
/* ============================================================
   师资队伍子页（faculty/index.html）特有样式
   复用根目录 style.css 的设计变量（--blue / --blue-dark / --blue-deep
   / --gold / --font-serif / --line / --shadow-* / --radius / --container），
   本文件只覆盖子页差异部分：实色导航、两栏子页布局（左侧吸顶筛选栏 +
   右侧主内容，原大字侧边导航已按客户要求删除）、筛选面板与教师名单。
   响应式断点沿用全站约定：1200 / 992 / 640。
   ============================================================ */

/* ---- 子页面无 hero 大图：毛玻璃导航覆盖为实色渐变 ----
   客户反馈原深蓝渐变（blue-deep→blue-dark）太沉闷，改为更明亮通透的蓝色渐变，
   底部加香槟金细线呼应全站蓝金体系 */
body.subpage .nav-bar {
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 4px 14px rgba(0, 40, 70, .18);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
}/* 实色底下白字已足够清晰，去掉为毛玻璃准备的重投影 */
body.subpage nav > a, body.subpage .nav-item > a { text-shadow: none; }

/* ===================== 两栏子页布局：左侧边导航 + 右侧主内容 ===================== */
.subpage-wrap   {
  width: min(var(--container), 100% - 48px); margin: 0 auto;
  display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px;
  padding: 40px 0 8px;
}
.subpage-main   { min-width: 0; }

/* ---- 左侧筛选栏：吸顶筛选卡（客户要求：原大字侧边栏删除，筛选整体移到左侧） ---- */
.side-filter   {
  align-self: start;
  position: sticky; top: 24px;
}

/* ---- 面包屑行：页标题（蓝金斜切记号，同主页 h2 风格） + 当前位置 ---- */
.crumb-row   {
  display: flex; align-items: flex-end; justify-content: space-between;
  flex-wrap: wrap; gap: 8px 16px;
  margin-bottom: 24px; padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.page-title   {
  display: flex; align-items: center; gap: 10px;
  font-family: "Songti SC","STSong","STZhongsong","SimSun",serif;
  font-size: 30px; font-weight: 700; letter-spacing: 2px; line-height: 1.25;
  color: var(--ink-strong);
}
.page-title::before   {
  content: ""; flex: none; width: 7px; height: 24px;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 72%, var(--gold) 72%, var(--gold) 100%);
  transform: skewX(-14deg); border-radius: 1px;
}
.crumb   { font-size: 16px; color: var(--ink-3); }/* ---- 筛选面板：左侧竖排三组（系别 / 职称 / 姓氏），胶囊按钮 ----
   客户反馈各区域背景单调：筛选卡用领导页 featured 卡同款浅蓝渐变（柔和不突兀），
   按钮保持白底，在浅蓝卡上自然浮出 */
body[data-page="faculty"] .filter-panel  {
  background: linear-gradient(135deg, #E9F2FB 0%, #DAE7F6 100%);
  border: 1px solid rgba(42, 102, 200, .22);
  border-radius: var(--radius); box-shadow: var(--shadow-2);
  padding: 16px 18px;
}body[data-page="faculty"] .filter-row  { display: flex; flex-direction: column; gap: 10px; padding: 10px 0; }body[data-page="faculty"] .filter-row:first-child  { padding-top: 2px; }body[data-page="faculty"] .filter-row:last-child  { padding-bottom: 2px; }body[data-page="faculty"] .filter-row + .filter-row  { border-top: 1px dashed var(--line); }body[data-page="faculty"] .filter-label  {
  flex: none;
  font-size: 16px; font-weight: 600; color: var(--ink-strong);
  padding-left: 8px; border-left: 3px solid var(--gold); /* 组标题金色角标，与页脚分组标题同型 */
}body[data-page="faculty"] .filter-options  { display: flex; flex-wrap: wrap; gap: 7px; }body[data-page="faculty"] .filter-options button  {
  border: 1px solid var(--line); border-radius: 999px;
  background: #fff; padding: 4px 13px;
  font-size: 16px; color: var(--ink-2); cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}body[data-page="faculty"] .filter-options button:hover  {
  color: var(--blue); border-color: rgba(42, 102, 200, .5);
}body[data-page="faculty"] .filter-options button.active  {
  background: var(--blue); border-color: var(--blue); color: #fff;
  box-shadow: 0 4px 10px rgba(42, 102, 200, .25);
}
.letter-options button   { min-width: 34px; padding: 4px 8px; text-align: center; }

/* ---- 名单标题：「按姓氏拼音排序：共 N 位教师」 ----
   注意：本页标题文字来自数据（动态），不使用 Noto Serif SC 子集字体
   （子集仅含主页标题用字，缺字会回退成另一种字体，如"讲"字）。
   统一用系统宋体栈，保证任意汉字渲染一致。 */
.list-head   {
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", "Source Han Serif SC", serif;
  font-size: 23px; font-weight: 600; letter-spacing: 1px;
  color: var(--ink-strong); margin-bottom: 18px;
}
.list-head small   {
  margin-left: 4px;
  font-family: inherit; font-size: 16px; font-weight: 400;
  color: var(--ink-3); letter-spacing: 0;
}

/* ---- 教师分组卡：组名「专业教师-XXX」+ 人数小字 ----
   组标题做成浅蓝渐变标题带（左缘蓝色竖条呼应导航金线手法），
   给每个分组一块柔和的识别色，替代原单调白卡 + 分隔线 */
.teacher-group   {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 20px 24px 22px; margin-bottom: 20px;
}
.teacher-group h3   {
  display: flex; align-items: baseline; gap: 10px;
  margin: -6px -10px 0; padding: 8px 12px;
  background: linear-gradient(90deg, rgba(42, 102, 200, .10) 0%, rgba(74, 144, 232, .05) 60%, rgba(74, 144, 232, 0) 100%);
  border-left: 4px solid var(--blue); border-radius: 6px;
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", "Source Han Serif SC", serif;
  font-size: 22px; font-weight: 700; letter-spacing: 1.5px;
  color: var(--blue-deep);
}
.teacher-group h3 small   { font-size: 16px; font-weight: 600; color: var(--gold); letter-spacing: 0; }
/* 标题带已承担分组分隔职责，原渐变分隔线隐藏（faculty.js 仍会生成该节点） */
.group-line   { display: none; }
.teacher-names   { margin-top: 16px; }
.teacher-names   {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 10px 16px;
}
/* 教师姓名：hover 变皇家蓝 + 香槟金下划线滑入（同主页 news-card h3 动画） */
.teacher-names a   {
  justify-self: start; padding-bottom: 2px;
  font-size: 17px; color: var(--ink-2); line-height: 1.5;
  background-image: linear-gradient(var(--gold), var(--gold));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: color .25s ease, background-size .35s ease;
}
.teacher-names a:hover   { color: var(--blue); background-size: 100% 2px; }
.teacher-names a   { cursor: pointer; }

/* ---- 筛选无结果空态：浅蓝底与筛选卡呼应 ---- */
.empty-tip   {
  padding: 48px 20px; text-align: center;
  font-size: 16px; color: var(--ink-3);
  background: #F2F7FD;
  border: 1px dashed rgba(42, 102, 200, .35); border-radius: var(--radius);
}

/* ===================== 教师简介浮层（与研究生导师风采页同款） ===================== */
.adv-modal-overlay   {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(13, 38, 76, .45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  opacity: 0; transition: opacity .22s ease;
}
.adv-modal-overlay.show   { opacity: 1; }
.adv-modal   {
  width: min(720px, 100%); max-height: 82vh;
  display: flex; flex-direction: column;
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 64px rgba(13, 38, 76, .35);
  transform: translateY(26px) scale(.96); opacity: 0;
  transition: transform .32s cubic-bezier(.22, .9, .28, 1.08), opacity .26s ease;
}
.adv-modal-overlay.show .adv-modal   { transform: none; opacity: 1; }
.adv-modal-head   {
  position: relative; flex: none;
  padding: 20px 60px 16px 28px;
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
}
.adv-modal-head h3   {
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", serif;
  font-size: 27px; font-weight: 700; letter-spacing: 2px; color: #fff;
}
.adv-modal-head p   { margin-top: 7px; font-size: 17px; color: rgba(255, 255, 255, .88); letter-spacing: .5px; }
.adv-modal-close   {
  position: absolute; top: 14px; right: 14px;
  width: 34px; height: 34px; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .16); color: #fff;
  font-size: 20px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s ease, transform .2s ease;
}
.adv-modal-close:hover   { background: rgba(255, 255, 255, .32); transform: rotate(90deg); }
.adv-modal-body   {
  padding: 26px 30px 30px; overflow-y: auto;
  font-size: 19px; line-height: 2; color: var(--ink-2);
  font-family: "仿宋_GB2312", "FangSong_GB2312", "仿宋", "FangSong", "STFangsong", "Songti SC", serif;
  text-indent: 2em;
}

/* ===================== 响应式 ===================== */
@media (max-width: 1200px) {
  .subpage-wrap   { grid-template-columns: 220px minmax(0, 1fr); gap: 30px; }
}

@media (max-width: 992px) {
  /* 筛选栏折到顶部，三组恢复横排更紧凑 */
  .subpage-wrap   { grid-template-columns: 1fr; gap: 22px; padding-top: 28px; }
  .side-filter   { position: static; }body[data-page="faculty"] .filter-row  { flex-direction: row; align-items: flex-start; gap: 12px; padding: 8px 0; }body[data-page="faculty"] .filter-label  { border-left: 0; padding-left: 0; padding-top: 4px; }
}

@media (max-width: 640px) {
  .subpage-wrap   { width: min(100% - 32px, var(--container)); padding-top: 22px; }
  .page-title   { font-size: 26px; letter-spacing: 1.5px; }
  .crumb-row   { margin-bottom: 18px; padding-bottom: 12px; }body[data-page="faculty"] .filter-panel  { padding: 12px 14px; }body[data-page="faculty"] .filter-row  { flex-direction: column; gap: 8px; }body[data-page="faculty"] .filter-label  { padding-top: 0; }
  .teacher-group   { padding: 16px 18px 18px; }
  .teacher-names   { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .adv-modal-head h3   { font-size: 23px; }
  .adv-modal-body   { padding: 20px 22px 24px; font-size: 18px; }
}

/* ==================== 来源：yjspy/dsfc/dsfc.css ==================== */
/* ============================================================
   研究生导师风采（yjspy/dsfc/index.html）特有样式
   设计语言沿用师资页：浅蓝筛选卡、胶囊按钮、分组标题带、姓名金下划线；
   布局差异（按客户参考图）：筛选区在右侧上方横排，左侧为栏目导航。
   ============================================================ */

/* ---- 筛选面板：横排两行（按培养层次 / 按姓氏），浅蓝渐变卡同师资页 ---- */
body[data-page="dsfc"] .filter-panel {
  background: linear-gradient(135deg, #E9F2FB 0%, #DAE7F6 100%);
  border: 1px solid rgba(42, 102, 200, .22);
  border-radius: var(--radius); box-shadow: var(--shadow-2);
  padding: 8px 22px; margin-bottom: 26px;
}body[data-page="dsfc"] .filter-row { display: flex; align-items: flex-start; gap: 16px; padding: 12px 0; }body[data-page="dsfc"] .filter-row + .filter-row { border-top: 1px dashed rgba(42, 102, 200, .18); }body[data-page="dsfc"] .filter-label {
  flex: none; width: 96px; padding-top: 5px;
  font-size: 16px; font-weight: 600; color: var(--ink-strong);
  padding-left: 8px; border-left: 3px solid var(--gold);
}body[data-page="dsfc"] .filter-options { display: flex; flex-wrap: wrap; gap: 8px; }body[data-page="dsfc"] .filter-options button {
  border: 1px solid var(--line); border-radius: 999px;
  background: #fff; padding: 4px 15px;
  font-size: 16px; color: var(--ink-2); cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}body[data-page="dsfc"] .filter-options button:hover { color: var(--blue); border-color: rgba(42, 102, 200, .5); }body[data-page="dsfc"] .filter-options button.active {
  background: var(--blue); border-color: var(--blue); color: #fff;
  box-shadow: 0 4px 10px rgba(42, 102, 200, .25);
}
.letter-options button  { min-width: 34px; padding: 4px 8px; text-align: center; }

/* ---- 名单标题（动态文字，禁用 Noto Serif SC 子集，用系统宋体栈） ---- */
.list-head  {
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", "Source Han Serif SC", serif;
  font-size: 23px; font-weight: 600; letter-spacing: 1px;
  color: var(--ink-strong); margin-bottom: 18px;
}
.list-head small  {
  margin-left: 4px; font-family: inherit; font-size: 16px; font-weight: 400;
  color: var(--ink-3); letter-spacing: 0;
}

/* ---- 导师分组卡（博导 / 硕导）：同师资页分组标题带 ---- */
.adv-group  {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 20px 24px 22px; margin-bottom: 20px;
}
.adv-group h3  {
  display: flex; align-items: baseline; gap: 10px;
  margin: -6px -10px 0; padding: 8px 12px;
  background: linear-gradient(90deg, rgba(42, 102, 200, .10) 0%, rgba(74, 144, 232, .05) 60%, rgba(74, 144, 232, 0) 100%);
  border-left: 4px solid var(--blue); border-radius: 6px;
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", "Source Han Serif SC", serif;
  font-size: 22px; font-weight: 700; letter-spacing: 1.5px;
  color: var(--blue-deep);
}
.adv-group h3 small  { font-size: 16px; font-weight: 600; color: var(--gold); letter-spacing: 0; }
.adv-names  {
  margin-top: 16px;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 10px 16px;
}
.adv-names a  {
  justify-self: start; padding-bottom: 2px; cursor: pointer;
  font-size: 17px; color: var(--ink-2); line-height: 1.5;
  background-image: linear-gradient(var(--gold), var(--gold));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: color .25s ease, background-size .35s ease;
}
.adv-names a:hover  { color: var(--blue); background-size: 100% 2px; }

.empty-tip  {
  padding: 48px 20px; text-align: center;
  font-size: 16px; color: var(--ink-3);
  background: #F2F7FD;
  border: 1px dashed rgba(42, 102, 200, .35); border-radius: var(--radius);
}

/* ---- 导师简介浮层：遮罩淡入 + 卡片弹入 ---- */
.adv-modal-overlay  {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(13, 38, 76, .45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  opacity: 0; transition: opacity .22s ease;
}
.adv-modal-overlay.show  { opacity: 1; }
.adv-modal  {
  width: min(720px, 100%); max-height: 82vh;
  display: flex; flex-direction: column;
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 64px rgba(13, 38, 76, .35);
  transform: translateY(26px) scale(.96); opacity: 0;
  transition: transform .32s cubic-bezier(.22, .9, .28, 1.08), opacity .26s ease;
}
.adv-modal-overlay.show .adv-modal  { transform: none; opacity: 1; }
.adv-modal-head  {
  position: relative; flex: none;
  padding: 20px 60px 16px 28px;
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
}
.adv-modal-head h3  {
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", serif;
  font-size: 27px; font-weight: 700; letter-spacing: 2px; color: #fff;
}
.adv-modal-head p  { margin-top: 7px; font-size: 17px; color: rgba(255, 255, 255, .88); letter-spacing: .5px; }
.adv-modal-close  {
  position: absolute; top: 14px; right: 14px;
  width: 34px; height: 34px; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .16); color: #fff;
  font-size: 20px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s ease, transform .2s ease;
}
.adv-modal-close:hover  { background: rgba(255, 255, 255, .32); transform: rotate(90deg); }
.adv-modal-body  {
  padding: 26px 30px 30px; overflow-y: auto;
  font-size: 19px; line-height: 2; color: var(--ink-2);
  font-family: "仿宋_GB2312", "FangSong_GB2312", "仿宋", "FangSong", "STFangsong", "Songti SC", serif;
  text-indent: 2em;
}

/* ===================== 响应式 ===================== */
@media (max-width: 992px) {body[data-page="dsfc"] .filter-panel { padding: 6px 16px; }
}
@media (max-width: 640px) {body[data-page="dsfc"] .filter-row { flex-direction: column; gap: 8px; padding: 10px 0; }body[data-page="dsfc"] .filter-label { width: auto; padding-top: 0; }
  .adv-group  { padding: 16px 18px 18px; }
  .adv-names  { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .adv-modal-head h3  { font-size: 23px; }
  .adv-modal-body  { padding: 20px 22px 24px; font-size: 18px; }
}

/* ==================== 来源：xkky/kyjg/kyjg.css ==================== */
/* ============================================================
   科研机构子页（xkky/kyjg/index.html）特有样式
   设计仿"机构设置"参考图：蓝色切角标题带 + 浅蓝渐变介绍卡，
   结合本站皇家蓝 × 香槟金语言（渐变、金线、圆角、阴影、hover 上浮）。
   ============================================================ */

.org-list { display: grid; gap: 26px; }

/* 介绍卡：浅蓝渐变底（同 featured 卡色系）+ 描边 + 阴影；
   整卡为链接（同专业设置卡操作：任意位置可点，cursor 手指），hover 上浮动画保留 */
.org-card {
  display: block; cursor: pointer;
  position: relative;
  background: linear-gradient(135deg, #EDF4FC 0%, #DCE8F7 100%);
  border: 1px solid rgba(42, 102, 200, .18);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  padding: 0 34px 28px;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.org-card:hover {
  transform: translateY(-6px) scale(1.012);
  box-shadow: 0 22px 48px rgba(42, 102, 200, .30);
  border-color: rgba(42, 102, 200, .5);
}

/* 机构名标题带：亮蓝渐变 + 右侧斜切角（平行四边形），底部压香槟金细线 */
.org-tag {
  display: inline-block;
  margin: 0 0 18px -34px;   /* 左突对齐卡缘，还原参考图"挂牌"感 */
  padding: 13px 44px 13px 24px;
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-bottom: 2px solid rgba(201, 170, 118, .6);
  clip-path: polygon(0 0, 100% 0, calc(100% - 20px) 100%, 0 100%);
  border-radius: 6px 0 0 0;
  color: #fff;
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", serif;
  font-size: 21px; font-weight: 700; letter-spacing: 2px; line-height: 1.4;
  box-shadow: 0 6px 14px rgba(42, 102, 200, .25);
  transition: letter-spacing .3s ease;
}
.org-card:hover .org-tag { letter-spacing: 2.5px; }

/* 介绍正文：首行缩进两字符，公文式排版；限三行，超出以省略号截断 */
.org-intro {
  font-size: 17px; line-height: 2; color: var(--ink-2);
  text-indent: 2em;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ===================== 响应式 ===================== */
@media (max-width: 640px) {
  .org-card { padding: 0 22px 22px; }
  .org-tag {
    margin-left: -22px; padding: 11px 34px 11px 18px;
    font-size: 18px; letter-spacing: 1.5px;
    clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%);
  }
  .org-intro { font-size: 16px; }
}

/* ==================== 来源：about/leaders/detail/detail.css ==================== */
/* ============================================================
   学院领导详情页（about/leaders/detail/*.html）特有样式
   在 style.css + templates.css（文章卡版式）之上，
   只补充「返回学院领导」按钮。
   ============================================================ */

/* ---- 底部返回条：替代文章模板的上一篇/下一篇 ---- */
.back-bar {
  display: flex; justify-content: center;
  margin-top: 34px; padding-top: 26px;
  border-top: 1px solid var(--line);
}
.back-btn {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 12px 38px;
  font-size: 16px; font-weight: 600; letter-spacing: 3px;
  color: #fff;
  background: linear-gradient(135deg, #2A66C8, #4A90E8);
  border-radius: 10px; box-shadow: 0 4px 12px rgba(42, 102, 200, .28);
  transition: filter .2s ease, transform .15s ease;
}
.back-btn:hover { filter: brightness(1.1); }
.back-btn:active { transform: scale(.97); }
.back-btn svg {
  width: 15px; height: 15px; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ==================== 来源：yjspy/pycc/prog.css ==================== */
/* ============================================================
   培养层次 / 专业设置 列表页共用样式（prog.css）
   设计语言：皇家蓝 × 香槟金；序号徽标 + 标题章 + 摘要 + 箭头的横条卡，
   点击弹出悬浮式详情窗（遮罩淡入 + 卡片弹入动画）。
   ============================================================ */

/* ---- 设计感列表 ---- */
.program-list { display: grid; gap: 16px; }
.program-item {
  position: relative;
  display: flex; align-items: center; gap: 20px;
  padding: 22px 26px;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-1);
  cursor: pointer; overflow: hidden;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
/* 卡片左缘蓝金渐隐饰带（呼应分组标题带手法） */
.program-item::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(180deg, var(--blue) 0%, var(--blue) 72%, var(--gold) 72%, var(--gold) 100%);
  opacity: .55; transition: opacity .28s ease, width .28s ease;
}
.program-item:hover, .program-item:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(42, 102, 200, .16);
  border-color: rgba(42, 102, 200, .4);
  outline: none;
}
.program-item:hover::before, .program-item:focus-visible::before { opacity: 1; width: 5px; }

/* 序号徽标：蓝色渐变方块 + 金色切角 */
.pi-num {
  flex: none; width: 58px; height: 58px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #2A66C8 0%, #4A90E8 100%);
  border-radius: 12px;
  border-bottom: 2px solid rgba(201, 170, 118, .7);
  color: #fff; font-size: 21px; font-weight: 700;
  font-variant-numeric: tabular-nums; letter-spacing: 1px;
  box-shadow: 0 6px 14px rgba(42, 102, 200, .28);
  transition: transform .28s ease;
}
.program-item:hover .pi-num { transform: scale(1.06) rotate(-2deg); }

.pi-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.pi-title {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", serif;
  font-size: 21px; font-weight: 700; letter-spacing: 1px;
  color: var(--ink-strong);
  transition: color .25s ease;
}
.program-item:hover .pi-title { color: var(--blue); }
.pi-chip {
  flex: none; font-style: normal; font-family: inherit;
  font-size: 13px; font-weight: 600; letter-spacing: 1px;
  color: var(--gold); border: 1px solid rgba(201, 170, 118, .55);
  background: rgba(201, 170, 118, .10);
  border-radius: 999px; padding: 2px 10px;
}
.pi-summary {
  font-size: 15.5px; line-height: 1.75; color: var(--ink-3);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.pi-arrow {
  flex: none; width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; border: 1px solid var(--line);
  color: var(--ink-3); font-size: 22px; line-height: 1;
  transition: color .25s ease, border-color .25s ease, background .25s ease, transform .25s ease;
}
.program-item:hover .pi-arrow {
  color: #fff; background: var(--blue); border-color: var(--blue);
  transform: translateX(4px);
}

/* ---- 悬浮详情窗 ---- */
.prog-modal-overlay {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(13, 38, 76, .45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  opacity: 0; transition: opacity .22s ease;
}
.prog-modal-overlay.show { opacity: 1; }
.prog-modal {
  width: min(760px, 100%); max-height: 84vh;
  display: flex; flex-direction: column;
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 64px rgba(13, 38, 76, .35);
  transform: translateY(28px) scale(.95); opacity: 0;
  transition: transform .34s cubic-bezier(.22, .9, .28, 1.1), opacity .26s ease;
}
.prog-modal-overlay.show .prog-modal { transform: none; opacity: 1; }
.prog-modal-head {
  position: relative; flex: none;
  padding: 22px 64px 18px 30px;
  background: linear-gradient(90deg, #2A66C8 0%, #4A90E8 100%);
  border-bottom: 2px solid rgba(201, 170, 118, .55);
}
.pm-title-wrap h3 {
  font-family: "Songti SC", "STSong", "STZhongsong", "SimSun", serif;
  font-size: 28px; font-weight: 700; letter-spacing: 2px; color: #fff;
}
.pm-title-wrap p { margin-top: 7px; font-size: 17px; color: rgba(255, 255, 255, .88); letter-spacing: 1px; }
.prog-modal-close {
  position: absolute; top: 16px; right: 16px;
  width: 36px; height: 36px; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .16); color: #fff;
  font-size: 21px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s ease, transform .25s ease;
}
.prog-modal-close:hover { background: rgba(255, 255, 255, .32); transform: rotate(90deg); }
.prog-modal-body { overflow-y: auto; padding: 26px 32px 30px; }
/* 正文：公文风（仿宋、首行缩进、宽行距），字号参照 Word 四号（14pt ≈ 18.7px） */
.pm-content p {
  font-family: "仿宋_GB2312", "FangSong_GB2312", "仿宋", "FangSong", "STFangsong", "Songti SC", serif;
  font-size: 19px; line-height: 2; color: var(--ink-2);
  text-indent: 2em; margin-bottom: 16px;
}
.pm-content p:last-child { margin-bottom: 0; }
.pm-content strong, .pm-content b { color: var(--ink-strong); }
.prog-modal-foot {
  flex: none; padding: 14px 30px 20px; text-align: right;
  border-top: 1px solid var(--line);
}
.prog-modal-foot button {
  border: 1px solid var(--blue); border-radius: 999px;
  background: var(--blue); color: #fff;
  padding: 8px 28px; font-size: 16px; letter-spacing: 2px; cursor: pointer;
  transition: background .2s ease, box-shadow .2s ease;
}
.prog-modal-foot button:hover { background: var(--blue-dark, #1F4FA0); box-shadow: 0 6px 14px rgba(42, 102, 200, .3); }

/* ===================== 响应式 ===================== */
@media (max-width: 640px) {
  .program-item { gap: 14px; padding: 18px 18px; }
  .pi-num { width: 46px; height: 46px; font-size: 17px; border-radius: 10px; }
  .pi-title { font-size: 18px; }
  .pi-summary { font-size: 14.5px; -webkit-line-clamp: 2; }
  .pi-arrow { display: none; }
  .pm-title-wrap h3 { font-size: 23px; }
  .pm-content p { font-size: 18px; }
  .prog-modal-body { padding: 20px 22px 24px; }
  .prog-modal-foot { padding: 12px 20px 16px; }
}

/* ============================================================
   CMS 补充段（组件翻译配套）
   ============================================================ */
/* 组件输出可能被平台套一层 form 壳：穿透掉，不破坏原有布局 */
.m-nav > form, .m-hero > form, .m-news-feat > form, .m-news-list > form,
.m-notices > form, .m-branch > form, .m-kj-1 > form, .m-kj-2 > form, .m-kj-3 > form { display: contents; }
/* 列表标题加链接后保持定稿观感（颜色继承、无下划线） */
.news-stack h3 a, .notice-grid article h3 a { color: inherit; text-decoration: none; }
/* 内页锚点：侧栏/正文/搜索结果组件穿透 form 壳与锚点自身，不破坏原布局 */
.m-side, .m-side > form, .m-article > form, .m-search > form { display: contents; }

/* 文章内容组件的浏览次数坑（平台脚本回填用，必须常驻；display:inline 避免撑出空隙） */
.article-meta .voteBox { display: inline; margin: 0; padding: 0; font: inherit; }

/* 系统翻页条（cssPageBar）复刻定稿 .pagination 视觉
   —— 选择器全部按 pb_sys_* 真实类逐个点名，不碰原型稿 .pagination，
      两套翻页条同页也不互相染色 */
.pb_sys_common.pb_sys_normal.pb_sys_style1 {
  display: flex; justify-content: center; align-items: center;
  flex-wrap: wrap; gap: 8px;
  margin: 28px 0 12px; padding: 0; border: 0; background: none;
  font-family: inherit; font-size: 16px; line-height: normal;
}
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_pages { display: contents; }
.pb_sys_common.pb_sys_normal.pb_sys_style1 :is(.p_no, .p_fun) { display: contents; }
.pb_sys_common.pb_sys_normal.pb_sys_style1 :is(.p_no, .p_fun) a,
.pb_sys_common.pb_sys_normal.pb_sys_style1 :is(.p_no_d, .p_fun_d, .p_dot) {
  display: block; min-width: 40px; padding: 7px 13px; box-sizing: border-box;
  text-align: center; font-size: 16px; color: var(--ink-2);
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  text-decoration: none;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.pb_sys_common.pb_sys_normal.pb_sys_style1 :is(.p_no, .p_fun) a:hover {
  color: var(--blue); border-color: rgba(42, 102, 200, .5);
}
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_no_d {
  background: linear-gradient(135deg, #2A66C8, #4A90E8);
  border-color: #2A66C8; color: #fff; font-weight: 600;
}
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_fun_d {
  color: var(--ink-3); background: transparent; border-style: dashed;
}
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_dot {
  border: 0; background: transparent; color: var(--ink-3);
}
.pb_sys_common.pb_sys_normal.pb_sys_style1 :is(.p_first, .p_first_d, .p_last, .p_last_d) { display: none; }
/* 系统按钮文字「上页/下页」换成定稿的「上一页/下一页」（盒与文字同载体，直接换字安全） */
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_prev a,
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_prev_d,
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_next a,
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_next_d { font-size: 0; }
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_prev a::before,
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_prev_d::before { content: "上一页"; font-size: 16px; }
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_next a::before,
.pb_sys_common.pb_sys_normal.pb_sys_style1 .p_next_d::before { content: "下一页"; font-size: 16px; }

/* ---- 侧栏两级：一级加粗，二级缩进小字 + 金点 ---- */
.side-nav a.l1  { font-weight: 600; color: var(--ink-1); }
.side-nav a.sub { position: relative; padding: 9px 24px 9px 48px; font-size: 15px; }
.side-nav a.sub::before {
  content: ""; position: absolute; left: 30px; top: 50%; transform: translateY(-50%);
  width: 5px; height: 5px; border-radius: 50%; background: var(--gold);
}

/* ---- 面包屑（当前位置组件）：末级不加粗，中间层链接同色 ---- */
.crumb b { font-weight: 400; }
.crumb a { color: inherit; }
.crumb a:hover { color: var(--blue); }

/* 科研机构卡片：整卡可点的透明链接层 */
.org-card { position: relative; }
.org-card .org-link { position: absolute; inset: 0; z-index: 2; }

/* 培养层次/专业设置：整行可点的透明链接层 */
.program-item { position: relative; }
.program-item .pi-go { position: absolute; inset: 0; z-index: 3; }
/* 系统翻页条与列表的间距对齐定稿（覆盖系统内联 margin-top:10px） */
.pb_sys_common.pb_sys_normal.pb_sys_style1 { margin-top: 28px !important; }

/* 侧栏只显示当前栏目分支：模板输出全部分支包在 .side-branch 里，当前分支加 .cur */
.side-nav .side-branch { display: none; }
.side-nav .side-branch.cur { display: contents; }



