*,*::before,*::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

:root{
  --white:#FFFFFF;
  --cream:#FDFAF6;
  --surface:#F8F4EF;
  --border:#EDE8DF;
  --border-lt:#F4F0EA;
  --text:#1C1915;
  --text2:#6B6459;
  --text3:#A89F95;
  --orange:#E05C1A;
  --orange-dk:#C04D14;
  --orange-lt:#FEF3EC;
  --orange-br:#F5D0B5;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --r:10px;
  --r-lg:18px;
  --sh:0 1px 4px rgba(28,25,21,.05),0 4px 16px rgba(28,25,21,.07);
  --sh-md:0 4px 24px rgba(28,25,21,.11);
  --sh-lg:0 10px 48px rgba(28,25,21,.14);
  --tr:.24s cubic-bezier(.4,0,.2,1);
}

html{
  scroll-behavior:smooth;
  font-size:16px;
}

body{
  font-family:var(--sans);
  color:var(--text);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ── TYPE ─────────────────────────────────── */
h1,h2,h3{
  font-family:var(--serif);
  line-height:1.2;
  font-weight:600;
  letter-spacing:-.01em;
}

h1{
  font-size:clamp(28px,3.2vw,42px);
}

h2{
  font-size:clamp(24px,2.8vw,36px);
}

h3{
  font-size:clamp(17px,1.8vw,22px);
}

h4{
  font-family:var(--sans);
  font-size:14px;
  font-weight:600;
}

p{
  font-size:15px;
  color:var(--text2);
  line-height:1.8;
}

a{
  text-decoration:none;
  color:inherit;
}

/* ── LAYOUT ──────────────────────────────── */
.wrap{
  max-width:1120px;
  margin:0 auto;
  padding:0 32px;
}

.sec{
  padding:88px 0;
}

.sec-sm{
  padding:60px 0;
}

.bg-cream{
  background:var(--cream);
}

.bg-surface{
  background:var(--surface);
}

.divider{
  height:1px;
  background:var(--border);
}

.eyebrow{
  display:inline-block;
  font-size:10px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:12px;
}

.sec-hd{
  max-width:520px;
}

.sec-hd--c{
  max-width:520px;
  margin:0 auto;
  text-align:center;
}

.sec-hd h2,.sec-hd--c h2{
  margin-bottom:12px;
}

.grid2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
}

.grid3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.grid4{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

/* ── BUTTONS ─────────────────────────────── */
.btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-family:var(--sans);
  font-size:13px;
  font-weight:500;
  border:none;
  cursor:pointer;
  border-radius:8px;
  padding:11px 22px;
  transition:background var(--tr),color var(--tr),box-shadow var(--tr),transform var(--tr);
  text-decoration:none;
}

.btn:hover{
  transform:translateY(-1px);
}

.btn .arr{
  transition:transform var(--tr);
}

.btn:hover .arr{
  transform:translateX(3px);
}

.btn-fill{
  background:var(--orange);
  color:#fff;
  box-shadow:0 2px 8px rgba(224,92,26,.22);
}

.btn-fill:hover{
  background:var(--orange-dk);
  box-shadow:0 6px 20px rgba(224,92,26,.36);
}

.btn-out{
  background:transparent;
  color:var(--text);
  border:1.5px solid var(--border);
}

.btn-out:hover{
  background:var(--text);
  color:#fff;
  border-color:var(--text);
}

.btn-ghost{
  background:transparent;
  color:var(--orange);
  border:1.5px solid var(--orange-br);
}

.btn-ghost:hover{
  background:var(--orange);
  color:#fff;
  border-color:var(--orange);
  box-shadow:0 4px 14px rgba(224,92,26,.28);
}

.btn-sm{
  padding:8px 16px;
  font-size:12px;
}

.btn-link{
  background:none;
  border:none;
  padding:0;
  font-size:14px;
  font-weight:500;
  color:var(--orange);
  display:inline-flex;
  align-items:center;
  gap:5px;
  cursor:pointer;
  font-family:var(--sans);
  transition:gap var(--tr),color var(--tr);
}

.btn-link:hover{
  gap:9px;
  color:var(--orange-dk);
}

/* ── UTIL BAR ────────────────────────────── */
.util{
  background:var(--cream);
  border-bottom:1px solid var(--border);
  padding:6px 0;
}

.util-in{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:12px;
  color:var(--text3);
}

.util a{
  color:var(--text3);
  transition:color var(--tr);
}

.util a:hover{
  color:var(--orange);
}

/* ── NAV ─────────────────────────────────── */
.nav{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:200;
}

.nav-in{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
}

.logo{
  display:flex;
  align-items:center;
  cursor:pointer;
}

.logo img{
  height:46px;
  width:auto;
  display:block;
}

.logo span{
  color:var(--orange);
}

/* ── NAV DROPDOWNS ─────────────────────────── */
.nl-drop{
  position:relative;
}

.nl-dtoggle{
  display:inline-flex;
  align-items:center;
  gap:5px;
}

.caret{
  font-size:14px;
  line-height:1;
  display:inline-block;
  margin-left:1px;
  transition:transform var(--tr);
}

.nl-drop:hover .caret{
  transform:rotate(180deg);
}

.dd-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:250px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 14px 40px rgba(20,14,8,.14);
  padding:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity var(--tr),transform var(--tr),visibility var(--tr);
  z-index:250;
}

/* bridge the gap so hover doesn't drop */
.nl-drop::after{
  content:"";
  position:absolute;
  top:100%;
  left:0;
  right:0;
  height:12px;
}

.nl-drop:hover .dd-menu,
.dd-menu:hover{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.dd-menu--events{
  min-width:220px;
}

.dd-item{
  display:block;
  padding:10px 14px;
  font-size:13px;
  color:var(--text2);
  border-radius:8px;
  cursor:pointer;
  text-decoration:none;
  transition:background var(--tr),color var(--tr);
}

.dd-item:hover{
  background:var(--orange-lt);
  color:var(--orange-dk);
}

.dd-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.dd-badge{
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:3px 9px;
  border-radius:20px;
}

.dd-badge.up{
  color:#2e7d32;
  background:rgba(46,125,50,.12);
}

.dd-badge.past{
  color:var(--text3);
  background:var(--surface);
}

/* offset for sticky nav when jumping to a unit */
.ifc{
  scroll-margin-top:96px;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:30px;
}

.nl{
  font-size:15px;
  font-weight:500;
  color:var(--text);
  padding:6px 0;
  border-radius:0;
  background:none;
  border:none;
  cursor:pointer;
  font-family:var(--sans);
  transition:color var(--tr);
}

.nl:hover{
  background:none;
  color:var(--orange);
}

.nl.on{
  color:var(--orange);
  font-weight:500;
  background:none;
}

/* Edugild link + Apply Now CTA — desktop nav */
/* styled identically to .nl — plain text link, no pill */
.nl-edugild{
  font-size:15px;
  font-weight:500;
  color:var(--text);
  padding:6px 0;
  border-radius:0;
  background:none;
  border:none;
  box-shadow:none;
  cursor:pointer;
  font-family:var(--sans);
  transition:color var(--tr);
}

.nl-edugild:hover{
  background:none;
  box-shadow:none;
  transform:none;
  color:var(--orange);
}

.nl-apply{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:600;
  color:#fff;
  background:var(--orange);
  padding:9px 18px;
  border-radius:50px;
  margin-left:8px;
  box-shadow:0 2px 10px rgba(224,92,26,.24);
  transition:background var(--tr),box-shadow var(--tr),transform var(--tr);
}

.nl-apply:hover{
  background:var(--orange-dk);
  box-shadow:0 6px 18px rgba(224,92,26,.36);
  transform:translateY(-1px);
}

.nl-apply .arr{
  transition:transform var(--tr);
}

.nl-apply:hover .arr{
  transform:translateX(3px);
}

/* Mobile hamburger toggle — hidden on desktop */
.nav-toggle{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:38px;
  height:38px;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
}

.nav-toggle span{
  display:block;
  width:20px;
  height:2px;
  background:var(--text);
  border-radius:2px;
  transition:transform var(--tr),opacity var(--tr);
}

.nav-toggle.active span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2){
  opacity:0;
}

.nav-toggle.active span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* Mobile dropdown panel — hidden on desktop */
.mobile-nav{
  display:none;
  flex-direction:column;
  max-height:0;
  overflow:hidden;
  background:var(--white);
  border-top:1px solid var(--border);
  transition:max-height var(--tr);
}

.mobile-nav.open{
  max-height:1400px;
}

.mnl,.mnl-edugild,.mnl-apply{
  display:block;
  width:100%;
  text-align:left;
  padding:15px 32px;
  font-size:14px;
  font-family:var(--sans);
  color:var(--text2);
  background:none;
  border:none;
  border-bottom:1px solid var(--border-lt);
  cursor:pointer;
}

.mnl.on{
  color:var(--orange);
  font-weight:600;
  background:var(--orange-lt);
}

.mnl-edugild{
  color:var(--text2);
  font-weight:400;
}

.mnl-apply{
  color:#fff;
  background:var(--orange);
  font-weight:600;
  text-align:center;
  border-bottom:none;
}

/* Mobile accordion (Our Units / Events) */
.m-acc-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.m-acc-toggle.open .caret{
  transform:rotate(180deg);
}

.m-acc{
  max-height:0;
  overflow:hidden;
  background:var(--surface);
  transition:max-height var(--tr);
}

.m-acc.open{
  max-height:680px;
}

.m-sub{
  display:block;
  padding:13px 40px;
  font-size:13px;
  color:var(--text2);
  border-bottom:1px solid var(--border-lt);
  text-decoration:none;
  cursor:pointer;
}

.m-sub:hover{
  color:var(--orange);
}

/* ── PAGE ────────────────────────────────── */
.page{
  display:none;
  animation:fadeIn .3s ease;
}

.page.on{
  display:block;
}

