body {
  background-color: #f3f8fc;
  color: #333;
}



/* Header */
header {
  background-color: #0d47a1;
  color: white;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.carousel-caption {
  background: rgba(0, 76, 95, 0.5);
  border-radius: 12px;
  padding: 20px;
}

.carousel-caption h5 {
  font-size: 2rem;
  font-weight: bold;
  color: #fff;
}

.carousel-caption p {
  color: #eee;
}
.btn-outline-primary :hover{
    color:white !important
    
}


/* Header (Retained) */
header {
    background-color: #0d47a1;
    color: white;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

itext:hover{
    color: white !important;
}
.navbar {
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    transition: top 0.3s ease-in-out; 
}

/* [ ... (All your subsequent CSS rules go here) ... ] */

/* Start Photo & Video Gallery ===*/
.gallery-grid {
  cursor: pointer;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgb(0 0 0 / 0.1);
  transition: transform 0.3s ease;
  border: 6px solid white; /* White border */
}

.gallery-item img {
  width: 100%;
  height: 220px; /* fixed height for uniform boxes */
  display: block;
  object-fit: cover; /* crop images nicely */
}

.gallery-item:hover {
  transform: scale(1.05);
}

.video-item .play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 48px;
  color: rgba(255, 255, 255, 0.85);
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
  pointer-events: none;
}

/* Meta info under images/videos */
.gallery-meta {
  background: #fff;       /* white background */
  color: #666;            /* light gray text */
  padding: 8px;
  font-size: 0.9rem;
  text-align: center;
  border-top: 1px solid #ddd;
}

.gallery-title {
  font-size: 1rem;
  font-weight: bold;
  margin: 0;
  color: #444;            /* darker gray for title */
}

.gallery-info {
  margin: 0;
  font-size: 0.85rem;
}

/* Fade-in effect */
.fade-in {
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

/* Lightbox Styles */
.lightbox {
  position: fixed;
  z-index: 1050;
  left: 0; top: 0;
  width: 100vw; height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.lightbox-content {
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 10px;
  overflow: hidden;
  background: #000;
}

.lightbox-content img,
.lightbox-content iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}

.lightbox .close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 2.5rem;
  color: white;
  cursor: pointer;
  user-select: none;
}
/* End SECTION Photo & Video Gallery ============================================================*/





/* IMPORTANT! section 'School About section' does not use custom css instead it uses bootstrap */

/* Make About section image fit and scale nicely */

/* тнРтнРтнРтнРтнР ===================== Start: About Section Multiple Image Fade Styles */

  .image-fade-container {
    position: relative;
    width: 100%;
    height: 100%;
  }

  .image-fade-container img.fade-image {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 350px;
    border-radius: 0.5rem;
    box-shadow: 0 4px 8px rgb(0 0 0 / 0.1);
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease-in-out;
  }

  .image-fade-container img.fade-image.active {
    opacity: 1;
    z-index: 2;
  }

  /* Fade-in base for right text */
  .fade-in {
    opacity: 0;
    transform: translateY(25px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }

  .fade-in.show {
    opacity: 1;
    transform: translateY(0);
  }

  .delay-2 {
    transition-delay: 0.6s;
  }

.section-title {
  position: relative;
  display: inline-block;   /* Make the h2 shrink to text width */
  padding-bottom: 8px;
  cursor: default;
  /* Remove margin: 0 auto; */
}

.section-title::after {
  content: "";
  position: absolute;
  width: 0;
  height: 3px;
  left: 50%;
  bottom: 0;
  background: #28a745;
  transition: width 0.4s ease, left 0.4s ease;
  border-radius: 2px;
  transform: translateX(-50%);
}

.section-title:hover::after,
.section-title:focus::after {
  width: 100%;
  left: 50%;
  transform: translateX(-50%);
}

  /* тнР End About section =====================================================================================*/






/* тнР =====================================Start: Academic Calendar / Important Dates */

.academic-calendar-section {
  border-radius: 12px;
  padding: 3rem 1rem;
}

.calendar-title {
  font-size: 2rem;
  color: #2c3e50;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
  position: relative;
}

.calendar-title::after {
  content: "";
  width: 60px;
  height: 4px;
  background: #007bff;
  display: block;
  margin: 0.5rem auto 0;
  border-radius: 2px;
}

.calendar-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding-top: 2rem;
}

.calendar-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 25px rgba(0,0,0,0.15);
}

/* Circle Icon Base */
.calendar-icon {
  width: 75px;
  height: 75px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  margin: 0 auto 1rem;
  color: white;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: bounceIn 1s ease;
}

