/* ===== NMIMS Hyderabad — homepage (Figma same-to-same rebuild) ===== */
:root{
  --red:#D2232A;          /* primary brand red */
  --red-2:#D73233;        /* filter bar red */
  --pink:#F9D6D7;         /* pill soft pink */
  --pink-bg:#FBEAEB;      /* soft section background */
  --ink:#1D1D1F;          /* near-black text */
  --muted:#6F6F6F;        /* muted paragraph */
  --line:#E7E7E7;
  --serif:'Playfair Display', serif;
  --sans:'Poppins', sans-serif;
  --section-y:90px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);margin:0;background:#fff;font-size:16px;overflow-x:hidden}
.container-x{width:100%;max-width:1920px;padding-inline:135px;margin-inline:auto;box-sizing:border-box}
@media (max-width: 1440px) { .container-x { padding-inline: 60px; } }
@media (max-width: 991px) { .container-x { padding-inline: 30px; } }
@media (max-width: 767px) { .container-x { padding-inline: 15px; } }
h1,h2,h3,h4{font-family:var(--sans);font-weight:500;line-height:1.3;margin:0;color:var(--ink)}
p{line-height:1.8;color:var(--muted);margin:0}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.text-red{color:var(--red)}
.serif{font-family:var(--serif);font-weight:700}

/* pill tag */
.pill{display:inline-block;background:var(--pink);color:#1D1D1F;font-size:12px;font-weight:500;
  letter-spacing:1.2px;text-transform:uppercase;padding:10px 24px;border-radius:30px}

/* buttons */
.btn-red{background:var(--red);color:#fff;font-weight:500;font-size:14px;letter-spacing:.8px;border:none;
  border-radius:8px;padding:15px 30px;display:inline-block;text-transform:uppercase;white-space:nowrap;
  transition:background .25s ease,transform .25s ease,box-shadow .25s ease;will-change:transform}
.btn-red:hover{background:#b51e24;color:#fff;transform:translateY(-2px);
  box-shadow:0 12px 24px -10px rgba(178,30,36,.6)}
.btn-red:active{transform:translateY(0);box-shadow:0 6px 14px -8px rgba(178,30,36,.6)}
.btn-link{font-weight:600;font-size:14px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink);
  display:inline-flex;gap:8px;align-items:center;white-space:nowrap;transition:color .2s ease}
.btn-link.red{color:var(--red);font-size:13px}
.btn-link i{font-size:15px;transition:transform .25s ease}
.btn-link:hover i{transform:translate(3px,-3px)}

/* ===== Header + Hero ===== */
.hero-wrap{position:relative;background:#050505;height:calc(100vh - 120px);min-height:500px;
  border-radius:0 0 110px 110px;overflow:hidden}
.hero-video, .hero-embed, .hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  border:none}
/* dark overlay behind the header so the white logo + nav stay readable over the video */
.hero-wrap::before{display:none;content:"";position:absolute;top:0;left:0;right:0;height:240px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.60) 0%,rgba(0,0,0,.30) 50%,rgba(0,0,0,0) 100%)}
.hero-head{position:relative;z-index:5}
/* Header geometry matches the Figma: nav-top 133px tall, logo artwork 70px.
   The logo PNG carries ~21px of transparent padding top/bottom inside a 112px
   canvas, so the img must render at its native 112px for the mark to read 70px. */
.nav-top{display:flex;align-items:center;justify-content:space-between;padding:5px 0}
.logo img{height:72px;width:auto}
.nav-actions{display:flex;align-items:center;gap:28px}
.btn-admission{background:var(--red);color:#fff;font-weight:500;font-size:11.5px;letter-spacing:.5px;
  border-radius:8px;padding:6px 12px;display:inline-flex;gap:10px;align-items:center;white-space:nowrap;
  transition:background .25s ease,transform .25s ease,box-shadow .25s ease}
.btn-admission:hover{background:#b51e24;color:#fff;transform:translateY(-2px);
  box-shadow:0 12px 24px -10px rgba(178,30,36,.55)}