@keyframes fadeIn{
  from{
    opacity:0;
    transform:translateY(6px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* ══════════════════════════════════════════
   HOME — HERO
══════════════════════════════════════════ */
.hero{
  padding:14px 18px 0;      /* side gaps around the rounded box */
  background:transparent;
}

.hero-video-wrap{
  position:relative;
  width:100%;
  /* cap width so the 16:9 box height fits under the nav in one screen */
  max-width:calc((100vh - 110px) * 1.7778);
  margin:0 auto;
  aspect-ratio:16 / 9;      /* keep the whole video, no cropping */
  overflow:hidden;
  border-radius:24px;
  background:#0f0d0b;
  opacity:1;
  pointer-events:none;
}
.hero-video-wrap video{
  position:absolute;
  object-position:center;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  border:none;
  pointer-events:none;
}

@media(max-width:600px){
  .hero{
    padding:10px 12px 0;
  }
  .hero-video-wrap{
    border-radius:16px;
  }
}

.hero-ov{
  position:absolute;
  inset:0;
  background:
    radial-gradient(115% 85% at 50% 48%, rgba(10,8,6,.06) 0%, rgba(10,8,6,.32) 100%),
    linear-gradient(180deg, rgba(10,8,6,.28) 0%, rgba(10,8,6,.14) 45%, rgba(10,8,6,.5) 100%);
}

.hero-body{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:700px;
  padding:0 24px;
}

.hero-tag{
  font-size:10px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.45);
  margin-bottom:22px;
  display:block;
}

.hero-body h1{
  font-family:var(--serif);
  font-size:clamp(26px,3vw,40px);
  font-weight:500;
  font-style:italic;
  color:#fff;
  line-height:1.3;
  margin-bottom:14px;
}

.hero-body h1 em{
  font-style:normal;
  color:#E8976A;
}

.hero-body p{
  font-size:14px;
  color:rgba(255,255,255,.48);
  letter-spacing:.04em;
  margin:0;
}

.hero-cta{
  margin-top:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

.hero-cta-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#fff;
  color:var(--text);
  font-size:13px;
  font-weight:500;
  letter-spacing:.01em;
  padding:11px 22px;
  border-radius:8px;
  transition:background var(--tr),color var(--tr),box-shadow var(--tr),transform var(--tr);
}

.hero-cta-btn:hover{
  background:var(--orange);
  color:#fff;
  box-shadow:0 6px 20px rgba(224,92,26,.36);
  transform:translateY(-1px);
}

.hero-scroll{
  position:absolute;
  bottom:28px;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}

.hero-scroll span{
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.3);
}

.scr-line{
  width:1px;
  height:36px;
  background:linear-gradient(to bottom,rgba(255,255,255,.35),transparent);
  animation:scrl 2s ease-in-out infinite;
}

@keyframes scrl{
  0%,100%{
    opacity:.4;
  }
  50%{
    opacity:.9;
  }
}

/* ══════════════════════════════════════════
   HOME — LEADERSHIP
══════════════════════════════════════════ */
.leader-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:44px;
}

.ldr{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:32px 24px;
  text-align:center;
  transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
}

.ldr:hover{
  box-shadow:var(--sh-md);
  transform:translateY(-3px);
  border-color:var(--orange-br);
}
/* 
.ldr-av{
  width:76px;
  height:76px;
  border-radius:50%;
  margin:0 auto 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--serif);
  font-size:24px;
  font-weight:600;
} */

.ldr-av{
  width:100px;
  height:100px;
  border-radius:50%;
  margin:0 auto 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--serif);
  font-size:24px;
  font-weight:600;
  overflow:hidden;      /* add: clips img to the circle */
}

.ldr-av img{
  width:100%;
  height:100%;
  object-fit:cover;     /* fills circle without distorting */
  display:block;
}

.ldr h3{
  font-size:18px;
  margin-bottom:4px;
}

.ldr .role{
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:12px;
  display:block;
}

.ldr p{
  font-size:13px;
  line-height:1.7;
}


/* ══════════════════════════════════════════
   STATS STRIP
══════════════════════════════════════════ */
.strip{
  background:var(--orange);
  padding:34px 0;
}

.strip-in{
  display:flex;
  justify-content:space-around;
  flex-wrap:wrap;
  gap:16px;
}

.stat{
  text-align:center;
  color:#fff;
}

.stat-n{
  font-family:var(--serif);
  font-size:36px;
  font-weight:700;
  line-height:1;
}

.stat-l{
  font-size:10px;
  font-weight:500;
  opacity:.75;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-top:4px;
}

/* ══════════════════════════════════════════
   HOME — INSTITUTIONS
══════════════════════════════════════════ */
.inst-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;   /* centers a partial last row */
  gap:18px;
  margin-top:44px;
}

.ic{
  flex:0 1 calc((100% - 54px) / 4);   /* 4 per row */
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
}

@media(max-width:1024px){
  .ic{ flex-basis:calc((100% - 18px) / 2); }   /* 2 per row */
}

@media(max-width:480px){
  .ic{ flex-basis:100%; }                       /* 1 per row */
}

.ic:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-4px);
  border-color:transparent;
}

.ic-img{
  position:relative;
  height:148px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  background:var(--surface);
  overflow:hidden;
}

.ic-img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ic-img-icon{
  font-size:11px;
  color:var(--text3);
  letter-spacing:.08em;
}

.ic-img-lbl{
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text3);
}

/* label sits as a caption over the photo */
.ic-img.has-photo .ic-img-lbl{
  position:absolute;
  left:12px;
  bottom:10px;
  z-index:2;
  color:#fff;
  text-shadow:0 1px 6px rgba(0,0,0,.75);
}

.ic-img.has-photo::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.55) 100%);
}

.ic-body{
  padding:18px;
}

.ic-loc{
  font-size:10px;
  font-weight:500;
  color:var(--text3);
  margin-bottom:5px;
  display:flex;
  align-items:center;
  gap:3px;
}

.ic h4{
  font-family:var(--serif);
  font-size:15px;
  font-weight:600;
  margin-bottom:7px;
  line-height:1.3;
}

.ic p{
  font-size:12px;
  line-height:1.65;
}

.ic-lnk{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:12px;
  font-size:12px;
  font-weight:500;
  color:var(--orange);
  transition:gap var(--tr);
}

.ic-lnk:hover{
  gap:8px;
}

/* ══════════════════════════════════════════
   HOME — EDUGILD TEASER
══════════════════════════════════════════ */
.edu-tease{
  max-width:600px;
  margin:0 auto;
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:48px 52px;
  text-align:center;
  transition:box-shadow var(--tr),border-color var(--tr);
}

.edu-tease:hover{
  box-shadow:var(--sh-md);
  border-color:var(--orange-br);
}

.edu-tease h2{
  font-size:26px;
  margin-bottom:8px;
}

.edu-tease p{
  font-size:14px;
  margin-bottom:20px;
}

/* Stacked (image-on-top, content below) variant of the Edugild teaser card
   — matches the .ic institution-card spacing exactly: 148px photo, 18px
   body padding, same caption-overlay treatment. */
.edu-tease--stacked{
  max-width:420px;
  padding:0;
  overflow:hidden;
  text-align:center;
}

.edu-tease-img{
  position:relative;
  height:148px;
  overflow:hidden;
}

.edu-tease-img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.edu-tease-img::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.55) 100%);
}

.edu-tease-lbl{
  position:absolute;
  left:12px;
  bottom:10px;
  z-index:2;
  font-size:9px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 1px 6px rgba(0,0,0,.75);
}

.edu-tease-body{
  padding:18px;
}

.edu-tease-body .edu-logo{
  height:24px;
  width:auto;
  max-width:140px;
  display:block;
  margin:0 auto 12px;
}

@media(max-width:480px){
  .edu-tease--stacked{
    max-width:100%;
  }
}

/* ── Edugild hero section (home) ── */
.edu-hero{
  text-align:center;
  max-width:1000px;
  margin:0 auto;
}

.edu-hero-title{
  font-family:var(--serif);
  font-size:clamp(40px,5.5vw,66px);
  font-weight:600;
  color:#1f2a63;
  line-height:1.1;
  margin-bottom:16px;
}

.edu-hero-sub{
  font-family:var(--serif);
  font-size:clamp(22px,3vw,34px);
  font-weight:600;
  color:var(--text);
  margin-bottom:14px;
}

.edu-hero-lede{
  font-family:var(--sans);
  font-size:15px;
  font-weight:400;
  color:var(--text2);
  max-width:560px;
  margin:0 auto 34px;
  line-height:1.8;
}

.edu-hero-media{
  position:relative;
  border-radius:22px;
  overflow:hidden;
}

.edu-hero-media img{
  width:100%;
  height:auto;
  display:block;
}

.edu-hero-cta{
  position:absolute;
  left:50%;
  bottom:30px;
  transform:translateX(-50%);
  white-space:nowrap;
}

/* no animation on this button (keep it centered, no lift/arrow slide) */
.edu-hero-cta,
.edu-hero-cta:hover{
  transform:translateX(-50%);
}

.edu-hero-cta:hover .arr{
  transform:none;
}


@media(max-width:600px){
  .edu-hero-title{
    font-size:34px;
  }
  .edu-hero-sub{
    font-size:20px;
  }
  .edu-hero-lede{
    font-size:15px;
    margin-bottom:22px;
  }
  .edu-hero-media{
    border-radius:16px;
  }
  /* button drops below the image on mobile (no overlay, no offset) */
  .edu-hero-cta,
  .edu-hero-cta:hover{
    position:static;
    transform:none;
    display:flex;
    justify-content:center;
    width:100%;
    margin-top:16px;
    padding:14px 18px;
    font-size:13px;
    white-space:normal;
    text-align:center;
  }
}

/* ══════════════════════════════════════════
   HOME — EVENTS
══════════════════════════════════════════ */
.events-row{
  display:grid;
  grid-template-columns:360px 1fr;
  gap:40px;
  margin-top:48px;
  align-items:start;
}

/* India Map */
.map-wrap{
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:28px 24px;
}

.map-title{
  font-family:var(--serif);
  font-size:16px;
  font-weight:600;
  margin-bottom:2px;
}

.map-sub{
  font-size:11px;
  color:var(--text3);
  margin-bottom:16px;
}

.map-legend{
  display:flex;
  gap:14px;
  margin-top:14px;
  flex-wrap:wrap;
}

.leg-item{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  color:var(--text2);
}

.leg-dot{
  width:9px;
  height:9px;
  border-radius:50%;
}

.leg-dot.done{
  background:var(--orange);
}

.leg-dot.soon{
  background:#fff;
  border:2px solid var(--orange);
}

/* SVG city pulse */
@keyframes ping{
  0%{
    r:6;
    opacity:.6;
  }
  100%{
    r:16;
    opacity:0;
  }
}

.city-ping{
  animation:ping 1.8s ease-out infinite;
}

/* pulsing ring overlaid on the India map PNG (Delhi = coming soon) */
.map-img-wrap{
  position:relative;
  max-width:380px;
  margin:0 auto;
}

.map-ping{
  position:absolute;
  width:10px;
  height:10px;
  margin:-5px 0 0 -5px;
  border-radius:50%;
  background:transparent;
  animation:mapPing 1.6s ease-out infinite;
  pointer-events:none;
}

@keyframes mapPing{
  0%{
    box-shadow:0 0 0 2px rgba(224,92,26,.6);
    opacity:1;
  }
  100%{
    box-shadow:0 0 0 15px rgba(224,92,26,0);
    opacity:0;
  }
}

/* Upcoming event cards */
.ev-cards{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.ev-card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  transition:box-shadow var(--tr),transform var(--tr);
}

.ev-card:hover{
  box-shadow:var(--sh-md);
  transform:translateY(-2px);
}

.ev-card-img{
  height:110px;
  background:var(--surface);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  overflow:hidden;
  position:relative;
}

