/* Reset & layout */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

/* Body CSS  */
body {
  min-height: 100vh;
  width: 100vw;
  overflow-x: hidden;
  font-family: "Segoe UI", sans-serif;
  background-color: #ffffff;
}

/* Header CSS  */
header {
  position: relative;
  z-index: 1000;
  width: 100%;
  background-color: green;
}

/* Navbar */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: rgba(255, 255, 255, 0.8);
  font-family: "DM Sans", "Segoe UI", sans-serif;
  padding: 1rem 2rem;
  position: fixed;
  top: 0;
  z-index: 1001;
  backdrop-filter: blur(10px);
  width: 100%;
}

/* Left section with logo and divider */
.left-section {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.nav-img-cont {
  width: 40px;
  height: 40px;
  border-radius: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.nav-img-cont > img {
  height: 3em;
  width: 3em;
  border-radius: 50px;
}

.logo-text {
  font-weight: 600;
  font-size: 1.1rem;
  color: #000;
}

.divider {
  height: 30px;
  width: 1px;
  background-color: #000;
  margin-left: 0.7rem;
}

/* Nav links */
.nav-links {
  list-style: none;
  display: flex;
  gap: 2rem;
}

.nav-links > li > a {
  text-decoration: none;
  color: #000;
  font-weight: 600;
  position: relative;
}

.nav-links > li > a::after {
  content: "";
  position: absolute;
  width: 0%;
  height: 2px;
  bottom: -3px;
  left: 0;
  background-color: #000;
  transition: width 0.3s ease;
}

.nav-links > li > a:hover::after,
.nav-links > li > a.active::after {
  width: 100%;
}

.right-section {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* Contact Button */
.contact-btn {
  background-color: #66ccff;
  padding: 0.6rem 1.4rem;
  border-radius: 30px;
  color: #000;
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.3s ease;
}

.contact-btn:hover {
  background-color: #33bbff;
}

/* Default hide hamburger for large screens */
.hamburger {
  display: none;
  cursor: pointer;
}

/* Placeholder sections (for now) */
.section {
  /* padding-top: 100px; */
  scroll-margin-top: 72px; /* set to your navbar height */
  height: 100vh;
  width: 100vw;
  padding: 2rem;
  border-bottom: 1px solid #ddd;
  font-size: 2rem;
}

/* ========================== */
/* Home and Carousel CSS  */
#home {
  background-color: #ffffff;
  /* padding-top: 100px; */
  height: 100vh;
  width: 100vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero-section {
  /* position: relative; */
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Carousel */

.carousel {
  height: 100vh;
  width: 100vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.carousel_image_section {
  width: 100vw;
  height: 92vh;
  margin-top: 8vh;
  position: relative;
  overflow: hidden;
}

.carousel-img {
  position: absolute;
  top: 0;
  left: 0;
  width: inherit;
  height: inherit;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  z-index: 0;
  pointer-events: none;
}

.carousel-img.active {
  opacity: 1;
  z-index: 1;
  pointer-events: auto;
}

/* Text container with gradient background */
.hero-text-container {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 2rem;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.8), transparent);
  z-index: 10;
}

.hero-text {
  color: white;
  max-width: 800px;
}

/* Heading text Animation */
.hero-heading {
  opacity: 0;
  transform: translateX(-100px);
  transition: transform 1s ease, opacity 1s ease;
  font-family: "Roboto Slab", "Segoe UI", sans-serif;
  letter-spacing: 5px;
  font-size: 1.7em;
  color: #febd10;
}

.hero-heading > span {
  color: #66cdfe;
}

.hero-heading.animate {
  opacity: 1;
  transform: translateX(0);
}

#typewriterText {
  display: inline-block;
  font-size: 1.4rem;
  color: white;
  border-right: 2px solid white;
  white-space: nowrap;
  overflow: hidden;
  animation: blink 0.75s step-end infinite;
  font-family: "DM Sans", "Segoe UI", sans-serif;
  letter-spacing: 2px;
}

@keyframes blink {
  50% {
    border-color: transparent;
  }
}

/* Navigation buttons */
.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.4);
  border: none;
  color: white;
  padding: 0.7rem 1rem;
  border-radius: 50%;
  cursor: pointer;
  z-index: 11;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
}

.carousel-btn:hover {
  background-color: rgba(0, 0, 0, 0.7);
}
.carousel-btn:active {
  background-color: #ffffff;
  color: #000000;
}

.carousel-btn.left {
  left: 20px;
}

.carousel-btn.right {
  right: 20px;
}

/* Dot indicators */
.carousel-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 11;
}

.carousel-dots .dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background-color 0.3s;
}

.carousel-dots .dot.active {
  background-color: #66ccff;
}

/* Courses CSS starts  */
#courses {
  background-image: url("./assets/background_images/courses_bg.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  width: 100vw;
  height: 130vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
  padding: 40px 0px 0px 0px;
}

.courses-section {
  width: 92vw;
  height: 84vh;
  /* background-color: green; */
  display: flex;
  flex-direction: column;
}

.courses-header {
  width: 100%;
  height: 15%;
  /* background-color: greenyellow; */
  display: flex;
  justify-content: center;
  align-items: center;
}

.courses-heading-left {
  width: 50%;
  height: 90%;
  /* background-color: yellow; */
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 50px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  letter-spacing: 1px;
}
.courses-heading-right {
  width: 50%;
  height: 90%;
  /* background-color: rgb(0, 221, 255); */
  font-family: "Oswald", "Segoe UI", serif;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 25px;
  color: #00569e;
}
.courses-heading-right > p {
  background: linear-gradient(to left, #00579e3b, transparent);
}

.courses-body {
  width: 100%;
  height: 75%;
  display: flex;
  align-items: center;
  /* background-color: red; */
}

.courses-carousel-card-container {
  width: 86%;
  height: 100%;
  overflow-x: scroll;
  scroll-behavior: smooth;
  position: relative;
  display: grid;
  grid-template-columns: 100%;
  align-items: center;
  /* background-color: yellow; */
  scrollbar-width: none; /* hide scrollbar Firefox */
}

.courses-carousel-card-container::-webkit-scrollbar {
  display: none; /* hide scrollbar Chrome */
}

.courses-carousel-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 60px) / 4); /* 4 visible cards, 20px gaps */
  gap: 20px;
}