/* Icon Color Variants */
.icon-blue {
  background: linear-gradient(135deg, #007bff, #00aaff);
}

.icon-green {
  background: linear-gradient(135deg, #28a745, #48d168);
}

.icon-red {
  background: linear-gradient(135deg, #dc3545, #ff5c6c);
}

.icon-orange {
  background: linear-gradient(135deg, #e56700, #ff9a3e); /* a little darker → a little lighter */
}

.icon-purple {
  background: linear-gradient(135deg, #5a2ea6, #9b7cf2)!important; /* a little darker → a little lighter */
}

/* Bounce animation for icons */
@keyframes bounceIn {
  0% { transform: scale(0.5); opacity: 0; }
  60% { transform: scale(1.1); opacity: 1; }
  80% { transform: scale(0.95); }
  100% { transform: scale(1); }
}

/* Typing effect styling */
.typing-date {
  font-weight: 500;
  font-size: 0.95rem;
  white-space: nowrap;
  overflow: hidden;
  border-right: 2px solid #007bff;
}



/* тнР End: Academic Calendar / Important Dates =================================================*/


/* тнРтнРтнРтнРтнР=====Start Exam Routine ===== */

/* ==================== CSS FOR BEAUTY & ANIMATION ==================== */

/* ==================== CSS FOR BEAUTY & ANIMATION ==================== */

/* Fade-in for title/card */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeInUp 0.9s ease forwards;
}
@keyframes fadeInUp {
  to { opacity: 1; transform: translateY(0); }
}

/* Smooth row entrance */
.fade-row {
  opacity: 0;
  transform: translateX(-30px);
  animation: fadeRow 0.8s ease forwards;
}
.fade-row:nth-child(1) { animation-delay: 0.2s; }
.fade-row:nth-child(2) { animation-delay: 0.4s; }
.fade-row:nth-child(3) { animation-delay: 0.6s; }
@keyframes fadeRow {
  to { opacity: 1; transform: translateX(0); }
}


.table td { background: #f9f9f9; }

/* Soft card wrapper */
.card-soft {
  border-radius: 12px;
  background: #fff;
}

/* тнР End Exam Routine===================================================== */


/* =====Start TIMELINE STYLES ===== */


.timeline {
  position: relative;
  padding-left: 30px;
  border-left: 3px solid #00bcd4;
}

.timeline-item {
  position: relative;
  margin-bottom: 40px;
}

.timeline-date {
  position: absolute;
  left: -130px;
  top: 0;
  width: 100px;
  text-align: right;
  font-weight: bold;
  color: #00bcd4;
}

.timeline-content {
  background: #fff;
  padding: 15px 20px;
  border-radius: 8px;
  border-left: 5px solid #00bcd4;
}

.timeline-content h5 {
  margin-bottom: 5px;
}

.timeline-content p {
  margin: 0;
}

@media (max-width: 768px) {
  .timeline {
    padding-left: 15px;
    border: none;
  }

  .timeline-date {
    position: relative;
    left: 0;
    text-align: left;
    margin-bottom: 5px;
  }
}

/* =====End TIMELINE STYLES ===== */



/* SECTION START Class Attendance Progress */

.progress-circle-wrap {
  text-align: center;
  margin-bottom: 1rem;
}

.progress-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  line-height: 100px;
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  margin: 0 auto;
  position: relative;
  background: conic-gradient(#007bff 0% 100%, #e0e0e0 100% 100%);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transition: background 0.5s ease;
}

.progress-circle.present {
  background: conic-gradient(#28a745 0% 100%, #e0e0e0 100% 100%);
}

/* Different colors if you want */
.progress-circle.present.class1 {
  background: conic-gradient(#28a745 0% 100%, #e0e0e0 100% 100%);
}
.progress-circle.present.class2 {
  background: conic-gradient(#ffc107 0% 100%, #e0e0e0 100% 100%);
}
.progress-circle.present.class3 {
  background: conic-gradient(#dc3545 0% 100%, #e0e0e0 100% 100%);
}

.progress-circle span {
  position: absolute;
  width: 100%;
  text-align: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  user-select: none;
  pointer-events: none;
}

/* ===================== Start: 3D Text Effect for Class Names and Numbers ===================== */

h4.mb-4 {
  /* 3D effect for class names */
  color: #222;
  font-weight: 900;
  text-shadow:
    1px 1px 0 #aaa,
    2px 2px 0 #999,
    3px 3px 0 #888,
    4px 4px 0 #777;
}

.progress-circle span {
  /* 3D effect for numbers inside the circles */
  color: #fff;
  font-weight: 900;
  text-shadow:
    1px 1px 2px #000,
    2px 2px 4px #444,
    3px 3px 6px #222;
}

/* ===================== End: 3D Text Effect for Class Names and Numbers ===================== */

.progress-circle-wrap p {
  margin-top: 0.5rem;
  font-weight: 600;
  color: #333;
  font-size: 1rem;
}

.container.py-5 {
  max-width: 1140px;
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
}

.p-4.bg-white.shadow.rounded {
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  border-radius: 8px;
  padding: 1.5rem;
  height: 100%;
}

@media (max-width: 767px) {
  .progress-circle {
    width: 80px;
    height: 80px;
    line-height: 80px;
    font-size: 20px;
  }
}

/*End SECTION: Class Attendance Summary================================================*/


/* Mark Entry css=========================Start  */


  tbody tr:hover td {
    background-color: #f1f7ff;
    transition: 0.3s;
  }
  tbody tr td:last-child:hover {
    background-color: #d4edda !important;
    font-weight: bold;
    transition: 0.3s;
  }

  /* End Mark Entry style section */



/*  Start SECTION : Class-wise Student Result Summary */

.class-card { transition: all 0.3s ease; }
  .class-card:hover { transform: translateY(-5px); box-shadow: 0 12px 20px rgba(0,0,0,0.12); }
  .progress-wrapper { width: 100%; }
  .progress-bar-container { height: 20px; background-color: #e0e0e0; border-radius: 10px; overflow: hidden; }
  .progress-bar { height: 100%; width: 0%; border-radius: 10px; transition: width 2s ease; }
  .progress-bar.total { background: linear-gradient(90deg, #4facfe, #00f2fe); }
  .progress-bar.passed { background: linear-gradient(90deg, #43e97b, #38f9d7); }
  .progress-bar.failed { background: linear-gradient(90deg, #ff416c, #ff4b2b); }
  .progress-number { font-weight: 600; color: #333; }


/*                                          */

/* ==================== CLASS-WISE RESULTS STYLES START ==================== */
.result-box {
  background: linear-gradient(135deg, #ffffff, #f8f9fa);
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.result-box:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 25px rgba(0,0,0,0.12);
}

.circle {
  text-align: center;
}
.circular-chart {
  width: 80px;
  height: 80px;
  transform: rotate(-90deg); /* Rotates the chart so it starts from top */
}
.circle-bg {
  fill: none;
  stroke: #eee;
  stroke-width: 3;
}
.circle-progress {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 100; /* Fully hidden until animated */
  transition: stroke-dashoffset 1.2s ease;
}
.blue { stroke: #0d6efd; }
.green { stroke: #28a745; }
.red { stroke: #dc3545; }

/* Text number inside the circle */
.count-number {
  font-weight: bold;
  font-size: 10px;
  fill: #333; /* Number color */
  text-anchor: middle;
  alignment-baseline: middle;
  font-family: 'Poppins', sans-serif;
}
/*  END CLASS-WISE RESULTS STYLES  =========================================================== */

/* Form Fields */
form input, form select {
  border: 1px solid #ccddee;
  border-radius: 8px;
}

form button:hover {
  box-shadow: 0 4px 10px rgba(0, 128, 0, 0.2);
  transform: translateY(-1px);
  transition: 0.3s ease;
}
.nav-pills .nav-link {
  border-radius: 50px;
  padding: 10px 25px;
  margin: 0 8px;
  font-weight: 500;
}

.nav-pills .nav-link.active {
  background-color: #dc3545;
}

.tab-content form input,
.tab-content form select {
  border-radius: 8px;
}
.sidebar {
  position: sticky;
  top: 20px;
  max-height: 90vh;
  overflow-y: auto;
  border-left: 5px solid #00bcd4;
}

.sidebar h4 {
  font-size: 1.2rem;
}

.sidebar ul {
  padding-left: 0;
}

.sidebar li {
  font-size: 0.95rem;
}
section ul li {
  font-size: 1rem;
  margin-bottom: 8px;
  transition: all 0.3s ease;
}





  /* Make background print as well */
 @media print {
  body {
    -webkit-print-color-adjust: exact !important; /* Chrome/Safari */
    print-color-adjust: exact !important;        /* Standard syntax */
  }
    .no-print {
      display: none !important;
    }
  }

/* тнР END Class-wise Student Result Summary========================================= */




/* тнРтнРтнРтнРтнР=========================== MARKSHEET STYLING */

/* ==================== PAGE SETTINGS (YOUR CSS KEPT) ==================== */
@page {
  size: Letter; /* Fix page size to Letter (8.5x11 in) */
  margin: 20mm;
}
body {
  font-family: "Segoe UI", Tahoma, sans-serif;
  background-size: cover;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  margin: 0;
  padding: 0;
}
/* Your .marksheet block mapped to our #marksheet too */
.marksheet, #marksheet {
  background: rgba(255, 255, 255, 0.92); /* white overlay for readability */
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0px 0px 15px rgba(0,0,0,0.3);
  max-width: 900px;
  margin: 40px auto;
}

/* Optional header class from your CSS (not strictly required here) */
.header {
  text-align: center;
  border-bottom: 3px solid #007bff;
  padding-bottom: 10px;
  margin-bottom: 20px;
}
.header h2 {
  margin: 0;
  font-size: 28px;
}

/* ==================== STUDENT INFO ==================== */
.student-info { margin-bottom: 20px; }
.student-info p { margin: 4px 0; font-size: 15px; }

/* ==================== TABLE DESIGN ==================== */
table { width: 100%; border-collapse: collapse; margin-bottom: 25px; }
th, td { padding: 10px; text-align: center; font-size: 14px; }
th { color: #fff; font-size: 15px; }
tr:nth-child(even) { background: #f9f9f9; }
tr:hover { background: #ffe599; }

/* ==================== FOOTER ==================== */
.footer {
  text-align: center;
  font-size: 13px;
  margin-top: 30px;
  border-top: 2px solid #007bff;
  padding-top: 8px;
  color: #555;
}

/* ====== Your earlier design touches for #marksheet background frame ====== */
#marksheet {
  /* If you want a decorative inside background for the marksheet box too: */
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  border: 8px double #4a90e2;
}

/* Attendance pill */
.attendance-summary {
  margin-top: 15px;
  font-weight: bold;
  text-align: center;
  background-color: #f8f9fa;
  padding: 8px;
  border: 1px solid #ddd;
}

/* ==================== PRINT STYLING (YOUR CSS KEPT) ==================== */
@media print {
  body {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    /* Print background too */
    background-size: cover !important;
  }
  .marksheet, #marksheet {
    box-shadow: none;
    background: rgba(255,255,255,0.85); /* keep slight overlay so text stays readable */
    margin: 0 !important; /* fit the Letter page */
    max-width: unset;     /* allow full page width under @page */
  }

  /* Force Letter with tight margins for the #marksheet content area */
  #marksheet {
    position: absolute;
    left: 0; top: 0;
    width: calc(8.5in - 40mm);
    min-height: calc(11in - 40mm);
  }

  .no-print { display: none !important; }
}


/* тнРend section =================================================================================*/



/* IMPORTANT! section 'Student Marksheet' does not use custom css instead it uses bootstrap */






/* тнРтнРтнРтнРтнР==============================Start ACADEMIC SECTION Programs & Courses STYLES ====================== */

/* Section Background */
#academics { 
  background: #fff; 
  padding: 60px 0;
}

/* Filter Buttons */
#academics .filter-btn {
  margin: 0 5px 10px 5px;
  border-radius: 8px;
  transition: all 0.3s ease;
}
#academics .filter-btn.active {
  background: linear-gradient(90deg,#00bcd4,#00796b);
  color: #fff;
  border: none;
  box-shadow: 0 6px 18px rgba(0,188,212,0.14);
}

/* Cards тАФ white border around full card */
#academics .card {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #f7f8ff !important ;        /* тЬЕ full card white border */
  box-shadow: 0 6px 16px rgba(36, 36, 36, 0.12);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}




/* Card Images тАФ no border now */
#academics .card-img-top {
  height: 180px;
  object-fit: cover;
  border: 6px solid #ffffff; 
  border-radius: 10px;   /* keep image soft corners */
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  transition: transform 0.3s ease;
}


/* Card Body */
#academics .card-body {
  padding: 15px;
  border: 6px solid #ffffff; 

}
#academics .card-title {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 10px;
}
#academics .card-text {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.4;
}

/* Small visual flourish for list */
#academics ul li { 
  margin-bottom: 6px; 
}

/* Responsive */
@media (max-width: 768px) {
  #academics .card-img-top {
    height: 150px;
  }
}

/* тнР End ACADEMIC SECTION Programs & Courses STYLES ============================================================= */



/* SECTION START: College Function Highlights does not use css instead it uses bootstrap*/

  
/* тнРтнРтнРтнРтнР ====================== Start : College Function Highlights Styles */

  /* Image styling with object-fit cover to maintain aspect ratio */

  .function-img {
    height: 300px;
    object-fit: cover;
    transition: transform 0.3s ease;
  }

  /* Zoom effect on image hover */
  .media-box:hover .function-img {
    transform: scale(1.05);
  }

  /* Overlay styling */
  .media-overlay h4 {
    font-weight: 700;
    font-size: 1.5rem;
  }

  /* Function description text styling */
  .function-description p {
    font-size: 1.1rem;
    color: #444;
  }

  /* Responsive vertical alignment for alternating layout */
  @media (min-width: 768px) {
    /* Alternate the order for even items */
    #college-functions .order-md-1 {
      order: 1;
    }
    #college-functions .order-md-2 {
      order: 2;
    }
  }

    /* Image & Video Frame */
    .media-box {
      border: 5px solid #fff;
      box-shadow: 0px 4px 15px rgba(0,0,0,0.1);
      border-radius: 10px;
      overflow: hidden;
      background: #fff;
    }
    /* Back to home button gradient */
    .btn-gradient {
      background: linear-gradient(90deg, #ff7e5f, #feb47b);
      color: white;
      border: none;
      border-radius: 30px;
      font-weight: bold;
      transition: all 0.3s ease;
    }
    .btn-gradient:hover {
      transform: scale(1.05);
      background: linear-gradient(90deg, #feb47b, #ff7e5f);
    }

  /* Fade animations handled by AOS (Animate On Scroll) library - included in HTML via data-aos attributes */

  /* тнР End College Function Highlights Styles */

header {
  position: sticky;
  top: 0;
  z-index: 1000;
}



 /* ========================Optional CSS  */

  .dashboard-card {
    border-radius: 12px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
  }
  .dashboard-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  }



/* ================================= */


/* тнРтнРтнРтнРтнР start Online Admission Form Section Styles with animations & responsiveness --- */

  #admission-form {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    animation: fadeIn 1s ease forwards;
    position: relative;
  }

   /* Watermark style */
  #admission-form {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    position: relative;
  }
  #admission-form .watermark-img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 250px;
    opacity: 0.08;
    transform: translate(-50%, -50%);
    pointer-events: none;
    user-select: none;
    z-index: 1;
  }

  #admission-form .form-label {
    font-weight: 600;
    color: #198754; /* Bootstrap success green */
    transition: color 0.3s ease;
    display: inline;
  }

  #admission-form .form-label:hover {
    color: #146c43;
  }

  #admission-form h2 {
    font-family: 'Poppins', sans-serif;
    letter-spacing: 1px;
    margin-bottom: 2rem;
    text-shadow: 1px 1px 4px rgba(25, 135, 84, 0.3);
  }

  #admission-form h4 {
    border-left: 5px solid #198754;
    padding-left: 12px;
    margin-bottom: 1.2rem;
    font-weight: 700;
    color: #198754;
    transition: border-color 0.3s ease;
  }

  #admission-form h4:hover {
    border-color: #146c43;
  }

  #admission-form .card {
    border-radius: 12px;
    background: #fff;
    padding: 2rem;
    box-shadow: 0 6px 15px rgba(25, 135, 84, 0.2);
    transition: box-shadow 0.3s ease;
  }

  #admission-form .card:hover {
    box-shadow: 0 8px 25px rgba(25, 135, 84, 0.35);
  }

  #admission-form input[type="text"],
  #admission-form input[type="email"],
  #admission-form input[type="tel"],
  #admission-form input[type="date"],
  #admission-form input[type="time"],
  #admission-form input[type="file"],
  #admission-form select,
  #admission-form textarea {
    border-radius: 8px;
    border: 1.5px solid #ced4da;
    padding: 10px 12px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    font-size: 1rem;
  }

  #admission-form input[type="text"]:focus,
  #admission-form input[type="email"]:focus,
  #admission-form input[type="tel"]:focus,
  #admission-form input[type="date"]:focus,
  #admission-form input[type="time"]:focus,
  #admission-form input[type="file"]:focus,
  #admission-form select:focus,
  #admission-form textarea:focus {
    border-color: #198754;
    box-shadow: 0 0 8px rgba(25, 135, 84, 0.4);
    outline: none;
  }

  #admission-form hr {
    border-top: 2px solid #198754;
    opacity: 0.25;
    margin-top: 2rem;
    margin-bottom: 2rem;
  }

  #admission-form button.btn-primary {
    background-color: #198754;
    border: none;
    font-weight: 600;
    border-radius: 8px;
    padding: 10px 25px;
    transition: background-color 0.3s ease, transform 0.2s ease;
    box-shadow: 0 3px 10px rgba(25, 135, 84, 0.3);
  }

  #admission-form button.btn-primary:hover:not(:disabled) {
    background-color: #146c43;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(25, 135, 84, 0.5);
  }

  #admission-form button.btn-primary:disabled {
    background-color: #a9d5b8;
    cursor: not-allowed;
  }

  #admission-form button.btn-success {
    background-color: #20c997;
    border: none;
    font-weight: 600;
    border-radius: 8px;
    padding: 10px 25px;
    transition: background-color 0.3s ease, transform 0.2s ease;
    box-shadow: 0 3px 10px rgba(32, 201, 151, 0.3);
  }

  #admission-form button.btn-success:hover:not(:disabled) {
    background-color: #198754;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(25, 135, 84, 0.5);
  }

  #admission-form button.btn-success:disabled {
    background-color: #a1d9c7;
    cursor: not-allowed;
  }

  /* Responsive tweaks */
  @media (max-width: 767px) {
    #admission-form .card {
      padding: 1.5rem;
    }
  }

  @media (max-width: 575px) {
    #admission-form .row.g-3 > [class*='col-md-'] {
      flex: 0 0 100%;
      max-width: 100%;
    }
    #admission-form button {
      width: 100%;
    }
  }