.ev-card-img.has-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:left center;
  display:block;
}

.ev-card-body{
  padding:16px 18px;
}

.ev-badge{
  display:inline-block;
  background:var(--orange-lt);
  color:var(--orange);
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:3px 10px;
  border-radius:50px;
  margin-bottom:6px;
}

.ev-card h4{
  font-family:var(--serif);
  font-size:15px;
  font-weight:600;
  margin-bottom:3px;
}

.ev-card p{
  font-size:12px;
}

.ev-card .ev-date{
  font-size:11px;
  color:var(--text3);
  margin-top:6px;
}

/* Past events section */
.past-title{
  font-family:var(--serif);
  font-size:20px;
  font-weight:500;
  margin:56px 0 24px;
  padding-top:40px;
  border-top:1px solid var(--border);
}

.vid-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.vc{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  cursor:pointer;
  transition:box-shadow var(--tr),transform var(--tr);
}

.vc:hover{
  box-shadow:var(--sh-md);
  transform:translateY(-3px);
}

.vc-thumb{
  height:158px;
  background:var(--surface);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.vc-thumb iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

.vc-play{
  width:34px;
  height:34px;
  background:var(--orange);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:11px;
  box-shadow:0 3px 12px rgba(224,92,26,.4);
  transition:transform var(--tr),box-shadow var(--tr);
}

.vc:hover .vc-play{
  transform:scale(1.12);
  box-shadow:0 5px 18px rgba(224,92,26,.55);
}

.vc-body{
  padding:12px 14px;
}

.vc h5{
  font-size:12px;
  font-weight:600;
  margin-bottom:3px;
  line-height:1.4;
}

.vc p{
  font-size:11px;
}

/* ══════════════════════════════════════════
   ABOUT PAGE
══════════════════════════════════════════ */
.about-hero{
  padding:80px 0 56px;
  border-bottom:1px solid var(--border);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}

.about-hero h1{
  margin-bottom:14px;
}

.about-hero p{
  font-size:17px;
  max-width:560px;
}

.about-hero-img img{
  width:100%;
  height:auto;
  display:block;
}

.about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
}

.about-block h3{
  margin-bottom:12px;
}

.about-block p{
  margin-bottom:10px;
}

.vals{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}

.vtag{
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:50px;
  padding:6px 14px;
  font-size:12px;
  font-weight:500;
  color:var(--text2);
  transition:background var(--tr),color var(--tr),border-color var(--tr);
  cursor:default;
}

.vtag:hover{
  background:var(--orange);
  color:#fff;
  border-color:var(--orange);
}

.about-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:40px;
}

.a-stat{
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:20px;
  text-align:center;
  transition:border-color var(--tr),box-shadow var(--tr);
}

.a-stat:hover{
  border-color:var(--orange-br);
  box-shadow:var(--sh);
}

.a-stat-n{
  font-family:var(--serif);
  font-size:30px;
  font-weight:700;
  color:var(--orange);
  line-height:1;
}

.a-stat-l{
  font-size:11px;
  color:var(--text3);
  margin-top:3px;
}

.quote-block{
  background:var(--orange-lt);
  border-left:3px solid var(--orange);
  border-radius:0 8px 8px 0;
  padding:22px 26px;
  margin:32px 0;
}

.quote-block blockquote{
  font-family:var(--serif);
  font-size:18px;
  font-style:italic;
  color:var(--text);
  line-height:1.55;
}

.quote-block cite{
  font-size:11px;
  color:var(--text3);
  display:block;
  margin-top:8px;
  font-style:normal;
}

/* ══════════════════════════════════════════
   INSTITUTIONS PAGE
══════════════════════════════════════════ */
.inst-page-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
  margin-top:44px;
}

.ipc{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  display:grid;
  grid-template-columns:200px 1fr;
  transition:box-shadow var(--tr),transform var(--tr);
}

.ipc:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-3px);
}

.ipc-img{
  height:100%;
  min-height:180px;
  background:var(--surface);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
}

.ipc-img span{
  font-size:10px;
  letter-spacing:.1em;
  color:var(--text3);
  text-transform:uppercase;
}

.ipc-body{
  padding:24px;
}

.ipc-loc{
  font-size:10px;
  font-weight:500;
  color:var(--text3);
  margin-bottom:4px;
}

.ipc h3{
  font-size:17px;
  margin-bottom:8px;
}

.ipc p{
  font-size:13px;
  margin-bottom:14px;
}

.ipc-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.itag{
  background:var(--surface);
  border-radius:50px;
  padding:3px 10px;
  font-size:11px;
  color:var(--text2);
}

/* ══════════════════════════════════════════
   EDUGILD PAGE
══════════════════════════════════════════ */
.edu-hero h1{
  margin-bottom:14px;
}

.edu-hero p{
  font-size:17px;
  max-width:560px;
}

.edu-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:48px;
}

.edu-step{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:28px;
  transition:border-color var(--tr),box-shadow var(--tr);
}

.edu-step:hover{
  border-color:var(--orange-br);
  box-shadow:var(--sh);
}

.step-n{
  font-size:11px;
  font-weight:700;
  color:var(--orange);
  letter-spacing:.1em;
  margin-bottom:10px;
}

.edu-step h4{
  font-size:15px;
  font-weight:600;
  margin-bottom:8px;
}

.edu-step p{
  font-size:13px;
}

.pillars{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:40px;
}

.pil{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:20px;
  transition:border-color var(--tr),box-shadow var(--tr);
}

.pil:hover{
  border-color:var(--orange-br);
  box-shadow:var(--sh);
}

.pil-n{
  font-size:10px;
  font-weight:700;
  color:var(--orange);
  margin-bottom:7px;
  letter-spacing:.08em;
}

.pil h4{
  font-size:13px;
  font-weight:600;
  margin-bottom:3px;
}

.pil p{
  font-size:12px;
}

.startup-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:32px;
}

.su-card{
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:22px;
  transition:box-shadow var(--tr),border-color var(--tr);
}

.su-card:hover{
  box-shadow:var(--sh-md);
  border-color:var(--orange-br);
}

.su-card h4{
  font-size:14px;
  font-weight:600;
  margin-bottom:3px;
}

.su-card .founder{
  font-size:11px;
  color:var(--text3);
  margin-bottom:8px;
}

.su-card p{
  font-size:13px;
}

/* ══════════════════════════════════════════
   LEADERSHIP PAGE
══════════════════════════════════════════ */
.ldr-full{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:48px;
  padding:52px 0;
  border-bottom:1px solid var(--border);
  align-items:start;
}

.ldr-full:last-child{
  border:none;
}

.ldr-full-av{
  width:140px;
  height:140px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--serif);
  font-size:44px;
  font-weight:600;
  margin-bottom:18px;
  overflow:hidden;
}

.ldr-full-av img{
  width:100%;
  height:100%;
  border-radius:50%;
  object-fit:cover;
  display:block;
}

.ldr-full h2{
  font-size:26px;
  margin-bottom:4px;
}

.ldr-full .role{
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--orange);
  display:block;
  margin-bottom:14px;
}

.ldr-full p{
  font-size:15px;
  margin-bottom:10px;
}

.ldr-quote{
  background:var(--orange-lt);
  border-left:3px solid var(--orange);
  border-radius:0 8px 8px 0;
  padding:18px 22px;
  margin-top:18px;
}

.ldr-quote blockquote{
  font-family:var(--serif);
  font-size:16px;
  font-style:italic;
  color:var(--text);
  line-height:1.6;
}

/* ══════════════════════════════════════════
   CAMPUSES PAGE
══════════════════════════════════════════ */
.campus-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:44px;
}

.camp{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  transition:box-shadow var(--tr),transform var(--tr);
}

.camp:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-3px);
}

.camp-img{
  height:190px;
  background:var(--surface);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
}

.camp-img span{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);
}

.camp-body{
  padding:22px;
}

.camp-city{
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:4px;
}

.camp-body h3{
  font-size:19px;
  margin-bottom:8px;
}

.camp-body p{
  font-size:13px;
  margin-bottom:14px;
}

.camp-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.ctag{
  background:var(--surface);
  border-radius:50px;
  padding:4px 10px;
  font-size:11px;
  color:var(--text2);
}

/* ══════════════════════════════════════════
   EVENTS PAGE
══════════════════════════════════════════ */
.events-pg{
  display:grid;
  grid-template-columns:1fr 400px;
  gap:48px;
  align-items:start;
  margin-top:44px;
}

.ev-upcoming-list{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.ev-up{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:26px;
  transition:box-shadow var(--tr),border-color var(--tr);
}

.ev-up:hover{
  box-shadow:var(--sh-md);
  border-color:var(--orange-br);
}

.ev-up h3{
  font-size:20px;
  margin-bottom:4px;
}

.ev-up .meta{
  font-size:12px;
  color:var(--text3);
  margin-bottom:10px;
}

.ev-up p{
  font-size:14px;
  margin-bottom:14px;
}

.ev-past-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:48px;
}

.ev-past-card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  cursor:pointer;
  transition:box-shadow var(--tr),transform var(--tr);
}

.ev-past-card:hover{
  box-shadow:var(--sh-md);
  transform:translateY(-2px);
}

.ep-thumb{
  height:90px;
  background:var(--surface);
  display:flex;
  align-items:center;
  justify-content:center;
}

.ep-play{
  width:30px;
  height:30px;
  background:var(--orange);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:10px;
  transition:transform var(--tr);
}

.ev-past-card:hover .ep-play{
  transform:scale(1.15);
}

.ep-body{
  padding:12px 14px;
}

.ep-body h5{
  font-size:12px;
  font-weight:600;
  margin-bottom:2px;
}

.ep-body p{
  font-size:11px;
}

/* ══════════════════════════════════════════
   CONTACT PAGE
══════════════════════════════════════════ */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
  margin-top:56px;
}

.contact-info h3{
  font-size:22px;
  margin-bottom:14px;
}

.contact-info p{
  margin-bottom:8px;
}

.c-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
}

.c-icon{
  color:var(--orange);
  font-size:15px;
  margin-top:1px;
  flex-shrink:0;
}

.c-form{
  background:var(--cream);
  border-radius:var(--r-lg);
  padding:36px;
}

.fg{
  margin-bottom:18px;
}

.fg label{
  display:block;
  font-size:12px;
  font-weight:500;
  margin-bottom:5px;
}

.fg input,.fg textarea,.fg select{
  width:100%;
  padding:10px 14px;
  font-size:14px;
  font-family:var(--sans);
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:8px;
  color:var(--text);
  outline:none;
  transition:border-color var(--tr);
}

.fg input:focus,.fg textarea:focus,.fg select:focus{
  border-color:var(--orange);
}

.fg textarea{
  height:110px;
  resize:vertical;
}

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
footer{
  background:var(--cream);
  border-top:1px solid var(--border);
  padding:52px 0 24px;
}

