/* ===================== HERO ===================== */
.hero { position: relative; min-height: 88vh; display: flex; flex-direction: column; justify-content: center; color: #fff; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.05); }
.hero__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(105deg, rgba(10,21,48,.94) 0%, rgba(14,27,61,.88) 42%, rgba(22,48,107,.62) 72%, rgba(22,48,107,.25) 100%);
}
.hero__honeycomb {
  position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background-image:
    radial-gradient(circle at 50% 0, transparent 18px, rgba(245,166,35,.07) 19px, transparent 20px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cg fill='none' stroke='%23f5a623' stroke-opacity='.18' stroke-width='1.4'%3E%3Cpath d='M28 0 0 16v32l28 16 28-16V16z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 56px 100px;
  mask-image: linear-gradient(90deg, #000 0%, transparent 75%);
}
.hero__inner { position: relative; z-index: 2; padding: 70px 22px 30px; }
.hero__content { max-width: 660px; }
.hero__title {
  font-family: var(--ff-head); font-weight: 700; text-transform: uppercase;
  font-size: clamp(2.5rem, 6.4vw, 5rem); line-height: .98; letter-spacing: .01em;
  margin-bottom: 8px; text-shadow: 0 6px 30px rgba(0,0,0,.4);
}
.hero__script { font-family: var(--ff-script); font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--accent); margin-bottom: 16px; }
.hero__lead { font-size: 1.08rem; color: #d7deef; max-width: 540px; margin-bottom: 28px; }
.hero__cta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 36px; }
.hero__chips { display: flex; gap: 14px; flex-wrap: wrap; }
.hchip {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(4px); border-radius: 12px; padding: 10px 16px;
  font-size: .8rem; color: #d7deef; line-height: 1.1;
}
.hchip b { font-family: var(--ff-head); font-size: 1.5rem; color: var(--accent); }

.hero__badges { position: relative; z-index: 2; background: linear-gradient(90deg, var(--cta), var(--accent)); }
.hero__badges-inner { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 30px; padding: 14px 22px; }
.fbadge { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-family: var(--ff-head); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; font-size: .86rem; }
.fbadge svg { width: 18px; height: 18px; fill: #fff; }
.hero.hero--banner { min-height: 0; display: block; background: #eaf5fb; line-height: 0; }
.hero__banner-image { display: block; width: 100%; height: auto; aspect-ratio: 1918 / 821; object-fit: cover; object-position: center; }


/* ===================== AFFILIATION ===================== */
.affil { background: #fff; padding: 38px 0; border-bottom: 3px solid var(--cream-2); }
.affil__label { text-align: center; font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .2em; color: var(--muted); font-size: .8rem; margin-bottom: 22px; }
.affil__crests { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.crest {
  --crest-a: #1d4e9e; --crest-b: #16306b;
  position: relative; display: flex; align-items: center; gap: 14px; min-height: 112px;
  padding: 20px 18px; border-radius: 16px; overflow: hidden; color: #fff;
  background: linear-gradient(135deg, var(--crest-a), var(--crest-b));
  box-shadow: 0 10px 24px color-mix(in srgb, var(--crest-a) 22%, transparent);
}
.crest:nth-child(2) { --crest-a: #16b8a6; --crest-b: #0e7c66; }
.crest:nth-child(3) { --crest-a: #f5a623; --crest-b: #ff6b1a; }
.crest:nth-child(4) { --crest-a: #8e44ad; --crest-b: #d9468f; }
.crest::after {
  content: ""; position: absolute; width: 110px; height: 110px; right: -38px; top: -48px;
  border-radius: 50%; background: rgba(255,255,255,.13); transition: transform .35s;
}
.crest > * { position: relative; z-index: 1; }
.crest__hex {
  width: 56px; height: 62px; flex-shrink: 0; display: grid; place-items: center;
  background: rgba(255,255,255,.16); color: #fff;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.crest__hex svg { width: 26px; height: 26px; fill: #fff; }
.crest__logo {
  width: 66px; height: 66px; flex: 0 0 66px; display: grid; place-items: center;
  padding: 5px; border-radius: 50%; overflow: hidden;
  background: #fff; box-shadow: 0 5px 14px rgba(7,20,48,.2);
}
.crest__logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.crest span.crest__monogram { color: var(--base); }
.crest b { display: block; font-family: var(--ff-head); color: #fff; font-size: 1rem; text-transform: uppercase; }
.crest span { font-size: .78rem; color: rgba(255,255,255,.82); line-height: 1.4; }


/* ===================== ABOUT ===================== */
.about__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
.about__media { position: relative; padding-bottom: 30px; padding-right: 30px; }
.about__frame { position: relative; z-index: 2; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-lg); clip-path: polygon(0 0, 100% 0, 100% 90%, 50% 100%, 0 90%); }
.about__frame img { width: 100%; height: 440px; object-fit: cover; object-position: center; }
.about__offset { position: absolute; top: 22px; left: 22px; width: 100%; height: 100%; background: linear-gradient(140deg, var(--accent), var(--cta)); border-radius: var(--radius); z-index: 1; opacity: .9; clip-path: polygon(0 0, 100% 0, 100% 90%, 50% 100%, 0 90%); }
.about__seal {
  position: absolute; right: -4px; bottom: 6px; z-index: 3;
  width: 122px; height: 138px; display: grid; grid-template-columns: 1fr; place-items: center; text-align: center;
  background: var(--base); color: #fff; border: 3px solid var(--accent);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  padding: 18px 6px;
}
.about__seal-num { font-family: var(--ff-head); font-weight: 700; font-size: 1.9rem; color: var(--accent); }
.about__seal-txt { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; line-height: 1.2; }
.about__bracket { position: absolute; width: 34px; height: 34px; z-index: 3; }
.about__bracket--tl { top: -6px; left: -6px; border-top: 4px solid var(--accent-2); border-left: 4px solid var(--accent-2); border-top-left-radius: 8px; }
.about__bracket--br { bottom: 18px; right: 28px; border-bottom: 4px solid var(--accent-2); border-right: 4px solid var(--accent-2); border-bottom-right-radius: 8px; }
.about__body .h2 { margin: 0 0 16px; }
.about__body p { color: var(--muted); margin-bottom: 14px; }
.about__chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 26px; }
.chip { background: #fff; border: 1.5px solid var(--line); border-radius: 50px; padding: 8px 16px; font-size: .85rem; color: var(--ink); }
.chip b { color: var(--cta); font-family: var(--ff-head); }


/* ===================== VISION / MISSION ===================== */
.vm__hexbg {
  position: absolute; inset: 0; opacity: .08; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'%3E%3Cpath d='M42 0 0 24v48l42 24 42-24V24z' fill='none' stroke='%23f5a623' stroke-width='1.5'/%3E%3C/svg%3E");
}
.vm .container { position: relative; z-index: 2; }
.vm__trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-bottom: 50px; }
.vm__card {
  background: linear-gradient(160deg, var(--base-2), var(--base));
  border: 1px solid rgba(245,166,35,.25);
  border-radius: var(--radius); padding: 38px 28px 30px; position: relative; overflow: hidden;
  transition: transform .25s, box-shadow .25s;
}
.vm__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.vm__num { position: absolute; top: 14px; right: 20px; font-family: var(--ff-head); font-weight: 700; font-size: 3.4rem; color: rgba(245,166,35,.14); }
.vm__icon { display: inline-grid; place-items: center; width: 58px; height: 58px; background: rgba(245,166,35,.15); color: var(--accent); border-radius: 14px; margin-bottom: 16px; }
.vm__icon svg { width: 30px; height: 30px; }
.vm__card h3 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; font-size: 1.25rem; color: #fff; margin-bottom: 10px; letter-spacing: .03em; }
.vm__card p { color: #b9c5e0; font-size: .95rem; }

.vm__values { text-align: center; }
.vm__values-title { font-family: var(--ff-script); font-size: 1.6rem; color: var(--accent); margin-bottom: 22px; }
.hex-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 14px; max-width: 620px; margin: 0 auto; }
.hex {
  width: 130px; height: 148px; display: grid; place-items: center; text-align: center;
  background: linear-gradient(160deg, var(--accent), var(--cta));
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  transition: transform .25s;
}
.hex span { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; color: #fff; font-size: .84rem; padding: 0 12px; letter-spacing: .03em; }
.hex:hover { transform: scale(1.07); }


/* ===================== WHY ===================== */
.why__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 54px; align-items: center; }
.why__media { position: relative; }
.why__media img { width: 100%; height: 500px; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.why__media::before { content: ""; position: absolute; inset: 0; border-radius: var(--radius); transform: translate(16px, 16px); border: 3px solid var(--accent-2); z-index: -1; }
.why__float {
  position: absolute; left: -18px; bottom: -18px;
  background: var(--base); color: #fff; border-radius: 16px; padding: 18px 24px;
  box-shadow: var(--shadow-lg); display: flex; align-items: center; gap: 12px;
  border-left: 5px solid var(--accent);
}
.why__float b { font-family: var(--ff-head); font-size: 2.4rem; color: var(--accent); line-height: 1; }
.why__float span { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; line-height: 1.2; }
.why__body .h2 { margin-bottom: 28px; }
.why__features { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.wfeat {
  display: flex; align-items: flex-start; gap: 14px; min-height: 158px;
  padding: 18px; border: 1px solid rgba(14,27,61,.08); border-radius: 14px;
  background: rgba(255,255,255,.68); box-shadow: 0 6px 18px rgba(14,27,61,.05);
}
.wfeat > div { min-width: 0; }
.wfeat__icon { flex-shrink: 0; width: 50px; height: 50px; display: grid; place-items: center; background: var(--cream-2); color: var(--cta); border-radius: 12px; }
.wfeat__icon svg { width: 26px; height: 26px; }
.wfeat h4 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; font-size: 1rem; color: var(--base); margin-bottom: 4px; }
.wfeat p { font-size: .88rem; line-height: 1.55; color: var(--muted); text-align: justify;
 -webkit-hyphens: auto;
 hyphens: auto; }

/* Readable content paragraphs across the homepage. Compact labels, titles,
   badges and form feedback retain their purpose-built smaller sizing. */
body:not(.inner-page) section p:not(.affil__label):not(.vm__values-title):not(.recruiters__title):not(.form-note) {
  font-size: clamp(1rem, calc(.96rem + .3vw), 1.1rem);
  line-height: 1.7;
}

body:not(.inner-page) .about__body > p {
  font-size: clamp(1.05rem, calc(.98rem + .4vw), 1.15rem);
  line-height: 1.76;
}


/* ===================== FACILITIES ===================== */
.facilities { background: var(--cream); }
.facility-carousel { position: relative; }
.facility-carousel__viewport { overflow: hidden; padding: 12px 4px 24px; }
.facility-carousel__track {
  display: flex; gap: 18px; transition: transform .65s cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}
.facility-card {
  position: relative; flex: 0 0 calc((100% - 36px) / 3); height: 320px; overflow: hidden;
  border-radius: 18px; background-size: cover; background-position: center; color: #fff;
  box-shadow: var(--shadow); border: 2px solid transparent;
  transition: transform .35s, box-shadow .35s, border-color .35s, filter .35s;
}
.facility-card::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 155px;
  background: linear-gradient(to top, rgba(5,10,25,.92), rgba(5,10,25,.48) 62%, transparent);
  transition: height .35s, background .35s;
}
.facility-card__number {
  position: absolute; z-index: 2; right: 18px; top: 16px; width: 48px; height: 48px;
  display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.9);
  color: var(--base); font-family: var(--ff-head); font-weight: 700; box-shadow: var(--shadow-sm);
}
.facility-card__type {
  position: absolute; z-index: 2; left: 20px; bottom: 64px; font-family: var(--ff-head);
  text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; color: var(--accent);
}
.facility-card__label {
  position: absolute; z-index: 2; left: 20px; right: 20px; bottom: 20px;
  font-family: var(--ff-head); font-weight: 600; text-transform: uppercase;
  font-size: 1.05rem; line-height: 1.2; letter-spacing: .025em;
}
.facility-card:hover {
  transform: translateY(-8px); filter: saturate(1.1); border-color: var(--accent);
  box-shadow: 0 20px 42px rgba(22,184,166,.2), 0 0 0 2px rgba(255,107,26,.34);
}
.facility-card:hover::after { height: 180px; background: linear-gradient(to top, rgba(5,10,25,.96), rgba(22,48,107,.58) 65%, transparent); }
.facility-carousel__controls { display: flex; align-items: center; justify-content: center; gap: 18px; }
.facility-carousel__arrow {
  width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%;
  background: var(--base); color: #fff; font-size: 1.25rem; box-shadow: var(--shadow-sm);
  transition: transform .25s, background .25s, color .25s;
}
.facility-carousel__arrow:hover { transform: scale(1.1); background: var(--cta); color: #fff; }
.facility-carousel__dots { display: flex; align-items: center; justify-content: center; gap: 7px; min-width: 138px; }
.facility-carousel__dot { width: 8px; height: 8px; padding: 0; border-radius: 50%; background: #c6bda9; transition: width .3s, background .3s; }
.facility-carousel__dot.active { width: 28px; border-radius: 20px; background: var(--color-sweep); }


/* ===================== STATS ===================== */
.stats { position: relative; color: #fff; padding: 48px 0; overflow: hidden; }
.stats__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.stats__overlay { position: absolute; inset: 0; background: linear-gradient(110deg, rgba(10,21,48,.95), rgba(22,48,107,.9)); }
.stats .container { position: relative; z-index: 2; }
.stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.stat { text-align: center; padding: 18px; position: relative; }
.stat:not(:last-child)::after { content: ""; position: absolute; right: -12px; top: 20%; bottom: 20%; width: 2px; background: linear-gradient(var(--accent), transparent); opacity: .5; }
.stat__num { display: block; font-family: var(--ff-head); font-weight: 700; font-size: clamp(2.6rem, 5vw, 3.8rem); color: var(--accent); line-height: 1; }
.stat__label { display: block; margin-top: 8px; font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .08em; font-size: .9rem; color: #e8eefb; }
.stat__label em { font-style: normal; color: #aebbd6; text-transform: none; letter-spacing: 0; font-size: .82rem; display: block; }


/* ===================== COURSES ===================== */
.course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 40px; }
.course {
  position: relative; background: #fff; border-radius: var(--radius); padding: 32px 26px 26px;
  box-shadow: var(--shadow-sm); border: 2px solid transparent;
  display: flex; flex-direction: column; align-items: flex-start;
  transition: transform .3s, box-shadow .3s, border-color .3s, background .3s; overflow: hidden;
}
.course::before {
  content: ""; position: absolute; right: -30px; top: -30px; width: 100px; height: 100px;
  background: var(--color-sweep); background-size: 240% 100%; opacity: .06; border-radius: 50%;
  transition: transform .45s, opacity .3s;
}
.course:hover {
  transform: translateY(-9px); border-color: var(--c);
  background: linear-gradient(145deg, #fff 62%, color-mix(in srgb, var(--c) 9%, #fff));
  box-shadow: 0 20px 42px rgba(29,78,158,.14), 0 10px 28px rgba(22,184,166,.13), 0 0 0 1px var(--c);
}
.course:hover::before { transform: scale(1.35) rotate(25deg); opacity: .14; animation: colorFlow 2s linear infinite; }
.course__hex {
  display: grid; place-items: center; width: 68px; height: 76px; margin-bottom: 18px; flex: 0 0 76px;
  background: var(--c); color: #fff;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.course__hex svg { display: block; width: 28px; height: 28px; fill: #fff; transform-origin: center; }
.course h3 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; font-size: 1.2rem; color: var(--base); margin-bottom: 8px; }
.course p { font-size: .9rem; color: var(--muted); margin-bottom: 16px; min-height: 50px; }
.course__tag { display: inline-block; background: var(--cream-2); color: var(--base); font-family: var(--ff-head); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; font-size: .76rem; padding: 5px 13px; border-radius: 50px; border: 1px solid var(--line); }
.course .course__tag { margin-top: auto; transition: background .3s, color .3s, border-color .3s, transform .3s; }
.course:hover .course__hex {
  background: var(--color-sweep); background-size: 250% 100%;
  animation: colorFlow 2s linear infinite; transform: translateY(-5px) rotate(5deg) scale(1.06);
  filter: drop-shadow(0 10px 12px color-mix(in srgb, var(--c) 34%, transparent));
}
.course:hover h3 { color: var(--c); }
.course:hover .course__tag { background: var(--c); border-color: var(--c); color: #fff; transform: translateX(4px); }

.lateral { display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap; background: linear-gradient(110deg, var(--base), var(--base-2)); border-radius: var(--radius); padding: 30px 38px; position: relative; overflow: hidden; }
.lateral::before { content: ""; position: absolute; right: -40px; top: -40px; width: 200px; height: 200px; border: 2px solid rgba(245,166,35,.2); clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.lateral__badge { display: inline-block; background: var(--accent); color: var(--base); font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; font-size: .74rem; padding: 4px 14px; border-radius: 50px; margin-bottom: 10px; }
.lateral h3 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; color: #fff; font-size: 1.4rem; margin-bottom: 6px; }
.lateral p { color: #c4cee6; max-width: 540px; }


/* ===================== LEADERSHIP ===================== */
.leaders { position: relative; overflow: hidden; isolation: isolate; }
.leaders::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 50% 45%, transparent 0, rgba(10,21,48,.18) 48%, rgba(10,21,48,.56) 100%);
}
.leaders > .container { position: relative; z-index: 2; }
.leaders__svg-bg { position: absolute; inset: -8%; z-index: 0; pointer-events: none; opacity: .9; }
.leaders__svg-bg svg { width: 116%; height: 116%; animation: leadershipDrift 18s ease-in-out infinite alternate; }
.leaders__circuit { stroke: #16b8a6; stroke-width: 2; stroke-dasharray: 9 14; opacity: .32; animation: circuitFlow 8s linear infinite; }
.leaders__nodes { fill: #f5a623; opacity: .72; }
.leaders__nodes circle { animation: nodePulse 2.8s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.leaders__nodes circle:nth-child(even) { animation-delay: -1.4s; }
.leaders__split { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.leader { background: rgba(255,255,255,.05); border: 1px solid rgba(245,166,35,.2); border-radius: var(--radius); padding: 34px; display: flex; gap: 22px; transition: transform .25s, border-color .25s; }
.leader:hover { transform: translateY(-5px); border-color: var(--accent); }
.leader__mono {
  flex-shrink: 0; width: 84px; height: 94px; display: grid; place-items: center;
  font-family: var(--ff-head); font-weight: 700; font-size: 2rem; color: #fff;
  background: linear-gradient(160deg, var(--accent), var(--cta));
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.leader__photo { flex-shrink: 0; width: 110px; height: 124px; }
.leader__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; border-radius: 12px; border: 3px solid var(--accent); }
.leader__photo--chairman img { object-position: center center; }
.leader__role { font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .12em; color: var(--accent); font-size: .76rem; }
.leader h3 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; color: #fff; font-size: 1.35rem; margin: 4px 0 10px; }
.leader__quote { color: #c4cee6; font-size: .92rem; font-style: italic; margin-bottom: 12px; }
.leader__sig { font-family: var(--ff-script); color: var(--accent); font-size: 1.3rem; }
.leader__meta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; }
.leader__meta span { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; color: #b9c5e0; }
.leader__meta svg { width: 15px; height: 15px; fill: var(--accent); }

@keyframes leadershipDrift { to { transform: translate3d(-2.5%, 1.5%, 0) scale(1.025); } }
@keyframes circuitFlow { to { stroke-dashoffset: -92; } }
@keyframes nodePulse { 0%, 100% { transform: scale(.75); opacity: .45; } 50% { transform: scale(1.35); opacity: 1; } }


/* ===================== STUDENT LIFE ===================== */
.life { background: var(--cream); }
.life__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-bottom: 50px; }
.life__card {
  position: relative; height: 290px; border-radius: var(--radius); overflow: hidden;
  background-image: var(--img); background-size: cover; background-position: center;
  box-shadow: var(--shadow-sm); color: #fff; padding: 22px; display: flex; flex-direction: column; justify-content: flex-end;
  transition: transform .25s;
}
.life__card::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 172px;
  background: linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,.48) 58%, transparent);
  z-index: 1; transition: background .25s;
}
.life__card:hover { transform: translateY(-6px); }
.life__card:hover::after { background: linear-gradient(to top, rgba(0,0,0,.88), rgba(0,0,0,.54) 58%, transparent); }
.life__card > * { position: relative; z-index: 2; }
.life__tag { align-self: flex-start; background: var(--accent); color: var(--base); font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; padding: 4px 12px; border-radius: 50px; margin-bottom: auto; }
.life__card h3 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; font-size: 1.1rem; margin-bottom: 4px; }
.life__card p { font-size: .84rem; color: #d7deef; }

.recruiters { text-align: center; background: #fff; border-radius: var(--radius); padding: 32px 26px; box-shadow: var(--shadow-sm); border: 1px solid var(--line); }
.recruiters__title { font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); font-size: .9rem; margin-bottom: 18px; }
.recruiters__row { display: grid; grid-template-columns: repeat(7, minmax(100px, 1fr)); gap: 14px; align-items: center; }
.recruiter-logo {
  min-width: 0; height: 76px; padding: 14px 12px; display: grid; place-items: center;
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 4px 12px rgba(14,27,61,.06);
  transition: transform .3s, border-color .3s, box-shadow .3s, background .3s;
}
.recruiter-logo img { width: 100%; height: 100%; max-width: 128px; max-height: 48px; object-fit: contain; }
.recruiter-logo:hover {
  transform: translateY(-6px) scale(1.035); border-color: var(--accent-2);
  background: linear-gradient(145deg, #fff, #f4fffd);
  box-shadow: 0 14px 28px rgba(22,184,166,.16), 0 0 0 2px rgba(245,166,35,.32);
}


/* ===================== GALLERY ===================== */
.gallery .container { max-width: 100%; padding-inline: 0; }
.gallery .section-head { padding-inline: 22px; }
.gallery__carousel {
  display: grid; gap: 16px; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.gallery__row { overflow: hidden; padding: 4px 0 8px; }
.gallery__track {
  display: flex; width: max-content; gap: 14px; padding-left: 14px;
  animation: galleryMarquee 34s linear infinite;
  will-change: transform;
}
.gallery__row--bottom .gallery__track { animation-direction: reverse; animation-duration: 38s; }
.gallery__row:hover .gallery__track, .gallery__row:focus-within .gallery__track { animation-play-state: paused; }
.gtile {
  position: relative; border: none; border-radius: var(--radius-sm); overflow: hidden; cursor: pointer;
  background-image: var(--img); background-size: cover; background-position: center;
  box-shadow: var(--shadow-sm); color: #fff; flex: 0 0 330px; width: 330px; height: 190px;
}
.gtile::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 64px;
  background: linear-gradient(to top, rgba(0,0,0,.58), rgba(0,0,0,.18) 45%, transparent);
  transition: background .25s;
}
.gtile:hover::after { background: linear-gradient(to top, rgba(0,0,0,.68), rgba(0,0,0,.2) 45%, transparent); }
.gtile span { position: absolute; left: 12px; bottom: 10px; z-index: 2; font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .05em; font-size: .78rem; }
.gallery__row--bottom .gtile { width: 370px; flex-basis: 370px; height: 205px; }
.gtile[data-clone="true"] { pointer-events: none; }

@keyframes galleryMarquee { to { transform: translateX(-50%); } }

.lightbox { position: fixed; inset: 0; background: rgba(8,15,33,.94); z-index: 2000; display: none; place-items: center; padding: 30px; }
.lightbox.open { display: grid; }
.lightbox img { max-width: 90vw; max-height: 86vh; border-radius: 12px; box-shadow: var(--shadow-lg); border: 4px solid var(--accent); }
.lightbox__close { position: absolute; top: 20px; right: 30px; color: #fff; font-size: 2.6rem; line-height: 1; }
.lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); color: #fff; font-size: 3.2rem; line-height: 1; padding: 10px 18px; }
.lightbox__nav--prev { left: 12px; }
.lightbox__nav--next { right: 12px; }
.lightbox__close:hover, .lightbox__nav:hover { color: var(--accent); }


/* ===================== ADMISSIONS ===================== */
.admissions { background: linear-gradient(120deg, var(--base) 0%, var(--base-2) 55%, #1a3a78 100%); color: #fff; padding: 76px 0; position: relative; overflow: hidden; }
.admissions::before { content: ""; position: absolute; inset: 0; opacity: .06; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'%3E%3Cpath d='M42 0 0 24v48l42 24 42-24V24z' fill='none' stroke='%23f5a623' stroke-width='2'/%3E%3C/svg%3E"); }
.admissions__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: center; }
.admissions p { color: #c4cee6; margin-top: 14px; }
.admissions__steps { margin-top: 26px; display: grid; gap: 12px; }
.astep { display: flex; align-items: center; gap: 14px; background: rgba(255,255,255,.05); border: 1px solid rgba(245,166,35,.2); border-radius: 12px; padding: 14px 18px; }
.astep b { font-family: var(--ff-head); font-size: 1.4rem; color: var(--accent); flex-shrink: 0; }
.astep span { font-size: .94rem; color: #e3e9f6; }
.admissions__form { background: #fff; color: var(--ink); border-radius: var(--radius); padding: 30px; box-shadow: var(--shadow-lg); }
.admissions__form h3 { font-family: var(--ff-head); font-weight: 600; text-transform: uppercase; color: var(--base); font-size: 1.3rem; margin-bottom: 18px; text-align: center; }
.field { margin-bottom: 12px; }
.field input, .field select, .field textarea {
  width: 100%; padding: 13px 16px; border: 1.5px solid var(--line); border-radius: 10px;
  font-family: var(--ff-body); font-size: .95rem; color: var(--ink); background: var(--cream);
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--cta); background: #fff; }
.form-note { margin-top: 12px; text-align: center; color: #0e7c66; font-weight: 600; font-size: .9rem; }


/* ===================== CONTACT ===================== */
.contact { background: #fff; }
.contact__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 36px; }
.contact__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-content: start; }
.cinfo { display: flex; gap: 14px; background: var(--cream); border-radius: var(--radius-sm); padding: 20px; border: 1px solid var(--line); transition: transform .2s, box-shadow .2s; }
.cinfo:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); }
.cinfo--social { grid-column: span 2; }
.cinfo__icon { flex-shrink: 0; width: 48px; height: 48px; display: grid; place-items: center; background: var(--base); color: var(--accent); border-radius: 12px; }
.cinfo__icon svg { width: 24px; height: 24px; fill: var(--accent); }
.cinfo b { display: block; font-family: var(--ff-head); text-transform: uppercase; color: var(--base); font-size: .92rem; letter-spacing: .04em; }
.cinfo span { font-size: .86rem; color: var(--muted); }
.cinfo__socials { display: flex; flex-direction: column; gap: 4px; }
.cinfo__socials a { font-size: .85rem; color: var(--base-3); }
.cinfo__socials a:hover { color: var(--cta); }
.contact__map { position: relative; min-height: 380px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.contact__map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }
.mapfacade {
  position: absolute; inset: 0; width: 100%; height: 100%;
  background: linear-gradient(140deg, var(--base), var(--base-2));
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #fff;
  background-image:
    linear-gradient(140deg, rgba(10,21,48,.92), rgba(22,48,107,.9)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'%3E%3Cpath d='M42 0 0 24v48l42 24 42-24V24z' fill='none' stroke='%23f5a623' stroke-opacity='.25' stroke-width='1.5'/%3E%3C/svg%3E");
  transition: background .2s;
}
.mapfacade:hover { background-color: var(--base-2); }
.mapfacade__pin { width: 64px; height: 64px; display: grid; place-items: center; background: var(--cta); border-radius: 50%; animation: pulse 2s infinite; }
.mapfacade__pin svg { width: 32px; height: 32px; fill: #fff; }
.mapfacade__text { text-align: center; }
.mapfacade__text b { display: block; font-family: var(--ff-head); text-transform: uppercase; letter-spacing: .08em; font-size: 1rem; }
.mapfacade__text em { font-style: normal; color: #c4cee6; font-size: .85rem; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255,107,26,.5); } 70% { box-shadow: 0 0 0 22px rgba(255,107,26,0); } 100% { box-shadow: 0 0 0 0 rgba(255,107,26,0); } }

/* HOME RESPONSIVE */
@media (max-width: 1080px) {
  .affil__crests { grid-template-columns: repeat(2, 1fr); }
  .about__grid,
  .why__grid,
  .leaders__split,
  .admissions__inner,
  .contact__grid { grid-template-columns: 1fr; gap: 38px; }
  .about__grid,
  .why__grid,
  .leaders__split { max-width: 820px; margin-inline: auto; }
  .vm__trio,
  .course-grid { grid-template-columns: repeat(3, 1fr); }
  .vm__trio .vm__card:last-child { grid-column: span 2; }
  .why__features { grid-template-columns: 1fr; }
  .life__grid { grid-template-columns: repeat(2, 1fr); }
  .facility-card { flex-basis: calc((100% - 18px) / 2); }
  .recruiters__row { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 768px) {
  .about__frame img { height: 380px; }
  .why__media img { height: 340px; }
  .contact__cards { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .affil { padding: 30px 0; }
  .affil__crests,
  .vm__trio,
  .course-grid,
  .life__grid,
  .stats__grid,
  .contact__cards { grid-template-columns: 1fr; }
  .vm__trio .vm__card:last-child { grid-column: auto; }
  .crest { min-height: 108px; }
  .facility-card { flex-basis: 100%; height: 285px; }
  .about__frame img { height: 310px; }
  .why__media img { height: 300px; }
  .leader { flex-direction: column; }
  .life__card { height: 240px; }
  .cinfo--social { grid-column: auto; }
  .recruiters__row { grid-template-columns: repeat(2, 1fr); }
  .gtile,
  .gallery__row--bottom .gtile {
    width: 270px;
    flex-basis: 270px;
    height: 165px;
  }
}

@media (max-width: 420px) {
  .hero__banner-image {
    min-height: 150px;
    object-fit: cover;
    object-position: center;
  }
  .gtile,
  .gallery__row--bottom .gtile {
    width: 245px;
    flex-basis: 245px;
    height: 155px;
  }
}