/* тнР End Online Admission Form Section Styles with animations & responsiveness ===========================--- */

  

/* тнРтнРтнРтнРтнР======================== student id  тЬЕ CSS (only card visible in print mode) */

@media print {
  body * {
    visibility: hidden !important; /* hide everything */
  }
  #idCard, #idCard * {
    visibility: visible !important; /* show only card */
  }
  #idCard {
    position: absolute;
    top: 0;
    left: 0;
    width: 86mm;   /* standard ID card width */
    height: 54mm;  /* standard ID card height */
    border: 1px solid #000;
    padding: 8px;
    box-sizing: border-box;
  }
}


/* тнР============================================ */



/* тнРтнРтнРтнРтнР====================== Start: Dashboard Section CSS  */

/* Dashboard Cards */
.dashboard-card {
  background-color: #ffffff;
  border: 1px solid #dfefff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-align: center;
  padding: 20px;
  border-radius: 10px;
}
.dashboard-card:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 15px rgba(0,191,255,0.3);
}
.dashboard-card .card-icon {
  font-size: 40px;
  margin-bottom: 10px;
}
.dashboard-card .card-title {
  font-size: 1.2rem;
  font-weight: 600;
}

/* Members Modal */
#membersModal .modal-body {
  padding-top: 0;
}