/* keep breathing room only under the contact form */
#page-contact{
  padding-bottom:72px;
}

.ft-grid{
  display:grid;
  grid-template-columns:200px 1fr 1fr 1fr;
  gap:40px;
  margin-bottom:36px;
}

.ft-logo{
  margin-bottom:12px;
}

.ft-logo img{
  height:42px;
  width:auto;
  display:block;
}

.ft-logo span{
  color:var(--orange);
}

/* footer social icons (brand images) */
.socs{
  display:flex;
  gap:12px;
  align-items:center;
}

.soc-ic{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:transform var(--tr),opacity var(--tr);
}

.soc-ic img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.soc-ic:hover{
  transform:translateY(-2px);
  opacity:.85;
}

.ft-brand p{
  font-size:12px;
  color:var(--text3);
  line-height:1.8;
}

.ft-col h5{
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);
  margin-bottom:12px;
}

.ft-col a{
  display:block;
  font-size:12px;
  color:var(--text2);
  line-height:2.3;
  transition:color var(--tr);
}

.ft-col a:hover{
  color:var(--orange);
}

.ft-bot{
  border-top:1px solid var(--border);
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}

.ft-bot p{
  font-size:11px;
  color:var(--text3);
}

.socs{
  display:flex;
  gap:7px;
}

.soc{
  width:30px;
  height:30px;
  border-radius:7px;
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  color:var(--text2);
  text-decoration:none;
  transition:background var(--tr),color var(--tr),border-color var(--tr);
}

.soc:hover{
  background:var(--orange);
  color:#fff;
  border-color:var(--orange);
}

/* ── JOURNEY TIMELINE ──────────────── */
.tl-scroll-wrap{
  overflow-x:auto;
  padding-bottom:14px;
  -webkit-overflow-scrolling:touch;
  cursor:grab;
}

.tl-scroll-wrap::-webkit-scrollbar{
  height:3px;
}

.tl-scroll-wrap::-webkit-scrollbar-track{
  background:var(--border);
}

.tl-scroll-wrap::-webkit-scrollbar-thumb{
  background:var(--orange-br);
  border-radius:2px;
}

.tl-track-main{
  display:flex;
  min-width:max-content;
  gap:0;
}

.tl-era-m{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:195px;
  padding-right:18px;
}

.tl-era-m:last-child{
  padding-right:0;
  min-width:110px;
}

.tl-line-m{
  display:flex;
  align-items:center;
  margin-bottom:14px;
  width:100%;
}

.tl-dot-m{
  width:11px;
  height:11px;
  border-radius:50%;
  background:var(--orange);
  flex-shrink:0;
  z-index:1;
}

.tl-dot-m.now{
  box-shadow:0 0 0 4px var(--orange-lt);
}

.tl-dash-m{
  flex:1;
  height:1px;
  background:var(--border);
}

.tl-era-m:last-child .tl-dash-m{
  display:none;
}

.tl-year-m{
  font-family:var(--serif);
  font-size:20px;
  font-weight:700;
  color:var(--orange);
  margin-bottom:8px;
}

.tl-insts{
  list-style:none;
  padding:0;
}

.tl-insts li{
  font-size:11.5px;
  color:var(--text2);
  line-height:1.85;
  padding-left:10px;
  position:relative;
}

.tl-insts li::before{
  content:'·';
  position:absolute;
  left:0;
  color:var(--orange-br);
}

.tl-insts .key{
  font-weight:600;
  color:var(--text);
}

/* ── INSTITUTION FULL CARDS ─────────── */
.inst-full-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  margin-top:44px;
}

.ifc{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  transition:box-shadow var(--tr),transform var(--tr);
}

.ifc:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-3px);
}

.ifc-head{
  display:flex;
  align-items:center;
  gap:13px;
  padding:13px 16px;
  border-bottom:1px solid var(--border);
  background:var(--cream);
}

.ifc-logo{
  width:auto;
  min-width:64px;
  max-width:180px;
  height:58px;
  border-radius:10px;
  background:#fff;
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  flex-shrink:0;
  overflow:hidden;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}

.ifc-logo img{
  width:auto;
  max-width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.ifc-head-text .ifc-loc{
  font-size:10px;
  color:var(--text3);
  margin-bottom:2px;
}

.ifc-head-text h3{
  font-family:var(--serif);
  font-size:15px;
  font-weight:600;
  line-height:1.25;
  margin:0;
}

.ifc-photo{
  position:relative;
  height:148px;
  background:var(--surface);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  color:var(--text3);
  letter-spacing:.08em;
  border-bottom:1px solid var(--border);
  overflow:hidden;
}

.ifc-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ifc-body{
  padding:18px;
}

.ifc-body p{
  font-size:13px;
  color:var(--text2);
  margin-bottom:14px;
  line-height:1.75;
}

.ifc-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid var(--border-lt);
}

.ifc-tags{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}

.itag-sm{
  background:var(--surface);
  border-radius:50px;
  padding:3px 9px;
  font-size:10px;
  color:var(--text2);
}

/* ── CAROUSEL ───────────────────────── */
.ev-car{
  position:relative;
  overflow:hidden;
  background:var(--white);
  border-bottom:1px solid var(--border);
}

.ev-slides{
  display:flex;
  transition:transform .55s cubic-bezier(.4,0,.2,1);
}

.ev-slide{
  min-width:100%;
  padding:64px 0 36px;
}

.ev-slide-in{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}

.ev-slide-text h1{
  margin-bottom:14px;
}

.ev-slide-text p{
  margin-bottom:24px;
  font-size:15px;
}

.ev-slide-img{
  background:var(--surface);
  border-radius:var(--r-lg);
  height:270px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
}

.ev-dots{
  display:flex;
  justify-content:center;
  gap:7px;
  padding:14px 0;
  background:var(--white);
  border-top:1px solid var(--border);
}

.ev-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--border);
  border:none;
  cursor:pointer;
  transition:background var(--tr),transform var(--tr);
  padding:0;
}

.ev-dot.on{
  background:var(--orange);
  transform:scale(1.3);
}

.ev-arr{
  position:absolute;
  top:46%;
  transform:translateY(-50%);
  background:rgba(255,255,255,.92);
  border:1.5px solid var(--border);
  border-radius:50%;
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:14px;
  color:var(--text2);
  transition:background var(--tr),color var(--tr),border-color var(--tr);
  z-index:5;
}

.ev-arr:hover{
  background:var(--orange);
  color:#fff;
  border-color:var(--orange);
}

.ev-arr-l{
  left:16px;
}
.ev-arr-r{
  right:16px;
}

/* ── MAP + REG CARDS ────────────────── */
.map-reg{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:32px;
  align-items:start;
}

.reg-cards{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.reg-card{
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--r);
  padding:26px;
  transition:box-shadow var(--tr),border-color var(--tr);
}

.reg-card:hover{
  box-shadow:var(--sh-md);
  border-color:var(--orange-br);
}

.reg-card .rc-tag{
  display:inline-block;
  background:var(--orange-lt);
  color:var(--orange);
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:3px 10px;
  border-radius:50px;
  margin-bottom:9px;
}

.reg-card h3{
  font-family:var(--serif);
  font-size:19px;
  margin-bottom:5px;
  font-weight:600;
}

/* ── VERTICAL CARDS ─────────────────── */
.vert-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:40px;
}

.vc-ev{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:26px;
  transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
  display:flex;
  flex-direction:column;
}

.vc-ev:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-3px);
  border-color:transparent;
}

.vc-num{
  font-size:10px;
  font-weight:700;
  color:var(--orange);
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:6px;
}

.vc-ev h3{
  font-family:var(--serif);
  font-size:17px;
  margin-bottom:5px;
  font-weight:600;
}

.vc-theme{
  font-size:11.5px;
  font-style:italic;
  color:var(--text3);
  margin-bottom:12px;
  line-height:1.5;
}

.vc-ev p{
  font-size:12.5px;
  line-height:1.8;
  color:var(--text2);
  flex:1;
}

.vc-contact{
  margin-top:16px;
  padding-top:13px;
  border-top:1px solid var(--border-lt);
}

.vc-contact-name{
  font-size:11px;
  font-weight:600;
  color:var(--text);
  margin-bottom:3px;
}

.vc-contact a{
  font-size:12px;
  color:var(--orange);
  display:block;
  line-height:1.9;
  text-decoration:none;
  transition:color var(--tr);
}

.vc-contact a:hover{
  color:var(--orange-dk);
  text-decoration:underline;
}

/* ── OUTCOME TAGS ───────────────────── */
.outcome-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:24px;
  justify-content:center;
}

.otag{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:50px;
  padding:7px 16px;
  font-size:12px;
  color:var(--text2);
  cursor:default;
  transition:background var(--tr),color var(--tr),border-color var(--tr);
}

.otag:hover{
  background:var(--orange);
  color:#fff;
  border-color:var(--orange);
}

/* ── CHIEF GUEST ────────────────────── */
.cg-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:32px;
}

.cg-card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:28px;
  text-align:center;
  transition:box-shadow var(--tr),transform var(--tr);
}

.cg-card:hover{
  box-shadow:var(--sh-md);
  transform:translateY(-2px);
}

.cg-av{
  width:84px;
  height:84px;
  border-radius:50%;
  background:var(--surface);
  margin:0 auto 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:var(--text3);
  border:1px solid var(--border);
}

.cg-card h4{
  font-family:var(--serif);
  font-size:17px;
  font-weight:600;
  margin-bottom:4px;
}

.cg-card .cg-role{
  font-size:11px;
  color:var(--text3);
  line-height:1.6;
}

.cg-badge{
  display:inline-block;
  background:var(--orange-lt);
  color:var(--orange);
  font-size:9px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:3px 10px;
  border-radius:50px;
  margin-bottom:12px;
}

/* ── COLLABORATORS ──────────────────── */
.collab-grid{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
  margin-top:32px;
}

.collab-logo{
  width:130px;
  height:58px;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  color:var(--text3);
  letter-spacing:.06em;
  transition:border-color var(--tr),box-shadow var(--tr);
}

.collab-logo:hover{
  border-color:var(--orange-br);
  box-shadow:var(--sh);
}

/* ── EVENTS HERO 2-COL ──────────────── */
.ev-hero-2col{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:92vh;
  align-items:stretch;
}

.ev-hero-left{
  background:linear-gradient(160deg,#1C1915 0%,#2A2218 100%);
  padding:80px 56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.ev-hero-left::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 70% 25%,rgba(224,92,26,.14) 0%,transparent 60%);
  pointer-events:none;
}

.ev-hero-left h1{
  color:#fff;
  line-height:1.15;
  margin-bottom:18px;
}

.ev-hero-left .eyebrow{
  color:var(--orange);
}

.ev-hero-left p{
  color:rgba(255,255,255,.68);
  max-width:400px;
  line-height:1.7;
}

.ev-hero-stats{
  display:flex;
  gap:28px;
  margin-top:36px;
  flex-wrap:wrap;
}

