/* ===========================================================
   蜀黍家教育官网 v2.0 — 设计系统
   主色深蓝 #0A2540 / 警蓝 #1A56DB / 警徽金 #D4A843
   =========================================================== */
:root {
  --navy-900: #042C53;
  --navy-800: #0A2540;
  --navy-700: #0C447C;
  --navy-600: #185FA5;
  --navy-500: #1A56DB;
  --navy-200: #B5D4F4;
  --navy-100: #E6F1FB;
  --navy-50: #F2F8FE;

  --gold-600: #BA7517;
  --gold-500: #D4A843;
  --gold-100: #FAEEDA;

  --gray-900: #1F2937;
  --gray-700: #374151;
  --gray-600: #5F5E5A;
  --gray-500: #888780;
  --gray-300: #D3D1C7;
  --gray-200: #E5E7EB;
  --gray-100: #F3F4F6;
  --gray-50: #F9FAFB;

  --white: #ffffff;
  --red: #E24B4A;
  --green: #1D9E75;

  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);
  --shadow-md: 0 4px 12px rgba(16, 24, 40, .08);
  --shadow-lg: 0 12px 32px rgba(16, 24, 40, .12);

  --ease: cubic-bezier(.34, 1.56, .64, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --maxw: 1200px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", sans-serif;
  color: var(--gray-900);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  font-size: 15px;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

/* ---------- 导航 ---------- */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--gray-200);
}
.nav .wrap { display: flex; align-items: center; gap: 8px; height: 66px; }
.nav .logo {
  display: flex; align-items: center; gap: 9px;
  font-size: 17px; font-weight: 600; color: var(--navy-800);
  margin-right: 22px; flex-shrink: 0;
}
.nav .logo img { height: 35px; width: auto; display: block; }
.nav .menu { display: flex; align-items: center; gap: 2px; flex: 1; }
.nav .menu a {
  padding: 9px 14px; border-radius: var(--radius-md);
  font-size: 15px; color: var(--gray-700);
  transition: all .2s var(--ease-out); position: relative;
}
.nav .menu a:hover { color: var(--navy-600); background: var(--navy-50); }
.nav .menu a.active { color: var(--navy-600); font-weight: 500; }
.nav .menu a.active::after {
  content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px;
  height: 2.5px; border-radius: 2px; background: var(--navy-500);
}
.nav .cta {
  background: var(--gold-600); color: #fff; font-size: 14px; font-weight: 500;
  padding: 10px 22px; border-radius: var(--radius-pill); flex-shrink: 0;
  transition: all .25s var(--ease);
}
.nav .cta:hover { background: #a36617; transform: translateY(-1px); box-shadow: var(--shadow-md); }
.nav-toggle { display: none; font-size: 22px; color: var(--navy-800); }

/* ---------- 通用 section ---------- */
.section { padding: 68px 0; }
.section.tight { padding: 48px 0; }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 26px; }
.sec-head h2 {
  font-size: 26px; font-weight: 600; color: var(--navy-800);
  letter-spacing: .3px; position: relative; padding-left: 16px;
}
.sec-head h2::before {
  content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 5px; height: 24px; border-radius: 3px;
  background: linear-gradient(180deg, var(--navy-500), var(--gold-500));
}
.sec-head .more { font-size: 14px; color: var(--navy-600); transition: gap .2s; }
.sec-head .more:hover { color: var(--gold-600); }
.sec-sub { font-size: 14px; color: var(--gray-500); margin-top: 6px; padding-left: 16px; }

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 12px 28px; border-radius: var(--radius-pill);
  font-size: 15px; font-weight: 500; transition: all .25s var(--ease);
}
.btn-primary { background: var(--navy-500); color: #fff; }
.btn-primary:hover { background: var(--navy-600); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-gold { background: var(--gold-600); color: #fff; }
.btn-gold:hover { background: #a36617; transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-ghost { background: transparent; color: var(--navy-600); border: 1px solid var(--navy-200); }
.btn-ghost:hover { background: var(--navy-50); border-color: var(--navy-500); }
.btn-light { background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.btn-light:hover { background: rgba(255,255,255,.24); }

/* ---------- 首页 2.1 Hero ---------- */
.hero { background: linear-gradient(160deg, var(--navy-800) 0%, var(--navy-900) 100%); padding: 34px 0; }
.hero .wrap { display: grid; grid-template-columns: 300px 1fr; gap: 20px; }

/* 左：赛道列表 */
.lanes { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-lg); padding: 20px 18px; }
.lanes h3 { color: #fff; font-size: 15px; font-weight: 600; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.lanes h3::before { content: ''; width: 3px; height: 15px; border-radius: 2px; background: var(--gold-500); }
.lanes a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px; border-radius: var(--radius-md); margin-bottom: 7px;
  font-size: 14.5px; color: #DDEAFB;
  background: rgba(255,255,255,.05);
  transition: all .25s var(--ease);
}
.lanes a:hover { background: var(--navy-500); color: #fff; transform: translateX(4px); }
.lanes a .arw { opacity: .5; font-size: 15px; }
.lanes a:hover .arw { opacity: 1; }

/* 右：轮播 */
.carousel { position: relative; border-radius: var(--radius-lg); overflow: hidden; min-height: 316px; }
.carousel .slide {
  position: absolute; inset: 0; opacity: 0;
  transition: opacity .7s var(--ease-out);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 30px 34px; color: #fff;
}
.carousel .slide.on { opacity: 1; }
.carousel .slide h3 { font-size: 26px; font-weight: 600; letter-spacing: .4px; line-height: 1.35; }
.carousel .slide p { font-size: 14.5px; color: rgba(255,255,255,.82); margin-top: 10px; max-width: 560px; }
.carousel .dots { position: absolute; right: 24px; bottom: 22px; display: flex; gap: 8px; z-index: 3; }
.carousel .dots i {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.4); cursor: pointer; transition: all .3s;
}
.carousel .dots i.on { width: 24px; border-radius: 4px; background: var(--gold-500); }

/* ---------- 2.2 招考资讯 ---------- */
.news-grid { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
.news-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-content: start; }
.ncard {
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg); padding: 18px;
  transition: all .28s var(--ease-out); position: relative; overflow: hidden;
}
.ncard::before {
  content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--navy-500), var(--gold-500));
  transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease-out);
}
.ncard:hover { border-color: var(--navy-200); box-shadow: var(--shadow-md); transform: translateY(-3px); }
.ncard:hover::before { transform: scaleX(1); }
.ncard .chip {
  display: inline-block; font-size: 12.5px; font-weight: 500; padding: 3px 11px;
  border-radius: var(--radius-pill); background: var(--navy-100); color: var(--navy-600); margin-bottom: 13px;
}
.ncard ul li { margin-bottom: 9px; }
.ncard ul li a {
  font-size: 13.8px; color: var(--gray-700); display: flex; gap: 7px;
  line-height: 1.5; transition: color .2s;
}
.ncard ul li a:hover { color: var(--navy-500); }
.ncard ul li a::before {
  content: ''; width: 4px; height: 4px; border-radius: 50%;
  background: var(--navy-200); margin-top: 8px; flex-shrink: 0;
}
.ncard ul li a:hover::before { background: var(--gold-500); }
.ncard .go { font-size: 12.8px; color: var(--navy-500); margin-top: 12px; display: inline-block; }