.courses-card {
  height: 100%;
  padding: 12px;
  background-color: #efeeef;
  border-radius: 15px;
  box-shadow: 0px 8px 10px 0px rgba(244, 197, 67, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border: 1px solid #f7941e;
}
.course-img {
  height: 38%;
  min-height: 100px;
  width: 90%;
  background-color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
}
.course-img img {
  width: 100%;
  height: 85%;
  object-fit: cover;
  background-color: #fff;
}
.course-heading {
  height: 17%;
  min-height: 40px;
  width: 90%;
  /* background-color: red; */
  padding-top: 25px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-family: "DM Sans", sans-serif;
  font-weight: 800;
  font-size: 0.8em;
}
.course-info {
  height: 30%;
  min-height: 80px;
  width: 90%;
  /* background-color: yellow; */
  font-family: "Roboto", "Segoe UI", sans-serif;
  font-size: 0.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.course-detail-btn {
  height: 15%;
  min-height: 50px;
  width: 90%;
  /* background-color: green; */
  display: flex;
  justify-content: center;
  align-items: center;
}
.course-detail-btn > button {
  padding: 5px 10px;
  border: none;
  background-color: #ffffff;
  color: #ef8300;
  font-family: "DM Sans", "Segoe UI", sans-serif;
  font-weight: 300;
  font-size: 0.5em;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  border: 2px solid #f7941e;
}
.course-detail-btn > button:hover {
  background-color: #f7941e;
  color: #000000;
}
.course-detail-btn > button:active {
  text-decoration: underline;
}

.courses-carousel-left-btn,
.courses-carousel-right-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7%;
  height: 100%;
}
.courses-carousel-left-btn > button,
.courses-carousel-right-btn > button {
  border: none;
  background: none;
  font-size: 0.9em;
  cursor: pointer;
  transition: 0.2s;
}
.courses-carousel-left-btn > button:hover,
.courses-carousel-right-btn > button:hover {
  font-size: 1em;
}

.courses-footer {
  width: 100%;
  height: 10%;
  /* background-color: blueviolet; */
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
  font-family: "Quicksand", "Segoe UI", sans-serif;
  font-weight: 600;
  font-size: 25px;
  color: #00569e;
  padding-top: 20px;
}
.courses-footer > img {
  width: 450px;
  height: 58px;
  background: linear-gradient(to right, #cdcdcdba, transparent);
}

/* Course button modals ================================ */
.course-modal {
  display: none; /* hidden initially */
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 2000;
  justify-content: center;
  align-items: center;
  padding: 20px;
}

.course-modal-content {
  background: #fff;
  padding: 25px;
  border-radius: 15px;
  width: 70%;
  max-width: 800px;
  max-height: 80%;
  overflow-y: auto;
  font-family: "Roboto", sans-serif;
  box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.4);
  position: relative;
  animation: slideUp 0.3s ease;
}

.course-modal-content img {
  border: 2px solid #f7941e;
  border-radius: 10px;
}
.course-modal-content h2 {
  font-size: 1.5em;
  color: #333;
  font-family: "DM Sans", "Segoe UI", sans-serif;
}
.course-modal-content p {
  font-size: 0.8em;
}
.course-modal-content ul {
  list-style-type: disc;
  padding-left: 35px;
  font-size: 0.7em;
}

.course-modal-close {
  position: absolute;
  top: 12px;
  right: 15px;
  font-size: 1.8rem;
  cursor: pointer;
  color: #333;
  font-weight: bold;
}

.course-modal-close:hover {
  color: #f00;
}

/* Smooth slide-up effect */
@keyframes slideUp {
  from {
    transform: translateY(50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Optional: custom scrollbar for modal */
.course-modal-content::-webkit-scrollbar {
  width: 8px;
}
.course-modal-content::-webkit-scrollbar-thumb {
  background: #f7941e;
  border-radius: 6px;
}
.course-modal-content::-webkit-scrollbar-track {
  background: #eee;
}

/* ===================================================== */

/* Skills section  =======================*/

.skills {
  width: 100vw;
  height: 30vh;
  background-color: rgba(255, 255, 255, 0.721);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.skills-heading {
  width: 100%;
  height: 20%;
  /* background-color: red; */
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-family: "Roboto", "Segoe UI", Tahoma, Verdana, sans-serif;
}
.skills-container {
  width: 94%;
  height: 70%;
  background-color: #ffffff;
  border: 5px double #00569e;
  border-radius: 15px;
  overflow: hidden; /* Hide overflow for smooth scroll */
  position: relative;
}

.skills-slider {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}

.skills-track {
  display: flex;
  gap: 60px;
  white-space: nowrap;
}

.skills-track img {
  height: 70px;
  width: 70px;
  flex-shrink: 0;
  user-select: none;
}

/* About Section CSS ================================== */
#about {
  background-image: url("./assets/background_images/about_bg.png");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  width: 100vw;
  height: 160vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}

.about-section {
  width: 92vw;
  height: 100vh;
  /* background-color: green; */
  display: flex;
  flex-direction: column;
  padding-top: 20px;
  gap: 10px;
}
.about-header {
  width: 100%;
  height: 20%;
  /* background-color: rgba(255, 255, 255, 0.7); */
  display: flex;
  flex-direction: column;
  /* background: linear-gradient(to left, #ffffff, transparent); */
  border-radius: 10px;
}

.about-main-heading {
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 45px;
  /* background-color: bisque; */
}

.about-sub-heading {
  font-family: "DM Sans", "Segoe UI", sans-serif;
  font-size: 25px;
  /* background-color: burlywood; */
  background: linear-gradient(to left, #ffffff, transparent);
}
.about-sub-heading > p > span {
  font-size: 25px;
}

.typeword {
  background-color: #74c0fc;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 500;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  border-right: 2px solid #000;
  animation: blink-caret 0.75s step-end infinite;

  /* Fix height & vertical alignment */
  line-height: 1;
  vertical-align: middle;
  font-size: inherit;
}

@keyframes blink-caret {
  from,
  to {
    border-color: transparent;
  }
  50% {
    border-color: black;
  }
}

.about-body {
  width: 100%;
  height: 80%;
  /* background-color: brown; */
  display: flex;
  flex-wrap: wrap;
}
.about-img-section {
  width: 50%;
  height: 100%;
  /* background-color: yellowgreen; */
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.about-info-section {
  width: 50%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.742);
  display: flex;
  flex-direction: column;
  border-radius: 20px;
}

.about-info-upper-heading {
  width: 100%;
  height: 10%;
  /* background-color: green; */
  font-family: "Oswald", "Segoe UI", serif;
  font-size: 30px;
  font-weight: 200;
  display: flex;
  align-items: center;
  /* justify-content: flex-end; */
  padding-left: 20px;
}
.about-info-main-heading {
  width: 100%;
  height: 10%;
  /* background-color: rgb(0, 255, 26); */
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  display: flex;
  align-items: center;
  background: linear-gradient(to right, #74c0fc, transparent);
  padding-left: 20px;
}
.about-info-text {
  width: 100%;
  height: 80%;
  /* background-color: skyblue; */
  font-family: "DM Sans", serif, "Segoe UI";
  font-size: 15px;
  padding: 10px 20px;
  text-align: justify;
}

/* ================== Decorative Squares ================== */
.decorative-shape {
  position: absolute;
  width: 300px;
  height: 300px;
  border-radius: 20px;
  animation: wiggle 6s ease-in-out infinite;
  transform-origin: center;
}

.shape1 {
  background-color: rgba(0, 0, 0, 0.6); /* Black with 60% opacity */
  top: 12%;
  left: 22%;
  z-index: 5;
  animation-delay: 0s;
}

.shape2 {
  background-color: #7ccdff; /* Light blue */
  top: 19%;
  left: 35%;
  z-index: 6;
  animation-delay: 1s;
}

.shape3 {
  background-color: #00579ed7; /* Dark blue */
  top: 28%;
  left: 16%;
  z-index: 7;
  animation-delay: 2s;
}

/* ================== Wiggle Animation ================== */
@keyframes wiggle {
  0%,
  100% {
    transform: rotate(0deg) translate(0px, 0px);
  }
  25% {
    transform: rotate(1deg) translate(3px, -3px);
  }
  50% {
    transform: rotate(-1deg) translate(-3px, 3px);
  }
  75% {
    transform: rotate(0.5deg) translate(2px, -2px);
  }
}

/* ================== Director Image ================== */
.director-image {
  width: 300px;
  margin-top: 60px;
  margin-left: 30px;
  aspect-ratio: 1 / 1;
  border-radius: 20px;
  overflow: hidden;
  z-index: 10;
  background-color: red;
}

.director-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#why-gics-section {
  width: 92vw;
  height: 35vh;
  /* background-color: green; */
  display: flex;
  flex-direction: column;
  gap: 40px;
}
#why-gics-section > p {
  width: 100%;
  height: 20%;
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 45px;
  /* background-color: red; */
  text-align: left;
}
.gics-box-container {
  width: 100%;
  height: 80%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 70px;
  /* background-color: yellow; */
}

.gics-box {
  font-family: "Quicksand", "Segoe UI", sans-serif;
  font-size: 30px;
  /* text-align: center; */
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 216px;
  height: 150px;
  border: 5px solid #00569e;
  background-color: #ffffffc1;
  border-radius: 37px;
  padding: 20px 10px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  /* font-family: 'Poppins', sans-serif; */
  overflow: hidden;
  .counter {
    font-size: 30px;
  }
  font-weight: bold;
  color: #000000;
}

/* About section part 2 CSS -------- */

#about-section-part-2 {
  background-image: url("./assets/background_images/about_bg_2.png");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.about-facility {
  width: 92vw;
  height: 97%;
  /* background-color: yellowgreen; */
  display: flex;
  /* flex-wrap: wrap; */ /*----------------------------- Photo gallery flex-wrap  */
  margin-bottom: 30px;
  gap: 35px;
}

/* Facility CSS ================ */

.about-facility-left {
  width: 52%;
  height: 100%;
  /* background-color: red; */
}

.facility-heading {
  width: 100%;
  height: 10%;
  /* background-color: rgb(37, 8, 255); */
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: linear-gradient(to right, #74c0fc, transparent);

  display: flex;
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 40px;
  margin-bottom: 20px;
}

.facility-section {
  width: 100%;
  height: 90%;
  /* background-color: yellow; */
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.about-facility-body {
  width: 100%;
  height: 88%;
  background-color: rgba(255, 255, 255, 0.792);
  display: flex;
  gap: 30px;
}

.facility-section-carousel {
  width: 95%;
  height: 95%;
  /* background-color: red; */
}

.facilities-carousel-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 3px solid #00569e;
  border-radius: 20px;
  box-shadow: 0px 0px 40px 1px rgba(0, 0, 0, 0.3);
}

.facilities-slide {
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
  pointer-events: none;
}

.facilities-slide.active {
  opacity: 1;
  z-index: 1;
  pointer-events: auto;
}

.facilities-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.facilities-caption {
  position: absolute;
  bottom: 55px;
  left: 50%;
  transform: translateX(-50%);
  color: #ffffff;
  background: rgba(0, 0, 0, 0.85);
  padding: 12px 18px;
  font-size: 14px;
  width: 80%;
  border-left: 5px solid #ffbd59;
  border-right: 5px solid #ffbd59;
  border-radius: 6px;
  font-family: "Quicksand", sans-serif;
  text-align: center;
}

.facilities-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.5);
  border: none;
  color: white;
  padding: 10px;
  font-size: 20px;
  cursor: pointer;
  border-radius: 50%;
  z-index: 3;
}
.facilities-btn:active {
  background-color: #ffffff;
  color: #000000;
}
.facilities-prev {
  left: 10px;
}
.facilities-next {
  right: 10px;
}

.facilities-dots {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 3;
}
.fac-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: white;
  border: 2px solid #00aaff;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.fac-dot.active {
  background-color: #00aaff;
}

/* Gallery CSS ================ */

.about-gallery-right {
  width: 45%;
  height: 100%;
  /* background-color: rgb(0, 255, 34); */
}

.gallery-heading {
  width: 100%;
  height: 10%;
  /* background-color: rgb(212, 0, 255); */
  display: flex;
  align-items: center;
  justify-content: flex-end;
  background: linear-gradient(to left, #74c0fc, transparent);
  display: flex;
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 40px;
  margin-bottom: 20px;
}

.gallery-section {
  width: 100%;
  height: 90%;
  /* background-color: rgb(0, 255, 34); */
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  justify-items: center;
}

.gallery-photo {
  width: 90%;
  height: 90%;
  /* background-color: blue; */
  border-radius: 10px;
  box-shadow: 0px 0px 40px 1px rgba(0, 0, 0, 0.3);
  border: 3px solid #00569e;
}

.gallery-photo:hover {
  cursor: pointer;
}

/* Achievements Section CSS ================================== */

#achievements {
  background-image: url("./assets/background_images/achievements_bg.png");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  width: 100vw;
  height: 200vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

#achievementBody.fade {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
#achievementBody {
  transition: opacity 0.3s ease-in-out;
}

.achievement-section {
  width: 92vw;
  height: 190vh;
}

.achievement-header {
  width: 100%;
  height: 8%;
  display: flex;
  align-items: center;
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 45px;
  background: linear-gradient(to right, #ffbd59, transparent);
}

.achievement-body {
  width: 100%;
  height: 92%;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.achievement-box {
  width: 100%;
  height: 33.3%;
  border: 2px solid #00569e;
  display: flex;
  flex-direction: column;
}

.achievement-pictures {
  width: 100%;
  height: 70%;
  background-color: #1a1a1a;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  position: relative;
  overflow: hidden;
}

.achievement-photo {
  width: 100%;
  height: 100%;
  border: 2px solid #00569e;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: static;
  opacity: 1;
  transition: opacity 0.5s ease-in-out;
  cursor: pointer;
}

.achievement-info {
  width: 100%;
  height: 30%;
  background-color: rgba(0, 0, 0, 0.578);
  color: white;
  padding: 10px 20px;
  overflow-y: auto;
}

.achievement-info h3 {
  margin: 0;
  color: #f5c542;
  font-size: 20px;
  font-family: "Domine", serif;
}
.achievement-info p {
  margin-top: 5px;
  font-size: 14px;
  font-family: "Segoe UI", sans-serif;
}

.achieve-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  border: none;
  font-size: 15px;
  padding: 7px 12px;
  cursor: pointer;
  border-radius: 50%;
  z-index: 10;
  display: none;
  transition: background-color 0.2s;
}
.achieve-carousel-btn:hover {
  background-color: rgba(0, 0, 0, 0.8);
}
.achieve-carousel-btn:active {
  background-color: #ffffff;
  color: #000000;
}
.achieve-carousel-btn.prev {
  left: 15px;
}
.achieve-carousel-btn.next {
  right: 15px;
}

/* Testimonials Section CSS ================================== */
#testimonials {
  background-image: url("./assets/background_images/testimonials_bg.png");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  width: 100vw;
  height: 160vh;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.testimonial-section {
  width: 92vw;
  height: 87%;
  /* background-color: green; */
  display: flex;
  flex-wrap: wrap;
}

.testimonial-header {
  width: 100%;
  height: 8%;
  background: linear-gradient(to right, #74c0fc, transparent);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 40px;
}

.testimonial-body {
  width: 100%;
  height: 92%;
  display: flex;
  gap: 20px;
}

.testimonial-left {
  width: 60%;
  height: 100%;
  /* background-color: skyblue; */
}
.testimonial-left-heading {
  width: 100%;
  height: 7%;
  background: linear-gradient(to right, #ffbd59, transparent);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-family: "Oswald", "Segoe UI", serif;
  font-weight: 500;
  font-size: 30px;
  padding-left: 15px;
}
.testimonial-left-body {
  width: 100%;
  height: 93%;
  background-color: rgba(255, 255, 255, 0.744);
  border-top: 3px solid silver;
  border-right: 3px solid silver;
  border-bottom: 3px solid rgb(50, 50, 50);
  border-left: 3px solid rgb(50, 50, 50);
  border-top-right-radius: 25px;
  border-bottom-left-radius: 25px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  align-items: center;
  justify-items: center;
  overflow-x: scroll;
  gap: 10px;
  padding: 0px 10px;
  scrollbar-width: thin; /* For Firefox */
  scrollbar-color: #00aaff transparent; /* thumb color | track color */
}
/* Chrome, Edge, Safari */
.testimonial-left-body::-webkit-scrollbar {
  height: 8px; /* thickness of horizontal scrollbar */
}

.testimonial-left-body::-webkit-scrollbar-track {
  background: transparent; /* transparent so it blends */
  border-radius: 20px;
}

.testimonial-left-body::-webkit-scrollbar-thumb {
  background: linear-gradient(90deg, #00aaff, #00569e);
  border-radius: 20px;
}

.testimonial-left-body::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(90deg, #0077cc, #003f73);
}

.testimonial-card-section {
  /* background-color: rgb(164, 164, 255); */
  /* css glass */
  background: rgba(145, 210, 255, 0.62);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(6.8px);
  -webkit-backdrop-filter: blur(6.8px);
  border: 1px solid rgba(145, 210, 255, 0.56);

  width: 6.8em;
  height: 95%;
  border-top-right-radius: 25px;
  border-bottom-left-radius: 25px;
  position: relative;
}

.tBanner {
  width: 100%;
  height: 20%;
  /* background-color: red; */
  border-top-right-radius: 25px;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 5px 0px 0px 20px;
}
.tBanner img {
  width: 80%;
  height: 60%;
}

.tPfp {
  width: 78px;
  height: 78px;
  background-color: white;
  position: absolute;
  top: 2%;
  left: 5%;
  border-radius: 50%;
  border: 3px solid blue;
}
.tPfp img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.tDateofjoin {
  width: 75%;
  height: 10%;
  position: absolute;
  top: 15%;
  left: 25%;
  background: linear-gradient(to left, #01aaff, #ffffff);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 0.5em;
  padding-right: 5px;
  font-family: "Oswald", "Segoe UI", serif;
}
.tCdName {
  width: 100%;
  height: 20%;
  background-color: #f7941e;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  font-size: 0.7em;
  padding-bottom: 5px;
  padding-right: 5px;
  font-family: "DM Sans", "Segoe UI", sans-serif;
}
.tinfo {
  width: 100%;
  height: 60%;
  padding: 5px;
  border-bottom-left-radius: 25px;
  display: flex;
}
.tinfo span {
  font-size: 25px;
}
.tinfo p {
  font-size: 14px;
  overflow: hidden;
}

.testimonial-right {
  width: 40%;
  height: 100%;
  /* background-color: burlywood; */
}
.testimonial-right-heading {
  width: 100%;
  height: 7%;
  background: linear-gradient(to left, #ffbd59, transparent);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-family: "Oswald", "Segoe UI", serif;
  font-weight: 500;
  font-size: 30px;
  padding-right: 15px;
}
.testimonial-right-body {
  width: 100%;
  height: 93%;
  background-color: rgba(255, 255, 255, 0.744);
  border-top: 3px solid silver;
  border-left: 3px solid silver;
  border-bottom: 3px solid rgb(50, 50, 50);
  border-right: 3px solid rgb(50, 50, 50);
  border-top-left-radius: 25px;
  border-bottom-right-radius: 25px;
}

.student-reviews {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.reviews-videos {
  position: relative;
  flex: 7; /* 70% */
  background: rgba(0, 0, 0, 0.406);
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  border-top-left-radius: 22px;
}

.video-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
  overflow: hidden;
  position: relative;
}

.review-video {
  width: auto;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  background: black;
  margin: auto;
  display: none;
}

.review-video.active {
  display: block;
}

.progress-bars {
  position: absolute;
  top: 10px;
  left: 10px;
  right: 10px;
  display: flex;
  gap: 5px;
  z-index: 2;
}

.progress-bar {
  flex: 1;
  height: 4px;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 3px;
  overflow: hidden;
}

.progress-bar-fill {
  width: 0%;
  height: 100%;
  background: white;
  transition: width linear;
}

.tap-left,
.tap-right {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  z-index: 3;
}

.tap-left {
  left: 0;
}
.tap-right {
  right: 0;
}

.play-pause-btn {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.6);
  border: none;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  color: white;
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
  text-align: center;
}

/* ============================================ */
.reviews-google {
  width: 100%;
  height: 30%;
  overflow: hidden;
  position: relative;
  border: 2px solid #ccc;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom-right-radius: 23px;
}

.reviews-track {
  display: flex;
  transition: transform 0.6s ease-in-out;
  will-change: transform;
}

.review-card {
  min-width: 100%; /* show one review at a time */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  box-sizing: border-box;
}

.review-card img {
  max-width: 100%;
  max-height: 350px; /* set a uniform height */
  object-fit: contain; /* keeps full snapshot, no crop */
  border-radius: 10px;
  box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);
}
/* ========================================== */

.testimonial-footer {
  width: 100%;
  height: 13%;
  /* background-color: skyblue; */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 25px;
  font-family: DM Sans, "Segoe UI", sans-serif;
  font-weight: 600;
  color: #00569e;
}

/* Footer Part CSS =================================== */
#footer {
  width: 100vw;
  height: 100vh;
  background-image: url("./assets/background_images/footer_bg.png");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
}

.footer-head {
  width: 100%;
  height: 10%;
  background: linear-gradient(to right, #ffffff, #74c0fc, #ffffff);
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Domine", serif, "Segoe UI";
  font-weight: bolder;
  font-size: 45px;
}

.footer-body {
  width: 100%;
  height: 84%;
  /* background-color: green; */
  display: flex;
}

.map-container {
  width: 40%;
  height: 100%;
  /* background-color: brown; */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 15px;
}
.map-box {
  width: 80%;
  height: 70%;
  border: 2px solid #00569e;
}
.info-box {
  width: 80%;
  height: 20%;
  background-color: #ffffffc1;
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
  font-family: "DM Sans", "Segoe UI", sans-serif;
  padding: 5px;
}

.quick-links-container {
  width: 20%;
  height: 100%;
  /* background-color: burlywood; */
  padding: 20px 20px 20px 40px;
  box-sizing: border-box;
  color: #000;
  font-family: "DM Sans", "Segoe UI", sans-serif;
}
.quick-links-container h3 {
  margin-bottom: 15px;
  font-size: 24px;
  color: #003366;
}
.footer-links {
  width: 100%;
  height: 35%;
  /* background-color: yellow; */
  list-style: none;
  padding: 0;
}
.footer-links li {
  margin-bottom: 10px;
  width: 70%;
}
.footer-links a {
  text-decoration: none;
  color: #333;
  font-weight: 500;
  transition: 0.3s;
}
.footer-links a:hover {
  color: #0077cc;
}

.footer-web-links {
  width: 100%;
  height: 40%;
  /* background-color: green; */
  overflow: hidden;
  list-style: none;
  color: #000000;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-web-links > li > a {
  text-decoration: none;
  width: 100%;
}
.footer-web-links > li > a > button {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  border: none;
  cursor: pointer;
  font-family: "DM Sans", "Segoe UI", sans-serif;
  width: 80%;

  /* css.glass */
  background: rgba(255, 255, 255, 0.19);
  border-radius: 5px;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(4.4px);
  -webkit-backdrop-filter: blur(4.4px);
  border: 1px solid rgba(255, 255, 255, 0.74);
  padding: 3px;
}
.footer-web-links > li > a > button:hover {
  /* css.glass */
  background: rgba(255, 255, 255, 0.6);
  border-radius: 5px;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(8.9px);
  -webkit-backdrop-filter: blur(8.9px);
  border: 1px solid rgba(255, 255, 255, 1);
  transition: 0.3s;
}
.footer-web-links > li > a > button > img {
  width: 28px;
  height: 28px;
}

.institute-info-container {
  width: 40%;
  height: 100%;
  /* background-color: lightblue; */
  display: flex;
  justify-content: center;
  align-items: center;
}

.institute-info-box {
  width: 80%;
  height: 100%;
  background-color: #ffffffc1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: "DM Sans", "Segoe UI", sans-serif;
}
.institute-logo {
  width: 100%;
  height: 20%;
  /* background-color: palegreen; */
  display: flex;
  justify-content: center;
  align-items: center;
}
.institute-logo img {
  min-width: 90px;
  max-width: 130px;
  min-height: 90px;
  max-height: 130px;
  object-fit: cover;
  border-radius: 70px;
}
.institute-name {
  width: 100%;
  height: 30%;
  /* background-color: palevioletred; */
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 1.7em;
}
.institute-address {
  width: 100%;
  height: 20%;
  /* background-color: peru; */
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 1.2em;
  padding: 0 20px;
}

.number {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  gap: 20px;
}
.institute-contact {
  width: 100%;
  height: 20%;
  /* background-color: rgb(231, 100, 231); */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  border-top: 2px solid #ffffff;
  font-size: 1.2em;
}

.footer-foot {
  width: 100%;
  height: 6%;
  background-color: #003366;
  color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "DM Sans", "Segoe UI", sans-serif;
}

/* ============================================= */

/* Contact Us Button CSS ================================== */
/* ================= Contact Modal ================= */
.contact-modal {
  display: none; /* Hidden by default */
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.6); /* Dark overlay */
  justify-content: center;
  align-items: center;
  z-index: 9999; /* Above everything */
}

.contact-content {
  background-image: url("./assets/background_images/contact_btn_bg.avif");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  width: 50vw;
  max-width: 600px;
  min-width: 300px;
  height: 75vh;
  padding: 20px;
  border-radius: 10px;
  position: relative;
  animation: popupFade 0.3s ease-out;
}

.contact-info-section {
  width: 100%;
  height: 100%;
  /* background-color: yellow; */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.contact-details {
  width: 90%;
  height: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;

  /* css.glass */
  background: rgba(255, 255, 255, 0.21);
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(5.2px);
  -webkit-backdrop-filter: blur(5.2px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-bottom: none;
}
.ct-btn-logo > img {
  width: 60px;
  height: 60px;
  border-radius: 50%;
}
.ct-btn-name{
  font-family: "DM Sans", "Segoe UI", sans-serif;
  font-size: 1.5em;
  font-weight: 600;
}
.ct-btn-address,
.ct-btn-contact{
  font-family: "DM Sans", "Segoe UI", sans-serif;
  font-size: 1em;
  font-weight: 300;
}

.contact-socials {
  width: 90%;
  height: 30%;
  background: rgba(255, 255, 255, 0.21);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(5.2px);
  -webkit-backdrop-filter: blur(5.2px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-top: none;
  border-bottom: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

/* ============================================= */
.contact-socials a {
  background-color: white;
  padding: 1em;
  border-radius: 50%;
  height: 64px;
  width: 64px;
  box-sizing: border-box;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.05);
  text-decoration: none;
  color: black;
  display: flex;
  justify-content: center;
  align-items: center;
}
.contact-socials a::before {
  content: attr(data-social);
  position: absolute;
  background-color: var(--accent-color);
  color: white;
  text-decoration: none;
  padding: 0.5em 1em;
  border-radius: 100px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.05);
  transform: translateY(-30px) rotate(25deg);
  opacity: 0;
  transition: 200ms cubic-bezier(0.42, 0, 0.44, 1.68);
}
.contact-socials a:hover {
  background-color: var(--accent-color);
  color: white;
}
.contact-socials a::after {
  content: "";
  position: absolute;
  height: 0;
  width: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 10px solid var(--accent-color);
  transform: translateY(0) rotate(25deg);
  opacity: 0;
  transition: 200ms cubic-bezier(0.42, 0, 0.44, 1.68);
}
.contact-socials a:hover::before {
  transform: translateY(-65px) rotate(0);
  opacity: 1;
}
.contact-socials a:hover::after {
  transform: translateY(-42px) rotate(0);
  opacity: 1;
}

.foot-foot-ctbtn {
  width: 90%;
  height: 10%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "DM Sans", "Segoe UI", sans-serif;
  color: #00569e;
  font-size: 1.2em;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.21);
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(5.2px);
  -webkit-backdrop-filter: blur(5.2px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-top: none;
}
/* ============================================= */

/* Close Button */
.close-btn {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 24px;
  color: rgb(255, 255, 255);
  cursor: pointer;
  background-color: red;
  border-radius: 5px;
}

/* Animation */
@keyframes popupFade {
  from {
    transform: scale(0.8);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */
/* ========================================================= */

/* ============================================================== */
/* Media query for mobile responsiveness */

/* Navbar media query  */
@media (max-width: 970px) {
  .nav-links {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: calc(
      100vh - 72px
    ); /* 72px = approx navbar height; adjust as needed */
    background-color: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(6px);
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    display: none;
    z-index: 999;
  }

  .divider {
    height: 25px;
    width: 1px;
    background-color: #000;
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }

  .nav-links.show {
    display: flex;
  }

  .nav-links li {
    width: 80%;
    text-align: center;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
  }

  .nav-links li:last-child {
    border-bottom: none;
  }

  .nav-links a {
    font-size: 1.5rem;
    color: #000;
  }

  .hamburger {
    display: block;
  }

  .contact-btn {
    padding: 0.4rem 0.8rem;
    font-size: 0.8rem;
    border-radius: 20px;
  }
}

/* ===========================
   MOBILE FIXES (primary: 970px)
   =========================== */
@media (max-width: 970px) {
  :root {
    --navbar-height: 72px;
  }

  /* general */
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }
  .section {
    height: auto !important;
    padding: 1rem;
    width: 100%;
    box-sizing: border-box;
  }

  /* NAVBAR */
  .navbar {
    padding: 0.6rem 1rem;
  }
  .nav-links {
    top: 100%;
    height: calc(100vh - var(--navbar-height));
  }
  .nav-links li {
    width: 100%;
    padding: 0.9rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
  }
  .nav-links a {
    font-size: 1.25rem;
  }
  .logo-text {
    font-size: 0.9em;
    font-weight: 900;
  }
  .nav-img-cont {
    width: 36px;
    height: 36px;
  }
  .hamburger {
    display: block;
    z-index: 1002;
  }

  /* HERO / HOME CAROUSEL */
  @media (max-width: 970px) {
    .carousel {
      position: relative;
      width: 100%;
      height: 60vh;
      overflow: hidden;
    }

    .carousel_image_section {
      width: 100%;
      height: 100%;
      margin: 0;
      display: flex;
      align-items: flex-start;
    }

    .carousel-img,
    .carousel video {
      width: 100%;
      height: 100%;
      object-fit: contain; /* show full image/video without cropping */
      background: #ffffff;
    }

    .hero-text-container {
      position: absolute;
      bottom: 7%;
      left: 0%;
      right: auto;
      max-width: 100%;
      text-align: left;
      padding: 12px 16px;
      background: rgba(0, 0, 0, 0.6);
      border-radius: 0; /* remove rounded box */
    }

    .hero-heading {
      color: #ffbc10;
    }

    #typewriterText {
      font-size: 0.7rem;
      font-weight: 600;
      color: #ffffff;
    }

    .carousel-btn {
      top: 50%;
      transform: translateY(-50%);
      padding: 8px;
      font-size: 0.7rem;
    }

    .carousel-dots {
      position: absolute;
      bottom: 3%;
      left: 50%;
      transform: translateX(-50%);
    }
    .carousel-dots .dot {
      width: 10px;
      height: 10px;
      margin: 0 3px;
      border: 2px solid #003366;
    }
  }
  @media (max-width: 805px) {
    #home {
      height: 70vh !important;
    }
    .carousel {
      height: 65vh;
      padding-bottom: 100px;
    }
    .hero-text-container {
      bottom: 4%;
    }
    .hero-heading {
      font-size: 3rem;
      font-weight: 900;
    }
    .carousel-btn {
      top: 50%;
      transform: translateY(-50%);
      padding: 8px;
      font-size: 0.7rem;
    }
    .carousel-dots {
      bottom: 1%;
      left: 50%;
      transform: translateX(-50%);
    }
  }
  @media (max-width: 480px) {
    #home {
      height: 70vh !important;
    }
    .carousel {
      height: 65vh;
      padding-bottom: 300px;
    }
    .hero-text-container {
      bottom: 4%;
    }
    .hero-heading {
      font-size: 2.3rem;
      font-weight: 900;
    }
    .carousel-btn {
      top: 25%;
      transform: translateY(-50%);
      padding: 8px;
      font-size: 0.7rem;
    }
    .carousel-dots {
      top: 46%;
      left: 50%;
      transform: translateX(-50%);
    }
  }
  @media (max-width: 395px) {
    #home {
      height: 75vh !important;
    }
    .carousel {
      height: 70vh;
      padding-bottom: 250px;
    }
    .hero-heading {
      font-size: 2rem;
      font-weight: 900;
    }
    .carousel-btn {
      top: 25%;
      transform: translateY(-50%);
      padding: 8px;
      font-size: 0.7rem;
    }
    .carousel-dots {
      top: 47%;
      left: 50%;
      transform: translateX(-50%);
    }
  }
}

/* ========================
   COURSES SECTION MOBILE
   ======================== */

@media (max-width: 970px) {
  #courses {
    height: auto !important;
    padding: 20px 10px 40px;
  }

  .courses-body {
    height: 65%;
  }

  .courses-carousel-card-container {
    display: flex;
    overflow: hidden;
    width: 75%;
    height: 100%;
    margin: auto;
    padding: 0px 5px 0px 5px;
    scroll-snap-type: x mandatory;
  }

  .courses-carousel-track {
    display: flex;
    transition: transform 0.4s ease;
    width: 100%;
  }

  .courses-card {
    flex: 0 0 48%;
    max-width: 48%;
    height: auto;
    margin: 1% auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: center;
  }

  /* restore left/right buttons for mobile */
  .courses-carousel-left-btn,
  .courses-carousel-right-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: absolute;
    bottom: -12%;
    transform: translateY(-50%);
    z-index: 5;
    background: rgba(255, 255, 255, 0.4);
    color: #fff;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    font-size: 1.2rem;
    cursor: pointer;
  }

  .courses-carousel-left-btn {
    left: 10px;
  }
  .courses-carousel-right-btn {
    right: 10px;
  }

  .courses-footer {
    height: 15%;
  }
  .courses-footer p {
    font-size: 1rem;
  }
  .courses-footer img {
    height: 50%;
    width: 80%;
  }

  .skills {
    height: 25vh;
  }
  .skills-heading {
    text-align: center;
  }
  .skills-container {
    height: 60%;
  }
}

/* Smaller tweaks */
@media (max-width: 480px) {
  /* force 1 card per view */
  .courses-card {
    flex: 0 0 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: center;
  }

  /* restore left/right buttons for mobile */
  .courses-carousel-left-btn,
  .courses-carousel-right-btn {
    position: absolute;
    bottom: -15%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
  }

  .courses-carousel-left-btn {
    left: 10px;
  }
  .courses-carousel-right-btn {
    right: 10px;
  }

  .courses-heading-left {
    font-size: 1em;
  }
  .courses-heading-right {
    font-size: 1rem;
    padding-left: 10px;
  }
  .courses-card h3 {
    font-size: 1rem;
  }
  .course-info {
    font-size: 0.8rem;
  }
  .courses-card img {
    width: 80%;
    height: 80%;
  }
  .course-detail-btn > button {
    font-size: 0.8rem;
    padding: 7px 14px;
  }

  .courses-footer {
    height: 15%;
    display: flex;
    flex-direction: column;
    text-align: center;
  }
  .courses-footer p {
    font-size: 1.2rem;
  }
  .courses-footer img {
    height: 60%;
    width: 100%;
  }

  .course-modal-content {
    width: 95%;
    height: 90%;
    font-size: 0.8em;
  }

  .skills {
    height: 25vh;
  }
  .skills-heading {
    font-size: 1rem;
    text-align: center;
  }
  .skills-container {
    height: 65%;
  }
}

@media (max-width: 395px) {
  /* force 1 card per view */
  .courses-card {
    flex: 0 0 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: center;
  }

  /* restore left/right buttons for mobile */
  .courses-carousel-left-btn,
  .courses-carousel-right-btn {
    position: absolute;
    bottom: -33%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
  }

  .courses-carousel-left-btn {
    left: 10px;
  }
  .courses-carousel-right-btn {
    right: 10px;
  }

  .courses-heading-left {
    font-size: 2rem;
  }
  .courses-heading-right {
    font-size: 0.9rem;
    padding-left: 10px;
  }
  .courses-card h3 {
    font-size: 0.9rem;
  }
  .course-info {
    font-size: 0.85rem;
  }
  .course-img img {
    height: 80%;
    width: 200px;
  }
  .course-detail-btn > button {
    font-size: 0.75rem;
    padding: 6px 12px;
  }
  .courses-footer {
    height: 15%;
    display: flex;
    flex-direction: column;
    text-align: center;
  }
  .courses-footer p {
    font-size: 1.2rem;
  }
  .courses-footer img {
    height: 60%;
    width: 100%;
  }
  .course-modal-content {
    width: 95%;
    height: 90%;
    font-size: 0.8em;
  }

  .skills {
    height: 25vh;
  }
  .skills-heading {
    font-size: 0.9rem;
    text-align: center;
  }
  .skills-container {
    height: 65%;
  }
}

/* =================================================================== */
/* ======================= MEDIA QUERIES ABOUT ======================= */
/* =================================================================== */

/* For Tablets and Smaller Desktops (max-width: 970px) */
/* =================================================================== */
@media (max-width: 970px) {
  /* Make the overall section height dynamic to fit stacked content */
  #about {
    height: auto;
    padding-bottom: 50px;
  }

  .about-section {
    height: auto; /* Allow height to adjust to content */
  }

  /* Stack the image and info sections vertically */
  .about-body {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }

  /* Make both sections take up most of the width */
  .about-img-section,
  .about-info-section {
    width: 90%;
  }

  .about-img-section {
    height: 550px; /* Give it a fixed height to contain the shapes and image */
    order: 1; /* Keep image first */
  }

  .about-info-section {
    height: auto;
    order: 2; /* Keep info section second */
  }

  /* Reduce heading sizes slightly */
  .about-main-heading {
    font-size: 40px;
  }
  .about-info-main-heading {
    padding: 12px;
    justify-content: center;
    background: linear-gradient(to right, #8ccdff, #ffffff, #8ccdff);
  }
  .about-sub-heading{
    background: linear-gradient(to left, transparent, #ffffff, transparent);
  }
  .director-image {
    width: 300px;
    margin-top: 40px;
    margin-left: 0; /* Remove left margin for better centering */
  }

  .shape1 {
    top: 20%;
    left: 20%;
  }
  .shape2 {
    top: 25%;
    left: 34%;
  }
  .shape3 {
    top: 32%;
    left: 18%;
  }

  #why-gics-section {
    height: auto;
  }
  #why-gics-section > p {
    font-size: 40px;
    text-align: center;
  }

  /* Center the info boxes if they wrap to a new line */
  .gics-box-container {
    justify-content: center;
    gap: 40px;
  }
}

/* For Small Tablets shape adjustments (max-width: 620px) */
@media (max-width: 620px) {
  .shape1 {
    top: 20%;
    left: 14%;
  }
  .shape2 {
    top: 25%;
    left: 30%;
  }
  .shape3 {
    top: 32%;
    left: 13%;
  }
  .gics-box {
    width: 200px;
    height: 130px;
    font-size: 26px;
  }
}
/* For Standard Mobile Devices (max-width: 480px) */
/* =================================================================== */
@media (max-width: 480px) {
  #about {
    /* Remove background image attachment to prevent performance issues on mobile */
    background-attachment: scroll;
  }

  .about-section {
    width: 95vw; /* Use slightly more screen width */
  }

  .about-header {
    text-align: center;
    gap: 10px;
  }

  /* Reduce font sizes significantly for mobile readability */
  .about-main-heading {
    font-size: 32px;
  }

  .about-sub-heading,
  .about-sub-heading > p > span {
    font-size: 20px;
  }

  /* Adjust image section and make decorative shapes smaller */
  .about-img-section {
    width: 100%;
    height: 450px;
  }

  .decorative-shape {
    width: 250px;
    height: 250px;
  }

  .director-image {
    width: 250px;
    margin-top: 40px;
    margin-left: 0; /* Remove left margin for better centering */
  }

  /* Adjust shape positions for the new layout */
  .shape1 {
    top: 20%;
    left: 16%;
  }
  .shape2 {
    top: 25%;
    left: 31%;
  }
  .shape3 {
    top: 32%;
    left: 13%;
  }

  /* Further reduce info section font sizes */
  .about-info-upper-heading {
    font-size: 24px;
    justify-content: center;
    padding-left: 0;
  }
  .about-info-main-heading {
    font-size: 28px;
    text-align: center;
    padding: 12px 0px;
  }

  .about-info-text {
    font-size: 14px;
    padding: 10px 15px;
  }

  /* Stack the 'Why GICS?' boxes vertically */
  #why-gics-section {
    height: auto;
    gap: 20px;
  }

  #why-gics-section > p {
    font-size: 32px;
  }

  .gics-box-container {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .gics-box {
    width: 200px;
    height: 130px;
    font-size: 26px;
  }
}

