/* ============================================================
   Restructured IA (MST-style) — added components
   Loaded after style.css / extra.css
   ============================================================ */

/* ---------- (page-hero is defined in style.css — not overridden here) ---------- */

/* ---------- approved programmes / spec cards ---------- */
.spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:36px}
@media(max-width:1000px){.spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.spec-grid{grid-template-columns:1fr}}
.spec-card{
  border:1px solid var(--line);border-radius:var(--r-md);padding:20px 20px 18px;background:#fff;
  display:flex;flex-direction:column;gap:8px;min-height:132px;position:relative;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.spec-card::before{
  content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;
  background:var(--steel);opacity:.9;
}
.spec-card:hover{border-color:rgba(30,95,168,.4);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.spec-card .sk{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mist);font-weight:700}
.spec-card h3{font-size:15px;letter-spacing:-.01em}
.spec-card p{font-size:12.5px;line-height:1.5;color:#4A5C70}
.spec-card .sgo{margin-top:auto;font-size:11.5px;font-weight:700;color:var(--steel);letter-spacing:.04em}

/* ---------- four pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:34px;
  border-top:1px solid var(--line)}
@media(max-width:900px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.pillars{grid-template-columns:1fr}}
.pillar{padding:26px 22px 26px 0;border-bottom:1px solid var(--line);padding-right:26px}
.pillar+.pillar{padding-left:26px;border-left:1px solid var(--line)}
@media(max-width:900px){
  .pillar:nth-child(3){border-left:0;padding-left:0}
  .pillar+.pillar{padding-left:26px}
  .pillar:nth-child(odd){border-left:0;padding-left:0}
}
.pillar .pn{font-size:11px;font-weight:800;color:var(--steel);letter-spacing:.14em}
.pillar h3{font-size:17px;margin:8px 0 8px;letter-spacing:-.02em}
.pillar p{font-size:13.5px;line-height:1.6;color:#4A5C70}
.pillar .pstat{display:block;margin-top:12px;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--navy)}

/* ---------- about band ---------- */
.about-band{background:var(--navy);color:#fff}
.about-band .split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
@media(max-width:860px){.about-band .split{grid-template-columns:1fr}}
.about-band h2{font-size:clamp(26px,3.4vw,40px);letter-spacing:-.03em;margin-top:10px}
.about-band p{color:#C9D6E4;margin-top:16px;font-size:15px;line-height:1.7;max-width:52ch}
.about-band .eyebrow{color:var(--steel-2)}
.about-band .figs{display:flex;gap:38px;margin-top:28px;flex-wrap:wrap}
.about-band .fig b{display:block;font-size:26px;letter-spacing:-.02em}
.about-band .fig span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8FA6BA}
.about-photos{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:10px}
.about-photos img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-sm);min-height:0}
.about-photos .tall{grid-row:span 2}

/* ---------- grade strip ---------- */
.grade-strip{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.grade-chip{
  display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid var(--line);
  border-radius:999px;font-size:13px;font-weight:600;color:var(--navy);background:#fff;
  transition:border-color .18s ease,color .18s ease;
}
.grade-chip:hover{border-color:var(--steel);color:var(--steel)}
.grade-chip i{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--mist)}

/* ---------- case cards ---------- */
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}
@media(max-width:900px){.case-grid{grid-template-columns:1fr}}
.case-card{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.case-card img{width:100%;height:176px;object-fit:cover}
.case-card .cb{padding:20px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.case-card .ck{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);font-weight:800}
.case-card h3{font-size:16px;letter-spacing:-.01em}
.case-card p{font-size:13px;line-height:1.55;color:#4A5C70}
.case-card .sgo{margin-top:auto;padding-top:8px;font-size:12px;font-weight:700;color:var(--steel)}

/* ---------- grade table ---------- */
.gtable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
table.gtable{width:100%;border-collapse:collapse;min-width:520px}
table.gtable caption{caption-side:top;text-align:left;padding:16px 18px 0;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mist);font-weight:700}
table.gtable th{font-size:11.5px;letter-spacing:.04em;color:#6B7C8F;font-weight:700;
  text-align:left;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--paper)}
table.gtable td{padding:10px 18px;border-bottom:1px solid rgba(14,34,55,.07);font-size:13.5px}
table.gtable td:last-child,table.gtable th:last-child{text-align:right;font-family:var(--mono)}
table.gtable tr:last-child td{border-bottom:0}
table.gtable tbody tr:hover{background:rgba(30,95,168,.04)}

/* ---------- partner list (bilingual) ---------- */
.partner-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 32px;margin-top:22px}
@media(max-width:720px){.partner-list{grid-template-columns:1fr}}
.partner-list .pl{display:flex;gap:12px;padding:11px 0;border-bottom:1px dotted var(--line);align-items:baseline}
.partner-list .pl b{font-size:13.5px;font-weight:600;color:var(--navy);line-height:1.35}
.partner-list .pl em{display:block;font-style:normal;font-size:11.5px;color:#8798A9;margin-top:2px}
.partner-list .pl i{font-style:normal;flex:0 0 22px;font-family:var(--mono);font-size:10.5px;color:var(--steel);font-weight:700}

/* ---------- fact list ---------- */
.fact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;margin-top:24px}
@media(max-width:700px){.fact-list{grid-template-columns:1fr}}
.fact{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.fact b{flex:0 0 130px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mist);font-weight:700}
.fact span{font-size:14px;color:#33455A;line-height:1.5}
