/* ============================================================
   SVES – Sections CSS additions
   Append to end of main.css  OR  add @import in enqueue.php
   ============================================================ */

/* ── Reveal: support reveal-left, reveal-right + data-delay  */
.reveal-left  { opacity:0; transform:translateX(-28px); transition:opacity .55s var(--ease-out), transform .55s var(--ease-out); }
.reveal-right { opacity:0; transform:translateX(28px);  transition:opacity .55s var(--ease-out), transform .55s var(--ease-out); }
.reveal-left.revealed, .reveal-right.revealed { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  .reveal-left, .reveal-right { opacity:1; transform:none; transition:none; }
}

/* ── acircle orange ───────────────────────────────────────── */
.acircle.orange { background:var(--orange); color:var(--white); }

/* ══════════════════════════════════════════════════════════
   1. GLANCE STATS — 4-per-row icon-left layout
   ══════════════════════════════════════════════════════════ */
.glance-header { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:32px; }
.ticker-outer  { overflow:hidden; max-width:480px; margin-top:8px; }
.ticker-track  { display:inline-flex; white-space:nowrap; animation:ticker 28s linear infinite; }
.ticker-track span { font-size:12px; color:#888; }
@keyframes ticker { from { transform:translateX(0); } to { transform:translateX(-33.33%); } }

.stats-row  { display:flex; align-items:stretch; border-top:1px solid #ececec; border-bottom:1px solid #ececec; padding:8px 0; flex-wrap:wrap; }
.stat-sep   { width:1px; background:#ececec; flex-shrink:0; align-self:stretch; }
.stat-item  { flex:1; min-width:140px; display:flex; align-items:center; gap:14px; padding:14px 16px; }
.stat-icon  { width:40px; height:40px; object-fit:contain; flex-shrink:0; }
.stat-text  { display:flex; flex-direction:column; gap:3px; }
.stat-numwrap { display:flex; align-items:baseline; gap:1px; }
.stat-num   { font-size:clamp(22px,2.4vw,36px); font-weight:500; color:var(--purple); line-height:1; }
.stat-suf   { font-size:clamp(16px,1.8vw,26px); font-weight:500; color:var(--purple); }
.stat-lbl   { font-size:12px; color:#666; line-height:1.4; }
@media (max-width:900px) { .stat-sep { display:none; } .stat-item { min-width:50%; border-bottom:1px solid #ececec; } }
@media (max-width:480px) { .stat-item { min-width:100%; } }

/* ══════════════════════════════════════════════════════════
   2. ABOUT — black bg image cards
   ══════════════════════════════════════════════════════════ */
.about-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:900px) { .about-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px) { .about-grid { grid-template-columns:1fr; } }
.about-card { display:block; position:relative; overflow:hidden; border-radius:var(--radius); aspect-ratio:4/3; }
.about-card img { width:100%; height:100%; object-fit:cover; transition:transform .4s var(--ease-out); }
.about-card:hover img { transform:scale(1.04); }
.about-card-label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,.72)); padding:32px 16px 14px; display:flex; align-items:center; justify-content:space-between; color:#fff; font-size:14px; font-weight:500; }
.card-arr { font-size:20px; opacity:.8; }
.card-arr.purple { color:var(--purple); }

/* ══════════════════════════════════════════════════════════
   3. WHY SVES — icon image grid
   ══════════════════════════════════════════════════════════ */
.diff-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:32px; }
@media (max-width:900px) { .diff-grid { grid-template-columns:repeat(4,1fr); } }
@media (max-width:640px) { .diff-grid { grid-template-columns:repeat(2,1fr); } }
.diff-card { background:var(--white); border-radius:8px; padding:28px 20px 24px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px; box-shadow:0 2px 8px rgba(0,0,0,.06); transition:box-shadow .2s, transform .2s; }
.diff-card:hover { box-shadow:0 8px 28px rgba(0,0,0,.12); transform:translateY(-3px); }
.diff-card img { width:64px; height:64px; object-fit:contain; }
.diff-card p   { font-size:13.5px; font-weight:600; color:#222; line-height:1.4; margin:0; }

/* ══════════════════════════════════════════════════════════
   4. RANKINGS — icon strip + rank band fix
   ══════════════════════════════════════════════════════════ */
.rank-icon-strip { display:flex; flex-wrap:wrap; border-top:1px solid #ececec; border-bottom:1px solid #ececec; padding:24px 0; margin-bottom:40px; }
.rank-icon-item  { flex:1; min-width:100px; text-align:center; padding:0 16px; border-right:1px solid #ececec; }
.rank-icon-item:last-child { border-right:none; }
.rank-icon-item p { font-size:12px; color:#555; margin-top:10px; line-height:1.4; }
.accred-circle { width:72px; height:72px; border-radius:50%; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; margin:0 auto; }
.ac-purple { background:var(--purple); }
.ac-orange { background:var(--orange); }
.ac-green  { background:var(--green); }
.ac-dark   { background:#333; }
.ac-top    { font-size:9px; font-weight:700; color:#fff; letter-spacing:.05em; line-height:1.2; }
.ac-val    { font-size:16px; font-weight:700; color:#fff; line-height:1.1; }
.ac-sub    { font-size:8px; color:rgba(255,255,255,.85); line-height:1.2; }
@media (max-width:768px) { .rank-icon-item { border-right:none; border-bottom:1px solid #ececec; padding:12px 0; } }

/* ══════════════════════════════════════════════════════════
   5. ENTREPRENEURSHIP — venture slide grid
   ══════════════════════════════════════════════════════════ */
.venture-slide { display:none; }
.venture-slide.active { display:block; }
.venture-grid  { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:768px) { .venture-grid { grid-template-columns:1fr; } }
.venture-card  { background:rgba(255,255,255,.1); border-radius:var(--radius); overflow:hidden; }
.venture-card img, .venture-img-ph { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.venture-img-ph { background:rgba(255,255,255,.15); }
.venture-card p { padding:14px 16px; font-size:14px; font-weight:500; color:#fff; margin:0; }

/* ══════════════════════════════════════════════════════════
   6. RESEARCH — slide layout
   ══════════════════════════════════════════════════════════ */
.research-slide { display:none; }
.research-slide.active { display:block; }
.research-card-plain { background:var(--white); border-radius:var(--radius); overflow:hidden; }
.research-card-plain img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.research-card-plain p { padding:12px 14px; font-size:13.5px; font-weight:500; color:#333; margin:0; }

/* ══════════════════════════════════════════════════════════
   7. COMPETITIONS
   ══════════════════════════════════════════════════════════ */
.comp-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; margin-top:28px; }
@media (max-width:768px) { .comp-grid { grid-template-columns:1fr; } }
.comp-main img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius); margin-bottom:16px; }
.comp-info h3  { font-size:20px; font-weight:600; margin-bottom:10px; }
.comp-info p   { font-size:14px; color:#555; line-height:1.75; }
.comp-side     { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.comp-sm       { background:var(--lightblue); border-radius:var(--radius); padding:16px; text-align:center; }
.comp-sm img   { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:4px; margin-bottom:8px; }
.comp-sm p     { font-size:13px; font-weight:500; margin:0; }

/* ══════════════════════════════════════════════════════════
   8. PLACEMENTS
   ══════════════════════════════════════════════════════════ */
.pl-layout  { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:32px; }
.pl-left    { flex:1; min-width:260px; }
.pl-stats   { display:flex; gap:32px; flex-wrap:wrap; margin:20px 0 24px; }
.pl-stat    { display:flex; flex-direction:column; gap:4px; }
.pl-num     { font-size:clamp(28px,3vw,44px); font-weight:600; color:var(--orange); line-height:1; }
.pl-lbl     { font-size:12px; color:#555; line-height:1.4; }
.pl-links   { display:flex; gap:24px; flex-wrap:wrap; }
.pl-cards   { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:768px) { .pl-cards { grid-template-columns:1fr; } }
.pl-card    { position:relative; overflow:hidden; border-radius:var(--radius); }
.pl-card img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.pl-card p  { position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.7); color:#fff; font-size:13px; font-weight:500; padding:12px 14px; margin:0; }

/* ══════════════════════════════════════════════════════════
   9. RECRUITERS
   ══════════════════════════════════════════════════════════ */
.recruiter-viewport { overflow:hidden; position:relative; margin-top:20px; }
.recruiter-row      { display:flex; gap:16px; transition:transform .4s var(--ease-out); }
.rec-logo-box       { flex:0 0 calc(20% - 13px); min-width:150px; background:var(--lightblue); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; padding:20px 16px; aspect-ratio:2/1; }
.rec-logo           { max-height:48px; max-width:110px; object-fit:contain; width:auto; margin:0 auto; }
.rec-links          { display:flex; gap:16px; justify-content:flex-end; margin-top:20px; flex-wrap:wrap; }
.btn-purple-sm      { display:inline-flex; align-items:center; gap:8px; background:var(--purple); color:#fff; font-size:13px; font-weight:500; padding:10px 20px; border-radius:var(--radius); transition:background .2s; }
.btn-purple-sm:hover { background:#8b1d7a; }
@media (max-width:768px) { .rec-logo-box { flex:0 0 calc(50% - 8px); } }

/* ══════════════════════════════════════════════════════════
   10. CSR
   ══════════════════════════════════════════════════════════ */
.csr-slide         { display:none; }
.csr-slide.active  { display:block; }
.csr-wrap          { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; background:var(--lightblue); border-radius:var(--radius); padding:40px 48px; }
@media (max-width:900px) { .csr-wrap { grid-template-columns:1fr; padding:28px 24px; } }
.csr-bar           { width:4px; height:40px; background:var(--purple); border-radius:2px; margin-bottom:16px; }
.csr-text h3       { font-size:20px; font-weight:600; margin-bottom:16px; }
.csr-text p        { font-size:14px; color:#444; line-height:1.75; }
.csr-img           { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); }

/* ══════════════════════════════════════════════════════════
   11. LEADERSHIP
   ══════════════════════════════════════════════════════════ */
.leader-slide        { display:none; }
.leader-slide.active { display:block; }
.leader-layout       { display:grid; grid-template-columns:380px 1fr; gap:64px; align-items:start; }
@media (max-width:960px) { .leader-layout { grid-template-columns:1fr; gap:32px; } }
.leader-img          { width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:var(--radius); box-shadow:0 8px 32px rgba(0,0,0,.12); }
.leader-role         { font-size:13px; color:#888; margin:24px 0 4px; letter-spacing:.04em; }
.leader-name         { font-size:clamp(18px,2vw,26px); font-weight:600; color:var(--purple); margin-bottom:20px; }
.leader-quote        { font-size:clamp(16px,1.6vw,20px); font-style:italic; color:#333; line-height:1.6; margin:0 0 20px; padding:0; border:none; background:none; }
.qmark               { font-size:64px; line-height:0; vertical-align:-28px; color:var(--lightblue); margin-right:4px; font-family:Georgia,serif; }
.leader-bio          { font-size:14px; color:#555; line-height:1.75; }
.leader-nav-row      { display:flex; gap:12px; justify-content:flex-start; margin-top:24px; }

/* ══════════════════════════════════════════════════════════
   12. TESTIMONIALS
   ══════════════════════════════════════════════════════════ */
.testi-header      { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:28px; }
.testi-tabs        { display:flex; gap:0; border-bottom:2px solid rgba(0,0,0,.15); flex-wrap:wrap; }
.ttab              { background:none; border:none; padding:10px 20px; font-size:14px; font-weight:500; color:rgba(0,0,0,.55); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .18s, border-color .18s; }
.ttab.active       { color:var(--black); border-bottom-color:var(--black); }
.testi-panel       { display:none; }
.testi-panel.active { display:block; }
.testi-panel.hidden { display:none; }
.testi-slide       { display:none; }
.testi-slide.active { display:block; }
.testi-block       { background:#fff; border-radius:var(--radius); padding:48px 56px; max-width:860px; margin:0 auto; }
@media (max-width:768px) { .testi-block { padding:28px 24px; } }
.testi-photo       { width:60px; height:60px; border-radius:50%; object-fit:cover; margin-bottom:16px; }
.testi-photo-ph    { width:60px; height:60px; border-radius:50%; background:#e0e0e0; margin-bottom:16px; }
.testi-qmark       { font-size:72px; line-height:0; vertical-align:-28px; color:var(--green); opacity:.4; font-family:Georgia,serif; display:block; margin-bottom:16px; }
.testi-text p      { font-size:15px; line-height:1.8; color:#222; margin-bottom:24px; }
.testi-name        { font-size:16px; font-weight:700; color:var(--black); }
.testi-role        { font-size:13px; color:#666; margin-top:4px; }
.testi-arrows      { display:flex; gap:12px; justify-content:flex-end; margin-top:20px; }

/* ══════════════════════════════════════════════════════════
   13. QUICK ACCESS (above footer)
   ══════════════════════════════════════════════════════════ */
.qa-layout         { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:900px) { .qa-layout { grid-template-columns:1fr; gap:32px; } }
.qa-img            { width:100%; border-radius:var(--radius); aspect-ratio:4/3; object-fit:cover; }
.qa-links ul       { list-style:none; padding:0; margin:0; }
.qa-links li       { border-bottom:1px solid #e8e8e8; }
.qa-links li:first-child { border-top:1px solid #e8e8e8; }
.qa-links a        { display:flex; align-items:center; justify-content:space-between; padding:16px 0; font-size:15px; font-weight:500; color:var(--black); transition:color .18s; }
.qa-links a:hover  { color:var(--purple); }
.qa-arr            { font-size:16px; color:#aaa; transition:color .18s; }
.qa-links a:hover .qa-arr { color:var(--purple); }

/* ══════════════════════════════════════════════════════════
   14. SECTION-BLACK text colours
   ══════════════════════════════════════════════════════════ */
.section-black .sec-eyebrow { color:rgba(255,255,255,.65); }
.section-black .sec-title   { color:var(--white); }

/* ══════════════════════════════════════════════════════════
   15. CAMPUS — fix missing images fallback
   ══════════════════════════════════════════════════════════ */
.campus-map { transition:opacity .2s; }

/* ── Menu: prevent child links showing outside .mega-menu ───
   Defensive rule in case any depth-1 <a> leaks outside wrapper */
.nav-links > li > a ~ a,
.nav-links > li > a + a { display: none !important; }
/* Show them only inside mega-menu */
.nav-links > li .mega-menu a { display: flex !important; }