/* For Small Mobile Devices (max-width: 395px) */
/* =================================================================== */
@media (max-width: 395px) {
  /* Further reduce font sizes for very small screens */
  .about-main-heading {
    font-size: 30px;
  }
  .about-sub-heading {
    text-align: center;
    padding: 0 10px;
  }
  .about-sub-heading,
  .about-sub-heading > p > span {
    font-size: 18px;
  }

  .decorative-shape {
    width: 200px;
    height: 200px;
  }
  .shape1 {
    top: 6%;
    left: 7%;
  }
  .shape2 {
    top: 18%;
    left: 35%;
  }
  .shape3 {
    top: 34%;
    left: 10%;
  }

  /* Center the image cleanly without the shapes */
  .about-img-section {
    height: auto; /* Let height be determined by image */
    padding: 20px 0;
  }
  .director-image {
    margin-top: 20px; /* Remove all margins */
    margin-bottom: 20px; /* Remove all margins */
  }

  /* Final text adjustments */
  .about-info-upper-heading {
    font-size: 20px;
    text-align: center;
  }
  .about-info-main-heading {
    font-size: 23px;
    text-align: center;
    padding: 12px 0px;
  }
  .about-info-text {
    font-size: 13px;
  }
  #why-gics-section > p {
    font-size: 28px;
  }

  /* Make the GICS boxes slightly smaller */
  .gics-box {
    width: 200px;
    height: 130px;
    font-size: 26px;
  }
}