.latest {
  background: var(--gray-50); border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg); padding: 20px;
}
.home-cal { max-height: 460px; overflow-y: auto; padding-right: 4px; }
.home-cal::-webkit-scrollbar { width: 5px; }
.home-cal::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 3px; }
.home-cal::-webkit-scrollbar-track { background: transparent; }
.latest h4 {
  font-size: 15px; font-weight: 600; color: var(--navy-800);
  padding-bottom: 12px; border-bottom: 1px solid var(--gray-200); margin-bottom: 6px;
  display: flex; align-items: center; gap: 8px;
}
.latest h4::before { content: ''; width: 3px; height: 14px; border-radius: 2px; background: var(--gold-500); }
.latest li { padding: 11px 0; border-bottom: 1px dashed var(--gray-200); }
.latest li:last-child { border-bottom: none; }
.latest li a { font-size: 13.8px; color: var(--gray-700); line-height: 1.5; transition: color .2s; }
.latest li a:hover { color: var(--navy-500); }
.latest li .date { font-size: 12px; color: var(--gray-500); margin-top: 3px; }

/* ---------- 2.3 课程 ---------- */
.course-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ccard {
  border: 1px solid var(--gray-200); border-radius: var(--radius-lg); overflow: hidden;
  background: var(--white); transition: all .3s var(--ease-out);
}
.ccard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--navy-200); }
.ccard .cover {
  height: 150px; background: linear-gradient(135deg, var(--navy-700), var(--navy-500));
  position: relative; display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.9); font-size: 13px; letter-spacing: 1px;
}
.ccard .cover .corner {
  position: absolute; top: 12px; right: 12px; background: var(--gold-600); color: #fff;
  font-size: 12px; padding: 2px 10px; border-radius: var(--radius-pill);
}
.ccard .cover .corner.new { background: var(--navy-500); }
.ccard .body { padding: 16px; }
.ccard .body h4 { font-size: 15.5px; font-weight: 500; color: var(--gray-900); margin-bottom: 8px; }
.ccard .body .meta { font-size: 12.5px; color: var(--gray-500); margin-bottom: 12px; }