/* Member Items */
#membersModal .member-item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px;
  background-color: #ffffff;
  border: 6px solid #ffffff; /* тЬЕ White 6px border */
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  animation: dashboardFadeIn 0.6s ease forwards;
}
#membersModal .member-item:hover {
  transform: scale(1.02);
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

/* Member Images */
#membersModal .member-item img {
  width: 150px;
  height: 150px;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 8px;
}
#membersModal .member-item.student img {
  border-radius: 50%;
}

/* Member Text Content */
#membersModal .member-item > div {
  flex: 1;
  display: flex;
  flex-direction: column;
}
#membersModal .member-item h6 {
  font-weight: 700;
  margin-bottom: 5px;
  color: #333;
}
#membersModal .member-item p {
  margin-bottom: 10px;
  color: #777;
}
#membersModal .member-bio {
  background-color: #f8f8f8;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
  color: #555;
  min-height: 130px;
}

/* Pagination */
#membersModal .pagination {
  justify-content: center;
  margin-top: 10px;
}
#membersModal .pagination .page-item .page-link {
  border-radius: 5px;
}
#membersModal .pagination .page-item.active .page-link {
  background-color: #007bff;
  border-color: #007bff;
  color: #fff;
}

/* Fade-in Animation */
@keyframes dashboardFadeIn {
  from { opacity: 0; transform: translateY(-15px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  #membersModal .member-item {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  #membersModal .member-item img {
    margin-bottom: 15px;
  }
  #membersModal .member-item > div {
    align-items: center;
  }
}