/* =================================================================== */
/* =================== ABOUT SECTION PART 2 MEDIA QUERIES =================== */
/* =================================================================== */

/* For Tablets and Smaller Desktops (max-width: 970px) */
/* =================================================================== */
@media (max-width: 970px) {
  /* Allow the main section to grow vertically to fit the stacked content */
  #about-section-part-2 {
    height: auto;
    padding: 50px 0; /* Add vertical padding for spacing */
  }

  /* Stack the facility and gallery sections vertically */
  .about-facility {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }

  /* Make both sections take up most of the width */
  .about-facility-left,
  .about-gallery-right {
    width: 90%;
    height: auto; /* Let height be determined by content */
  }

  /* Adjust heading sizes and alignment */
  .facility-heading,
  .gallery-heading {
    justify-content: center; /* Center the heading text */
    text-align: center;
    background: linear-gradient(to right, transparent, #74c0fc, transparent);
  }

  /* Give the carousel a specific height to maintain its shape */
  .facilities-carousel-wrapper {
    height: 60vh;
    min-height: 450px;
  }

  .gallery-section {
    height: 500px;
  }
}

/* For Small Tablets shape adjustments (max-width: 620px) */
@media (max-width: 620px) {
  .gallery-section {
    height: 350px;
  }
}

/* For Standard Mobile Devices (max-width: 480px) */
/* =================================================================== */
@media (max-width: 480px) {
  .about-facility {
    gap: 40px;
  }

  /* Use more of the screen width on mobile */
  .about-facility-left,
  .about-gallery-right {
    width: 95%;
  }

  /* Reduce heading font sizes for mobile */
  .facility-heading,
  .gallery-heading {
    font-size: 35px;
    margin-bottom: 15px; /* Reduce space below heading */
  }

  /* Adjust carousel height for smaller screens */
  .facilities-carousel-wrapper {
    height: 50vh;
    min-height: 350px;
  }

  /* Adjust caption for better readability on small screens */
  .facilities-caption {
    font-size: 13px;
    padding: 10px 15px;
    bottom: 45px;
    width: 90%;
  }

  .facilities-dots {
    bottom: 10px; /* Give dots some space from the bottom edge */
  }

  .gallery-section {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 10px;
  }

  .gallery-photo {
    width: 100%;
    height: 120px; /* Give photos a fixed height */
  }
}