/* ---------- 2.4 常见问题/备考资料 ---------- */
.faq-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
.faq-tabs button {
  padding: 8px 20px; border-radius: var(--radius-pill); font-size: 14px;
  color: var(--gray-600); background: var(--white); border: 1px solid var(--gray-300);
  transition: all .22s var(--ease-out);
}
.faq-tabs button.on { background: var(--navy-700); color: #fff; border-color: var(--navy-700); }
.faq-tabs button:hover:not(.on) { border-color: var(--navy-500); color: var(--navy-600); }
.faq-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 36px; }
.faq-list li { border-bottom: 1px dashed var(--gray-200); }
.faq-list li a { display: flex; align-items: center; gap: 12px; padding: 15px 4px; transition: all .2s; }
.faq-list li a:hover { padding-left: 10px; }
.faq-list li .no {
  width: 22px; height: 22px; border-radius: 6px; background: var(--navy-100); color: var(--navy-600);
  font-size: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 500;
}
.faq-list li a:hover .no { background: var(--navy-500); color: #fff; }
.faq-list li .tt { font-size: 14px; color: var(--gray-700); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.faq-list li a:hover .tt { color: var(--navy-500); }
.faq-list li .dt { font-size: 12.5px; color: var(--gray-500); flex-shrink: 0; }

/* ---------- 2.5 师资（深蓝全宽） ---------- */
.teachers-sec { background: linear-gradient(160deg, var(--navy-900), var(--navy-800)); padding: 72px 0; }
.teachers-sec .sec-head h2 { color: #fff; }
.teachers-sec .sec-sub { color: var(--navy-200); }
.teacher-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tcard {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-lg); padding: 26px 20px; text-align: center;
  transition: all .3s var(--ease);
}
.tcard:hover { background: rgba(255,255,255,.1); transform: translateY(-4px); border-color: rgba(212,168,67,.4); }
.tcard .ava {
  width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 16px;
  background: linear-gradient(135deg, var(--navy-500), var(--navy-600));
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; color: #fff; font-weight: 500;
  border: 2px solid rgba(212,168,67,.35);
}
.tcard h4 { color: #fff; font-size: 17px; font-weight: 500; }
.tcard .role { color: var(--gold-500); font-size: 13px; margin-top: 5px; }
.tcard .desc { color: var(--navy-200); font-size: 12.8px; margin-top: 10px; line-height: 1.6; }

/* ---------- 2.6 三大智能系统 ---------- */
.sys-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.scard {
  background: linear-gradient(155deg, var(--navy-800), var(--navy-900));
  border-radius: var(--radius-lg); padding: 30px 28px; color: #fff;
  position: relative; overflow: hidden; transition: all .3s var(--ease);
}
.scard:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.scard::after {
  content: ''; position: absolute; right: -40px; top: -40px; width: 150px; height: 150px;
  border-radius: 50%; background: rgba(26,86,219,.22); transition: transform .5s var(--ease-out);
}
.scard:hover::after { transform: scale(1.3); }
.scard .ico {
  width: 46px; height: 46px; border-radius: 13px; background: rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
  position: relative; z-index: 1;
}
.scard .ico svg { width: 24px; height: 24px; stroke: var(--gold-500); fill: none; stroke-width: 1.8; }
.scard h4 { font-size: 18px; font-weight: 600; margin-bottom: 9px; position: relative; z-index: 1; }
.scard p { font-size: 13.5px; color: var(--navy-200); line-height: 1.65; position: relative; z-index: 1; }
.scard .go {
  margin-top: 20px; font-size: 13.5px; color: var(--gold-500); font-weight: 500;
  display: inline-flex; align-items: center; gap: 5px; position: relative; z-index: 1;
  transition: gap .25s;
}
.scard:hover .go { gap: 10px; }

/* ---------- 2.7 联系我们 ---------- */
.contact-sec { background: var(--navy-50); padding: 66px 0; }
.contact-grid { display: grid; grid-template-columns: 1fr 420px; gap: 48px; align-items: center; }
.contact-info h2 { font-size: 26px; font-weight: 600; color: var(--navy-800); margin-bottom: 14px; }
.contact-info p { font-size: 15px; color: var(--gray-600); line-height: 1.9; }
.contact-info .items { margin-top: 24px; display: flex; flex-direction: column; gap: 12px; }
.contact-info .items .it { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--navy-700); }
.contact-info .items .it b { color: var(--navy-800); font-weight: 500; }
.contact-info .items .it .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-500); }
.qr-row { display: flex; gap: 26px; justify-content: center; }
.qr-box { text-align: center; }
.qr-box .frame {
  width: 168px; height: 168px; background: #fff; border: 1px solid var(--navy-200);
  border-radius: var(--radius-lg); padding: 10px; box-shadow: var(--shadow-sm);
}
.qr-box .frame img { width: 100%; height: 100%; object-fit: contain; }
.qr-box .cap { font-size: 13.5px; color: var(--navy-700); margin-top: 11px; font-weight: 500; }

