/* ============================================================
   NEC home.css · /build-page home · loaded via <link> in page content
   Scoped .nec-h-* classes · reuses --nec-* vars from chrome.css :root
   Signature moment: ripple (concentric green rings) on the hero visual
   ============================================================ */
.nec-h{font-family:Inter,system-ui,sans-serif;color:var(--nec-ink,#1d2733)}
.nec-h .hl-container{max-width:1200px;margin:0 auto;padding-left:clamp(20px,5vw,40px);padding-right:clamp(20px,5vw,40px)}
.nec-h section{position:relative}
.nec-h-eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--nec-green-d,#2e7f63)}
.nec-h-kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--nec-green-d,#2e7f63)}

/* ---------- hero (Treatment A · photo-led) ---------- */
.nec-h-hero{padding:56px 0 60px;background:var(--nec-paper,#fff)}
.nec-h-hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.nec-h-hero h1{font-size:clamp(34px,5vw,52px);line-height:1.04;font-weight:900;letter-spacing:-.025em;color:var(--nec-navy,#313e50);margin:18px 0 18px}
.nec-h-hero h1 em{font-style:normal;color:var(--nec-green,#3ba57e)}
.nec-h-hero .sub{font-size:clamp(16px,1.6vw,18px);color:#46535d;line-height:1.6;max-width:30em}
.nec-h-hero .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.nec-h-btn{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;text-decoration:none;padding:13px 22px;border-radius:9px;transition:transform .15s,background .15s}
.nec-h-btn-primary{color:#fff;background:var(--nec-green,#3ba57e);box-shadow:0 10px 24px -10px rgba(59,165,126,.7)}
.nec-h-btn-primary:hover{background:var(--nec-green-d,#2e7f63);transform:translateY(-1px)}
.nec-h-btn-ghost{color:var(--nec-navy,#313e50);background:transparent;border:1.5px solid #d4dade}
.nec-h-btn-ghost:hover{border-color:var(--nec-green,#3ba57e);color:var(--nec-green-d,#2e7f63)}
/* hero visual + ripple signature */
.nec-h-visual{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:5/4;background:linear-gradient(150deg,var(--nec-navy,#313e50),var(--nec-green-d,#2e7f63));box-shadow:0 36px 80px -36px rgba(20,30,40,.5)}
.nec-h-visual img{width:100%;height:100%;object-fit:cover;display:block;mix-blend-mode:luminosity;opacity:.92}
.nec-h-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(150deg,rgba(41,52,67,.55),rgba(46,127,99,.35))}
.nec-h-ripple{position:absolute;right:8%;top:16%;width:46%;aspect-ratio:1;z-index:2;pointer-events:none}
.nec-h-ripple span{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(87,195,156,.55);opacity:.35}
.nec-h-visual:hover .nec-h-ripple span{animation:necHRip 3.4s ease-out infinite;opacity:1}
.nec-h-ripple span:nth-child(2){animation-delay:1.1s}
.nec-h-ripple span:nth-child(3){animation-delay:2.2s}
.nec-h-ripple .core{position:absolute;inset:38%;border-radius:50%;border:0;background:var(--nec-mint,#57c39c);box-shadow:0 0 30px 6px rgba(87,195,156,.5);animation:none}
@keyframes necHRip{0%{transform:scale(.18);opacity:.9}80%{opacity:.12}100%{transform:scale(1);opacity:0}}
.nec-h-visual .quote{position:absolute;left:24px;right:24px;bottom:22px;z-index:3;color:#fff;font-size:clamp(16px,1.8vw,20px);font-weight:700;line-height:1.3;text-shadow:0 2px 14px rgba(0,0,0,.4)}
@media (prefers-reduced-motion:reduce){.nec-h-ripple span{animation:none;opacity:.3}}

/* ---------- divisions teaser ---------- */
.nec-h-divs{padding:54px 0;background:var(--nec-soft,#f6f8f8);border-top:1px solid var(--nec-line,#e6eaec);border-bottom:1px solid var(--nec-line,#e6eaec)}
.nec-h-divs h2,.nec-h-values h2,.nec-h-news h2{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.015em;color:var(--nec-navy,#313e50);margin:8px 0 6px}
.nec-h-divs .intro{color:#46535d;max-width:60ch;margin-bottom:26px}
.nec-h-divgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.nec-h-divcard{background:#fff;border:1px solid var(--nec-line,#e6eaec);border-radius:16px;padding:28px;position:relative;overflow:hidden}
.nec-h-divcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--nec-green,#3ba57e)}
.nec-h-divcard.b::before{background:var(--nec-mint,#57c39c)}
.nec-h-divcard .tag{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--nec-green-d,#2e7f63);background:var(--nec-pale,#e7f4ee);padding:5px 11px;border-radius:999px;margin-bottom:14px}
.nec-h-divcard h3{font-size:22px;font-weight:800;color:var(--nec-navy,#313e50);margin-bottom:8px}
.nec-h-divcard p{font-size:14px;color:#4c5762;line-height:1.6}
.nec-h-divcard .lvl{margin-top:14px;padding-top:12px;border-top:1px solid var(--nec-line,#e6eaec);font-size:12.5px;color:var(--nec-mut,#6c757d)}
.nec-h-divlink{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:13.5px;font-weight:700;color:var(--nec-green-d,#2e7f63);text-decoration:none}
.nec-h-divlink:hover{gap:9px}

/* ---------- stat band (dark) ---------- */
.nec-h-stats{background:var(--nec-navy-d,#293443);color:#eaf1ee;padding:46px 0;overflow:hidden}
.nec-h-stats .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.nec-h-stat b{font-size:clamp(30px,3.6vw,40px);font-weight:900;letter-spacing:-.02em;display:block;line-height:1;font-variant-numeric:tabular-nums}
.nec-h-stat b em{font-style:normal;color:var(--nec-mint,#57c39c)}
.nec-h-stat span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#92a69d;display:block;margin-top:10px}

/* ---------- value props ---------- */
.nec-h-values{padding:58px 0;background:var(--nec-paper,#fff)}
.nec-h-values .head{margin-bottom:28px}
.nec-h-valgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.nec-h-valcard{border:1px solid var(--nec-line,#e6eaec);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.nec-h-valcard .img{aspect-ratio:16/10;overflow:hidden;background:var(--nec-soft,#f6f8f8)}
.nec-h-valcard .img img{width:100%;height:100%;object-fit:cover;display:block}
.nec-h-valcard .bd{padding:22px}
.nec-h-valcard h3{font-size:18px;font-weight:700;color:var(--nec-navy,#313e50);margin-bottom:8px}
.nec-h-valcard p{font-size:14px;color:#4c5762;line-height:1.6}

/* ---------- CNEC entry band ---------- */
.nec-h-cnec{padding:54px 0;background:linear-gradient(135deg,#23303f,var(--nec-green-d,#2e7f63));color:#eaf1ee;position:relative;overflow:hidden}
.nec-h-cnec::after{content:"";position:absolute;right:-90px;top:-90px;width:320px;height:320px;border-radius:50%;border:46px solid rgba(255,255,255,.07)}
.nec-h-cnec .grid{position:relative;display:grid;grid-template-columns:1.3fr .9fr;gap:36px;align-items:center}
.nec-h-cnec h2{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.015em;color:#fff;margin:10px 0 12px}
.nec-h-cnec p{color:#cfe0d8;font-size:15px;line-height:1.65;max-width:38em}
.nec-h-cnec .btns{margin-top:22px}
.nec-h-cnec .nec-h-btn-primary{background:#fff;color:var(--nec-green-d,#2e7f63)}
.nec-h-cnec .nec-h-btn-primary:hover{background:#eafaf3}
.nec-h-cnec .card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:22px}
.nec-h-cnec .card ul{list-style:none;margin:0;padding:0}
.nec-h-cnec .card li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14px;color:#e6f1ec}
.nec-h-cnec .card li:last-child{border-bottom:0}
.nec-h-cnec .card li b{color:var(--nec-mint,#57c39c);font-family:'IBM Plex Mono',monospace;font-size:12px}

/* ---------- latest news ---------- */
.nec-h-news{padding:58px 0;background:var(--nec-soft,#f6f8f8)}
.nec-h-news .head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--nec-navy,#313e50);padding-bottom:14px;margin-bottom:24px}
.nec-h-news .head a{font-size:13.5px;font-weight:700;color:var(--nec-green-d,#2e7f63);text-decoration:none}
.nec-h-newsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.nec-h-newscard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--nec-line,#e6eaec);border-radius:14px;overflow:hidden;text-decoration:none;transition:box-shadow .2s,transform .2s}
.nec-h-newscard:hover{box-shadow:0 22px 48px -28px rgba(20,30,40,.45);transform:translateY(-3px)}
.nec-h-newscard .img{aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--nec-navy,#313e50),var(--nec-green-d,#2e7f63))}
.nec-h-newscard .img img{width:100%;height:100%;object-fit:cover;display:block}
.nec-h-newscard .bd{padding:16px 18px 20px}
.nec-h-newscard .ct{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.06em;color:var(--nec-green-d,#2e7f63);text-transform:uppercase}
.nec-h-newscard h3{font-size:16px;font-weight:700;color:var(--nec-navy,#313e50);line-height:1.32;margin:9px 0 0}

/* ---------- CTA section ---------- */
.nec-h-cta{padding:56px 0 64px;background:var(--nec-paper,#fff)}

/* ---------- responsive ---------- */
@media (max-width:880px){
  .nec-h-hero .grid{grid-template-columns:1fr;gap:32px}
  .nec-h-hero .nec-h-visual{order:-1;aspect-ratio:16/10}
  .nec-h-stats .grid{grid-template-columns:1fr 1fr;gap:24px 18px}
  .nec-h-valgrid,.nec-h-newsgrid{grid-template-columns:1fr 1fr}
  .nec-h-cnec .grid{grid-template-columns:1fr;gap:24px}
}
@media (max-width:560px){
  .nec-h-divgrid,.nec-h-valgrid,.nec-h-newsgrid{grid-template-columns:1fr}
  .nec-h-stats .grid{grid-template-columns:1fr 1fr}
}

/* ============================================================
   ENRICHED SECTIONS (v=6) · intro / syllabus / season flow /
   recognition / outcomes — each a distinct layout language
   ============================================================ */

/* ---------- 赛事介绍 · narrative + at-a-glance ---------- */
.nec-h-intro{padding:62px 0;background:var(--nec-paper,#fff)}
.nec-h-intro .grid{display:grid;grid-template-columns:1.45fr 1fr;gap:50px;align-items:start}
.nec-h-intro h2{font-size:clamp(25px,3.1vw,33px);font-weight:800;letter-spacing:-.02em;color:var(--nec-navy,#313e50);margin:10px 0 18px;line-height:1.12}
.nec-h-intro p{font-size:16px;color:#46535d;line-height:1.78;margin:0 0 16px;max-width:55ch}
.nec-h-intro p:last-child{margin-bottom:0}
.nec-h-intro strong{color:var(--nec-navy,#313e50)}
.nec-h-glance{background:#fff;border:1px solid var(--nec-line,#e6eaec);border-radius:16px;padding:24px 26px 12px;box-shadow:0 26px 60px -42px rgba(20,30,40,.55)}
.nec-h-glance .gh{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--nec-green-d,#2e7f63);padding-bottom:13px;border-bottom:2px solid var(--nec-navy,#313e50)}
.nec-h-glance dl{margin:0}
.nec-h-glance .row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--nec-line,#e6eaec);font-size:13.5px}
.nec-h-glance .row:last-child{border-bottom:0}
.nec-h-glance dt{color:var(--nec-mut,#6c757d);font-weight:600;flex:none}
.nec-h-glance dd{margin:0;color:var(--nec-navy,#313e50);font-weight:700;text-align:right}

/* ---------- 考点大纲 · three subject panels + components ---------- */
.nec-h-syl{padding:62px 0;background:var(--nec-paper,#fff)}
.nec-h-syl .head{margin-bottom:28px;max-width:64ch}
.nec-h-syl h2{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.015em;color:var(--nec-navy,#313e50);margin:8px 0 8px}
.nec-h-syl .head p{color:#46535d;font-size:15px;line-height:1.6;margin:0}
.nec-h-sylgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nec-h-sylcard{border:1px solid var(--nec-line,#e6eaec);border-radius:16px;padding:24px;background:var(--nec-soft,#f6f8f8);border-top:4px solid var(--nec-green,#3ba57e)}
.nec-h-sylcard:nth-child(2){border-top-color:var(--nec-mint,#57c39c)}
.nec-h-sylcard:nth-child(3){border-top-color:var(--nec-navy,#313e50)}
.nec-h-sylcard .sn{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--nec-green-d,#2e7f63)}
.nec-h-sylcard h3{font-size:18px;font-weight:800;color:var(--nec-navy,#313e50);margin:6px 0 14px}
.nec-h-sylcard ul{list-style:none;margin:0;padding:0}
.nec-h-sylcard li{position:relative;padding:7px 0 7px 19px;font-size:13.5px;color:#4c5762;line-height:1.5;border-bottom:1px dashed var(--nec-line,#e6eaec)}
.nec-h-sylcard li:last-child{border-bottom:0}
.nec-h-sylcard li::before{content:"";position:absolute;left:2px;top:13px;width:6px;height:6px;border-radius:50%;background:var(--nec-green,#3ba57e)}
.nec-h-comp{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--nec-line,#e6eaec);border:1px solid var(--nec-line,#e6eaec);border-radius:14px;overflow:hidden}
.nec-h-comp .c{background:var(--nec-navy-d,#293443);padding:18px 20px}
.nec-h-comp .c b{display:block;font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--nec-mint,#57c39c);margin-bottom:6px;line-height:1}
.nec-h-comp .c span{font-size:13.5px;font-weight:600;color:#dbe7e1;line-height:1.4}
.nec-h-syl .note{margin-top:14px;font-size:13px;color:var(--nec-mut,#6c757d);font-style:italic}

/* ---------- 赛事安排 · season flow timeline ---------- */
.nec-h-flow{padding:62px 0;background:var(--nec-soft,#f6f8f8)}
.nec-h-flow .head{margin-bottom:30px}
.nec-h-flow h2{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.015em;color:var(--nec-navy,#313e50);margin:8px 0 6px}
.nec-h-flow .head p{color:#46535d;font-size:15px;line-height:1.6;max-width:62ch;margin:0}
.nec-h-flowline{display:grid;grid-template-columns:repeat(3,1fr)}
.nec-h-phase{position:relative;padding:0 30px}
.nec-h-phase:first-child{padding-left:0}
.nec-h-phase:last-child{padding-right:0}
.nec-h-phase:not(:last-child)::after{content:"\2192";position:absolute;right:8px;top:8px;color:var(--nec-green,#3ba57e);font-size:24px;font-weight:700;line-height:1}
.nec-h-phase .pn{width:46px;height:46px;border-radius:12px;background:#fff;border:2px solid var(--nec-green,#3ba57e);color:var(--nec-green-d,#2e7f63);font-family:'IBM Plex Mono',monospace;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;margin-bottom:15px}
.nec-h-phase .pt{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--nec-mut,#6c757d);margin-bottom:5px}
.nec-h-phase h3{font-size:17px;font-weight:800;color:var(--nec-navy,#313e50);margin:0 0 8px}
.nec-h-phase p{font-size:13.5px;color:#4c5762;line-height:1.58;margin:0}
.nec-h-flowlink{display:inline-flex;align-items:center;gap:6px;margin-top:26px;font-size:13.5px;font-weight:700;color:var(--nec-green-d,#2e7f63);text-decoration:none}
.nec-h-flowlink:hover{gap:9px}

/* ---------- 含金量 · recognition (pale tint) ---------- */
.nec-h-rec{padding:60px 0;background:var(--nec-pale,#e7f4ee);border-top:1px solid #d2e8de;border-bottom:1px solid #d2e8de}
.nec-h-rec .head{text-align:center;max-width:58ch;margin:0 auto 32px}
.nec-h-rec h2{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.015em;color:var(--nec-navy,#313e50);margin:8px 0 8px}
.nec-h-rec .head p{color:#3f5249;font-size:15px;line-height:1.6;margin:0}
.nec-h-recgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.nec-h-reccard{background:#fff;border:1px solid #d2e8de;border-radius:14px;padding:26px 22px;text-align:center}
.nec-h-reccard .ic{width:48px;height:48px;margin:0 auto 14px;border-radius:13px;background:var(--nec-pale,#e7f4ee);display:flex;align-items:center;justify-content:center}
.nec-h-reccard .ic svg{width:24px;height:24px;stroke:var(--nec-green-d,#2e7f63);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.nec-h-reccard h3{font-size:15.5px;font-weight:800;color:var(--nec-navy,#313e50);margin:0 0 7px}
.nec-h-reccard p{font-size:12.5px;color:#4c5762;line-height:1.55;margin:0}

/* ---------- 学生去向 · where it leads ---------- */
.nec-h-out{padding:62px 0;background:var(--nec-soft,#f6f8f8)}
.nec-h-out .grid{display:grid;grid-template-columns:1fr 1.12fr;gap:50px;align-items:center}
.nec-h-out h2{font-size:clamp(25px,3.2vw,33px);font-weight:800;letter-spacing:-.02em;color:var(--nec-navy,#313e50);margin:10px 0 16px;line-height:1.12}
.nec-h-out p{font-size:16px;color:#46535d;line-height:1.74;margin:0 0 14px;max-width:46ch}
.nec-h-out p:last-child{margin-bottom:0}
.nec-h-outlist{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nec-h-outitem{background:#fff;border:1px solid var(--nec-line,#e6eaec);border-left:3px solid var(--nec-green,#3ba57e);border-radius:12px;padding:18px}
.nec-h-outitem b{display:block;font-size:14.5px;font-weight:800;color:var(--nec-navy,#313e50);margin-bottom:5px}
.nec-h-outitem span{font-size:12.5px;color:#4c5762;line-height:1.5}

/* ---------- responsive (enriched) ---------- */
@media (max-width:880px){
  .nec-h-intro .grid{grid-template-columns:1fr;gap:30px}
  .nec-h-sylgrid{grid-template-columns:1fr}
  .nec-h-comp{grid-template-columns:1fr 1fr}
  .nec-h-flowline{grid-template-columns:1fr;gap:26px}
  .nec-h-phase{padding:0!important}
  .nec-h-phase:not(:last-child)::after{display:none}
  .nec-h-recgrid{grid-template-columns:1fr 1fr}
  .nec-h-out .grid{grid-template-columns:1fr;gap:30px}
}
@media (max-width:560px){
  .nec-h-comp{grid-template-columns:1fr}
  .nec-h-recgrid{grid-template-columns:1fr}
  .nec-h-outlist{grid-template-columns:1fr}
}