/* For Small Mobile Devices (max-width: 395px) */
/* =================================================================== */
@media (max-width: 395px) {
  /* Further reduce heading font sizes */
  .facility-heading,
  .gallery-heading {
    font-size: 30px;
  }

  /* Adjust carousel height for the smallest screens */
  .facilities-carousel-wrapper {
    height: 45vh;
    min-height: 300px;
  }

  /* Make the carousel caption more compact */
  .facilities-caption {
    font-size: 12px;
    bottom: 40px;
    padding: 8px 12px;
  }

  /* Adjust the size and position of carousel controls */
  .facilities-btn {
    padding: 8px;
    font-size: 16px;
  }
  .fac-dot {
    width: 10px;
    height: 10px;
  }

  /* Adjust gallery photo height for very small screens */
  .gallery-photo {
    height: 100px;
  }
}

/* =================================================================== */
/* =================== ACHIEVEMENTS CSS & MEDIA QUERIES =================== */
/* =================================================================== */

/* For Tablets and Smaller (max-width: 970px) */
/* ================================================= */
@media (max-width: 970px) {
  #achievements {
    height: auto;
    padding: 50px 0;
  }
  .achievement-section {
    height: auto;
  }
  .achievement-header {
    font-size: 40px;
    justify-content: center;
    background: linear-gradient(to right, transparent, #ffbd59, transparent);
    padding: 12px 0px;
  }
  .achievement-body {
    gap: 25px;
  }
  .achievement-box {
    height: auto;
  }

  .achievement-pictures {
    display: block;
    height: auto;
    aspect-ratio: 16 / 9;
  }
  .achievement-photo {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
    background-size: contain;
  }
  .achievement-photo.active {
    opacity: 1;
    pointer-events: auto;
  }
  .achieve-carousel-btn {
    display: block;
  }
  .achievement-info {
    height: auto;
    min-height: 150px;
    padding: 20px;
  }
  .achievement-info h3 {
    font-size: 22px;
  }
  .achievement-info p {
    font-size: 15px;
  }
}