.ev-hs{
  border-left:2px solid var(--orange);
  padding-left:14px;
}

.ev-hs-n{
  font-family:var(--serif);
  font-size:26px;
  font-weight:700;
  color:#fff;
  line-height:1.1;
}

.ev-hs-l{
  font-size:11px;
  color:rgba(255,255,255,.45);
  margin-top:3px;
}

.ev-meta{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-top:28px;
}

.ev-meta-item{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  color:rgba(255,255,255,.6);
}

.ev-meta-item strong{
  color:#fff;
}

/* Registration form panel */
.ev-hero-right{
  background:var(--white);
  padding:52px 52px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-left:1px solid var(--border);
}

.ev-hero-right h3{
  font-family:var(--serif);
  font-size:24px;
  margin-bottom:5px;
}

.ev-form-sub{
  font-size:13px;
  color:var(--text3);
  margin-bottom:26px;
}

.rf-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.fg{
  margin-bottom:14px;
}

.fg label{
  display:block;
  font-size:10px;
  font-weight:600;
  color:var(--text3);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:5px;
}

.fg input,.fg select{
  width:100%;
  border:1.5px solid var(--border);
  border-radius:7px;
  padding:10px 13px;
  font-family:var(--sans);
  font-size:14px;
  color:var(--text);
  background:var(--white);
  transition:border-color var(--tr);
  appearance:none;
}

.fg input:focus,.fg select:focus{
  outline:none;
  border-color:var(--orange);
}

.track-opts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:16px;
}

.track-btn{
  padding:12px 10px;
  border:1.5px solid var(--border);
  border-radius:8px;
  background:var(--white);
  cursor:pointer;
  font-family:var(--sans);
  font-size:12px;
  font-weight:500;
  color:var(--text2);
  text-align:center;
  transition:all var(--tr);
  line-height:1.4;
}

.track-btn:hover{
  border-color:var(--orange-br);
  background:var(--orange-lt);
}

.track-btn.active{
  border-color:var(--orange);
  background:var(--orange-lt);
  color:var(--orange);
}

.cond-fields{
  display:none;
}

.form-note{
  font-size:11px;
  color:var(--text3);
  margin-bottom:12px;
  padding:8px 10px;
  background:var(--surface);
  border-radius:6px;
  border-left:3px solid var(--orange);
}

.form-note strong{
  color:var(--orange);
}

.reg-thanks{
  display:none;
  text-align:center;
  padding:32px 0;
}

.reg-thanks .ty-icon{
  font-size:40px;
  margin-bottom:16px;
}

.reg-thanks h3{
  font-family:var(--serif);
  font-size:24px;
  margin-bottom:10px;
}

.reg-thanks p{
  color:var(--text2);
  margin-bottom:6px;
  font-size:14px;
}

.reg-thanks a{
  color:var(--orange);
  font-weight:600;
}

/* Partners strip */
.ev-partners-strip{
  padding:48px 0;
  border-bottom:1px solid var(--border);
}

.ev-part-lbl{
  font-size:9px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--text3);
  text-align:center;
  margin-bottom:28px;
}

.ev-part-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:0;
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
}

.ev-part-col{
  padding:22px 28px;
  background:var(--white);
  border-right:1px solid var(--border);
}

.ev-part-col:last-child{
  border-right:none;
}

.ev-part-col-name{
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border-lt);
}

.ev-part-logos{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.ev-part-logo{
  height:44px;
  min-width:88px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  color:var(--text3);
  padding:0 12px;
}

/* Agenda accordion */
.ag-list{
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  margin-top:36px;
}

.ag-item{
  border-bottom:1px solid var(--border);
}

.ag-item:last-child{
  border-bottom:none;
}

.ag-head{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 24px;
  cursor:pointer;
  background:var(--white);
  transition:background var(--tr);
  user-select:none;
}

.ag-head:hover,.ag-item.open .ag-head{
  background:var(--orange-lt);
}

.ag-num{
  font-size:9px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--text3);
  text-transform:uppercase;
  min-width:68px;
}

.ag-title{
  flex:1;
}

.ag-title h4{
  font-size:15px;
  font-weight:600;
  margin-bottom:2px;
  font-family:var(--serif);
}

.ag-title p{
  font-size:11.5px;
  color:var(--text3);
}

.ag-chev{
  font-size:22px;
  font-weight:300;
  color:var(--text3);
  min-width:24px;
  text-align:center;
  line-height:1;
  transition:transform var(--tr),color var(--tr);
}

.ag-item.open .ag-chev{
  transform:rotate(45deg);
  color:var(--orange);
}

.ag-body{
  display:none;
  padding:22px 24px 26px;
  background:var(--cream);
  border-top:1px solid var(--border-lt);
}

.ag-body-in{
  display:grid;
  grid-template-columns:1fr 180px;
  gap:24px;
  align-items:start;
}

.ag-body-in p{
  font-size:13.5px;
  color:var(--text2);
  line-height:1.75;
}

.ag-contact{
  text-align:right;
}

.ag-contact-lbl{
  font-size:10px;
  color:var(--text3);
  margin-bottom:4px;
}

.ag-contact-name{
  font-size:13px;
  font-weight:600;
  color:var(--text);
  margin-bottom:4px;
}

.ag-contact a{
  color:var(--orange);
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}

/* Past highlights — dark */
.ev-past-dark{
  background:#1A1714;
  padding:88px 0;
}

.ev-past-dark .eyebrow{
  color:var(--orange);
}

.ev-past-dark h2{
  color:#fff;
}

.ev-past-dark h2 em{
  color:var(--orange);
}

.ev-past-dark .sec-hd--c p{
  color:rgba(255,255,255,.45);
}

.ep-dark-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:#2C2520;
  margin-top:40px;
  border-radius:var(--r);
  overflow:hidden;
}

.ep-dark-card{
  background:#1A1714;
  cursor:pointer;
  transition:background var(--tr);
}

.ep-dark-card:hover{
  background:#231F1B;
}

.ep-thumb-d{
  aspect-ratio:16/9;
  background:#242018;
  display:flex;
  align-items:center;
  justify-content:center;
}

.ep-play-d{
  width:46px;
  height:46px;
  border-radius:50%;
  background:rgba(224,92,26,.8);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform var(--tr),background var(--tr);
}

.ep-dark-card:hover .ep-play-d{
  transform:scale(1.1);
  background:var(--orange);
}

.ep-play-d::after{
  content:'▶';
  color:#fff;
  font-size:15px;
  margin-left:3px;
}

.ep-body-d{
  padding:14px 16px;
}

.ep-body-d h5{
  font-size:14px;
  font-weight:600;
  color:#fff;
  margin-bottom:4px;
  font-family:var(--serif);
}

.ep-body-d p{
  font-size:10px;
  color:rgba(255,255,255,.4);
  text-transform:uppercase;
  letter-spacing:.08em;
}

/* ── RESPONSIVE ─────────────────────────── */
@media(max-width:1024px){

  .inst-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .events-row{
    grid-template-columns:1fr;
  }

  .events-pg{
    grid-template-columns:1fr;
  }

  .ipc{
    grid-template-columns:1fr;
  }

  .ipc-img{
    min-height:140px;
  }

  .pillars{
    grid-template-columns:repeat(2,1fr);
  }

  .vid-grid{
    grid-template-columns:repeat(2,1fr);
  }

}

@media(max-width:768px){

  .wrap{
    padding:0 20px;
  }

  .sec{
    padding:60px 0;
  }

  .leader-grid,.campus-grid,.grid3,.grid2{
    grid-template-columns:1fr;
  }

  .ft-grid{
    grid-template-columns:1fr 1fr;
  }

  .nav-links{
    display:none;
  }

  .nav-toggle{
    display:flex;
  }

  .mobile-nav{
    display:flex;
  }

  .about-grid,.contact-grid,.ldr-full,.events-pg,.about-hero{
    grid-template-columns:1fr;
  }

  .inst-page-grid{
    grid-template-columns:1fr;
  }

  .startup-row,.ev-past-grid{
    grid-template-columns:1fr 1fr;
  }

  .edu-steps{
    grid-template-columns:1fr;
  }

}

@media(max-width:480px){

  .inst-grid{
    grid-template-columns:1fr;
  }

  .vid-grid{
    grid-template-columns:1fr 1fr;
  }

  .ft-grid{
    grid-template-columns:1fr;
  }

}

/* ══════════════════════════════════════════
   EVENTS PAGE — IRS 2026 / IES 2026 DESIGN
   (scoped entirely under #page-events so its
   own palette & reset never leak to the rest
   of the site)
══════════════════════════════════════════ */
#page-events{
  --ev-ink:#241a11;
  --ev-ink-soft:#3a2d20;
  --ev-paper:#fbf8f2;
  --ev-cream:#f5eee1;
  --ev-line:#e7ddcb;
  --ev-orange:#e2610f;
  --ev-orange-soft:#fdf1e7;
  --ev-green:#1e7a41;
  --ev-green-dark:#175f33;
  --ev-body:#4a4238;
  --ev-muted:#8a7f70;
  font-family:var(--sans);
  background:var(--ev-paper);
  color:var(--ev-body);
  font-size:16px;
  line-height:1.65;
}

#page-events *{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

#page-events .wrap{
  max-width:1120px;
  margin:0 auto;
  padding:0 32px;
}

@media (prefers-reduced-motion:reduce){
  #page-events *{
    animation:none!important;
    transition:none!important;
  }
}

#page-events .eyebrow{
  font-size:11px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ev-orange);
  margin-bottom:0;
}

#page-events .serif{
  font-family:var(--serif);
}

#page-events h1,#page-events h2,#page-events h3{
  font-family:var(--serif);
  color:var(--ev-ink);
  font-weight:600;
  line-height:1.15;
}

#page-events a{
  color:inherit;
}

/* ---------- hero ---------- */
#page-events .hero{
  background:radial-gradient(90% 120% at 88% -10%,#52381f 0%,#241a11 55%);
  color:#e9e0d2;
  padding:88px 0 84px;
  position:relative;
  overflow:hidden;
  min-height:0;
  display:block;
}

#page-events .hero::after{
  content:"";
  position:absolute;
  right:-120px;
  top:-120px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle,#6b4a26 0%,transparent 70%);
  opacity:.35;
  pointer-events:none;
}

#page-events .hero .wrap{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:64px;
  align-items:end;
}

#page-events .hero h1{
  color:#fdfaf4;
  font-size:56px;
  letter-spacing:-.01em;
  margin:18px 0 20px;
}

#page-events .hero .lede{
  font-family:var(--serif);
  font-style:italic;
  font-size:20px;
  color:#d9c9b2;
  margin-bottom:18px;
}

#page-events .hero p.sub{
  font-size:15.5px;
  color:#b9ab97;
  max-width:520px;
  margin-bottom:34px;
  line-height:1.65;
}

