/* ============================================================
   内容子页面组件样式(学生手册/活动/福利/关于/赞助我们 共用)
   壳层与通用件在 site.css;这里只放子页面特有组件。
   ============================================================ */

/* ---------- 学生手册:落地流程时间轴 ---------- */
.flowWrap { margin-top: 22px; border: 1px solid var(--line); background: var(--surface); padding: 20px clamp(14px, 2.4vw, 26px) 16px; overflow-x: auto; }
.flowLabel { font-size: 10px; letter-spacing: 3px; color: var(--calm); font-weight: bold; margin-bottom: 14px; }
.flow { display: flex; align-items: flex-start; min-width: 640px; }
.fStep { flex: 1; text-align: center; position: relative; cursor: pointer; text-decoration: none; color: inherit; }
.fStep::before { content: ''; position: absolute; top: 14px; left: 50%; width: 100%; height: 1.5px; background: var(--line); }
.fStep:last-child::before { display: none; }
.fStep .dot2 {
  width: 28px; height: 28px; border-radius: 50%; border: 1.6px solid var(--maroonHi);
  background: var(--bg); color: var(--maroonHi);
  font-family: Georgia, serif; font-size: 12px; font-weight: 900;
  display: flex; align-items: center; justify-content: center; margin: 0 auto;
  position: relative; z-index: 1; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease;
}
.fStep:hover .dot2 { background: var(--maroon); color: #fff; transform: scale(1.15); }
.fStep b { display: block; font-size: 12px; font-weight: 800; margin-top: 8px; letter-spacing: 1px; }
.fStep span { display: block; font-size: 9.5px; color: var(--dim); margin-top: 2px; }

/* ---------- 学生手册:搜索行 + 条目卡网格 ---------- */
.toolRow { display: flex; gap: 10px; margin: 22px 0 4px; flex-wrap: wrap; align-items: center; }
.search { flex: 1; min-width: 200px; border: 1px solid var(--line); background: var(--surface); padding: 9px 14px; font-size: 12px; color: var(--dim); border-radius: 999px; }
.entries { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.entry {
  border: 1px solid var(--line); background: var(--surface); padding: 15px 16px 13px;
  cursor: pointer; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; position: relative;
  text-decoration: none; color: inherit; display: block;
}
.entry:hover { border-color: var(--maroonHi); transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08); }
.entry h4 { font-size: 13.5px; font-weight: 900; letter-spacing: 0.5px; }
.entry h4 .pin { font-size: 11px; color: var(--calm); margin-left: 5px; }
.entry p { font-size: 11px; color: var(--dim); line-height: 1.75; margin-top: 5px; }
.entry .go { position: absolute; right: 12px; top: 14px; color: var(--orange); font-size: 12px; opacity: 0; transform: translateX(-6px); transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; }
.entry:hover .go { opacity: 1; transform: translateX(0); }

/* ---------- 活动:即将开始大卡 ---------- */
.upCard { display: flex; gap: clamp(14px, 2.4vw, 26px); padding: 22px 6px; border-bottom: 1px solid var(--line); cursor: pointer; transition: background 0.25s ease; align-items: center; text-decoration: none; color: inherit; }
.upCard:hover { background: var(--hoverBg); }
.upPoster { width: clamp(180px, 22vw, 240px); aspect-ratio: 4 / 2.5; flex: none; border: 1px solid var(--line); position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 12px 14px; }
.upPoster .pm { position: absolute; top: -4px; right: 8px; font-size: 54px; font-family: Georgia, 'Songti SC', serif; font-weight: bold; color: var(--ink); opacity: 0.08; }
.upPoster .pn { font-size: 13px; font-weight: 900; }
.upDate { flex: none; text-align: center; border-right: 1px solid var(--line); padding-right: clamp(14px, 2vw, 24px); }
.upDate .d { font-size: 34px; font-weight: 900; font-family: Georgia, serif; color: var(--maroonHi); line-height: 1; }
.upDate .m { font-size: 9px; letter-spacing: 2px; color: var(--dim); margin-top: 4px; }
.upBody { flex: 1; min-width: 0; }
.upBody h3 { font-size: clamp(16px, 2vw, 20px); font-weight: 900; letter-spacing: 1px; margin-bottom: 6px; }
.upBody p { font-size: 12px; color: var(--dim); line-height: 1.8; }
.upMeta { display: flex; gap: 16px; margin-top: 8px; font-size: 10.5px; color: var(--ink); opacity: 0.75; flex-wrap: wrap; }
.upMeta span::before { content: '· '; color: var(--maroonHi); font-weight: 900; }
.badge { display: inline-block; font-size: 9px; letter-spacing: 2px; padding: 2px 10px; border-radius: 999px; font-weight: bold; margin-bottom: 8px; border: 1px solid currentColor; }
.badge.open { color: var(--calm); }
.badge.soon { color: var(--maroonHi); }
.upGo { flex: none; color: var(--maroonHi); font-weight: 700; font-size: 12px; opacity: 0; transform: translateX(-8px); transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; }
.upCard:hover .upGo { opacity: 1; transform: translateX(0); }

/* ---------- 活动:往届归档(自动沉底,灰度) ---------- */
.pastGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; padding: 12px 0 4px; }
.pastCard { border: 1px solid var(--line); cursor: pointer; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; text-decoration: none; color: inherit; display: block; }
.pastCard .pp { aspect-ratio: 4 / 2.5; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 10px 12px; filter: grayscale(0.85); opacity: 0.68; transition: filter 0.3s ease, opacity 0.3s ease; }
.pastCard:hover .pp { filter: grayscale(0); opacity: 1; }
.pastCard:hover { border-color: var(--maroonHi); transform: translateY(-3px); }
.pastCard .pm { position: absolute; top: -6px; right: 8px; font-size: 44px; font-family: Georgia, 'Songti SC', serif; font-weight: bold; color: var(--ink); opacity: 0.08; }
.pastCard .pn { font-size: 12px; font-weight: 900; }
.pastCard .pInfo { padding: 9px 12px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: baseline; }
.pastCard .pInfo b { font-size: 11.5px; font-weight: 800; }
.pastCard .pInfo span { font-size: 9.5px; color: var(--dim); }
.secHint { margin-left: auto; font-size: 10px; color: var(--dim); }
.yr { font-family: Georgia, serif; font-size: 15px; color: var(--maroonHi); }