/* For Standard Mobile (max-width: 480px) */
/* ================================================= */
@media (max-width: 480px) {
  .achievement-section {
    width: 95vw;
  }
  .achievement-header {
    font-size: 35px;
  }
  .achievement-info h3 {
    font-size: 22px;
  }
  .achievement-info p {
    font-size: 14px;
  }
}

/* For Small Mobile (max-width: 395px) */
/* ================================================= */
@media (max-width: 395px) {
  #achievements {
    padding: 30px 0;
  }
  .achievement-header {
    font-size: 30px;
  }
  .achievement-info {
    padding: 15px;
    min-height: 120px;
  }
  .achievement-info h3 {
    font-size: 20px;
  }
}

/* =================================================================== */
/* =================== TESTIMONIALS MEDIA QUERIES (COMPLETE) =================== */
/* =================================================================== */

/* For Tablets and Smaller (max-width: 970px) */
/* =================================================================== */
@media (max-width: 970px) {
  /* Make the overall section height dynamic to fit stacked content */
  #testimonials {
    height: auto;
    padding: 50px 0;
  }
  .testimonial-section {
    height: auto;
  }

  /* Stack the main left and right sections vertically */
  .testimonial-body {
    flex-direction: column;
    gap: 40px;
  }

  .testimonial-left,
  .testimonial-right {
    width: 100%;
  }

  .testimonial-header {
    background: linear-gradient(to right, transparent, #74c0fc, transparent);
    font-size: 40px;
  }

  /* Center-align headings for a cleaner mobile look */
  .testimonial-header,
  .testimonial-left-heading,
  .testimonial-right-heading {
    justify-content: center;
    text-align: center;
    padding: 5px 0px;
  }
  .testimonial-left-heading,
  .testimonial-right-heading {
    background: linear-gradient(to right, transparent, #ffbd59, transparent);
  }
  /* --- REVISED "Our Achievers" Section for Mobile (2-Row Horizontal Scroll) --- */
  .testimonial-left-body {
    display: grid;
    grid-auto-flow: column; /* Key property for horizontal layout */
    grid-template-rows: 1fr 1fr; /* Creates the two rows */
    grid-template-columns: none; /* Let card width define the columns */
    overflow-x: auto; /* Enable horizontal scrolling */
    overflow-y: hidden; /* Disable vertical scrolling */
    height: auto; /* Set a fixed height to contain two rows of cards */
    padding: 20px 15px;
    gap: 20px;
  }

  .testimonial-left-body::-webkit-scrollbar {
    height: 8px;
  }
  .testimonial-left-body::-webkit-scrollbar-track {
    background: transparent;
  }
  .testimonial-left-body::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, #00aaff, #00569e);
    border-radius: 20px;
  }

  /* Redesigned HORIZONTAL testimonial card */
  .testimonial-card-section {
    width: 380px;
    height: 213px;
    position: relative;
    display: block;
    padding: 0;
  }

  /* Reposition card elements to match original design */
  .tPfp {
    position: absolute;
    top: 15px;
    left: 15px;
    width: 80px;
    height: 80px;
    border-width: 3px;
    z-index: 10;
  }

  .tBanner {
    position: absolute;
    top: 5px;
    right: 0;
    width: auto;
    height: auto;
    padding: 5px 0px 0px 20px;
    justify-content: flex-end;
  }
  .tBanner img {
    height: 35px;
    width: auto;
    padding-right: 15px;
  }

  .tCdName {
    position: absolute;
    top: 46px;
    left: 90px;
    width: 65%;
    height: 25px;
    padding: 0 10px;
    font-size: 0.8em;
    font-weight: 700;
    justify-content: center;
    align-items: center;
    background: linear-gradient(to right, #f7941e, transparent);
  }

  .tDateofjoin {
    position: absolute;
    top: 80px;
    left: 170px;
    width: 55%;
    height: auto;
    padding-right: 5px;
    font-size: 0.6em;
    background: linear-gradient(to left, #01aaff, transparent);
  }

  .tinfo {
    position: absolute;
    top: 110px;
    left: 10px;
    right: 10px;
    bottom: 10px;
    height: auto;
    width: auto;
    text-align: justify;
    padding: 5px;
  }
  .tinfo p {
    font-size: 13px;
    line-height: 1.3;
    overflow: auto;
  }
  .tinfo span {
    font-size: 20px;
  }

  /* --- "What Our Students Say" Video & Google Review Section --- */
  .reviews-videos {
    flex: none;
    height: 480px;
    max-height: 50vh;
    border-top-left-radius: 22px;
  }
  .reviews-google {
    height: 250px;
    border-bottom-right-radius: 22px;
  }
  .review-card img {
    max-height: 220px;
  }

  /* Adjust footer text */
  .testimonial-footer {
    font-size: 20px;
    padding: 15px;
    text-align: center;
  }
}

/* For Standard Mobile Devices (max-width: 480px) */
/* =================================================================== */
@media (max-width: 480px) {
  #testimonials {
    padding: 40px 0;
  }
  .testimonial-section {
    width: 95vw;
  }

  .testimonial-header {
    font-size: 40px;
  }

  .testimonial-left-heading,
  .testimonial-right-heading {
    font-size: 28px;
  }

  .testimonial-left-body {
    gap: 15px;
  }

  .testimonial-card-section {
    width: 375px;
    height: 200px;
  }

  .tPfp {
    width: 80px;
    height: 80px;
    top: 10px;
    left: 10px;
    z-index: 5;
  }
  .tCdName {
    left: 70px;
    top: 50px;
    font-size: 0.6em;
  }
  .tDateofjoin {
    left: 167px;
    top: 80px;
    font-size: 0.5em;
  }
  .tinfo {
    top: 100px;
  }
  .tinfo p {
    font-size: 12px;
  }

  .reviews-videos {
    height: 400px;
  }
  .reviews-google {
    height: 200px;
  }
  .review-card img {
    max-height: 180px;
  }

  .play-pause-btn {
    width: 45px;
    height: 45px;
    font-size: 20px;
  }

  .testimonial-footer {
    font-size: 18px;
    padding: 10px;
  }
}

/* For Small Mobile Devices (max-width: 395px) */
/* =================================================================== */
@media (max-width: 395px) {
  .testimonial-left-heading,
  .testimonial-right-heading {
    font-size: 24px;
  }

  .testimonial-header {
    font-size: 32px;
  }

  .testimonial-card-section {
    width: 300px;
    height: 200px;
  }

  .tCdName {
    left: 80px;
    top: 50px;
    font-size: 0.6em;
  }
  .tPfp {
    width: 80px;
    height: 80px;
    top: 10px;
    left: 10px;
    z-index: 5;
  }
  .tDateofjoin {
    left: 134px;
    top: 80px;
    font-size: 0.5em;
  }
  .tinfo {
    top: 100px;
  }
  .tinfo p {
    font-size: 12px;
  }

  .reviews-videos {
    height: 350px;
  }
  .reviews-google {
    height: 180px;
  }
  .review-card img {
    max-height: 150px;
  }

  .testimonial-footer {
    font-size: 15px;
    padding: 10px;
  }
}

/* =================================================================== */
/* ======================= FOOTER MEDIA QUERIES ====================== */
/* =================================================================== */

/* For Tablets and Smaller Laptops (max-width: 970px) */
/* =================================================================== */
@media (max-width: 970px) {
  /* Adjust overall footer for vertical stacking */
  #footer {
    height: auto; /* Allow height to grow with content */
  }

  .footer-head {
    font-size: 38px;
    height: 80px;
  }

  /* Change main body to a vertical layout */
  .footer-body {
    flex-direction: column;
    height: auto;
  }

  /* --- Re-order and restyle the main containers --- */
  .map-container,
  .quick-links-container,
  .institute-info-container {
    width: 100%;
    padding: 20px;
  }

  /* 1. Institute Info (moves to the top) */
  .institute-info-container {
    order: 1;
    background: rgba(255, 255, 255, 0.25);
    /* border-radius: 16px; */
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5.7px);
    -webkit-backdrop-filter: blur(5.7px);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #000000;
  }
  .institute-info-box {
    background-color: transparent;
    gap: 10px;
  }
  .institute-contact {
    border-top: 2px solid rgba(255, 255, 255, 0.5); 
    padding-top: 10px;/* Lighter border for contrast */
  }
  .institute-name p {
    font-size: 1.5em;
  }
  .institute-address p,
  .institute-contact p {
    font-size: 1.1em;
  }

  /* 2. Quick Links & Socials (moves to the middle) */
  .quick-links-container {
    order: 2;
    color: #000000;
    text-align: center;
    padding-top: 20px;
  }
  .quick-links-container h3 {
    color: #000000;
    font-size: 22px;
  }
  .footer-links {
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 20px;
    margin-bottom: 30px;
  }
  .footer-links a {
    color: #000000;
  }
  .footer-links a:hover {
    color: #74c0fc;
  }

  /* Make social links horizontal and icon-focused */
  .footer-web-links {
    flex-direction: row;
    justify-content: center;
    gap: 20px;
    height: auto;
    padding: 0;
  }
  .footer-web-links > li{
    padding: 0;
  }
  .footer-web-links > li > a > button {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    font-size: 0; 
    gap: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
  }
  .footer-web-links > li > a > button > img {
    text-align: center;
  }

  /* 3. Map (moves to the bottom) */
  .map-container {
    order: 3;
    padding: 30px 20px;
  }
  .map-box {
    width: 100%;
    max-width: 600px; /* Prevent it from being too wide */
    height: 350px;
    margin: 0 auto; /* Center the map */
  }
}

