/* ==========================================================================
   WeSchool MMS Microsite
   Tokens taken from Figma file 0ez70qKqdJNgarViJ5qN71
   ========================================================================== */

:root{
  --purple:#493460;
  --green:#3a9030;
  --lime:#9bd65b;
  --soft:#fbf8ff;
  --grey:#f6f6f6;
  --band:#ececec;
  --ink:#000;
  --muted:#cfcfcf;
  --eyebrow:#d0e0ed;
  --ff:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:var(--ff);
  color:var(--ink);
  background:#fff;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:var(--green)}
p{margin:0 0 0.8rem}
p:last-child{margin-bottom:0}

/* --------------------------------------------------------------- layout */
.wk{
  width:100%;
  max-width:1414.4px;
  margin-inline:auto;
  padding-inline:19.2px;
}

.sec{padding-block:clamp(38.4px,4.8vw,80px)}

/* --------------------------------------------------------------- type */
.eyebrow{
  font-size:11.2px;
  font-weight:600;
  letter-spacing:3.2px;
  text-transform:uppercase;
  line-height:21.6px;
  margin:0;
}

.h-sec{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  line-height:1.2;
  color:var(--purple);
  margin:0;
}

.h-mega{
  font-size:clamp(24px,3.68vw,56px);
  font-weight:700;
  line-height:1.15;
  color:var(--purple);
  margin:0;
}

.body-lg{
  font-size:clamp(14px,0.84vw,14.4px);
  font-weight:500;
  line-height:1.5;
  margin:0;
}

/* --------------------------------------------------------------- buttons */
.btn-wk{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12.8px 31.2px;
  border-radius:2px;
  border:0;
  background:var(--green);
  color:#fff;
  font-size:clamp(12px,0.84vw,14.4px);
  font-weight:600;
  line-height:1.65;
  transition:background .25s ease,transform .25s ease;
}
.btn-wk:hover{background:#2f7827;color:#fff}
.btn-wk:focus-visible{outline:2.4px solid var(--lime);outline-offset:2.4px}

.btn-ghost{
  background:transparent;
  border:1px solid #fff;
  color:#fff;
}
.btn-ghost:hover{background:#fff;color:var(--purple)}

.link-more{
  color:var(--green);
  font-size:14.4px;
  font-weight:600;
  display:inline-block;
}
.link-more:hover{color:var(--lime)}

/* --------------------------------------------------------------- topbar */
.topbar{
  background:var(--green);
  min-height:76.8px;
  display:flex;
  align-items:center;
  padding-block:12px;
}
.topbar .brand-sub{
  color:#fff;
  font-size:clamp(10.4px,0.84vw,14.4px);
  font-weight:600;
  margin:0 0 2px;
}
.topbar .brand-main{
  color:#fff;
  font-size:clamp(10.4px,0.84vw,14.4px);
  font-weight:600;
  line-height:1.35;
  margin:0;
  max-width:810.4px;
}

/* --------------------------------------------------------------- navbar */
.wk-nav{
  background:var(--purple);
  min-height:64px;
  position:sticky;
  top:0;
  z-index:1030;
}
.wk-nav .wk{display:flex;align-items:center;gap:12.8px}

.wk-nav ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:clamp(11.2px,1.6vw,35.2px);
  margin:0;
  padding:0;
  flex:1 1 auto;
}
.wk-nav a.nav-link-wk{
  color:#fff;
  font-size:12.8px;
  font-weight:500;
  line-height:23.2px;
  padding:20px 0;
  display:inline-flex;
  align-items:center;
  gap:4.8px;
  position:relative;
  white-space:nowrap;
}
.wk-nav a.nav-link-wk::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:14.4px;
  height:2px;
  border-radius:80px;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}
.wk-nav a.nav-link-wk:hover::after,
.wk-nav a.nav-link-wk.active::after{transform:scaleX(1)}

.nav-caret{width:8px;height:4.8px;fill:var(--lime);flex:none;transition:transform .2s}
.wk-nav li.has-sub:hover .nav-caret{transform:rotate(180deg)}

.nav-toggle{
  display:none;
  background:none;
  border:0;
  padding:8px;
  margin-left:auto;
}
.nav-toggle span{
  display:block;
  width:19.2px;height:2px;
  background:#fff;
  margin:4px 0;
  transition:.25s;
}

/* --------------------------------------------------------------- hero */
.hero{
  position:relative;
  min-height:640px;
  display:flex;
  flex-direction:column;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}

/* background slider — fills the section absolutely */
.hero__bg-slider{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero__bg-slider .swiper-slide{
  position:relative;
  height:100%;
  overflow:hidden;
}
.hero__bg-slider .swiper-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
/* dark directional overlay */
.hero__overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(0deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,0) 24.65%),
    linear-gradient(90deg,rgba(0,0,0,.8) 9.79%,rgba(0,0,0,0) 55.34%);
  pointer-events:none;
}

/* content area — sits above slider in flex flow */
.hero__body{
  position:relative;
  z-index:2;
  padding-top:clamp(64px,7.2vw,128px);
  /* flex:1 1 auto; */
   flex:1 1 auto;
  display:flex;
  align-items:flex-start;
}
.hero__body .wk{width:100%}

/* individual slide content panels */
.hero__slide-content{
  display:none;
}
.hero__slide-content.active{
  display:block;
  animation:heroFadeIn .5s ease;
}
@keyframes heroFadeIn{from{opacity:0;transform:translateY(9.6px)}to{opacity:1;transform:none}}

.hero__eyebrow{color:var(--eyebrow);margin-bottom:24px}
.hero__title{
  font-size:clamp(25.6px,3.12vw,48px);
  font-weight:700;
  line-height:1.1;
  margin:0 0 17.6px;
}
.hero__text{
  font-size:clamp(14px,0.84vw,14.4px);
  font-weight:600;
  line-height:1.33;
  max-width:485.6px;
  margin:0 0 27.2px;
}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px}

/* progress dots — appear below the CTA */
.hero__dots{display:flex;gap:8.8px;margin-top:clamp(25.6px,3.2vw,51.2px)}
.hero__dots i{
  height:2px;width:9.6px;
  background:rgba(255,255,255,.25);
  border-radius:4.8px;
  display:block;
  transition:width .35s ease, background .35s ease;
}
.hero__dots i.on{width:27.2px;background:var(--lime)}

/* video strip — left-aligned, capped at 50% of row, sticks to bottom */
.hero__videos{
  position:relative;
  z-index:2;
  padding-bottom:25.6px;
  padding-top:19.2px;
}
.hero__video-row{
  display:flex;
  gap:clamp(16px,2.4vw,44.8px);
  max-width:52%;           /* ≈ left half of the canvas */
}
.video-card{
  display:flex;
  align-items:center;
  gap:12.8px;
  background:none;
  border:0;
  padding:0;
  cursor:pointer;
  text-align:left;
  flex:1 1 0;
  min-width:0;
}
.video-card__thumb{
  position:relative;
  width:116.8px;
  min-width:70.4px;
  height:79.2px;
  flex:none;
  border-radius:2px;
  overflow:hidden;
}
.video-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.video-card__overlay{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(0,0,0,.25);
  transition:background .25s;
}
.video-card__overlay svg{width:31.2px;height:31.2px;fill:#fff;opacity:.9;transition:.25s}
.video-card:hover .video-card__overlay{background:rgba(0,0,0,.45)}
.video-card:hover .video-card__overlay svg{opacity:1;transform:scale(1.08)}
.video-card.is-active .video-card__overlay{background:rgba(58,144,48,.55)}
.video-card__label{
  font-size:clamp(11.2px,0.8vw,14.4px);
  font-weight:500;
  color:#fff;
  margin:0;
  word-break:break-word;
  line-height:1.4;
}

/* --------------------------------------------------------------- about */
.about__head{text-align:center;max-width:880px;margin:0 auto 44.8px}
.about__head .eyebrow{color:var(--ink);margin-bottom:11.2px}

.about__grid{
  display:grid;
  grid-template-columns:741fr 911fr;
  gap:clamp(19.2px,2.4vw,51.2px);
  align-items:start;
}
.about__img{border-radius:2px;overflow:hidden}
.about__img img{width:100%;height:100%;object-fit:cover;min-height:256px}
.about__body p{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:1.34}
.about__cta{display:flex;;margin-top:20px}

/* --------------------------------------------------------------- banner */
.banner{
  position:relative;
  border-radius:2px;
  overflow:hidden;
  color:#fff;
  display:flex;
  align-items:center;
}
.banner__bg{position:absolute;inset:0}
.banner__bg img{width:100%;height:100%;object-fit:cover}
.banner__bg::after{content:"";position:absolute;inset:0;background:rgba(73,52,96,.8)}
.banner .wk-inner{position:relative;z-index:2;width:100%;padding:clamp(32px,4vw,64px)}

.banner--programme{min-height:490.4px}
.banner--pedagogy{min-height:331.2px}
.banner--career{min-height:380px;text-align:center}

.banner h3{
  font-size:clamp(16px,1.12vw,19.2px);
  font-weight:600;
  margin:0 0 14.4px;
  max-width:436px;
}
.banner .banner__p{
  font-size:clamp(14px,0.84vw,14.4px);
  font-weight:500;
  line-height:1.5;
  max-width:542.4px;
  margin:0 0 27.2px;
}
.banner--career h2{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  margin:0 0 19.2px;
}
.banner--career .banner__p{max-width:922.4px;margin-inline:auto}

.pedagogy__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1.3fr;
  gap:clamp(19.2px,2.4vw,48px);
  align-items:center;
}
.pedagogy__grid h2{
  font-size:clamp(19.2px,2.48vw,32px);
  font-weight:700;
  line-height:1.2;
  margin:0;
}
.pedagogy__col h4{
  font-size:clamp(14.4px,1.12vw,19.2px);
  font-weight:500;
  line-height:1.42;
  margin:0 0 20.8px;
}
.pedagogy__col .btn-wk{min-width:150.4px}