#page-events .hero-ctas{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

#page-events .btn{
  display:inline-block;
  font-size:14px;
  font-weight:600;
  padding:14px 26px;
  border-radius:4px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  font-family:var(--sans);
  transition:background .15s;
}

#page-events .btn-orange{
  background:var(--ev-orange);
  color:#fff;
}

#page-events .btn-orange:hover{
  background:#c85408;
}

#page-events .btn-ghost{
  background:transparent;
  color:#f0e7d8;
  border:1px solid #6a5942;
}

#page-events .btn-ghost:hover{
  border-color:#a08a6b;
  background:transparent;
}

#page-events .hero-facts{
  display:grid;
  gap:0;
  border-left:1px solid #4d3d29;
}

#page-events .hero-facts .fact{
  padding:18px 0 18px 26px;
  border-bottom:1px solid #3c2f1f;
}

#page-events .hero-facts .fact:last-child{
  border-bottom:none;
}

#page-events .hero-facts .k{
  font-family:var(--serif);
  font-size:26px;
  color:#fdfaf4;
  line-height:1.2;
}

#page-events .hero-facts .v{
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#9c8c74;
  margin-top:4px;
}

@media(max-width:900px){
  #page-events .hero .wrap{
    grid-template-columns:1fr;
  }
  #page-events .hero h1{
    font-size:40px;
  }
}

/* ---------- pathway strip ---------- */
#page-events .pathway{
  background:var(--ev-cream);
  border-bottom:1px solid var(--ev-line);
  padding:64px 0;
}

#page-events .pathway .head{
  text-align:center;
  max-width:640px;
  margin:0 auto 44px;
}

#page-events .pathway h2{
  font-size:34px;
  margin:14px 0 12px;
}

#page-events .pathway .head p{
  font-size:15px;
  color:var(--ev-body);
  line-height:1.8;
}

#page-events .path-grid{
  display:grid;
  grid-template-columns:1fr 56px 1fr;
  gap:0;
  align-items:stretch;
}

#page-events .path-card{
  background:#fff;
  border:1px solid var(--ev-line);
  border-radius:6px;
  padding:32px 34px;
}

#page-events .path-card .city{
  font-family:var(--serif);
  font-size:26px;
  color:var(--ev-ink);
  margin:10px 0 4px;
}

#page-events .path-card .when{
  font-size:13px;
  font-weight:600;
  color:var(--ev-orange);
  letter-spacing:.06em;
  text-transform:uppercase;
}

#page-events .path-card p{
  font-size:14.5px;
  margin-top:12px;
  color:var(--ev-body);
  line-height:1.75;
}

#page-events .path-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ev-orange);
  font-size:22px;
}

@media(max-width:820px){
  #page-events .path-grid{
    grid-template-columns:1fr;
  }
  #page-events .path-arrow{
    transform:rotate(90deg);
    padding:8px 0;
  }
}

/* ---------- programme sections ---------- */
#page-events .programme{
  padding:88px 0;
}

#page-events .programme.alt{
  background:var(--ev-cream);
  border-top:1px solid var(--ev-line);
  border-bottom:1px solid var(--ev-line);
}

#page-events .prog-head{
  max-width:720px;
  margin-bottom:48px;
}

#page-events .prog-head h2{
  font-size:40px;
  margin:14px 0 16px;
}

#page-events .prog-head .lede{
  font-family:var(--serif);
  font-style:italic;
  font-size:19px;
  color:var(--ev-ink-soft);
  margin-bottom:14px;
}

#page-events .prog-head p{
  font-size:15.5px;
  color:var(--ev-body);
  line-height:1.75;
}

#page-events .stat-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--ev-line);
  border:1px solid var(--ev-line);
  border-radius:6px;
  overflow:hidden;
  margin:40px 0 56px;
}

#page-events .stat{
  background:#fff;
  padding:24px 22px;
  text-align:left;
  color:inherit;
}

#page-events .programme.alt .stat{
  background:var(--ev-paper);
}

#page-events .stat .n{
  font-family:var(--serif);
  font-size:30px;
  color:var(--ev-ink);
  font-weight:700;
  line-height:1;
}

#page-events .stat .l{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ev-muted);
  margin-top:6px;
}

@media(max-width:820px){
  #page-events .stat-row{
    grid-template-columns:repeat(2,1fr);
  }
}

#page-events .subhead{
  font-family:var(--serif);
  font-size:24px;
  color:var(--ev-ink);
  margin:0 0 20px;
}

/* Five Verticals block */
#page-events .verticals-block{
  background:var(--ev-cream);
  border:1px solid var(--ev-line);
  border-radius:6px;
  overflow:hidden;
  margin:0 0 56px;
}

#page-events .vb-head{
  text-align:center;
  max-width:720px;
  margin:0 auto;
  padding:48px 40px 36px;
}

#page-events .vb-head .eyebrow{
  margin-bottom:12px;
}

#page-events .vb-head h2{
  font-size:34px;
  margin:14px 0 12px;
}

#page-events .vb-head p{
  font-size:15px;
  color:var(--ev-body);
  line-height:1.75;
}

#page-events .vb-item{
  text-align:center;
  padding:34px 40px;
  border-top:1px solid var(--ev-line);
}

#page-events .vb-num{
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ev-muted);
  margin-bottom:10px;
}

#page-events .vb-item h3{
  font-size:28px;
  margin-bottom:8px;
}

#page-events .vb-sub{
  font-size:15px;
  color:var(--ev-body);
  margin-bottom:14px;
  line-height:1.7;
}

#page-events .vb-desc{
  font-size:15px;
  color:var(--ev-body);
  max-width:760px;
  margin:0 auto 14px;
  line-height:1.8;
}

#page-events .vb-cta{
  display:inline-block;
  font-size:13.5px;
  font-weight:700;
  letter-spacing:.03em;
  color:var(--ev-orange);
  text-decoration:none;
}

#page-events .vb-cta:hover{
  color:#c85408;
}

#page-events .vb-tag{
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ev-muted);
}

#page-events .vb-strip{
  height:8px;
  background:var(--ev-orange-soft);
}

#page-events .two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  margin-bottom:56px;
}

@media(max-width:820px){
  #page-events .two-col{
    grid-template-columns:1fr;
  }
}

#page-events table.spec{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
  background:#fff;
  border:1px solid var(--ev-line);
  border-radius:6px;
  overflow:hidden;
}

#page-events .programme.alt table.spec{
  background:var(--ev-paper);
}

#page-events table.spec th{
  background:var(--ev-ink);
  color:#f3ead9;
  font-weight:600;
  text-align:left;
  padding:12px 16px;
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#page-events table.spec td{
  padding:12px 16px;
  border-top:1px solid var(--ev-line);
  vertical-align:top;
  color:var(--ev-body);
}

#page-events table.spec td:first-child{
  font-weight:600;
  color:var(--ev-ink);
  white-space:nowrap;
}

#page-events table.spec .rng{
  font-weight:600;
  color:var(--ev-orange);
  white-space:nowrap;
}

/* process rail */
#page-events .rail{
  position:relative;
  margin:8px 0 0;
  padding-left:0;
  list-style:none;
  counter-reset:step;
}

#page-events .rail li{
  position:relative;
  padding:0 0 30px 56px;
  counter-increment:step;
}

#page-events .rail li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;
  left:0;
  top:0;
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--ev-ink);
  color:#f3ead9;
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--sans);
}

#page-events .rail li::after{
  content:"";
  position:absolute;
  left:17.5px;
  top:40px;
  bottom:2px;
  width:1px;
  background:var(--ev-line);
}

#page-events .rail li:last-child::after{
  display:none;
}

#page-events .rail .t{
  font-weight:600;
  color:var(--ev-ink);
  font-size:15.5px;
  display:block;
  margin-bottom:3px;
}

#page-events .rail p{
  font-size:14.5px;
  color:var(--ev-body);
  line-height:1.7;
}

#page-events .rail .tag{
  display:inline-block;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ev-orange);
  background:var(--ev-orange-soft);
  border-radius:3px;
  padding:2px 8px;
  margin-left:8px;
  vertical-align:1px;
}

#page-events .notecard{
  background:var(--ev-orange-soft);
  border:1px solid #f3ddc8;
  border-radius:6px;
  padding:22px 26px;
  font-size:14.5px;
  margin-top:8px;
  color:var(--ev-body);
  line-height:1.7;
}

#page-events .notecard strong{
  color:var(--ev-ink);
}

#page-events .fee-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

#page-events .fee-card{
  background:#fff;
  border:1px solid var(--ev-line);
  border-radius:6px;
  padding:26px 28px;
}

#page-events .programme.alt .fee-card{
  background:var(--ev-paper);
}

#page-events .fee-card h4{
  font-family:var(--serif);
  font-size:19px;
  color:var(--ev-ink);
  margin-bottom:14px;
  font-weight:600;
}

#page-events .fee-card ul{
  list-style:none;
}

#page-events .fee-card li{
  padding:9px 0;
  border-bottom:1px solid var(--ev-line);
  font-size:14.5px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:var(--ev-body);
}

#page-events .fee-card li:last-child{
  border-bottom:none;
}

#page-events .fee-card .amt{
  font-weight:600;
  color:var(--ev-ink);
  white-space:nowrap;
}

@media(max-width:820px){
  #page-events .fee-grid{
    grid-template-columns:1fr;
  }
}

#page-events .prize-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

#page-events .prize{
  background:#fff;
  border:1px solid var(--ev-line);
  border-radius:6px;
  padding:24px;
  text-align:center;
}

#page-events .programme.alt .prize{
  background:var(--ev-paper);
}

#page-events .prize .p-eyebrow{
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ev-muted);
  margin-bottom:8px;
}

#page-events .prize .p-amt{
  font-family:var(--serif);
  font-size:23px;
  color:var(--ev-orange);
  margin-bottom:6px;
}

#page-events .prize .p-note{
  font-size:13px;
  color:var(--ev-body);
  line-height:1.6;
}

@media(max-width:820px){
  #page-events .prize-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

#page-events blockquote.field{
  border-left:3px solid var(--ev-orange);
  padding:6px 0 6px 26px;
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  color:var(--ev-ink-soft);
  margin:48px 0 0;
  max-width:820px;
}

#page-events blockquote.field cite{
  display:block;
  font-family:var(--sans);
  font-style:normal;
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ev-muted);
  margin-top:12px;
}

/* ---------- registration ---------- */
#page-events .register{
  background:var(--ev-ink);
  color:#cdbfab;
  padding:88px 0;
}

#page-events .register .wrap{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:72px;
  align-items:start;
}

#page-events .register h2{
  color:#fdfaf4;
  font-size:38px;
  margin:14px 0 18px;
}

#page-events .register .lede{
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  color:#d9c9b2;
  margin-bottom:20px;
}

#page-events .register p{
  font-size:14.5px;
  margin-bottom:16px;
  color:#cdbfab;
  line-height:1.75;
}