/* ---------- 底栏 ---------- */
.footer { background: var(--navy-900); color: var(--navy-200); padding: 52px 0 0; }
.footer .cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 36px; padding-bottom: 40px; }
.footer .logo { display: block; margin-bottom: 14px; }
.footer .about { font-size: 13.2px; line-height: 1.9; color: rgba(181,212,244,.75); }
.footer h5 { color: #fff; font-size: 14.5px; font-weight: 500; margin-bottom: 16px; }
.footer li { margin-bottom: 10px; }
.footer li a { font-size: 13.5px; color: rgba(181,212,244,.8); transition: color .2s; }
.footer li a:hover { color: var(--gold-500); }
.footer .bottom {
  border-top: 1px solid rgba(255,255,255,.1); padding: 20px 0;
  text-align: center; font-size: 12.8px; color: rgba(181,212,244,.6);
}

/* ---------- 内页 banner ---------- */
.page-hero { background: linear-gradient(160deg, var(--navy-800), var(--navy-900)); padding: 46px 0; }
.page-hero h1 { color: #fff; font-size: 30px; font-weight: 600; letter-spacing: .5px; }
.page-hero p { color: var(--navy-200); font-size: 14.5px; margin-top: 9px; }
.crumb { font-size: 13px; color: rgba(181,212,244,.7); margin-bottom: 12px; }
.crumb a:hover { color: var(--gold-500); }

/* ---------- 校区页：左菜单 + 右内容 ---------- */
.campus-layout { display: grid; grid-template-columns: 210px 1fr; gap: 28px; align-items: start; }
.dir-menu {
  background: var(--navy-800); border-radius: var(--radius-lg); padding: 18px 14px;
  position: sticky; top: 82px;
}
.dir-menu h3 { color: #fff; font-size: 14px; font-weight: 600; padding: 0 8px 12px; display: flex; align-items: center; gap: 8px; }
.dir-menu h3::before { content: ''; width: 3px; height: 14px; border-radius: 2px; background: var(--gold-500); }
.dir-menu button {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: 12px 14px; border-radius: var(--radius-md); margin-bottom: 6px;
  font-size: 14px; color: var(--navy-200); text-align: left;
  transition: all .25s var(--ease-out);
}
.dir-menu button:hover { background: rgba(255,255,255,.07); color: #fff; }
.dir-menu button.on { background: var(--navy-600); color: #fff; }
.dir-menu button .arw { opacity: .5; }
.dir-menu button.on .arw { opacity: 1; color: var(--gold-500); }

.campus-panel h3 { font-size: 17px; font-weight: 600; color: var(--navy-800); margin-bottom: 4px; }
.campus-panel .sum { font-size: 13.5px; color: var(--gray-500); margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--gray-200); }
.campus-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.campus-card {
  border: 1px solid var(--gray-200); border-radius: var(--radius-lg); overflow: hidden;
  background: #fff; transition: all .3s var(--ease-out);
}
.campus-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--navy-200); }
.campus-card .photo {
  height: 118px; background: linear-gradient(135deg, #E6F1FB, #B5D4F4);
  display: flex; align-items: center; justify-content: center; color: var(--navy-600);
  font-size: 13px; position: relative;
}
.campus-card .photo .flag {
  position: absolute; left: 12px; top: 12px; background: var(--navy-700); color: #fff;
  font-size: 12px; padding: 2px 10px; border-radius: var(--radius-pill);
}
.campus-card .body { padding: 15px 16px; }
.campus-card .body h4 { font-size: 15.5px; font-weight: 500; color: var(--gray-900); margin-bottom: 8px; }
.campus-card .body .addr { font-size: 12.8px; color: var(--gray-500); line-height: 1.6; margin-bottom: 6px; min-height: 40px; }
.campus-card .body .tel { font-size: 12.8px; color: var(--navy-600); }
.campus-card .body .go { font-size: 13px; color: var(--navy-500); margin-top: 12px; display: inline-block; }

/* ---------- 赛道样板页（lane） ---------- */
.lane-layout { display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: start; }

/* 左侧固定菜单 */
.lane-menu {
  background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg);
  padding: 10px; position: sticky; top: 82px;
}
.lane-menu a {
  display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: var(--radius-md);
  font-size: 14.5px; color: var(--gray-700); margin-bottom: 3px; transition: all .22s var(--ease-out);
}
.lane-menu a:hover { background: var(--navy-50); color: var(--navy-600); }
.lane-menu a.on { background: var(--navy-700); color: #fff; }
.lane-menu a.on svg { stroke: var(--gold-500); }
.lane-menu a svg { width: 17px; height: 17px; stroke: var(--navy-500); fill: none; stroke-width: 1.8; flex-shrink: 0; }

/* 右侧内容面板 */
.lane-main { min-width: 0; }
.lane-panel { display: none; animation: laneIn .34s var(--ease-out); }
.lane-panel.on { display: block; }
@keyframes laneIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.lane-panel > h2 {
  font-size: 22px; font-weight: 600; color: var(--navy-800); margin-bottom: 6px;
  padding-left: 14px; position: relative;
}
.lane-panel > h2::before {
  content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 4px; height: 20px; border-radius: 2px; background: linear-gradient(180deg, var(--navy-500), var(--gold-500));
}
.lane-panel > .sub { font-size: 13.5px; color: var(--gray-500); margin: 0 0 22px 14px; }

/* 业务介绍：图文块 */
.intro-block { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; margin-bottom: 30px; }
.intro-block .txt h3 { font-size: 18px; font-weight: 600; color: var(--navy-800); margin-bottom: 12px; }
.intro-block .txt p { font-size: 14.5px; line-height: 1.9; color: var(--gray-600); margin-bottom: 12px; }
.intro-block .pic {
  height: 220px; border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--navy-100), var(--navy-200));
  display: flex; align-items: center; justify-content: center; color: var(--navy-600); font-size: 13px;
}
.feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.feat {
  background: var(--navy-50); border-radius: var(--radius-lg); padding: 20px 18px; transition: all .25s var(--ease-out);
}
.feat:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.feat .ico {
  width: 40px; height: 40px; border-radius: 11px; background: var(--navy-500);
  display: flex; align-items: center; justify-content: center; margin-bottom: 12px;
}
.feat .ico svg { width: 21px; height: 21px; stroke: #fff; fill: none; stroke-width: 1.9; }
.feat h4 { font-size: 15px; font-weight: 600; color: var(--navy-800); margin-bottom: 6px; }
.feat p { font-size: 13px; color: var(--gray-600); line-height: 1.65; }

/* 考试日历 */
.cal-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; }
.cal-tabs button {
  padding: 7px 18px; border-radius: var(--radius-pill); font-size: 13.5px; color: var(--gray-600);
  border: 1px solid var(--gray-300); background: #fff; transition: all .2s;
}
.cal-tabs button:hover:not(.on) { border-color: var(--navy-500); color: var(--navy-600); }
.cal-tabs button.on { background: var(--navy-700); color: #fff; border-color: var(--navy-700); }
.timeline { position: relative; padding-left: 22px; }
.timeline::before { content: ''; position: absolute; left: 5px; top: 6px; bottom: 6px; width: 2px; background: var(--gray-200); }
.tl-item { position: relative; padding: 0 0 22px 0; }
.tl-item::before {
  content: ''; position: absolute; left: -21px; top: 5px; width: 10px; height: 10px; border-radius: 50%;
  background: #fff; border: 2.5px solid var(--navy-500);
}
.tl-item.done::before { background: var(--navy-500); }
.tl-item .d { font-size: 12.5px; color: var(--navy-600); font-weight: 500; }
.tl-item .n { font-size: 14.5px; color: var(--gray-800); margin: 3px 0; font-weight: 500; }
.tl-item .t { font-size: 13px; color: var(--gray-500); }
.tl-item .st {
  font-size: 11.5px; padding: 1px 9px; border-radius: var(--radius-pill);
  background: var(--gold-100); color: var(--gold-600); margin-left: 8px;
}

/* 资料卡（备考资料） */
.res-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.res-card {
  border: 1px solid var(--gray-200); border-radius: var(--radius-lg); overflow: hidden;
  background: #fff; transition: all .28s var(--ease-out);
}
.res-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--navy-200); }
.res-card .cover {
  height: 132px; background: linear-gradient(135deg, var(--navy-100), var(--navy-200));
  display: flex; align-items: center; justify-content: center; color: var(--navy-600); font-size: 12.5px; position: relative;
}
.res-card .cover img { width: 100%; height: 100%; object-fit: cover; }
.res-card .body { padding: 15px 16px; }
.res-card .body h4 { font-size: 15px; font-weight: 500; color: var(--gray-900); margin-bottom: 8px; line-height: 1.45; }
.res-card .body p { font-size: 12.8px; color: var(--gray-500); line-height: 1.6; margin-bottom: 12px; min-height: 40px; }
.res-card .body .dl { font-size: 13px; color: var(--navy-600); display: inline-flex; align-items: center; gap: 5px; }
.res-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.res-tags .res-tag {
  font-size: 11px; padding: 2px 9px; border-radius: var(--radius-pill);
  background: var(--navy-50, #EEF4FB); color: var(--navy-600); border: 1px solid var(--navy-100, #DCE7F5);
}

/* 考试日历独立页 */
.cal-page { display: flex; flex-direction: column; gap: 34px; }
.cal-group { background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 26px 30px 8px; }
.cal-lane {
  font-size: 16px; font-weight: 600; color: var(--gray-900); margin-bottom: 20px;
  padding-left: 12px; border-left: 3px solid var(--gold-500); line-height: 1.2;
}
.cal-row { padding-bottom: 20px; }
@media (max-width: 640px) {
  .cal-group { padding: 20px 18px 6px; }
}

/* 相关课程小卡 */
.mini-course { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.mc {
  display: flex; gap: 16px; border: 1px solid var(--gray-200); border-radius: var(--radius-lg);
  padding: 16px; background: #fff; transition: all .25s var(--ease-out);
}
.mc:hover { border-color: var(--navy-200); box-shadow: var(--shadow-md); transform: translateY(-3px); }
.mc .cov {
  width: 96px; height: 96px; border-radius: var(--radius-md); flex-shrink: 0;
  background: linear-gradient(135deg, var(--navy-100), var(--navy-200));
  display: flex; align-items: center; justify-content: center; color: var(--navy-600); font-size: 11.5px;
}
.mc .info { min-width: 0; }
.mc .info h4 { font-size: 15px; font-weight: 500; color: var(--gray-900); margin-bottom: 6px; }
.mc .info .meta { font-size: 12.5px; color: var(--gray-500); margin-bottom: 10px; line-height: 1.5; }

/* 报名咨询块 */
.consult-box {
  background: linear-gradient(155deg, var(--navy-800), var(--navy-900)); border-radius: var(--radius-xl);
  padding: 40px 38px; color: #fff; display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: center;
}
.consult-box h3 { font-size: 22px; font-weight: 600; margin-bottom: 12px; }
.consult-box p { font-size: 14px; color: var(--navy-200); line-height: 1.85; }
.consult-box .items { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.consult-box .items .it { font-size: 14px; color: #DDEAFB; display: flex; align-items: center; gap: 9px; }
.consult-box .items .it b { color: #fff; font-weight: 500; }
.consult-box .items .it .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-500); flex-shrink: 0; }
.consult-box .qr-row { display: flex; gap: 22px; }
.consult-box .qr-box .frame { width: 140px; height: 140px; background: #fff; border-radius: var(--radius-lg); padding: 9px; }
.consult-box .qr-box .frame img { width: 100%; height: 100%; object-fit: contain; }
.consult-box .qr-box .cap { font-size: 13px; color: #DDEAFB; margin-top: 10px; text-align: center; }

@media (max-width: 1024px) {
  .lane-layout { grid-template-columns: 1fr; }
  .lane-menu { position: static; display: flex; flex-wrap: wrap; gap: 6px; padding: 12px; }
  .lane-menu a { width: auto; margin: 0; }
  .intro-block { grid-template-columns: 1fr; }
  .feat-grid, .res-grid { grid-template-columns: repeat(2, 1fr); }
  .mini-course { grid-template-columns: 1fr; }
  .consult-box { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .feat-grid, .res-grid { grid-template-columns: 1fr; }
}

/* ---------- 师资页（按科目分组） ---------- */
.teacher-subject-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 30px; }
.teacher-subject-tabs button {
  padding: 9px 22px; border-radius: var(--radius-pill); font-size: 14px; color: var(--gray-600);
  border: 1px solid var(--gray-300); background: #fff; transition: all .22s;
}
.teacher-subject-tabs button:hover:not(.on) { border-color: var(--navy-500); color: var(--navy-600); }
.teacher-subject-tabs button.on { background: var(--navy-700); color: #fff; border-color: var(--navy-700); }

.subject-group { margin-bottom: 42px; }
.subject-group.hide { display: none; }
.subject-group .group-head {
  display: flex; align-items: center; gap: 12px; margin-bottom: 18px;
  padding-bottom: 12px; border-bottom: 1px solid var(--gray-200);
}
.subject-group .group-head h3 { font-size: 19px; font-weight: 600; color: var(--navy-800); display: flex; align-items: center; gap: 9px; }
.subject-group .group-head h3::before { content: ''; width: 4px; height: 19px; border-radius: 2px; background: linear-gradient(180deg, var(--navy-500), var(--gold-500)); }
.subject-group .group-head .cnt { font-size: 13px; color: var(--gray-500); }

.teachers-page .teacher-grid { grid-template-columns: repeat(4, 1fr); }
.tcard-lg {
  background: var(--navy-50); border: 1px solid var(--gray-200); border-radius: var(--radius-lg);
  padding: 24px 18px; text-align: center; transition: all .28s var(--ease-out);
}
.tcard-lg:hover { background: #fff; box-shadow: var(--shadow-lg); border-color: var(--navy-200); transform: translateY(-4px); }
.tcard-lg .ava {
  width: 80px; height: 80px; border-radius: 50%; margin: 0 auto 14px;
  background: linear-gradient(135deg, var(--navy-500), var(--navy-700));
  display: flex; align-items: center; justify-content: center; font-size: 26px; color: #fff; font-weight: 500;
}
.tcard-lg h4 { font-size: 16.5px; font-weight: 500; color: var(--navy-800); }
.tcard-lg .role { font-size: 13px; color: var(--gold-600); margin-top: 5px; }
.tcard-lg .desc { font-size: 12.8px; color: var(--gray-600); margin-top: 10px; line-height: 1.6; }

@media (max-width: 1024px) {
  .teachers-page .teacher-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .teachers-page .teacher-grid { grid-template-columns: 1fr; }
}

/* ---------- 通用列表页/详情 ---------- */
.list-page .item {
  display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--gray-200);
  transition: all .25s;
}
.list-page .item:hover { padding-left: 8px; }
.list-page .item h4 { font-size: 17px; font-weight: 500; color: var(--gray-900); margin-bottom: 9px; }
.list-page .item p { font-size: 13.8px; color: var(--gray-500); line-height: 1.65; margin-bottom: 10px; }
.list-page .item .meta { font-size: 12.5px; color: var(--gray-500); display: flex; gap: 16px; }
.list-page .item:hover h4 { color: var(--navy-500); }

.article { max-width: 820px; margin: 0 auto; }
.article h1 { font-size: 28px; font-weight: 600; color: var(--navy-800); line-height: 1.4; margin-bottom: 16px; }
.article .meta { font-size: 13.5px; color: var(--gray-500); display: flex; gap: 18px; padding-bottom: 22px; border-bottom: 1px solid var(--gray-200); margin-bottom: 28px; }
.article .content { font-size: 16px; line-height: 2; color: var(--gray-700); }
.article .content p { margin-bottom: 18px; }
.article .content h2 { font-size: 20px; font-weight: 600; color: var(--navy-800); margin: 30px 0 14px; }
.article .content img { border-radius: var(--radius-md); margin: 18px 0; }
.article .content video, .article .content iframe { max-width: 100%; width: 100%; border-radius: var(--radius-md); margin: 18px 0; border: none; }
.article .content iframe { aspect-ratio: 16/9; }
.article .att-item {
  display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--gray-50);
  border: 1px solid var(--gray-200); border-radius: var(--radius-md); font-size: 13.5px; margin-bottom: 9px;
  transition: all .2s;
}
.article .att-item:hover { border-color: var(--navy-500); background: #fff; }
.article .att-item svg { stroke: var(--navy-500); flex-shrink: 0; }
.article .att-item .nm { flex: 1; color: var(--gray-700); }

/* 师资详情 */
.teacher-detail { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: start; }
.teacher-detail .side { background: var(--navy-50); border-radius: var(--radius-lg); padding: 30px; text-align: center; position: sticky; top: 82px; }
.teacher-detail .side .ava {
  width: 120px; height: 120px; border-radius: 50%; margin: 0 auto 18px;
  background: linear-gradient(135deg, var(--navy-500), var(--navy-700));
  display: flex; align-items: center; justify-content: center; font-size: 40px; color: #fff;
}
.teacher-detail .side h2 { font-size: 22px; font-weight: 600; color: var(--navy-800); }
.teacher-detail .side .role { color: var(--gold-600); font-size: 14px; margin-top: 6px; }
.teacher-detail .side .tags { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 18px; }
.teacher-detail .side .tags span { font-size: 12.5px; padding: 3px 12px; border-radius: var(--radius-pill); background: var(--white); color: var(--navy-600); border: 1px solid var(--navy-200); }
.teacher-detail .main h3 { font-size: 19px; font-weight: 600; color: var(--navy-800); margin: 0 0 14px; padding-left: 14px; position: relative; }
.teacher-detail .main h3::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 18px; border-radius: 2px; background: var(--navy-500); }
.teacher-detail .main .block { margin-bottom: 34px; font-size: 15px; line-height: 1.95; color: var(--gray-700); }

/* 课程卡网格（列表页） */
.course-list-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

/* 题库入口 */
.bank-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.bank-card {
  background: linear-gradient(155deg, var(--navy-800), var(--navy-900));
  border-radius: var(--radius-xl); padding: 40px 36px; color: #fff; position: relative; overflow: hidden;
  transition: all .32s var(--ease);
}
.bank-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.bank-card h3 { font-size: 22px; font-weight: 600; margin-bottom: 12px; }
.bank-card p { font-size: 14px; color: var(--navy-200); line-height: 1.75; margin-bottom: 24px; }
.bank-card::after { content: ''; position: absolute; right: -50px; bottom: -50px; width: 180px; height: 180px; border-radius: 50%; background: rgba(26,86,219,.2); }

/* 关于我们 */
.about-block { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; margin-bottom: 56px; }
.about-block .txt h2 { font-size: 24px; font-weight: 600; color: var(--navy-800); margin-bottom: 16px; }
.about-block .txt p { font-size: 15px; line-height: 1.95; color: var(--gray-600); margin-bottom: 14px; }
.about-block .pic { height: 280px; border-radius: var(--radius-xl); background: linear-gradient(135deg, var(--navy-100), var(--navy-200)); display: flex; align-items: center; justify-content: center; color: var(--navy-600); }
.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.stat-card { background: var(--navy-50); border-radius: var(--radius-lg); padding: 28px 20px; text-align: center; }
.stat-card .n { font-size: 32px; font-weight: 600; color: var(--navy-700); }
.stat-card .l { font-size: 13.5px; color: var(--gray-600); margin-top: 8px; }

/* 分页 */
.pager { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.pager a, .pager span {
  min-width: 38px; height: 38px; padding: 0 12px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center; font-size: 14px;
  border: 1px solid var(--gray-200); color: var(--gray-700); transition: all .2s;
}
.pager a:hover { border-color: var(--navy-500); color: var(--navy-600); }
.pager .on { background: var(--navy-500); color: #fff; border-color: var(--navy-500); }

/* 响应式 */
@media (max-width: 1024px) {
  .hero .wrap { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; }
  .news-cards { grid-template-columns: repeat(2, 1fr); }
  .course-grid, .teacher-grid { grid-template-columns: repeat(2, 1fr); }
  .sys-grid { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; gap: 30px; }
  .campus-layout { grid-template-columns: 1fr; }
  .dir-menu { position: static; display: flex; flex-wrap: wrap; gap: 6px; }
  .dir-menu h3 { width: 100%; }
  .dir-menu button { width: auto; margin: 0; }
  .campus-grid { grid-template-columns: repeat(2, 1fr); }
  .footer .cols { grid-template-columns: 1fr 1fr; }
  .course-list-grid { grid-template-columns: repeat(2, 1fr); }
  .bank-grid { grid-template-columns: 1fr; }
  .about-block { grid-template-columns: 1fr; }
  .stat-row { grid-template-columns: repeat(2, 1fr); }
  .teacher-detail { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .nav .menu { display: none; }
  .nav-toggle { display: block; margin-left: auto; }
  .nav .cta { padding: 8px 16px; font-size: 13px; }
  .news-cards, .course-grid, .teacher-grid, .campus-grid, .faq-list, .course-list-grid { grid-template-columns: 1fr; }
  .sec-head h2 { font-size: 21px; }
}

/* 列表条目标签 */
.m-tag {
  display: inline-block; font-size: 11.5px; padding: 1px 9px; border-radius: var(--radius-pill);
  background: var(--navy-50); color: var(--navy-600); border: 1px solid var(--navy-100); margin-right: 6px;
}
.m-tag.st-upcoming { background: #FFF4E5; color: #B4770B; border-color: #F7E2BE; }
.m-tag.st-ongoing { background: #E7F5EC; color: #1D9E75; border-color: #CDEBD9; }
.m-tag.st-ended { background: var(--gray-100); color: var(--gray-500); border-color: var(--gray-200); }
.tag-top { font-size: 11px; padding: 1px 8px; border-radius: 99px; background: #FAF3E2; color: #BA7517; }

/* 详情页标签组 */
.art-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
.art-tags .a-tag {
  font-size: 12px; padding: 3px 12px; border-radius: var(--radius-pill);
  background: #fff; border: 1px solid var(--gray-300); color: var(--gray-600);
}
.art-tags .a-tag.st-ongoing { background: #E7F5EC; color: #1D9E75; border-color: #CDEBD9; }
.art-tags .a-tag.st-upcoming { background: #FFF4E5; color: #B4770B; border-color: #F7E2BE; }
.art-tags .a-tag.st-ended { background: var(--gray-100); color: var(--gray-500); }
/* 招考资讯关键信息条 */
.apply-info {
  display: flex; flex-wrap: wrap; gap: 26px; padding: 16px 20px; margin: 20px 0;
  background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: var(--radius-lg);
}
.apply-info .ai { font-size: 13.5px; color: var(--gray-600); }
.apply-info .ai b { display: block; font-size: 16px; color: var(--gray-900); font-weight: 600; margin-top: 3px; }