/* For Standard Mobile Devices (max-width: 480px) */
/* =================================================================== */
@media (max-width: 480px) {
  .footer-head {
    font-size: 30px;
    height: 70px;
  }

  /* Adjust padding for smaller screens */
  .map-container,
  .quick-links-container,
  .institute-info-container {
    padding: 25px 15px;
  }

  .institute-name p {
    font-size: 1.3em;
  }
  .institute-address p,
  .institute-contact p {
    font-size: 1em;
  }
  .institute-logo img {
    min-width: 80px;
    max-width: 100px;
    min-height: 80px;
    max-height: 100px;
  }

  .quick-links-container h3 {
    font-size: 20px;
  }
  .footer-web-links {
    gap: 15px;
  } /* Reduce gap between social icons */

  .map-box {
    height: 300px;
  }
  .footer-foot{
    text-align: center;
    padding: 5px;
  }
}

/* For Small Mobile Devices (max-width: 395px) */
/* =================================================================== */
@media (max-width: 395px) {
  .footer-head {
    font-size: 26px;
    height: 60px;
  }

  .institute-name p {
    font-size: 1.2em;
  }
  .institute-address p,
  .institute-contact p {
    font-size: 0.8em;
  }

  /* Make social icons slightly smaller */
  .footer-web-links > li > a > button {
    width: 45px;
    height: 45px;
  }
  .footer-web-links > li > a > button > img {
    width: 24px;
    height: 24px;
  }
}