/* ---------- 赞助福利:赞助商条目 ---------- */
.tabs { display: flex; gap: 8px; margin: 22px 0 6px; flex-wrap: wrap; }
.sCard { display: flex; gap: clamp(14px, 2.4vw, 26px); padding: 24px 6px; border-bottom: 1px solid var(--line); cursor: pointer; transition: background 0.25s ease; align-items: center; text-decoration: none; color: inherit; }
.sCard:hover { background: var(--hoverBg); }
.sPoster { width: clamp(180px, 22vw, 240px); aspect-ratio: 4 / 2.5; flex: none; border: 1px solid var(--line); position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 12px 14px; }
.sPoster .pm { position: absolute; top: -4px; right: 8px; font-size: 54px; font-family: Georgia, 'Songti SC', serif; font-weight: bold; color: var(--ink); opacity: 0.08; }
.sPoster .pn { font-size: 13px; font-weight: 900; }
.sPoster .pe { font-size: 8px; letter-spacing: 2px; color: var(--dim); }
.sBody { flex: 1; min-width: 0; }
.sTag { display: inline-block; font-size: 9px; letter-spacing: 2px; color: var(--calm); border: 1px solid currentColor; padding: 2px 9px; border-radius: 999px; font-weight: bold; margin-bottom: 8px; }
.sTag.main { color: var(--maroonHi); }
.sBody h3 { font-size: clamp(16px, 2vw, 20px); font-weight: 900; letter-spacing: 1px; margin-bottom: 6px; }
.sBody h3 small { font-size: 10px; color: var(--dim); letter-spacing: 2px; font-weight: bold; margin-left: 8px; }
.sBody p { font-size: 12px; color: var(--dim); line-height: 1.85; max-width: 520px; }
.sPerks { display: flex; gap: 14px; margin-top: 9px; flex-wrap: wrap; }
.sPerks span { font-size: 10.5px; color: var(--ink); opacity: 0.75; }
.sPerks span::before { content: '· '; color: var(--maroonHi); font-weight: 900; }
.sGo { flex: none; color: var(--maroonHi); font-weight: 700; font-size: 12px; opacity: 0; transform: translateX(-8px); transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; }
.sCard:hover .sGo { opacity: 1; transform: translateX(0); }

