color:var(--ink);
      font-family: 'Jost', system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
      background: linear-gradient(270deg, #731214, #344F8F, #800609);
      background-size: 600% 600%;
      animation: gradientMove 35s ease infinite;
    }
    @keyframes gradientMove{ 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }

    /* Header with brand pill */
    .top-header{ padding:14px 0; background:#fff; }
    .brand-pill{
      background:#fff; border-radius:18px; padding:10px 16px;
      display:flex; align-items:center; gap:12px; width:max-content;
    }
    .brand-pill img{ height:60px; }

    /* Banner carousel */
    /* Position caption once for the whole carousel */
.hero-carousel { position: relative; }
#heroCarousel { position: relative; }

.carousel-fixed-caption{
  position: absolute;
  top: 50%;
  left: 5%; /* ← change this */
  transform: translateY(-50%);
  text-align: left; /* ← change this */
  max-width: 40%;
  z-index: 5;
  pointer-events: none;
}

.carousel-fixed-caption h2{
  font-weight: 800;
  font-size: clamp(3.5rem, 4.5vw, 5rem); /* responsive size */
  color: #fff;
  line-height: 1.2;
  text-shadow: 0 2px 8px rgba(0,0,0,.7);
}
@media (max-width: 575.98px) {
  .carousel-fixed-caption h2 {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
  }
}

/* Mobile: center it */
@media (max-width: 767.98px){
  .carousel-fixed-caption{
    right: 50%;
    transform: translate(50%, -50%);
    max-width: 90%;
    text-align: center;
  }
}

.hero-carousel .carousel-item::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 0, 0, 0.35); /* increased from 0.35 */
  z-index: 1;
}