#page-events .register .contact{
  font-size:13.5px;
  border-top:1px solid #3c2f1f;
  padding-top:20px;
  margin-top:28px;
  line-height:1.8;
}

#page-events .register .contact a{
  color:#f0b98a;
  text-decoration:none;
}

#page-events .form-card{
  background:#fff;
  border-radius:8px;
  padding:38px 40px;
  color:var(--ev-body);
}

#page-events .form-card h3{
  font-size:24px;
  margin-bottom:4px;
}

#page-events .form-card .fh-sub{
  font-size:13.5px;
  color:var(--ev-muted);
  margin-bottom:26px;
}

#page-events .f-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

#page-events .f-group{
  margin-bottom:16px;
}

#page-events .f-group label{
  display:block;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ev-ink-soft);
  margin-bottom:7px;
}

#page-events .f-group input,#page-events .f-group select{
  width:100%;
  border:1px solid var(--ev-line);
  border-radius:4px;
  padding:12px 14px;
  font-size:14.5px;
  font-family:var(--sans);
  color:var(--ev-ink);
  background:#fff;
}

#page-events .f-group input:focus,#page-events .f-group select:focus{
  outline:2px solid var(--ev-orange);
  outline-offset:1px;
  border-color:var(--ev-orange);
}

#page-events .track-pick{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:16px;
}

#page-events .track-btn{
  border:1px solid var(--ev-line);
  border-radius:5px;
  padding:14px;
  font-size:13.5px;
  font-weight:600;
  color:var(--ev-ink-soft);
  background:#fff;
  cursor:pointer;
  text-align:center;
  font-family:var(--sans);
}

#page-events .track-btn small{
  display:block;
  font-weight:500;
  font-size:11.5px;
  color:var(--ev-muted);
  margin-top:3px;
}

#page-events .track-btn.on{
  border-color:var(--ev-orange);
  background:var(--ev-orange-soft);
  color:var(--ev-orange);
}

#page-events .track-btn.on small{
  color:var(--ev-orange);
}

#page-events .submit{
  width:100%;
  background:var(--ev-green);
  color:#fff;
  font-size:15px;
  font-weight:600;
  padding:15px;
  border:none;
  border-radius:5px;
  cursor:pointer;
  font-family:var(--sans);
  margin-top:6px;
}

#page-events .submit:hover{
  background:var(--ev-green-dark);
}

#page-events .fine{
  font-size:12px;
  color:var(--ev-muted);
  margin-top:14px;
  text-align:center;
  line-height:1.6;
}

#page-events .success{
  display:none;
  text-align:center;
  padding:48px 12px;
}

#page-events .success .tick{
  width:52px;
  height:52px;
  border-radius:50%;
  background:var(--ev-green);
  color:#fff;
  font-size:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 20px;
}

#page-events .success h3{
  margin-bottom:10px;
}

#page-events .success p{
  font-size:14.5px;
  color:var(--ev-body);
}

@media(max-width:900px){
  #page-events .register .wrap{
    grid-template-columns:1fr;
  }
  #page-events .f-row{
    grid-template-columns:1fr;
  }
}

#page-events .reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .6s ease,transform .6s ease;
}

#page-events .reveal.in{
  opacity:1;
  transform:none;
}

/* ══════════════════════════════════════════
   MOBILE NAV — small-screen override
   (matches .mobile-nav rules defined above;
   kept here too so it always wins regardless
   of stylesheet ordering changes)
══════════════════════════════════════════ */
@media(max-width:480px){
  .mnl,.mnl-edugild,.mnl-apply{
    padding:14px 20px;
  }
}

/* ══════════════════════════════════════════
   HOME REDESIGN  —  overrides & new blocks
   (appended: takes precedence over rules above)
══════════════════════════════════════════ */

.bg-white{
  background:var(--white);
}

.sec-hd--wide{
  max-width:640px;
}

.btn-wide{
  padding:14px 34px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  border-radius:2px;
  border:1px solid var(--border);
  background:transparent;
  color:var(--text);
}

.btn-wide:hover{
  background:var(--text);
  color:#fff;
  border-color:var(--text);
}

/* ── HERO: inset video on a cream field ── */
.hero{
  padding:34px 0 0;
  background:var(--cream);
}

/* static watercolour hero, inset exactly as in the design */
.hero-art{
  max-width:1064px;
  width:calc(100% - 128px);
  margin:0 auto;
}

.hero-art img{
  width:100%;
  height:auto;
  display:block;
  border-radius:3px;
}

/* ── PARTNER LOGO STRIP ── */
.logo-strip{
  background:var(--cream);
  padding:38px 0 46px;
}

.logo-strip-in{
  display:flex;
  align-items:center;
  justify-content:center;
}

/* the logo row is the design's own single artwork, so it stays one image */
/* logo_strips.png is 20031x571 (35:1) — width is what sets its height */
.ls-sheet{
  width:100%;
  max-width:880px;
  height:auto;
  display:block;
  margin:0 auto;
}

/* ── OUTLINED PANEL (leadership) ── */
.panel{
  border:1px solid var(--border);
  border-radius:3px;
  background:var(--white);
}

.leader-panel{
  margin-top:44px;
  padding:52px 44px 56px;
}

.leader-grid{
  margin-top:0;
  gap:44px;
}

/* cards sit flat inside the panel */
.ldr{
  background:transparent;
  border:none;
  border-radius:0;
  padding:0;
  text-align:left;
}

.ldr:hover{
  box-shadow:none;
  transform:none;
  border-color:transparent;
}

/* portrait becomes a rounded landscape frame */
.ldr-av{
  width:100%;
  height:auto;
  aspect-ratio:1176 / 1220;   /* native ratio of the design portraits: no crop */
  border-radius:3px;
  margin:0 0 20px;
  overflow:hidden;
  background:transparent;
  display:block;
}

.ldr-av img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
}

.ldr h3{
  font-size:19px;
  margin-bottom:6px;
  line-height:1.25;
}

.ldr .role{
  font-size:9.5px;
  letter-spacing:.13em;
  margin-bottom:0;
}

.ldr-rule{
  display:block;
  width:100%;              /* full-width divider under the role, per the design */
  height:1px;
  background:var(--border);
  margin:16px 0 18px;
}

.ldr p{
  font-size:12.5px;
  line-height:1.75;
}

.leader-cta{
  text-align:center;
  margin-top:40px;
}

/* ── STATS STRIP: light, hairline-divided ── */
.strip{
  background:var(--white);
  padding:44px 0;
  border-top:none;              /* .divider above already draws this line */
  border-bottom:1px solid var(--border-lt);
}

.strip-in{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:0;
}

.stat{
  flex:1 1 0;
  min-width:120px;
  text-align:center;
  color:var(--text);
  padding:4px 18px;
  border-left:1px solid var(--border);
}

.stat:first-child{
  border-left:none;
}

.stat-n{
  font-size:34px;
  font-weight:600;
  color:var(--text);
  letter-spacing:-.02em;
}

.stat-l{
  font-size:10px;
  color:var(--text2);
  opacity:1;
  letter-spacing:.14em;
  margin-top:8px;
}

/* ── INSTITUTION CARDS: logo header above photo ── */
.inst-grid{
  gap:20px;
}

.ic{
  flex-basis:calc((100% - 60px) / 4);
  border-radius:3px;
  display:flex;
  flex-direction:column;
}

.ic:hover{
  box-shadow:var(--sh-md);
  transform:translateY(-3px);
  border-color:var(--border);
}

.ic-logo{
  height:82px;
  padding:16px;
  display:flex;
  align-items:center;
  justify-content:center;      /* centred, per the Figma */
  background:var(--white);
  flex:0 0 auto;
}

.ic-logo img{
  max-height:48px;             /* larger, per the Figma */
  max-width:76%;
  width:auto;
  object-fit:contain;
  display:block;
}

.ic-img{
  height:150px;
  flex:0 0 auto;
  margin:0 16px;               /* inset from the card edge, per the Figma */
  border-radius:4px;
}

/* photo caption + scrim removed — the logo header names the card now */
.ic-img.has-photo .ic-img-lbl{
  display:none;
}

.ic-img.has-photo::after{
  display:none;
}

.ic-body{
  padding:18px 16px 20px;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.ic-loc{
  font-size:11px;
  letter-spacing:0;
  text-transform:none;         /* sentence case, per the Figma */
  color:var(--text2);
  margin-bottom:9px;
}

.ic h4{
  font-size:14.5px;
  margin-bottom:8px;
}

.ic p{
  font-size:11.5px;
  line-height:1.7;
  flex:1 1 auto;
}

.ic .btn-link{
  margin-top:16px;
  align-self:flex-end;
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  gap:3px;
}

/* ── EDUGILD: two-column bracketed panel ── */
.edu-panel{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1.02fr;
  align-items:center;
  gap:52px;
  padding:52px 56px;
  border:1px solid var(--border);   /* full border box, per the Figma */
  border-radius:3px;
}

/* Vector.png is a transparent stepped cut-out: no shadow or frame,
   or they would render against the empty corners as a rectangle. */
.edu-panel-media{
  position:relative;
}

.edu-panel-media img{
  width:100%;
  height:auto;
  display:block;
}

.edu-panel-body{
  text-align:left;
}

.edu-panel-body .edu-hero-title{
  font-size:clamp(38px,4.6vw,58px);
  margin-bottom:6px;
}

.edu-panel-body .edu-hero-sub{
  font-size:clamp(20px,2.4vw,28px);
  margin-bottom:18px;
}

.edu-panel-body .edu-hero-lede{
  margin:0 0 30px;
  max-width:none;
  font-size:14px;
}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .hero-art{
    width:calc(100% - 64px);
  }
  .leader-panel{
    padding:40px 28px 44px;
  }
  .leader-grid{
    grid-template-columns:1fr;
    gap:40px;
  }
  .ic{
    flex-basis:calc((100% - 20px) / 2);
  }
  .edu-panel{
    grid-template-columns:1fr;
    gap:40px;
    padding:44px 36px;
  }
  .edu-panel-body{
    text-align:center;
  }
  .edu-panel-body .edu-hero-lede{
    margin-left:auto;
    margin-right:auto;
    max-width:560px;
  }
}

@media(max-width:760px){
  .ls-sheet{
    max-width:100%;
  }
  .stat{
    flex:0 0 33.333%;
    min-width:0;
    padding:14px 8px;
    border-left:1px solid var(--border);
  }
  .stat:nth-child(4){
    border-left:none;
  }
  .stat-n{
    font-size:27px;
  }
}