/* Start Start Dashboard Section College Members */


.dashboard-card {
  background-color: white;
  border: 1px solid #dfefff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.dashboard-card:hover {
  box-shadow: 0 4px 15px rgba(0,191,255,0.3);
  transform: scale(1.02);
}

.card-icon {
  font-size: 40px;
}

.card-title {
  font-size: 1.2rem;
  font-weight: 600;
}

.card-buttons .btn {
  margin: 2px;
}
#college-members .dashboard-card {
  width: 100%;
  max-width: 320px;
}
/* тнР End Dashboard Section CSS ======================================================*/



/*тнРтнРтнРтнРтнР============================ School Bus Information only uses bootstrap */

/*<!-- Table Styling -->*/

/* Start: School Bus Table Design */


.school-bus-table {
  background-color: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  animation: fadeIn 1s ease-in-out;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.school-bus-table thead {
  background: linear-gradient(90deg, #28a745, #4caf50);
  color: white;
  font-weight: bold;
  text-transform: uppercase;
}

.school-bus-table thead th i {
  margin-right: 6px;
}

.school-bus-table tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

.school-bus-table tbody tr:hover {
  background-color: #eafbea;
  transform: scale(1.01);
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.school-bus-table th, 
.school-bus-table td {
  padding: 12px;
  vertical-align: middle;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
/* тнР End: School Bus Table Design ============================================================*/



/* ===============================================Start CONTACT SECTION STYLES */


#contact .card {
  border-radius: 12px;
}

#contact .form-control {
  border-radius: 8px;
}


.map-container iframe {
  border-radius: 12px;
}

/* End CONTACT SECTION STYLES */



/* Start Footer SECTION  */

.footer {
  background: linear-gradient(to right, #002f4b, #005c97);
}

.footer a.footer-link {
  color: #aadfff;
}

.footer a.footer-link:hover {
  color: #ffffff;
}

.social-icon img {
  transition: transform 0.3s ease;
}

.social-icon img:hover {
  transform: scale(1.2);
}
/* End Footer SECTION  */

/* New banner css*/


/* 1) Slider box behaves like a responsive banner */
.banner-slider { position: relative; overflow: hidden; }
.banner-slider .slide img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
/* Keep a flexible aspect ratio (тЙИ 9:4 on desktop, taller on phones) */
.banner-slider .slider { aspect-ratio: 21 / 9; }
@media (max-width: 576px) { .banner-slider .slider { aspect-ratio: 16 / 9; } }

/* 2) Captions scale & stay readable */
.banner-slider .caption {
  position: absolute; inset: auto 0 8% 0; /* bottom */
  text-align: center; color: #fff;
  padding: .75rem 1rem;
  text-shadow: 0 2px 8px rgba(0,0,0,.45);
}
.banner-slider .caption h2 { font-size: clamp(1.1rem, 2.5vw + .6rem, 2rem); margin: 0 0 .25rem; }
.banner-slider .caption p  { font-size: clamp(.85rem, 1.8vw + .4rem, 1.1rem); margin: 0; }

/* 3) Prev/Next bigger hit area */
.banner-slider .prev,
.banner-slider .next {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(0,0,0,.35); border: 0; color: #fff;
  width: 44px; height: 44px; border-radius: 999px; line-height: 44px;
  cursor: pointer;
}
.banner-slider .prev { left: .5rem; }
.banner-slider .next { right: .5rem; }
@media (max-width: 576px) { .banner-slider .prev, .banner-slider .next { width: 40px; height: 40px; } }

/* 4) Dots tap-friendly */
.banner-slider .dots { position: absolute; left: 0; right: 0; bottom: .75rem; display: flex; gap: .5rem; justify-content: center; }
.banner-slider .dots button {
  width: 10px; height: 10px; border-radius: 50%;
  border: 0; background: rgba(255,255,255,.6);
}
.banner-slider .dots button.active { background: #fff; }

/* END New banner css*/


/*START new notice  css*/
.card { border-radius: 14px; }
.card-img-top { object-fit: cover; }
/*END new notice css*/

    /* YouTube-like thumbnail & text clamping (no gradients) */
    .yt-thumb {
      position: relative; width: 100%; padding-top: 56.25%; /* 16:9 */
      background-size: cover; background-position: center; border-radius: 12px;
    }
    .yt-title {
      font-weight: 600; font-size: 1rem; line-height: 1.3;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    .yt-sub {
      color: #6c757d; font-size: .925rem;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    .yt-meta { font-size: .85rem; color: #6c757d; }
    .yt-card:hover .yt-title { text-decoration: underline; }


        /* ===== hero (16:9) like a video player */
    .yt-hero{
      position:relative;width:100%;padding-top:56.25%;
      background-size:cover;background-position:center;border-radius:12px;
    }
    /* right rail (up next) */
    .yt-side-thumb{width:168px;aspect-ratio:16/9;object-fit:cover;border-radius:8px;}
    .yt-side-title{
      font-weight:600;line-height:1.25;margin-bottom:.25rem;
      display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    }
    .yt-side-meta{font-size:.85rem;color:#6c757d;}
    /* zoom modal */
    .zoom-wrapper{
      width:100%;height:min(80vh,85dvh);background:#000;
      display:flex;align-items:center;justify-content:center;overflow:hidden;
    }
    #zoomImg{max-width:none;width:auto;height:auto;cursor:grab;user-select:none;-webkit-user-drag:none;}


  /* Open dropdowns on hover for desktop; mobile remains click-based */
  @media (min-width: 992px) {
    .navbar .dropdown:hover .dropdown-menu {
      display: block;
      margin-top: 0;
    }
  }
  .navbar .nav-link { font-weight: 500; }
  .navbar .nav-link.active { color: #0d6efd; }
  .navbar .dropdown-menu {
    border-radius: .75rem;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    border: 1px solid rgba(0,0,0,.05);
    text: black!important;
  }






/* ==== 4) Kill global card hover; scope it to places you want ==== */
.card:hover{ transform:none !important; box-shadow:none !important; }
#notice-board .card:hover,
.yt-card:hover,
.dashboard-card:hover{
  box-shadow: 0 12px 28px rgba(0,0,0,.08) !important;
}

  .glx-fit-cover { object-fit: cover; }
  #glxImage { cursor: grab; }

/* Make gallery thumbs taller but consistent for BOTH image & video cards */
.glx-thumb { --bs-aspect-ratio: 70%; }          /* ~7:10 (taller than 16:9) */
@media (min-width: 992px) {
  .glx-thumb { --bs-aspect-ratio: 75%; }        /* ~3:4 on lg+ for extra height */
}

/* Tiny play marker (no dark overlay) */
/* тАФ Gallery thumb height (taller and same for img+video) тАФ */
#glx-gallery .glx-thumb.ratio { --bs-aspect-ratio: 75%; }      /* 4:3, taller than 16:9 */
@media (min-width: 1200px){
  #glx-gallery .glx-thumb.ratio { --bs-aspect-ratio: 66.6667%; }/* 3:2 on very wide */
}

/* тАФ Nuke any dark/gradient overlay some themes add тАФ */
#glx-gallery .glx-thumb::after,
#glx-gallery .ratio::after {          /* many templates darken with ::after */
  content: none !important;
}

#glx-gallery .glx-thumb::before {     /* keep ratioтАЩs ::before but ensure no bg */
  background: transparent !important;
  box-shadow: none !important;
}

#glx-gallery .glx-thumb,
#glx-gallery .glx-thumb img {
  filter: none !important;
  mix-blend-mode: normal !important;
  opacity: 1 !important;
}

/* keep the little тЦ╢ marker, no big overlay */
#glx-gallery .glx-play{
  position:absolute; top:.5rem; left:.75rem;
  color:#fff; font-weight:700; font-size:1rem; line-height:1;
  text-shadow:0 2px 6px rgba(0,0,0,.6); pointer-events:none;
}

/* ==== Normalize hero caption & visibility ==== */
.hero-banner .carousel-caption{ background:none !important; }
.hero-banner .carousel-item{ height:clamp(320px,50vw,520px); }
.hero-banner-img{ width:100%; height:100%; object-fit:cover; }



/* ==== Kill global card hover; re-enable only where wanted ==== */
.card:hover{ transform:none !important; box-shadow:none !important; }
#notice-board .card:hover,
.yt-card:hover,
.dashboard-card:hover{  box-shadow:0 12px 28px rgba(0,0,0,.08) !important; }




/* Academic Calendar */
#academic-calendar .calendar-card.card { border-radius: 1rem; }
#academic-calendar .calendar-card .card-body { padding: 1.75rem; }
#academic-calendar .calendar-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.08);
  transition: .2s ease;
}

/* Icon size + tones */
#academic-calendar .calendar-icon { line-height: 1; }
#academic-calendar .calendar-icon i { font-size: 2.5rem; }
.icon-blue   { color: var(--bs-primary); }
.icon-green  { color: var(--bs-success); }
.icon-red    { color: var(--bs-danger); }
.icon-purple { color: #6f42c1; }
.icon-orange { color: #fd7e14; }


  /* minimal, purely for polish; everything else is Bootstrap */
  .selected-course-thumb{width:72px;height:48px;object-fit:cover}
  .section-title{border-left:4px solid #198754;padding-left:.75rem}


.btn-bkash {
  background: #E2136E; /* bKash brand pink */
  color: #fff;
  border-color: #E2136E;
}

.btn-bkash .logo {
  width: 22px; height: 22px; object-fit: contain;
  margin-right: .5rem;
}


/* minimal local styles */
.selected-course-thumb { width:64px; height:64px; object-fit:cover; border-radius:6px; }
.section-title { font-size:1.05rem; letter-spacing:0.25px; }
.table thead th, .table td, .table th { vertical-align: middle; }
/* emphasise total row */
.fee-total { background:#f1f7ff; font-weight:600; }
/* nice file input layout */
input[type="file"]::file-selector-button { cursor:pointer; padding:.3rem .6rem; }
/* small helpers */
.btn-bkash { background: linear-gradient(90deg,#f7b33b,#f29b00); border:0; color:#111; }
.logo { height:20px; margin-right:8px; }
/* responsive tweak for payment area */
@media (max-width:767.98px){ #paypal-button-container, #paypal-card-button { width:100% !important; } }



.form-control {
  display: block !important;
  width: 100% !important;
  padding: .375rem .75rem !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  color: #212529 !important;
  background-color: #fff !important;
  background-clip: padding-box !important;
  border: 1px solid #ced4da !important;
  border-radius: .375rem !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
}
.form-select {
  display:block !important;
  width:100% !important;
  padding:.375rem 1.75rem .375rem .75rem !important;
  border:1px solid #ced4da !important;
  border-radius:.375rem !important;
}


@media print {
header, nav, footer, .btn, .bg-light { display: none !important; }
body { background: #fff !important; }
.card { border: none !important; box-shadow: none !important; }
.rounded-4 { border-radius: 0 !important; }
.table { font-size: 12px; }
}

/* No hover tint */
.glx-fee-list .list-group-item:hover,
.glx-fee-list .list-group-item:focus { background:#fff !important; }

/* Amount: tabular digits for nice alignment */
.glx-fee-amount { font-variant-numeric: tabular-nums; letter-spacing:.2px; color:#0f172a; }
.glx-fee-title  { color:#334155; }

/* Total row emphasis */
.glx-fee-total {
  background: linear-gradient(180deg,#f8fafc,#f1f5f9);
  border-top: 1px solid var(--bs-border-color);
  border-bottom-left-radius:.5rem; border-bottom-right-radius:.5rem;
}



.lg-backdrop { background: rgba(0,0,0,0.96); }
.lg-toolbar { background: transparent; }
.lg-counter { display: none !important; }
.lg-sub-html { display: none !important; }








/* Light, airy footer */
.site-footer-light{
  background:#ffffff;
  border-top:1px solid #e9ecef;
  color:#2b2f38;
}
.footer-title{
  font-weight:600;
  letter-spacing:.2px;
  display:flex; align-items:center;
}
.footer-contact .link-plain,
.link-plain{
  color:#2b2f38; text-decoration:none;
}
.footer-contact .link-plain:hover,
.link-plain:hover{ text-decoration:underline; }

.footer-links li{
  margin:.4rem 0; display:flex; align-items:center; gap:.35rem;
}
.footer-links a{
  color:#495057; text-decoration:none;
}
.footer-links a:hover{ color:#0d6efd; }

.social-btn-light{
  width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:10px; background:#f8f9fa;
  color:#0d6efd; text-decoration:none; transition:.2s ease;
  border:1px solid #e9ecef;
}
.social-btn-light:hover{
  transform:translateY(-2px);
  background:#eef4ff;
  border-color:#cfe2ff;
}

.footer-logo{ height:32px; width:auto; border-radius:6px; }
.footer-sep-light{ border-color:#e9ecef !important; opacity:1; }



  /* spacing + headline scale */
  .navbar { --nav-gap: .35rem; --nav-underline: 2px; }
  .nav-main .nav-link {
    padding: .6rem .75rem;
    position: relative;
    color: #1f2937;
    font-weight: 500;
  }
  .nav-main .nav-link.active::after,
  .nav-main .nav-link:hover::after,
  .nav-main .dropdown.show > .nav-link::after {
    content:""; position:absolute; left:.75rem; right:.75rem; bottom: .25rem;
    height: var(--nav-underline);
    background: linear-gradient(90deg,#0d6efd, #60a5fa);
    border-radius: 2px;
  }

  /* avatar dot */
  .avatar-dot{
    width:28px; height:28px; border-radius:50%;
    background:#e9efff; color:#0d47a1; font-weight:700; font-size:.8rem;
    display:inline-flex; align-items:center; justify-content:center;
  }

  /* dropdown look */
  .dropdown-menu-clean {
    border: 1px solid #edf1f5; box-shadow: 0 10px 24px rgba(15,23,42,.08);
    border-radius: .6rem; padding:.35rem; min-width: 220px;
  }
  .dropdown-menu-clean .dropdown-item{
    border-radius:.45rem; padding:.45rem .65rem; font-weight:500;
  }
  .dropdown-menu-clean .dropdown-item:hover{ background:#f3f6ff; }

  /* offcanvas mobile drawer */
  .offcanvas { width: 300px; }
  .drawer-link{ padding:.5rem 0; color:#111827; text-decoration:none; display:block; font-weight:600; }
  .drawer-link:hover{ color:#0d6efd; }
  .drawer-label{ font-size:.75rem; letter-spacing:.04em; color:#9ca3af; font-weight:700; }
  .drawer-sublink{ padding:.35rem 0 .35rem .5rem; color:#374151; display:block; text-decoration:none; }
  .drawer-sublink:hover{ color:#0d6efd; }



  /* subtle page polish */
  .invoice-card { border: 1px solid rgba(0,0,0,.05); border-radius: .75rem; overflow: hidden; }
  .table thead th { position: sticky; top: 0; background: #f8f9fa; z-index: 1; }
  .row-overdue { --bs-table-bg: #fff5f5; }          /* light red row background */
  .chip { padding:.25rem .5rem; border-radius: 50rem; font-size:.75rem; }
  .chip-paid { background: #e8f7ef; color: #13795b; }
  .chip-due  { background: #fff0f0; color: #b02a37; }
  @media (max-width: 576px){
    .hide-sm { display:none; }
  }

  .invoice-card{border:1px solid #e9ecef;border-radius:.5rem;background:#fff}
  .chip{display:inline-block;padding:.15rem .5rem;border-radius:1rem;font-size:.85rem}
  .chip-due{background:#fff3cd;border:1px solid #ffe69c;color:#8c6d1f}
  .chip-paid{background:#e9f7ef;border:1px solid #b7ebc6;color:#1f6d40}
  .row-overdue{--bs-table-bg: #fff7f7}
  .hide-sm{display:none}
  @media (min-width:768px){ .hide-sm{display:table-cell} }















.course-card .course-img-top {
  width: 100%;
  height: 220px;        /* Bigger default size */
  object-fit: cover;    /* Always fill nicely */
  object-position: center;
  border-top-left-radius: .5rem;
  border-top-right-radius: .5rem;
}

/* Tablet */
@media (min-width: 768px) {
  .course-card .course-img-top {
    height: 260px;
  }
}

/* Desktop / Large Screens */
@media (min-width: 1200px) {
  .course-card .course-img-top {
    height: 300px;
  }
}

/* Extra large displays */
@media (min-width: 1600px) {
  .course-card .course-img-top {
    height: 340px;
  }
}




/* === START: ADD THIS MISSING CODE === */

/* Custom nav buttons for both Image and YT modals */
.btn-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.10);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1065; /* Make sure it's above the modal content */
  cursor: pointer;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  backdrop-filter: blur(2px);
}

/* Styles the <i class="bi bi-chevron-left"></i> icon */
.btn-nav i {
  font-family: "bootstrap-icons" !important; /* !important to override your font rules */
  font-size: 22px;
  line-height: 1;
  font-style: normal !important; /* !important to override your font rules */
  font-weight: 400 !important; /* !important to override your font rules */
}

/* === END: ADD THIS MISSING CODE === */


/* --- Your existing CSS rules (they are correct) --- */

.btn-nav.img-prev, .btn-nav.yt-prev { left: 24px; }
.btn-nav.img-next, .btn-nav.yt-next { right: 24px; }

/* YT stage & arrows */
#ytModal .yt-stage { background: #000; }
/* ... rest of your CSS ... */

/* --- STYLES FOR NEW IMAGE MODAL --- */

  /* The video player (Zoomist doesn't handle videos) */
  #imgModalVideo {
    max-height: 90vh;
    max-width: 90vw;
    object-fit: contain;
  }
  
  /* Bottom Toolbar for Caption/Download */
  #imgModal .img-toolbar {
    bottom: 0;
    min-height: 48px;
    background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
    pointer-events: none;
    z-index: 1060; /* Position below nav buttons */
  }
  #imgModal .img-toolbar a {
    pointer-events: auto;
  }

  /* Position for nav buttons (Unchanged) */
  .btn-nav.img-prev { left: 24px; }
  .btn-nav.img-next { right: 24px; }



#notice article {
  border-radius: 1rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

#notice article:hover {
  box-shadow: 0 1rem 2rem rgba(0,0,0,0.1);
}

#notice .ratio {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  overflow: hidden;
}

#notice .p-3 {
  padding: 1.5rem !important;
}

@media (max-width: 576px) {
  #notice article {
    border-radius: .75rem;
  }
  #notice .p-3 {
    padding: 1rem !important;
  }
}


#college-festivals .card:hover {
  transform: none !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24) !important; /* This just restores the default shadow from .shadow-sm */
}

/* If you want to restore the default shadow-sm from Bootstrap, use this instead */
#college-festivals .card:hover {
  transform: none !important;
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important; 
}

/* This targets the parent column */
#college-festivals .col:hover {
  transform: none !important;
}

/* This targets the card itself */
#college-festivals .card:hover {
  transform: none !important;
  /* This just restores the default shadow-sm that was on your card */
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important; 
}

/* === FINAL FIX: Stop link jump in festival section === */
#college-festivals .img-trigger:hover,
#college-festivals .yt-trigger:hover {
  transform: none !important;
}






/* Container must fill the space to catch mouse wheel events */
#zoomContainer {
    width: 100%;
    height: 100%;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    cursor: grab;
}

/* Image styling */
#uniModalImg {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: transform 0.1s ease-out; /* Smooth zoom */
    touch-action: none; /* CRITICAL: Prevents screen scrolling on mobile */
    transform-origin: center center;
}

/* Controls styling */
#zoomControls button {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.2);
}


    /* Cards & thumbs */
    .glx-thumb { border-radius: .5rem .5rem 0 0; overflow: hidden; }
    .object-fit-cover { object-fit: cover; }
    .gallery-card { transition: transform .15s ease, box-shadow .15s ease; }
    .gallery-card:hover { transform: translateY(-3px); box-shadow: 0 .75rem 1.25rem rgba(0,0,0,.08); }
    .glx-chip {
      position: absolute; left: .6rem; bottom: .6rem;
      display: inline-flex; align-items: center; justify-content: center;
      width: 28px; height: 28px; border-radius: 8px;
      background: rgba(0,0,0,.6); color: #fff; font-size: .95rem;
      border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(2px);
      pointer-events: none;
    }

    /* Triggers */
    .lg-trigger, .yt-trigger, .img-trigger, .js-gallery-item { cursor: pointer; }
    /* --- CRITICAL HEIGHT INHERITANCE FIX --- */
    #ytModal .modal-dialog {
        /* Ensures the dialog takes up the full viewport height */
        width: 100%; 
        height: 100%; 
        margin: 0; 
    }
    
    #ytModal .modal-content {
        /* Ensures content container fills the dialog */
        height: 100%; 
        width: 100%;
    }
    
    #ytModal .modal-body {
        /* IMPORTANT: Forces the body to fill all available space */
        height: 100%;
        /* These ensure the content is centered, which looks correct for a video */
        display: flex;
        align-items: center; 
        justify-content: center;
    }
    
    
/* Must be present to force the final YT iframe to fill the box */
#ytPlayerMount, 
#ytModal iframe { 
    width: 100% !important; 
    height: 100% !important; 
}


/* --- ADD THIS NEW BLOCK --- */
#ytModal .yt-box {
    /* Set a wide maximum limit, e.g., 1440px for desktop viewing */
    max-width: 1440px; 
    
    /* Prioritize filling 90% of the screen width */
    width: 90vw; 
    
    /* Ensures 16:9 ratio and scales height with the 90vw width */
    aspect-ratio: 16/9;
    
    /* Ensure the box scales down nicely */
    height: auto; 
}
/* Ensure left/right positioning for the MP4 video modal buttons */
#videoModal .btn-nav.video-prev { 
    left: 24px; /* Pulls the button slightly away from the left edge of the screen */
    right: auto; /* Ensure no conflict */
}

#videoModal .btn-nav.video-next { 
    right: 24px; /* Pulls the button slightly away from the right edge of the screen */
    left: auto; /* Ensure no conflict */
}



/* ============================================================
   MOBILE FOOTER CENTERING FIX
   Add this to the very bottom of your CSS file
   ============================================================ */
@media (max-width: 767.98px) {
    /* 1. Center the general text inside footer columns */
    .site-footer-light .row > div[class*="col-"] {
        text-align: center;
    }

    /* 2. Center the Flexbox Titles (which are display:flex in your CSS) */
    .site-footer-light .footer-title {
        justify-content: center;
    }

    /* 3. Center the Link Items (which are display:flex in your CSS) */
    .site-footer-light .footer-links li {
        justify-content: center;
    }

    /* 4. Center the Social Icons and Brand/Logo containers */
    /* We use !important to override Bootstrap's default d-flex alignment */
    .site-footer-light .d-flex {
        justify-content: center !important;
    }
    
    /* 5. Ensure the copyright section at the very bottom flows correctly */
    .site-footer-light .border-top .d-flex {
        flex-direction: column;
    }
}