:root { --navy:#0b3b60; --navy-dark:#07283e; --teal:#087f78; --teal-soft:#e5f4f1; --gold:#d99a37; --gold-soft:#fff4dc; --ink:#15252f; --muted:#647681; --line:#e6edef; --canvas:#f7faf9; --white:#fff; --shadow:0 16px 45px rgba(7,40,62,.1); --shell:1280px; --ease-out:cubic-bezier(.22,1,.36,1); --ease-inout:cubic-bezier(.65,0,.35,1); --dur-fast:200ms; --dur-base:450ms; --dur-slow:800ms; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); font-family:"Noto Sans SC","Microsoft YaHei",sans-serif; background:var(--canvas); } button,a { font:inherit; } button { cursor:pointer; } button:focus-visible,a:focus-visible { outline:3px solid rgba(8,127,120,.35); outline-offset:3px; } img { max-width:100%; display:block; } .shell { width:min(calc(100% - 64px),var(--shell)); margin-inline:auto; } .skip-link { position:fixed; left:16px; top:-80px; z-index:99; padding:10px 14px; background:var(--navy); color:#fff; } .skip-link:focus { top:12px; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); } .header-inner { height:88px; display:flex; align-items:center; gap:24px; } .brand { width:194px; padding:0; border:0; background:transparent; } .brand img { width:194px; } .main-nav { display:flex; align-items:center; justify-content:center; gap:26px; flex:1; } .main-nav button,.footer-grid button { border:0; background:transparent; color:var(--ink); padding:8px 0; } .main-nav button:hover { color:var(--teal); } .header-contact { display:flex; gap:10px; align-items:center; color:var(--navy); white-space:nowrap; } .header-contact>span { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--teal); border-radius:50%; color:var(--teal); } .header-contact small { display:block; color:var(--muted); font-size:11px; margin-top:2px; } .menu-toggle { display:none; border:0; background:transparent; font-size:20px; color:var(--navy); }
.button { border:1px solid var(--teal); border-radius:6px; padding:12px 18px; color:var(--teal); background:#fff; font-weight:700; text-decoration:none; text-align:center; transition:transform .16s ease,background .16s ease; } .button:hover { transform:translateY(-2px); } .button--primary { background:var(--teal); color:#fff; } .button--gold { background:var(--gold); border-color:var(--gold); color:var(--navy-dark); } .button--light { background:transparent; border-color:#d3f1ec; color:#fff; } .button--small { padding:9px 14px; font-size:14px; } .button--hero { min-width:220px; } .text-link,.back-link { color:var(--teal); border:0; background:transparent; font-weight:700; text-decoration:none; padding:8px 0; }
.hero { position:relative; overflow:hidden; background:#fff; min-height:556px; border-bottom:1px solid var(--line); } .hero-inner { min-height:556px; display:grid; grid-template-columns:50% 50%; align-items:center; position:relative; } .hero-copy { position:relative; z-index:1; padding:70px 0 64px; } .eyebrow { display:inline-flex; align-items:center; gap:8px; color:var(--teal); font-size:15px; font-weight:800; letter-spacing:.02em; } .hero h1,.page-hero h1,.section h2,.trust h2 { margin:18px 0; color:var(--navy-dark); font-family:"Noto Serif SC",serif; line-height:1.2; letter-spacing:-.04em; } .hero h1 { font-size:clamp(42px,4.2vw,67px); } .hero h1 em { color:var(--teal); font-style:normal; } .hero-copy>p { max-width:560px; color:var(--muted); font-size:18px; line-height:1.85; } .hero-actions { display:flex; flex-wrap:wrap; gap:16px; margin-top:30px; } .hero-actions .button { min-width:220px; font-size:17px; padding:16px 22px; } .hero-notes { display:flex; gap:52px; color:var(--muted); font-size:13px; margin:11px 16px; } .hero-art { position:absolute; inset:0 -110px 0 31%; display:flex; align-items:center; z-index:0; } .hero-art img { width:100%; height:100%; max-height:620px; object-fit:cover; object-position:center; }
.track-strip { position:relative; z-index:2; margin-top:-42px; min-height:90px; display:grid; grid-template-columns:1.1fr repeat(4,1fr); align-items:stretch; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); } .track-intro,.track-item { display:flex; align-items:center; gap:14px; padding:16px 18px; border:0; border-right:1px solid var(--line); background:#fff; text-align:left; } .track-intro { color:var(--navy); font-size:20px; } .track-intro>i { color:var(--teal); font-size:22px; } .track-item { transition:background .16s ease; } .track-item:hover { background:#f6fbfa; } .track-item>i { color:var(--teal); font-size:12px; margin-left:auto; } .track-item strong,.track-item small { display:block; } .track-item small { color:var(--muted); font-size:12px; margin-top:3px; } .track-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; font-size:16px; } .track-icon--teal { color:var(--teal); background:var(--teal-soft); } .track-icon--navy { color:var(--navy); background:#eaf2f7; } .track-icon--gold { color:#a66b13; background:var(--gold-soft); }
.proof { display:grid; grid-template-columns:repeat(4,1fr); margin-top:20px; background:#fffcf7; padding:21px 32px; border-radius:8px; } .proof>div { display:grid; grid-template-columns:34px auto; column-gap:10px; align-items:center; border-right:1px solid #ede4d7; padding-left:22px; } .proof>div:first-child { padding-left:0; } .proof>div:last-child { border:0; } .proof i { grid-row:1 / span 2; color:#bd7c1d; font-size:24px; } .proof strong { color:var(--navy); font-size:15px; } .proof span { color:var(--muted); font-size:12px; }
.section { padding:92px 0; } .section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:32px; } .section-label { color:#b7791f; font-size:15px; font-weight:800; } .section-heading h2,.section h2,.trust h2 { font-size:34px; } .section-heading h2 { margin:9px 0 6px; } .section-heading p { color:var(--muted); margin:0; } .course-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; } .course-grid--full { grid-template-columns:repeat(3,1fr); } .course-card { background:#fff; border:1px solid var(--line); overflow:hidden; border-radius:8px; transition:transform .18s ease,box-shadow .18s ease; } .course-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); } .course-cover { height:184px; position:relative; overflow:hidden; background:#fff; } .course-cover img { width:100%; height:100%; object-fit:contain; object-position:center; } .course-cover span { position:absolute; left:16px; top:14px; padding:5px 9px; background:var(--teal); color:#fff; font-size:12px; font-weight:700; border-radius:4px; } .course-body { padding:20px; } .course-track { color:var(--teal); font-size:13px; font-weight:700; margin:0 0 8px; } .course-card h3 { min-height:52px; font-size:19px; line-height:1.45; margin:0; color:var(--navy-dark); } .course-card h3+p { color:var(--muted); line-height:1.6; min-height:46px; font-size:14px; } .course-meta { display:flex; flex-wrap:wrap; gap:9px 16px; padding:14px 0; border-top:1px solid var(--line); color:var(--muted); font-size:12px; } .course-meta i { color:var(--teal); } .course-footer { display:flex; justify-content:space-between; align-items:center; } .course-footer strong { color:#d75f32; font-size:22px; } .course-footer del { color:#98a5aa; font-size:12px; font-weight:400; margin-left:5px; }
.mini-banner { background:var(--navy); color:#fff; } .mini-inner { min-height:210px; padding:30px 0; display:flex; align-items:center; justify-content:space-between; gap:40px; } .eyebrow--light { color:#93e5da; } .mini-banner h2 { font-family:"Noto Serif SC",serif; font-size:32px; line-height:1.3; margin:8px 0; } .mini-banner p { margin:6px 0 0; color:#c9dce7; } .mini-actions { display:flex; flex-wrap:wrap; gap:14px; }
.article-list { background:#fff; border-top:1px solid var(--line); } .article-row { display:grid; grid-template-columns:minmax(0,1fr) 110px 20px; align-items:center; gap:24px; padding:25px 4px; border-bottom:1px solid var(--line); } .article-row__main { padding:0; border:0; background:transparent; text-align:left; } .article-row h3 { color:var(--navy-dark); font-size:19px; margin:9px 0 8px; } .article-row p { color:var(--muted); margin:0; font-size:14px; } .article-tag { display:inline-block; color:var(--teal); background:var(--teal-soft); font-size:12px; font-weight:700; padding:3px 7px; border-radius:4px; } .article-date { color:var(--muted); font-size:13px; text-align:right; } .article-row>i { color:var(--teal); }
.trust { margin-bottom:92px; display:grid; grid-template-columns:1fr 1fr; gap:80px; background:#eff8f6; padding:52px 58px; border-radius:8px; } .trust h2 { margin:10px 0; } .trust p { color:var(--muted); line-height:1.8; } .trust-points { align-content:center; display:grid; gap:12px; } .trust-points p { margin:0; font-weight:700; color:var(--navy); } .trust-points i { color:var(--teal); margin-right:11px; }
.page-hero { background:#eef7f5; padding:78px 0 73px; border-bottom:1px solid #dbece9; } .page-hero h1 { font-size:48px; margin:15px 0; } .page-hero p { color:var(--muted); font-size:17px; margin:0; } .filter-bar { display:flex; gap:10px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:22px; margin-bottom:34px; } .filter-bar button { border:1px solid var(--line); background:#fff; color:var(--ink); padding:10px 16px; border-radius:5px; } .filter-bar button.is-active { color:#fff; border-color:var(--teal); background:var(--teal); } .empty-state { grid-column:1/-1; padding:70px 0; text-align:center; color:var(--muted); }
.notice-box { margin-top:32px; display:flex; align-items:center; gap:18px; border:1px solid #f0dfbd; background:#fffbf2; padding:20px 24px; border-radius:7px; } .notice-box>i { font-size:26px; color:#b7791f; } .notice-box p { margin:4px 0 0; color:var(--muted); font-size:14px; } .notice-box .button { margin-left:auto; flex:none; }.article-page { padding:65px 0 100px; max-width:900px; } .article-page article { background:#fff; padding:54px clamp(24px,6vw,80px); margin-top:18px; border:1px solid var(--line); } .article-page h1 { color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:38px; line-height:1.35; margin:15px 0; } .article-page time { color:var(--muted); font-size:14px; } .article-page .article-lead { font-size:20px; line-height:1.75; color:var(--navy); margin-top:36px; } .article-page article>p:not(.article-lead) { color:#455963; line-height:2; } .article-page hr { border:0; border-top:1px solid var(--line); margin:32px 0; } .article-actions { display:flex; gap:12px; margin-top:35px; }
.service-layout,.about-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:start; } .service-list { margin:30px 0; display:grid; gap:14px; } .service-list p { margin:0; padding:16px; background:#fff; border:1px solid var(--line); } .service-list i { color:var(--teal); width:25px; } .disclaimer { background:#fff8e9; padding:30px; color:#6a542c; } .disclaimer>span { color:#b7791f; font-size:25px; } .disclaimer h3 { color:#74551f; } .disclaimer p { line-height:1.8; } .about-grid>div>p { color:var(--muted); line-height:1.9; } .teacher-panel { padding:30px; display:flex; gap:16px; align-items:center; background:#fff; border:1px solid var(--line); } .teacher-avatar { display:grid; place-items:center; width:70px; height:70px; border-radius:50%; background:var(--navy); color:#fff; font-family:"Noto Serif SC",serif; font-size:28px; }.teacher-panel p { margin:5px 0 0; color:var(--muted); }
.footer-main { background:var(--navy-dark); color:#d4e2e8; padding:53px 0; }.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.3fr; gap:40px; }.footer-logo { width:182px; filter:brightness(0) invert(1); opacity:.95; }.footer-grid h3 { color:#fff; font-size:16px; margin:0 0 14px; }.footer-grid p { color:#b6cbd4; font-size:14px; line-height:1.75; }.footer-grid button { display:block; padding:5px 0; color:#b6cbd4; font-size:14px; text-align:left; }.footer-grid button:hover { color:#fff; }.footer-legal { background:#061f31; color:#88a4b2; font-size:12px; }.footer-legal .shell { min-height:56px; display:flex; gap:23px; align-items:center; }.footer-legal button { border:0; background:transparent; color:#c7d9e0; padding:0; font-size:12px; }
.modal-backdrop { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:22px; background:rgba(7,40,62,.58); }.modal { position:relative; width:min(100%,540px); max-height:90vh; overflow:auto; background:#fff; padding:38px; border-radius:9px; box-shadow:0 20px 70px rgba(0,0,0,.25); text-align:center; }.modal-close { position:absolute; right:12px; top:10px; border:0; background:transparent; color:var(--muted); padding:10px; font-size:19px; }.modal-icon { display:grid; place-items:center; width:52px; height:52px; margin:auto; border-radius:50%; background:var(--teal-soft); color:var(--teal); font-size:23px; }.modal h2 { color:var(--navy-dark); font-family:"Noto Serif SC",serif; margin:14px 0 8px; }.modal>p { color:var(--muted); line-height:1.7; }.modal-course { font-weight:700; color:var(--navy)!important; }.trial-panel,.external-note { text-align:left; background:#f4faf9; padding:16px; margin:18px 0; color:var(--navy); }.trial-panel span { display:block; color:var(--muted); font-size:13px; margin-top:7px; }.external-note { background:#fff9ee; color:#8a6325; font-size:14px; line-height:1.6; }.modal-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:24px; }.qr-code { width:172px; margin:18px auto 10px; image-rendering:auto; }.modal small { color:var(--muted); }.contact-modal { display:flex; align-items:center; gap:22px; text-align:left; margin-top:13px; }.contact-modal .qr-code { width:140px; flex:none; margin:0; }.contact-modal p { font-size:13px; margin:8px 0; color:var(--muted); }.contact-modal i { color:var(--teal); width:18px; }
@media (max-width:1100px) { .header-contact { display:none; }.hero-art { right:-200px; }.proof { grid-template-columns:repeat(2,1fr); gap:16px; }.proof>div:nth-child(2) { border:0; }.course-grid,.course-grid--full { grid-template-columns:repeat(2,1fr); }.main-nav { gap:15px; }.footer-grid { grid-template-columns:2fr 1fr 1fr; }.footer-grid>div:first-child { grid-column:span 3; } }
@media (max-width:760px) { .shell { width:min(calc(100% - 36px),var(--shell)); }.header-inner { height:70px; }.brand { width:145px; }.brand img { width:145px; }.menu-toggle { display:block; margin-left:auto; }.main-nav { display:none; position:absolute; left:0; right:0; top:70px; padding:14px 18px 18px; background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow); }.main-nav.is-open { display:grid; justify-items:start; gap:4px; }.main-nav button { width:100%; text-align:left; padding:10px; }.header-inner>.button { display:none; }.hero { min-height:auto; }.hero-inner { min-height:auto; display:flex; flex-direction:column; align-items:stretch; }.hero-copy { padding:48px 0 22px; }.hero h1 { font-size:43px; }.hero-copy>p { font-size:16px; }.hero-actions { display:grid; grid-template-columns:1fr; }.hero-actions .button { width:100%; }.hero-notes { justify-content:space-between; gap:10px; font-size:12px; margin-inline:0; }.hero-art { position:relative; inset:auto; margin:0 -18px; height:260px; }.hero-art img { object-position:center; }.track-strip { width:calc(100% - 36px); margin-top:0; grid-template-columns:1fr 1fr; border-radius:0; box-shadow:none; }.track-intro { grid-column:span 2; }.track-item { min-height:83px; padding:11px; }.track-item:nth-last-child(1) { border-bottom:0; }.track-item strong { font-size:13px; }.track-item small { display:none; }.track-item>i { display:none; }.proof { grid-template-columns:1fr 1fr; padding:20px 12px; }.proof>div,.proof>div:first-child { padding-left:8px; }.proof>div:nth-child(2) { border-right:0; }.proof>div:nth-child(-n+2) { border-bottom:1px solid #ede4d7; padding-bottom:12px; }.section { padding:60px 0; }.section-heading { align-items:flex-start; flex-direction:column; gap:5px; }.section-heading h2,.section h2,.trust h2 { font-size:28px; }.course-grid,.course-grid--full { grid-template-columns:1fr; }.mini-inner { padding:45px 0; display:block; }.mini-banner h2 { font-size:28px; }.mini-actions { margin-top:24px; }.article-row { grid-template-columns:minmax(0,1fr) 16px; gap:13px; }.article-date { grid-row:2; grid-column:1; text-align:left; }.article-row>i { grid-row:1 / span 2; grid-column:2; }.trust,.service-layout,.about-grid { grid-template-columns:1fr; gap:30px; margin-bottom:60px; padding:32px 25px; }.page-hero { padding:55px 0; }.page-hero h1 { font-size:34px; }.filter-bar { flex-wrap:nowrap; overflow:auto; margin-inline:-18px; padding:0 18px 18px; }.filter-bar button { white-space:nowrap; }.notice-box { align-items:flex-start; flex-wrap:wrap; }.notice-box .button { margin-left:44px; }.article-page { padding:32px 0 60px; }.article-page article { padding:32px 23px; }.article-page h1 { font-size:29px; }.article-actions { flex-direction:column; }.footer-grid { grid-template-columns:1fr 1fr; gap:25px; }.footer-grid>div:first-child { grid-column:span 2; }.footer-legal .shell { flex-wrap:wrap; padding:15px 0; gap:8px 16px; }.modal { padding:32px 22px; }.contact-modal { flex-direction:column; text-align:center; }.contact-modal .qr-code { width:150px; } }

/* Annotation refinement: seamless desktop hero and a high-contrast header lockup. */
@media (min-width:761px) {
  .hero-art { inset:0; right:0; }
  .hero-art img { object-position:center; }
  .hero-copy { padding-left:clamp(28px, 3.6vw, 52px); }
  .hero-copy { transform:translateY(-22px); }
  .hero-actions,.hero-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .hero-actions .button { min-width:0; }
  .hero-notes { margin:11px 0; }
  .hero-notes span { text-align:center; }
}
.brand { width:205px; }
.brand img.header-logo { width:205px; height:76px; object-fit:contain; object-position:center; }
@media (max-width:760px) { .brand img.header-logo { width:140px; height:52px; } }
@media (min-width:1101px) { .track-strip { grid-template-columns:1.1fr repeat(5,1fr); } }
.main-nav button.is-active { position:relative; color:var(--teal); font-weight:800; padding:8px 10px; border-radius:6px; background:var(--teal-soft); }
.main-nav button.is-active::after { content:""; position:absolute; left:50%; bottom:0; width:24px; height:2px; translate:-50% 0; background:var(--teal); border-radius:2px; }
@media (min-width:761px) { .hero-actions { margin-top:12px; } }
@media (min-width:761px) {
  .hero-copy { padding-top:54px; transform:none; }
  .hero h1 .hero-title-main { display:inline-block; font-size:1.18em; }
  /* 主副标题层级调整：副标题桌面端降至 .58em、字重 700，加字距提升副标题气质；首页容器是 page-visual--home（不带 hero 类），需一并命中 */
  .hero h1 em, .page-visual--home h1 em { font-size:.58em; font-weight:700; letter-spacing:.06em; }
  .mini-banner h2 { font-size:42px; }
  .mini-banner p { margin:0; font-size:15px; }
}
@media (max-width:760px) {
  .hero-copy > .eyebrow { font-size:16px; transform:translateY(-4px); }
  .hero h1 .hero-title-main { display:inline-block; font-size:1.12em; }
  /* 主副标题层级调整：副标题移动端降至 .62em、字重 700，与桌面端同步（首页 page-visual--home 一并命中） */
  .hero h1 em, .page-visual--home h1 em { font-size:.62em; font-weight:700; letter-spacing:.06em; }
  .mini-banner h2 { font-size:31px; }
  .mini-banner p { margin:0; font-size:14px; }
}

@media (min-width:761px) {
  .hero-copy > .eyebrow { font-size:17px; transform:translateY(-8px); }
  /* 主副标题层级调整：主标题保持 1.5em/serif 900 不变；扩展命中首页容器 page-visual--home（原规则带 .hero 前缀命不中首页） */
  .hero h1 .hero-title-main, .page-visual--home h1 .hero-title-main {
    display:inline-block;
    font-size:1.5em;
    font-family:"Noto Serif SC","Source Han Serif SC","STSong",serif;
    font-weight:900;
    letter-spacing:.02em;
    text-shadow:0 2px 0 rgba(255,255,255,.38);
  }
}

@media (max-width:760px) {
  /* 主副标题层级调整：移动端主标题保持 1.18em/serif 900；同步扩展命中首页容器 page-visual--home */
  .hero h1 .hero-title-main, .page-visual--home h1 .hero-title-main {
    font-size:1.18em;
    font-family:"Noto Serif SC","Source Han Serif SC","STSong",serif;
    font-weight:900;
    letter-spacing:.01em;
  }
}

/* Service imagery, campus directory, and footer layout refinements. */
.aspiration-visual { padding:0; overflow:hidden; border:1px solid var(--line); background:#fff; }
.aspiration-visual img { width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.visual-caption { display:grid; gap:5px; padding:18px 22px 20px; background:#fff8e9; color:#6a542c; }
.visual-caption strong { color:#74551f; font-size:18px; }
.visual-caption span { font-size:13px; line-height:1.6; }
.about-side { display:grid; gap:20px; }
.campus-card { width:100%; position:relative; text-align:left; }
.campus-card p { margin:5px 28px 0 0; }
.campus-avatar { background:var(--teal); font-family:inherit; font-size:20px; }
.campus-arrow { margin-left:auto; color:var(--teal); }
.campus-intro { margin-top:0; }
.campus-list { display:grid; gap:16px; margin-top:20px; text-align:left; }
.campus-group { padding:14px 16px; border:1px solid #dcefeb; border-radius:8px; background:#f4faf9; }
.campus-group h3 { margin:0 0 8px; color:var(--teal); font-size:16px; }
.campus-group h3 i { margin-right:6px; }
.campus-addresses { display:grid; }
.campus-addresses p { display:grid; grid-template-columns:80px minmax(0,1fr); gap:12px; margin:0; padding:7px 0; border-top:1px dashed #d2e5e2; font-size:13px; line-height:1.6; }
.campus-addresses p:first-child { border-top:0; }
.campus-addresses strong { color:var(--navy); }
.campus-addresses span { color:var(--muted); }
.footer-logo { clip-path:none; }
.footer-grid > div:nth-child(2), .footer-grid > div:nth-child(3), .footer-grid > div:nth-child(4) { min-width:0; }
@media (min-width:761px) and (max-width:1100px) {
  .footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
  .footer-grid > div:first-child { grid-column:span 3; }
}
@media (max-width:760px) {
  .campus-addresses p { grid-template-columns:1fr; gap:2px; }
  .aspiration-visual img { aspect-ratio:16 / 10; }
}

/* 2026 官网需求对齐优化：前台原型 */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { box-shadow:0 6px 24px rgba(7,40,62,.06); }
.header-inner { height:78px; }
.study-nav { padding:12px 0; border-top:1px solid #edf2f3; background:#f8fbfa; }
.track-strip--header { margin-top:0; }

.home-hero,.page-visual { position:relative; isolation:isolate; overflow:hidden; }
.home-hero { min-height:610px; background:#f8fbfa; }
.visual-media { position:absolute; inset:-3%; z-index:-3; background-image:var(--page-bg); background-size:cover; background-position:var(--page-bg-position,center); }
.visual--animated .visual-media { animation:visualDrift 16s ease-in-out infinite alternate; }
@keyframes visualDrift { from { transform:scale(1.01) translate3d(0,0,0); } to { transform:scale(1.075) translate3d(-1.2%,.8%,0); } }
.home-hero__wash { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(250,253,252,.99) 0%,rgba(250,253,252,.94) 42%,rgba(250,253,252,.34) 67%,rgba(7,40,62,.1) 100%); }
.home-hero__inner { min-height:610px; display:flex; align-items:center; }
.home-hero__copy { width:min(650px,58%); padding:72px 0 92px; }
.home-hero h1 { margin:18px 0; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:clamp(44px,4.5vw,68px); line-height:1.18; letter-spacing:-.045em; }
.home-hero h1 em { color:var(--teal); font-style:normal; }
.home-hero__copy>p { max-width:610px; color:#4e626d; font-size:18px; line-height:1.9; }
.home-hero .hero-actions { margin-top:30px; }
.hero-assurance { display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:27px; color:#536b75; font-size:13px; }
.hero-assurance i { margin-right:6px; color:var(--teal); }
.stats-bar { position:relative; z-index:3; margin-top:-42px; }
.stats-grid { min-height:92px; display:grid; grid-template-columns:repeat(4,1fr); align-items:center; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow); }
.stats-grid>div { display:grid; gap:4px; padding:9px 28px; border-right:1px solid var(--line); }
.stats-grid>div:last-child { border-right:0; }
.stats-grid strong { color:var(--navy); font-family:"Noto Serif SC",serif; font-size:23px; }
.stats-grid span { color:var(--muted); font-size:12px; }

.page-visual { min-height:410px; color:#fff; background:var(--navy-dark); }
.page-visual .visual-overlay { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(5,32,50,.96) 0%,rgba(7,40,62,.86) 44%,rgba(7,40,62,.38) 100%); }
.visual-content { min-height:410px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding-block:60px; }
.page-visual h1 { margin:14px 0; color:#fff; font-family:"Noto Serif SC",serif; font-size:clamp(40px,4.4vw,64px); line-height:1.25; letter-spacing:-.035em; }
.page-visual p { max-width:690px; margin:0; color:#d3e3e9; font-size:17px; line-height:1.8; }
.page-visual .hero-actions { margin-top:28px; }
.page-visual--courses { color:var(--navy-dark); background:#eef7f5; }
/* 用户反馈：课程中心背景图显示原图颜色——不加饱和度/亮度滤镜，白雾只护左侧文字区 */
.page-visual--courses .visual-media { filter:none; }
.page-visual--courses .visual-overlay { background:linear-gradient(90deg,rgba(248,252,251,.96) 0%,rgba(244,250,249,.75) 38%,rgba(240,248,247,.16) 58%,rgba(240,248,247,0) 72%); }
.page-visual--courses .eyebrow--light { color:var(--teal); }
.page-visual--courses h1 { color:var(--navy-dark); }
.page-visual--courses p { color:#536b76; }
.courses-page-content { padding-top:48px; }
.home-course-section { padding-top:42px; }
.articles-page-content { padding-top:42px; }

.aspiration-home { overflow:hidden; background:linear-gradient(135deg,#07344f,#0b5a67); color:#fff; }
.aspiration-home__grid { min-height:450px; display:grid; grid-template-columns:.9fr 1.1fr; gap:72px; align-items:center; padding-block:70px; }
.aspiration-home h2,.campus-cta h2 { margin:13px 0; color:#fff; font-family:"Noto Serif SC",serif; font-size:42px; line-height:1.35; }
.aspiration-home p,.campus-cta p { color:#c9dce4; line-height:1.8; }
.aspiration-home__cards { display:grid; gap:12px; }
.aspiration-home__cards button { display:grid; grid-template-columns:46px minmax(0,1fr); gap:3px 15px; align-items:center; padding:20px 24px; border:1px solid rgba(255,255,255,.16); border-radius:9px; background:rgba(255,255,255,.08); color:#fff; text-align:left; backdrop-filter:blur(8px); transition:transform .18s ease,background .18s ease; }
.aspiration-home__cards button:hover { transform:translateX(6px); background:rgba(255,255,255,.14); }
.aspiration-home__cards i { grid-row:1 / span 2; display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.13); color:#f3c977; font-size:19px; }
.aspiration-home__cards strong { font-size:18px; }
.aspiration-home__cards span { color:#c9dce4; font-size:13px; }

.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.article-grid--page { grid-template-columns:repeat(3,1fr); }
.article-card { min-height:290px; display:flex; flex-direction:column; padding:28px; border:1px solid var(--line); border-radius:9px; background:#fff; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.article-card:hover { transform:translateY(-4px); border-color:#cae1de; box-shadow:var(--shadow); }
.article-card time { margin-left:auto; margin-top:-21px; color:#8a989f; font-size:12px; }
.article-card h3 { margin:24px 0 11px; color:var(--navy-dark); font-size:20px; line-height:1.55; }
.article-card p { margin:0 0 20px; color:var(--muted); font-size:14px; line-height:1.8; }
.article-card .text-link { align-self:flex-start; margin-top:auto; }
.article-note,.source-note { display:flex; align-items:flex-start; gap:10px; margin-top:28px; padding:15px 18px; border:1px solid #eadbbd; border-radius:7px; background:#fff9ed; color:#765b2e; font-size:13px; line-height:1.7; }
.article-note i,.source-note i { margin-top:4px; color:#b7791f; }

.service-entry-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-entry-grid>button { min-height:245px; position:relative; display:grid; grid-template-columns:58px 1fr 20px; gap:18px; align-items:start; padding:30px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); text-align:left; transition:transform .18s ease,box-shadow .18s ease; }
.service-entry-grid>button:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.service-entry-grid>button>span { display:grid; place-items:center; width:58px; height:58px; border-radius:12px; background:var(--teal-soft); color:var(--teal); font-size:23px; }
.service-entry-grid>button>i { align-self:center; color:var(--teal); }
.service-entry-grid small { color:var(--gold); font-weight:800; }
.service-entry-grid h2 { margin:8px 0; font-size:25px; }
.service-entry-grid p { margin:0; color:var(--muted); line-height:1.7; }
.section--tint { background:#eef7f5; }
.university-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.university-card { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 8px 24px rgba(7,40,62,.05); }
.university-card__image { height:185px; position:relative; overflow:hidden; background:#dcebea; }
.university-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.university-card:hover img { transform:scale(1.04); }
.university-card__image>span { position:absolute; left:16px; top:15px; padding:5px 9px; border-radius:4px; background:rgba(7,40,62,.84); color:#fff; font-size:12px; }
.university-card__body { padding:22px; }
.university-meta { display:flex; align-items:center; gap:10px; color:var(--teal); font-size:12px; }
.university-location { display:inline-flex; align-items:center; gap:6px; min-width:0; }
.university-meta time { color:#8a989f; }
.university-meta time { margin-left:auto; white-space:nowrap; }
.university-card h3,.major-card h3 { margin:10px 0; color:var(--navy-dark); font-size:22px; }
.university-card p,.major-card p { color:var(--muted); font-size:14px; line-height:1.75; }
.tag-list { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0; }
.tag-list span { padding:5px 9px; border-radius:999px; background:#eef7f5; color:#34736f; font-size:12px; }
.split-section { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:start; }
.split-section h2 { margin-top:10px; }
.compact-news { width:100%; display:grid; grid-template-columns:90px minmax(0,1fr) 88px; gap:16px; align-items:center; padding:20px 0; border:0; border-bottom:1px solid var(--line); background:transparent; text-align:left; }
.compact-news span { color:var(--teal); font-size:13px; }
.compact-news strong { color:var(--navy); font-size:16px; line-height:1.55; }
.compact-news time { color:var(--muted); font-size:12px; text-align:right; }
.external-data-card { padding:34px; border-radius:10px; background:var(--navy); color:#fff; }
.external-data-card>span { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.12); color:#f3c977; font-size:22px; }
.external-data-card h3 { margin:18px 0 8px; font-size:24px; }
.external-data-card p { color:#cadde4; line-height:1.75; }
.external-data-card .button { width:100%; margin:10px 0 16px; }
.external-data-card small { display:block; color:#9fb8c2; line-height:1.65; }

.directory-head,.campus-head,.major-detail-head { padding:58px 0 66px; background:linear-gradient(135deg,#062b43,#0c6367); color:#fff; }
.directory-head h1,.campus-head h1,.major-detail-head h1 { max-width:850px; margin:16px 0 26px; font-family:"Noto Serif SC",serif; font-size:clamp(34px,4vw,50px); line-height:1.35; }
.directory-search { max-width:760px; display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:10px; padding:7px 8px 7px 18px; border-radius:8px; background:#fff; color:var(--muted); box-shadow:0 15px 35px rgba(0,0,0,.16); }
.directory-search input { min-width:0; padding:10px 2px; border:0; outline:0; color:var(--ink); background:transparent; }
.directory-search button { padding:11px 22px; border:0; border-radius:6px; background:var(--gold); color:var(--navy-dark); font-weight:800; }
.back-link--light { color:#bde5df; }
.directory-tabs { display:flex; gap:10px; margin-bottom:32px; border-bottom:1px solid var(--line); }
.directory-tabs button { padding:13px 20px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); font-weight:800; }
.directory-tabs button.is-active { color:var(--teal); border-bottom-color:var(--teal); }
.directory-tabs span { display:inline-grid; place-items:center; min-width:22px; height:22px; margin-left:5px; border-radius:50%; background:#e7f3f1; font-size:11px; }
.major-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.major-card { min-height:300px; padding:30px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.major-card__icon { display:grid; place-items:center; width:54px; height:54px; margin-bottom:18px; border-radius:12px; background:var(--gold-soft); color:#a66b13; font-size:21px; }
.major-card>small { color:var(--teal); font-weight:700; }
.empty-state { min-height:230px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; grid-column:1 / -1; }
.empty-state i { color:var(--teal); font-size:25px; }
.empty-state strong { color:var(--navy); }

.detail-hero { min-height:430px; position:relative; display:flex; align-items:flex-end; overflow:hidden; background:var(--navy-dark); color:#fff; }
.detail-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.detail-hero__overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,30,47,.96),rgba(7,40,62,.28)); }
.detail-hero__content { position:relative; padding-bottom:55px; }
.detail-hero__content>span { display:inline-block; margin-top:44px; padding:5px 10px; border-radius:4px; background:var(--gold); color:var(--navy-dark); font-size:12px; font-weight:800; }
.detail-hero h1 { margin:13px 0 7px; font-family:"Noto Serif SC",serif; font-size:52px; }
.detail-hero p { margin:0; color:#d6e5ea; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:52px; align-items:start; padding-block:68px 100px; }
.rich-content { min-width:0; padding:44px; border:1px solid var(--line); background:#fff; }
.rich-content section+section { margin-top:38px; padding-top:30px; border-top:1px solid var(--line); }
.rich-content h2 { margin:8px 0 14px; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:27px; }
.rich-content p { color:#455963; line-height:1.95; }
.detail-lead { margin-top:0; color:var(--navy)!important; font-size:20px; }
.content-table { margin-top:34px; border:1px solid var(--line); }
.content-table>div { display:grid; grid-template-columns:130px minmax(0,1fr); border-top:1px solid var(--line); }
.content-table>div:first-child { border-top:0; }
.content-table strong,.content-table span { padding:15px 18px; font-size:14px; }
.content-table strong { background:#f1f7f6; color:var(--navy); }
.detail-aside { position:sticky; top:145px; display:grid; gap:12px; padding:28px; border-radius:10px; background:#eef7f5; }
.detail-aside h3 { margin:0; color:var(--navy); font-size:22px; }
.detail-aside p { margin:0 0 8px; color:var(--muted); line-height:1.75; }
.major-detail-head p { max-width:750px; color:#cfe1e7; font-size:17px; line-height:1.8; }
.major-detail-head .tag-list span { background:rgba(255,255,255,.12); color:#e7f4f3; }
.pill-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.pill-grid>div { display:grid; grid-template-columns:40px 1fr; align-items:center; gap:10px; padding:15px; border-radius:7px; background:#f3f8f7; }
.pill-grid small { color:var(--gold); font-weight:800; }
.career-list { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.career-list p { margin:0; padding:13px 15px; border:1px solid var(--line); }
.career-list i { margin-right:7px; color:var(--teal); }

.about-intro { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.about-intro h2 { margin-top:10px; }
.about-intro p { color:var(--muted); font-size:16px; line-height:1.9; }
.about-intro img { width:100%; height:330px; object-fit:cover; border-radius:10px; }
.about-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:55px; }
.about-feature-grid article { position:relative; padding:30px; border:1px solid var(--line); background:#fff; }
.about-feature-grid article>small { position:absolute; right:22px; top:18px; color:#d9e5e8; font:800 44px/1 "Noto Serif SC",serif; }
.about-feature-grid article>span { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--teal-soft); color:var(--teal); font-size:20px; }
.about-feature-grid h3 { color:var(--navy); font-size:21px; }
.about-feature-grid p { margin-bottom:0; color:var(--muted); line-height:1.8; }
.campus-cta { background:linear-gradient(135deg,#07344f,#0b5963); color:#fff; }
.campus-cta>.shell { min-height:300px; display:flex; justify-content:space-between; align-items:center; gap:50px; }
.campus-cta h2 { font-size:36px; }

.campus-layout { display:grid; grid-template-columns:430px minmax(0,1fr); gap:28px; align-items:start; padding-block:52px 90px; }
.campus-results { max-height:720px; overflow:auto; padding-right:6px; }
.result-count { padding:0 4px 16px; color:var(--muted); font-size:13px; }
.result-count strong { color:var(--navy); font-size:20px; }
.campus-result { width:100%; display:grid; grid-template-columns:42px minmax(0,1fr) 14px; gap:12px; align-items:center; padding:19px 16px; border:1px solid var(--line); border-bottom:0; background:#fff; color:var(--ink); text-align:left; }
.campus-result:first-of-type { border-radius:8px 8px 0 0; }
.campus-result:last-child { border-bottom:1px solid var(--line); border-radius:0 0 8px 8px; }
.campus-result.is-active { position:relative; z-index:1; border-color:var(--teal); background:#edf8f6; }
.campus-result>span { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--teal-soft); color:var(--teal); }
.campus-result small,.campus-result strong { display:block; }
.campus-result small { color:var(--teal); }
.campus-result strong { margin:4px 0; color:var(--navy); }
.campus-result p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.campus-result>i { color:var(--teal); }
.campus-map { position:sticky; top:145px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow); }
.map-grid { height:390px; position:relative; overflow:hidden; background-color:#e7efec; background-image:linear-gradient(#d5e2de 1px,transparent 1px),linear-gradient(90deg,#d5e2de 1px,transparent 1px); background-size:52px 52px; }
.map-grid::before,.map-grid::after { content:""; position:absolute; width:130%; height:32px; left:-15%; top:42%; rotate:-18deg; background:#fff; box-shadow:0 0 0 1px #d6e1df; }
.map-grid::after { top:64%; rotate:26deg; }
.map-road { position:absolute; z-index:1; display:block; border-radius:999px; background:#c5ded8; }
.map-road--one { width:75%; height:9px; left:8%; top:24%; rotate:8deg; }
.map-road--two { width:9px; height:70%; right:23%; top:8%; rotate:14deg; }
.map-road--three { width:55%; height:7px; left:17%; bottom:18%; rotate:-12deg; }
.map-pin { position:absolute; z-index:3; left:50%; top:48%; translate:-50% -50%; display:grid; place-items:center; width:58px; height:58px; border:6px solid rgba(255,255,255,.9); border-radius:50% 50% 50% 10%; rotate:-45deg; background:var(--teal); color:#fff; box-shadow:0 12px 28px rgba(7,40,62,.24); }
.map-pin i { rotate:45deg; font-size:22px; }
.map-card { padding:28px; }
.map-card small { color:var(--teal); font-weight:800; }
.map-card h2 { margin:7px 0; color:var(--navy); font-size:24px; }
.map-card p { min-height:50px; color:var(--muted); line-height:1.7; }
.map-card .button { display:block; width:100%; margin-top:10px; }

.service-dock { position:fixed; right:24px; bottom:34px; z-index:18; display:grid; gap:8px; filter:drop-shadow(0 10px 18px rgba(7,40,62,.18)); }
.service-dock button { width:68px; min-height:66px; display:grid; place-items:center; gap:3px; padding:8px; border:1px solid #d8e7e5; border-radius:9px; background:#fff; color:var(--teal); }
.service-dock button:first-child { border-color:var(--teal); background:var(--teal); color:#fff; }
.service-dock i { font-size:18px; }
.service-dock span { font-size:11px; font-weight:700; }
.service-contact { display:flex; align-items:center; gap:24px; margin:20px 0; padding:20px; border-radius:9px; background:#f2f8f7; text-align:left; }
.service-contact .qr-code { width:145px; flex:none; margin:0; }
.service-contact p { margin:8px 0; color:var(--muted); font-size:13px; }
.service-contact i { width:18px; color:var(--teal); }
.qr-demo { width:152px; aspect-ratio:1; flex:none; position:relative; display:grid; place-items:center; overflow:hidden; border:9px solid #fff; border-radius:6px; background-color:#fff; background-image:repeating-conic-gradient(#102f3e 0 25%,transparent 0 50%); background-size:17px 17px; box-shadow:0 0 0 1px #dbe5e7; }
.qr-demo::before { content:""; position:absolute; inset:31%; border:7px solid #fff; border-radius:10px; background:var(--teal); }
.qr-demo i { position:relative; z-index:2; width:auto!important; color:#fff!important; font-size:30px; }
.qr-demo span { position:absolute; z-index:3; right:5px; bottom:5px; padding:2px 4px; border-radius:3px; background:#fff; color:var(--navy); font-size:9px; font-weight:800; }

@media (max-width:1100px) {
  .home-hero__copy { width:66%; }
  .article-grid,.article-grid--page,.university-grid { grid-template-columns:repeat(2,1fr); }
  .service-entry-grid { grid-template-columns:1fr; }
  .service-entry-grid>button { min-height:0; }
  .campus-layout { grid-template-columns:360px minmax(0,1fr); }
  .about-feature-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:760px) {
  .header-inner { height:70px; }
  .study-nav { padding:0; }
  .main-nav { top:70px; }
  .site-header.menu-open .study-nav { visibility:hidden; }
  .home-hero { min-height:620px; }
  .home-hero__wash { background:linear-gradient(180deg,rgba(250,253,252,.98) 0%,rgba(250,253,252,.91) 57%,rgba(250,253,252,.3) 100%); }
  .home-hero__inner { min-height:620px; align-items:flex-start; }
  .home-hero__copy { width:100%; padding:54px 0 200px; }
  .home-hero h1 { font-size:42px; }
  .home-hero__copy>p { font-size:15px; }
  .home-hero .hero-actions { display:grid; }
  .hero-assurance { gap:9px 16px; }
  .stats-bar { margin-top:0; }
  .stats-grid { grid-template-columns:1fr 1fr; border-radius:0; box-shadow:none; }
  .stats-grid>div { min-height:82px; padding:14px 18px; border-bottom:1px solid var(--line); }
  .stats-grid>div:nth-child(2) { border-right:0; }
  .stats-grid>div:nth-last-child(-n+2) { border-bottom:0; }
  .page-visual,.visual-content { min-height:390px; }
  .page-visual h1 { font-size:36px; }
  .page-visual p { font-size:15px; }
  .aspiration-home__grid { grid-template-columns:1fr; gap:36px; padding-block:58px; }
  .aspiration-home h2 { font-size:34px; }
  .article-grid,.article-grid--page,.university-grid,.major-grid { grid-template-columns:1fr; }
  .article-card { min-height:255px; }
  .split-section { grid-template-columns:1fr; gap:34px; }
  .compact-news { grid-template-columns:78px minmax(0,1fr); }
  .compact-news time { grid-column:2; text-align:left; }
  .service-entry-grid>button { grid-template-columns:50px 1fr 14px; padding:23px 20px; }
  .service-entry-grid>button>span { width:50px; height:50px; }
  .directory-head,.campus-head,.major-detail-head { padding:40px 0 50px; }
  .directory-head h1,.campus-head h1,.major-detail-head h1 { font-size:34px; }
  .directory-search { grid-template-columns:20px minmax(0,1fr); padding:10px 14px; }
  .directory-search button { grid-column:1 / -1; }
  .directory-tabs { overflow-x:auto; }
  .directory-tabs button { white-space:nowrap; }
  .detail-hero { min-height:360px; }
  .detail-hero h1 { font-size:38px; }
  .detail-layout { grid-template-columns:1fr; gap:24px; padding-block:34px 65px; }
  .rich-content { padding:28px 22px; }
  .detail-aside { position:static; }
  .content-table>div { grid-template-columns:1fr; }
  .content-table strong { padding-bottom:6px; }
  .content-table span { padding-top:6px; }
  .pill-grid,.career-list { grid-template-columns:1fr; }
  .about-intro { grid-template-columns:1fr; gap:26px; }
  .about-intro img { height:240px; }
  .about-feature-grid { grid-template-columns:1fr; margin-top:32px; }
  .campus-cta>.shell { min-height:340px; display:block; padding-block:50px; }
  .campus-cta h2 { font-size:31px; }
  .campus-cta .button { display:block; margin-top:24px; }
  .campus-layout { grid-template-columns:1fr; padding-block:35px 65px; }
  .campus-results { max-height:none; }
  .campus-map { position:static; }
  .map-grid { height:280px; }
  .service-dock { right:12px; bottom:18px; }
  .service-dock button { width:56px; min-height:54px; }
  .service-dock span { display:none; }
  .service-contact { flex-direction:column; text-align:center; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .visual--animated .visual-media { animation:none; }
  *,*::before,*::after { transition-duration:.01ms!important; }
}

/* 客户效果图对齐：Logo、志愿服务、关于衡真与页脚 */
.brand { width:205px; height:58px; overflow:hidden; }
.brand img.header-logo { width:100%; height:100%; object-fit:cover; object-position:center 51%; transform:scale(1.04); }
.footer-brand { min-width:0; }
.footer-brand p { max-width:390px; margin:18px 0 0; color:#d5e4e9; font-size:15px; line-height:1.95; letter-spacing:.01em; }
.footer-logo { width:205px; height:58px; object-fit:cover; object-position:center 51%; clip-path:none; margin:0; filter:invert(1) grayscale(1) contrast(6); mix-blend-mode:screen; opacity:.96; transform:scale(1.04); transform-origin:left center; }

.reference-hero { min-height:535px; position:relative; isolation:isolate; overflow:hidden; background:#f6faf9; }
.reference-hero .visual-media { inset:0; }
.reference-hero__wash { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(248,252,251,.99) 0%,rgba(248,252,251,.94) 39%,rgba(248,252,251,.54) 55%,rgba(248,252,251,.04) 74%); }
.reference-hero__content { min-height:535px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding-block:48px; }
.reference-breadcrumb { display:flex; align-items:center; gap:14px; margin-bottom:13px; color:#6b7b84; font-size:14px; }
.reference-breadcrumb strong { color:var(--teal); }
.reference-breadcrumb span:nth-child(2) { color:#a3afb4; }
.reference-hero h1 { margin:0; color:#062c48; font-family:"Noto Serif SC",serif; font-size:clamp(46px,4.6vw,72px); line-height:1.23; letter-spacing:-.04em; }
.reference-hero p { max-width:610px; margin:21px 0 0; color:#586b76; font-size:17px; line-height:1.9; }
.reference-hero .hero-actions { margin-top:26px; }
.reference-hero .hero-actions .button { min-width:188px; }
.reference-hero .button--outline { border-color:var(--teal); color:var(--teal); background:rgba(255,255,255,.78); }
.reference-hero__note { display:flex; align-items:center; gap:13px; margin-top:25px; color:#7d8d95; font-size:13px; letter-spacing:.06em; }
.reference-hero__note i { width:1px; height:16px; background:#aebdc1; }

.reference-heading h2 { margin:7px 0 5px; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:31px; }
.reference-heading .section-label { color:#b88637; font-family:Georgia,serif; font-size:13px; letter-spacing:.12em; }
.reference-heading>p,.reference-heading>div>p { margin:0; color:var(--muted); }
.faq-section { padding-top:52px; padding-bottom:58px; }
.faq-section .section-heading { margin-bottom:24px; }
.faq-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.faq-grid button { min-height:86px; display:grid; grid-template-columns:46px minmax(0,1fr) 12px; align-items:center; gap:13px; padding:16px; border:1px solid #dce8ea; background:#fff; color:var(--navy); text-align:left; }
.faq-grid button>span { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:#e3f5f2; color:var(--teal); font-size:17px; }
.faq-grid button>i { color:var(--navy); font-size:11px; }
.faq-grid strong { font-size:15px; line-height:1.55; }
.section--aspiration-list { padding-block:56px 68px; background:linear-gradient(135deg,#edf8f6,#f7fbfa 58%,#e6f4f2); }
.section-heading__actions { display:flex; align-items:center; gap:18px; }
.section-heading__actions .button { padding:9px 14px; font-size:13px; }
.reference-tabs { display:flex; gap:26px; margin-bottom:24px; border-bottom:1px solid #cfe0df; }
.reference-tabs button { padding:11px 18px; border:0; border-bottom:3px solid transparent; background:transparent; color:#50646f; font-size:17px; font-weight:800; }
.reference-tabs button.is-active { border-bottom-color:var(--teal); color:var(--teal); }
.aspiration-tab-content { min-height:430px; }
.aspiration-major-grid { grid-template-columns:repeat(3,1fr); }
.university-grid--reference .university-card { border-radius:0; box-shadow:none; }
.university-grid--reference .university-card__image { height:210px; }
.university-grid--reference .university-card__body { padding:20px 22px 24px; }
.university-grid--reference .university-card h3 { font-family:"Noto Serif SC",serif; font-size:22px; }
.service-process { position:relative; overflow:hidden; padding-block:58px 62px; background:#fff; }
.service-process::after { content:""; position:absolute; left:-5%; right:-5%; bottom:-95px; height:145px; border-radius:50% 50% 0 0; background:linear-gradient(180deg,rgba(214,241,237,.7),rgba(240,249,247,.1)); }
.process-line { position:relative; display:grid; grid-template-columns:repeat(4,1fr); margin-top:24px; }
.process-line::before { content:""; position:absolute; left:10%; right:10%; top:27px; height:1px; background:#b9dfda; }
.process-line article { position:relative; z-index:1; padding:0 22px; text-align:center; }
.process-line article>span { width:56px; height:56px; display:grid; place-items:center; margin:0 auto 17px; border-radius:50%; background:#d7f1ed; color:var(--teal); font-size:19px; }
.process-line h3 { margin:0 0 7px; color:var(--navy); font-family:"Noto Serif SC",serif; font-size:17px; }
.process-line p { max-width:180px; margin:0 auto; color:var(--muted); font-size:13px; line-height:1.7; }
.process-action { position:relative; z-index:2; display:grid; justify-content:center; gap:8px; margin-top:28px; text-align:center; }
.process-action .button { min-width:230px; }
.process-action small { color:#85939a; }

.about-section-nav { position:sticky; top:120px; z-index:12; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(10px); box-shadow:0 6px 18px rgba(7,40,62,.04); }
.about-section-nav .shell { min-height:70px; display:grid; grid-template-columns:repeat(5,1fr); }
.about-section-nav button { position:relative; display:flex; align-items:center; justify-content:center; gap:10px; border:0; background:transparent; color:#526670; font-weight:700; }
.about-section-nav button i { color:var(--teal); font-size:18px; }
.about-section-nav button.is-active::after,.about-section-nav button:hover::after { content:""; position:absolute; left:25%; right:25%; bottom:0; height:3px; background:var(--teal); }
.about-section-nav button.is-active { color:var(--teal); }
.about-reference-content { min-height:0; padding-top:48px; padding-bottom:68px; }
.about-tab-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.92fr); gap:58px; align-items:start; }
.about-tab-panel__copy h2 { max-width:640px; margin:12px 0 20px; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:38px; line-height:1.4; }
.about-tab-panel__copy p { max-width:680px; margin:0 0 13px; color:var(--muted); font-size:16px; line-height:1.95; }
.about-tab-panel__action { margin-top:26px; }
.about-tab-panel__visual { height:350px; overflow:hidden; border-radius:10px; background:#e5f1ef; box-shadow:0 18px 42px rgba(7,40,62,.1); }
.about-tab-panel__visual img { width:100%; height:100%; object-fit:cover; }
.about-tab-panel--campuses { grid-template-columns:minmax(0,1fr) minmax(430px,.95fr); gap:54px; }
.campus-inline-copy { min-width:0; }
.campus-inline-search { width:100%; display:grid; grid-template-columns:20px minmax(0,1fr) auto; align-items:center; gap:10px; margin-top:24px; padding:7px 8px 7px 16px; border:1px solid #cfe0df; border-radius:7px; background:#fff; color:var(--teal); box-shadow:0 10px 24px rgba(7,40,62,.06); }
.campus-inline-search input { min-width:0; padding:10px 2px; border:0; outline:0; color:var(--ink); background:transparent; }
.campus-inline-search button { padding:12px 18px; border:0; border-radius:5px; background:var(--teal); color:#fff; font-weight:800; }
.campus-inline-results { max-height:248px; overflow:auto; margin-top:16px; padding-right:4px; }
.campus-inline-hint,.campus-inline-empty { display:flex; align-items:center; gap:9px; padding:15px 16px; border:1px dashed #cbdedb; border-radius:6px; background:#f7fbfa; color:var(--muted); font-size:13px; }
.campus-inline-hint i,.campus-inline-empty i { color:var(--teal); }
.campus-inline-empty { align-items:flex-start; flex-wrap:wrap; }
.campus-inline-empty strong { color:var(--navy); }
.campus-inline-result { width:100%; display:grid; grid-template-columns:34px minmax(0,1fr) 12px; gap:10px; align-items:center; padding:14px 12px; border:1px solid var(--line); border-bottom:0; background:#fff; text-align:left; }
.campus-inline-result:first-child { border-radius:7px 7px 0 0; }
.campus-inline-result:last-child { border-bottom:1px solid var(--line); border-radius:0 0 7px 7px; }
.campus-inline-result.is-active { border-color:#8ccbc3; background:#edf8f6; }
.campus-inline-result>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--teal-soft); color:var(--teal); }
.campus-inline-result small,.campus-inline-result strong { display:block; }
.campus-inline-result small { color:var(--teal); font-size:11px; }
.campus-inline-result strong { margin:3px 0; color:var(--navy); font-size:14px; }
.campus-inline-result p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.campus-inline-result>i { color:var(--teal); font-size:11px; }
.about-tab-panel__visual.campus-inline-map { height:500px; position:relative; isolation:isolate; }
.campus-inline-map>img { position:absolute; inset:0; z-index:-3; }
.campus-map-wash { position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(237,249,247,.18),rgba(7,40,62,.24)); }
.campus-overview-pin,.campus-focused-pin { position:absolute; z-index:1; left:var(--pin-x); top:var(--pin-y); display:grid; place-items:center; width:30px; height:30px; translate:-50% -50%; border:3px solid rgba(255,255,255,.92); border-radius:50%; background:var(--teal); color:#fff; box-shadow:0 8px 18px rgba(7,40,62,.24); }
.campus-overview-pin:nth-of-type(even) { scale:.82; }
.campus-focused-pin { left:62%; top:39%; width:46px; height:46px; font-size:18px; }
.campus-map-summary { position:absolute; z-index:2; left:20px; right:20px; bottom:20px; padding:18px 20px; border:1px solid rgba(255,255,255,.76); border-radius:8px; background:rgba(255,255,255,.94); box-shadow:0 12px 30px rgba(7,40,62,.14); backdrop-filter:blur(8px); }
.campus-map-summary small { color:var(--teal); font-weight:800; }
.campus-map-summary h3 { margin:6px 0; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:22px; }
.campus-map-summary p { margin:0 0 6px; color:var(--muted); font-size:13px; line-height:1.6; }
.campus-map-summary .text-link { font-size:13px; }

@media (max-width:1100px) {
  .reference-hero__wash { background:linear-gradient(90deg,rgba(248,252,251,.99) 0%,rgba(248,252,251,.92) 48%,rgba(248,252,251,.2) 78%); }
  .faq-grid { grid-template-columns:repeat(2,1fr); }
  .section-heading__actions { align-items:flex-end; flex-direction:column; gap:6px; }
}

@media (max-width:760px) {
  .brand { width:150px; height:44px; }
  .brand img.header-logo { width:100%; height:100%; }
  .footer-logo { width:150px; height:44px; }
  .footer-brand p { max-width:320px; font-size:14px; line-height:1.85; }
  .reference-hero { min-height:620px; }
  .reference-hero__content { min-height:620px; justify-content:flex-start; padding-top:54px; padding-bottom:210px; }
  .reference-hero__wash { background:linear-gradient(180deg,rgba(248,252,251,.99) 0%,rgba(248,252,251,.96) 52%,rgba(248,252,251,.35) 79%,rgba(248,252,251,.08) 100%); }
  .reference-hero h1 { font-size:40px; }
  .reference-hero p { font-size:15px; }
  .reference-hero .hero-actions { width:100%; display:grid; grid-template-columns:1fr; }
  .reference-hero .hero-actions .button { width:100%; min-width:0; }
  .reference-hero__note { align-items:flex-start; flex-wrap:wrap; gap:7px 10px; font-size:11px; }
  .reference-heading h2 { font-size:27px; }
  .faq-grid { grid-template-columns:1fr; }
  .faq-grid button { min-height:76px; }
  .section-heading__actions { width:100%; align-items:flex-start; }
  .section-heading__actions .button { width:100%; }
  .reference-tabs { overflow-x:auto; }
  .aspiration-tab-content { min-height:0; }
  .aspiration-major-grid { grid-template-columns:1fr; }
  .university-grid--reference .university-card__image { height:190px; }
  .process-line { grid-template-columns:1fr 1fr; gap:27px 4px; }
  .process-line::before { display:none; }
  .process-line article { padding:0 6px; }
  .process-line h3 { font-size:15px; }
  .about-section-nav { top:112px; overflow-x:auto; }
  .about-section-nav .shell { width:max-content; min-width:100%; min-height:58px; display:flex; }
  .about-section-nav button { min-width:112px; padding:0 14px; white-space:nowrap; }
  .about-section-nav button.is-active::after,.about-section-nav button:hover::after { left:18%; right:18%; }
  .about-reference-content { min-height:0; }
  .about-tab-panel { grid-template-columns:1fr; gap:28px; }
  .about-tab-panel__copy h2 { font-size:29px; }
  .about-tab-panel__copy p { font-size:15px; }
  .about-tab-panel__visual { height:240px; }
  .about-tab-panel--campuses { grid-template-columns:1fr; }
  .campus-inline-search { grid-template-columns:18px minmax(0,1fr); padding:9px 12px; }
  .campus-inline-search button { grid-column:1 / -1; }
  .campus-inline-results { max-height:none; }
  .about-tab-panel__visual.campus-inline-map { height:390px; }
  .campus-map-summary { left:12px; right:12px; bottom:12px; padding:15px; }
  .courses-page-content { padding-top:38px; }
  .home-course-section { padding-top:32px; }
  .articles-page-content { padding-top:32px; }
  .hero h1 { font-size:38px; }
}

/* 关于衡真：按客户参考图重构四个内容页签。 */
.about-tab-panel--rich { display:block; }
.about-rich { width:100%; }
.about-story { display:grid; grid-template-columns:minmax(0,.96fr) minmax(460px,1.04fr); gap:64px; align-items:stretch; }
.about-story__copy .section-label { display:block; margin-bottom:15px; font-family:Georgia,serif; letter-spacing:.06em; }
.about-story__copy h2 { margin:0 0 24px; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:clamp(34px,3vw,46px); line-height:1.35; letter-spacing:-.025em; text-wrap:balance; }
.about-story__copy p { max-width:660px; margin:0 0 13px; color:var(--muted); font-size:16px; line-height:1.95; }
/* 配图在行内垂直居中；高度跟随文字但不超高（长正文不再稀释图片），照片完整显示（contain）居中 */
.about-reference-crop { align-self:center; height:min(100%,640px); min-height:280px; border-radius:10px; background-repeat:no-repeat; background-size:contain; background-position:center; }
.about-reference-crop--institution { background-image:url("assets/about-institution-reference.jpg"); background-size:237% auto; background-position:88% 70%; }
.about-reference-crop--service { background-image:url("assets/about-service-reference.jpg"); background-size:237% auto; background-position:88% 67%; }
.about-reference-crop--contact { background-image:url("assets/about-contact-reference.webp"); background-size:237% auto; background-position:89% 68%; }
.about-motto { display:flex; align-items:center; gap:18px; margin-top:26px; color:#70828b; font-size:13px; letter-spacing:.08em; }
.about-motto i { width:40px; height:1px; background:#a9bdc3; }
.about-feature-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:28px; }
.about-feature-row article { min-height:132px; display:grid; grid-template-columns:54px minmax(0,1fr) 14px; gap:14px; align-items:start; padding:22px 20px; border:1px solid #edf1f2; border-radius:8px; background:#fff; box-shadow:0 10px 28px rgba(7,40,62,.055); }
.about-feature-row article>span { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; background:#e4f6f2; color:var(--teal); font-size:21px; }
.about-feature-row article>i { align-self:center; color:var(--teal); font-size:12px; }
.about-feature-row h3 { margin:2px 0 8px; color:var(--navy-dark); font-size:17px; }
.about-feature-row strong { display:block; margin-bottom:4px; color:#61747e; font-size:13px; font-weight:500; }
.about-feature-row p { margin:0; color:#7c8b92; font-size:12px; line-height:1.65; }
.about-closing { display:flex; align-items:center; justify-content:center; gap:18px; margin:28px 0 0; color:#71838b; font-size:13px; letter-spacing:.08em; }
.about-closing span { width:82px; height:1px; background:#b8cacd; }

.about-content-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:18px; }
.about-content-heading>div { position:relative; padding-left:24px; }
.about-content-heading>div::before { content:""; position:absolute; left:0; top:4px; width:7px; height:31px; border-radius:4px; background:var(--teal); }
.about-content-heading h2 { margin:0 0 6px; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:31px; }
.about-content-heading p { margin:0; color:var(--muted); font-size:15px; }
.about-content-heading .text-link { color:#647681; font-weight:500; }
.teacher-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.teacher-card { min-height:194px; display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:12px; border:1px solid #edf1f2; border-radius:10px; background:#fff; box-shadow:0 10px 28px rgba(7,40,62,.06); }
.teacher-portrait { display:block; width:180px; height:168px; border-radius:8px; background-color:#eaf2f1; background-image:url("assets/about-research-reference.webp"); background-repeat:no-repeat; }
.teacher-portrait--zhang { background-size:1382px 922px; background-position:-82px -352px; }
.teacher-portrait--li { background-size:1382px 922px; background-position:-711px -352px; }
.teacher-portrait--wang { background-size:1382px 922px; background-position:-83px -554px; }
.teacher-portrait--liu { background-size:1382px 922px; background-position:-713px -554px; }
.teacher-card__body { min-width:0; padding:9px 8px 4px 0; }
.teacher-card__title { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.teacher-card__title h3 { margin:0 10px 0 0; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:22px; }
.teacher-card__title span { color:#45616f; font-size:13px; }
.teacher-card__title i { width:1px; height:15px; background:#a9b7bd; }
.teacher-tags { display:flex; flex-wrap:wrap; gap:9px; margin:13px 0; }
.teacher-tags span,.material-fit { padding:5px 13px; border-radius:5px; background:#eaf7f5; color:var(--teal); font-size:12px; }
.teacher-card p { margin:0; color:#647681; font-size:13px; line-height:1.75; }
.about-content-heading--materials { margin-top:26px; }
.material-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.material-card { min-height:142px; display:grid; grid-template-columns:88px minmax(0,1fr); gap:16px; padding:14px; border:1px solid #edf1f2; border-radius:8px; background:#fff; }
.book-cover { min-height:116px; display:flex; flex-direction:column; justify-content:flex-end; padding:10px; border:1px solid rgba(8,127,120,.12); color:#0b4c70; background:linear-gradient(150deg,#f9fcfb 22%,#d8eef8 23%,#e6f4fb 61%,#9dcde6 62%); }
.book-cover--2 { color:#496331; background:linear-gradient(150deg,#fbfcf8 22%,#e4efd9 23%,#edf5e6 61%,#b7d49f 62%); }
.book-cover--3 { color:#7b5533; background:linear-gradient(150deg,#fffdf8 22%,#f4e6d4 23%,#fbf1e6 61%,#dfbf95 62%); }
.book-cover--4 { background:linear-gradient(150deg,#f9fcfb 22%,#d9ecf4 23%,#e9f4f8 61%,#acd3e0 62%); }
.book-cover small { font-size:10px; }
.book-cover strong { margin:4px 0 auto; font-family:"Noto Serif SC",serif; font-size:13px; line-height:1.35; }
.book-cover span { font-size:9px; }
.material-card h3 { margin:5px 0 8px; color:var(--navy-dark); font-size:15px; }
.material-card p { min-height:54px; margin:0 0 9px; color:#76868d; font-size:11px; line-height:1.6; }
.material-fit { display:inline-block; padding:3px 8px; font-size:10px; }

.contact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:28px; }
.contact-grid article { min-height:164px; display:grid; grid-template-columns:72px minmax(0,1fr); gap:18px; padding:22px; border:1px solid #edf1f2; border-radius:8px; background:#fff; }
.contact-icon { width:72px; height:72px; display:grid; place-items:center; border-radius:50%; font-size:28px; }
.contact-icon--teal { color:#00887e; background:#e4f5f0; }
.contact-icon--blue { color:#0f6f9b; background:#dff2fb; }
.contact-icon--green { color:#08a94d; background:#e2f8eb; }
.contact-icon--gold { color:#bf7713; background:#fff0da; }
.contact-grid h3 { margin:3px 0 8px; color:var(--navy-dark); font-size:16px; }
.contact-grid a { display:block; margin-bottom:7px; color:var(--navy-dark); font-size:24px; font-weight:800; text-decoration:none; }
.contact-grid p { min-height:42px; margin:0 0 9px; color:#687b84; font-size:12px; line-height:1.55; }
.contact-grid .button { width:100%; padding:8px 10px; font-size:12px; }

@media (max-width:1100px) {
  .about-story { grid-template-columns:1fr 1fr; gap:34px; }
  .about-feature-row,.contact-grid,.material-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .teacher-card { grid-template-columns:140px minmax(0,1fr); gap:16px; }
  .teacher-portrait { width:140px; }
}

@media (max-width:760px) {
  .about-reference-content { padding-top:34px; padding-bottom:48px; }
  .about-story { grid-template-columns:1fr; gap:26px; }
  .about-story__copy h2 { font-size:31px; }
  .about-story__copy p { font-size:14px; }
  .about-reference-crop { height:auto; min-height:0; aspect-ratio:4 / 3; background-size:contain; }
  .about-motto { align-items:flex-start; font-size:11px; line-height:1.7; }
  .about-motto i { flex:none; width:24px; margin-top:8px; }
  .about-feature-row,.contact-grid,.teacher-grid,.material-grid { grid-template-columns:1fr; }
  .about-feature-row article { min-height:0; }
  .about-content-heading { align-items:flex-start; }
  .about-content-heading h2 { font-size:28px; }
  .about-content-heading p { font-size:13px; line-height:1.6; }
  .teacher-card { grid-template-columns:118px minmax(0,1fr); gap:14px; }
  .teacher-portrait { width:118px; height:158px; }
  .teacher-card__title { gap:7px; }
  .teacher-card__title h3 { width:100%; font-size:19px; }
  .teacher-tags { gap:5px; margin:9px 0; }
  .teacher-tags span { padding:4px 7px; font-size:10px; }
  .teacher-card p { display:-webkit-box; overflow:hidden; -webkit-line-clamp:3; -webkit-box-orient:vertical; font-size:11px; }
  .material-card { grid-template-columns:94px minmax(0,1fr); }
  .contact-grid article { min-height:0; }
  .about-closing span { width:30px; }
}

/* ===== 批次0 增量（PLAN-website-20260911）：首页通栏首屏（偏差D1）+ 后台可配图片 ===== */
.page-visual--home { min-height:556px; }
.page-visual--home .visual-content { min-height:556px; padding-block:96px 110px; }
.page-visual--home h1 { font-size:clamp(42px,4.2vw,64px); }
.page-visual--home h1 em { color:#8fd8cf; font-style:normal; }
.page-visual--home .hero-notes { gap:46px; margin:16px 0 0; color:#c9dce4; }
.page-visual--home .hero-actions { margin-top:32px; }
.page-visual--home .visual-overlay { background:linear-gradient(90deg,rgba(5,32,50,.94) 0%,rgba(7,40,62,.82) 46%,rgba(7,40,62,.30) 100%); }
.teacher-portrait img { display:block; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.book-cover--img { padding:0; overflow:hidden; }
.book-cover--img img { display:block; width:100%; height:100%; object-fit:cover; }
@media (max-width:760px) {
  .page-visual--home { min-height:0; }
  .page-visual--home .visual-content { min-height:440px; padding-block:56px 64px; }
  .page-visual--home h1 { font-size:40px; }
  .page-visual--home .hero-notes { justify-content:space-between; width:100%; gap:14px; font-size:12px; margin-inline:0; }
}

/* ===== 自适应修正（用户反馈）：方向导航单行不换行，字号随视口等比缩放 ===== */
.track-item strong, .track-item small { white-space:nowrap; }
@media (min-width:761px) {
  .track-strip { grid-template-columns:minmax(0,1.1fr) repeat(5,minmax(0,1fr)); }
  .track-intro { font-size:clamp(14px,1.5vw,21px); gap:10px; padding:16px clamp(8px,1vw,18px); }
  .track-intro > i { font-size:clamp(17px,1.7vw,26px); }
  .track-item { gap:clamp(6px,0.8vw,14px); padding:16px clamp(6px,0.9vw,18px); }
  .track-item strong { font-size:clamp(11px,1.05vw,17px); }
  .track-item small { font-size:clamp(10px,0.78vw,12px); }
  .track-icon { width:clamp(26px,2.4vw,34px); height:clamp(26px,2.4vw,34px); font-size:clamp(13px,1.2vw,16px); flex:none; }
  .track-item > i { font-size:clamp(9px,0.9vw,12px); }
}

/* ===== 自适应修正2：主导航单行——字号/间距随视口连续缩放（消除 761-880 与 1101-1120 两段折行） ===== */
@media (min-width:761px) {
  .main-nav { gap:clamp(16px,2.1vw,26px); }
  .main-nav button { white-space:nowrap; font-size:clamp(11px,1.32vw,16px); }
  .header-inner > .button { white-space:nowrap; }
}

/* ===== 用户反馈修正：首页/综合资讯通栏头图去蓝色模板遮罩，图片按本来颜色显示 ===== */
.page-visual--home, .page-visual--articles { background:#f4f7f6; }
.page-visual--home .visual-overlay, .page-visual--articles .visual-overlay { background:none; }
.page-visual--home .visual-content, .page-visual--articles .visual-content { color:var(--navy-dark); }
.page-visual--home h1, .page-visual--articles h1 {
  color:var(--navy-dark);
  text-shadow:0 1px 2px rgba(255,255,255,.65), 0 0 22px rgba(255,255,255,.45);
}
.page-visual--home h1 em { color:var(--teal); }
.page-visual--home .eyebrow--light, .page-visual--articles .eyebrow--light { color:var(--teal); }
.page-visual--home p, .page-visual--articles p {
  color:#3d5a68;
  text-shadow:0 1px 2px rgba(255,255,255,.6), 0 0 14px rgba(255,255,255,.4);
}
.page-visual--home .hero-notes {
  color:#4a6672;
  text-shadow:0 1px 2px rgba(255,255,255,.6);
}

/* ===== 首页首屏链接位（后台可开关，按钮下方） ===== */
.page-visual--home .hero-link-wrap { margin-top:34px; }
.page-visual--home .hero-link {
  display:inline-flex; align-items:center; gap:10px;
  color:#0b3b60; font-size:15px; font-weight:600; text-decoration:none;
  text-shadow:0 1px 2px rgba(255,255,255,.5);
  transition:color .18s ease;
}
.page-visual--home .hero-link i { font-size:13px; color:#087f78; transition:transform .18s ease; }
.page-visual--home .hero-link:hover { color:#087f78; }
.page-visual--home .hero-link:hover i { transform:translateX(4px); }
.page-visual--home .hero-link-note { margin:10px 0 0; color:#4a6672; font-size:13px; text-shadow:0 1px 2px rgba(255,255,255,.55); }

/* ===== 方向条修正：贴顶通栏 + 任意数量单行自适应（方向数据源=题库分类，数量可变） ===== */
.study-nav { padding:0; border-top:0; }
.track-strip--header { width:100%; margin:0; border-left:0; border-right:0; border-top:0; border-radius:0; box-shadow:none; }
@media (min-width:761px) {
  .track-strip--header { display:flex; align-items:stretch; }
  .track-strip--header .track-intro { flex:none; }
  .track-strip--header .track-item { flex:1 1 0; min-width:0; }
}
@media (max-width:760px) {
  .track-strip--header { width:100%; }
}

/* ===== 资讯详情富文本正文（批次2：官网资讯表） ===== */
.article-rich { line-height:1.9; color:var(--navy); }
.article-rich h1, .article-rich h2, .article-rich h3 { color:var(--navy-dark); font-family:"Noto Serif SC",serif; margin:22px 0 10px; }
.article-rich p { margin:10px 0; }
.article-rich img { max-width:100%; height:auto; border-radius:6px; }
.article-rich ul, .article-rich ol { padding-left:22px; }
.article-rich blockquote { margin:14px 0; padding:10px 16px; background:#f4faf9; border-left:3px solid var(--teal); color:var(--muted); }
.article-loading { color:var(--muted); font-size:14px; }

/* ===== 关于页富文本正文（批次4：三板块 content 整体编辑） ===== */
.about-rich-content p { margin:14px 0; color:var(--muted); font-size:17px; line-height:1.9; }
.about-rich-content h3, .about-rich-content h4 { color:var(--navy-dark); margin:18px 0 8px; }

/* ===== 机构介绍特色卡片：可点击查看详情 ===== */
.feature-click { cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.feature-click:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--teal); }
.feature-click:hover i { color:var(--teal); }
.feature-detail { text-align:left; margin-top:6px; color:var(--muted); line-height:1.85; }
.feature-detail p { margin:10px 0; }

.feature-detail-img { width:100%; height:190px; object-fit:cover; border-radius:8px; margin-bottom:16px; }
.feature-detail-title { margin-top:4px; }
.feature-detail-lead { margin:2px 0 12px; color:var(--teal); font-weight:700; font-size:15px; }

/* ===== 特色卡片详情页（批次4：图文介绍独立页） ===== */
.feature-head { background:linear-gradient(135deg,#eef7f5,#f6faf9); border-bottom:1px solid var(--line); padding:64px 0 56px; }
.feature-head h1 { margin:12px 0 8px; color:var(--navy-dark); font-family:"Noto Serif SC",serif; font-size:clamp(34px,3.4vw,48px); letter-spacing:-.03em; }
.feature-head p { margin:0; color:var(--teal); font-weight:700; font-size:17px; }
.feature-page-img { width:100%; height:280px; object-fit:cover; border-radius:10px; margin-bottom:20px; }

/* ===== 弹层二维码强制居中（img 行内元素 margin auto 不生效） ===== */
.modal .qr-code, .modal .qr-demo { display:block; margin-left:auto; margin-right:auto; }

/* ===== 关于页吸顶导航贴顶（原 top:120px 为旧固定页头预留，现页头随滚动离场，改为贴视口顶） ===== */
.about-section-nav { top:0; }

/* ===== 课程详情页（批次4：目录/试看） ===== */
.course-head-meta { display:flex; gap:22px; margin-top:6px; color:#cfe0e6; font-size:14px; }
.course-catalog .catalog-chapter { margin-bottom:16px; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.course-catalog .catalog-chapter > strong { display:flex; align-items:center; gap:10px; padding:12px 16px; background:#f6faf9; color:var(--navy-dark); font-size:15px; }
.course-catalog .catalog-chapter > strong i { color:var(--teal); }
.catalog-lesson { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 16px; border-top:1px solid var(--line); color:var(--navy); font-size:14px; }
.catalog-lesson.is-trial { background:#fbfefd; }
.catalog-lesson .trial-tag { margin-left:10px; padding:2px 8px; font-size:11px; font-style:normal; color:var(--teal); background:var(--teal-soft); border-radius:999px; }
.catalog-lesson .trial-locked { color:var(--muted); font-size:12px; }
.trial-player { display:block; width:100%; margin:14px 0 6px; border-radius:8px; background:#000; aspect-ratio:16/9; }
.player-tip { min-height:20px; margin:6px 0; color:var(--teal); font-size:13px; }

/* ===== 课程卡片整卡可点 ===== */
.course-card--link { cursor:pointer; transition:transform .18s ease, box-shadow .18s ease; }
.course-card--link:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(7,40,62,.12); }

/* ===== 校区高德地图（批次5） ===== */
.campus-amap { position:absolute; inset:0; }
.campus-amap .amap-marker-label { border:1px solid var(--line) !important; border-radius:4px; padding:2px 6px; font-size:12px; color:var(--navy-dark); white-space:nowrap; }
.campus-inline-map { min-height:420px; }

/* ===== 服务卡片/特色卡片图标图片化 ===== */
.about-feature-row article>span.feature-icon { overflow:hidden; }
.about-feature-row article>span.feature-icon img { width:100%; height:100%; object-fit:cover; display:block; }

/* ===== 头部区域上移：减少通栏背景图上方留白，内容置顶（用户反馈） ===== */
.page-visual--home .visual-content { justify-content:flex-start; padding-block:56px 90px; }
.page-visual .visual-content { justify-content:flex-start; padding-block:44px 50px; }
.visual-content { justify-content:flex-start; }
.reference-hero__content { justify-content:flex-start; padding-block:52px; }
@media (max-width:760px) {
  .page-visual--home .visual-content { padding-block:36px 56px; }
  .reference-hero__content { padding-block:36px; }
}

/* ============================================================
   动效升级批次1（官网动效设计方案 2026-09-13）
   L0 运动token（:root）+ L1 滚动reveal + L2 页面切换 + L3 Hero分层入场
   原则：只动 transform/opacity；交互元素入场后由 JS 摘除 data-reveal 标记，
   避免入场 transition 与元素自身 hover 位移冲突；.js 根类由 app.js 挂载，
   JS 不可用时所有 reveal 初始隐藏样式不生效，内容直接可见。
   ============================================================ */

/* ---- L1 滚动进入：IO 触发 is-revealed，动画结束 JS 摘除标记 ---- */
.js [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); transition-delay:var(--reveal-delay,0ms); }
.js [data-reveal="fade"] { transform:none; }
.js [data-reveal].is-revealed { opacity:1; transform:none; }

/* ---- L2 页面切换：render 后 main 一次性入场（backwards 不残留 transform，不影响 sticky/fixed） ---- */
@keyframes pageIn { from { opacity:0; transform:translateY(10px); } }
.page-enter { animation:pageIn .32s var(--ease-out) backwards; }

/* ---- L3 首页 Hero：主/副标题逐行遮罩升起（非交互元素，纯 CSS 无残留） ---- */
.hero-line { display:block; overflow:hidden; }
.hero-line__inner { display:block; }
.js .page-visual--home h1 .hero-line:nth-child(1) .hero-line__inner { animation:heroLineIn .75s var(--ease-out) .15s backwards; }
.js .page-visual--home h1 .hero-line:nth-child(2) .hero-line__inner { animation:heroLineIn .75s var(--ease-out) .28s backwards; }
@keyframes heroLineIn { from { transform:translateY(108%); } }

/* ---- L3 头图浮现：淡入（opacity）与漂移（transform）分属两个动画互不覆盖，漂移延迟启动 ---- */
.js .visual-media { animation:mediaIn .9s ease backwards; }
.visual--animated .visual-media { animation:mediaIn .9s ease backwards, visualDrift 16s ease-in-out 1s infinite alternate; }
@keyframes mediaIn { from { opacity:0; } }

/* ---- L3 首页底部滚动提示（移动端首屏高度紧张，隐藏） ---- */
.scroll-cue { position:absolute; left:50%; bottom:16px; translate:-50% 0; z-index:1; display:grid; justify-items:center; gap:7px; color:#4a6672; font-size:11px; letter-spacing:.18em; }
.scroll-cue__line { width:1px; height:34px; background:currentColor; animation:cueLine 2.2s var(--ease-inout) infinite; }
.scroll-cue__text { opacity:.75; }
@keyframes cueLine {
  0% { transform:scaleY(0); transform-origin:top; }
  45% { transform:scaleY(1); transform-origin:top; }
  55% { transform:scaleY(1); transform-origin:bottom; }
  100% { transform:scaleY(0); transform-origin:bottom; }
}
@media (max-width:760px) { .scroll-cue { display:none; } }

/* ---- reduced-motion：全部入场动效直接呈现终态（覆盖上方规则，本块在后生效） ---- */
@media (prefers-reduced-motion:reduce) {
  .js [data-reveal] { opacity:1; transform:none; transition:none; }
  .page-enter,
  .js .page-visual--home h1 .hero-line__inner,
  .js .visual-media,
  .visual--animated .visual-media,
  .scroll-cue__line { animation:none; }
}

/* ============================================================
   动效批次2：氛围层——流光丝带 / 呼吸光晕 / 掠过光带 / 主CTA流光
   全部 transform/opacity 合成器动画；blur 为静态滤镜不参与插值；
   光晕用小底圆 + 静态大 blur 合成大柔光，控制合成层尺寸；
   reduced-motion 下停动画、保留静态柔光
   ============================================================ */
.aura { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.aura > span { position:absolute; display:block; }

/* 呼吸光晕：缓慢缩放+漂移，负 delay 错开相位互不同步 */
.aura__glow { width:260px; height:260px; border-radius:50%; filter:blur(38px); background:radial-gradient(circle, rgba(8,127,120,.20), rgba(8,127,120,0) 66%); animation:auraBreath 11s ease-in-out -3s infinite alternate; }
.aura__glow--teal { left:-70px; top:-60px; }
.aura__glow--gold { right:5%; bottom:-70px; width:300px; height:300px; background:radial-gradient(circle, rgba(217,154,55,.15), rgba(217,154,55,0) 66%); animation-duration:14s; animation-delay:-8s; }
.aura__glow--mint { right:-70px; bottom:-80px; width:320px; height:320px; background:radial-gradient(circle, rgba(143,216,207,.20), rgba(143,216,207,0) 66%); animation-duration:15s; animation-delay:-9s; }
@keyframes auraBreath { from { transform:scale(.9) translate3d(0,0,0); opacity:.7; } to { transform:scale(1.12) translate3d(18px,14px,0); opacity:1; } }

/* 流光丝带：弧形渐变长带，两条反向错相位缓漂 */
.aura__ribbon { left:-22%; top:26%; width:150%; height:190px; border-radius:100%; filter:blur(7px); background:linear-gradient(97deg, rgba(143,216,207,0) 16%, rgba(143,216,207,.20) 42%, rgba(8,127,120,.15) 58%, rgba(143,216,207,0) 82%); transform:rotate(-7deg); animation:ribbonFlow 17s ease-in-out infinite alternate; }
.aura__ribbon--two { top:56%; height:110px; opacity:.55; background:linear-gradient(83deg, rgba(255,255,255,0) 18%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 80%); animation-duration:23s; animation-direction:alternate-reverse; }
@keyframes ribbonFlow { from { transform:rotate(-7deg) translate3d(-4%,3%,0); opacity:.65; } to { transform:rotate(-4deg) translate3d(4%,-3%,0); opacity:1; } }

/* 掠过光带：一个周期内只扫过一次，其余时间在画外待命 */
.aura__sweep { top:-35%; left:-30%; width:44%; height:170%; filter:blur(16px); background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.09) 44%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.09) 56%, rgba(255,255,255,0)); animation:auraSweep 19s ease-in-out infinite; }
@keyframes auraSweep {
  0%, 52% { transform:rotate(13deg) translate3d(-150%,0,0); opacity:0; }
  60% { opacity:.9; }
  92%, 100% { transform:rotate(13deg) translate3d(340%,0,0); opacity:0; }
}

/* 深蓝/浅色内容块接入氛围层：aura 提到 z 0，内容抬到 z 1 */
.mini-banner, .trust { position:relative; overflow:hidden; }
.mini-banner .aura, .trust .aura { z-index:0; }
.mini-inner > div, .mini-actions, .trust > div { position:relative; z-index:1; }
.mini-banner .aura__glow--teal { left:-80px; top:-90px; }

/* 主 CTA 低频流光：6s 周期里仅一次斜向高光扫过 */
.button--shine { position:relative; overflow:hidden; }
.button--shine::after { content:""; position:absolute; top:-45%; bottom:-45%; left:0; width:34%; background:linear-gradient(105deg, rgba(255,255,255,0), rgba(255,255,255,.38) 50%, rgba(255,255,255,0)); transform:translate3d(-300%,0,0) skewX(-16deg); animation:btnShine 6s ease-in-out 2.4s infinite; }
@keyframes btnShine {
  0%, 62% { transform:translate3d(-300%,0,0) skewX(-16deg); }
  86%, 100% { transform:translate3d(480%,0,0) skewX(-16deg); }
}

/* 移动端：砍掉丝带与第二光晕，保留一枚光晕+掠光（控制合成层数量） */
@media (max-width:760px) {
  .aura__ribbon, .aura__ribbon--two, .aura__glow--gold { display:none; }
}

/* reduced-motion：氛围层静止为静态柔光 */
@media (prefers-reduced-motion:reduce) {
  .aura > span { animation:none !important; opacity:.55; }
  .button--shine::after { animation:none !important; display:none; }
}

/* ============================================================
   移动端布局修复（用户线上反馈 2026-09-14，存量问题非动效引入）
   ① 方向条：原两列网格 3 行占屏约 390px 过散 → 横向滑动单行
   ② 首页头图：cover 居中只裁出原图中部（主体人物在原图右侧被裁掉）
      → 焦点右移 + 顶部轻渐变护文字
   ============================================================ */
@media (max-width:760px) {
  .track-strip--header { display:flex; align-items:stretch; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .track-strip--header::-webkit-scrollbar { display:none; }
  .track-strip--header .track-intro { flex:none; }
  .track-strip--header .track-item { flex:none; min-width:max-content; min-height:0; padding:12px 14px; }
  .track-strip--header .track-item:last-child { border-right:0; }
  .study-nav { position:relative; }
  .study-nav::after { content:""; position:absolute; right:0; top:0; bottom:0; width:30px; background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.95)); pointer-events:none; }
  .page-visual--home .visual-media { background-position:72% center; }
  .page-visual--home .visual-overlay { background:linear-gradient(180deg, rgba(248,252,251,.9) 0%, rgba(248,252,251,.5) 42%, rgba(248,252,251,.12) 100%); }
  .page-visual--home .hero-notes span { padding:4px 10px; border-radius:5px; background:rgba(248,252,251,.78); text-shadow:none; }
}