/* ---------- 关于:简介/部门/理事/纳新 ---------- */
.intro { display: flex; gap: clamp(20px, 4vw, 48px); margin-top: 26px; align-items: flex-start; }
.intro .txtCol { flex: 1.4; }
.intro p { font-size: 13px; line-height: 2.05; opacity: 0.88; margin-bottom: 10px; }
.intro .emblemBox { flex: 1; display: flex; justify-content: center; padding-top: 8px; }
.intro .emblemBox svg { width: clamp(140px, 16vw, 190px); }
.depts { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.dept { border: 1px solid var(--line); background: var(--surface); padding: 16px 16px 14px; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; }
.dept:hover { border-color: var(--maroonHi); transform: translateY(-3px); }
.dept b { font-size: 13.5px; font-weight: 900; letter-spacing: 1px; display: flex; align-items: baseline; gap: 8px; }
.dept b i { font-style: normal; font-family: Georgia, serif; font-size: 11px; color: var(--maroonHi); opacity: 0.9; }
.dept p { font-size: 11px; color: var(--dim); line-height: 1.8; margin-top: 6px; }
.people { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }
.person { border: 1px solid var(--line); padding: 18px 10px 14px; text-align: center; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; }
.person:hover { border-color: var(--maroonHi); transform: translateY(-3px); }
.person .ava {
  width: 52px; height: 52px; border-radius: 50%; border: 1.6px dashed var(--maroonHi);
  margin: 0 auto 10px; display: flex; align-items: center; justify-content: center;
  font-family: Georgia, 'Songti SC', serif; font-size: 20px; font-weight: bold; color: var(--maroonHi);
}
.person b { font-size: 12.5px; font-weight: 900; display: block; }
.person span { font-size: 10px; color: var(--dim); letter-spacing: 1px; }
.joinBox { margin-top: 34px; border: 1px solid var(--maroonHi); background: var(--surface); padding: 24px clamp(18px, 3vw, 34px); display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.joinBox .big { font-size: clamp(14px, 1.9vw, 18px); font-weight: 900; letter-spacing: 1px; }
.joinBox .subT { font-size: 12px; color: var(--dim); margin-top: 4px; }
.joinBox .btnSolid { margin-left: auto; flex: none; }

/* ---------- 赞助我们:开场/数据带/权益/流程/CTA ---------- */
.lead { font-size: clamp(15px, 1.9vw, 19px); font-weight: 900; line-height: 1.9; letter-spacing: 1px; margin: 26px 0 8px; max-width: 620px; }
.lead em { font-style: normal; color: var(--maroonHi); }
.leadSub { font-size: 12.5px; color: var(--dim); line-height: 1.9; max-width: 560px; }
.stats { display: flex; margin: 30px 0 6px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stat { flex: 1; padding: 18px 10px; text-align: center; border-left: 1px solid var(--line); }
.stat:first-child { border-left: none; }
.stat .n { font-size: clamp(22px, 3vw, 32px); font-weight: 900; font-family: Georgia, serif; color: var(--maroonHi); }
.stat .n small { font-size: 12px; }
.stat .t { font-size: 10px; color: var(--dim); letter-spacing: 2px; margin-top: 4px; }
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tier { border: 1px solid var(--line); padding: 20px 20px 18px; position: relative; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease, color 0.25s ease; background: var(--surface); }
.tier:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.10); border-color: var(--maroonHi); }
.tier.hero { border-color: var(--maroonHi); }
.tier.hero::before { content: '最受欢迎'; position: absolute; top: -9px; left: 16px; background: var(--maroon); color: #fff; font-size: 9px; letter-spacing: 2px; padding: 2px 10px; border-radius: 2px; }
.tier h3 { font-size: 15px; font-weight: 900; letter-spacing: 1px; display: flex; align-items: baseline; gap: 8px; }
.tier h3 i { font-style: normal; font-family: Georgia, serif; color: var(--maroonHi); opacity: 0.95; font-size: 13px; }
.tier .price { font-size: 11px; color: var(--dim); margin: 4px 0 12px; }
.tier ul { list-style: none; }
.tier li { font-size: 11.5px; line-height: 2.1; color: var(--ink); opacity: 0.85; padding-left: 14px; position: relative; }
.tier li::before { content: '·'; position: absolute; left: 2px; color: var(--maroonHi); font-weight: 900; }
.tier li.dimmed { opacity: 0.35; }
.steps { display: flex; border: 1px solid var(--line); }
.step { flex: 1; padding: 18px 18px 16px; border-left: 1px solid var(--line); }
.step:first-child { border-left: none; }
.step .sn { font-family: Georgia, serif; font-size: 22px; font-weight: 900; color: var(--maroonHi); opacity: 0.85; }
.step b { display: block; font-size: 13px; font-weight: 900; margin: 6px 0 4px; letter-spacing: 1px; }
.step p { font-size: 11px; color: var(--dim); line-height: 1.8; }
.ctaBox { margin-top: 34px; border: 1px solid var(--maroonHi); background: var(--surface); padding: 26px clamp(18px, 3vw, 34px); display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ctaBox .big { font-size: clamp(15px, 2vw, 19px); font-weight: 900; letter-spacing: 1px; }
.ctaBox .mailLine { font-size: 12px; color: var(--dim); margin-top: 4px; }
.ctaBox .mailLine b { color: var(--maroonHi); font-size: 14px; letter-spacing: 1px; }
.ctaBox .btnSolid { margin-left: auto; flex: none; }

/* ---------- 窄屏 ---------- */
@media (max-width: 960px) {
  .upCard { flex-wrap: wrap; }
  .upPoster { width: 100%; order: -1; }
  .upDate { border-right: none; padding-right: 0; }
  .upGo, .sGo { opacity: 1; transform: none; }
  .sCard { flex-direction: column; align-items: stretch; }
  .sPoster { width: 100%; }
  .intro { flex-direction: column-reverse; }
  .stats { flex-wrap: wrap; }
  .stat { min-width: 45%; border-top: 1px solid var(--line); }
  .tiers { grid-template-columns: 1fr; }
  .steps { flex-direction: column; }
  .step { border-left: none; border-top: 1px solid var(--line); }
  .step:first-child { border-top: none; }
  .joinBox .btnSolid, .ctaBox .btnSolid { margin-left: 0; width: 100%; }
}