.search-ic{font-size:20px;color:#fff;display:flex}
/* the nav row is bracketed by a rule top AND bottom (see any Figma frame: hairlines at
   y=133 and y=214 around the 81px link row) */
.nav-main{}
.nav-main .nav-row{display:flex;align-items:center;position:relative;padding:10px 0;}
.nav-main ul{display:flex;align-items:center;list-style:none;margin:0;padding:0 120px 0 130px;flex:1;
  justify-content:space-between}
.nav-main a{color:#fff;font-weight:500;font-size:13px;letter-spacing:.4px}
.nav-main a:hover{color:#f3b8ba}
.nav-burger{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;
  flex-direction:column;align-items:flex-end;gap:5px;cursor:pointer}
.nav-burger span{display:block;height:2px;background:#fff;border-radius:2px}
.nav-burger span:nth-child(1){width:20px}
.nav-burger span:nth-child(2){width:15px}
.nav-burger span:nth-child(3){width:11px}

/* ===== Off-canvas menu drawer ===== */
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;
  transition:opacity .35s ease,visibility .35s ease;z-index:90}
body.nav-open .nav-overlay{opacity:1;visibility:visible}
.nav-drawer{position:fixed;top:0;right:0;height:100%;width:clamp(320px,50vw,640px);max-width:90vw;
  background:#0d0d0d;color:#fff;z-index:95;transform:translateX(100%);
  transition:transform .42s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;
  padding:44px 52px;overflow-y:auto}
body.nav-open .nav-drawer{transform:none;box-shadow:-30px 0 80px rgba(0,0,0,.5)}
.drawer-close{position:absolute;top:24px;right:30px;background:none;border:none;color:#fff;
  font-size:22px;line-height:1;cursor:pointer;transition:transform .3s ease,color .25s ease}
.drawer-close:hover{color:var(--red);transform:rotate(90deg)}
.drawer-logo img{height:66px;margin-bottom:46px}
.drawer-nav{display:flex;flex-direction:column}
.drawer-nav a{color:#fff;font-size:clamp(18px,1.5vw,23px);font-weight:500;padding:16px 0;
  border-bottom:1px solid rgba(255,255,255,.09);transition:color .2s ease,padding-left .25s ease}
.drawer-nav a:hover{color:var(--red);padding-left:10px}
.drawer-cta{margin-top:40px;align-self:flex-start}

/* ===== Search overlay ===== */
.search-overlay{position:fixed;inset:0;background:rgba(12,12,12,.55);opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;z-index:100}
body.search-open .search-overlay{opacity:1;visibility:visible}
.search-panel{position:absolute;top:0;left:0;right:0;background:#fff;
  padding:clamp(22px,3vw,34px) clamp(20px,6vw,90px);transform:translateY(-100%);
  transition:transform .42s cubic-bezier(.22,1,.36,1);box-shadow:0 24px 50px rgba(0,0,0,.22)}
body.search-open .search-panel{transform:none}
.search-form{display:flex;align-items:center;gap:18px;max-width:1200px;margin:0 auto}
.search-form .bi-search{color:var(--red);font-size:clamp(20px,2vw,26px)}
.search-input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;color:var(--ink);
  font-size:clamp(18px,2.2vw,30px);padding:14px 0;border-bottom:2px solid #ececec}
.search-input::placeholder{color:#bdbdbd}
.search-input:focus{border-bottom-color:var(--red)}
.search-close{background:none;border:none;color:var(--ink);font-size:24px;line-height:1;cursor:pointer;
  transition:transform .3s ease,color .25s ease}
.search-close:hover{color:var(--red);transform:rotate(90deg)}

.carousel-ctrl{position:absolute;right:40px;bottom:40px;left:auto;transform:none;display:flex;gap:8px;z-index:999;opacity:0;transition:opacity 0.3s ease}
.hero-wrap:hover .carousel-ctrl{opacity:1}
.carousel-ctrl button{width:38px;height:38px;border-radius:50%;border:none;font-size:16px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:.2s}
.cc-prev, .cc-next {background:#fff;color:#161616;border:1px solid #fff;}
.cc-prev:hover, .cc-next:hover {background:#c8102e;color:#fff;border-color:#c8102e;}

/* red search / filter bar */
.filterbar{background:var(--red-2);border-radius:10px;margin-top:-47px;position:relative;z-index:4;
  display:flex;align-items:center;gap:clamp(24px,2.8vw,54px);padding:20px 34px;min-height:0}
.filterbar .search{flex:0 0 clamp(300px,29vw,476px);background:#fff;border-radius:6px;display:flex;
  align-items:center;gap:12px;padding:15px 20px}
.filterbar .search i{color:#9a9a9a;font-size:16px}
.filterbar .search input{border:none;outline:none;width:100%;font-size:14px;letter-spacing:.6px;color:#606062}
.filterbar .search input::placeholder{color:#606062}
.filterbar .links{display:flex;align-items:center;gap:clamp(16px,1.8vw,36px);flex:1;justify-content:space-between}
.filterbar .links a{color:#fff;font-weight:500;font-size:16px;letter-spacing:.4px;white-space:nowrap}
.filterbar .fb-btns{display:flex;align-items:center;gap:19px}
.filterbar .links a.btn-apply{background:#fff;color:var(--red);border-radius:6px;padding:12px 28px;font-weight:600}
.filterbar .links a.btn-viewall{background:#1D1D1F;color:#fff;border-radius:6px;padding:12px 30px;font-weight:600}

/* ===== Scroll-reveal typography ===== */
/* hidden states apply only when JS is on, so no-JS users see everything */
.js .reveal{opacity:0;transform:translateY(48px);
  transition:opacity .8s ease,transform .85s cubic-bezier(.22,1,.36,1);transition-delay:var(--rd,0s)}
.js .reveal.in{opacity:1;transform:none}
/* word-by-word heading reveal */
.js .reveal-words{visibility:hidden}        /* hide until JS has wrapped words */
.js .reveal-words.split{visibility:visible}
.js .reveal-words .w{display:inline-block;opacity:0;transform:translateY(.7em);
  transition:opacity .55s ease,transform .6s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--wd,0s)}
.js .reveal-words.in .w{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .js .reveal,.js .reveal-words .w{transition-duration:.001s;transform:none;opacity:1}
  .js .reveal-words{visibility:visible}
}

/* ===== Sections base ===== */
.section{padding:var(--section-y) 0}

/* ===== About ===== */
.about{padding-top:var(--section-y);position:relative}
.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}
.about-grid>*,.campus-grid>*,.tst-grid>*,.social-grid>*,.news-feat>*{min-width:0}
.about h2{font-size:46px;margin-top:28px;line-height:1.32}
.about h2 .serif{font-size:50px}
.about .lead{margin:26px 0 34px;max-width:580px;font-size:15px}
.stats{display:flex;gap:64px;margin:0 0 40px}
.stats .num{font-weight:600;font-size:38px;color:var(--red)}
.stats .lbl{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#555;font-weight:500;margin-top:4px}
.about-cta{display:flex;align-items:center;gap:36px}
.about-media{position:relative;padding:46px 0 56px 56px}
.about-media .dots{position:absolute;right:-34px;top:0;width:228px;z-index:0}
.about-media .main{position:relative;border-radius:20px;overflow:hidden;z-index:1}
.about-media .main img{width:100%;height:auto}
.about-media .inset{position:absolute;left:0;bottom:0;width:240px;border-radius:16px;overflow:hidden;z-index:2}
.about .dots-side{position:absolute;right:-150px;bottom:-30px;width:221px;opacity:.9}

/* ===== Programs ===== */
.programs-card{margin-inline:auto;border-radius:30px;
  background:url('../img/27_rectangle_108.png') center/cover no-repeat;padding:var(--section-y) 0;overflow:hidden}
.programs .head{text-align:center;margin-bottom:64px}
.programs h2{font-size:44px;font-weight:400;margin-top:26px;line-height:1.4}
.programs h2 .serif{font-size:48px}
.prog-grid{display:flex;align-items:flex-start}
.prog-col{flex:1 1 0;min-width:0;padding:0 34px;min-height:560px;cursor:pointer;
  transition:flex-grow .45s ease}
.prog-col:first-child{padding-left:0}
.prog-col + .prog-col{border-left:1px solid #E9D2D3}
.prog-col .no{font-size:14px;color:#888;font-weight:500;transition:color .3s}
.prog-col .title{font-weight:500;font-size:15px;margin:10px 0 22px;min-height:44px;line-height:1.5;color:#1D1D1F;transition:color .3s}
.prog-col img{border-radius:14px;width:100%;object-fit:cover;height:352px;filter:grayscale(1);
  transition:height .45s ease,filter .45s ease}
.prog-col .desc{font-size:14px;margin:26px 0 30px;line-height:1.85}
.prog-col .btn-red{display:inline-block}
/* collapsible detail — animates open/closed so the card height eases instead of jumping */
.prog-detail{max-height:0;opacity:0;overflow:hidden;
  transition:max-height .45s ease,opacity .35s ease}

/* expanded card — driven by .active (JS sets it on hover/click) */
.prog-col.active{flex-grow:2.3}
.prog-col.active .no,.prog-col.active .title{color:var(--red)}
.prog-col.active img{height:260px;filter:none}
.prog-col.active .prog-detail{max-height:380px;opacity:1}

/* ===== Campus ===== */
.campus{padding:var(--section-y) 0;
  position:relative;overflow:hidden}
.campus-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center}
.campus h2{font-size:44px;line-height:1.45;margin-top:28px;font-weight:400}
.campus h2 .serif{font-size:48px}
.campus-actions{display:flex;align-items:center;gap:36px;margin-top:40px}
.campus-media{position:relative;width:min(477px,86%);margin:0 auto}
.campus-media .lab{border-radius:24px;overflow:hidden;aspect-ratio:477/596;
  box-shadow:0 26px 50px -28px rgba(20,30,60,.55)}
.campus-media .lab img{width:100%;height:100%;object-fit:cover;
  transition:opacity .45s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.rd-tag{position:absolute;left:-36px;bottom:118px;background:var(--red);color:#fff;font-weight:500;
  font-size:15px;padding:22px 30px;border-radius:16px;line-height:1.4;letter-spacing:.3px;
  box-shadow:0 18px 34px -14px rgba(210,35,42,.55);
  transition:opacity .45s ease,transform .45s cubic-bezier(.22,1,.36,1)}
.campus-side{position:absolute;right:0;top:44%;transform:translateY(-50%);
  width:min(261px,14vw);border-radius:24px;overflow:hidden;aspect-ratio:261/491;
  box-shadow:0 22px 40px -20px rgba(20,30,60,.5)}
.campus-side img{width:100%;height:100%;object-fit:cover;
  transition:opacity .45s ease,transform .6s cubic-bezier(.22,1,.36,1)}
/* zoom only for real pointers — avoids sticky hover-zoom after a tap on touch */
@media(hover:hover){
  .campus-media:hover .lab img{transform:scale(1.06)}
  .campus-side:hover img{transform:scale(1.07)}
}
/* cross-fade between slides */
.campus.is-fading .lab img,
.campus.is-fading .campus-side img{opacity:0;transform:scale(1.04)}
.campus.is-fading .rd-tag{opacity:0;transform:translateY(12px)}
.campus-dashes{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:64px;
  width:50%;margin-left:auto}
.campus-dashes button{position:relative;width:43px;height:6px;border:0;padding:0;border-radius:4px;
  background:#EFC6C8;cursor:pointer;transition:background .3s ease,transform .3s ease;
  -webkit-appearance:none;appearance:none}
.campus-dashes button::before{content:"";position:absolute;inset:-18px -4px}/* ~42px touch target */
.campus-dashes button:hover{background:#e2a4a7;transform:scaleY(1.5)}
.campus-dashes button.on{background:var(--red)}
.campus-dashes button:focus-visible{outline:2px solid var(--red);outline-offset:6px}
@media(prefers-reduced-motion:reduce){
  .campus-media .lab img,.campus-side img,.rd-tag{transition:opacity .25s ease}
  .campus.is-fading .lab img,.campus.is-fading .campus-side img,
  .campus-media:hover .lab img,.campus-side:hover img{transform:none}
  .campus.is-fading .rd-tag{transform:none}
  .campus-dashes button:hover{transform:none}
}

/* ===== Testimonials ===== */
.tst{background:url('../assets/img/141_image_5.png') top center/100% auto no-repeat;padding:var(--section-y) 0}
.tst-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.tst h2{font-size:40px;line-height:1.45;margin-top:28px;font-weight:400}
.tst h2 .serif{font-size:44px}
.tst .btn-red{margin-top:36px}
.tst-comp{display:flex;gap:34px;align-items:flex-end;justify-content: center;margin-top:70px}
.tst-comp .figure{position:relative;flex:0 0 380px}
.tst-comp .fig-dots{position:absolute;right:-44px;top:-16px;width:150px;z-index:0;opacity:.9}
.tst-comp .arch{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:240px}
.tst-comp .girl{position:relative;z-index:1;width:100%}
.tst-comp .side{padding-bottom:6px}
.tst-comp .badges{display:flex;align-items:center;margin-bottom:20px}
.tst-comp .b-thumb{width:56px;height:56px;border-radius:50%;background:var(--red);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:21px;border:3px solid #fff;z-index:1;position:relative}
.tst-comp .b-50k{width:56px;height:56px;border-radius:50%;background:#3A3A3A;color:#fff;display:inline-flex;
  align-items:center;justify-content:center;font-size:13px;font-weight:600;margin-left:-12px;border:3px solid #fff}
.tst-comp .stars{display:flex;gap:4px;margin-bottom:10px}
.tst-comp .stars img{width:16px;height:16px}
.tst-comp .cap{font-size:15px;color:#1D1D1F;line-height:1.6}
.tst-comp .squig{width:48px;margin:14px 0 20px}
.tst-comp .btn-adm{font-size:13px;padding:15px 24px;white-space:nowrap}

.tabs{display:flex;gap:26px;justify-content:flex-end;align-items:center;color:#888;font-weight:400;
  font-size:15px;margin-bottom:34px}
.tabs span[data-filter]{cursor:pointer;transition:color .2s}
.tabs span[data-filter]:hover{color:var(--red)}
.tabs .sep{color:#ccc}
.tabs .active{color:var(--red);font-weight:500;position:relative}
.tabs .active::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--red)}
.tst-card{background:url('../assets/img/61_rectangle_108.png') center/cover no-repeat;border:1px solid #F2DCDD;
  border-radius:14px;padding:32px 90px 32px 36px;margin-bottom:26px;position:relative}
.tst-card .stars{display:flex;gap:5px;margin-bottom:18px}
.tst-card .stars img{width:20px;height:19px}
.tst-card p{font-size:14px;color:#555;line-height:1.9}
.tst-card .quote{position:absolute;right:34px;top:38px;display:flex;gap:5px}
.tst-card .quote img{width:22px}
.tst-card .brand{height:42px;width:auto;margin-top:22px}
.tst-author{display:flex;align-items:center;gap:14px;margin-top:22px}
.tst-author img{width:54px;height:54px;border-radius:50%;object-fit:cover}
.tst-author b{font-size:15px;font-weight:600}
.tst-author span{font-size:13px;color:#888}
/* vertical auto-scroll ticker (cards duplicated in the track for a seamless loop) */
.tst-scroll{position:relative;height:var(--tst-h,760px);overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%)}
.tst-track{display:flex;flex-direction:column;will-change:transform}
.tst-scroll:not(.is-static) .tst-track{animation:tst-vscroll 28s linear infinite}
.tst-scroll:not(.is-static):hover .tst-track{animation-play-state:paused}
@keyframes tst-vscroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
/* filtered view: drop the loop + clones, let cards sit statically */
.tst-scroll.is-static{height:auto;-webkit-mask-image:none;mask-image:none}
.tst-scroll.is-static .tst-track{animation:none;transform:none}
.tst-scroll.is-static .tst-card.clone{display:none}
@media (prefers-reduced-motion:reduce){
  .tst-scroll{height:auto;-webkit-mask-image:none;mask-image:none}
  .tst-track{animation:none!important;transform:none!important}
  .tst-card.clone{display:none}
}

/* ===== Recruiters ===== */
.recruiters{text-align:center;padding:var(--section-y) 0}
.recruiters h2{font-family:var(--serif);font-weight:700;font-size:42px}
.recruiters .sub{font-size:14px;margin:10px 0 0;color:#555}
.recruiters .rule{height:1px;background:var(--line);margin:34px 0 44px}
.recruiters .marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.recruiters .marquee-track{display:flex;gap:24px;width:max-content;animation:logos-scroll 30s linear infinite}
.recruiters .marquee:hover .marquee-track{animation-play-state:paused}
.recruiters .lo{flex:0 0 clamp(180px,13vw,220px);background:#fff;border:1px solid #ECECEC;border-radius:10px;height:126px;display:flex;align-items:center;justify-content:center;padding:20px;box-shadow:0 6px 18px rgba(0,0,0,.04)}
.recruiters .lo img{max-height:88px;max-width:80%;width:auto;object-fit:contain}
@keyframes logos-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.recruiters .marquee-track{animation:none;flex-wrap:wrap;justify-content:center}}

/* ===== News ===== */
.news-card-bg{width:100%;margin-inline:auto;border-radius:30px;
  background:url('../img/96_rectangle_473.png') center/cover no-repeat;padding:var(--section-y) 90px}
.news .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:54px;gap:40px}
.news h2{font-size:40px;font-weight:400;line-height:1.5;margin-top:24px}
.news h2 .serif{font-size:44px}
.news .btn-red{flex-shrink:0}
.news-feat{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center;margin-bottom:64px}
.news-feat .img{position:relative}
.news-feat .img img{width:100%;border-radius:18px}
.date-badge{position:absolute;top:16px;right:16px;background:var(--red);color:#fff;font-size:12px;
  font-weight:500;letter-spacing:.5px;padding:8px 14px;border-radius:6px 6px 18px 6px}
.news-feat h3{font-size:30px;font-weight:500;line-height:1.5;margin-bottom:26px}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.news-know-more{display:flex;justify-content:center;margin-top:48px}
.news-item .img{position:relative;margin-bottom:32px}
.news-item .img img{width:100%;height:314px;object-fit:cover;border-radius:16px}
.news-item .date-badge{top:auto;bottom:2px;right:20px}
.news-item p{font-size:13.5px;color:#444;margin-bottom:16px;line-height:1.75}

/* ===== University block ===== */
.univ-wrap{width:100%;margin-inline:auto}
.univ{background:radial-gradient(ellipse at 50% 120%, #FFE1EC 0%, #fff 60%);border-radius:24px;text-align:center;
  padding:108px 30px;border:1px solid #F4E4E5}
.univ h2{font-family:var(--serif);font-weight:700;font-size:44px;margin:30px 0 10px}
.univ .big{font-size:34px;font-weight:400;color:#1D1D1F;margin-bottom:26px}
.univ p{max-width:760px;margin:0 auto 36px;font-size:14px}

/* ===== Social ===== */
.social-head{text-align:center;max-width:1240px;margin:0 auto 60px}
.social-head h2{font-size:38px;font-weight:400;margin-top:26px;line-height:1.55}
.social-head h2 .serif{font-size:42px}
.social-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:1654px;margin-inline:auto}
.sm-card{border:1px solid #EAEAEA;border-radius:20px;padding:26px;background:linear-gradient(to bottom, #FFF2F2, #FFFFFF);
  box-shadow:0 10px 30px rgba(0,0,0,.05)}
.sm-head{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.sm-head .av{width:58px;height:58px;border-radius:50%}
.sm-head .who b{font-size:14px;letter-spacing:.3px}
.sm-head .who .sub{color:#888;font-size:12px;margin-top:2px}
.sm-head .check{color:#1DA1F2;font-size:14px;margin-left:4px}
.sm-stats{display:flex;gap:38px;margin-left:auto;text-align:center}
.sm-stats b{display:block;font-size:17px;font-weight:600}
.sm-stats span{font-size:10.5px;color:#888;letter-spacing:1px}
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ig-grid img{border-radius:8px;width:100%;height:auto;object-fit:cover}
.fb-ic{margin-left:auto;width:44px;height:44px;border-radius:50%;background:#1877F2;color:#fff;display:flex;
  align-items:center;justify-content:center;font-size:22px}
.fb-text{font-size:13.5px;color:#555;margin-bottom:20px;line-height:1.8}
.fb-text a{color:var(--red);font-weight:500}
.fb-img img{border-radius:14px;width:100%}

.faq-section{background:radial-gradient(ellipse at top, #FAD0DD 0%, #fff 80%)}
/* ===== FAQ ===== */
.faq-head{text-align:center;margin-bottom:50px}
.faq-head h2{font-family:var(--serif);font-weight:700;font-size:40px}
.faq{width:100%;margin-inline:auto;border:1px solid #E5E5E5;border-radius:20px;
  padding:18px 56px;background:#fff}
.faq-item{border-bottom:1px solid #ECECEC;padding:30px 0}
.faq-item:last-child{border-bottom:none}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:30px;cursor:pointer;font-weight:600;
  font-size:17px;color:#333}
.faq-item.open .faq-q{color:var(--red)}
.faq-a{font-size:14.5px;color:#555;margin-top:16px;display:none;line-height:1.9;max-width:1280px}
.faq-item.open .faq-a{display:block}
.faq-toggle{font-size:22px;color:#333;font-weight:400;flex-shrink:0}
.faq-item.open .faq-toggle{color:var(--red)}

/* ===== Footer ===== */
.footer{background:linear-gradient(180deg, #FFE4E4 0%, #FFE7E7 50%, #FFFFFF 100%);border-radius:120px 120px 0 0;margin-top:var(--section-y);
  padding:56px 0 28px}
.footer .shield{width:92px;margin:0 auto 36px}
/* Figma footer: the 4 columns are content-width and spread edge-to-edge across the
   container (measured gutters 253/253/252px, and "About" sits flush with the container's
   right edge at x=1732). repeat(4,1fr) left-aligned each column inside a 1/4 track, which
   left the last column ~160px short of the right edge — the reported misalignment. */
.foot-cols{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:30px;
  width:100%;margin-inline:auto}
.foot-cols h4{font-size:19px;font-weight:600;margin-bottom:18px}
.foot-cols a{display:block;color:#4a4a4a;font-size:15.5px;margin-bottom:7px}
.foot-cols a:hover{color:var(--red)}
.foot-bottom{width:100%;margin:36px auto 0;padding-top:22px;border-top:1px solid #E3CFD0;
  display:flex;justify-content:space-between;font-size:14px;color:#555}

/* ===== Responsive ===== */
@media(max-width:1400px){
  .nav-main ul{padding:0 90px 0 60px}
  .filterbar{gap:clamp(20px,2vw,54px)}
  .filterbar .search{flex-basis:clamp(260px,23vw,440px)}
  .filterbar .links{gap:clamp(14px,1.6vw,36px)}
  .filterbar .links a{font-size:14px}
  .filterbar .links a.btn-apply,.filterbar .links a.btn-viewall{padding:12px 22px}
  .about h2{font-size:38px}.about h2 .serif{font-size:42px}
  .prog-col{padding:0 22px;min-height:500px}
  .prog-col:not(.active) img{height:300px}
  .campus h2,.news h2{font-size:36px}
  .campus h2 .serif,.news h2 .serif{font-size:40px}
  .tst h2{font-size:34px}.tst h2 .serif{font-size:38px}
  .tst-comp .figure{flex:0 0 300px}
  .news-card-bg{padding:60px 56px 56px}
  .social-head h2{font-size:32px}.social-head h2 .serif{font-size:36px}
}
@media(max-width:1200px){
  .hero-wrap{border-radius:0 0 110px 110px}
  .filterbar{flex-wrap:wrap;min-height:0}
  .filterbar .search{flex:1 1 100%}
  .filterbar .links{gap:24px}
  .filterbar .links a{font-size:14px}
  .filterbar .links a.btn-apply,.filterbar .links a.btn-viewall{padding:12px 22px}
  .prog-grid{display:grid;grid-template-columns:repeat(3,1fr);row-gap:40px}
  .prog-col{min-height:0;padding:0 18px}
  .prog-col:first-child{grid-column:1/-1;padding:0}
  .news-feat{grid-template-columns:1fr;gap:30px}
  .social-grid{grid-template-columns:1fr}
  .tst-grid{grid-template-columns:1fr;gap:50px}
  .campus-side{display:none}
  .stats{gap:36px}
}

/* --- tablet: burger menu drawer takes over --- */
@media(max-width:992px){
  .nav-main .nav-row{padding:10px 0;min-height:50px}
  .nav-main ul{display:none}            /* horizontal menu hidden — burger opens the drawer instead */
  .nav-burger{padding:10px 0 10px 10px}
  .logo img{height:72px}
  .btn-admission{padding:6px 12px;font-size:11.5px}
  .hero-wrap{height:min(500px,72vw);border-radius:0 0 90px 90px}
  .filterbar{gap:18px;padding:20px 24px}
  .about{padding-top:70px}
  .about-grid{grid-template-columns:1fr;gap:50px}
  .about h2{font-size:34px}.about h2 .serif{font-size:38px}
  .about-media{max-width:560px}
  .campus{padding:70px 0 60px;background-size:cover}
  .campus-grid{grid-template-columns:1fr;gap:50px}
  .campus-dashes{width:auto;margin:50px auto 0;justify-content:center}
  .tst{background-size:cover}
  .tabs{justify-content:flex-start}
  .news .head{flex-direction:column;align-items:flex-start;gap:24px}
  .univ{padding:70px 24px}
  .univ h2{font-size:34px}.univ .big{font-size:26px}
  .social-head h2{font-size:27px}.social-head h2 .serif{font-size:30px}
  .foot-cols{grid-template-columns:repeat(2,1fr);row-gap:44px}
  :root{--section-y:60px}
  .section{padding:60px 0}
}

/* --- phones --- */
@media(max-width:768px){
  .container-x{width:calc(100% - 40px)}
  .nav-top{padding:5px 0}
  .logo img{height:60px}
  .nav-actions{gap:16px}
  .btn-admission{padding:6px 12px;font-size:11.5px;gap:7px}
  .hero-wrap{height:min(500px,96vw);border-radius:0 0 110px 110px}
  .filterbar{flex-direction:column;align-items:stretch;padding:18px;border-radius:12px}
  .filterbar .search{flex:1}
  .filterbar .links{flex-wrap:wrap;justify-content:center;gap:14px;row-gap:14px}
  .pill{font-size:11px;padding:8px 18px}
  .about h2{font-size:27px}.about h2 .serif{font-size:30px}
  .about h2 br{display:none}
  .about .lead{font-size:14px}
  .about-media{padding:30px 0 44px 34px}
  .about-media .dots{right:-12px;width:160px}
  .about-media .inset{width:170px;border-width:6px}
  .stats{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .stats .num{font-size:30px}
  .programs-card{width:calc(100% - 24px);border-radius:20px;padding:54px 0 44px}
  .programs .head{margin-bottom:40px}
  .programs h2,.campus h2,.tst h2,.news h2{font-size:24px}
  .programs h2 .serif,.campus h2 .serif,.tst h2 .serif,.news h2 .serif{font-size:27px}
  .programs h2 br{display:none}
  .campus h2 br{display:none}
  .news h2 br{display:none}
  .prog-grid{display:grid;grid-template-columns:1fr 1fr;row-gap:34px}
  .prog-col{padding:0 14px}
  .prog-col:first-child{padding:0 14px}
  .prog-col .title{min-height:0}
  .prog-col:not(.active) img{height:240px}
  .prog-col.active img{height:220px}
  .rd-tag{left:-14px;bottom:60px;font-size:13px;padding:16px 20px;border-radius:12px}
  .campus-actions,.about-cta{flex-wrap:wrap;gap:18px}
  .tst-comp{flex-direction:column;align-items:center;text-align:center;gap:28px;margin-top:48px}
  .tst-comp .figure{flex:none;width:min(300px,84%)}
  .tst-comp .fig-dots{right:-26px;width:110px}
  .tst-comp .badges,.tst-comp .stars{justify-content:center}
  .tst-comp .squig{margin-inline:auto}
  .tst-card{padding:24px 56px 24px 22px}
  .tst-card .quote{right:20px;top:26px}
  .tst-card .quote img{width:17px}
  .recruiters{padding:60px 0 40px}
  .recruiters h2{font-size:30px}
  .recruiters .rule{margin:24px 0 30px}
  .logos{gap:14px}
  .logos .lo{height:100px;padding:14px}
  .logos .lo img{max-height:62px}
  .news-card-bg{width:calc(100% - 24px);padding:44px 22px;border-radius:20px}
  .news-feat{margin-bottom:44px}
  .news-feat h3{font-size:21px;margin-bottom:18px}
  .news-grid{grid-template-columns:1fr;gap:30px}
  .news-item .img img{height:auto}
  .date-badge{font-size:11px;padding:7px 12px;top:12px;right:12px}
  .univ h2{font-size:28px}.univ .big{font-size:21px}
  .univ p{font-size:13.5px}
  .univ-wrap{width:calc(100% - 24px)}
  .social-head{margin-bottom:40px}
  .social-head h2{font-size:21px}.social-head h2 .serif{font-size:24px}
  .sm-card{padding:18px}
  .sm-head{flex-wrap:wrap;gap:10px}
  .sm-head .av{width:48px;height:48px}
  .sm-stats{margin-left:0;gap:22px;width:100%}
  .ig-grid{gap:6px}
  .faq-head h2{font-size:28px}
  .faq{width:calc(100% - 40px);padding:4px 20px}
  .faq-item{padding:22px 0}
  .faq-q{font-size:15px;gap:16px}
  .faq-a{font-size:13.5px}
  .footer{margin-top:60px;padding:44px 0 24px;background-size:cover;border-radius:40px 40px 0 0}
  .footer .shield{width:80px;margin-bottom:30px}
  .foot-cols{width:calc(100% - 40px)}
  .foot-cols h4{font-size:17px;margin-bottom:18px}
  .foot-cols a{font-size:14px;margin-bottom:13px}
  .foot-bottom{width:calc(100% - 40px);flex-direction:column;gap:10px;text-align:center;margin-top:40px}
}

/* --- small phones --- */
@media(max-width:480px){
  .container-x{width:calc(100% - 32px)}
  .nav-top{flex-wrap:wrap;gap:12px;justify-content:center}
  .hero-wrap{height:560px;border-radius:0 0 60px 60px}
  .filterbar .links a{font-size:13px}
  .filterbar .fb-btns{width:100%;flex-direction:column;gap:12px}
  .filterbar .links a.btn-apply,.filterbar .links a.btn-viewall{padding:12px 20px;width:100%;text-align:center}
  .about h2{font-size:23px}.about h2 .serif{font-size:26px}
  .prog-grid{display:grid;grid-template-columns:1fr}
  .prog-col + .prog-col{border-left:none;border-top:1px solid #E9D2D3;padding-top:24px;margin-top:6px}
  .prog-col:not(.active) img{height:260px}
  .campus-media{width:100%}
  .tst-card{padding:22px 48px 22px 18px}
  .sm-stats{gap:14px}
  .sm-stats b{font-size:15px}
  .foot-cols{grid-template-columns:1fr;row-gap:36px}
  .footer{border-radius:28px 28px 0 0}
}

/* =====================================================================
   ============  INNER PAGES — shared chrome + components  =============
   ===================================================================== */

/* ---- light header (inner pages) ---- */
/* inner-page header — inherits the homepage nav layout wholesale (flat spread links,
   logo size, spacing, responsive breakpoints); only the colours are inverted for the
   light background so it reads dark-on-white instead of white-on-video. */
.site-header{position:relative;z-index:30;background:#fff}
/* inner pages: both hairlines sampled at #D8C8C8 (a warm pink-grey, not neutral #ededed) */
.site-header .nav-main{border-top:1px solid #D8C8C8;border-bottom:1px solid #D8C8C8}
.site-header .search-ic{color:#1d1d1f}
.site-header .nav-main a{color:#1d1d1f}
.site-header .nav-main a:hover,.site-header .nav-main a.current{color:var(--red)}
.site-header .nav-burger span{background:#1d1d1f}

/* ---- page hero banner (light bg + soft-pink blob behind text + curved image inset) ---- */
.page-hero{position:relative;overflow:hidden;background:#fff}
.page-hero::before{content:"";position:absolute;left:0;top:0;bottom:0;right:0;z-index:0;
  background:linear-gradient(120deg,#fdf2f3 0%,#fbe8ea 42%,#f6dcde 100%);
  border-radius:0 0 210px 210px}
.page-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:30px;
  align-items:center;min-height:clamp(440px,36vw,693px);padding:44px 0 48px}
.page-hero-text{max-width:740px}
/* Frames 10/11/29/33: soft-pink pill, no drop shadow, dark ink text throughout (the
   trailing page name is NOT red). Sampled fill #F7D0D0, text #313134. */
.breadcrumb{display:inline-block;background:#F7D0D0;color:#313134;font-size:10.5px;font-weight:600;
  letter-spacing:1.4px;text-transform:uppercase;padding:8px 18px;border-radius:30px;margin-bottom:24px;
  box-shadow:none}
.breadcrumb b{color:inherit}
.page-hero h1{font-size:clamp(22px,1.95vw,36px);font-weight:400;line-height:1.42;color:var(--ink)}
.page-hero h1 .hl{color:var(--red);font-weight:700;font-family:var(--serif)}
.page-hero h1 .em{color:var(--ink);font-weight:700;font-family:var(--serif)}
.page-hero-img{position:absolute;top:0;right:0;bottom:0;width:52%;z-index:1;
  border-radius:0 0 210px 0;overflow:hidden;
  -webkit-mask-image:linear-gradient(100deg,transparent 2%,rgba(0,0,0,.35) 16%,#000 36%);
  mask-image:linear-gradient(100deg,transparent 2%,rgba(0,0,0,.35) 16%,#000 36%)}
.page-hero-img img{width:100%;height:100%;object-fit:cover}

/* ---- generic inner section ---- */
.isec{padding:72px 0}
.isec-narrow{max-width:1280px;margin-inline:auto}
.center-head{text-align:center;max-width:900px;margin:0 auto}
.center-head .pill{margin-bottom:18px}
.center-head h2{font-size:clamp(26px,2.6vw,40px);font-weight:400;line-height:1.4;margin-bottom:10px}
.center-head h2 .serif{font-weight:700}

/* ---- About: intro ---- */
.about-intro{padding:74px 0 20px;text-align:center}
.about-intro h2{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3vw,46px);margin-bottom:6px}
.about-intro .sub{font-size:clamp(19px,2vw,30px);font-weight:400;color:var(--ink)}
.about-cols{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:center;text-align:left;
  margin-top:48px}
.about-cols .ph img{border-radius:16px;width:100%;object-fit:cover}
.about-cols .body p{margin-bottom:16px;font-size:14px;line-height:1.85}
.about-cols .body .btn-link{margin-top:8px}

/* ---- About: Vision / Mission / Believe ---- */
.vmb{background:linear-gradient(180deg,#ffffff 0%,#fdeff1 34%,#fbe6e9 100%);padding:64px 0}
.vmb-grid{display:grid;grid-template-columns:1fr 1.05fr .62fr;gap:46px;align-items:start}
.vmb h3{font-family:var(--serif);font-weight:700;font-size:30px;color:var(--ink);margin:0 0 12px}
.vmb p{font-size:13.5px;line-height:1.85}
.vmb .mission{margin-top:34px}
.vmb .believe p + p{margin-top:16px}
.vmb .grad{align-self:center}
.vmb .grad img{width:100%;border-radius:16px}

/* ---- About: AICTE accreditation ---- */
.aicte{background:radial-gradient(ellipse 52% 135% at 50% 34%,#ffe0eb 0%,#ffeef2 46%,#ffffff 78%);padding:58px 0}
.aicte-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:50px;align-items:center}
.aicte .pill{margin-bottom:20px}
.aicte h2{font-size:clamp(24px,2.5vw,38px);font-weight:400;line-height:1.42}
.aicte h2 .serif{font-weight:700}
.aicte-badge{justify-self:center;text-align:center;background:#fff;border-radius:16px;
  padding:26px;box-shadow:0 18px 50px rgba(0,0,0,.08);width:300px;max-width:100%}
.aicte-badge .aicte-gear{width:100%;display:block}

/* ---- collaboration tabs (pill switcher) ---- */
.collab-tabs{display:flex;gap:8px;background:#fff;padding:8px;border-radius:40px;
  box-shadow:0 10px 30px rgba(0,0,0,.08);margin-top:30px;max-width:720px;width:100%}
.collab-tabs a{flex:1;text-align:center;padding:11px 18px;border-radius:30px;font-size:13px;font-weight:600;
  color:#6a6a6a;letter-spacing:.4px;transition:.25s;white-space:nowrap}
.collab-tabs a:hover{color:var(--red)}
.collab-tabs a.active{background:var(--red);color:#fff}
.collab-tabbar{position:sticky;top:0;z-index:40;background:#fff;padding:14px 0;box-shadow:0 6px 18px rgba(0,0,0,.06)}
.collab-tabbar .collab-tabs{margin:0 auto}

/* ---- generic media + text split ---- */
/* Frames 12-15: the logo card is ~450x255 and the whole logo+copy group is ~1090px wide,
   centred in the container (ACCA 416..1524, T-HUB 421..1500, FICCI 413..1505). Left to the
   full 1654px container the media track ballooned to ~640px — the "image background width
   extra" report on all four collaboration pages. */
.msplit{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:center;
  max-width:1090px;margin-inline:auto}
.msplit.rev{grid-template-columns:1.15fr .85fr}
.msplit .logo-card{background:#fff;border-radius:18px;display:flex;align-items:center;
  justify-content:center;box-shadow:0 18px 50px rgba(0,0,0,.06);min-height:255px;max-width:452px;width:100%}
.msplit .logo-card img{max-width:70%;max-height:150px;object-fit:contain}
.msplit h2{font-size:clamp(24px,2.4vw,38px);font-weight:400;line-height:1.4;margin-bottom:18px}
.msplit h2 .text-red{font-weight:600}
.msplit p{font-size:13.5px;line-height:1.9;margin-bottom:14px}

/* ---- photo gallery strip ---- */
.gallery-head{text-align:center;font-size:clamp(22px,2.4vw,34px);font-weight:400;margin-bottom:40px}
.gallery-head .text-red{font-weight:600}
.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.gallery img{width:100%;height:175px;object-fit:cover;border-radius:12px}
@media(max-width:992px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* ---- pillars / card grid ---- */
.cardgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:50px}
.pillar{text-align:left}
.pillar img{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-bottom:18px;filter:grayscale(1)}
.pillar h4{font-size:15px;font-weight:700;margin-bottom:10px;color:var(--red)}
.pillar p{font-size:12.5px;line-height:1.7;color:#555}

/* ---- press clippings ---- */
.press{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-top:36px}
.press img{width:100%;height:270px;object-fit:contain;border-radius:10px;border:1px solid #eee;background:#fff;padding:6px}

/* ---- accordion (calendar) ---- */
.acc{width:min(1320px,calc(100% - 80px));margin:44px auto 0;display:grid;
  grid-template-columns:1fr 1fr;gap:26px 40px}
.acc-item{border:1px solid #ececec;border-radius:14px;background:#fff;overflow:hidden;align-self:start;
  transition:box-shadow .25s}
.acc-item:hover{box-shadow:0 14px 34px rgba(0,0,0,.06)}
.acc-row{display:flex;align-items:center;gap:22px;padding:20px 26px;cursor:pointer}
.acc-row img{width:112px;height:84px;object-fit:cover;border-radius:10px;flex-shrink:0;filter:grayscale(1)}
.acc-row .acc-t{flex:1;font-size:15.5px;font-weight:600;color:#222}
.acc-item.open .acc-row .acc-t{color:var(--red)}
.acc-row .acc-plus{font-size:26px;color:#c5c5c5;font-weight:300;line-height:1}
.acc-item.open .acc-row .acc-plus{color:var(--red)}
.acc-body{display:none;padding:0 26px 22px 160px}
.acc-item.open .acc-body{display:block}
.acc-body a{display:inline-flex;align-items:center;gap:12px;font-size:14px;color:#333;font-weight:500}
.acc-body a:hover{color:var(--red)}
@media(max-width:560px){ .acc-body{padding-left:22px} }

/* ---- inner pages responsive ---- */
@media(max-width:992px){
  .page-hero{background:linear-gradient(180deg,#fdeff1 0%,#fbe6e9 100%)}
  .page-hero::before{display:none}
  .page-hero-grid{grid-template-columns:1fr;min-height:0;padding:34px 0 34px}
  .page-hero-img{position:relative;top:auto;width:100%;height:210px;margin-top:24px;border-radius:16px;
    border-bottom-left-radius:16px;-webkit-mask-image:none;mask-image:none}
  .about-cols{grid-template-columns:1fr;gap:30px}
  .vmb-grid{grid-template-columns:1fr;gap:34px}
  .vmb .grad img{max-width:360px}
  .aicte-grid{grid-template-columns:1fr;gap:30px;text-align:center}
  .msplit,.msplit.rev{grid-template-columns:1fr;gap:30px}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .cardgrid{grid-template-columns:repeat(2,1fr)}
  .press{grid-template-columns:repeat(2,1fr)}
  .acc{grid-template-columns:1fr;width:calc(100% - 40px)}
}
@media(max-width:560px){
  .isec{padding:48px 0}
  .cardgrid{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .press{grid-template-columns:repeat(2,1fr)}
  .collab-tabs{width:100%;justify-content:center}
}

/* ---- collaboration page specifics ---- */
.collab-body{padding:60px 0}
.collab-name{text-align:center;font-size:clamp(26px,2.6vw,40px);font-weight:400;margin-bottom:42px}
.collab-name .serif{font-family:var(--serif);font-weight:700}
.collab-name .text-red{font-weight:700}
.collab-name small{font-size:16px;color:#999;font-weight:400}
.logo-card.pink{box-shadow:none}
.brand-acca{background:#E2231A;color:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:800;
  font-size:clamp(38px,5vw,58px);letter-spacing:2px;padding:30px 48px;border-radius:6px;display:inline-block}
.brand-isdc{font-family:Arial,Helvetica,sans-serif;text-align:center}
.brand-isdc .mark{font-size:clamp(36px,5vw,54px);font-weight:800;letter-spacing:1px;line-height:1}
.brand-isdc .mark .b{color:#15479e}.brand-isdc .mark .r{color:#e2231a}
.brand-isdc .cap{font-size:11px;color:#555;margin-top:8px;letter-spacing:.4px}
.collab-cta{margin-top:24px;display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.collab-foot{font-size:13px;line-height:1.9;color:#555;margin-top:34px}

/* course objectives */
.obj-head{text-align:center;font-size:clamp(23px,2.4vw,36px);font-weight:400;margin:6px 0 0}
.obj-head .serif{font-family:var(--serif);font-weight:700}
.obj-head .text-red{font-weight:700}
.obj-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 54px;margin-top:40px}
.obj{display:flex;gap:14px;align-items:flex-start;border-bottom:1px solid #eee;padding:20px 0}
.obj i{color:var(--red);font-size:15px;margin-top:3px;flex-shrink:0}
.obj p{font-size:13px;line-height:1.75;margin:0;color:#555}

/* full-width section strip image + titles */
.strip{width:100%;border-radius:14px;display:block}
.section-title{text-align:center;font-size:clamp(22px,2.3vw,34px);font-weight:400;margin-bottom:34px}
.section-title .serif{font-family:var(--serif);font-weight:700}
.section-title .text-red{font-weight:700}

/* press release split */
.press-split{display:grid;grid-template-columns:1.12fr .88fr;gap:48px;align-items:start;margin-top:28px}
.press-split p{font-size:13px;line-height:1.95;margin-bottom:16px;color:#555}
.press-split .pgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.press-split .pgrid img{width:100%;height:135px;object-fit:cover;border-radius:12px}
.more-links{margin-top:30px;font-size:12.5px;color:#555;letter-spacing:.3px;display: flex;}
.more-links .lbl{color:var(--red);font-weight:700;text-transform:uppercase;margin-right:6px}
.more-links a{display:inline-flex;gap:6px;color:#333;font-weight:600;transition:color .2s ease}
.more-links a i{font-size:14px;transition:transform .25s ease}
.more-links a:hover{color:var(--red)}
.more-links a:hover i{transform:translate(3px,-3px)}

@media(max-width:992px){
  .obj-grid{grid-template-columns:1fr;gap:0}
  .press-split{grid-template-columns:1fr;gap:28px}
}

/* placements (ACCA) */
.place-grid{display:flex;gap:24px;margin-top:44px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
.place-grid::-webkit-scrollbar{display:none}
.place-grid .place{flex:0 0 clamp(240px,23%,300px);scroll-snap-align:start}
.place{background:var(--pink-bg);border-radius:16px;padding:14px;text-align:center}
.place img{width:100%;height:230px;object-fit:cover;border-radius:12px;margin-bottom:14px}
.place b{font-size:14.5px;font-weight:600;color:#222;display:block;padding-bottom:6px}

/* ---- course structure (alternating school rows) ---- */
.cs-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:54px}
.cs-row .cs-media{order:1}
.cs-row .cs-text{order:2}
.cs-row.rev .cs-media{order:2}
.cs-row.rev .cs-text{order:1}
.cs-row .cs-media img{width:100%;height:330px;object-fit:cover;border-radius:18px;
  box-shadow:0 22px 50px rgba(0,0,0,.08)}
.cs-school{color:var(--red);font-size:clamp(18px,1.7vw,22px);font-weight:700;margin-bottom:22px}
.cs-prog{display:flex;gap:13px;align-items:flex-start;margin-bottom:16px;font-size:14px;color:#444;
  transition:color .2s ease}
a.cs-prog:hover{color:var(--red)}
.cs-prog i{color:var(--red);font-size:16px;margin-top:2px;flex-shrink:0}
@media(max-width:768px){
  .cs-row{grid-template-columns:1fr;gap:24px;margin-bottom:40px}
  .cs-row .cs-media,.cs-row.rev .cs-media{order:1}
  .cs-row .cs-text,.cs-row.rev .cs-text{order:2}
}

/* =====================================================================
   ==========  v2 — full-site IA chrome + reusable components  =========
   (dropdown nav, grouped drawer, 5-col footer, and generic building
    blocks used by the PDF-derived inner pages)
   ===================================================================== */

/* ---- top-nav dropdown menus ---- */
.site-header .nav-main ul{overflow:visible}
.site-header .nav-main li{position:relative;display:flex;align-items:center}
.site-header .nav-main li > a{display:inline-flex;align-items:center;gap:6px}
.site-header .nav-main li > a i{font-size:10px;opacity:.6;transition:transform .25s}
.site-header .nav-main li.has-sub:hover > a i{transform:rotate(180deg)}
.subnav{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);min-width:230px;
  background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.14);padding:12px;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease;
  z-index:60;border:1px solid #f0e6e7}
.site-header .nav-main li.has-sub:hover > .subnav,
.site-header .nav-main li.has-sub:focus-within > .subnav{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,6px)}
.subnav::before{content:"";position:absolute;top:-10px;left:0;right:0;height:12px}
.subnav a{display:block;padding:10px 16px;border-radius:9px;font-size:13px;font-weight:500;color:#444;letter-spacing:.2px;white-space:nowrap}
.subnav a:hover,.subnav a.current{background:var(--pink-bg);color:var(--red)}
@media(max-width:992px){ .subnav{display:none} }

/* ---- grouped drawer ---- */
.drawer-group{margin-bottom:16px}
.drawer-group .drawer-h{display:block;color:var(--red);font-size:12px;font-weight:700;letter-spacing:1.4px;
  text-transform:uppercase;margin:14px 0 8px}
.drawer-nav .drawer-group a{color:#e9e9e9;font-size:15px;font-weight:400;padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.06)}
.drawer-nav .drawer-group a:hover{color:var(--red);padding-left:8px}

/* ---- 5-column footer ---- */
.foot-cols-5{grid-template-columns:repeat(5,1fr)}
.foot-cols-5 h4{font-size:16px}
.foot-cols-5 a{font-size:14px;margin-bottom:10px}
@media(max-width:992px){ .foot-cols-5{grid-template-columns:repeat(3,1fr);row-gap:36px} }
@media(max-width:560px){ .foot-cols-5{grid-template-columns:repeat(2,1fr)} }

/* ---- section intro (centered pill + serif/red heading) ---- */
.sec{padding:60px 0}
.sec-pink{background:linear-gradient(180deg,#ffffff 0%,#fdeff1 40%,#fbe7ea 100%)}
.sec-pink-soft{background:linear-gradient(180deg,#ffffff 0%,#fdeff1 50%,#ffffff 100%)}
.intro{text-align:center;max-width:940px;margin:0 auto 46px}
.intro .pill{margin-bottom:18px}
.intro h2{font-size:clamp(26px,2.7vw,42px);font-weight:400;line-height:1.35}
.intro h2 .serif{font-family:var(--serif);font-weight:700}
.intro h2 .text-red{font-weight:700}
.intro p{margin-top:16px;font-size:14.5px;max-width:760px;margin-inline:auto}
.eyebrow{color:var(--red);font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.3vw,34px);text-align:center;margin-bottom:34px}
.eyebrow.left{text-align:left}

/* ---- chip / filter bar ---- */
.chipbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:0 auto 40px}
/* Figma frames 19/21/26/27/29/31/33/35/38 all draw these filter buttons as RECTANGLES with a
   6px corner radius (measured off frame 29: outer edge flat by top+5.5px, matching r=6 at five
   sample rows). No frame in the deck uses a pill-shaped chip — clubs.html (frame 27) and the
   gallery/faculty bars are rectangular too — so the square radius is the default. `.chip--pill`
   stays available as an opt-in for any page that genuinely wants the old pill. */
.chip{background:#fff;border:1px solid #ecd9da;color:#555;font-size:13px;font-weight:500;letter-spacing:.3px;
  padding:11px 24px;border-radius:6px;cursor:pointer;transition:.22s;white-space:nowrap}
.chip--pill{border-radius:30px}
.chip:hover{border-color:var(--red);color:var(--red)}
.chip.active{background:var(--red);color:#fff;border-color:var(--red)}

/* ---- people / faculty / team cards ---- */
.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.people-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.person{background:var(--pink-bg);border-radius:18px;padding:16px;text-align:center;
  transition:transform .3s ease,box-shadow .3s ease}
.person:hover{transform:translateY(-6px);box-shadow:0 24px 46px -22px rgba(20,20,40,.4)}
.person .ph{border-radius:14px;overflow:hidden;aspect-ratio:1/1;margin-bottom:16px;background:#e9dcdd}
.person .ph img{width:100%;height:100%;object-fit:cover}
.person h4{font-size:16px;font-weight:600;margin-bottom:6px}
.person .role{color:var(--red);font-size:12.5px;font-weight:600;margin-bottom:8px}
.person .meta{font-size:12px;color:#777;line-height:1.6;margin-bottom:14px;min-height:34px}
.person .btn-red{font-size:11px;padding:11px 22px}
@media(max-width:992px){.people-grid,.people-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.people-grid,.people-grid.cols-3{grid-template-columns:1fr}}

/* ---- feature / icon cards ---- */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.feature-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.feature{background:#fff;border:1px solid #f0e3e4;border-radius:18px;padding:30px 26px;
  transition:transform .3s ease,box-shadow .3s ease}
.feature:hover{transform:translateY(-6px);box-shadow:0 24px 46px -24px rgba(20,20,40,.35)}
.feature .ic{width:56px;height:56px;border-radius:14px;background:var(--pink-bg);color:var(--red);
  display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:20px}
.feature h4{font-size:17px;font-weight:600;margin-bottom:10px}
.feature p{font-size:13px;line-height:1.75}
@media(max-width:992px){.feature-grid,.feature-grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.feature-grid,.feature-grid.cols-4{grid-template-columns:1fr}}

/* ---- check list (clubs, committees, objectives) ---- */
.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 26px}
.check-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.check{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #f0e3e4;
  border-radius:12px;padding:16px 18px;font-size:13.5px;color:#333;font-weight:500}
.check i{color:#fff;border-radius:50%;width:20px;height:20px;min-width:20px;
  display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:1px}
@media(max-width:900px){.check-grid,.check-grid.cols-2{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.check-grid,.check-grid.cols-2{grid-template-columns:1fr}}

/* ---- stat row ---- */
.statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;
  background:var(--pink-bg);border-radius:20px;padding:38px 34px;text-align:center}
.statbar .stat .num{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3vw,44px);color:var(--red)}
.statbar .stat .lbl{font-size:12.5px;color:#555;letter-spacing:.4px;margin-top:6px}

/* ---- logo wall (recruiters / partners) ---- */
.logo-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.logo-wall .lw{background:#fff;border:1px solid #ececec;border-radius:12px;height:118px;display:flex;
  align-items:center;justify-content:center;padding:18px;transition:transform .25s,box-shadow .25s}
.logo-wall .lw:hover{transform:translateY(-4px);box-shadow:0 16px 30px -18px rgba(0,0,0,.3)}
.logo-wall .lw img{max-height:70px;max-width:82%;width:auto;object-fit:contain}
@media(max-width:992px){.logo-wall{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.logo-wall{grid-template-columns:repeat(2,1fr)}}

/* ---- report / document cards ---- */
.doc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.doc{background:#fff;border:1px solid #eee;border-radius:16px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.doc:hover{transform:translateY(-6px);box-shadow:0 22px 44px -24px rgba(0,0,0,.35)}
.doc img{width:100%;height:250px;object-fit:cover;background:#f4eef0}
.doc .cap{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.doc .cap b{font-size:13.5px;font-weight:600;color:#222}
@media(max-width:992px){.doc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.doc-grid{grid-template-columns:1fr}}

/* ---- gallery masonry (campus) ---- */
.mgrid{columns:4;}
.mgrid img{width:100%;border-radius:14px;margin-bottom:16px;display:block;break-inside:avoid;object-fit:cover}
@media(max-width:992px){.mgrid{columns:3}}
@media(max-width:640px){.mgrid{columns:2}}

/* ---- contact / admission form ---- */
.form-split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:start}
.form-card{background:#fff;border:1px solid #f0e3e4;border-radius:20px;padding:34px 32px;
  box-shadow:0 24px 60px -30px rgba(20,20,40,.25)}
.form-card h3{font-family:var(--serif);font-weight:700;font-size:24px;margin-bottom:6px}
.form-card .fsub{font-size:13px;color:#777;margin-bottom:24px}
.field{margin-bottom:18px}
.field label{display:block;font-size:12px;font-weight:600;letter-spacing:.4px;color:#555;margin-bottom:8px;text-transform:uppercase}
.field input,.field select,.field textarea{width:100%;border:1px solid #e6dadb;border-radius:10px;
  padding:14px 16px;font-family:inherit;font-size:14px;color:#333;outline:none;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red)}
.field textarea{min-height:120px;resize:vertical}
.info-list{display:flex;flex-direction:column;gap:22px}
.info-row{display:flex;gap:5px;align-items:center}
.info-row .ic{width:50px;height:50px;min-width:50px;border-radius:14px;color:var(--red);
  display:flex;align-items:center;justify-content:center;font-size:20px}
.info-row h4{font-size:15px;font-weight:600;margin-bottom:5px}
.info-row p{font-size:13.5px;line-height:1.7}
@media(max-width:900px){.form-split{grid-template-columns:1fr;gap:34px}}

/* ---- quote block (director's message) ---- */
/* Measured off Figma frame 11 (1920 artboard, 1:1 with the 1654px container):
   portrait 557x566 (near-square, NOT 4:5) at x=133; message column x=879..1768;
   body copy 26px / 50px leading; author name 18px bold; designation 18px regular #606062. */
.quote-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.quote-split .qimg{border-radius:20px;overflow:hidden;aspect-ratio:557/566;max-width:560px;background:#e9dcdd}
.quote-split .qimg img{width:100%;height:100%;object-fit:cover}
.quote-split .qmark{color:var(--red);font-size:130px;font-family:var(--serif);line-height:.42;font-weight:700}
.quote-split blockquote{font-size:clamp(17px,1.35vw,26px);line-height:1.92;color:var(--muted);font-weight:400;
  margin:26px 0 34px;border:0}
.quote-split .qby b{display:block;font-size:18px;color:var(--ink);line-height:1.7}
.quote-split .qby span{font-size:18px;color:#606062;font-weight:400;line-height:1.7}
@media(max-width:900px){.quote-split{grid-template-columns:1fr;gap:30px}}

/* ---- generic media+text split ---- */
/* Guard: site.js adds a `split` state-class to every .reveal-words heading for the word
   animation. That must NEVER pick up the 2-column grid below, or headings explode into a
   word stack. Headings are never real .split containers, so force them back to block. */
.reveal-words.split,h1.split,h2.split,h3.split{display:block;grid-template-columns:none;gap:0;align-items:initial}
.split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.split.rev > .split-media{order:2}
.split .split-media img{width:100%;border-radius:18px;object-fit:cover;box-shadow:0 22px 50px -28px rgba(20,30,60,.4)}
.split h2{font-size:clamp(24px,2.3vw,36px);font-weight:400;line-height:1.4;margin-bottom:18px}
.split h2 .serif{font-family:var(--serif);font-weight:700}.split h2 .text-red{font-weight:700}
.split p{font-size:13.5px;line-height:1.9;margin-bottom:14px}
@media(max-width:900px){.split,.split.rev{grid-template-columns:1fr;gap:28px}.split.rev > .split-media{order:0}}

/* ---- timeline (inception / growth) ---- */
.timeline{position:relative;max-width:900px;margin:40px auto 0;padding-left:30px}
.timeline::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:#f0d4d6}
.tl-item{position:relative;padding:0 0 30px 26px}
.tl-item::before{content:"";position:absolute;left:-25px;top:5px;width:14px;height:14px;border-radius:50%;
  background:var(--red);border:3px solid #fff;box-shadow:0 0 0 2px #f0d4d6}
.tl-item h4{color:var(--red);font-size:16px;font-weight:700;margin-bottom:6px}
.tl-item p{font-size:13.5px;line-height:1.8}

/* ---- CTA banner ---- */
.cta-band{background:linear-gradient(120deg,#fdeef0,#fbe4e7);border-radius:24px;padding:54px;text-align:center;
  border:1px solid #f4e4e5}
.cta-band h2{font-family:var(--serif);font-weight:700;font-size:clamp(24px,2.5vw,36px);margin-bottom:12px}
.cta-band p{max-width:640px;margin:0 auto 26px;font-size:14px}

/* ---- FAQ / doc download banner (solid maroon bar) ---- */
.faq-banner{display:block;background:#7A1B1E;color:#fff;font-weight:700;font-size:16px;
  padding:18px 24px;border-radius:2px;text-decoration:none;transition:background .2s}
.faq-banner:hover{background:var(--red);color:#fff}

/* =========================================================
   PAGE-SCOPED STYLES
   Consolidated from the per-page inline <style> blocks.
   Every page carries a unique body class (.p-<page>) and its rules
   are scoped to it, so merging cannot leak rules between pages.
   ========================================================= */

/* ===================== about.html ===================== */
/* ===== About page — scoped refinements (override shared where needed) ===== */
/* Intro band: 1553px content width, 761px slide + 49px gutter + 743px copy (frame 10) */
.p-about .about-intro .about-cols{max-width:1553px;margin-inline:auto;
  grid-template-columns:49% minmax(0,1fr);gap:3.15%;align-items:start}
/* Intro image: relative so the slider arrows can sit inside its bottom-right corner */
.p-about .about-intro .about-cols .ph{position:relative;line-height:0}.p-about .about-intro .about-cols .ph img{aspect-ratio:16/9;height:auto}
/* Slider slides: only the active one is shown */
.p-about .about-slide{display:none;width:100%;aspect-ratio:16/9;border-radius:16px;object-fit:cover}.p-about .about-slide.is-active{display:block}
/* Arrows sit flush inside the slide, mirroring the homepage .cc-prev/.cc-next treatment */
.p-about .about-intro .slider-nav{position:absolute;right:30px;bottom:34px;display:flex;gap:0;z-index:3;line-height:1}.p-about .about-intro .slider-nav button{width:52px;height:52px;border-radius:50%;border:none;font-size:19px;
  line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,color .2s ease}.p-about .about-intro .slider-nav button:first-child{background:#fff;color:#161616;margin-right:-9px;position:relative;z-index:1}.p-about .about-intro .slider-nav button:first-child:hover{background:#eee}.p-about .about-intro .slider-nav button:last-child{background:#313134;color:#fff}.p-about .about-intro .slider-nav button:last-child:hover{background:#4a4a4a}
/* Accreditation: the frame constrains this block to ~1310px and centres it */
.p-about .aicte .aicte-grid{max-width:1310px;margin-inline:auto}.p-about .aicte .aicte-badge{width:100%;max-width:430px}
/* ===== Mobile ===== */
@media(max-width:992px){.p-about .about-intro .about-cols{max-width:100%;grid-template-columns:1fr;gap:30px}.p-about .aicte .aicte-badge{margin-inline:auto}
}@media(max-width:768px){.p-about .about-intro .slider-nav{right:16px;bottom:16px}.p-about .about-intro .slider-nav button{width:42px;height:42px;font-size:16px}.p-about .about-intro .slider-nav button:first-child{margin-right:-7px}
}

/* ===================== academic-calendar.html ===================== */
/* ===== Academic Calendar (page-scoped) =====
   Frame 23: the open row's PDF line starts at x159 against a card edge of x132 — a 27px inset,
   the same gutter as the .acc-row above it. The shared .acc-body ships a 160px left pad that
   pushed the file link out under the middle of the row. */
.p-academic-calendar .acc-body{padding-left:26px}
/* Frame 23 draws a real PDF document icon (33×45, folded top-right corner, white "PDF"
   lettering), not a red text badge. Inline SVG so it needs no asset. */
.p-academic-calendar .acc-body a{gap:21px;align-items:center}.p-academic-calendar .acc-body a .pdf-ico{width:33px;height:45px;flex-shrink:0;display:block}@media(max-width:560px){.p-academic-calendar .acc-body{padding-left:22px} }
/* A school may list several calendars. The shared .acc-body sets its links
   inline-flex, which would run them together on one line, so stack them here.
   Scoped to the open row: the closed one must keep the shared display:none. */
.p-academic-calendar .acc-item.open .acc-body{display:flex;flex-direction:column;align-items:flex-start;gap:18px}

/* ===================== academic-leadership.html ===================== */
/* Academic Leadership — page-only tweaks (prefix .al-) */
/* site.js adds a `.split` class to every .reveal-words element, which collides with
   the `.split` two-column grid utility in style.css. Neutralise it so headings flow normally. */
.p-academic-leadership .reveal-words.split{display:block;grid-template-columns:none}.p-academic-leadership .al-leaders{padding:40px 0 84px}
/* NOTE: this page used to shrink .page-hero-grid to clamp(320px,24vw,380px). Frame 18 draws the
   same 693px hero banner as every other inner page (nav ends y216, hero curve bottom y900), so the
   override is gone and the shared .page-hero-grid height applies. */
/* Frame 18 card geometry: card 135→516 = 382px wide with a 41px column gap; the square photo is
   inset 32px from the card edge and sits 35px above the name. */
.p-academic-leadership .al-leaders .people-grid{gap:40px}.p-academic-leadership .al-leaders .person{text-align:left;background:#fff;border:1px solid #F8D0D0;border-radius:16px;padding:30px;box-shadow:none}.p-academic-leadership .al-leaders .person:hover{transform:translateY(-4px);box-shadow:0 18px 36px -22px rgba(20,20,40,.28)}.p-academic-leadership .al-leaders .person .ph{aspect-ratio:1/1;background:#f6d9db;border-radius:12px;margin-bottom:35px}.p-academic-leadership .al-leaders .person .ph img{object-fit:cover}.p-academic-leadership .al-leaders .person h4{font-size:16px;font-weight:600;margin-bottom:8px;color:#1c1c28}.p-academic-leadership .al-leaders .person .role{color:#3a3a44;font-size:12px;font-weight:500;margin-bottom:6px;line-height:1.5}.p-academic-leadership .al-leaders .person .meta{color:#8a8a92;font-size:12px;line-height:1.6;min-height:0;margin-bottom:0}@media(max-width:520px){.p-academic-leadership .al-leaders .person{text-align:left}}

/* ===================== academic-resources.html ===================== */
/* ===== Academic Resources page-scoped overrides ===== */
/* Frame 22 intro block: the photo column runs 134→893 (760px) and the copy column 949→1785
   (836px) across the 1654px container — i.e. the image is far wider than the shared
   .about-cols .82fr/1.18fr split gives it. */
.p-academic-resources .ar-intro .about-cols{grid-template-columns:.91fr 1fr;gap:56px}.p-academic-resources .ar-intro .about-cols .ph img{border-radius:16px}
/* Frame 22 CTA: "Read More" is drawn title-case in an 123×60 box (not the 14px uppercase
   .btn-red default, which renders far too large/shouty here). */
.p-academic-resources .ar-intro .btn-red{font-size:18px;font-weight:700;letter-spacing:0;text-transform:none;
  padding:18px 16px;line-height:1.2;margin-top:10px}
/* Frame 22 pillar cards: card 132→514 (382px) with a 24px inset, and the photo is square. */
.p-academic-resources .ar-cards{grid-template-columns:repeat(4,1fr);gap:40px;margin-top:44px;align-items:stretch}.p-academic-resources .ar-cards .pillar{
  border:1px solid #F8D0D0;
  border-radius:12px;
  background:#fff;
  padding:24px 24px 30px;
  box-shadow:0 1px 3px rgba(0,0,0,.03);
  display:flex;flex-direction:column;
}.p-academic-resources .ar-cards .pillar img{height:auto;aspect-ratio:1/1;margin-bottom:20px;border-radius:8px}.p-academic-resources .ar-cards .pillar h4{font-size:15px;margin-bottom:10px}.p-academic-resources .ar-cards .pillar p{color:#575757}
/* ===== Mobile responsiveness ===== */
@media (max-width:760px){.p-academic-resources .ar-cards{grid-template-columns:1fr;gap:20px}.p-academic-resources .ar-cards .pillar img{aspect-ratio:16/10}.p-academic-resources .ar-intro .about-cols{grid-template-columns:1fr}
}@media (min-width:601px) and (max-width:980px){.p-academic-resources .ar-cards{grid-template-columns:repeat(2,1fr)}
}

/* ===================== achievements.html ===================== */
/* ===== Achievements page-only styles (prefix .ac-) ===== */
.p-achievements .ac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}.p-achievements .ac-card{background:#fff;border:1px solid #F8D0D0;border-radius:16px;min-width:0;
  padding:50px 30px 44px;display:flex;flex-direction:column;min-height:400px;
  transition:transform .25s,box-shadow .25s,border-color .25s}.p-achievements .ac-card:hover{transform:translateY(-6px);border-color:#f0b9bb;
  box-shadow:0 24px 46px -24px rgba(20,20,40,.35)}.p-achievements .ac-ico{width:68px;height:68px;display:block;margin-bottom:54px}.p-achievements .ac-cat{color:var(--red);font-size:11.5px;font-weight:600;letter-spacing:.3px;margin-bottom:9px}.p-achievements .ac-card h3{font-size:17px;font-weight:600;line-height:1.62;color:#2b2b2e}.p-achievements .ac-foot{margin-top:auto;padding-top:36px;display:flex;align-items:baseline;
  justify-content:space-between;gap:16px}.p-achievements .ac-who{font-size:11.5px;font-weight:600;color:#3a3a3d;line-height:1.5}.p-achievements .ac-when{font-size:11.5px;font-weight:500;color:#7c7c7c;white-space:nowrap}.p-achievements .ac-more{text-align:center;margin-top:48px}@media(max-width:1100px){.p-achievements .ac-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.p-achievements .ac-grid{grid-template-columns:1fr}.p-achievements .ac-card{min-height:0;padding:34px 24px 28px}.p-achievements .ac-ico{margin-bottom:32px}.p-achievements .ac-foot{padding-top:26px;flex-direction:column;align-items:flex-start;gap:6px}
}

/* ===================== administration.html ===================== */
/* ===== Administration page-only styles (prefix .adm-) ===== */
/* neutralise global .split (2-col grid) that site.js adds to .reveal-words headings */
.p-administration .page-hero h1.reveal-words.split{display:block;grid-template-columns:none}
/* Frame 16 geometry (1920 artboard, 1654 container = 1:1):
   dept rail x132..534 (402 wide, 59px tall buttons, 19px apart);
   people grid starts x559 -> 25px column gap; person card 382 wide (x559..940),
   41px grid gap; card padding 31px -> 320x320 photo plate (#F7D0D0);
   pager bar x559..910 (LEFT aligned with the grid), y2350..2423, pink fill, r16. */
.p-administration .adm-team{background:#fdf3f4;padding:74px 0}.p-administration .adm-grid{display:grid;grid-template-columns:402px 1fr;gap:25px;align-items:start}
/* department selector (vertical) */
.p-administration .adm-depts{display:flex;flex-direction:column;gap:19px}.p-administration .adm-dept{width:100%;text-align:left;background:#fff;border:1px solid #ecd9da;color:#333;
  font-family:inherit;font-size:13.5px;font-weight:500;padding:16px 20px;border-radius:10px;
  cursor:pointer;transition:.2s ease}.p-administration .adm-dept:hover{border-color:var(--red);color:var(--red)}.p-administration .adm-dept.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:600;
  box-shadow:0 14px 26px -14px rgba(210,35,42,.6)}
/* people cards */
.p-administration .adm-people{display:grid;grid-template-columns:repeat(3,1fr);gap:41px}.p-administration .adm-card{background:#fff;border:1px solid #F7D0D0;border-radius:14px;padding:10px;
  transition:transform .25s ease,box-shadow .25s ease}.p-administration .adm-card:hover{transform:translateY(-5px);box-shadow:0 22px 40px -22px rgba(20,20,40,.35)}
/* The staff portrait sits ON a pink plate with padding and is contained inside it,
   instead of a cover-crop that fills the box edge to edge and reads as zoomed in. */
.p-administration .adm-card .ph{aspect-ratio:1/1;border:0;border-radius:12px;overflow:hidden;
  background:#F7D0D0;margin-bottom:26px}.p-administration .adm-card .ph img{width:100%;height:100%;object-fit:contain;object-position:center bottom;
  display:block}.p-administration .adm-card h4{font-size:15.5px;font-weight:600;color:var(--ink);margin-bottom:6px}.p-administration .adm-card .role{font-size:12.5px;color:#7a7a7a;font-weight:400}
/* pager — left aligned with the people grid, soft pink plate, no border */
.p-administration .adm-pager-wrap{display:flex;justify-content:flex-start;margin-top:41px}.p-administration .adm-pager{display:inline-flex;align-items:center;gap:34px;background:#FBE4E4;border:0;
  border-radius:16px;padding:14px 30px}.p-administration .adm-pager span{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;
  font-size:13px;font-weight:500;color:#9a9a9a;cursor:pointer;transition:.2s}.p-administration .adm-pager span:hover{color:var(--red)}.p-administration .adm-pager span.active{background:var(--pink);color:var(--red)}@media(max-width:1150px){.p-administration .adm-grid{grid-template-columns:300px 1fr;gap:24px}.p-administration .adm-people{gap:26px}.p-administration .adm-card{padding:20px}.p-administration .adm-card .ph{margin-bottom:18px}
}@media(max-width:992px){.p-administration .adm-grid{grid-template-columns:1fr}.p-administration .adm-depts{flex-direction:row;flex-wrap:wrap;gap:12px}.p-administration .adm-dept{width:auto}.p-administration .adm-people{grid-template-columns:repeat(2,1fr)}
}@media(max-width:600px){.p-administration .adm-people{grid-template-columns:1fr}.p-administration .adm-pager{gap:18px;padding:12px 20px}
}

/* ===================== admissions.html ===================== */
/* ===== Admissions page-only styles (prefix .adm-) ===== */
.p-admissions .adm-heading{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3.4vw,46px);margin-bottom:40px}
/* Frame 48 geometry (1920 artboard, 1654 container = 1:1):
   card 1 box x132..660 (528 wide), card 2 x695..1223 -> 35px grid gap;
   form card x1260..1786 -> 526 (~530) wide, 37px column gap;
   photo x159..634 = 476 wide, y1122..1405 = 283 tall -> aspect 476/283. */
.p-admissions .adm-layout{display:block;width:100%}.p-admissions .adm-cards{display:grid;grid-template-columns:repeat(3, 1fr);width:100%;gap:35px}.p-admissions .adm-card{background:#fff;border:1px solid #F7D0D0;border-radius:16px;overflow:hidden;display:flex;
  flex-direction:column;transition:transform .3s,box-shadow .3s}.p-admissions .adm-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px -26px rgba(0,0,0,.32)}.p-admissions .adm-card .adm-ph{padding:26px 26px 0}.p-admissions .adm-card .adm-ph img{width:100%;height:auto;aspect-ratio:476/283;object-fit:cover;
  border-radius:12px;display:block}.p-admissions .adm-card .adm-body{padding:22px 26px 28px;display:flex;flex-direction:column;flex:1}.p-admissions .adm-card h4{font-size:16px;font-weight:600;color:#1D1D1F;margin-bottom:12px;line-height:1.35}.p-admissions .adm-card p{font-size:13px;line-height:1.75;color:var(--muted);margin-bottom:20px;flex:1}.p-admissions .adm-actions{display:flex;align-items:center;gap:22px}.p-admissions .adm-actions .btn-red{font-size:11.5px;padding:11px 20px}
/* "Get In Touch" card — frame 48: 42px inner padding, 28px between fields,
   heading set in the SANS face (cap height 27px -> ~38px at the 1920 artboard). */
.p-admissions .adm-form{position:sticky;top:96px}.p-admissions .adm-form .form-card{padding:44px}.p-admissions .adm-form .field{margin-bottom:26px}.p-admissions .adm-form .form-card h3{font-family:var(--sans);font-weight:400;
  font-size:clamp(24px,2vw,38px);line-height:1.3;margin-bottom:34px}.p-admissions .adm-form .field input, .p-admissions .adm-form .field select{padding:20px 18px}.p-admissions .adm-form .btn-red{width:auto;padding:16px 34px;font-size:13px;margin-top:4px}@media(max-width:1200px){.p-admissions .adm-layout{grid-template-columns:1fr 340px;gap:32px}}@media(max-width:1000px){.p-admissions .adm-layout{grid-template-columns:1fr 360px;gap:28px}.p-admissions .adm-form .form-card{padding:32px 28px}.p-admissions .adm-form .field{margin-bottom:18px}}@media(max-width:900px){.p-admissions .adm-layout{grid-template-columns:1fr}.p-admissions .adm-form{position:static;max-width:560px}
}@media(max-width:560px){.p-admissions .adm-cards{grid-template-columns:1fr}}

/* ===================== alumni.html ===================== */
/* ---- alumni page (al-) ---- */
.p-alumni .al-chipbar{gap:16px;margin-bottom:44px}.p-alumni .al-chipbar .chip{border-radius:9px;padding:14px 26px;font-size:14px;line-height:1.35;white-space:normal;
  min-height:76px;min-width:196px;max-width:290px;display:flex;align-items:center;justify-content:center;
  text-align:center;font-weight:500}.p-alumni .al-chipbar .chip.active{font-weight:600;box-shadow:0 14px 30px -18px rgba(210,35,42,.85)}.p-alumni .al-school{scroll-margin-top:90px}.p-alumni .al-school-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-bottom:28px}.p-alumni .al-school-head h3{font-family:var(--serif);font-weight:700;font-size:clamp(20px,1.7vw,26px);color:#1D1D1F;
  line-height:1.3;margin:0}.p-alumni .al-count{display:inline-block;background:var(--pink-bg);color:var(--red);font-size:12px;font-weight:600;
  letter-spacing:.4px;padding:10px 22px;border-radius:30px;white-space:nowrap;text-transform:uppercase}.p-alumni .al-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(18px,2.6vw,44px);align-items:stretch}.p-alumni .al-card{background:#fff;border:1px solid #efe2e3;border-radius:12px;padding:26px 26px 30px;
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}.p-alumni .al-card:hover{transform:translateY(-6px);box-shadow:0 24px 46px -24px rgba(20,20,40,.32)}.p-alumni .al-photo{width:100%;aspect-ratio:1/1;border-radius:10px;background:#dcdcdc;margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;overflow:hidden}.p-alumni .al-photo i{font-size:44px;color:#c2c2c2;line-height:1}.p-alumni .al-photo img{width:100%;height:100%;object-fit:cover}.p-alumni .al-tag{color:var(--red);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px}.p-alumni .al-card h4{font-size:17px;font-weight:600;line-height:1.3;margin:0 0 10px;color:#1D1D1F}.p-alumni .al-role{font-size:12px;line-height:1.72;color:#565656;margin:0}.p-alumni .al-place{font-size:12px;line-height:1.6;color:#8a8a8a;margin-top:auto;padding-top:14px}.p-alumni .al-empty{border:1px dashed #e6d3d5;border-radius:14px;background:#fdf7f8;padding:46px 34px;text-align:center}.p-alumni .al-empty i{font-size:30px;color:var(--red);display:block;margin-bottom:12px}.p-alumni .al-empty b{display:block;font-size:15px;font-weight:600;color:#1D1D1F;margin-bottom:6px}.p-alumni .al-empty p{font-size:13px;color:#6b6b6b;margin:0;max-width:560px;margin-inline:auto;line-height:1.8}.p-alumni .al-more{text-align:center;margin-top:44px}.p-alumni .al-more .btn-red{display:inline-block;padding:14px 34px;border-radius:8px}.p-alumni .al-more .btn-red[hidden]{display:none}@media(max-width:1200px){.p-alumni .al-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:992px){.p-alumni .al-grid{grid-template-columns:repeat(3,1fr)}.p-alumni .al-chipbar .chip{min-height:64px;min-width:160px;font-size:13px;padding:12px 20px}}@media(max-width:720px){.p-alumni .al-grid{grid-template-columns:repeat(2,1fr)}.p-alumni .al-card{padding:18px 18px 22px}}@media(max-width:480px){.p-alumni .al-grid{grid-template-columns:1fr}.p-alumni .al-chipbar{gap:10px}.p-alumni .al-chipbar .chip{min-height:0;min-width:0;max-width:none;flex:1 1 100%;padding:12px 18px}.p-alumni .al-school-head{flex-direction:column;align-items:flex-start}}

/* ===================== bye-laws.html ===================== */
/* ---- bye-laws page (bl-) — geometry matched to the Figma frame ---- */
.p-bye-laws .bl-h2{text-transform:uppercase}.p-bye-laws .bl-ay{display:block;color:var(--red);font-size:19px;font-weight:700;margin-top:26px}.p-bye-laws .bl-sc{text-align:center;max-width:1300px;margin:40px auto 0}.p-bye-laws .bl-sc h3{font-size:clamp(28px,2.7vw,42px);font-weight:400;color:var(--ink);margin-bottom:18px}.p-bye-laws .bl-quote{font-size:16px;line-height:1.95;color:#555}.p-bye-laws .bl-acc{width:min(1654px,calc(100% - 80px));margin:48px auto 0;display:grid;grid-template-columns:1fr;gap:17px}.p-bye-laws .bl-acc .acc-item{border:none;box-shadow:0 3px 14px rgba(0,0,0,.07)}.p-bye-laws .bl-acc .acc-row{padding:68px 34px}
/* design rows are ~154px tall */
.p-bye-laws .bl-acc .acc-item.open .acc-row{padding-bottom:22px}.p-bye-laws .bl-acc .acc-t{font-size:20px;font-weight:600}.p-bye-laws .bl-acc .acc-item.open .acc-row .acc-t{color:var(--ink)}
/* design keeps the open title dark */
.p-bye-laws .bl-acc .acc-plus{font-size:34px;color:#4a4a4a;font-weight:300}.p-bye-laws .bl-acc .acc-item.open .acc-row .acc-plus{color:#4a4a4a}.p-bye-laws .bl-acc .acc-body{padding:0 34px 30px 34px}.p-bye-laws .bl-list{margin:0;padding-left:22px}.p-bye-laws .bl-list li{font-size:17px;line-height:1.75;color:#444;margin-bottom:9px}.p-bye-laws .bl-flow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 9px}.p-bye-laws .bl-flow span{font-size:17px;color:#444}.p-bye-laws .bl-flow i{color:var(--red);font-size:14px}.p-bye-laws .bl-note{width:min(1654px,calc(100% - 80px));margin:44px auto 0;border-radius:18px;padding:34px 40px;
  background:linear-gradient(180deg,#fffdfd 0%,#fdeaea 100%)}.p-bye-laws .bl-note h4{font-size:16px;font-weight:700;margin-bottom:14px;color:var(--ink)}@media(max-width:992px){.p-bye-laws .bl-acc, .p-bye-laws .bl-note{width:calc(100% - 40px)}}

/* ===================== campus-facilities.html ===================== */
/* ===== campus-facilities page-only (prefix .cf-) ===== */
.p-campus-facilities .cf-top{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:40px}
/* The video panel takes its height from the 2x2 gallery beside it, so the
   photo is absolutely positioned and cannot push the grid row taller. */
.p-campus-facilities .cf-video{position:relative;border-radius:16px;overflow:hidden}.p-campus-facilities .cf-video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.p-campus-facilities .cf-play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border:none;border-radius:50%;
  background:rgba(255,255,255,.82);backdrop-filter:blur(2px);box-shadow:0 10px 30px -8px rgba(0,0,0,.35);
  display:grid;place-items:center;cursor:pointer;transition:transform .3s}.p-campus-facilities .cf-play::before{content:"";width:0;height:0;margin-left:5px;
  border-left:22px solid var(--red);border-top:13px solid transparent;border-bottom:13px solid transparent}.p-campus-facilities .cf-play:hover{transform:scale(1.08)}.p-campus-facilities .cf-quad{display:grid;grid-template-columns:1fr 1fr;gap:30px 32px;align-content:start}.p-campus-facilities .cf-quad img{width:100%;height:auto;object-fit:cover;border-radius:12px;display:block;aspect-ratio:1/.615}
/* Facility cards: box comes from the Figma frame (531 x 629), the photo is
   clipped by an inner wrapper so the red caption blob can hang outside. */
.p-campus-facilities .cf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:66px}.p-campus-facilities .cf-card{position:relative;margin:0;aspect-ratio:531/629;}.p-campus-facilities .cf-shot{position:absolute;inset:0;display:block;overflow:hidden;
  border-radius:14px 14px 110px 14px}.p-campus-facilities .cf-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;border-radius: 14px 14px 110px 14px;}.p-campus-facilities .cf-card:hover img{transform:scale(1.05)}.p-campus-facilities .cf-card figcaption{position:absolute;left:-22px;bottom:122px;z-index:2;
  min-height:88px;display:flex;align-items:center;
  background:var(--red);color:#fff;font-size:18px;font-weight:600;line-height:1.35;
  padding:12px 50px 12px 24px;border-radius:28px 10px 78px 0;max-width:88%;
  box-shadow:0 14px 30px -18px rgba(210,35,42,.6)}@media(max-width:900px){.p-campus-facilities .cf-top{grid-template-columns:1fr;gap:30px;margin-bottom:30px}.p-campus-facilities .cf-video{aspect-ratio:16/10;border-bottom-left-radius:40px}.p-campus-facilities .cf-cards{grid-template-columns:1fr 1fr;gap:44px}.p-campus-facilities .cf-card:last-child{grid-column:1 / -1;aspect-ratio:16/7}.p-campus-facilities .cf-card figcaption{font-size:16px;min-height:76px;bottom:80px;
    border-radius:24px 10px 64px 0}
}@media(max-width:560px){.p-campus-facilities .cf-quad{gap:16px}.p-campus-facilities .cf-cards{grid-template-columns:1fr;gap:34px}.p-campus-facilities .cf-card, .p-campus-facilities .cf-card:last-child{aspect-ratio:16/11}.p-campus-facilities .cf-shot{border-radius:14px 14px 60px 14px}.p-campus-facilities .cf-card figcaption{left:-14px;bottom:44px;min-height:66px;font-size:15px;
    padding:10px 34px 10px 20px;border-radius:20px 8px 52px 0}
}

/* ===================== campus-gallery.html ===================== */
/* ---- campus gallery page-only tweaks (.cg-) ---- */
.p-campus-gallery .cg-scope .mgrid{columns:auto;display:grid;grid-template-columns:repeat(3,1fr)}@media(max-width:992px){.p-campus-gallery .cg-scope .mgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.p-campus-gallery .cg-scope .mgrid{grid-template-columns:1fr}}.p-campus-gallery .cg-item{break-inside:avoid;margin-bottom:20px;text-align:center}.p-campus-gallery .cg-item img{margin-bottom:14px;width:100%;aspect-ratio:16/10;object-fit:cover;}.p-campus-gallery .cg-item figcaption{font-family:var(--serif);font-weight:700;font-size:17px;color:#1c1c1c}.p-campus-gallery .cg-more{margin-top:8px;padding-top:40px;border-top:1px solid #ececec;display:flex;justify-content:center}

/* ===================== campus-infrastructure.html ===================== */
/* ===== page-only: campus infrastructure (.ci-) ===== */
/* Card box is driven by the Figma frame (509 x 596), NOT by the intrinsic
   image ratio — that is what made the photos look blown up. */
.p-campus-infrastructure .ci-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;align-items:stretch}.p-campus-infrastructure .ci-card{position:relative;display:block;aspect-ratio:509/596;
  border-radius:12px 12px 110px 12px}.p-campus-infrastructure .ci-card > img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;
  box-shadow:0 22px 50px -34px rgba(20,30,60,.45)}
/* Red label is a blob that hangs off the card's left edge (Figma frame 37). */
.p-campus-infrastructure .ci-tab{position:absolute;left:-31px;bottom:82px;z-index:2;
  min-height:120px;display:flex;align-items:center;
  background:var(--red);color:#fff;font-size:18px;font-weight:600;line-height:1.35;
  padding:14px 58px 14px 26px;border-radius:34px 14px 106px 0;max-width:63%;
  box-shadow:0 16px 34px -20px rgba(210,35,42,.6)}.p-campus-infrastructure .ci-card.pink{background:var(--pink-bg);border-radius:12px 12px 110px 12px;
  padding:62px 44px 150px}
/* Figma shows this copy always visible - it was previously hidden until hover,
   which left the card looking blank. */
.p-campus-infrastructure .ci-card.pink p{font-size:14.5px;line-height:1.85;color:#444}@media(hover:hover){.p-campus-infrastructure .ci-card.pink:hover .ci-tab{transform:translateY(-6px);transition:transform .35s ease}
}
/* Other Facilities: plain (non-washed) background, dark heading,
   thin red checks and a soft card shadow — matches the Figma frame. */
.p-campus-infrastructure .ci-other .eyebrow{color:var(--ink)}.p-campus-infrastructure .ci-other .check{border-color:transparent;
  box-shadow:0 6px 18px -8px rgba(20,20,40,.18),0 1px 3px rgba(20,20,40,.05);
  padding:20px 22px}.p-campus-infrastructure .ci-other .check i{background:transparent;color:var(--red);width:auto;height:auto;min-width:0;
  font-size:20px;font-weight:700;margin-top:-2px}@media(max-width:992px){.p-campus-infrastructure .ci-cards{grid-template-columns:repeat(2,1fr);gap:42px}.p-campus-infrastructure .ci-tab{font-size:16px;min-height:104px;border-radius:28px 12px 90px 0;padding:12px 44px 12px 22px}
}@media(max-width:640px){.p-campus-infrastructure .ci-cards{grid-template-columns:1fr;gap:34px}.p-campus-infrastructure .ci-tab{left:-16px;bottom:52px;min-height:88px;font-size:15px;
    padding:12px 34px 12px 20px;border-radius:22px 10px 70px 0;max-width:88%}.p-campus-infrastructure .ci-card.pink{padding:34px 26px 120px}
}

/* ===================== campus-life.html ===================== */
/* Guard: the reveal-words JS adds a `split` state-class to the hero <h1>,
   which otherwise collides with the generic `.split` two-column grid helper
   and stacks the heading one word per line. Keep it a normal flowing heading. */
.p-campus-life .page-hero h1.reveal-words{display:block;grid-template-columns:none}.p-campus-life .page-hero h1.reveal-words .w{display:inline-block}
/* ===== campus-life (cl-) page-only styles ===== */
.p-campus-life .cl-tabbar{display:inline-flex;gap:8px;background:#fff;padding:8px;border-radius:40px;
  box-shadow:0 12px 30px -18px rgba(20,20,40,.25);border:1px solid #f0e3e4;margin:0 auto 44px}.p-campus-life .cl-tabs-wrap{display:flex;justify-content:center}.p-campus-life .cl-tab{cursor:pointer;padding:11px 26px;border-radius:30px;font-size:14px;font-weight:600;
  color:#555;border:1px solid transparent;transition:.2s;white-space:nowrap}.p-campus-life .cl-tab:hover{color:var(--red)}.p-campus-life .cl-tab.active{background:var(--red);color:#fff}.p-campus-life .cl-vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 26px}.p-campus-life .cl-vcard{display:flex;flex-direction:column;width:100%;padding:0;border:0;background:none;
  font-family:inherit;color:inherit;text-align:center;cursor:pointer}.p-campus-life .cl-vmedia{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/11;
  box-shadow:0 20px 44px -26px rgba(20,20,40,.4)}.p-campus-life .cl-vmedia img.cl-photo{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.p-campus-life .cl-vcard:hover .cl-photo{transform:scale(1.05)}
/* Two source photos are vertically-stacked collages with baked-in caption text.
   Crop to the clean photographic portion so the labels don't show (matches design). */
.p-campus-life .cl-photo.crop-bottom{object-position:50% 100%}.p-campus-life .cl-photo.crop-labs{object-position:50% 100%;transform:scale(2.1);transform-origin:50% 100%}.p-campus-life .cl-vcard:hover .cl-photo.crop-labs{transform:scale(2.18)}
/* Shared frosted-glass play button (same treatment as testimonials.html) */
.p-campus-life .cl-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:78px;height:78px;border-radius:50%;pointer-events:none;
  background:rgba(255,255,255,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  display:flex;align-items:center;justify-content:center;
  transition:background .25s ease,transform .25s ease}.p-campus-life .cl-vcard:hover .cl-play, .p-campus-life .cl-vcard:focus-visible .cl-play{
  background:rgba(255,255,255,.82);transform:translate(-50%,-50%) scale(1.07)}.p-campus-life .cl-play svg{width:26px;height:29px;margin-left:4px;display:block}.p-campus-life .cl-cap{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--ink);
  text-align:center;margin-top:16px;line-height:1.35}.p-campus-life .cl-more{display:flex;justify-content:center;margin-top:46px}.p-campus-life .cl-empty{text-align:center;max-width:640px;margin:0 auto;color:#666;font-size:14.5px;line-height:1.8}
/* ---- video modal (mirrors the .tst-modal pattern on testimonials.html) ---- */
.p-campus-life .cl-modal{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;padding:24px}.p-campus-life .cl-modal.open{display:flex}.p-campus-life .cl-modal-bd{position:absolute;inset:0;background:rgba(15,10,12,.72)}.p-campus-life .cl-modal-box{position:relative;width:min(900px,100%);background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}.p-campus-life .cl-modal-close{position:absolute;top:12px;right:12px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;
  background:rgba(255,255,255,.9);color:var(--ink);font-size:18px;line-height:1;cursor:pointer;display:flex;
  align-items:center;justify-content:center;transition:.2s}.p-campus-life .cl-modal-close:hover{background:var(--red);color:#fff}.p-campus-life .cl-stage{position:relative;aspect-ratio:16/9;background:#1D1D1F;overflow:hidden}.p-campus-life .cl-stage img{width:100%;height:100%;object-fit:cover;opacity:.34}.p-campus-life .cl-stage video{display:none;position:absolute;inset:0;width:100%;height:100%;background:#000}.p-campus-life .cl-stage.playing video{display:block}.p-campus-life .cl-stage.playing img, .p-campus-life .cl-stage.playing .cl-stage-msg{display:none}.p-campus-life .cl-stage-msg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;color:#fff;text-align:center;padding:20px}.p-campus-life .cl-stage-msg i{font-size:36px;color:#fff}.p-campus-life .cl-stage-msg b{font-size:15px;font-weight:600;letter-spacing:.3px}.p-campus-life .cl-stage-msg span{font-size:12.5px;opacity:.8}.p-campus-life .cl-modal-meta{padding:20px 26px 24px}.p-campus-life .cl-modal-meta .cl-modal-title{font-size:22px;font-weight:500;color:var(--ink);line-height:1.3}@media(max-width:992px){.p-campus-life .cl-vgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.p-campus-life .cl-vgrid{grid-template-columns:1fr}.p-campus-life .cl-tabbar{width:100%;justify-content:center}.p-campus-life .cl-tab{flex:1;text-align:center;padding:11px 12px}.p-campus-life .cl-play{width:62px;height:62px}.p-campus-life .cl-play svg{width:21px;height:23px}
}

/* ===================== clubs.html ===================== */
/* ---- clubs page (cl-) ---- */
.p-clubs .cl-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:38px}.p-clubs .cl-bar .chipbar{margin:0;justify-content:center;flex:1}.p-clubs .cl-count{display:inline-block;background:var(--pink-bg);color:var(--red);font-size:12px;font-weight:600;letter-spacing:.4px;padding:11px 22px;border-radius:30px;white-space:nowrap;text-transform:uppercase}
/* geometry measured off the Figma frame: card 532w / border #f7d0d0 / 32px side padding,
   logo box 365x155 with a grey rule, co-heads stacked & centred with a divider between */
.p-clubs .cl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}.p-clubs .cl-card{background:#fff;border:1px solid #f7d0d0;border-radius:18px;padding:36px 32px 38px;
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}.p-clubs .cl-card:hover{transform:translateY(-6px);box-shadow:0 24px 46px -24px rgba(20,20,40,.35)}.p-clubs .cl-logo{border:1px solid #a4a4a4;border-radius:10px;height:155px;width:100%;max-width:365px;
  display:flex;align-items:center;justify-content:center;padding:18px;margin-bottom:34px;background:#fff}
/* logos are only ~130px natively but the design renders them larger, so scale to fill the box height */
.p-clubs .cl-logo img{height:100%;width:auto;max-width:100%;object-fit:contain}.p-clubs .cl-cat{color:var(--red);font-size:14px;font-weight:600;margin-bottom:16px}.p-clubs .cl-card h4{font-size:20px;font-weight:600;margin-bottom:18px;line-height:1.3}.p-clubs .cl-desc{font-size:14px;line-height:2;color:#555;margin-bottom:34px}.p-clubs .cl-heads{margin-top:auto;display:flex;align-items:flex-start}.p-clubs .cl-head{flex:1 1 0;min-width:0;text-align:center}.p-clubs .cl-head + .cl-head{border-left:1px solid #dcdcdc}.p-clubs .cl-head img{width:104px;height:104px;border-radius:50%;object-fit:cover;object-position:top center;
  background:#e9dcdd;display:block;margin:0 auto 14px}.p-clubs .cl-head b{display:block;font-size:18px;font-weight:600;color:#1D1D1F;line-height:1.3}.p-clubs .cl-head span span{display:block;font-size:14px;color:#888;margin-top:4px}@media(max-width:992px){.p-clubs .cl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.p-clubs .cl-grid{grid-template-columns:minmax(0,1fr)}.p-clubs .cl-bar{flex-direction:column;align-items:flex-start}}

/* ===================== collaborations-acca.html ===================== */
/* ================= page-scoped overrides — Figma frame 12 (ACCA) =================
   Everything here is scoped to this page only; css/style.css is owned elsewhere. */
/* --- 1. tab bar overlays the hero, active tab is pink with red text --- */
.p-collaborations-acca .collab-tabbar{position:relative;top:auto;background:transparent;box-shadow:none;
  padding:0 0 70px;margin-top:-153px;z-index:20}.p-collaborations-acca .collab-tabbar .collab-tabs{max-width:980px;width:100%;margin:0 auto;gap:0;
  padding:24px 21px;border-radius:43px;background:rgba(255,255,255,.60);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
  box-shadow:0 14px 38px rgba(178,30,36,.10)}.p-collaborations-acca .collab-tabbar .collab-tabs a{flex:1 1 0;padding:0;background:none;color:#5f5f5f;
  font-size:13px;font-weight:600;letter-spacing:1.1px;display:flex;justify-content:center}.p-collaborations-acca .collab-tabbar .collab-tabs a > span{display:inline-block;padding:9px 44px;border-radius:19px;
  transition:background .25s ease,color .25s ease}.p-collaborations-acca .collab-tabbar .collab-tabs a.active{background:none;color:var(--red)}.p-collaborations-acca .collab-tabbar .collab-tabs a.active > span{background:#F8D0D0;color:var(--red)}.p-collaborations-acca .collab-tabbar .collab-tabs a:hover{color:var(--red)}
/* --- 2/3/5/6. logo marks: flat 452x255, no extra card chrome --- */
.p-collaborations-acca .acca-split, .p-collaborations-acca .isdc-split{grid-template-columns:452px minmax(0,1fr);gap:44px;align-items:center}.p-collaborations-acca .acca-split{max-width:1090px;margin-inline:auto}
/* 4. centred content block */
.p-collaborations-acca .isdc-split{max-width:1372px;margin-left:auto;margin-right:0}.p-collaborations-acca .isdc-band{background:radial-gradient(ellipse 54% 62% at 50% 40%,#FFE1EE 0%,rgba(255,235,245,.45) 42%,#fff 76%)}.p-collaborations-acca .logo-mark{display:flex;align-items:center;justify-content:center;
  width:452px;max-width:100%;background:none;box-shadow:none;padding:0}.p-collaborations-acca .logo-mark img{width:452px;height:255px;max-width:100%;object-fit:contain;display:block}.p-collaborations-acca .isdc-name{text-align:left;margin-bottom:20px}
/* 5. ISDC title inside column 2 */
/* --- 7. side hairlines on the course-objectives heading --- */
.p-collaborations-acca .obj-head{display:flex;align-items:center;justify-content:center;gap:24px;margin:6px 0 0}.p-collaborations-acca .obj-head::before, .p-collaborations-acca .obj-head::after{content:"";flex:1 1 auto;height:1px;background:#A4A4A4}.p-collaborations-acca .obj-head-txt{flex:0 1 auto;text-align:center}
/* --- 8. objectives arranged as white cards --- */
.p-collaborations-acca .obj-grid{grid-template-columns:1fr 1fr;gap:20px 30px;margin-top:44px}.p-collaborations-acca .obj{background:#fff;border:0;border-radius:14px;box-shadow:0 8px 26px rgba(0,0,0,.07);
  padding:20px 34px;gap:20px;align-items:center}.p-collaborations-acca .obj i{font-size:20px;margin-top:0}.p-collaborations-acca .obj p{font-size:13.5px;line-height:1.66;color:#3f3f3f}
/* --- 9. closing paragraph centred --- */
.p-collaborations-acca .collab-foot{text-align:center;max-width:1240px;margin:38px auto 0}
/* --- 10. placement cards + FAQ call-to-action --- */
.p-collaborations-acca .place-grid{gap:20px;margin-top:44px}.p-collaborations-acca .place-grid .place{flex:0 0 min(397px,78vw)}.p-collaborations-acca .place{padding:29px;border-radius:16px}.p-collaborations-acca .place img{height:328px;border-radius:10px;margin-bottom:20px}.p-collaborations-acca .place b{font-size:15px;padding-bottom:2px}.p-collaborations-acca .place-ph{height:328px;border-radius:10px;margin-bottom:20px;background:#fff;
  border:1px dashed #E2B9BB;color:#b08d8f;font-size:13px;display:flex;
  align-items:center;justify-content:center;text-align:center;padding:0 18px}.p-collaborations-acca .acca-faq-cta{display:flex;justify-content:center;margin-top:50px}.p-collaborations-acca .acca-faq-cta .btn-red{max-width:570px;white-space:normal;text-align:center;
  font-size:16px;font-weight:600;line-height:1.6;letter-spacing:.5px;padding:24px 34px;border-radius:6px}@media (max-width:1400px){.p-collaborations-acca .collab-tabbar{margin-top:0;padding:14px 0}.p-collaborations-acca .collab-tabbar .collab-tabs{background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.08)}.p-collaborations-acca .collab-tabbar .collab-tabs a > span{padding:9px 16px}
}@media (max-width:1000px){.p-collaborations-acca .acca-split, .p-collaborations-acca .isdc-split{grid-template-columns:1fr;gap:30px;max-width:100%;margin-inline:auto}.p-collaborations-acca .logo-mark, .p-collaborations-acca .logo-mark img{width:100%;height:auto}.p-collaborations-acca .obj-grid{grid-template-columns:1fr}.p-collaborations-acca .obj-head{gap:14px}
}@media (max-width:640px){.p-collaborations-acca .obj-head::before, .p-collaborations-acca .obj-head::after{display:none}.p-collaborations-acca .obj{padding:18px 22px;gap:14px}
}

/* ===================== collaborations-ficci.html ===================== */
/* ===== FICCI page — scoped overrides (Figma frame 14, 1920 artboard) ===== */
/* Letter of Intent: pink card 452x255 (x412) + 52px gutter + 584px copy (x916),
   group centred on 960. The logo PNG already carries the pink card artwork. */
.p-collaborations-ficci .page-ficci .msplit{display:grid;grid-template-columns:452px minmax(0,584px);
  column-gap:52px;row-gap:0;justify-content:center;align-items:start;
  max-width:1088px;margin-inline:auto}.p-collaborations-ficci .page-ficci .msplit .logo-card.pink{width:min(452px,100%);max-width:100%;padding:0;border-radius:0;
  background:none;box-shadow:none;min-height:0;display:block}.p-collaborations-ficci .page-ficci .msplit .logo-card.pink img{width:100%;max-width:100%;max-height:none;height:auto}.p-collaborations-ficci .page-ficci .msplit p{font-size:13.5px;line-height:1.9}
/* Press release: full-bleed soft-pink band, 90px top / 115px bottom */
.p-collaborations-ficci .page-ficci .ficci-press{padding:90px 0 115px;
  background:radial-gradient(130% 62% at 50% 0%, #fdeef1 0%, #fff 60%)}
/* Copy column capped at 780px (frame x132-912); image column x969-1786, 57px gutter */
.p-collaborations-ficci .page-ficci .ficci-press .press-split{grid-template-columns:minmax(0,780px) minmax(0,1fr);
  gap:57px;align-items:start;margin-top:0}.p-collaborations-ficci .page-ficci .ficci-press .press-h{text-align:left;font-size:20px;font-weight:600;
  color:var(--ink);line-height:1.5;margin:26px 0 22px}.p-collaborations-ficci .page-ficci .ficci-press .press-split p{font-size:15px;line-height:2;margin-bottom:22px;color:#555}.p-collaborations-ficci .page-ficci .ficci-press .press-split p:last-child{margin-bottom:0}.p-collaborations-ficci .page-ficci .ficci-press .press-split strong{color:var(--ink);font-weight:600}
/* Two explicit masonry columns; every tile is ratio-based so the two
   columns finish level at any width (frame: both end at y≈2386). */
.p-collaborations-ficci .page-ficci .ficci-press .pgrid{display:grid;grid-template-columns:1fr 1fr;
  column-gap:19px;row-gap:24px;align-items:start}.p-collaborations-ficci .page-ficci .ficci-press .pcol{display:flex;flex-direction:column;gap:24px}.p-collaborations-ficci .page-ficci .ficci-press .pgrid img{width:100%;height:auto;object-fit:cover;display:block;
  background:var(--pink-bg);padding:34px 30px;border-radius:16px;box-sizing:border-box;box-shadow:none}.p-collaborations-ficci .page-ficci .ficci-press .pcol-a img{aspect-ratio:1/1}.p-collaborations-ficci .page-ficci .ficci-press .pcol-b img:nth-child(1){aspect-ratio:2.07/1}.p-collaborations-ficci .page-ficci .ficci-press .pcol-b img:nth-child(2){aspect-ratio:1/1}.p-collaborations-ficci .page-ficci .ficci-press .pcol-b img:nth-child(3){aspect-ratio:2.19/1}@media(max-width:1100px){.p-collaborations-ficci .page-ficci .msplit{grid-template-columns:minmax(0,452px) minmax(0,584px);column-gap:40px}.p-collaborations-ficci .page-ficci .ficci-press .press-split{gap:36px}
}@media(max-width:900px){.p-collaborations-ficci .page-ficci .msplit{grid-template-columns:1fr;row-gap:28px;justify-content:stretch}.p-collaborations-ficci .page-ficci .msplit .logo-card.pink{width:min(452px,100%);margin-inline:auto}.p-collaborations-ficci .page-ficci .ficci-press{padding:60px 0 70px}.p-collaborations-ficci .page-ficci .ficci-press .press-split{grid-template-columns:1fr;gap:30px}
}@media(max-width:560px){.p-collaborations-ficci .page-ficci .ficci-press .pgrid, .p-collaborations-ficci .page-ficci .ficci-press .pcol{gap:14px}.p-collaborations-ficci .page-ficci .ficci-press .pgrid img{padding:12px;border-radius:12px}
}

/* ===================== collaborations-ftcci.html ===================== */
/* ===== FTCCI page — scoped overrides (Figma frame 15, 1920 artboard) ===== */
/* Media track: pink card 452x255 (x309) + 62px gutter + 855px copy (x825),
   group centred. The logo PNG already carries the pink card artwork, so the
   wrapper is transparent and the image renders at its native 452x255. */
.p-collaborations-ftcci .page-ftcci .msplit{display:grid;grid-template-columns:452px minmax(0,855px);
  column-gap:62px;row-gap:0;justify-content:center;align-items:start;
  max-width:1369px;margin-inline:auto}.p-collaborations-ftcci .page-ftcci .msplit .logo-card.pink{width:min(452px,100%);max-width:100%;padding:0;border-radius:0;
  background:none;box-shadow:none;min-height:0;display:block}.p-collaborations-ftcci .page-ftcci .msplit .logo-card.pink img{width:100%;max-width:100%;max-height:none;height:auto}
/* Press release: full-bleed soft-pink band that runs on behind More Links */
.p-collaborations-ftcci .page-ftcci .ftcci-press{padding:62px 0 30px;
  background:radial-gradient(130% 62% at 50% 0%, #fdeef1 0%, #fff 60%)}
/* Frame shows the clippings in pink cards (399x398), not white bordered tiles */
.p-collaborations-ftcci .page-ftcci .ftcci-press .press{margin-top:34px;gap:19px}.p-collaborations-ftcci .page-ftcci .ftcci-press .press img{background:var(--pink-bg);border:none;padding:16px;
  border-radius:16px;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:top center}
/* More Links: real 2-column grid — 144px label column (frame: label x132,
   both links x276), rows 54px apart. Replaces the old <br>/&nbsp; hack. */
.p-collaborations-ftcci .page-ftcci .more-links{display:grid;grid-template-columns:144px minmax(0,1fr);
  row-gap:34px;column-gap:0;align-items:start;margin-top:38px}.p-collaborations-ftcci .page-ftcci .more-links .lbl{grid-column:1;grid-row:1;margin-right:0}.p-collaborations-ftcci .page-ftcci .more-links a{grid-column:2;justify-self:start}
/* Frame leaves ~70px of white between the band and the footer */
.p-collaborations-ftcci .page-ftcci .footer{margin-top:70px}@media(max-width:1100px){.p-collaborations-ftcci .page-ftcci .msplit{grid-template-columns:minmax(0,452px) minmax(0,855px);column-gap:40px}
}@media(max-width:900px){.p-collaborations-ftcci .page-ftcci .msplit{grid-template-columns:1fr;row-gap:28px;justify-content:stretch}.p-collaborations-ftcci .page-ftcci .msplit .logo-card.pink{width:min(452px,100%);margin-inline:auto}.p-collaborations-ftcci .page-ftcci .ftcci-press{padding:50px 0 26px}.p-collaborations-ftcci .page-ftcci .footer{margin-top:56px}
}@media(max-width:560px){.p-collaborations-ftcci .page-ftcci .more-links{grid-template-columns:1fr;row-gap:16px}.p-collaborations-ftcci .page-ftcci .more-links .lbl{grid-column:1;grid-row:auto}.p-collaborations-ftcci .page-ftcci .more-links a{grid-column:1}
}

/* ===================== collaborations-thub.html ===================== */
/* ===== T-HUB page-scoped overrides (Figma frame 13, 1920 artboard) ===== */
/* Section name: serif "T-" + red serif "HUB", 46px, centred on 960 */
.p-collaborations-thub .page-thub .collab-name{font-size:clamp(30px,2.9vw,46px);line-height:1.25;margin-bottom:40px}
/* Media track: pink card 452x255 (x421) + 63px gutter + 556px copy (x935).
   The logo PNG already contains the pink card artwork, so the wrapper is
   transparent and the image renders at its native 452x255. */
.p-collaborations-thub .page-thub .msplit{display:grid;grid-template-columns:452px minmax(0,556px);
  column-gap:63px;row-gap:0;justify-content:center;align-items:start;
  max-width:1071px;margin-inline:auto}.p-collaborations-thub .page-thub .msplit .logo-card.pink{width:min(452px,100%);max-width:100%;padding:0;border-radius:0;
  background:none;box-shadow:none;min-height:0;display:block}.p-collaborations-thub .page-thub .msplit .logo-card.pink img{width:100%;max-width:100%;max-height:none;height:auto}.p-collaborations-thub .page-thub .msplit p{font-size:13.5px;line-height:1.9;margin-bottom:16px}.p-collaborations-thub .page-thub .collab-cta{margin-top:30px}
/* Faculty-development gallery: soft pink band + full-bleed pink-card carousel */
.p-collaborations-thub .page-thub .collab-gallery{position:relative;padding-top:14px;padding-bottom:74px;
  background:radial-gradient(130% 62% at 50% 0%, #fdeef1 0%, #fff 60%)}
/* Frame breaks the title after "Development" — 46px capped at 960px does that */
.p-collaborations-thub .page-thub .collab-gallery .section-title{font-size:clamp(24px,2.4vw,46px);line-height:1.33;
  max-width:960px;margin:0 auto 40px}.p-collaborations-thub .page-thub .gallery-strip{width:100vw;
  margin-left:calc(50% - 50vw);padding:4px 0 8px;
  overflow:hidden;scrollbar-width:none;scroll-snap-type:x proximity}.p-collaborations-thub .page-thub .gallery-strip::-webkit-scrollbar{display:none}.p-collaborations-thub .page-thub .gallery-track{display:flex;gap:19px;width:max-content;animation:thub-marquee 34s linear infinite}.p-collaborations-thub .page-thub .gallery-strip:hover .gallery-track{animation-play-state:paused}@keyframes thub-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.p-collaborations-thub .page-thub .gallery-track{animation:none}}.p-collaborations-thub .page-thub .g-card{flex:0 0 clamp(280px,20.8vw,399px);background:linear-gradient(180deg, #FFFFFF 0%, #FFE7E7 50%, #FFE4E4 100%);
  border-radius:18px;padding:25px 20px;scroll-snap-align:start}.p-collaborations-thub .page-thub .g-card img{width:100%;aspect-ratio:339/328;height:auto;object-fit:cover;
  border-radius:6px;display:block}
/* ===== Tablet / mobile ===== */
@media(max-width:1100px){.p-collaborations-thub .page-thub .msplit{grid-template-columns:minmax(0,452px) minmax(0,556px);column-gap:40px}
}@media(max-width:900px){.p-collaborations-thub .page-thub .msplit{grid-template-columns:1fr;row-gap:28px;justify-content:stretch}.p-collaborations-thub .page-thub .msplit .logo-card.pink{width:min(452px,100%);margin-inline:auto}
}@media(max-width:768px){.p-collaborations-thub .page-thub .collab-gallery{padding-bottom:48px}.p-collaborations-thub .page-thub .gallery-strip{padding:4px 0 6px}.p-collaborations-thub .page-thub .gallery-track{gap:14px}.p-collaborations-thub .page-thub .g-card{flex:0 0 78vw;padding:18px 16px 20px}
}

/* ===================== committees.html ===================== */
/* ---- committees page (cm-) ---- */
.p-committees .cm-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:38px}.p-committees .cm-bar .chipbar{margin:0;justify-content:flex-start;flex:1}.p-committees .cm-count{display:inline-block;background:var(--pink-bg);color:var(--red);font-size:12px;font-weight:600;
  letter-spacing:.4px;padding:11px 22px;border-radius:30px;white-space:nowrap;text-transform:uppercase}
/* geometry measured off Figma frame 29 (1920px artboard): card 533w, 1px #f7d0d0 border,
   32px side padding / 36px top / 38px bottom; logo box 365x155 with a 1px #a4a4a4 rule;
   co-heads stacked (104px avatar above an 18px name) with a 1px divider between them.
   Same construction as clubs.html (frame 27) — the committees frame left-aligns the
   co-head column contents instead of centring them, so that is what is used here. */
.p-committees .cm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}.p-committees .cm-card{background:#fff;border:1px solid #f7d0d0;border-radius:18px;padding:36px 32px 38px;
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}.p-committees .cm-card:hover{transform:translateY(-6px);box-shadow:0 24px 46px -24px rgba(20,20,40,.35)}.p-committees .cm-logo{border:1px solid #a4a4a4;border-radius:10px;height:155px;width:100%;max-width:365px;
  display:flex;align-items:center;justify-content:center;padding:18px;margin-bottom:34px;background:#fff}
/* the extracted logos are only ~130px natively but the frame renders them filling the
   box, so scale to the box height (same trick as clubs.html) */
.p-committees .cm-logo img{height:100%;width:auto;max-width:100%;object-fit:contain}.p-committees .cm-cat{color:var(--red);font-size:14px;font-weight:600;margin-bottom:16px}.p-committees .cm-card h4{font-size:20px;font-weight:600;margin-bottom:18px;line-height:1.3}.p-committees .cm-desc{font-size:14px;line-height:2;color:#555;margin-bottom:34px}.p-committees .cm-heads{margin-top:auto;display:flex;align-items:stretch}.p-committees .cm-head{flex:0 1 auto}.p-committees .cm-head + .cm-head{border-left:1px solid #dcdcdc;margin-left:33px;padding-left:33px}.p-committees .cm-head img{width:104px;height:104px;border-radius:50%;object-fit:cover;object-position:top center;
  background:#e9dcdd;display:block;margin:0 0 14px}.p-committees .cm-head b{display:block;font-size:18px;font-weight:600;color:#1D1D1F;line-height:1.3}.p-committees .cm-head span span{display:block;font-size:14px;color:#888;margin-top:4px}@media(max-width:992px){.p-committees .cm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.p-committees .cm-grid{grid-template-columns:minmax(0,1fr)}.p-committees .cm-bar{flex-direction:column;align-items:flex-start}}

/* ===================== contact.html ===================== */
/* site.js adds a `.split` state class to .reveal-words for the word animation,
   which collides with the global .split 2-column grid layout. Neutralise it so
   the hero headline flows inline. */
.p-contact .page-hero h1.reveal-words.split{display:block;grid-template-columns:none;gap:0}
/* ===== Contact page-only tweaks (prefix .cn-) ===== */
/* Frame 49: hero ends y=906, lead heading top y=1013 -> ~96px section top padding. */
.p-contact .cn-wrap{padding-top:96px}
/* Frame 49 lead: the sentence is set in the SANS face at regular weight; only
   "Narsee Monjee Institute Of" (ink) and "Management Studies" (red) are serif bold.
   Measured: 3 lines spanning y 1013..1194 -> ~60px line pitch -> ~42px / 1.42. */
.p-contact .cn-lead{font-family:var(--sans);font-weight:400;font-size:clamp(24px,2.35vw,42px);
  line-height:1.42;color:var(--ink);margin:0 0 46px;max-width:740px;text-transform:capitalize}.p-contact .cn-lead .sf{font-family:var(--serif);font-weight:700}.p-contact .cn-lead .sf.red{color:var(--red)}
/* the lead now lives INSIDE the left column of the split, so the form card top-aligns
   with it (frame 49: heading top 1013, card top ~1018) instead of leaving dead space. */
.p-contact .cn-wrap .form-split{align-items:start}.p-contact .cn-wrap .cn-col-info{display:flex;flex-direction:column}.p-contact .cn-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.p-contact .cn-row .field{margin-bottom:0}
/* simpler bordered form box (match the PDF, not a heavy floating card) */
.p-contact .cn-wrap .form-card{box-shadow:0 10px 30px -24px rgba(20,20,40,.2);border:1px solid #ece0e1;
  padding:42px 42px 44px}.p-contact .cn-wrap .form-card h3{font-family:var(--sans);font-weight:400;
  font-size:clamp(24px,2vw,38px);margin-bottom:30px}.p-contact .form-card .btn-red{border:0;cursor:pointer;margin-top:6px}
/* smaller, lighter red info icons to match the PDF */
.p-contact .cn-wrap .info-row .ic{width:40px;height:40px;min-width:40px;border-radius:10px;color:var(--red);font-size:16px}
/* frame 49 sets the contact block noticeably larger than the shared default:
   "Campus Address" ~28px, body lines ~19px on a ~30px rhythm. */
.p-contact .cn-wrap .info-list{gap:28px}.p-contact .cn-wrap .info-row h4{font-size:clamp(17px,1.5vw,28px);font-weight:500;margin-bottom:12px}.p-contact .cn-wrap .info-row p{font-size:clamp(13.5px,1.05vw,19px);line-height:1.62}
/* location map — live Google Maps embed, wide band (frame 49: 1652 x 632). */
.p-contact .cn-map{margin-top:64px;border-radius:20px;overflow:hidden;line-height:0;
  height:clamp(320px,33vw,632px);box-shadow:0 22px 46px -32px rgba(0,0,0,.35);background:#eee}.p-contact .cn-map iframe{width:100%;height:100%;border:0;display:block}@media(max-width:900px){.p-contact .cn-wrap{padding-top:64px}}@media(max-width:520px){.p-contact .cn-row{grid-template-columns:1fr;gap:0}.p-contact .cn-row .field{margin-bottom:18px}.p-contact .cn-map{height:260px;margin-top:24px}.p-contact .cn-wrap .form-card{padding:28px 24px 30px}}

/* ===================== director-desk.html ===================== */
/* page-only tweaks (prefix .dd-) */
/* reveal-words adds a `.split` state class that collides with the layout
   `.split` grid utility — keep animated headings as normal text flow. */
.p-director-desk h1.reveal-words.split, .p-director-desk h2.reveal-words.split{display:block;grid-template-columns:none;gap:0}.p-director-desk .dd-message .pill{margin-bottom:34px}
/* ---- Director's message: column geometry from frame 11 (560 portrait / 190 gutter / 896 copy).
       Aspect-ratio + copy size now come from the shared .quote-split rules — not repeated here. ---- */
.p-director-desk .dd-message .quote-split{grid-template-columns:34% minmax(0,1fr);gap:11.5%;align-items:center}
/* portrait sits on a dark neutral; the supplied cut-out ships on hard black, so lift it */
.p-director-desk .dd-message .quote-split .qimg{background:#313134;isolation:isolate}.p-director-desk .dd-message .quote-split .qimg img{mix-blend-mode:lighten;object-position:50% 10%}
/* quote glyph sits in the gutter, level with the first line of the message */
.p-director-desk .dd-message .quote-split>div:last-child{position:relative}.p-director-desk .dd-message .qmark{position:absolute;left:-177px;top:-14px;margin:0;font-size:150px;line-height:1}
/* no washed-out grey override — the message inherits the shared muted ink */
.p-director-desk .dd-message blockquote{margin:0 0 34px}.p-director-desk .dd-message blockquote .lead{font-family:var(--serif);font-weight:700;color:#313134;
  font-size:clamp(24px,2.4vw,46px);line-height:1.15}
/* ---- Closing invitation (approved copy, no frame equivalent) ---- */
.p-director-desk .dd-close{padding-top:0}.p-director-desk .dd-close p{max-width:1100px;margin-inline:auto;text-align:center;color:#3a3a3a;
  font-size:clamp(16px,1.15vw,22px);line-height:1.9}@media(max-width:900px){.p-director-desk .dd-message .quote-split{grid-template-columns:1fr;gap:30px}.p-director-desk .dd-message .quote-split .qimg{max-width:440px;margin:0 auto}.p-director-desk .dd-message .qmark{position:static;margin-bottom:8px;font-size:60px}
}

/* ===================== examination.html ===================== */
/* Examination page-only tweaks (prefix .ex-) */
.p-examination .ex-rows .split{margin-bottom:78px}.p-examination .ex-rows .split:last-child{margin-bottom:0}.p-examination .ex-rows .split h2{margin-bottom:14px}.p-examination .ex-rows .split p{margin-bottom:22px;max-width:440px}.p-examination .ex-rows .split .btn-red{display:inline-block}.p-examination .ex-digi{position:relative;display:flex;align-items:center;justify-content:center;
  background:#5B35ED;border-radius:18px;overflow:hidden;min-height:320px}.p-examination .ex-digi .ex-digi-logo{position:relative;z-index:1;width:56%;max-width:320px;height:auto;
  border-radius:0;box-shadow:none}@media(max-width:900px){.p-examination .ex-rows .split{margin-bottom:48px}.p-examination .ex-digi{min-height:240px}
}

/* ===================== faculty-details.html ===================== */
/* ===== faculty member details (.fd-) — reusable single-profile template ===== */
/* guard: site.js adds a `.split` state class to .reveal-words, which collides
   with the shared `.split` grid utility — keep animated headings in normal flow */
.p-faculty-details h1.reveal-words.split, .p-faculty-details h2.reveal-words.split{display:block;grid-template-columns:none;gap:0}
/* Figma frame: content box 133→1787 (1654 = container-x).
   Left profile rail 416px, gutter 56px, bio column 1184px. */
.p-faculty-details .fd-grid{display:grid;grid-template-columns:minmax(0,416fr) minmax(0,1184fr);column-gap:56px;
  align-items:start}
/* ---- left rail: photo card + identity + meta ---- */
.p-faculty-details .fd-card{border:1px solid #F7D0D0;border-radius:10px;padding:32px}.p-faculty-details .fd-photo{position:relative;overflow:hidden;background:#F7D0D0;border-radius:8px;aspect-ratio:1/1}
/* the cut-out portrait overflows the pink plate in the frame (image box 416.7x540.7
   over a 347x346 plate, offset -42.9 / -22.5) — reproduce that exact crop */
.p-faculty-details .fd-photo img{position:absolute;left:-12.4%;top:-6.5%;width:120.3%;height:auto;max-width:none}.p-faculty-details .fd-school{display:inline-block;color:var(--red);font-size:13px;font-weight:600;letter-spacing:.6px;
  margin-top:34px}.p-faculty-details .fd-name{font-size:clamp(19px,1.55vw,23px);font-weight:600;line-height:1.3;margin-top:6px}.p-faculty-details .fd-meta{margin-top:26px}.p-faculty-details .fd-meta .fd-row{margin-top:22px}.p-faculty-details .fd-meta .fd-row:first-child{margin-top:0}.p-faculty-details .fd-meta dt{font-size:clamp(14px,1.05vw,16px);font-weight:600;color:var(--ink);margin-bottom:8px}.p-faculty-details .fd-meta dd{margin:0;font-size:clamp(14px,1.05vw,16px);line-height:1.55;color:#5f5f63;font-weight:300}.p-faculty-details .fd-back{margin-top:34px}
/* ---- right column: headline + long-form biography ---- */
.p-faculty-details .fd-title{font-family:var(--serif);font-weight:700;line-height:1.25;
  font-size:clamp(24px,2.35vw,36px)}.p-faculty-details .fd-lede{margin-top:16px;font-size:clamp(14px,1.05vw,16px);color:#6F6F6F}.p-faculty-details .fd-bio{margin-top:52px}.p-faculty-details .fd-bio p{font-size:clamp(14.5px,1.1vw,16.5px);line-height:1.92;color:#5f5f63;font-weight:300}.p-faculty-details .fd-bio p + p{margin-top:34px}@media(max-width:1100px){.p-faculty-details .fd-grid{grid-template-columns:1fr;row-gap:44px}.p-faculty-details .fd-card{max-width:420px}.p-faculty-details .fd-bio{margin-top:30px}
}@media(max-width:760px){.p-faculty-details .fd-card{max-width:none;padding:22px}.p-faculty-details .fd-bio p + p{margin-top:22px}
}

/* ===================== faculty-development.html ===================== */
/* ===== page-only tweaks (prefix .fd-) ===== */
.p-faculty-development .fd-split .split-media img{height:100%}.p-faculty-development .fd-split .pill{margin-bottom:20px}.p-faculty-development .fd-split h2{margin-bottom:16px}.p-faculty-development .fd-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:26px}.p-faculty-development .fd-actions .fd-ghost{background:#fff;color:var(--red);border:1.5px solid var(--red);font-weight:500;
  font-size:14px;letter-spacing:.8px;border-radius:8px;padding:15px 30px;display:inline-block;
  text-transform:uppercase;white-space:nowrap;transition:background .25s ease,color .25s ease,transform .25s ease}.p-faculty-development .fd-actions .fd-ghost:hover{background:var(--red);color:#fff;transform:translateY(-2px)}
/* toolbar: search + toggle chips */
.p-faculty-development .fd-toolbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:38px}.p-faculty-development .fd-search{flex:1;min-width:260px;position:relative}.p-faculty-development .fd-search i{display:none}.p-faculty-development .fd-search input{width:100%;border:1px solid #a4a4a4;border-radius:4px;padding:8px 20px;font-family:var(--sans);font-size:14px;letter-spacing:.4px;color:#333;background:#fff}.p-faculty-development .fd-search input:focus{outline:none;border-color:#767676}.p-faculty-development .fd-search input::placeholder{color:#444}
/* card grid */
.p-faculty-development .fd-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.p-faculty-development .fd-card{display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;gap:26px;
  background:#fff;border:1px solid #F8D0D0;border-radius:16px;padding:26px 28px;
  transition:transform .25s ease,box-shadow .25s ease}.p-faculty-development .fd-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(20,20,40,.32)}.p-faculty-development .fd-side{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;
  padding-right:24px;min-width:118px;position:relative}.p-faculty-development .fd-side::after{content:'';position:absolute;right:0;top:15px;bottom:15px;width:1px;background:#F8D0D0}.p-faculty-development .fd-tag{font-size:11px;color:#8a8a8a;letter-spacing:.3px}.p-faculty-development .fd-no{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:12px;
  background:#1D1D1F;color:#fff;font-weight:600;font-size:18px;font-family:var(--serif)}.p-faculty-development .fd-main{padding-right:24px;display:flex;flex-direction:column;justify-content:center;position:relative}.p-faculty-development .fd-main::after{content:'';position:absolute;right:0;top:15px;bottom:15px;width:1px;background:#F8D0D0}.p-faculty-development .fd-main h4{font-size:16px;font-weight:600;line-height:1.4;margin-bottom:10px;color:var(--ink)}.p-faculty-development .fd-speaker{color:var(--red);font-weight:600;font-size:14px;margin-bottom:5px}.p-faculty-development .fd-aff{font-size:13px;color:#777;margin-bottom:8px}.p-faculty-development .fd-date{font-size:12.5px;color:#666}.p-faculty-development .fd-date b{color:var(--ink);font-weight:600}.p-faculty-development .fd-dl{display:flex;align-items:center;gap:12px;white-space:nowrap;color:#555;font-size:12.5px;line-height:1.35}.p-faculty-development .fd-dl i{font-size:26px;color:var(--red)}.p-faculty-development .fd-dl:hover{color:var(--red)}
/* contact band */
.p-faculty-development .fd-contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:center}.p-faculty-development .fd-contact-grid h2{font-size:clamp(28px,3vw,44px);font-weight:400;line-height:1.25;font-family:var(--serif)}.p-faculty-development .fd-contact-card{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;
  border:1px solid #F8D0D0;border-radius:16px;padding:34px 40px;box-shadow:0 10px 28px -26px rgba(20,20,40,.18)}.p-faculty-development .fd-contact-card .fd-cname{color:var(--red);font-weight:600;font-size:16px;margin-bottom:8px}.p-faculty-development .fd-contact-card .fd-crole{font-size:13.5px;color:#666;line-height:1.7}.p-faculty-development .fd-contact-card .fd-cdiv{width:1px;align-self:stretch;background:#F8D0D0}.p-faculty-development .fd-contact-card .fd-cmail{font-size:13.5px;color:#666}.p-faculty-development .fd-contact-card .fd-cmail b{color:var(--ink);font-weight:600}@media(max-width:992px){.p-faculty-development .fd-grid{grid-template-columns:1fr}}@media(max-width:760px){.p-faculty-development .fd-card{grid-template-columns:1fr;gap:18px}.p-faculty-development .fd-side{flex-direction:row;align-items:center;
    padding-right:0;padding-bottom:16px;width:100%}.p-faculty-development .fd-side::after{right:15px;left:15px;top:auto;bottom:0;width:auto;height:1px}.p-faculty-development .fd-main{padding-right:0;padding-bottom:16px}.p-faculty-development .fd-main::after{right:15px;left:15px;top:auto;bottom:0;width:auto;height:1px}.p-faculty-development .fd-dl{justify-content:flex-start}.p-faculty-development .fd-contact-grid{grid-template-columns:1fr;gap:26px}.p-faculty-development .fd-contact-card{grid-template-columns:1fr;gap:20px}.p-faculty-development .fd-contact-card .fd-cdiv{width:100%;height:1px}
}

/* ===================== faculty.html ===================== */
/* ===== faculty page (fac-) only tweaks ===== */
/* guard: site.js adds .split to .reveal-words; keep the hero headline flowing inline
   (the generic .split grid rule must not turn it into a 2-column grid) */
.p-faculty .page-hero h1.reveal-words{display:block}.p-faculty .fac-wrap{background:linear-gradient(180deg,#ffffff 0%,#fdeff1 14%,#ffffff 34%)}
/* Frame 19: the intro block sits tighter to the hero than the generic 90px .section rhythm.
   Measured on the frame — hero curve ends y908, pill top y989 (81px), paragraph ends y1196,
   pink directory band starts y1252 (56px). Trimmed here rather than in style.css. */
.p-faculty .fac-intro{padding:80px 0 56px}.p-faculty .fac-intro .intro{margin-bottom:0}.p-faculty .fac-intro .intro .pill{margin-bottom:24px}.p-faculty .fac-intro .intro p{margin-top:24px}.p-faculty .fac-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:40px}
/* Frame 19 draws the search box and the Sort By select as RECTANGLES, matching the
   filter chips beside them (8px radius), not as pills. */
.p-faculty .fac-search{flex:1 1 300px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ecd9da;
  border-radius:8px;padding:12px 20px;min-width:240px}.p-faculty .fac-search i{color:#b98; font-size:15px}.p-faculty .fac-search input{border:none;outline:none;background:transparent;font-family:inherit;font-size:13px;width:100%;color:#333}.p-faculty .fac-toolbar .chipbar{margin:0;justify-content:center;flex:0 1 auto}.p-faculty .fac-sort{background:#fff;border:1px solid #ecd9da;border-radius:8px;padding:11px 20px;font-family:inherit;
  font-size:13px;color:#555;cursor:pointer;outline:none}.p-faculty .fac-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:30px}.p-faculty .fac-head h2{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.3vw,34px)}.p-faculty .fac-head .pill{margin:0;text-transform:uppercase}
/* card overrides: white, left-aligned, department tag.
   Frame 19 geometry (1920 artboard ≈ 1:1 with our 1654px container): card 135→516 = 382px wide,
   41px column gap, photo 317×321 (square) inset 32px from the card edge. The 5/7 portrait crop
   was what made these cards read "larger" than the SBM page. */
.p-faculty .fac-wrap .people-grid{gap:40px}.p-faculty .fac-wrap .person{background:#fff;border:1px solid #efe2e3;text-align:left;padding:30px;
  box-shadow:0 10px 30px -22px rgba(20,20,40,.35)}.p-faculty .fac-wrap .person .ph{background:#f7dfe3;margin-bottom:22px;aspect-ratio:1/1;border-radius:12px}.p-faculty .fac-wrap .person .ph img{object-position:top center}.p-faculty .fac-tag{display:inline-block;color:var(--red);font-size:11px;font-weight:700;letter-spacing:.6px;margin-bottom:8px}.p-faculty .fac-wrap .person h4{font-size:15.5px;margin-bottom:6px}.p-faculty .fac-wrap .person .role{color:#6b6b70;font-weight:500;font-size:12.5px;margin-bottom:5px}.p-faculty .fac-wrap .person .meta{min-height:auto;margin-bottom:20px;color:#8a8a90;font-size:12px}.p-faculty .fac-wrap .person .btn-red{display:inline-block}
/* Frame 19: the 01/02/03 pager sits inside its own rounded card, not loose on the background. */
.p-faculty .fac-pagerwrap{display:flex;justify-content:center;margin-top:52px}
/* frame box measures 352×90 with the 01 pill 50px across and 54px between pills */
.p-faculty .fac-pager{display:inline-flex;align-items:center;gap:54px;background:#fff;border:1px solid #f2e2e3;
  border-radius:16px;padding:20px 42px;box-shadow:0 14px 34px -24px rgba(20,20,40,.45)}.p-faculty .fac-pager span{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;font-size:13px;
  font-weight:600;color:#888;cursor:pointer;transition:.2s}.p-faculty .fac-pager span.active{background:var(--pink);color:var(--red)}@media(max-width:760px){.p-faculty .fac-toolbar .chipbar{width:100%;order:3}.p-faculty .fac-search{order:1}.p-faculty .fac-sort{order:2}
}

/* ===================== guest-lectures.html ===================== */
/* ===== Guest Lectures (page id: .gl-) ===== */
.p-guest-lectures .gl-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 auto 46px;max-width:820px;justify-content:center}.p-guest-lectures .gl-search{flex:1 1 420px;min-width:240px;position:relative}.p-guest-lectures .gl-search input{width:100%;border:1px solid #ecd9da;border-radius:10px;padding:15px 20px;
  font-family:var(--sans);font-size:13.5px;color:#444;background:#fff;transition:border-color .22s}.p-guest-lectures .gl-search input:focus{outline:none;border-color:var(--red)}.p-guest-lectures .gl-search input::placeholder{color:#9a9a9a}.p-guest-lectures .gl-sort{position:relative;flex:0 0 auto}.p-guest-lectures .gl-sort select{appearance:none;-webkit-appearance:none;border:1px solid #ecd9da;border-radius:10px;
  padding:15px 44px 15px 20px;font-family:var(--sans);font-size:13.5px;color:#444;background:#fff;
  cursor:pointer;transition:border-color .22s}.p-guest-lectures .gl-sort select:focus{outline:none;border-color:var(--red)}.p-guest-lectures .gl-sort i{position:absolute;right:18px;top:50%;transform:translateY(-50%);color:#8a8a8a;font-size:13px;pointer-events:none}.p-guest-lectures .gl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.p-guest-lectures .gl-card{display:grid;grid-template-columns:150px 1fr;gap:24px;background:#fff;border:1px solid #f0e2e3;
  border-radius:16px;padding:22px;align-items:start;transition:transform .3s ease,box-shadow .3s ease}.p-guest-lectures .gl-card:hover{transform:translateY(-5px);box-shadow:0 26px 48px -26px rgba(20,20,40,.35);border-color:#ecd0d2}.p-guest-lectures .gl-ph{aspect-ratio:1/1.05;border-radius:12px;background:linear-gradient(160deg,#f4e6e7,#ede0e1);overflow:hidden}.p-guest-lectures .gl-ph img{width:100%;height:100%;object-fit:cover}.p-guest-lectures .gl-school{color:var(--red);font-size:12px;font-weight:600;letter-spacing:.3px;margin-bottom:6px;text-transform:none}.p-guest-lectures .gl-card h4{font-size:16.5px;font-weight:600;margin-bottom:12px;color:var(--ink);line-height:1.3}.p-guest-lectures .gl-desig{font-size:12.5px;color:#5a5a5a;line-height:1.6;margin-bottom:12px}.p-guest-lectures .gl-line{font-size:12.5px;color:#5a5a5a;line-height:1.6;margin-bottom:9px}.p-guest-lectures .gl-line:last-child{margin-bottom:0}.p-guest-lectures .gl-line b{color:var(--ink);font-weight:600}
/* frame 32 draws the pager as a rounded RECTANGLE (not a stadium/pill) with the page
   numbers themselves circular; the old 40px radius made the whole bar read as a pill */
.p-guest-lectures .gl-pager{display:inline-flex;align-items:center;gap:26px;margin:52px auto 0;padding:14px 34px;
  border-radius:20px;box-shadow:0 14px 30px -20px rgba(20,20,40,.35)}.p-guest-lectures .gl-pager button{border:none;background:transparent;font-family:var(--sans);font-size:14px;font-weight:600;
  color:#8a8a8a;cursor:pointer;width:40px;height:40px;border-radius:50%;transition:all .22s}.p-guest-lectures .gl-pager button:hover{color:var(--red)}.p-guest-lectures .gl-pager button.active{background:#fff;color:var(--red);box-shadow:0 8px 18px -10px rgba(210,35,42,.5)}.p-guest-lectures .gl-pager-wrap{text-align:center}@media(max-width:1100px){.p-guest-lectures .gl-grid{grid-template-columns:1fr}}@media(max-width:560px){.p-guest-lectures .gl-card{grid-template-columns:120px 1fr;gap:16px;padding:18px}.p-guest-lectures .gl-search{flex:1 1 100%}.p-guest-lectures .gl-sort, .p-guest-lectures .gl-sort select{width:100%}
}

/* ===================== index.html ===================== */
/* =====================================================================
   Homepage-scoped overrides. The homepage nav is inline (inner pages get
   theirs injected by js/site.js) — these rules reproduce, for the .hero-head
   scope, the dropdown behaviour css/style.css already ships for .site-header,
   plus the third level that neither scope had. Kept in sync with SUBNAV_CSS
   in js/site.js so both navs behave and look identical.
   ===================================================================== */
/* nav bottom rule ("navigation bar bottom line missing") is handled globally by
   .nav-main{border-bottom} in css/style.css — verified rendering here, no override needed. */
/* --- level 1 + 2: same as .site-header gets from style.css --- */
.p-index .hero-head .nav-main ul{overflow:visible}.p-index .hero-head .nav-main li{position:relative;display:flex;align-items:center}.p-index .hero-head .nav-main li.has-sub:hover > .subnav, .p-index .hero-head .nav-main li.has-sub:focus-within > .subnav{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,6px)}
/* --- level 3: nested flyout off "Administration" --- */
.p-index .hero-head .nav-main .subnav{text-align:left}.p-index .hero-head .nav-main .sub-item{position:relative}.p-index .hero-head .nav-main .sub-item > a{display:flex;align-items:center;justify-content:space-between;gap:18px}.p-index .hero-head .nav-main .sub-item > a > i{font-size:10px;opacity:.5;flex:none}.p-index .hero-head .nav-main .sub-item:hover > a{background:var(--pink-bg);color:var(--red)}.p-index .hero-head .nav-main .sub-item:hover > a > i{opacity:1}.p-index .hero-head .nav-main .subnav-2{top:-12px;left:100%;transform:translate(20px,0);min-width:212px}.p-index .hero-head .nav-main .subnav-2::before{top:0;bottom:0;left:-22px;right:auto;width:24px;height:auto}.p-index .hero-head .nav-main .sub-item.has-sub:hover > .subnav-2, .p-index .hero-head .nav-main .sub-item.has-sub:focus-within > .subnav-2{opacity:1;visibility:visible;pointer-events:auto;transform:translate(14px,0)}
/* <=992px the horizontal bar is hidden; the burger drawer carries full navigation */
@media(max-width:992px){.p-index .hero-head .nav-main .subnav, .p-index .hero-head .nav-main .subnav-2{display:none} }
/* --- grouped drawer: css/style.css styles .drawer-group a but never makes it block,
       and the <a>s are no longer flex children of .drawer-nav, so they run together
       on one line. Same override is injected by js/site.js for the inner pages. --- */
.p-index .drawer-nav .drawer-group a{display:block}
/* --- hero still-image fallback so a blocked/failed video never shows pure black --- */
.p-index .hero-wrap{background:#050505 url('assets/img/hero-poster.jpg') center center/cover no-repeat}

/* ===================== library.html ===================== */
/* ================= library page-only styles (prefix .lb-) ================= */
.p-library .lb-main{display:grid;grid-template-columns:267px 1fr;gap:60px;align-items:start}.p-library .lb-main > *{min-width:0}.p-library .lb-panes{min-width:0}
/* ---- left vertical tab rail ---- */
.p-library .lb-rail{display:flex;flex-direction:column;gap:26px;position:sticky;top:24px}.p-library .lb-rail .tab{display:block;width:100%;text-align:left;font-family:inherit;background:#fff;border:1px solid #ececec;border-radius:10px;
  padding:16px 20px;font-size:14px;font-weight:500;color:#2c2c2c;line-height:1.35;
  cursor:pointer;transition:.22s;box-shadow:0 2px 10px -6px rgba(0,0,0,.18)}.p-library .lb-rail .tab:hover{border-color:var(--red);color:var(--red)}.p-library .lb-rail .tab.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:600;
  box-shadow:0 14px 26px -16px rgba(210,35,42,.8)}
/* ---- shared pane bits ---- */
.p-library .lb-h{font-size:clamp(28px,2.6vw,46px);font-weight:300;line-height:1.25;letter-spacing:-.3px}.p-library .lb-h .serif{font-family:var(--serif);font-weight:700}.p-library .lb-panel{background:linear-gradient(168deg,#fbdee3 0%,#fdecef 20%,#fef6f7 46%,#ffffff 78%);
  border-radius:70px 20px 20px 20px;padding:64px 56px 56px}.p-library .lb-rule{height:1px;background:#e4e4e4;border:0;margin:0}
/* ---- About pane ---- */
.p-library .lb-about{display:grid;grid-template-columns:601fr 669fr;gap:59px;align-items:start}.p-library .lb-about-media img{width:100%;height:auto;aspect-ratio:601/338;object-fit:cover;display:block;
  border-radius:16px 16px 16px 60px;box-shadow:0 22px 50px -30px rgba(20,30,60,.45)}.p-library .lb-about h2{margin-bottom:20px}.p-library .lb-about p{font-size:14px;line-height:1.9}.p-library .lb-em{font-weight:600;font-style:italic;color:#3a3a3a}.p-library .lb-paras{margin-top:40px}.p-library .lb-paras p{font-size:14px;line-height:1.9;margin-bottom:20px}.p-library .lb-paras p:last-child{margin-bottom:0}
/* ---- E-resources tables ---- */
.p-library .lb-res-h{margin-bottom:34px}.p-library .lb-tables{display:grid;grid-template-columns:1fr 1fr;background:transparent}.p-library .lb-tables > *{min-width:0}.p-library .lb-tbl{width:100%;border-collapse:collapse;font-size:13.5px}.p-library .lb-tbl th, .p-library .lb-tbl td{text-align:left;padding:9px 18px;vertical-align:top;color:#5c5c5c;font-weight:400}.p-library .lb-tbl th{font-weight:500;color:#4a4a4a;font-size:13.5px;padding-top:16px;padding-bottom:16px}.p-library .lb-tbl thead tr{border-bottom:1px solid #dedede}.p-library .lb-tbl col.sr{width:22%}.p-library .lb-tbl tr.grp td{font-weight:600;color:var(--red);letter-spacing:.3px;padding-top:26px;padding-bottom:6px;
  text-transform:uppercase;font-size:12px}.p-library .lb-tables .lb-tw{border-left:1px solid #dedede;border-right:1px solid #dedede;
  border-bottom:1px solid #dedede;background:rgba(255,255,255,.55)}.p-library .lb-tables .lb-tw + .lb-tw{border-left:0}.p-library .lb-tables .lb-tw:first-child{border-top:1px solid #dedede;border-radius:0}.p-library .lb-tables .lb-tw:last-child{border-top:1px solid #dedede}.p-library .lb-tbl tbody tr:last-child td{padding-bottom:26px}
/* ---- Timings ---- */
.p-library .lb-panel.lb-time{padding-left:117px}.p-library .lb-time h2{margin-bottom:30px}.p-library .lb-time-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 46px;font-size:14px;margin-bottom:26px}.p-library .lb-time-row:last-child{margin-bottom:0}.p-library .lb-time-lbl{min-width:190px;font-weight:600;color:#1d1d1f}.p-library .lb-time-vals{display:flex;flex-wrap:wrap;gap:8px 70px}.p-library .lb-time-val{color:#4b4b4b}
/* rich text copy (about / OPAC) — the CMS editor wraps paragraphs in <p> */
.p-library .lb-copy{font-size:14px;line-height:1.9}.p-library .lb-copy p{margin:0 0 16px}.p-library .lb-copy p:last-child{margin-bottom:0}.p-library .lb-paras .lb-copy + .lb-copy{margin-top:20px}.p-library .lb-opac-btn{margin-top:24px;display:inline-flex}
.p-library .lb-serv-card img{margin-top:3px;flex-shrink:0}.p-library img.lb-team-ph{display:block;object-fit:cover}.p-library .lb-time-val b{font-weight:600;color:#1d1d1f}
/* ---- Web OPAC ---- */
.p-library .lb-opac h2{margin-bottom:24px}.p-library .lb-opac p{font-size:14px;line-height:1.9;max-width:1300px}
/* ---- Services ---- */
.p-library .lb-serv h2{margin-bottom:36px}.p-library .lb-serv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px;align-items:stretch}.p-library .lb-serv-card{display:flex;gap:20px;align-items:flex-start;background:#fff;border:1px solid #e9e9e9;
  border-radius:12px;padding:20px 22px;font-size:14px;line-height:1.55;color:#3a3a3a;
  box-shadow:0 4px 14px -10px rgba(0,0,0,.2)}.p-library .lb-serv-card i{color:var(--red);font-size:20px;line-height:1.1;flex:0 0 auto;margin-top:-1px}
/* ---- Team ---- */
.p-library .lb-team h2{margin-bottom:34px}.p-library .lb-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:59px;max-width:1036px}.p-library .lb-team-card{background:#fff;border:1px solid #f4dfe1;border-radius:14px;padding:30px}.p-library .lb-team-ph{width:100%;aspect-ratio:1/1;background:#d6d6d6;border-radius:12px}.p-library .lb-team-card h3{font-size:19px;font-weight:600;margin-top:26px}.p-library .lb-team-role{font-size:14px;font-style:italic;color:#5f5f5f;margin-top:6px}.p-library .lb-team-mail{font-size:14px;color:#4b4b4b;margin-top:20px}.p-library .lb-team-mail b{font-weight:600;color:#1d1d1f}.p-library .lb-team-mail a{color:#4b4b4b}.p-library .lb-team-mail a:hover{color:var(--red)}
/* ---- Gallery ---- */
.p-library .lb-gal h2{margin-bottom:34px}.p-library .lb-gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:31px;max-width:1262px}.p-library .lb-gal-grid img{width:100%;height:270px;object-fit:cover;border-radius:10px;
  box-shadow:0 14px 34px -24px rgba(20,30,60,.5)}
/* ---- Follow us ---- */
.p-library .lb-follow h2{margin-bottom:34px}.p-library .lb-social{display:grid;grid-template-columns:repeat(3,1fr);gap:31px;max-width:1262px}.p-library .lb-social a{display:flex;align-items:center;justify-content:center;gap:14px;background:#fff;
  border:1px solid #e4e4e4;border-radius:34px;padding:19px 20px;font-size:16px;font-weight:600;
  color:#1d1d1f;transition:.22s}.p-library .lb-social a:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:0 16px 30px -22px rgba(0,0,0,.5)}.p-library .lb-social i{font-size:26px;line-height:1}.p-library .lb-social .ig{color:var(--red)}.p-library .lb-social .fb{color:#1d1d1f}.p-library .lb-social .li{color:#8f1015}
/* ---- responsive ---- */
@media(max-width:1200px){.p-library .lb-panel{padding:48px 34px 40px;border-radius:44px 16px 16px 16px}.p-library .lb-panel.lb-time{padding-left:56px}.p-library .lb-tables{grid-template-columns:1fr}.p-library .lb-tables .lb-tw + .lb-tw{border-left:1px solid #dedede;border-top:0}.p-library .lb-team-grid{gap:26px}
}@media(max-width:980px){.p-library .lb-main{grid-template-columns:1fr;gap:30px}.p-library .lb-rail{position:static;flex-direction:row;flex-wrap:wrap;gap:10px}.p-library .lb-rail .tab{flex:1 1 200px;text-align:center;padding:12px 14px;font-size:13px}.p-library .lb-about{grid-template-columns:1fr;gap:28px}.p-library .lb-about-media img{height:300px;border-radius:16px}.p-library .lb-serv-grid{grid-template-columns:repeat(2,1fr)}.p-library .lb-team-grid{grid-template-columns:1fr 1fr}.p-library .lb-gal-grid{grid-template-columns:repeat(2,1fr)}.p-library .lb-social{grid-template-columns:1fr}
}@media(max-width:640px){.p-library .lb-panel, .p-library .lb-panel.lb-time{padding:36px 20px 30px;border-radius:30px 14px 14px 14px}.p-library .lb-serv-grid, .p-library .lb-team-grid, .p-library .lb-gal-grid{grid-template-columns:1fr}.p-library .lb-gal-grid img{height:220px}.p-library .lb-time-lbl{min-width:0}.p-library .lb-tw{overflow-x:auto}.p-library .lb-tbl{min-width:400px}.p-library .lb-rail .tab{flex:1 1 100%}
}

/* ===================== newsletter.html ===================== */
/* Fix: site.js adds a `split` class to reveal-words headings, which collides
   with the generic `.split` 2-column grid component. Keep headings as flowing text. */
.p-newsletter .reveal-words.split{display:block;grid-template-columns:none;gap:0;align-items:initial}.p-newsletter .reveal-words .w{display:inline-block}
/* ===== Newsletter page-only (nl-) ===== */
/* Widen intro so the heading fits in 2 lines like the reference */
.p-newsletter [data-filter-scope] .intro{max-width:1080px}.p-newsletter [data-filter-scope] .intro h2{font-size:clamp(26px,2.5vw,38px)}
/* frame 33 left-aligns the filter row with the card grid (first chip starts on the
   container's left edge), so undo the global centred/auto-margin chipbar here */
.p-newsletter .chipbar{justify-content:center;margin-left:0;margin-right:0}.p-newsletter .nl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:8px}.p-newsletter .nl-card{background:#fff;border:1px solid #eee;border-radius:18px;padding:20px;
  display:flex;flex-direction:column;transition:box-shadow .3s,transform .3s}.p-newsletter .nl-card:hover{box-shadow:0 22px 48px rgba(20,10,10,.09);transform:translateY(-4px)}.p-newsletter .nl-card .nl-img{border-radius:12px;overflow:hidden;margin-bottom:20px}.p-newsletter .nl-card .nl-img img{width:100%;height:190px;object-fit:cover;display:block}.p-newsletter .nl-school{color:var(--red);font-size:12.5px;font-weight:600;letter-spacing:.3px;margin-bottom:8px}.p-newsletter .nl-card h3{font-size:19px;font-weight:600;line-height:1.4;margin-bottom:12px;color:var(--ink)}.p-newsletter .nl-card p{font-size:13px;color:#555;line-height:1.75;margin-bottom:22px;flex:1}.p-newsletter .nl-card .btn-red{align-self:flex-start;padding:11px 22px;font-size:12px}@media(max-width:980px){.p-newsletter .nl-grid{grid-template-columns:repeat(2,1fr);gap:26px}}@media(max-width:640px){.p-newsletter .nl-grid{grid-template-columns:1fr}.p-newsletter .nl-card .nl-img img{height:auto}}

/* ===================== placement-committee.html ===================== */
/* ===== placement-committee (.pc-) page-only styles ===== */
.p-placement-committee .pc-acc{width:min(1440px,100%);margin:44px auto 0;display:flex;flex-direction:column;gap:18px}.p-placement-committee .pc-item{border:1px solid #ececec;border-radius:14px;background:#fff;padding:6px 4px;
  transition:box-shadow .3s ease}.p-placement-committee .pc-item:hover{box-shadow:0 14px 34px rgba(0,0,0,.06)}.p-placement-committee .pc-item.open{box-shadow:0 18px 44px rgba(20,20,40,.07)}.p-placement-committee .pc-row{display:flex;align-items:center;gap:22px;padding:22px 30px;cursor:pointer}.p-placement-committee .pc-head{flex:1}.p-placement-committee .pc-t{font-size:16px;font-weight:600;color:#1D1D1F;line-height:1.35}.p-placement-committee .pc-item.open .pc-t{color:var(--red)}.p-placement-committee .pc-sub{font-size:12px;font-weight:500;color:#7c7c7c;letter-spacing:.4px;text-transform:uppercase;margin-top:4px}.p-placement-committee .pc-row .acc-plus{font-size:28px;color:#c5c5c5;font-weight:300;line-height:1;flex-shrink:0}.p-placement-committee .pc-item.open .pc-row .acc-plus{color:var(--red)}.p-placement-committee .pc-body{display:none;padding:0 30px 30px}.p-placement-committee .pc-item.open .pc-body{display:block}.p-placement-committee .pc-body::before{content:"";display:block;height:1px;background:#ececec;margin:0 0 28px}.p-placement-committee .pc-body .person{background:#fff;border:1px solid #f2e4e6;text-align:left}.p-placement-committee .pc-body .person .ph{background:#dedede;margin-bottom:18px}.p-placement-committee .pc-body .person h4{margin-bottom:5px}.p-placement-committee .pc-body .person .role{font-style:italic;color:#4a4a4a;font-weight:500;margin-bottom:14px}.p-placement-committee .pc-email{font-size:12px;color:#555;line-height:1.5;word-break:break-word}.p-placement-committee .pc-email b{font-weight:600;color:#222}@media(max-width:560px){.p-placement-committee .pc-row{padding:18px 20px}.p-placement-committee .pc-body{padding:0 20px 24px} }

/* ===================== placement-recruiters.html ===================== */
/* page-only tweaks — prefix .rc- */
.p-placement-recruiters .rc-recruiters{padding:74px 0 84px}.p-placement-recruiters .rc-marquee{overflow:hidden;margin-top:18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.p-placement-recruiters .rc-track{display:flex;gap:20px;width:max-content;animation:rc-scroll 32s linear infinite}.p-placement-recruiters .rc-marquee:hover .rc-track{animation-play-state:paused}.p-placement-recruiters .rc-track .lw{flex:0 0 200px;height:132px;padding:22px}.p-placement-recruiters .rc-track .lw img{max-height:74px;max-width:80%}@keyframes rc-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.p-placement-recruiters .rc-track{animation:none}}@media(max-width:640px){.p-placement-recruiters .rc-track .lw{flex:0 0 150px;height:110px;padding:16px}.p-placement-recruiters .rc-track .lw img{max-height:56px}}

/* ===================== placement-recruitment.html ===================== */
/* page-only tweaks — prefix .pr- */
.p-placement-recruitment .pr-section .eyebrow{margin-bottom:44px}.p-placement-recruitment .pr-section .eyebrow .ink{color:var(--ink)}.p-placement-recruitment .pr-section .logo-wall{grid-template-columns:repeat(5,1fr)}.p-placement-recruitment .pr-section .logo-wall .lw{height:132px;padding:20px 26px}.p-placement-recruitment .pr-section .logo-wall .lw img{max-height:88px;max-width:88%}.p-placement-recruitment .pr-more{display:flex;justify-content:center;margin-top:44px}@media(max-width:992px){.p-placement-recruitment .pr-section .logo-wall{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.p-placement-recruitment .pr-section .logo-wall{grid-template-columns:repeat(2,1fr);gap:14px}.p-placement-recruitment .pr-section .logo-wall .lw{height:110px;padding:16px}}

/* ===================== placement-reports.html ===================== */
/* Placement Reports (page id: pr-)
   Frame 46 geometry (1920 artboard, 1654 container = 1:1):
   hero ends y=907; "Placement Reports" y968..1037; card box top y=1099;
   cover x184..604 (420 wide) y1141..1741 (600 tall) -> 42px top / 52px side inner padding;
   card box 132..656 (524 wide), next card starts 698 -> 42px grid gap.
   Heading breathing room: 80px above, and 58px + 42px card padding = 100px to the cover. */
.p-placement-reports .pr-reports{padding:80px 0 100px}
/* frame 46: "Placement" is ink #313134, only "Reports" is red; ~45px on the 1920 artboard */
.p-placement-reports .pr-reports .eyebrow{color:var(--ink);font-size:clamp(26px,2.85vw,45px);margin-bottom:52px}.p-placement-reports .pr-reports .eyebrow .text-red{color:var(--red)}.p-placement-reports .pr-grid{grid-template-columns:repeat(3,1fr);gap:42px}.p-placement-reports .pr-doc{display:block;text-decoration:none;color:inherit;padding:42px 52px 0;
  border-color:#F7D0D0;box-shadow:0 18px 42px -30px rgba(20,20,40,.35)}.p-placement-reports .pr-doc .pr-cover{width:100%;height:auto;display:block;background:#f4eef0;aspect-ratio:420/600;object-fit:cover;object-position:top}.p-placement-reports .pr-doc .cap{align-items:flex-start;padding:22px 0 30px}.p-placement-reports .pr-doc .cap b{line-height:1.4}.p-placement-reports .pr-prog{display:block;margin-top:8px;color:var(--red);font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}@media(max-width:1200px){.p-placement-reports .pr-doc{padding:30px 34px 0}.p-placement-reports .pr-grid{gap:30px}}@media(max-width:992px){.p-placement-reports .pr-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.p-placement-reports .pr-reports{padding:52px 0 60px}.p-placement-reports .pr-reports .eyebrow{margin-bottom:34px}.p-placement-reports .pr-grid{grid-template-columns:1fr;gap:20px}.p-placement-reports .pr-doc{padding:20px 20px 0}}

/* ===================== placements.html ===================== */
/* ===== Placement team page-only styles (prefix .plc-) ===== */
.p-placements .plc-head{display:flex;align-items:center;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:40px}.p-placements .plc-title{font-family:var(--serif);font-weight:700;font-size:clamp(26px,3vw,44px);
  line-height:1.2;color:var(--ink);margin:0}.p-placements .plc-title .text-red{color:var(--red)}.p-placements .plc-experts{display:inline-block;background:var(--pink);color:var(--ink);font-size:12px;
  font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:9px 20px;border-radius:40px;white-space:nowrap}.p-placements .plc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.p-placements .plc-card{display:flex;gap:26px;align-items:flex-start;background:#fff;border:1px solid #efe3e3;
  border-radius:16px;padding:26px;transition:transform .25s ease,box-shadow .25s ease}.p-placements .plc-card:hover{transform:translateY(-5px);box-shadow:0 24px 44px -24px rgba(20,20,40,.35)}.p-placements .plc-ph{flex:0 0 140px;width:140px;aspect-ratio:1/1;border-radius:10px;overflow:hidden;
  background:#f2e5e6;border:1px solid #eee}.p-placements .plc-ph img{width:100%;height:100%;object-fit:cover}.p-placements .plc-info{padding-top:6px}.p-placements .plc-info h4{font-size:17px;font-weight:600;color:var(--ink);margin:0 0 6px}.p-placements .plc-info .role{color:#6f6f6f;font-size:13px;font-weight:400;margin-bottom:16px}.p-placements .plc-line{font-size:13px;color:#555;line-height:1.9}.p-placements .plc-line b{color:var(--ink);font-weight:600}.p-placements .plc-contact h2{font-family:var(--serif);font-weight:700;font-size:clamp(24px,2.6vw,38px);
  color:var(--ink);margin:0 0 30px}.p-placements .plc-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.p-placements .plc-ghost{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;
  background:#fff;border:1px solid #ecd9da;border-radius:12px;color:var(--ink);
  font-size:14px;font-weight:500;padding:16px 24px;text-decoration:none;transition:.2s ease}.p-placements .plc-ghost:hover{border-color:var(--red);color:var(--red)}.p-placements .plc-ghost i{font-size:16px;transition:transform .25s ease}.p-placements .plc-ghost:hover i{transform:translate(3px,-3px)}.p-placements .plc-email{font-size:14px;color:#555}.p-placements .plc-email b{color:var(--ink);font-weight:600}.p-placements .plc-actions .btn-red{text-transform:none;letter-spacing:0}@media(max-width:992px){.p-placements .plc-grid{grid-template-columns:1fr}}@media(max-width:520px){.p-placements .plc-card{flex-direction:column;gap:18px}.p-placements .plc-ph{flex-basis:120px;width:120px}
}

/* ===================== programs.html ===================== */
/* ===== programs page-only (prefix .pg-) — geometry matched to Figma frame 21 =====
   cards: 2-up, 556px each, 24px gap, 1136px centred block, #f7d0d0 border. */
/* School of Business Management feature block */
/* frame 25: image col 744px, gap 69px, text col 584px, image 744x442 */
.p-programs .pg-feat{display:grid;grid-template-columns:744fr 584fr;gap:69px;align-items:center;margin-top:44px;
  width:1397px;max-width:100%;margin-inline:auto}.p-programs .pg-feat-media{border-radius:14px;overflow:hidden;aspect-ratio:744/442}.p-programs .pg-feat-media img{width:100%;height:100%;object-fit:cover;display:block}.p-programs .pg-feat h3{font-size:clamp(26px,2.5vw,38px);font-weight:400;margin-bottom:12px}
/* frame 25 keeps this title on one line, overhanging the body-copy column */
@media(min-width:993px){.p-programs .pg-feat h3{white-space:nowrap} }.p-programs .pg-feat h3 .serif{font-family:var(--serif);font-weight:700}.p-programs .pg-feat .pg-feat-sub{font-size:14px;font-weight:600;color:#1D1D1F;margin-bottom:14px}.p-programs .pg-feat p{font-size:14px;line-height:1.95;color:#555;margin-bottom:26px}.p-programs .pg-group{margin-top:100px}
/* frame 25 sets these at the same 46px as the site's .intro h2 — match that scale, not a smaller one */
.p-programs .pg-group-h{font-size:clamp(26px,2.7vw,42px);font-weight:400;margin-bottom:34px;text-align:center;
  line-height:1.35;max-width:1200px;margin-inline:auto}.p-programs .pg-group-h .text-red{font-weight:700}
/* authored line-breaks from the frame; collapse to natural wrapping on narrow screens */
@media(max-width:1100px){.p-programs .pg-group-h br{display:none} }.p-programs .pg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;width:1136px;max-width:100%;margin-inline:auto}.p-programs .pg-card{border:1px solid #f7d0d0;border-radius:16px;background:#fff;padding:20px;display:flex;
  flex-direction:column;transition:box-shadow .3s,transform .3s}.p-programs .pg-card:hover{box-shadow:0 22px 50px -22px rgba(0,0,0,.18);transform:translateY(-4px)}.p-programs .pg-media{border-radius:12px;overflow:hidden;aspect-ratio:16/10;margin-bottom:20px}.p-programs .pg-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.p-programs .pg-card:hover .pg-media img{transform:scale(1.05)}.p-programs .pg-title{font-size:20px;font-weight:600;color:var(--ink);margin:0 0 8px}.p-programs .pg-sub{font-size:14px;font-style:italic;color:#4a4a4a;margin:0 0 22px}.p-programs .pg-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:auto}
/* alternating admission-route rows (image one side, details the other) */
/* frame 25: text col 500px, gap 80px, image 743x448 with a large bottom-outer corner sweep */
.p-programs .pg-route{display:grid;grid-template-columns:743fr 500fr;gap:80px;align-items:center;margin-top:100px;
  width:1323px;max-width:100%;margin-inline:auto}.p-programs .pg-route.rev{grid-template-columns:500fr 743fr}.p-programs .pg-route.rev .pg-route-media{order:2}.p-programs .pg-route-media{border-radius:14px 14px 14px 90px;overflow:hidden;aspect-ratio:743/448}.p-programs .pg-route.rev .pg-route-media{border-radius:14px 14px 90px 14px}.p-programs .pg-route-media img{width:100%;height:100%;object-fit:cover;display:block}.p-programs .pg-route h4{font-size:18px;font-weight:600;color:var(--red);margin-bottom:22px;line-height:1.5}.p-programs .pg-doc{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500;color:#333;margin-bottom:14px}.p-programs .pg-doc .pdf{background:var(--red);color:#fff;font-size:9px;font-weight:700;padding:6px 7px;border-radius:4px;letter-spacing:.5px}.p-programs .pg-doc:hover{color:var(--red)}.p-programs .pg-route .btn-red{margin-top:10px}@media(max-width:992px){.p-programs .pg-grid{grid-template-columns:1fr;width:100%}.p-programs .pg-feat, .p-programs .pg-route, .p-programs .pg-route.rev{grid-template-columns:1fr;gap:30px}.p-programs .pg-route.rev .pg-route-media{order:0}.p-programs .pg-route-media, .p-programs .pg-route.rev .pg-route-media{border-radius:14px}
}

/* ===================== resource-book.html ===================== */
/* ===== Resource Book (rb-) page-only styles ===== */
/* frame 31: the toolbar runs the full container width (search box on the left edge,
   sort select flush with the right edge of the last card column) — no max-width cap */
.p-resource-book .rb-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 44px}.p-resource-book .rb-search{flex:1 1 260px;min-width:220px;background:#fff;border:1px solid #e7dcdd;border-radius:10px;
  padding:14px 18px;font-family:inherit;font-size:13px;color:#333;outline:none;transition:border-color .2s}.p-resource-book .rb-search:focus{border-color:var(--red)}.p-resource-book .rb-search::placeholder{color:#9a9a9a}.p-resource-book .rb-chips{display:flex;flex-wrap:wrap;gap:10px}.p-resource-book .rb-chip{background:#fff;border:1px solid #e7dcdd;color:#555;font-size:13px;font-weight:500;letter-spacing:.3px;
  padding:13px 26px;border-radius:10px;cursor:pointer;transition:.22s;white-space:nowrap;font-family:inherit}.p-resource-book .rb-chip:hover{border-color:var(--red);color:var(--red)}.p-resource-book .rb-chip.active{background:var(--red);color:#fff;border-color:var(--red)}.p-resource-book .rb-sort{flex:0 0 auto;background:#fff;border:1px solid #e7dcdd;border-radius:10px;padding:13px 16px;
  font-family:inherit;font-size:13px;color:#555;cursor:pointer;outline:none;min-width:150px}.p-resource-book .rb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
/* frame 31 card is 415x137 with the PDF badge 40px in from the left and 38px down from
   the top — i.e. roughly double the old 20px/22px padding */
.p-resource-book .rb-card{display:flex;align-items:center;gap:16px;background:var(--pink-bg);border:1px solid #f4e3e5;
  border-radius:14px;padding:40px 42px;text-decoration:none;transition:transform .3s,box-shadow .3s}.p-resource-book .rb-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,20,40,.4)}.p-resource-book .rb-pdf{position:relative;flex:0 0 auto;width:42px;height:50px;border-radius:5px;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px}.p-resource-book .rb-pdf::before{content:"";position:absolute;top:0;right:0;border-width:0 0 12px 12px;border-style:solid;
  border-color:transparent transparent #fff #fff;opacity:.35;border-top-right-radius:5px}.p-resource-book .rb-pdf span{color:#fff;font-size:9px;font-weight:700;letter-spacing:.5px}.p-resource-book .rb-card b{flex:1 1 auto;font-size:14px;font-weight:600;color:#222}.p-resource-book .rb-card > i{flex:0 0 auto;color:#222;font-size:15px;transition:transform .25s,color .2s}.p-resource-book .rb-card:hover > i{color:var(--red);transform:translate(2px,-2px)}@media(max-width:1080px){.p-resource-book .rb-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:820px){.p-resource-book .rb-grid{grid-template-columns:repeat(2,1fr)}.p-resource-book .rb-search, .p-resource-book .rb-sort{flex:1 1 100%}}@media(max-width:480px){.p-resource-book .rb-grid{grid-template-columns:1fr}}

/* ===================== school-business-management.html ===================== */
/* ===== page-only tweaks — School of Business Management (prefix .sbm-) ===== */
/* hero sub-nav — floating rounded bar overlapping the hero bottom (per Figma) */
.p-school-business-management .sbm-subnav{background:none;position:relative;z-index:6;margin-top:-128px;padding:0 0 42px}.p-school-business-management .sbm-subnav .chipbar{margin:0;flex-wrap:nowrap;justify-content:space-between;align-items:center;
  gap:6px;height:86px;padding:0 30px;border-radius:43px;
  background:linear-gradient(180deg,#ffe4e4 0%,#fff5f5 60%,#fffdfd 100%);
  box-shadow:0 20px 44px -20px rgba(0,0,0,.20)}.p-school-business-management .sbm-subnav .chip{background:none;border:none;box-shadow:none;border-radius:22px;
  padding:11px 15px;color:#3c3c3c;font-size:13px;font-weight:600;letter-spacing:.9px;
  text-transform:uppercase;white-space:nowrap}.p-school-business-management .sbm-subnav .chip:hover{background:none;border-color:transparent;color:var(--red)}.p-school-business-management .sbm-subnav .chip.active{background:#f7d0d0;color:var(--red)}@media(max-width:1200px){.p-school-business-management .sbm-subnav .chip{font-size:11.5px;letter-spacing:.5px;padding:10px 9px}.p-school-business-management .sbm-subnav .chipbar{padding:0 18px}
}@media(max-width:992px){
/* stop overlapping the hero on small screens */
.p-school-business-management .sbm-subnav{margin-top:0;padding:22px 0 30px;background:linear-gradient(180deg,#fdf3f4 0%,#fbe9ec 100%)}.p-school-business-management .sbm-subnav .chipbar{height:auto;flex-wrap:wrap;justify-content:center;gap:10px;padding:0;
    border-radius:0;background:none;box-shadow:none}.p-school-business-management .sbm-subnav .chip{background:#fff;border:1px solid #ecd9da;box-shadow:0 6px 16px rgba(0,0,0,.05)}.p-school-business-management .sbm-subnav .chip.active{background:var(--red);color:#fff}
}
/* generic left-aligned section head */
.p-school-business-management .sbm-head{max-width:1100px;margin:0 auto 40px;text-align:center}.p-school-business-management .sbm-head .pill{margin-bottom:16px}.p-school-business-management .sbm-head h2{font-size:clamp(26px,2.7vw,42px);font-weight:400;line-height:1.35}.p-school-business-management .sbm-head h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-head h2 .text-red{font-weight:700}.p-school-business-management .sbm-head .sub{margin-top:10px;font-size:14.5px}.p-school-business-management .sbm-head.left{text-align:left;margin-left:0;max-width:none;margin-bottom:26px}
/* shared dashed separator (Figma: 1px dashed #DACBCB, container width) */
.p-school-business-management .sbm-rule{border:0;border-top:1px dashed #DACBCB;height:0;margin:0;width:100%}.p-school-business-management .sbm-rule.inset{max-width:1440px;margin-inline:auto}
/* red PDF document icon (replaces the old red "PDF" text badge) */
.p-school-business-management .pdficon{flex-shrink:0;display:flex;align-items:center;justify-content:center;line-height:0}.p-school-business-management .pdficon i{color:var(--red);font-size:30px;line-height:1;display:block}
/* overlapping prev / next carousel control */
.p-school-business-management .sbm-arrows{display:flex;align-items:center;justify-content:center;margin-top:40px}.p-school-business-management .sbm-arrows button{width:54px;height:54px;border-radius:50%;border:none;display:flex;
  align-items:center;justify-content:center;font-size:19px;cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease}.p-school-business-management .sbm-arrows .prev{background:#fff;color:#2a2a2a;box-shadow:0 10px 26px -12px rgba(0,0,0,.35);z-index:1}.p-school-business-management .sbm-arrows .next{background:#2F3033;color:#fff;margin-left:-12px}.p-school-business-management .sbm-arrows button:hover{transform:translateY(-2px)}
/* overview media — definite box per Figma (766 x 430, cover) */
.p-school-business-management #overview .split-media img{width:100%;height:430px;object-fit:cover;border-radius:10px 10px 10px 80px}@media(max-width:900px){.p-school-business-management #overview .split-media img{height:300px}}
/* MBA program features — text + auto-width feature chips */
.p-school-business-management .sbm-feat{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:start}.p-school-business-management .sbm-feat p{font-size:13.5px;line-height:1.9;margin-bottom:16px}@media(max-width:900px){.p-school-business-management .sbm-feat{grid-template-columns:1fr;gap:30px}}.p-school-business-management .sbm-chips{display:flex;flex-wrap:wrap;gap:16px;align-content:flex-start}.p-school-business-management .sbm-chip{display:flex;align-items:center;gap:18px;background:#fff;border-radius:12px;
  padding:19px 26px;box-shadow:0 8px 22px -14px rgba(0,0,0,.28);
  font-size:13.5px;font-weight:500;color:#2a2a2a;text-align:center;
  transition:transform .25s ease,box-shadow .25s ease}.p-school-business-management .sbm-chip:hover{transform:translateY(-3px);box-shadow:0 16px 30px -16px rgba(0,0,0,.3)}.p-school-business-management .sbm-chip i{color:var(--red);font-size:26px;line-height:1;flex-shrink:0}.p-school-business-management .sbm-chip span{flex:1;text-align:center}.p-school-business-management .sbm-feat-rule{margin-top:58px}
/* course structure — text + red CTA card (text left / button right) */
.p-school-business-management .sbm-cs{display:grid;grid-template-columns:1.1fr .95fr;gap:56px;align-items:center}.p-school-business-management .sbm-cs p{font-size:13.5px;line-height:1.95}.p-school-business-management .sbm-cs-card{background:linear-gradient(160deg,#fdeef1 0%,#fef7f8 100%);border-radius:24px;
  padding:44px 40px;display:flex;align-items:center;gap:30px;text-align:left}.p-school-business-management .sbm-cs-card p{font-size:15px;color:#333;font-weight:500;line-height:1.7;margin:0;flex:1}.p-school-business-management .sbm-cs-card .btn-red{white-space:normal;max-width:240px;width:240px;flex-shrink:0;
  text-align:center;font-size:13px;font-weight:700;line-height:1.45;padding:14px 18px}@media(max-width:900px){.p-school-business-management .sbm-cs{grid-template-columns:1fr;gap:34px}}.p-school-business-management .sbm-cs>*{min-width:0}@media(max-width:520px){.p-school-business-management .sbm-cs-card{padding:30px 22px;flex-direction:column;align-items:stretch}.p-school-business-management .sbm-cs-card .btn-red{width:100%;max-width:100%}}
/* academic calendar pink box + link rows */
.p-school-business-management .sbm-cal-box{background:linear-gradient(180deg,#ffe4e4 0%,#fff6f6 78%,#fffdfd 100%);
  border-radius:44px;padding:56px clamp(24px,4vw,58px) 64px}.p-school-business-management .sbm-cal-box h2{text-align:center;font-weight:400;font-size:clamp(24px,2.4vw,36px);margin-bottom:34px}.p-school-business-management .sbm-cal-box h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-cal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.p-school-business-management .sbm-cal{display:flex;align-items:center;gap:18px;background:#fff;
  border-radius:14px;padding:16px 22px;transition:transform .25s,box-shadow .25s}.p-school-business-management .sbm-cal:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(0,0,0,.28)}.p-school-business-management .sbm-cal span.t{font-size:14.5px;font-weight:500;color:#2a2a2a;line-height:1.5}@media(max-width:760px){.p-school-business-management .sbm-cal-grid{grid-template-columns:1fr}}
/* student resource book — sits inside the calendar box (Figma frame 17) */
.p-school-business-management .sbm-srb{margin-top:64px}.p-school-business-management .sbm-srb h2{text-align:center;font-weight:400;font-size:clamp(24px,2.4vw,36px);margin-bottom:30px}.p-school-business-management .sbm-srb h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-srb .sbm-cal{max-width:390px;margin-inline:auto;justify-content:center}
/* faculty — big intro head, Faculty / Visiting Faculty toggle, white cards, carousel */
.p-school-business-management .sbm-fac-head{max-width:1250px;margin:0 auto 34px;text-align:center}.p-school-business-management .sbm-fac-head h2{font-size:clamp(26px,2.7vw,42px);font-weight:400;line-height:1.42}.p-school-business-management .sbm-fac-head h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-toggle{display:flex;justify-content:center;gap:14px;margin-bottom:44px;flex-wrap:wrap}.p-school-business-management .sbm-toggle a{display:inline-flex;align-items:center;justify-content:center;min-height:52px;
  padding:14px 30px;border-radius:8px;font-size:14px;font-weight:600;background:#fff;
  border:1px solid #E3DADB;color:#2a2a2a;transition:all .25s ease}.p-school-business-management .sbm-toggle a.on{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}.p-school-business-management .sbm-toggle a:hover{transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(0,0,0,.35)}.p-school-business-management #faculty .person{background:#fff;border:1px solid #F1DDDE;border-radius:16px;padding:24px;text-align:left}.p-school-business-management #faculty .person .ph{aspect-ratio:32/36;background:#F8D2D2;border-radius:12px;margin-bottom:22px}.p-school-business-management #faculty .person .ph img{object-fit:cover;object-position:top center}.p-school-business-management #faculty .person h4{font-size:16px;font-weight:600;margin-bottom:10px}.p-school-business-management #faculty .person .role{color:#5a5a5a;font-weight:400;font-size:12.5px;margin-bottom:12px}.p-school-business-management #faculty .person .meta{color:#4a4a4a;font-size:12.5px;min-height:76px;margin-bottom:20px}.p-school-business-management #faculty .person .btn-red{font-size:11px;font-weight:700;padding:12px 20px}
/* summer internship placements — heading + bare stats (no filled box) */
.p-school-business-management .sbm-inset{max-width:1440px;margin-inline:auto}.p-school-business-management .sbm-place{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}.p-school-business-management .sbm-place h2{font-size:clamp(24px,2.4vw,38px);font-weight:400;line-height:1.35}.p-school-business-management .sbm-place h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-place h2 .text-red{font-weight:700}.p-school-business-management .sbm-place .statbar{margin:0;background:none;padding:0;border-radius:0;text-align:left;gap:40px}.p-school-business-management .sbm-place .statbar .lbl{margin-top:10px;font-size:13px}.p-school-business-management .sbm-place-rule{margin-top:44px}@media(max-width:900px){.p-school-business-management .sbm-place{grid-template-columns:1fr;gap:26px}}
/* infrastructure — 3 labelled image cards + carousel arrows */
.p-school-business-management .sbm-infra{margin-top:70px}.p-school-business-management .sbm-infra > h2{text-align:center;font-family:var(--serif);font-weight:700;
  font-size:clamp(26px,2.7vw,42px);margin-bottom:38px}.p-school-business-management .sbm-infra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.p-school-business-management .sbm-infra-card{position:relative;overflow:hidden;border-radius:12px 12px 88px 12px;
  aspect-ratio:510/597;transition:transform .3s ease,box-shadow .3s ease}.p-school-business-management .sbm-infra-card:hover{transform:translateY(-5px);box-shadow:0 26px 50px -26px rgba(20,20,40,.45)}.p-school-business-management .sbm-infra-card img{width:100%;height:100%;object-fit:cover;display:block}.p-school-business-management .sbm-infra-card .lbl{position:absolute;left:0;bottom:18%;background:var(--red);color:#fff;
  font-size:15px;font-weight:700;padding:16px 34px 16px 26px;border-radius:0 44px 44px 0;
  box-shadow:0 14px 26px -14px rgba(178,30,36,.7)}@media(max-width:992px){.p-school-business-management .sbm-infra-grid{grid-template-columns:1fr;gap:28px;max-width:520px;margin-inline:auto}}
/* placement report pink bar */
.p-school-business-management .sbm-report{display:flex;align-items:center;justify-content:center;gap:16px;
  background:linear-gradient(90deg,#fdeef0,#fbe4e7);border:1px solid #f4e0e3;border-radius:14px;
  padding:20px 26px;margin-top:34px;font-size:15px;font-weight:600;color:#2a2a2a;transition:box-shadow .25s}.p-school-business-management .sbm-report:hover{box-shadow:0 16px 30px -18px rgba(0,0,0,.28)}.p-school-business-management .sbm-report .pdf{background:var(--red);color:#fff;font-size:11px;font-weight:700;padding:9px 10px;
  border-radius:7px;letter-spacing:.5px}
/* alumni — white bordered card with a pink photo plate */
.p-school-business-management .sbm-alum-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.p-school-business-management .sbm-alum{display:flex;gap:22px;align-items:center;background:#fff;border:1px solid #F4E1E3;
  border-radius:16px;padding:20px;transition:transform .3s,box-shadow .3s}.p-school-business-management .sbm-alum:hover{transform:translateY(-6px);box-shadow:0 24px 46px -22px rgba(20,20,40,.4)}.p-school-business-management .sbm-alum .ph{flex:0 0 150px;height:150px;border-radius:12px;overflow:hidden;background:#F8D2D2}.p-school-business-management .sbm-alum .ph img{width:100%;height:100%;object-fit:cover}.p-school-business-management .sbm-alum h4{font-size:15px;font-weight:600;margin-bottom:8px}.p-school-business-management .sbm-alum p{font-size:12px;color:#555;line-height:1.7;margin:0}.p-school-business-management .sbm-alum p b{color:#2a2a2a;font-weight:600}@media(max-width:992px){.p-school-business-management .sbm-alum-grid{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
/* admission process layout */
.p-school-business-management .sbm-admit{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:start}.p-school-business-management .sbm-admit .faq{width:100%;padding:8px 30px;margin:0 0 20px;border-color:transparent;
  box-shadow:0 10px 26px -18px rgba(0,0,0,.28)}.p-school-business-management .sbm-admit-rule{margin-top:64px}.p-school-business-management .sbm-contact{background:#fff;border-radius:12px;padding:26px 30px;
  box-shadow:0 10px 26px -18px rgba(0,0,0,.28)}.p-school-business-management .sbm-contact .c-head{display:flex;align-items:center;justify-content:space-between;
  color:var(--red);font-size:14.5px;font-weight:600;padding:0 0 18px;
  border-bottom:1px solid #EFE6E6;margin-bottom:20px}.p-school-business-management .sbm-contact .c-head span{font-size:20px;line-height:1;color:var(--red)}.p-school-business-management .sbm-contact .c-name{font-size:14px;font-weight:600;color:#1d1d1f;margin-bottom:20px}.p-school-business-management .sbm-contact .c-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}.p-school-business-management .sbm-contact .c-col{display:flex;gap:12px;align-items:flex-start}.p-school-business-management .sbm-contact .c-col i{color:var(--red);font-size:15px;margin-top:3px;flex-shrink:0}.p-school-business-management .sbm-contact .c-col p{font-size:12.5px;line-height:1.9;color:#3d3d3d;margin:0;word-break:break-word}.p-school-business-management .sbm-contact .c-col a{color:#3d3d3d}.p-school-business-management .sbm-contact .c-col a:hover{color:var(--red)}@media(max-width:520px){.p-school-business-management .sbm-contact .c-cols{grid-template-columns:1fr}}
/* clubs / committee — bare red tick, borderless cards */
.p-school-business-management .sbm-checks .check{border:none;background:#fff;border-radius:12px;padding:24px 30px;gap:28px;
  align-items:center;font-size:13.5px;color:#2a2a2a;
  box-shadow:0 8px 22px -14px rgba(0,0,0,.28);transition:transform .25s,box-shadow .25s}.p-school-business-management .sbm-checks .check:hover{transform:translateY(-3px);box-shadow:0 16px 30px -16px rgba(0,0,0,.3)}.p-school-business-management .sbm-checks .check i{background:none;border-radius:0;color:var(--red);width:auto;height:auto;
  min-width:24px;font-size:26px;margin-top:0;line-height:1}
/* events & activities */
.p-school-business-management .sbm-events-head{max-width:1250px;margin:0 auto 44px;text-align:center}.p-school-business-management .sbm-events-head h2{font-size:clamp(26px,2.7vw,42px);font-weight:400;line-height:1.42}.p-school-business-management .sbm-events-head h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}.p-school-business-management .sbm-event .shot{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:536/330;
  margin-bottom:26px}.p-school-business-management .sbm-event .shot img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease}.p-school-business-management .sbm-event:hover .shot img{transform:scale(1.05)}.p-school-business-management .sbm-event .tag{position:absolute;top:20px;right:20px;background:var(--red);color:#fff;
  font-size:11px;font-weight:700;letter-spacing:.4px;padding:8px 14px;border-radius:6px}.p-school-business-management .sbm-event h3{font-family:var(--serif);font-weight:700;font-size:19px;margin-bottom:14px}.p-school-business-management .sbm-event p{font-size:13.5px;line-height:1.9;color:#4a4a4a;margin-bottom:22px}.p-school-business-management .sbm-event .more{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;
  letter-spacing:.6px;text-transform:uppercase;color:#1d1d1f}.p-school-business-management .sbm-event .more i{font-size:15px;transition:transform .25s ease}.p-school-business-management .sbm-event .more:hover{color:var(--red)}.p-school-business-management .sbm-event .more:hover i{transform:translate(3px,-3px)}@media(max-width:992px){.p-school-business-management .sbm-events-grid{grid-template-columns:1fr;gap:40px;max-width:560px;margin-inline:auto}}.p-school-business-management .sbm-admit-media{position:relative;border-radius:22px;
  padding:30px;display:flex;flex-direction:column;align-items:center;text-align:center}.p-school-business-management .sbm-admit-media .stage{position:relative;width:min(340px,100%)}.p-school-business-management .sbm-admit-media .stage img{width:100%;border-radius:16px}.p-school-business-management .sbm-admit-media .badge50{position:absolute;top:16px;right:-6px;background:var(--red);color:#fff;
  width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;border:4px solid #fff;box-shadow:0 10px 24px -10px rgba(210,35,42,.7)}.p-school-business-management .sbm-admit-media .stars{display:flex;gap:5px;margin:22px 0 8px;color:#f5a623;font-size:18px}.p-school-business-management .sbm-admit-media .cap{font-size:14px;color:#333;line-height:1.6;margin-bottom:22px}.p-school-business-management .sbm-admit-media .btn-red{width:100%;max-width:320px}@media(max-width:900px){.p-school-business-management .sbm-admit{grid-template-columns:1fr;gap:36px}}
/* clubs / committee two-block */
.p-school-business-management .sbm-block + .sbm-block{margin-top:46px}.p-school-business-management .sbm-block h2{font-family:var(--serif);font-weight:700;font-size:clamp(24px,2.4vw,34px);
  margin-bottom:24px}
/* documents / yearbooks */
.p-school-business-management .sbm-docs-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}.p-school-business-management .sbm-docs-grid > div + div{border-left:1px solid #E7DADA;padding-left:78px}.p-school-business-management .sbm-doc-list{max-width:620px}.p-school-business-management .sbm-docs-grid h2{font-weight:400;font-size:clamp(22px,2.3vw,32px);margin-bottom:26px}.p-school-business-management .sbm-docs-grid h2 .serif{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-docs-grid h2 .text-red{font-family:var(--serif);font-weight:700}.p-school-business-management .sbm-doc-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.p-school-business-management .sbm-doc{display:flex;align-items:center;gap:14px;background:#fff;
  border-radius:12px;padding:14px 18px;box-shadow:0 8px 22px -14px rgba(0,0,0,.28);transition:transform .25s,box-shadow .25s;text-decoration:none}
@media(max-width:992px){.p-school-business-management .sbm-docs-grid{grid-template-columns:1fr;gap:36px}.p-school-business-management .sbm-docs-grid > div + div{border-left:none;padding-left:0}}@media(max-width:520px){.p-school-business-management .sbm-doc-list{grid-template-columns:1fr}}
.p-school-business-management .tst-comp .arch{height:260px;object-fit:cover;object-position:top}
/* ===================== student-council.html ===================== */
/* ===== Student Council page-only styles (prefix .sc-) ===== */
.p-student-council .sc-acc{display:grid;grid-template-columns:1fr;gap:18px;margin:44px auto 0;width:min(1320px,calc(100% - 80px))}.p-student-council .sc-acc .acc-row{padding:22px 30px;gap:18px}.p-student-council .sc-acc .acc-t{display:flex;flex-direction:column;gap:5px}.p-student-council .sc-h{font-size:16px;font-weight:600;color:#222;line-height:1.3}.p-student-council .sc-sub{font-size:12.5px;font-weight:500;color:#7c7c7c}.p-student-council .sc-acc .acc-item.open .sc-h{color:var(--red)}.p-student-council .sc-acc .acc-body{padding:0 30px 28px;border-top:1px solid #f0f0f0;margin-top:4px}.p-student-council .sc-acc .acc-item.open .acc-body{padding-top:26px}.p-student-council .sc-note{font-size:13px;color:#888;line-height:1.7}.p-student-council .sc-people{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.p-student-council .sc-card{border:1px solid #F8D0D0;border-radius:14px;padding:16px 16px 20px;background:#fff;
  transition:transform .25s,box-shadow .25s}.p-student-council .sc-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,20,40,.35)}.p-student-council .sc-ph{border:1px solid #F8D0D0;border-radius:12px;aspect-ratio:1/1;overflow:hidden;
  background:#f6f6f7;margin-bottom:16px;display:flex;align-items:flex-end;justify-content:center}.p-student-council .sc-ph img{width:100%;height:100%;object-fit:cover;object-position:top center}.p-student-council .sc-card h4{font-size:15.5px;font-weight:600;color:#1c1c1c;margin-bottom:5px}.p-student-council .sc-role{font-size:12.5px;font-style:italic;color:#8a8a8a;margin-bottom:12px;
  padding-bottom:12px;border-bottom:1px solid #F8D0D0}.p-student-council .sc-email{font-size:11.5px;color:#666;line-height:1.5;word-break:break-word}.p-student-council .sc-email b{color:#333;font-weight:600}@media(max-width:992px){.p-student-council .sc-acc{width:calc(100% - 40px)}.p-student-council .sc-people{grid-template-columns:repeat(2,1fr)}
}@media(max-width:560px){.p-student-council .sc-acc .acc-row{padding:18px 20px}.p-student-council .sc-acc .acc-body{padding:0 20px 22px}.p-student-council .sc-people{grid-template-columns:1fr}
}

/* ===================== student-resources.html ===================== */
/* ---- student-resources page-only styles (prefix .sr-) ---- */
.p-student-resources .sr-intro{max-width:1160px}.p-student-resources .sr-rows{max-width:1430px;margin:0 auto;padding-top:14px}
/* one alternating media / copy row */
.p-student-resources .sr-row{display:grid;grid-template-columns:49.3% 39.2%;justify-content:space-between;
  align-items:center;margin-bottom:clamp(40px,5vw,72px)}.p-student-resources .sr-row:last-child{margin-bottom:0}.p-student-resources .sr-row.sr-rev{grid-template-columns:39.2% 49.3%}.p-student-resources .sr-row.sr-rev .sr-media{order:2}.p-student-resources .sr-row.sr-rev .sr-copy{order:1}
/* media block — 16:9 with the frame's asymmetric corner treatment */
.p-student-resources .sr-media{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;
  border-radius:12px 12px 12px 64px;
  box-shadow:0 26px 56px -34px rgba(20,30,60,.45)}.p-student-resources .sr-media img{width:100%;height:100%;object-fit:cover}
/* DigiLocker tile sits on its own purple panel, matching the frame */
.p-student-resources .sr-media.sr-digilocker{background:linear-gradient(160deg,#5B35ED 0%,#5130E3 100%);
  display:flex;align-items:center;justify-content:center}.p-student-resources .sr-media.sr-digilocker img{width:51.4%;height:auto;object-fit:contain}.p-student-resources .sr-copy h2{font-size:clamp(24px,2.3vw,36px);line-height:1.3;margin-bottom:20px;
  font-family:var(--serif);font-weight:700;color:var(--ink)}.p-student-resources .sr-copy p{font-size:13.5px;line-height:1.9;color:#575757;max-width:560px}.p-student-resources .sr-copy .btn-red{margin-top:26px}@media (max-width:900px){.p-student-resources .sr-row, .p-student-resources .sr-row.sr-rev{grid-template-columns:1fr;gap:24px;margin-bottom:46px}.p-student-resources .sr-row.sr-rev .sr-media{order:0}.p-student-resources .sr-row.sr-rev .sr-copy{order:0}.p-student-resources .sr-media{border-radius:12px 12px 12px 40px}.p-student-resources .sr-copy p{max-width:none}.p-student-resources .sr-copy .btn-red{margin-top:20px}
}

/* ===================== testimonials.html ===================== */
/* ---- testimonials page (tst-) ---- */
.p-testimonials .tst-tabs{display:flex;gap:12px;justify-content:center;margin:8px auto 52px}.p-testimonials .tst-tab{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #ecd9da;
  color:#555;font-size:15px;font-weight:500;letter-spacing:.2px;padding:16px 40px;border-radius:8px;
  text-decoration:none;transition:.22s;white-space:nowrap}.p-testimonials .tst-tab:hover{border-color:var(--red);color:var(--red)}.p-testimonials .tst-tab.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}.p-testimonials .tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:46px 22px}.p-testimonials .tst-card{display:block;background:none;border:0;padding:0;width:100%;text-align:left;cursor:pointer;
  font-family:inherit;color:inherit}.p-testimonials .tst-thumb{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:560/340;background:#e9dcdd}.p-testimonials .tst-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.p-testimonials .tst-card:hover .tst-thumb img{transform:scale(1.05)}.p-testimonials .tst-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;
  background:rgba(255,255,255,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  display:flex;align-items:center;justify-content:center;transition:background .25s ease,transform .25s ease}.p-testimonials .tst-card:hover .tst-play{background:rgba(255,255,255,.8);transform:translate(-50%,-50%) scale(1.06)}.p-testimonials .tst-play svg{width:26px;height:29px;margin-left:4px;display:block}.p-testimonials .tst-meta{padding-top:18px}.p-testimonials .tst-school{color:var(--red);font-size:13.5px;font-weight:600;line-height:1.4}.p-testimonials .tst-name{font-size:20px;font-weight:500;color:var(--ink);margin-top:6px;line-height:1.3}.p-testimonials .tst-more{display:flex;justify-content:center;margin-top:62px}.p-testimonials .tst-more .btn-red{padding:17px 36px;font-size:15px;font-weight:600;letter-spacing:.2px;text-transform:none}.p-testimonials .tst-br{display:inline}.p-testimonials .tst-note{text-align:center;font-size:13px;color:var(--muted);margin-top:16px;display:none}.p-testimonials .tst-note.show{display:block}.p-testimonials .tst-card.is-hidden{display:none}
/* ---- video modal ---- */
.p-testimonials .tst-modal{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;padding:24px}.p-testimonials .tst-modal.open{display:flex}.p-testimonials .tst-modal-bd{position:absolute;inset:0;background:rgba(15,10,12,.72)}.p-testimonials .tst-modal-box{position:relative;width:min(900px,100%);background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}.p-testimonials .tst-modal-close{position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;border:0;border-radius:50%;
  background:rgba(255,255,255,.9);color:var(--ink);font-size:18px;line-height:1;cursor:pointer;display:flex;
  align-items:center;justify-content:center;transition:.2s}.p-testimonials .tst-modal-close:hover{background:var(--red);color:#fff}.p-testimonials .tst-stage{position:relative;aspect-ratio:16/9;background:#1D1D1F;overflow:hidden}.p-testimonials .tst-stage img{width:100%;height:100%;object-fit:cover;opacity:.34}.p-testimonials .tst-stage-msg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;color:#fff;text-align:center;padding:20px}.p-testimonials .tst-stage-msg i{font-size:36px;color:#fff}.p-testimonials .tst-stage-msg b{font-size:15px;font-weight:600;letter-spacing:.3px}.p-testimonials .tst-stage-msg span{font-size:12.5px;opacity:.8}.p-testimonials .tst-modal-meta{padding:20px 26px 24px}.p-testimonials .tst-modal-meta .tst-school{font-size:13px}.p-testimonials .tst-modal-meta .tst-name{font-size:22px}@media(max-width:992px){.p-testimonials .tst-grid{grid-template-columns:repeat(2,1fr);gap:38px 20px}}@media(max-width:820px){.p-testimonials .tst-br{display:none}}@media(max-width:600px){.p-testimonials .tst-grid{grid-template-columns:1fr;gap:32px}.p-testimonials .tst-tabs{flex-wrap:wrap}.p-testimonials .tst-tab{padding:14px 26px;font-size:14px}.p-testimonials .tst-play{width:62px;height:62px}.p-testimonials .tst-play svg{width:21px;height:23px}.p-testimonials .tst-name{font-size:18px}}

/* ===================== visiting-faculty.html ===================== */
/* ===== Visiting Faculty (page id: .vf-) ===== */
.p-visiting-faculty .vf-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 auto 46px;justify-content:center}.p-visiting-faculty .vf-search{flex:1 1 320px;min-width:260px;position:relative}.p-visiting-faculty .vf-search i{position:absolute;left:20px;top:50%;transform:translateY(-50%);color:#b9a5a6;font-size:15px}
/* Frame 21: the search box and the filter buttons beside it are RECTANGLES (8px radius),
   not pills — the search field has to match the chip row it sits in. */
.p-visiting-faculty .vf-search input{width:100%;border:1px solid #ecd9da;border-radius:8px;padding:14px 20px 14px 46px;
  font-family:var(--sans);font-size:13.5px;color:#444;background:#fff;transition:border-color .22s}
/* any nav/filter button rendered inside the controls row keeps the same square corners
   (the shared .chip rule owns the chips themselves) */
.p-visiting-faculty .vf-controls button:not(.chip){border-radius:8px}.p-visiting-faculty .vf-search input:focus{outline:none;border-color:var(--red)}.p-visiting-faculty .vf-search input::placeholder{color:#9a9a9a}.p-visiting-faculty .vf-controls .chipbar{margin:0;flex:2 1 auto;justify-content:flex-start}.p-visiting-faculty .vf-group-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px}.p-visiting-faculty .vf-group-head h2{font-size:clamp(24px,2.4vw,38px);font-weight:700;line-height:1.2}.p-visiting-faculty .vf-group-head h2 .text-red{color:var(--red)}.p-visiting-faculty .vf-count{background:var(--pink);color:var(--red);font-size:12px;font-weight:600;letter-spacing:1px;
  text-transform:uppercase;padding:8px 20px;border-radius:30px;white-space:nowrap}.p-visiting-faculty .vf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.p-visiting-faculty .vf-card{display:grid;grid-template-columns:150px 1fr;gap:24px;background:#fff;border:1px solid #f0e2e3;
  border-radius:16px;padding:24px;align-items:start;transition:transform .3s ease,box-shadow .3s ease}.p-visiting-faculty .vf-card:hover{transform:translateY(-5px);box-shadow:0 26px 48px -26px rgba(20,20,40,.35);border-color:#ecd0d2}.p-visiting-faculty .vf-ph{aspect-ratio:1/1;border-radius:12px;background:linear-gradient(160deg,#f1e5e2,#e9dcd9);
  display:flex;align-items:center;justify-content:center;color:#cdb6b7;font-size:44px;overflow:hidden}.p-visiting-faculty .vf-ph img{width:100%;height:100%;object-fit:cover}.p-visiting-faculty .vf-ph i{display:none}.p-visiting-faculty .vf-role{color:var(--red);font-size:12px;font-weight:600;letter-spacing:.4px;margin-bottom:6px}.p-visiting-faculty .vf-card h4{font-size:18px;font-weight:600;margin-bottom:14px;color:var(--ink)}.p-visiting-faculty .vf-line{font-size:12.5px;color:#5a5a5a;line-height:1.6;margin-bottom:9px}.p-visiting-faculty .vf-line:last-child{margin-bottom:0}.p-visiting-faculty .vf-line b{color:var(--ink);font-weight:600}@media(max-width:1100px){.p-visiting-faculty .vf-grid{grid-template-columns:1fr}}@media(max-width:560px){.p-visiting-faculty .vf-card{grid-template-columns:1fr;gap:16px}.p-visiting-faculty .vf-ph{max-width:130px}.p-visiting-faculty .vf-controls .chipbar{justify-content:center}
}

/* Global override for bootstrap tick icon to use check.svg */
.bi-check::before, .bi-check-lg::before {
  content: "" !important;
  display: inline-block;
  width: 1em;
  height: 1em;
  background: url('../img/check.svg') center/contain no-repeat !important;
  vertical-align: middle;
}
.p-alumni .al-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    align-items: stretch;
}