/* =================================================================== */
/* =================== CONTACT MODAL MEDIA QUERIES =================== */
/* =================================================================== */

/* For Tablets and Larger Phones (max-width: 970px) */
/* =================================================================== */
@media (max-width: 970px) {
    .contact-content {
        width: 80vw; /* Make the modal wider on smaller screens */
        height: auto; /* Allow height to adjust to content */
        max-height: 90vh; /* Prevent it from being too tall */
        min-width: unset; /* Remove the minimum width constraint */
    }

    .contact-details {
        height: auto;
        padding: 20px 10px;
    }
    
    .ct-btn-name p {
        font-size: 1.1em;
    }
    .ct-btn-address p,
    .ct-btn-contact p {
        font-size: 0.9em;
    }
    
    /* Reduce the size and spacing of social icons */
    .contact-socials {
        height: auto;
        padding: 25px 0;
        gap: 20px;
    }
    .contact-socials a {
        width: 56px;
        height: 56px;
    }
    .contact-socials a i {
        font-size: 1.8em; /* Scale down the FontAwesome icon */
    }

    /* Adjust the hover tooltip position for smaller icons */
    .contact-socials a:hover::before {
        transform: translateY(-58px) rotate(0);
    }
    .contact-socials a:hover::after {
        transform: translateY(-35px) rotate(0);
    }

    .foot-foot-ctbtn {
        height: auto;
        padding: 15px 0;
        font-size: 1.1em;
    }
}

/* For Standard Tab Devices (max-width: 620px) */
@media (max-width: 620px) {
    .close-btn {
      top: 10px;
      right: 10px;
      font-size: 24px;
    }
}

/* For Standard Mobile Devices (max-width: 480px) */
/* =================================================================== */
@media (max-width: 480px) {
    .contact-content {
        width: 90vw; /* Use more of the screen width */
        padding: 15px;
    }

    .ct-btn-logo > img {
        width: 50px;
        height: 50px;
    }

    .ct-btn-name p {
        font-size: 1em; /* Further reduce font size */
    }
    .ct-btn-address p,
    .ct-btn-contact p {
        font-size: 0.8em;
    }

    /* Make icons even more compact */
    .contact-socials {
        padding: 20px 0;
        gap: 15px;
    }
    .contact-socials a {
        width: 48px;
        height: 48px;
    }
    .contact-socials a i {
        font-size: 1.5em;
    }

    /* Re-adjust tooltips */
    .contact-socials a:hover::before {
        transform: translateY(-52px) rotate(0);
    }
    .contact-socials a:hover::after {
        transform: translateY(-29px) rotate(0);
    }

    .foot-foot-ctbtn {
        padding: 12px 0;
        font-size: 1em;
    }
    .close-btn {
      top: 10px;
      right: 10px;
      font-size: 20px;
    }
}


/* For Small Mobile Devices (max-width: 395px) */
/* =================================================================== */
@media (max-width: 395px) {
    .contact-content {
        width: 92vw; /* Maximize width */
    }
    
    .contact-info-section{
      width: 95%;
      justify-self: center
    }
    .ct-btn-name p {
        font-size: 0.95em;
    }
    .ct-btn-address p,
    .ct-btn-contact p {
        font-size: 0.75em;
    }

    .contact-socials {
        gap: 12px;
        /* Allow icons to wrap if the screen is extremely narrow */
        flex-wrap: wrap;
    }
    .contact-socials a {
        width: 45px;
        height: 45px;
    }
    .contact-socials a i {
        font-size: 1.4em;
    }
}