@media(max-width:600px){
  .hero{
    padding:18px 0 0;
  }
  .hero-art{
    width:calc(100% - 32px);
  }
  .logo-strip{
    padding:28px 0 34px;
  }
  .leader-panel{
    padding:32px 20px 36px;
  }
  .ic{
    flex-basis:100%;
  }
  .edu-panel{
    padding:36px 20px;
    gap:32px;
  }
  .edu-panel-media{
    padding:14px 0 14px 14px;
  }
  .btn-wide{
    padding:13px 22px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

/* The VGS lockup is a 4.53:1 strip while the other institution logos are
   2.5:1, so its box needs more room or object-fit would letterbox it. */
.ifc-logo--wide{
  max-width:230px;
}

/* ── institution cards: greyscale by default, colour on hover ──
   One image per card, desaturated by CSS. Previously two stacked images
   cross-faded, but the grey design exports and the colour originals are
   cropped differently (MIT ID scored 0.32, SDE 0.60 on alignment), so the
   picture visibly jumped on hover. A filter on a single image makes both
   states pixel-identical, so the transition can never shift. */
.ic-img-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(100%);
  transition:filter .45s cubic-bezier(.4,0,.2,1);
}

.ic:hover .ic-img-photo,
.ic:focus-within .ic-img-photo{
  filter:grayscale(0%);
}

@media(prefers-reduced-motion:reduce){
  .ic-img-photo{ transition:none; }
}

/* ── events cards: black CTA instead of the orange fill ──
   Scoped to .ev-card so .btn-fill stays orange everywhere else. */
.ev-card .btn-fill{
  background:var(--text);
  color:#fff;
  box-shadow:0 2px 8px rgba(28,25,21,.22);
}

.ev-card .btn-fill:hover{
  background:#000;
  color:#fff;
  box-shadow:0 6px 20px rgba(28,25,21,.34);
}

/* ── larger India map ── */
.events-row{
  grid-template-columns:500px 1fr;
}

.map-img-wrap{
  max-width:100%;              /* was capped at 380px */
}

@media(max-width:1024px){
  .events-row{
    grid-template-columns:1fr;
  }
  .map-img-wrap{
    max-width:460px;
  }
}

/* ── blinking "Upcoming Events" label ──
   A soft ~1.4s pulse, well under the 3Hz flash threshold, and it holds
   at full opacity for anyone who has reduced motion turned on. */
.up-ev-title{
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);   /* static label — only the circles blink */
  margin-bottom:16px;
}

/* ══════════════════════════════════════════
   ABOUT PAGE — square portraits, no orange accents
══════════════════════════════════════════ */

/* portraits: square frame at the design images' native ratio, not circles */
.ldr-full-av{
  width:100%;
  max-width:220px;
  height:auto;
  aspect-ratio:1176 / 1220;
  border-radius:3px;
  background:transparent;
  display:block;
}

.ldr-full-av img{
  width:100%;
  height:100%;
  border-radius:3px;          /* was 50% */
  object-fit:cover;
  object-position:center top;
  display:block;
}

/* stat numbers: black instead of orange */
.a-stat-n{
  color:var(--text);
}

/* stat boxes: neutral hover border, no orange */
.a-stat:hover{
  border-color:var(--text3);
}

/* quote boxes: no background at all, just the italic serif text */
.quote-block,
.ldr-quote{
  background:none;
  border-left:none;
  border-radius:0;
  padding:0;
}

/* ══════════════════════════════════════════
   TIMELINE — visible scroll affordance
   The 3px native scrollbar was too subtle to read as interactive,
   so it is hidden and replaced with a draggable circular knob.
══════════════════════════════════════════ */
.tl-scroll-wrap{
  padding-bottom:4px;
  scrollbar-width:none;          /* Firefox */
  -ms-overflow-style:none;       /* old Edge */
}

.tl-scroll-wrap::-webkit-scrollbar{
  height:0;
  display:none;
}

.tl-scroll-wrap:active{
  cursor:grabbing;
}

.tl-bar{
  position:relative;
  height:22px;
  margin-top:18px;
  touch-action:none;
  cursor:pointer;
}

.tl-bar-track{
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:2px;
  transform:translateY(-50%);
  background:var(--border);
  border-radius:2px;
}

.tl-knob{
  position:absolute;
  top:50%;
  left:0;
  width:18px;
  height:18px;
  margin-top:-9px;
  border-radius:50%;
  background:var(--orange);
  border:3px solid var(--cream);
  box-shadow:0 1px 5px rgba(28,25,21,.22);
  cursor:grab;
  transition:transform .18s ease, box-shadow .18s ease;
}

.tl-knob:hover{
  transform:scale(1.18);
  box-shadow:0 3px 12px rgba(224,92,26,.42);
}

.tl-knob:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:3px;
}

.tl-bar.dragging .tl-knob{
  cursor:grabbing;
  transform:scale(1.18);
}

/* a soft pulse until the reader first scrolls, so the knob reads as interactive */
.tl-knob.idle{
  animation:tlKnobPulse 1.9s ease-in-out infinite;
}

@keyframes tlKnobPulse{
  0%,100%{ box-shadow:0 1px 5px rgba(28,25,21,.22), 0 0 0 0 rgba(224,92,26,.5); }
  60%    { box-shadow:0 1px 5px rgba(28,25,21,.22), 0 0 0 9px rgba(224,92,26,0); }
}

.tl-hint{
  font-size:11px;
  color:var(--text3);
  margin-top:8px;
  letter-spacing:.02em;
  transition:opacity .4s ease;
}

.tl-hint.gone{
  opacity:0;
}

@media(prefers-reduced-motion:reduce){
  .tl-knob,
  .tl-knob.idle{
    animation:none;
    transition:none;
  }
}

/* ══════════════════════════════════════════
   PAST EVENT VIDEOS — branded thumbnail, click to play
   The five YouTube iframes are no longer loaded on page load; each card
   shows the MIT INDIA thumbnail and swaps in the player on click.
══════════════════════════════════════════ */
.vc-facade{
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:var(--surface);
  cursor:pointer;
  appearance:none;
}

.vc-facade img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* play button sits centred over the thumbnail */
.vc-facade .vc-play{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--orange);
  box-shadow:0 3px 14px rgba(28,25,21,.34);
  transition:transform var(--tr),background var(--tr);
  z-index:2;
}

/* white triangle */
.vc-facade .vc-play::after{
  content:"";
  position:absolute;
  top:50%;
  left:52%;
  transform:translate(-50%,-50%);
  border-style:solid;
  border-width:8px 0 8px 13px;
  border-color:transparent transparent transparent #fff;
}

.vc-facade:hover .vc-play,
.vc-facade:focus-visible .vc-play{
  transform:translate(-50%,-50%) scale(1.12);
  background:var(--orange-dk);
}

.vc-facade:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:-2px;
}

/* subtle scrim so the play button reads on light thumbnails */
.vc-facade::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(28,25,21,.10);
  transition:background var(--tr);
}

.vc-facade:hover::after{
  background:rgba(28,25,21,.02);
}

@media(prefers-reduced-motion:reduce){
  .vc-facade .vc-play{ transition:none; }
}

/* ── ghost buttons ("Visit Website"): black fill on hover, not orange ──
   Resting state keeps the orange outline; only the hover changes. */
.btn-ghost:hover,
.btn-ghost:focus-visible{
  background:var(--text);
  color:#fff;
  border-color:var(--text);
  box-shadow:0 4px 14px rgba(28,25,21,.28);
}

/* ── Contact page "Send Message": black, not orange ── */
#page-contact .btn-fill{
  background:var(--text);
  color:#fff;
  box-shadow:0 2px 8px rgba(28,25,21,.22);
}

#page-contact .btn-fill:hover{
  background:#000;
  color:#fff;
  box-shadow:0 6px 20px rgba(28,25,21,.34);
}

/* ══════════════════════════════════════════
   EVENT CARD BANNERS — show the full artwork
   IRS.png / IES.png are ~6:1 banners, but the box was a fixed
   110px tall (≈4.55:1), so object-fit:cover cropped roughly 160px
   off the right edge — losing the India Gate / statue artwork.
   The image now flows at its own ratio: no crop, no letterbox.
══════════════════════════════════════════ */
.ev-card-img{
  height:auto;
  min-height:0;
  display:block;
  overflow:hidden;
}

.ev-card-img.has-photo img{
  position:static;
  inset:auto;
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
}

/* ══════════════════════════════════════════
   MAP LEGEND — "Upcoming events" is the active state and blinks
══════════════════════════════════════════ */
.leg-dot.upcoming{
  background:var(--orange);
  box-shadow:0 0 0 2px var(--orange-lt);
  animation:legDotBlink 1.2s steps(1,end) infinite;
}

/* crisp on/off, 1.2s cycle = 0.83Hz (safe: seizure threshold is 3Hz) */
@keyframes legDotBlink{
  0%,   49%  { opacity:1; }
  50%,  100% { opacity:.15; }
}

.leg-item--active{
  font-weight:600;
  color:var(--text);
}

/* past/covered events read as the quieter, inactive state */
.leg-dot.done{
  background:#fff;
  border:2px solid var(--text3);
}

@media(prefers-reduced-motion:reduce){
  .leg-dot.upcoming{
    animation:none;
    opacity:1;
  }
}

/* ══════════════════════════════════════════
   MAP — pulsing rings on the upcoming-event cities
   The Delhi and Pune badges are baked into india-map-design.png, so
   these sit on top at the measured badge centres. Width is 7.1% of the
   map — the badge's own diameter — so the ring starts flush with it
   and expands outward, never covering the artwork.
══════════════════════════════════════════ */
.map-pulse{
  position:absolute;
  width:4.6%;            /* was 7.1% (full badge width) — smaller ring */
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  pointer-events:none;
  z-index:3;
}

.map-pulse::before,
.map-pulse::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2px solid var(--orange);
  animation:mapPulse 1.9s cubic-bezier(.22,.61,.36,1) infinite;
}

/* second ring trails the first for a continuous sonar effect */
.map-pulse::after{
  animation-delay:.95s;
}

/* the two cities pulse out of phase so they read as separate pins */
.map-pulse--b::before{ animation-delay:.5s; }
.map-pulse--b::after{ animation-delay:1.45s; }

@keyframes mapPulse{
  0%   { transform:scale(.8); opacity:.9; }
  70%  { opacity:.12; }
  100% { transform:scale(1.9); opacity:0; }
}

@media(prefers-reduced-motion:reduce){
  .map-pulse::before,
  .map-pulse::after{
    animation:none;
    opacity:.5;
  }
  .map-pulse::after{ display:none; }
}

/* smaller legend circles */
.leg-dot{
  width:7px;
  height:7px;
}

/* ══════════════════════════════════════════
   HERO — banner film
   The video is 1920x1080 (16:9), so aspect-ratio is set to reserve the
   right space before metadata loads (no layout shift) and to show the
   full frame — nothing is cropped. The watercolour serves as the poster.
══════════════════════════════════════════ */
.hero-art .hero-video{
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
  display:block;
  border-radius:3px;
  object-fit:cover;
  background:#0f0d0b;
  border:none;
  pointer-events:none;   /* decorative: no controls, not clickable */
}