/* --------------------------------------------------------------- placement */
.place__title{text-align:center;max-width:1040px;margin:0 auto 48px}

.place__tabs{
  display:flex;
  gap:clamp(19.2px,4vw,88px);
  border-bottom:1px solid rgba(74,74,74,.3);
  max-width:556.8px;
  margin:0 auto 36.8px;
  padding:0;
  list-style:none;
  justify-content: space-between;
}
.place__tabs button{
  background:none;
  border:0;
  border-bottom:2.4px solid transparent;
  padding:0 0 11.2px;
  font-family:var(--ff);
  font-size:clamp(14.4px,1.12vw,19.2px);
  font-weight:300;
  color:var(--ink);
  margin-bottom:-1px;
  border-radius:80px 80px 0 0;
}
.place__tabs button.active{font-weight:600;color:var(--purple);border-bottom-color:var(--lime)}
/* tab label alignment per Figma */
.place__tab--left{text-align:left}
.place__tab--center{text-align:center}
.place__tab--right{text-align:right}

.place__stats{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:flex-start;
  gap:clamp(24px,3.2vw,64px) clamp(32px,4vw,72px);
}
.place__stats > div{
  flex:0 1 auto;
  min-width:1px;
  text-align:center;
}

/* vertical rule between Domestic and International groups */
.place__divider{
  align-self:stretch;
  background:#4a4a4a;
  opacity:.3;
  width:1px;
  min-height:144px;
}
.place__stats.no_international .place__divider{display:none}
.place__group{font-size:clamp(14.4px,1.12vw,19.2px);font-weight:700;color:var(--purple);margin:0 0 24px}
.place__num{
  font-size:clamp(27.2px,3.68vw,56px);
  font-weight:700;
  color:var(--green);
  line-height:1;
  margin:0 0 11.2px;
}
.place__num small{font-size:.43em;font-weight:700}
.place__lbl{font-size:clamp(12px,0.84vw,14.4px);font-weight:500;color:var(--purple);margin:0}