.carousel-caption h2 {
  text-shadow: 0 3px 8px rgba(0, 0, 0, 0.8);
}



    /* ---------- TITLES ---------- */
    .section-title{
      font-weight:800; color:#fff; text-align:center;
      font-size:clamp(1.8rem, 1.2rem + 2vw, 2.4rem); letter-spacing:.2px;
    }
    .title-underline{ width:220px; height:2px; background:#c7b1b4; margin:.5rem auto 0; }
    .subtitle{ text-align:center; color:#fff; font-weight:600; font-size:.95rem; }

    /* ---------- PROGRAM CARDS ---------- */
    .programs{ padding-bottom:52px; }
    .prog-col{ margin-bottom:1.5rem; }
    @media (min-width:1200px){ .prog-col{ flex:0 0 20%; max-width:20%; } }

    .prog-card{
      border:1.5px solid var(--ring); border-radius:10px; background:#fff; overflow:hidden;
      display:flex; flex-direction:column; height:100%;
      transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
    }
    .prog-card:hover{ transform:translateY(-6px); border-color:#c8aeb1; box-shadow:0 14px 30px rgba(0,0,0,.08); }

    .prog-img-wrapper{ position:relative; overflow:hidden; border-top-left-radius:.25rem; border-top-right-radius:.25rem; }
    .prog-img-wrapper::before{ content:""; display:block; padding-top:75%; } /* 4:3 taller */
    .prog-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
    .prog-title-overlay{
      position:absolute; left:16px; bottom:12px; color:#fff; font-weight:800; font-size:1.25rem; line-height:1.2;
      text-shadow:0 2px 6px rgba(0,0,0,.55); transition:bottom .3s ease, opacity .3s ease;
    }
    .prog-card:hover .prog-img{ transform:scale(1.05); }
    .prog-card:hover .prog-title-overlay{ bottom:20px; opacity:.95; }

    .prog-card .card-body{ flex:1; display:flex; flex-direction:column; justify-content:space-between; padding:1rem 1.1rem 1rem; }
    .prog-desc{ color:var(--muted); font-size:.92rem; flex-grow:1; }

    /* ---------- APPLY BUTTONS ---------- */
    .apply-btn{
      display:flex; align-items:center; justify-content:space-between;
      border-radius:8px; padding:6px 12px; text-decoration:none; font-weight:500; color:#fff; transition:all .3s ease;
      margin-top:auto;
    }
    .apply-btn.ug{ background-color:#9E2064; }
    .apply-btn.pg{ background-color:#01A79D; }
    .apply-btn.phd{ background-color:#F89521; }
    .apply-btn.postdoc{ background-color:#65328F; }
    .apply-btn.diploma{ background-color:#801323; }

    .apply-btn:hover{ background:#000; color:#fff; }
    .apply-btn .arrow-icon{
      display:flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%;
      border:1px solid currentColor; margin-left:8px; transition:all .3s ease;
    }
    .apply-btn:hover .arrow-icon{ background:#fff; color:#000; }

    .container-narrow{ max-width:1340px; }


.bgbanner {
  background: linear-gradient(135deg, rgba(115, 16, 20, 0.95) 0%, rgba(15, 28, 60, 0.95) 100%);
}

.bgbanner {
  background: linear-gradient(135deg, rgba(115, 16, 20, 0.95), rgba(15, 28, 60, 0.95), rgba(128, 6, 9, 0.95));
  background-size: 400% 400%;
  animation: bannerGradientMove 20s ease infinite;
}

@keyframes bannerGradientMove {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.top-header {
  padding: 25px 0;
  background: #0f1c33; /* Change if needed */
}

.site-logo img {
  height: 60px;
}

.ranking-logos img {
  height: 120px;
  margin-left: 15px;
}

@media (max-width: 767.98px) {
  .container-fluid {
    flex-direction: column;
    text-align: center;
  }
  .ranking-logos {
    margin-top: 10px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .ranking-logos img {
    margin: 5px;
    height: 50px;
  }
}

.top-header{ padding:14px 0; background:#0f1c33; }

.rankings {
  display: flex;
  justify-content: center; /* horizontal center */
  align-items: center;     /* vertical center */
	padding: 1rem;
}

.ranking-img {
  max-height: 120px;
  margin: 0 10px;
}

.ranking-text a {
  color: inherit;         /* use parent color */
  text-decoration: none;  /* remove underline */
}

.ranking-text a:hover {
  color: inherit;         /* no color change on hover */
  text-decoration: none;  /* no underline on hover */
}
.container-fluid.d-flex.align-items-center.justify-content-between {
  padding: 0rem 5rem;
}

/* layout */
.header-bar{ gap:16px; }
.site-logo img{ height:60px; }

.ranking-text {
  font-weight: 400;
  font-size: 1rem;
  color: #000; /* change if you want different color */
  white-space: nowrap; /* keep in one line */
}

.hero-img {
  height: 40vw;         /* was 56vw — lowers height based on viewport width */
  max-height: 620px;    /* was 520px — caps it smaller on large screens */
  min-height: 62px;    /* adjust for small devices */
  object-fit: cover;
  object-position: center;
}

@media (min-width: 768px) {
  .hero-img {
    height: 40vw;
    max-height: 600px;
  }
}


/* tablet */
@media (max-width:991.98px){
  .ranking-img{ height:44px; }
}

/* mobile */
@media (max-width:767.98px){
  .header-bar{ flex-direction:column; align-items:center; }
  .site-logo img{ height:66px; }
  .ranking-logos{ justify-content:center; }
  .ranking-img{ height:38px; }
}

/* very small phones */
@media (max-width:420px){
  .ranking-img{ height:32px; }
}



.footer-dark {
  background-color: #0f1c33; /* Dark navy */
  color: #fff;
  padding: 40px 0;
}

.footer-dark h5 {
  font-weight: 600;
  margin-bottom: 10px;
}

.footer-dark p {
  margin-bottom: 10px;
}

.footer-dark a {
  color: #fff;
  text-decoration: none;
}

.footer-dark a:hover {
  text-decoration: underline;
}

.footer-divider {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 15px 0;
}

.footer-divider span {
  display: block;
  width: 80px;
  height: 1px;
  background-color: #fff;
  position: relative;
}

.footer-divider span::before {
  content: '';
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  background-color: #5a7dff; /* Blue dot color */
  border-radius: 50%;
}