/* --------------------------------------------------------------- recruiters */
.recruiters h2{
  font-size:clamp(20.8px,2.72vw,35.2px);
  font-weight:700;
  color:var(--purple);
  text-align:center;
  margin:0 0 44.8px;
}
.logo-slide{
  height:88px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.logo-slide img{max-height:100%;width:auto;object-fit:contain}

.slider-nav{
  display:flex;
  justify-content:center;
  gap:9.6px;
  margin-top:38.4px;
}
.slider-nav button{
  width:46.4px;height:45.6px;
  border-radius:50%;
  border:1px solid var(--green);
  background:#fff;
  display:grid;
  place-items:center;
  transition:.25s;
}
.slider-nav button:hover{background:var(--green);border-color:var(--green)}
.slider-nav svg{width:14.4px;height:14.4px;stroke:var(--purple);fill:none;stroke-width:2}
.slider-nav button:hover svg{stroke:#fff}

.hide_web {
  display:none ;
} 

/* --------------------------------------------------------------- approvals */
.approvals{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:19.2px;
}
.approvals__panel{
  background:var(--soft);
  border-radius:2px;
  padding:clamp(28px,3.2vw,56px) clamp(24px,3.2vw,56px);
  display:flex;
  flex-direction:column;
  align-items:center;
}
.approvals__title{
  font-size:clamp(22.4px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  text-align:center;
  margin:0 0 clamp(28px,3.2vw,44.8px);
}
.approvals__logos{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:clamp(24px,3.2vw,56px);
  margin-bottom:clamp(24px,2.8vw,40px);
  min-height:88px;
}
.approvals__logos img{
  max-height:88px;
  width:auto;
  object-fit:contain;
}
.approvals__list{
  list-style:none;
  margin:0;
  padding:0;
  width:100%;
  max-width:640px;
}
.approvals__list li{
  position:relative;
  padding-left:20.8px;
  margin-bottom:12.8px;
  font-size:clamp(13.6px,1.12vw,16px);
  font-weight:400;
  color:var(--ink);
  line-height:1.55;
}
.approvals__list li:last-child{margin-bottom:0}
.approvals__list li::before{
  content:"";
  position:absolute;
  left:4px;
  top:8.8px;
  width:5.6px;
  height:5.6px;
  border-radius:50%;
  background:var(--purple);
}

/* --------------------------------------------------------------- faculty */
.faculty{
  background:var(--purple);
  color:#fff;
  position:relative;
  padding-top:87.2px;
  padding-bottom:208.8px;   /* purple runs 163.2px behind the cards */
  overflow:hidden;
  isolation:isolate;
}

/* decorative OBJECTS shape, hangs off the left edge (Figma x = -342) */
.faculty__decor{
position: absolute;
    left: -16px;
    top: 32px;
    width: 248px;
    height: 508px;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
/* soft glow so the corner still reads if the export is not in place yet */
.faculty::before{
  content:"";
  position:absolute;
  left:-273.6px;top:38.4px;
  width:524.8px;height:524.8px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(155,214,91,.16) 0%,rgba(155,214,91,0) 68%);
  pointer-events:none;
  z-index:0;
}

.faculty__grid{
  position:relative;
  z-index:2;
  display:grid;
  /* 456 | gap 371 | 429 | gap 54 | 377  (Figma, on a 1372.8px canvas) */
  /* grid-template-columns:456fr 371fr 429fr 54fr 377fr; */
  grid-template-columns: 456fr 150fr 429fr 54fr 377fr;
  align-items:start;
}
.faculty__intro{grid-column:1;margin-top:111.2px}
.faculty__photo{grid-column:3}
.faculty__meta{grid-column:5;margin-top:70.4px}

.faculty__intro h2{font-size:clamp(20.8px,2.48vw,32px);font-weight:700;margin:0 0 12.8px;line-height:1.2}
.faculty__intro p{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:1.4;margin:0}

.faculty__photo{border-radius:2px;overflow:hidden}
.faculty__photo img{width:100%;aspect-ratio:429/393;object-fit:cover;display:block}

.faculty__meta h3{font-size:clamp(16px,1.12vw,19.2px);font-weight:600;margin:0 0 6.4px;line-height:1.35}
.faculty__meta .role{font-size:12.8px;font-weight:400;margin:0 0 16px}
.faculty__meta p{font-size:clamp(14px,0.84vw,14.4px);font-weight:400;line-height:1.45;margin:0 0 17.6px}
.faculty__meta .link-more{color:var(--green)}
.faculty__meta .link-more:hover{color:var(--lime)}

/* cards ride 163.2px up into the purple band */
.faculty__cards{
  position:relative;
  z-index:3;
  margin-top:-163.2px;
  width:80%;
}
.fcard__img{
  border-radius:2px;
  overflow:hidden;
  aspect-ratio:1/1;
}
.fcard__img img{width:100%;height:100%;object-fit:cover}
.fcard h4{font-size:clamp(15.2px,1.12vw,19.2px);font-weight:600;color:var(--ink);margin:19.2px 0 4.8px}
.fcard .role{font-size:12.8px;font-weight:400;color:var(--ink);margin:0 0 8px}

.faculty-after{
  background:#fff;
  display:flow-root;      /* stops the -163.2px margin collapsing into the parent */
  position:relative;
  z-index:2;
}
.faculty__cta{
  display:flex;
  justify-content:center;
  padding-top:48px;
  padding-bottom:clamp(44.8px,4.8vw,80px);
}

/* --------------------------------------------------------------- alumni
   One carousel. Each slide = video (left) + testimonial (right).
   Values at the site-wide 80% scale.                                     */
.alumni{
  background:rgba(236,236,236,.5);
  padding-block:clamp(38.4px,4.8vw,80px);
}

.alumni__title{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  text-align:center;
  margin:0 0 clamp(32px,4vw,64px);
}

/* carousel shell — arrows sit outside the card */
.alumni__carousel{
  position:relative;
  padding-inline:clamp(0px,3.2vw,52px);
}
#alumniSwiper{overflow:hidden}
#alumniSwiper .swiper-slide{height:auto}

/* ---- the card: video | testimonial ---- */
.alu-card{
  display:grid;
  grid-template-columns:59fr 41fr;
  background:#fff;
  border-radius:2px;
  overflow:hidden;
  min-height:0;
}

/* ---- video half ---- */
.alu-card__media{
  position:relative;
  aspect-ratio:16/9;
  cursor:pointer;
  overflow:hidden;
  background:var(--purple);
}
.alu-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
/* .alu-card__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(73,52,96,.45);
  transition:background .25s;
} */
.alu-card__media:hover::after{background:rgba(73,52,96,.28)}

/* slides without a video: no pointer, no hover shift */
.alu-card__media--static{cursor:default}
.alu-card__media--static:hover::after{background:rgba(73,52,96,.45)}

.alu-card__play{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  z-index:2;
  width:clamp(48px,5.6vw,76.8px);
  height:auto;
  fill:var(--green);
  pointer-events:none;
  transition:transform .25s;
}
.alu-card__media:hover .alu-card__play{transform:translate(-50%,-50%) scale(1.08)}
.alu-card__media:focus-visible{outline:3px solid var(--green);outline-offset:-3px}

/* ---- testimonial half ---- */
.alu-card__quote{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(24px,3.2vw,52px) clamp(20px,2.8vw,44px);
  min-width:0;
}

/* decorative quote marks */
.alu-card__mark{
  position:absolute;
  font-family:'Poppins',var(--ff);
  font-size:clamp(56px,7.2vw,116px);
  font-weight:900;
  line-height:1;
  color:#ebebeb;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.alu-card__mark--open{top:clamp(8px,1.6vw,22px);left:clamp(12px,2vw,30px)}
.alu-card__mark--close{
  bottom:clamp(-8px,0.8vw,10px);
  right:clamp(12px,2vw,30px);
}

/* scrollable text area, green thumb like the semester accordion */
.alu-card__scroll{
  position:relative;
  z-index:1;
  max-height:clamp(180px,19vw,300px);
  overflow-y:auto;
  padding-right:clamp(14px,1.6vw,26px);
  scrollbar-width:thin;
  scrollbar-color:var(--green) #e4e4e4;
}
.alu-card__scroll::-webkit-scrollbar{width:4.8px}
.alu-card__scroll::-webkit-scrollbar-track{background:#e4e4e4;border-radius:100px}
.alu-card__scroll::-webkit-scrollbar-thumb{background:var(--green);border-radius:100px}

.alu-card__text{
  font-size:clamp(13.6px,1.28vw,19.2px);
  font-weight:500;
  line-height:1.6;
  color:rgba(0,0,0,.85);
  margin:0;
  word-break:break-word;
  overflow-wrap:break-word;
}
.alu-card__text + .alu-card__text{margin-top:clamp(10px,1.2vw,17.6px)}
.alu-card__name{
  font-size:clamp(14.4px,1.28vw,19.2px);
  font-weight:600;
  color:var(--ink);
  margin:clamp(14px,1.6vw,24px) 0 4.8px;
  line-height:1.4;
}
.alu-card__role{
  font-size:clamp(12px,0.96vw,14.4px);
  font-weight:500;
  color:var(--ink);
  margin:0;
  line-height:1.5;
}

/* ---- arrows, vertically centred outside the card ---- */
.alu-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:clamp(32px,3.2vw,46.4px);
  height:clamp(32px,3.2vw,46.4px);
  border:0;
  background:none;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:transform .2s,opacity .2s;
}
.alu-nav svg{
  width:100%;
  height:100%;
  stroke:var(--purple);
  fill:none;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.alu-nav:hover{transform:translateY(-50%) scale(1.12)}
.alu-nav:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.alu-nav--prev{left:0}
.alu-nav--next{right:0}
.alu-nav.swiper-button-disabled{opacity:.3;cursor:default}
.alu-nav.swiper-button-disabled:hover{transform:translateY(-50%)}

@media (max-width:991px){
  .alu-card{grid-template-columns:1fr}
  .alu-card__quote{padding-block:clamp(28px,4vw,44px)}
  .alu-card__scroll{max-height:none}
  .alumni__carousel{padding-inline:0}
  .alu-nav{
    position:static;
    transform:none;
    display:inline-grid;
  }
  .alu-nav:hover{transform:scale(1.12)}
  .alumni__nav-row{
    display:flex;
    justify-content:center;
    gap:20px;
    margin-top:24px;
  }
}
@media (min-width:992px){
  .alumni__nav-row{display:contents}
}

/* --------------------------------------------------------------- footer */
.wk-footer{background:var(--purple);color:#fff;padding-top:clamp(38.4px,4vw,66.4px)}
.wk-footer__grid{
  display:grid;
  grid-template-columns:412fr 396fr 471fr 380fr;
  gap:clamp(22.4px,2.4vw,48px);
}
.wk-footer h4{
  font-size:14.4px;
  font-weight:600;
  letter-spacing:1.04px;
  margin:0 0 17.6px;
  line-height:23.2px;
}
.wk-footer__brand strong{
  font-size:clamp(17.6px,1.6vw,22.4px);
  font-weight:700;
  line-height:1.35;
  display:block;
  margin-bottom:14.4px;
}
.wk-footer__brand p{
  font-size:clamp(13.6px,1.12vw,15.2px);
  color:var(--muted);
  line-height:1.7;
  margin:0;
}
.wk-footer__addr{
  font-style:normal;
  font-size:clamp(12px,1.12vw,15.2px);
  line-height:1.6;
  color:#fff;
  margin:0 0 20px;
}
.wk-footer ul{list-style:none;margin:0;padding:0}
.wk-footer ul li a{font-size:12.8px;line-height:23.68px;display:inline-block;padding:6.4px 0;color: #ffffff}
.wk-footer ul li a:hover{color:var(--lime)}
.wk-footer__contact li{display:flex;gap:9.6px;align-items:flex-start;padding:6.4px 0}
.wk-footer__contact svg{width:16.8px;height:16.8px;fill:#fff;flex:none;margin-top:4px}
.wk-footer__contact span{font-size:12.8px;line-height:23.68px;word-break:break-word}

ul.wk-footer__contact li a{
  line-height: 16px;
}

.socials{display:flex;gap:14.4px;margin-top:28.8px}
.socials a{
  width:37.6px;height:37.6px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  display:grid;place-items:center;
  transition:.25s;
}
.socials a:hover{background:var(--green)}
.socials svg{width:16.8px;height:16.8px;fill:#fff}

.wk-footer__bar{
  border-top:1.5px solid rgba(255,255,255,.1);
  margin-top:clamp(28.8px,3.2vw,48px);
  padding-block:24px;
}
.wk-footer__bar p{font-size:14.24px;margin:0}

.text-center{
  text-align: center;
}

/* .enquire-tab{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:100% 0%;
  margin-right:48px;
  z-index:1020;
  min-height:48px;
  padding:12px 31.2px;
} */

.enquire-tab{
  position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(-90deg);
    transform-origin: 100% 0%;
    margin-right: 40px;
    z-index: 1020;
    min-height: 30px;
    padding: 12px 31.2px;
}

.wk-nav.is-pinned{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1030;
}

/* --------------------------------------------------------------- responsive */
@media (max-width:1399px){
  .hero{min-height:608px}
  .faculty__grid{grid-template-columns:1fr 1fr;column-gap:38.4px;row-gap:38.4px}
  .faculty__intro{grid-column:1 / -1;margin-top:0}
  .faculty__photo{grid-column:1}
  .faculty__meta{grid-column:2;margin-top:0}
}

@media (max-width:1199px){
  .wk-footer__grid{grid-template-columns:1fr 1fr}
  .approvals{grid-template-columns:1fr}
  .place__stats{grid-template-columns:1fr 1fr;gap:28.8px}
  .place__divider{display:none}
  .pedagogy__grid{grid-template-columns:1fr;text-align:left}
  /* alumni: stack vertically on tablet */
  .alumni__wrap{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .alumni__media{grid-column:1 / -1;height:288px;margin-right:0;margin-bottom:32px}
  .alumni__panel:first-of-type{padding-left:clamp(12.8px,1.6vw,32px)}
}

@media (max-width:991px){
  .wk-nav .wk{flex-wrap:wrap}
  .nav-toggle{display:block;order:2}
  .wk-nav ul{
    order:3;
    flex-basis:100%;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
  }
  .wk-nav ul.open{max-height:640px;padding-bottom:12.8px}
  .wk-nav a.nav-link-wk{padding:9.6px 0;width:100%}
  .wk-nav a.nav-link-wk::after{bottom:4.8px}
  .wk-nav .btn-wk{order:1;min-height:35.2px;padding:8px 17.6px;font-size:12px}

  .about__grid{grid-template-columns:1fr}
  .faculty{padding-top:51.2px;padding-bottom:64px}
  .faculty__grid{grid-template-columns:1fr}
  .faculty__photo{grid-column:1}
  .faculty__meta{grid-column:1}
  .faculty__decor,.faculty::before{width:336px;height:336px;left:-192px;top:19.2px}
  .faculty__cards{margin-top:44.8px}
  .hero{min-height:512px}
  .hero__body{padding-top:48px}
  /* .enquire-tab{display:none} */

  .wk-nav .wk{
    padding-top:12px;
  }


}

@media (max-width:767px){
  .wk{padding-inline:14.4px}
  .video-card{gap:12.8px}
  .video-card__thumb{width:88px;height:59.2px}
  .hero__cta .btn-wk{flex:1 1 100%}
  .hero__video-row{max-width:100%;flex-wrap:wrap;gap:12.8px}
  .video-card__thumb{width:80px;height:54.4px}
  .hero__body{padding-top:32px}
  .wk-footer__grid{grid-template-columns:1fr}
  .place__stats{grid-template-columns:1fr}
  .place__tabs{gap:17.6px;justify-content:space-between}
  .alumni__wrap{grid-template-columns:1fr}
  .alumni__media{height:208px;margin-bottom:25.6px}
  .alumni__divider{display:none}
  .alumni__panel{min-height:auto;padding-inline:0}
  .alumni__panel + .alumni__panel{margin-top:25.6px;padding-top:25.6px;border-top:1px solid rgba(30,30,30,.15)}
  .approvals__logos img{max-height:104px}
  .hide_web {
  display:flex ;
} 
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}

/* ==========================================================================
   INNER PAGES
   ========================================================================== */

/* --------------------------------------------------------------- page hero */
.page-hero{
  position:relative;
  min-height:420px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#fff;
  overflow:hidden;
  padding-block:48px;
}
.page-hero__bg{position:absolute;inset:0}
.page-hero__bg img{width:100%;height:100%;object-fit:cover}
.page-hero__bg::after{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(0deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,0) 68.28%),
    linear-gradient(90deg,#000 9.79%,rgba(0,0,0,0) 67.82%);
}
.page-hero .wk{position:relative;z-index:2;width:100%}

.crumb{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:9.6px;
  font-weight:500;
  line-height:23.2px;
  margin:0 0 28.8px;
}
.crumb svg{width:12px;height:12px;fill:#fff;flex:none}

.page-hero__title{
  font-size:clamp(16px,1.4vw,24px);
  font-weight:600;
  line-height:1.35;
  max-width:548.8px;
  margin:0 0 30.4px;
}

/* --------------------------------------------------------------- split rows */
.split{
  display:grid;
  grid-template-columns:741fr 911fr;
  gap:clamp(19.2px,2.08vw,35.2px);
  align-items:start;
}
.split--text-first{grid-template-columns:911fr 741fr}

.split__media{
  position:relative;
  border-radius:2px;
  overflow:hidden;
}
.split__media img{width:100%;height:auto;display:block}
.split__media--play button{
  position:absolute;
  inset:0;
  margin:auto;
  width:72.8px;height:72.8px;
  border-radius:50%;
  border:0;
  background:rgba(255,255,255,.85);
  display:grid;place-items:center;
  transition:.25s;
}
.split__media--play button:hover{background:#fff;transform:scale(1.06)}
.split__media--play svg{width:27.2px;height:27.2px;fill:var(--purple);margin-left:4px}

.split__body h2{margin-bottom:17.6px}
.split__body .eyebrow{margin-bottom:11.2px}
.split__body p{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:1.34}

/* --------------------------------------------------------------- text pair */
.textpair{
  display:grid;
  grid-template-columns:738fr 825fr;
  gap:clamp(22.4px,2.88vw,48px);
  align-items:start;
}
.textpair h2{margin-bottom:20.8px}
.textpair p{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:1.34}

/* --------------------------------------------------------------- people grid */
.people{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  column-gap:54.4px;
  row-gap:48px;
}
.person__img{
  border-radius:2px;
  overflow:hidden;
  aspect-ratio:292.62/333.6;
}
.person__img img{width:100%;height:100%;object-fit:cover}
.person h4{
  font-size:clamp(15.2px,1.12vw,19.2px);
  font-weight:600;
  color:var(--ink);
  margin:30.4px 0 6.4px;
  line-height:1.2;
}
.person .role{font-size:12.8px;font-weight:400;color:var(--ink);margin:0}

.person .desg{
  color:var(--purple);
  font-weight:bold;
}

/* --------------------------------------------------------------- director band */
.director{
  display:grid;
  grid-template-columns:618fr 1102fr;
  align-items:stretch;
  min-height:452.8px;
}
.director__media{border-radius:2px;overflow:hidden}
.director__media img{width:100%;height:100%;object-fit:cover;min-height:256px}
.director__body{
  background:var(--purple);
  color:#fff;
  border-radius:2px;
  padding:clamp(25.6px,3.2vw,64px) clamp(22.4px,3.2vw,57.6px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.director__body h2{color:#fff;font-size:clamp(20.8px,2.48vw,32px);font-weight:700;margin:0 0 20.8px}
.director__body p.lead{font-size:clamp(14px,0.84vw,14.4px);font-weight:400;line-height:1.45;max-width:668px;margin:0 0 27.2px}
.director__body h3{font-size:clamp(16px,1.12vw,19.2px);font-weight:600;margin:0 0 4.8px}
.director__body .role{font-size:clamp(12px,0.84vw,14.4px);font-weight:400;margin:0 0 24px}
.director__body .btn-wk{align-self:flex-start;min-width:150.4px}


/* band variant without the CTA button */
.director--bio .director__body{justify-content:center}
.director--bio .director__body .role{margin-bottom:0}

/* ---- tab strip ---- */
.dir-tabs{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:clamp(16px,3.2vw,44.8px);
  max-width:816px;
  margin:0 auto clamp(32px,4.8vw,64px);
  padding:0;
  border-bottom:1px solid rgba(74,74,74,.3);
}
.dir-tabs button{
  background:none;
  border:0;
  border-bottom:2.4px solid transparent;
  margin-bottom:-1px;
  padding:0 0 11.2px;
  font-family:var(--ff);
  font-size:clamp(13.6px,1.12vw,19.2px);
  font-weight:400;
  color:var(--ink);
  line-height:1.3;
  white-space:nowrap;
  cursor:pointer;
  border-radius:80px 80px 0 0;
  transition:color .25s, border-color .25s;
}
.dir-tabs button:hover{color:var(--purple)}
.dir-tabs button.active{
  font-weight:600;
  color:var(--purple);
  border-bottom-color:var(--green);
}

/* ---- tab panels ---- */
.dir-panel[hidden]{display:none}
.dir-panel h2{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  line-height:1.2;
  margin:0 0 clamp(24px,3.2vw,40px);
}

/* ---- bio blocks ---- */
.bio-block + .bio-block{margin-top:clamp(20.8px,2.4vw,32px)}
.bio-block h3{
  font-size:clamp(13.6px,1.12vw,14.4px);
  font-weight:700;
  color:var(--ink);
  line-height:1.4;
  margin:0 0 9.6px;
}
.bio-block p{
  font-size:clamp(12px,0.96vw,12.8px);
  font-weight:400;
  color:var(--ink);
  line-height:1.6;
  margin:0;
  max-width:1120px;
}
.bio-block ul{
  list-style:none;
  margin:0;
  padding:0;
  max-width:1120px;
}
.bio-block li{
  font-size:clamp(12px,0.96vw,12.8px);
  font-weight:400;
  color:var(--ink);
  line-height:1.6;
}
.bio-empty{
  font-size:clamp(12px,0.96vw,12.8px);
  font-weight:400;
  color:#6b6b6b;
  margin:0;
}

@media (max-width:1399px){
  .people{grid-template-columns:repeat(4,1fr);column-gap:32px}
}
@media (max-width:1199px){
  .people{grid-template-columns:repeat(3,1fr);column-gap:25.6px;row-gap:35.2px}
  .director{grid-template-columns:1fr}
  .split,.split--text-first{grid-template-columns:1fr}
  .split__media{order:-1}
  .textpair{grid-template-columns:1fr}
}
@media (max-width:767px){
  .people{grid-template-columns:repeat(2,1fr);column-gap:16px;row-gap:25.6px}
  .person h4{margin-top:16px}
  .page-hero{min-height:500px;padding-block:32px}
  .crumb{margin-bottom:17.6px}
}


@media (max-width:479px){
  .people{grid-template-columns:1fr}
}

/* --------------------------------------------------------------- soft band */
.softband{background:var(--soft);padding-block:clamp(32px,4vw,67.2px)}
.softband h2{margin-bottom:19.2px}
.softband p{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:1.5;max-width:1301.6px}

/* --------------------------------------------------------------- vision / mission */
.vm{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(25.6px,3.6vw,64px);
  align-items:start;
}
.vm__icon{height:98.4px;width:auto;margin-bottom:38.4px}
.vm h2{margin-bottom:17.6px}
.vm p{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:1.67;margin:0 0 9.6px}

/* --------------------------------------------------------------- objective list */
.obj-list{list-style:none;margin:0;padding:0;max-width:542.4px}
.obj-list li{
  font-size:clamp(14px,0.84vw,14.4px);
  font-weight:500;
  line-height:1.67;
  padding-left:20.8px;
  position:relative;
  margin-bottom:4.8px;
}
.obj-list li::before{
  content:"";
  position:absolute;
  left:0;top:9.6px;
  width:6.4px;height:6.4px;
  border-radius:50%;
  background:var(--green);
}

/* --------------------------------------------------------------- semesters */
.structure{
  display:grid;
  grid-template-columns:796fr 878fr;
  gap:clamp(22.4px,2.4vw,36.8px);
  align-items:start;
}
.structure__media{border-radius:2px;overflow:hidden}
.structure__media img{width:100%;height:100%;object-fit:cover;min-height:272px}

.sem{margin-bottom:16px}
.sem__head{
  width:100%;
  min-height:64.8px;
  display:flex;
  align-items:center;
  gap:clamp(16px,3.2vw,38.4px);
  padding:0 32px;
  border:0;
  border-radius:2px;
  background:rgba(219,219,219,.5);
  color:var(--ink);
  font-family:var(--ff);
  text-align:left;
  transition:background .25s ease;
}
.sem__head:hover{background:rgba(219,219,219,.85)}
.sem__label{font-size:clamp(15.2px,1.12vw,19.2px);font-weight:400}
.sem__roman{font-size:clamp(20.8px,1.68vw,28.8px);font-weight:600;color:#9a9a9a}
.sem__sign{margin-left:auto;font-size:clamp(22.4px,1.92vw,32px);font-weight:300;color:var(--green);line-height:1}

.sem.open .sem__head{background:var(--green);color:#fff}
.sem.open .sem__label{font-weight:600}
.sem.open .sem__roman{color:#fff}
.sem.open .sem__sign{color:#fff}

.sem__body{
  display:none;
  padding:24px 48px 19.2px 0;
  max-height:202.4px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--green) #d9d9d9;
}
.sem.open .sem__body{display:block}
.sem__body::-webkit-scrollbar{width:3.2px}
.sem__body::-webkit-scrollbar-track{background:#d9d9d9;border-radius:2px}
.sem__body::-webkit-scrollbar-thumb{background:var(--green);border-radius:2px}
.sem__body ul{list-style:none;margin:0;padding:0}
.sem__body li{font-size:clamp(14px,0.84vw,14.4px);font-weight:500;line-height:24px}

/* --------------------------------------------------------------- achievements */
.achieve__head{text-align:center;margin-bottom:44.8px}
.achieve__head p{
  font-size:clamp(14px,0.84vw,14.4px);
  font-weight:400;
  max-width:625.6px;
  margin:12.8px auto 0;
}

/* wrapper holds swiper + side arrows */
.achieve__wrap{
  position:relative;
}
#achieveSwiper{
  overflow:hidden;
}
#achieveSwiper .swiper-slide{
  opacity:.3;
  transition:opacity .35s ease;
}
#achieveSwiper .swiper-slide-active{
  opacity:1;
}
.achieve__card{
  display:grid;
  grid-template-columns:679fr 657fr;
  min-height:374.4px;
  border-radius:2px;
  overflow:hidden;
}
.achieve__media{overflow:hidden}
.achieve__media img{width:100%;height:500px;object-fit:cover;min-height:224px;display:block}
.achieve__body{
  background:var(--purple);
  color:#fff;
  padding:clamp(22.4px,3.2vw,62.4px) clamp(19.2px,2.4vw,43.2px);
}
.achieve__body h3{font-size:clamp(19.2px,1.76vw,27.2px);font-weight:600;margin:0 0 20.8px}
.achieve__body p{font-size:clamp(12.8px,1.04vw,17.6px);font-weight:400;line-height:1.5;margin:0 0 11.2px}

/* prev / next arrows */
.achieve__btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  width:46.4px;height:45.6px;
  border-radius:50%;
  border:1px solid rgba(73,52,96,.35);
  background:#fff;
  display:grid;
  place-items:center;
  transition:.25s;
}
.achieve__btn:hover{background:var(--purple);border-color:var(--purple)}
.achieve__btn svg{width:14.4px;height:14.4px;stroke:var(--purple);fill:none;stroke-width:2}
.achieve__btn:hover svg{stroke:#fff}
.achieve__btn--prev{left:-24px}
.achieve__btn--next{right:-24px}

@media (max-width:1199px){
  .vm{grid-template-columns:1fr}
  .structure{grid-template-columns:1fr}
  .structure__media{order:-1}
  .achieve__btn--prev{left:-11.2px}
  .achieve__btn--next{right:-11.2px}
}
@media (max-width:767px){
  .achieve__card{grid-template-columns:1fr}
  .achieve__btn--prev{left:0}
  .achieve__btn--next{right:0}
  .sem__head{padding:0 16px;gap:12.8px}
  .sem__body{padding-right:16px}
  .vm__icon{height:70.4px;margin-bottom:22.4px}

  .place__tabs--wide {
    display:block
  }
  .place__tabs--wide button{
    width:49%;
  }
}

@media(max-width:500px){
  #achieveSwiper{
    margin-bottom:32px
  }
  .achieve__btn{
  top:106%;
  }
  .achieve__btn--prev {
  left: 30%;
  }
  .achieve__btn--next {
  right: 30%;
  }

  .wk-footer__addr br:nth-child(1),  .wk-footer__addr br:nth-child(2){
    display:none;
  }

  .achieve__media img{
    height:auto;
  }
}
/* ==========================================================================
   ENQUIRE NOW MODAL   (Figma node 4528:4510)
   Panel 1717x1258 | fields 800x71 #fbf8ff | captcha #f4f4f4 | submit 160x50
   ========================================================================== */

.enq{
  position:fixed;
  inset:0;
  z-index:2000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(12.8px,2.4vw,38.4px) clamp(9.6px,1.6vw,19.2px);
  overflow-y:auto;
}
.enq[hidden]{display:none}

.enq__backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.6);
  animation:enqFade .25s ease;
}
@keyframes enqFade{from{opacity:0}to{opacity:1}}

.enq__panel{
  position:relative;
  z-index:1;
  background:#fff;
  border-radius:2px;
  width:100%;
  max-width:1373.6px;
  padding:clamp(19.2px,2.4vw,37.6px);
  margin:auto;
  animation:enqRise .3s ease;
}
@keyframes enqRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

.enq__close{
  position:absolute;
  top:clamp(9.6px,1.6vw,25.6px);
  right:clamp(12.8px,2.4vw,37.6px);
  background:none;
  border:0;
  font-family:var(--ff);
  font-size:clamp(24px,2.08vw,32px);
  font-weight:700;
  line-height:1;
  color:var(--purple);
  cursor:pointer;
  padding:3.2px 8px;
  transition:opacity .2s;
}
.enq__close:hover{opacity:.6}

.enq__title{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  line-height:1.2;
  margin:0 0 clamp(19.2px,2.4vw,33.6px);
}

/* two-column form grid */
.enq__form{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:18.4px;                 /* Figma gap between the 640px columns */
  row-gap:clamp(11.2px,1.36vw,20px);
}

.enq__field{position:relative}
.enq__field--full{grid-column:1 / -1}

.enq__field input,
.enq__field select,
.enq__field textarea{
  width:100%;
  background:var(--soft);
  border:1px solid transparent;
  border-radius:2px;
  font-family:var(--ff);
  font-size:clamp(12px,1.08vw,19.2px);
  font-weight:500;
  color:var(--ink);
  padding:0 clamp(12.8px,1.92vw,28.8px);
  height:56.8px;
  outline:none;
  transition:border-color .2s, background .2s;
  appearance:none;
  -webkit-appearance:none;
}
.enq__field textarea{
  height:166.4px;
  padding-top:17.6px;
  padding-bottom:17.6px;
  resize:vertical;
  line-height:1.5;
}
.enq__field input::placeholder,
.enq__field textarea::placeholder{
  color:var(--ink);
  opacity:1;
}
.enq__field select:invalid{color:var(--ink)}

.enq__field input:focus,
.enq__field select:focus,
.enq__field textarea:focus{
  border-color:var(--green);
  background:#fff;
}
.enq__field input[aria-invalid="true"],
.enq__field select[aria-invalid="true"],
.enq__field textarea[aria-invalid="true"]{
  border-color:#c0392b;
}

/* dropdown caret (Figma Polygon5, 20.4px) */
.enq__field--select::after{
  content:"";
  position:absolute;
  right:clamp(12.8px,1.76vw,26.4px);
  top:50%;
  transform:translateY(-30%);
  width:0;height:0;
  border-left:7.2px solid transparent;
  border-right:7.2px solid transparent;
  border-top:8.8px solid var(--ink);
  pointer-events:none;
}
.enq__field--select select{padding-right:48px;cursor:pointer}

/* ---- captcha ---- */
.enq__captcha{
  grid-column:1 / -1;
  margin-top:clamp(16px,2.08vw,35.2px);
}
.enq__captcha-title{
  font-size:clamp(17.6px,1.6vw,24px);
  font-weight:600;
  color:var(--ink);
  margin:0 0 8px;
}
.enq__captcha-label{
  font-size:clamp(12px,1.08vw,19.2px);
  font-weight:500;
  color:var(--ink);
  margin:0 0 12.8px;
}
.enq__captcha-row{
  display:grid;
  grid-template-columns:156px 499.2px;
  gap:23.2px;
  align-items:center;
  max-width:100%;
}
.enq__code{
  background:#f4f4f4;
  border-radius:2px;
  height:56.8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--ff);
  font-size:clamp(14.4px,1.08vw,19.2px);
  font-weight:500;
  letter-spacing:2px;
  color:var(--ink);
  user-select:none;
}
.enq__field--grey input{background:#f4f4f4}
.enq__captcha-help{
  font-size:12.8px;
  font-weight:500;
  color:var(--ink);
  margin:11.2px 0 0;
}

.enq__error{
  grid-column:1 / -1;
  color:#c0392b;
  font-size:12px;
  font-weight:600;
  margin:11.2px 0 0;
}

.enq__actions{
  grid-column:1 / -1;
  display:flex;
  justify-content:center;
  margin-top:clamp(19.2px,2.4vw,38.4px);
}
.enq__submit{
  min-width:128px;
  min-height:40px;
  padding:9.6px 32px;
}

body.enq-open{overflow:hidden}

/* the floating side tab is a button now */
button.enquire-tab{
  border:0;
  cursor:pointer;
  font-family:var(--ff);
}


/* ==========================================================================
   MANDATORY DISCLOSURES
   Grouped document link lists. Values at the site-wide 80% scale.
   ========================================================================== */

.disc-sec + .disc-sec{margin-top:clamp(32px,4vw,57.6px)}
.disc-sec > h2{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  line-height:1.2;
  margin:0 0 clamp(16px,2vw,25.6px);
  padding-bottom:9.6px;
  border-bottom:1px solid rgba(74,74,74,.2);
}

.disc-group + .disc-group{margin-top:clamp(20.8px,2.4vw,32px)}
.disc-group h3{
  font-size:clamp(14.4px,1.28vw,19.2px);
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
  margin:0 0 12.8px;
}
.disc-group h4{
  font-size:clamp(12.8px,1.04vw,15.2px);
  font-weight:600;
  color:var(--purple);
  line-height:1.4;
  margin:16px 0 8px;
}

/* document link list */
.doc-list{
  list-style:none;
  margin:0;
  padding:0;
  columns:3;
  column-gap:clamp(24px,3.2vw,48px);
}
.doc-list--single{columns:1}
.doc-list li{
  break-inside:avoid;
  margin-bottom:6.4px;
}
.doc-list a{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:clamp(12px,0.96vw,12.8px);
  font-weight:400;
  color:var(--ink);
  line-height:1.55;
  padding:3.2px 0;
  transition:color .2s;
}
.doc-list a:hover{color:var(--green)}
.doc-list a:hover .doc-ico{fill:var(--green)}
.doc-ico{
  width:12.8px;
  height:12.8px;
  flex:none;
  margin-top:3.2px;
  fill:var(--purple);
  transition:fill .2s;
}

/* plain text row, no link */
.doc-list li > span{
  display:block;
  font-size:clamp(12px,0.96vw,12.8px);
  font-weight:400;
  color:var(--ink);
  line-height:1.55;
  padding:3.2px 0 3.2px 20.8px;
}
.doc-list li > span a{display:inline;padding:0}

.disc-note{
  margin-top:clamp(32px,4vw,57.6px);
  padding:clamp(16px,2vw,25.6px);
  background:var(--soft);
  border-radius:2px;
  font-size:clamp(12px,0.96vw,12.8px);
  font-weight:500;
  color:var(--ink);
  line-height:1.6;
}

@media (max-width:991px){
  .doc-list{columns:1}
}


@media (max-width:991px){
  .enq__captcha-row{grid-template-columns:128px 1fr;gap:12.8px}
  .enq__field input,
  .enq__field select{height:48px}
  .enq__code{height:48px}
}
@media (max-width:767px){
  .enq__form{grid-template-columns:1fr}
  .enq__captcha-row{grid-template-columns:1fr;gap:9.6px}
  .enq__field textarea{height:128px}
  .enq__panel{padding:16px 12.8px 22.4px}
  .enq__close{top:6.4px;right:9.6px}
  .dir-tabs{
    flex-wrap:nowrap;
    overflow-x:auto;
    justify-content:flex-start;
    gap:22.4px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .dir-tabs::-webkit-scrollbar{display:none}
}

/* ==========================================================================
   CONTACT US PAGE   (Figma node 4528:4259)
   ========================================================================== */

/* map / image 992 | info column 700 */
.contact-info{
  display:grid;
  grid-template-columns:992fr 700fr;
  gap:clamp(19.2px,2.4vw,38.4px);
  align-items:start;
}
.contact-map{
  border-radius:2px;
  overflow:hidden;
  aspect-ratio:992/613;
}
.contact-map img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}

.contact-block + .contact-block{margin-top:clamp(22.4px,2.4vw,41.6px)}
.contact-block h2{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  line-height:1.2;
  margin:0 0 14.4px;
}
.contact-block p{
  font-size:clamp(12.8px,1.08vw,19.2px);
  font-weight:500;
  color:var(--ink);
  line-height:1.5;
  margin:0;
}
.contact-block address{
  font-style:normal;
  font-size:clamp(12.8px,1.08vw,19.2px);
  font-weight:500;
  color:var(--ink);
  line-height:1.5;
}
.contact-block a{color:inherit}
.contact-block a:hover{color:var(--green)}

/* page-level form heading, centred per Figma */
.contact-form__title{
  font-size:clamp(20.8px,2.48vw,32px);
  font-weight:700;
  color:var(--purple);
  text-align:center;
  margin:0 0 clamp(22.4px,2.8vw,44.8px);
}

@media (max-width:1199px){
  .contact-info{grid-template-columns:1fr}
}

/* ==========================================================================
   ADMISSION AND FEES   (Figma node 4490:2132)
   3 cards 560x550, gap 20 | centred CET statement 27.2px
   ========================================================================== */

.adm-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.adm-card__img{
  border-radius:2px;
  overflow:hidden;
  aspect-ratio:560/550;
  margin-bottom:28.8px;
}
.adm-card__img img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}

.adm-card h3{
  font-size:clamp(16px,1.12vw,19.2px);
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
  margin:0 0 11.2px;
}
.adm-card p{
  font-size:clamp(12px,0.84vw,12.8px);
  font-weight:400;
  color:#474747;
  line-height:1.6;
  margin:0 0 11.2px;
}
.adm-card p:last-child{margin-bottom:0}
.adm-card a{
  color:var(--green);
  font-weight:600;
  word-break:break-word;
}
.adm-card a:hover{text-decoration:underline}

/* centred CET statement */
.adm-note{
  max-width:1264px;
  margin:0 auto;
  text-align:center;
}
.adm-note p{
  font-size:clamp(16px,1.76vw,27.2px);
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
  margin:0 0 25.6px;
}
.adm-note__site{
  font-size:clamp(13.6px,1.36vw,20.8px);
  font-weight:600;
  color:var(--ink);
  margin:0;
}
.adm-note__site a{
  color:var(--purple);
  word-break:break-word;
}
.adm-note__site a:hover{text-decoration:underline}

@media (max-width:991px){
  .adm-cards{grid-template-columns:1fr 1fr}
  .adm-card__img{margin-bottom:17.6px}
}
@media (max-width:639px){
  .adm-cards{grid-template-columns:1fr;gap:28.8px}
}

/* --------------------------------------------------------------- disclosure accordion
   Progressive enhancement. Headings keep their existing type styles;
   only a toggle affordance and the collapsed state are added.            */

.disc-head{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:16px;
  cursor:pointer;
  user-select:none;
  transition:color .2s;
}
.disc-head:hover{color:var(--green)}
.disc-head:focus-visible{
  outline:2px solid var(--green);
  outline-offset:3px;
}

/* + / - indicator, same idiom as the semester accordion */
.disc-sign{
  flex:none;
  font-weight:300;
  line-height:1;
  color:var(--green);
  transition:transform .2s;
}
.disc-sec > h2 .disc-sign{font-size:clamp(20.8px,1.92vw,25.6px)}
.disc-group h3 .disc-sign{font-size:clamp(16px,1.44vw,20.8px)}

.disc-body[hidden]{display:none}
.disc-body{animation:discOpen .22s ease}
@keyframes discOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* collapsed headings sit tighter */
.disc-head.is-closed{margin-bottom:0}
.disc-group h3.disc-head.is-closed{margin-bottom:0}

/* --------------------------------------------------------------- hero slider disabled
   When the slider is off, Swiper never runs and never adds .swiper-initialized,
   so the track collapses to a single static background. Re-enabling needs no
   CSS change: Swiper adds the class and these rules stop applying.        */
.hero__bg-slider:not(.swiper-initialized) .swiper-wrapper{
  display:block;
  height:100%;
  transform:none !important;
}
.hero__bg-slider:not(.swiper-initialized) .swiper-slide{
  width:100% !important;
  height:100%;
}
.hero__bg-slider:not(.swiper-initialized) .swiper-slide + .swiper-slide{display:none}

/* ==========================================================================
   VIDEO LIGHTBOX
   ========================================================================== */

.vid{
  position:fixed;
  inset:0;
  z-index:2100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(12px,3vw,38.4px);
}
.vid[hidden]{display:none}

.vid__backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.82);
  animation:vidFade .22s ease;
}

.page-hero__bg picture{display:block;width:100%;height:100%}

@keyframes vidFade{from{opacity:0}to{opacity:1}}

.vid__panel{
  position:relative;
  z-index:1;
  width:100%;
  max-width:896px;
  animation:vidRise .26s ease;
}
@keyframes vidRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.vid__close{
  position:absolute;
  top:-36px;
  right:0;
  background:none;
  border:0;
  font-family:var(--ff);
  font-size:28.8px;
  font-weight:400;
  line-height:1;
  color:#fff;
  cursor:pointer;
  padding:4px 8px;
  transition:opacity .2s;
}
.vid__close:hover{opacity:.6}
.vid__close:focus-visible{outline:2px solid var(--green);outline-offset:2px}

.vid__title{
  font-size:clamp(12.8px,1.12vw,16px);
  font-weight:600;
  color:#fff;
  margin:0 0 9.6px;
  padding-right:44.8px;
}

.vid__frame{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  border-radius:2px;
  overflow:hidden;
}
.vid__frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

body.vid-open{overflow:hidden}

@media (max-width:767px){
  .vid__close{top:-32px;font-size:25.6px}
}

/* ==========================================================================
   STUDENT BATCH PROFILE  (admission-and-fees.html)
   Reuses the placement tab strip. Values at the site-wide 80% scale.
   ========================================================================== */

/* wider strip variant — the labels here are longer than the year labels */
.place__tabs--wide{
  max-width:960px;
  gap:clamp(12.8px,2.4vw,40px);
}
.place__tabs--wide button{white-space:nowrap}

.profile__intro{
  text-align:center;
  max-width:800px;
  margin:0 auto clamp(24px,3.2vw,40px);
}
.profile__intro p{
  font-size:clamp(12px,0.96vw,14.4px);
  font-weight:500;
  color:var(--ink);
  margin:0;
}

/* panel: responsive grid of percentage stats */
.profile-panel[hidden]{display:none}
/* wrapping row, centred. Columns size to content instead of stretching,
   so a 2-value tab sits centred rather than spread across the full width. */
.profile-stats{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:clamp(24px,3.2vw,48px) clamp(20px,2.8vw,44px);
}
.profile-stat{
  flex:1 1 168px;
  min-width:0;
  max-width:280px;
}

.profile-stat__num{
  font-size:clamp(24px,3.04vw,44.8px);
  font-weight:700;
  color:var(--green);
  line-height:1;
  margin:0 0 9.6px;
}
.profile-stat__num small{font-size:.46em;font-weight:700}

.profile-stat__lbl{
  font-size:clamp(12px,0.88vw,14.4px);
  font-weight:500;
  color:var(--purple);
  margin:0;
  line-height:1.4;
}

/* zero values read as muted rather than absent */
.profile-stat--zero .profile-stat__num{color:#b4b4b4}

@media (max-width:767px){
  .place__tabs--wide{
    justify-content:flex-start;
    overflow-x:auto;
    gap:22.4px;
    scrollbar-width:none;
  }
  .place__tabs--wide::-webkit-scrollbar{display:none}
  .profile-stat{flex-basis:132px;max-width:none}
}

/* ==========================================================================
   INFO BLOCK — purple sub-heading + body copy
   Used by the PhD programme page. Reusable for any labelled prose section.
   Values at the site-wide 80% scale.
   ========================================================================== */

.info-block + .info-block{margin-top:clamp(22.4px,2.8vw,40px)}
.info-block h3{
  font-size:clamp(14.4px,1.28vw,19.2px);
  font-weight:600;
  color:var(--purple);
  line-height:1.4;
  margin:0 0 9.6px;
}
.info-block p{
  font-size:clamp(12px,0.96vw,14.4px);
  font-weight:400;
  color:var(--ink);
  line-height:1.6;
  margin:0 0 8px;
  max-width:1120px;
}
.info-block p:last-child{margin-bottom:0}
.info-block a{color:var(--green);font-weight:600}
.info-block a:hover{text-decoration:underline}

/* --------------------------------------------------------------- nav dropdown */
.wk-nav li.has-sub{position:relative}
.wk-sub{
  position:absolute;
  top:100%;
  left:0;
  min-width:224px;
  margin:0;
  padding:6.4px 0;
  list-style:none;
  background:var(--purple);
  border-top:2px solid var(--green);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:1040;
}

.wk-nav  .wk-sub{
   display:block;
}

.wk-nav li.has-sub:hover .wk-sub,
.wk-nav li.has-sub:focus-within .wk-sub{
  opacity:1;
  visibility:visible;
  transform:none;
}
.wk-sub li{width:100%}
.wk-sub a{
  display:block;
  padding:8px 19.2px;
  font-size:12.8px;
  font-weight:500;
  color:#fff;
  line-height:1.5;
  white-space:nowrap;
  transition:background .2s,color .2s;
}
.wk-sub a:hover{background:rgba(255,255,255,.1);color:var(--lime)}


@media (max-width:991px){
  /* inside the stacked mobile menu the submenu is always shown, indented */
  /* .wk-sub{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    min-width:0;
    background:none;
    border-top:0;
    box-shadow:none;
    padding:0 0 4px 16px;
  }
  .wk-sub a{padding:6.4px 0;font-size:12.8px}
  .wk-sub a:hover{background:none} */

    .wk-sub{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    min-width:0;
    background:none;
    border-top:0;
    box-shadow:none;
    max-height:0;
    overflow:hidden;
    padding:0 0 0 16px;
    transition:max-height .3s ease, padding .3s ease;
  }
  .wk-nav li.has-sub.sub-open .wk-sub{max-height:200px;padding:0 0 4px 0px}
  .wk-nav li.has-sub.sub-open .nav-caret{transform:rotate(180deg)}
  .wk-sub a{padding:6.4px 0;font-size:12.8px}
  .wk-sub a:hover{background:none}
}

/* ==========================================================================
   404 PAGE   (values at the site-wide 80% scale)
   ========================================================================== */
.err{
  text-align:center;
  padding-block:clamp(56px,8vw,128px);
}
.err__code{
  font-size:clamp(88px,13vw,180px);
  font-weight:900;
  line-height:1;
  color:var(--purple);
  margin:0;
  letter-spacing:-2px;
}
.err__title{
  font-size:clamp(22.4px,2.8vw,40px);
  font-weight:700;
  color:var(--ink);
  margin:clamp(8px,1.2vw,16px) 0 0;
}
.err__text{
  font-size:clamp(14px,1vw,16px);
  font-weight:400;
  color:var(--ink);
  line-height:1.6;
  max-width:520px;
  margin:clamp(12px,1.6vw,20px) auto 0;
}
.err__cta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12.8px;
  margin-top:clamp(24px,3.2vw,40px);
}
 

/* ==========================================================================
   SCROLL REVEAL
   Pure element-selector based. No new classes, ids, or attributes in the HTML.
   JS toggles inline opacity/transform; CSS only provides the transition and
   the reduced-motion opt-out.
   ========================================================================== */
@media (prefers-reduced-motion:no-preference){
  main section,
  body > section{
    transition:opacity 1.6s ease, transform 1.6s ease;
  }
}
/* ==========================================================================
   NEW PAGES: Alumni, Events, Global Footprints   (80% scale)
   ========================================================================== */

/* ---- dark page-hero variant (image with dark overlay, title bottom-left) -- */
.page-hero--dark::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,.35) 60%,rgba(0,0,0,.2) 100%);
  z-index:1;
}
.page-hero--dark .wk{position:relative;z-index:2}
.page-hero--dark .crumb,
.page-hero--dark .crumb a{color:#fff}
.page-hero--tall{min-height:clamp(280px,34vw,440px)}

/* =========================================================== detail article */
.article{padding-block:clamp(40px,5vw,80px)}
.article__grid{
  display:grid;
  grid-template-columns:480fr 900fr;
  gap:clamp(28px,3.6vw,64px);
  align-items:start;
}
.article__media img{width:100%;height:auto;display:block;border-radius:2px}
.article__date{
  font-size:clamp(12px,0.96vw,14.4px);
  color:var(--muted);
  margin:0 0 8px;
}
.article__title{
  font-size:clamp(18px,1.76vw,25.6px);
  font-weight:700;
  color:var(--ink);
  margin:0 0 clamp(16px,2vw,24px);
}
.article__body p{
  font-size:clamp(14px,1vw,16px);
  line-height:1.7;
  color:var(--ink);
  margin:0 0 clamp(16px,1.8vw,22px);
}
.article__body p:last-child{margin-bottom:0}
@media (max-width:767px){
  .article__grid{grid-template-columns:1fr;gap:20px}
}

/* =========================================================== gallery carousel */
.gallery{padding-block:clamp(32px,4vw,64px)}
.gallery__viewport{overflow:hidden}
.gallery .swiper-slide img{width:100%;aspect-ratio:497/318;object-fit:cover;display:block;border-radius:2px}
.gallery__nav{
  display:flex;
  justify-content:flex-end;
  gap:12.8px;
  margin-top:clamp(16px,2vw,24px);
}
.gallery__btn{
  width:clamp(38px,3.6vw,52px);
  height:clamp(38px,3.6vw,52px);
  border-radius:50%;
  border:1.6px solid var(--green);
  background:none;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:background .2s,transform .2s;
}
.gallery__btn svg{width:40%;height:40%;fill:var(--green);transition:fill .2s}
.gallery__btn:hover{background:var(--green)}
.gallery__btn:hover svg{fill:#fff}
.gallery__btn--next{background:var(--green)}
.gallery__btn--next svg{fill:#fff}
.gallery__btn--next:hover{background:var(--green);transform:scale(1.08)}
.gallery__btn.swiper-button-disabled{opacity:.4;cursor:default}

/* =========================================================== filter bar */
.filterbar{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:clamp(28px,3.6vw,48px);
}
.filterbar__search{
  position:relative;
  flex:1 1 360px;
  min-width:240px;
}
.filterbar__search input{
  width:100%;
  height:clamp(44px,4.4vw,56px);
  padding:0 72px 0 20px;
  border:1px solid #cfcfcf;
  border-radius:2px;
  font-family:var(--ff);
  font-size:clamp(13.6px,1.04vw,15.2px);
  color:var(--ink);
  background:#fff;
}
.filterbar__search input:focus{outline:2px solid var(--green);outline-offset:-1px}
.filterbar__search-ic{
  position:absolute;
  top:50%;
  right:16px;
  transform:translateY(-50%);
  display:flex;
  gap:12px;
  color:var(--muted);
}
.filterbar__search-ic svg{width:17.6px;height:17.6px;fill:currentColor}
.filterbar__select{
  position:relative;
  flex:0 1 200px;
  min-width:150px;
}
.filterbar__select select{
  width:100%;
  height:clamp(44px,4.4vw,56px);
  padding:0 40px 0 16px;
  border:1px solid #cfcfcf;
  border-radius:2px;
  font-family:var(--ff);
  font-size:clamp(13.6px,1.04vw,15.2px);
  color:var(--ink);
  background:#fff;
  appearance:none;
  cursor:pointer;
}
.filterbar__select::after{
  content:"";
  position:absolute;
  top:50%;
  right:16px;
  transform:translateY(-25%);
  border-left:5.6px solid transparent;
  border-right:5.6px solid transparent;
  border-top:6.4px solid var(--ink);
  pointer-events:none;
}
.filterbar__select select:focus{outline:2px solid var(--green);outline-offset:-1px}

/* =========================================================== event cards */
.ev-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,3.2vw,40px) clamp(20px,2.4vw,36px);
}
.ev-card{display:flex;flex-direction:column}
.ev-card__img{
  aspect-ratio:404/300;
  overflow:hidden;
  border-radius:2px;
  margin-bottom:14.4px;
}
.ev-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.ev-card:hover .ev-card__img img{transform:scale(1.05)}
.ev-card__row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.ev-card__date{font-size:clamp(12px,0.96vw,13.6px);color:var(--muted);margin:0 0 6px}
.ev-card__title{font-size:clamp(15.2px,1.28vw,19.2px);font-weight:700;color:var(--ink);margin:0;line-height:1.35}
.ev-card__go{
  flex:none;
  width:clamp(34px,3.2vw,44px);
  height:clamp(34px,3.2vw,44px);
  border-radius:50%;
  background:var(--purple);
  border:0;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:transform .2s,background .2s;
}
.ev-card__go svg{width:38%;height:38%;fill:#fff}
.ev-card__go:hover{transform:scale(1.1);background:var(--green)}
.ev-more{text-align:center;margin-top:clamp(32px,4vw,56px)}

@media (max-width:991px){ .ev-grid{grid-template-columns:1fr 1fr} }
@media (max-width:639px){ .ev-grid{grid-template-columns:1fr} }

/* =========================================================== global footprints */
.gf-filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:clamp(32px,4vw,56px)}
.gf-split{
  display:grid;
  grid-template-columns:640fr 720fr;
  gap:clamp(28px,3.6vw,56px);
  align-items:start;
}
.gf-split__media img{width:100%;height:auto;display:block;border-radius:2px}
.gf-sub{
  font-size:clamp(12px,0.96vw,14.4px);
  color:var(--ink);
  margin:0 0 clamp(20px,2.4vw,32px);
}
/* country accordion reuses .disc-head sign idiom but styled like a banner */
.gf-acc{margin-bottom:12.8px}
.gf-acc__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:clamp(14px,1.6vw,20px) clamp(18px,2vw,28px);
  background:var(--grey);
  border-radius:2px;
  cursor:pointer;
  font-size:clamp(14.4px,1.28vw,17.6px);
  font-weight:600;
  color:var(--ink);
  transition:background .2s,color .2s;
  user-select:none;
}
.gf-acc--open .gf-acc__head{background:var(--purple);color:#fff}
.gf-acc__sign{flex:none;font-weight:300;font-size:1.3em;line-height:1}
.gf-acc--open .gf-acc__sign{color:var(--lime)}
.gf-acc__body{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
}
.gf-acc--open .gf-acc__body{max-height:480px}
.gf-acc__inner{
  display:flex;
  gap:16px;
  padding:clamp(16px,2vw,24px) clamp(18px,2vw,28px);
}
.gf-acc__bar{flex:none;width:3.2px;background:var(--green);border-radius:100px}
.gf-acc__text{margin:0}
.gf-acc__text p{font-size:clamp(13.6px,1.04vw,15.2px);line-height:1.6;color:var(--ink);margin:0 0 16px}
.gf-acc__text a{color:var(--purple);font-weight:600}
.gf-acc__read{color:var(--purple);font-weight:700;text-decoration:underline}

@media (max-width:767px){ .gf-split{grid-template-columns:1fr;gap:24px} }

/* =========================================================== partners logo row */
.partners{padding-block:clamp(40px,5vw,80px)}
.partners__title{
  font-size:clamp(22.4px,2.4vw,36px);
  font-weight:700;
  color:var(--ink);
  margin:0 0 clamp(28px,3.6vw,48px);
}
.partners__row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:clamp(24px,3.2vw,48px);
}
.partners__row img{max-height:clamp(40px,4vw,64px);
  width:auto;
  object-fit:contain;
  /* filter:grayscale(1); */
  opacity:1;
  /* transition:filter .3s,opacity .3s */
}
.partners__row img:hover{filter:none;opacity:1}

/* =========================================================== alumni page */
.alp__section{padding-block:clamp(28px,3.6vw,56px)}
.alp__label{
  font-size:clamp(18px,1.76vw,28px);
  font-weight:700;
  color:var(--purple);
  margin:0 0 clamp(20px,2.4vw,32px);
}

/* captioned people grid (Notable Alumni) */
.alp-people{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:clamp(16px,2vw,32px) clamp(16px,1.6vw,28px);
}
.alp-person__img{
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:2px;
  margin-bottom:12.8px;
  background:var(--grey);
}
.alp-person__img img{width:100%;height:100%;object-fit:cover;display:block}
.alp-person h4{
  font-size:clamp(13.6px,1.12vw,16px);
  font-weight:700;
  color:var(--ink);
  margin:0 0 3.2px;
  line-height:1.3;
}
.alp-person .role{
  font-size:clamp(11.2px,0.88vw,12.8px);
  font-weight:400;
  color:var(--ink);
  margin:0;
  line-height:1.4;
}

/* captioned image tiles (all other sections) */
.alp-tiles{
  display:grid;
  gap:clamp(16px,2vw,32px) clamp(16px,1.6vw,28px);
}
.alp-tiles--2{grid-template-columns:repeat(2,1fr)}
.alp-tiles--3{grid-template-columns:repeat(3,1fr)}
.alp-tile__img{
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:2px;
  margin-bottom:11.2px;
  background:var(--grey);
}
.alp-tile__img img{width:100%;height:100%;object-fit:cover;display:block}
.alp-tile__title{
  font-size:clamp(13.6px,1.12vw,16px);
  font-weight:700;
  color:var(--ink);
  margin:0 0 3.2px;
  line-height:1.3;
}
.alp-tile__sub{
  font-size:clamp(11.2px,0.88vw,12.8px);
  font-weight:400;
  color:var(--ink);
  margin:0;
  line-height:1.4;
}

/* two-column section pairing (Guest Lectures | Social Media, etc.) */
.alp-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,72px);
}

@media (max-width:991px){
  .alp-people{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:639px){
  .alp-people{grid-template-columns:repeat(2,1fr)}
  .alp-cols{grid-template-columns:1fr}
  .alp-tiles--3{grid-template-columns:1fr 1fr}
}
