html { scroll-behavior: smooth; }

body { padding-bottom: 0px; margin:0; }

p, li, .justify-text { text-align: justify; font-weight: bold;}

footer p { text-align: justify !important; }

.social-icons { display:flex; justify-content:center; align-items:center; gap:15px; }

#banner { margin-bottom:40px; }

#welcome { margin-top:40px; }

#news-events { margin-top:40px; margin-bottom:40px; }

#backToTop { display:none; position:fixed; bottom:30px; right:30px; width:50px; height:50px; border:none; border-radius:50%; font-size:24px; cursor:pointer; box-shadow:0 4px 8px rgba(0,0,0,.2); background:#0D485C; color:#fff; z-index:9999; }

#backToTop:hover { background:#0D485C; }



:root{
  --royal:#101A45; --teal:#0D485C; --forest:#0F3523; --charcoal:#111116; --action:#0D485C;
  --gradient:linear-gradient(180deg,#111116 0%,#0F3523 18%,#0D485C 48%,#101A45 100%);
  --glass:rgba(255,255,255,.56); --glass-light:rgba(255,255,255,.34);
  --glass-border:rgba(255,255,255,.72); --text:#111;
}

/* Visible building background: sharp image + light gradient tint. The image itself is NOT blurred. */

html,body{min-height:100%;}

body{
  margin:0; color:var(--text) !important; background-color:#101A45 !important;
  background-image:linear-gradient(180deg,rgba(17,17,22,.30) 0%,rgba(15,53,35,.24) 22%,rgba(13,72,92,.20) 52%,rgba(16,26,69,.28) 100%),url("../images/building.jpeg") !important;
  background-position:center top !important; background-size:cover !important; background-attachment:fixed !important; background-repeat:no-repeat !important;
  overflow-x:hidden;
}

body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:rgba(255,255,255,.05);}
body > *{position:relative;}

.page-shell{width:100%;max-width:1450px;margin:0 auto;padding-left:24px;padding-right:24px;}

.top-strip{background:rgba(17,17,22,.20);color:#fff;border-bottom:1px solid rgba(255,255,255,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}

.top-strip-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:7px 0;}

.brand-area{background:rgba(15,53,35,.22);border-bottom:1px solid rgba(255,255,255,.46);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}

.brand-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:16px 0;}

.brand{display:flex;align-items:center;gap:16px;color:#fff;text-decoration:none;}

.brand img{width:82px;height:82px;object-fit:contain;border-radius:16px;border:3px solid rgba(255,255,255,.78);background:rgba(255,255,255,.25);box-shadow:0 8px 24px rgba(0,0,0,.15);}

.brand span{display:flex;flex-direction:column;line-height:1.2;}

.brand strong{font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;}

.brand b{font-size:1.5rem;color:#fff;}

.brand em{font-style:normal;font-size:.88rem;font-weight:700;color:rgba(255,255,255,.96);margin-top:5px;}

.affiliation{max-width:420px;text-align:right;border-left:3px solid rgba(255,255,255,.62);padding-left:20px;font-size:.84rem;color:#fff;}

.affiliation span,.affiliation strong{display:block;color:#fff;}

.main-nav{background:var(--gradient);box-shadow:0 8px 22px rgba(0,0,0,.16);position:sticky;top:0;z-index:1000;border-bottom:1px solid rgba(255,255,255,.38);}

.main-nav .nav-link{color:#fff !important;font-weight:650;padding:15px 13px !important;transition:.2s;border-radius:10px;margin:5px 2px;}

.main-nav .nav-link:hover,.main-nav .nav-link:focus,.main-nav .nav-link.active{background:rgba(255,255,255,.20);color:#fff !important;}

.main-nav .dropdown-menu{border:1px solid rgba(255,255,255,.78);border-radius:12px;padding:8px;box-shadow:0 20px 50px rgba(0,0,0,.18);background:rgba(255,255,255,.96);min-width:220px;}

.main-nav .dropdown-item{border-radius:8px;padding:9px 12px;color:#111 !important;}

.main-nav .dropdown-item:hover,.main-nav .dropdown-item:focus{background:rgba(13,72,92,.18);color:#111 !important;}

.navbar-toggler{border-color:rgba(255,255,255,.75);padding:.35rem .55rem;}

.navbar-toggler-icon{filter:brightness(0) invert(1);}

/* Glass content: light enough to see the building, strong enough to keep black text readable. */

main, .content-box, .gallery-page-container, .feedback-form, .about-column, .quick-column, .album, .card, .list-group-item, .table-responsive{
  color:#111 !important; background:rgba(255,255,255,.58) !important; border:1px solid var(--glass-border) !important; border-radius:18px; box-shadow:0 10px 30px rgba(0,0,0,.10); backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
}

section .container{background:rgba(255,255,255,.42);border:1px solid rgba(255,255,255,.62);border-radius:18px;padding-top:24px;padding-bottom:24px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}

#news-events{background:transparent !important;}

h1,h2,h3,h4,h5,h6,p,li,label,small,span,.lead,.text-primary,.text-muted,.table,.table td,.table th,.content-box,.album{color:#fff !important;}

main a,section a,.container a,.content-box a,.list-group-item a,.album a{color:#111;}

main a:hover,section a:hover,.container a:hover,.content-box a:hover,.list-group-item a:hover,.album a:hover{color:#0D485C;}

.text-muted{color:rgba(17,17,17,.68) !important;}

.form-control,.form-select,textarea,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=file]{color:#111 !important;background:rgba(255,255,255,.78) !important;border:1px solid rgba(255,255,255,.95) !important;border-radius:10px;}

.form-control::placeholder,textarea::placeholder,input::placeholder{color:rgba(17,17,17,.55) !important;}

.form-control:focus,.form-select:focus,textarea:focus,input:focus{color:#111 !important;background:rgba(255,255,255,.90) !important;border-color:#0D485C !important;box-shadow:0 0 0 3px rgba(13,72,92,.18) !important;}

.form-select option{color:#111 !important;background:#fff !important;}

.btn-primary,button[type=submit],.submit-center,.controls button,.btn-vgpu{background:var(--action) !important;border-color:var(--action) !important;color:#fff !important;}

.btn-primary:hover,button[type=submit]:hover,.submit-center:hover,.controls button:hover,.btn-vgpu:hover{background:#0D485C !important;border-color:#0D485C !important;color:#fff !important;}


/* ===== NAVBAR DROPDOWN - FINAL FIX ===== */

.site-header {
    position: relative;
    z-index: 9999 !important;
}

.main-nav {
    position: sticky !important;
    top: 0;
    z-index: 10000 !important;
    overflow: visible !important;
}

.main-nav .container-fluid {
    overflow: visible !important;
}

.main-nav .navbar-collapse {
    overflow: visible !important;
}

.main-nav .navbar-nav {
    position: relative;
    z-index: 10001;
}

.main-nav .nav-item.dropdown {
    position: relative;
}

.main-nav .dropdown-menu {
    z-index: 10002 !important;
}

.site-hero-carousel {
    position: relative;
    z-index: 1 !important;
}

/* Home-page carousel only. */

.site-hero-carousel {
    width: 100%;
    height: 700px;
    margin: 0 auto;
    overflow: hidden;
    border-bottom: 1px solid rgba(255,255,255,.45);
    box-shadow: 0 12px 30px rgba(0,0,0,.14);
    background: transparent;
}

.site-hero-carousel .carousel-item {
    width: 100%;
    height: 700px;
    min-height: 650px;
    position: relative;
}

.site-hero-carousel .carousel-item img {
    width: 100%;
    height: 700px;
    object-fit: fill;
    display: block;
    margin: 0;
}

/* Overlay exactly matches the image */
.site-hero-carousel .carousel-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(17,17,22,.10),
        rgba(15,53,35,.08),
        rgba(13,72,92,.08),
        rgba(16,26,69,.18)
    );
    pointer-events: none;
    z-index: 1;
}

.site-hero-carousel .carousel-control-prev,
.site-hero-carousel .carousel-control-next {
    z-index: 4;
    width: 8%;
}

.site-hero-carousel .carousel-indicators {
    z-index: 5;
}

.site-footer{
  margin-top:50px;
  margin-bottom:0;
  background:var(--gradient);
  color:#fff !important;
  padding:45px 0 0;
  position:relative;
  z-index:100;
  border-top:1px solid rgba(255,255,255,.42);
  width:100%;
  overflow:hidden;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1.2fr;
  gap:45px;
  padding-bottom:5px;
  align-items:start;
  width:100%;
  max-width:1450px;
  margin:0 auto;
  box-sizing:border-box;
}

.footer-grid > div{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.footer-grid h3{
  color:#fff !important;
  margin:0 0 15px;
  font-size:1.15rem;
  font-weight:700;
  line-height:1.3;
  position:relative;
  padding-bottom:8px;
}

.footer-grid h3::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:42px;
  height:2px;
  border-radius:2px;
  background:rgba(255,255,255,.8);
  transition:width .3s ease;
}

.footer-grid > div:hover h3::after{width:70px;}

.footer-grid p{
  color:#fff !important;
  margin:0 0 10px;
  line-height:1.7;
}

.footer-grid a{
  display:block;
  color:#fff !important;
  margin:7px 0;
  line-height:1.5;
  text-decoration:none;
  transition:.2s ease;
  position:relative;
  width:max-content;
  max-width:100%;
}

.footer-grid a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:1px;
  background:rgba(125,211,199,.75);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}

.footer-grid a:hover::after{transform:scaleX(1);}

.footer-grid a:hover,.footer-bottom a:hover{color:#7DD3C7 !important;}

.footer-brand{
  color:#fff !important;
  font-size:1.25rem;
  font-weight:700;
  margin-bottom:6px;
}

.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:18px 0;
  border-top:1px solid rgba(255,255,255,.40);
  font-size:.88rem;
  color:#fff !important;
  width:100%;
  box-sizing:border-box;
}

.footer-bottom p{margin:0;color:#fff !important;}
.footer-bottom a{color:#fff !important;text-decoration:none;}

.footer-social {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 18px;
}

.footer-social a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.footer-social a:hover {
  transform: translateY(-2px);
  opacity: 0.8;
}

.footer-social i {
  font-size: 18px;
}

.footer-social span {
  font-size: 14px;
  color:#fff !important;
}







/* NEWS & EVENTS — moved from index.php so all styling stays in style.css. */

#news-events {
  background: linear-gradient(135deg, #f5f9ff, #eaf3ff);
  padding: 60px 0;
}

#news-events h2 {
  font-weight: 700;
  letter-spacing: 1px;
  position: relative;
}

#news-events h2::after {
  content: "";
  width: 60px;
  height: 3px;
  background: #007bff;
  display: block;
  margin: 10px auto 0;
  border-radius: 5px;
}

#news-events .list-group {
  border-radius: 12px;
  overflow: hidden;
}

#news-events .list-group-item {
  border: none !important;
  margin-bottom: 12px;
  border-radius: 10px;
  background: #ffffff !important;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
  position: relative;
  padding: 18px 20px;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

#news-events .list-group-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 5px;
  background: #007bff;
  border-radius: 10px 0 0 10px;
  transition: 0.3s;
}

#news-events .list-group-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

#news-events .list-group-item:hover::before {
  width: 8px;
  background: #0056b3;
}

#news-events a {
  text-decoration: none;
  color: #333 !important;
  font-weight: 500;
  display: block;
  transition: 0.3s;
}

#news-events a:hover {
  color: #007bff !important;
  padding-left: 5px;
}

#news-events a::before {
  content: "📢 ";
  margin-right: 5px;
}

#news-events .list-group-item {
  animation: fadeUp 0.6s ease both;
}

#news-events .list-group-item:nth-child(1) { animation-delay: 0.1s; }
#news-events .list-group-item:nth-child(2) { animation-delay: 0.2s; }
#news-events .list-group-item:nth-child(3) { animation-delay: 0.3s; }
#news-events .list-group-item:nth-child(4) { animation-delay: 0.4s; }
#news-events .list-group-item:nth-child(5) { animation-delay: 0.5s; }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ADDITIONAL ANIMATIONS + LAYOUT POLISH
   Existing CSS above remains completely unchanged. */

*,
*::before,
*::after{
  transition:
    background-color .25s ease,
    border-color .25s ease,
    color .25s ease,
    box-shadow .25s ease,
    transform .25s ease,
    opacity .25s ease;
}

.top-strip,
.brand-area,
.main-nav,
.site-hero-carousel,
main,
section,
.site-footer{
  animation:pageFadeIn .8s ease both;
}

@keyframes pageFadeIn{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}

.top-strip{animation-delay:.05s;}
.brand-area{animation-delay:.12s;}
.main-nav{animation-delay:.18s;}

.brand{transition:transform .3s ease;}
.brand:hover{transform:translateY(-2px);}

.brand img{
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}

.brand:hover img{
  transform:scale(1.04) rotate(-1deg);
  box-shadow:0 12px 30px rgba(0,0,0,.25);
  border-color:rgba(255,255,255,.95);
}

.main-nav .nav-link{position:relative;overflow:hidden;}

.main-nav .nav-link::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:3px;
  height:2px;
  background:rgba(255,255,255,.85);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .25s ease;
}

.main-nav .nav-link:hover::after,
.main-nav .nav-link:focus::after,
.main-nav .nav-link.active::after{transform:scaleX(1);}

.main-nav .nav-link:hover{transform:translateY(-1px);}

.main-nav .dropdown-menu{
  animation:dropdownOpen .22s ease both;
  transform-origin:top center;
}

@keyframes dropdownOpen{
  from{opacity:0;transform:translateY(-8px) scale(.98);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

.main-nav .dropdown-item{
  transition:background-color .2s ease,transform .2s ease,padding-left .2s ease;
}

.main-nav .dropdown-item:hover{
  transform:translateX(4px);
  padding-left:16px;
}

.site-hero-carousel{animation:heroReveal 1s ease both;}

@keyframes heroReveal{
  from{opacity:0;transform:scale(.985);}
  to{opacity:1;transform:scale(1);}
}

.site-hero-carousel .carousel-item img{
  transition:transform 1.2s ease,opacity .6s ease;
}

.site-hero-carousel .carousel-item.active img{
  animation:carouselImageZoom 6s ease both;
}

@keyframes carouselImageZoom{
  from{transform:scale(1);}
  to{transform:scale(1.035);}
}

.site-hero-carousel .carousel-control-prev,
.site-hero-carousel .carousel-control-next{
  transition:opacity .25s ease,transform .25s ease,background-color .25s ease;
}

.site-hero-carousel .carousel-control-prev:hover{transform:translateX(-4px);}
.site-hero-carousel .carousel-control-next:hover{transform:translateX(4px);}

.site-hero-carousel .carousel-indicators button{
  transition:width .25s ease,opacity .25s ease,transform .25s ease;
}

.site-hero-carousel .carousel-indicators button:hover{transform:scale(1.15);}

main,
.content-box,
.gallery-page-container,
.feedback-form,
.about-column,
.quick-column,
.album,
.card,
.list-group-item,
.table-responsive{
  animation:contentReveal .7s ease both;
}

@keyframes contentReveal{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}

.card,
.album,
.content-box,
.about-column,
.quick-column,
.list-group-item{
  transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease;
}

.card:hover,
.album:hover,
.content-box:hover,
.about-column:hover,
.quick-column:hover{
  transform:translateY(-5px);
  box-shadow:0 16px 38px rgba(0,0,0,.16);
}

h1,h2,h3,h4,h5,h6{
  transition:transform .25s ease,color .25s ease;
}

h1:hover,h2:hover,h3:hover{transform:translateX(2px);}

main a,
section a,
.container a,
.content-box a,
.list-group-item a,
.album a{
  position:relative;
  transition:color .2s ease,transform .2s ease;
}

main a:hover,
section a:hover,
.container a:hover,
.content-box a:hover,
.list-group-item a:hover,
.album a:hover{
  transform:translateX(2px);
}

.btn-primary,
button[type=submit],
.submit-center,
.controls button,
.btn-vgpu{
  position:relative;
  overflow:hidden;
  transform:translateZ(0);
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease;
}

.btn-primary::before,
button[type=submit]::before,
.submit-center::before,
.controls button::before,
.btn-vgpu::before{
  content:"";
  position:absolute;
  top:0;
  left:-110%;
  width:60%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-20deg);
  transition:left .55s ease;
}

.btn-primary:hover,
button[type=submit]:hover,
.submit-center:hover,
.controls button:hover,
.btn-vgpu:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(13,72,92,.28);
}

.btn-primary:hover::before,
button[type=submit]:hover::before,
.submit-center:hover::before,
.controls button:hover::before,
.btn-vgpu:hover::before{left:140%;}

.form-control,
.form-select,
textarea,
input[type=text],
input[type=email],
input[type=password],
input[type=number],
input[type=date],
input[type=file]{
  transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .2s ease;
}

.form-control:hover,
.form-select:hover,
textarea:hover,
input[type=text]:hover,
input[type=email]:hover,
input[type=password]:hover,
input[type=number]:hover,
input[type=date]:hover,
input[type=file]:hover{transform:translateY(-1px);}

.social-icons{flex-wrap:wrap;}

.social-icons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease;
}

.social-icons a:hover{
  transform:translateY(-5px) scale(1.08);
  box-shadow:0 8px 18px rgba(0,0,0,.25);
}

.footer-grid > div:nth-child(1){animation:footerItemIn .65s ease .15s both;}
.footer-grid > div:nth-child(2){animation:footerItemIn .65s ease .25s both;}
.footer-grid > div:nth-child(3){animation:footerItemIn .65s ease .35s both;}

@keyframes footerItemIn{
  from{opacity:0;transform:translateY(20px);}
  to{opacity:1;transform:translateY(0);}
}

#backToTop{
  transition:opacity .3s ease,transform .3s ease,background-color .25s ease,box-shadow .25s ease;
}

#backToTop:hover{
  transform:translateY(-5px) scale(1.05);
  box-shadow:0 8px 20px rgba(0,0,0,.28);
}

#backToTop:active{transform:translateY(-2px) scale(.96);}

section .container{box-sizing:border-box;}
#news-events{min-height:0;}
.page-shell{box-sizing:border-box;}

.table-responsive{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.table{margin-bottom:0;}
.table th{font-weight:700;}







/* Final layout safeguards */
html,body{width:100%;overflow-x:hidden;}
body{min-height:100vh;}
.site-footer{margin-bottom:0 !important;}
body > .site-footer:last-child{margin-bottom:0 !important;}

/* ========================================================= */
/* ABOUT US + COURSES — SAME STYLE AS PLACEMENT CELL */
/* ========================================================= */

/* Common page section */
#about,
#courses {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 20px 0 30px;
  animation: pageFadeIn 0.8s ease both;
}

/* Give proper gap below navbar */
.main-nav + #about,
.main-nav + #courses {
  margin-top: 55px;
}

/* Main glass container */
#about .container,
#courses .container {
  padding: 35px 40px;
  background: rgba(255,255,255,.58) !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

/* ========================================================= */
/* HEADINGS */
/* ========================================================= */

#about h2,
#courses h2 {
  color: #111 !important;
  font-weight: 700;
  letter-spacing: .5px;
  position: relative;
  margin-bottom: 30px !important;
}

/* Heading underline */
#about h2::after,
#courses h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 10px auto 0;
  border-radius: 5px;
  background: #0D485C;
  animation: headingLine 0.8s ease both;
}

/* ========================================================= */
/* ABOUT US PARAGRAPHS */
/* ========================================================= */

#about p,
#about .lead,
#about .text-justify {
  color: #111 !important;
  text-align: justify !important;
  line-height: 1.8;
  font-size: 1.05rem;
  font-weight: 400;
  margin-bottom: 22px;
  font-weight: bold;
}

/* ========================================================= */
/* COURSES PARAGRAPHS */
/* ========================================================= */

#courses p,
#courses .lead,
#courses .text-justify {
  color: #111 !important;
  text-align: justify !important;
  line-height: 1.8;
  font-size: 1.05rem;
  font-weight: 400;
  margin-bottom: 22px;
  font-weight: bold;
}

/* ========================================================= */
/* COURSES TABLE */
/* ========================================================= */

#courses .table-responsive {
  overflow-x: auto;
  margin-top: 10px;
  margin-bottom: 40px;
  border-radius: 15px;
  background: rgba(255,255,255,.70) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

#courses table {
  width: 100%;
  margin-bottom: 0;
  color: #111 !important;
  background: rgba(255,255,255,.70) !important;
  border-radius: 12px;
  overflow: hidden;
}

/* Table heading */
#courses table thead th {
  background: #0D485C !important;
  color: #fff !important;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  padding: 14px 12px;
  border-color: rgba(255,255,255,.35) !important;
}

/* Table content */
#courses table tbody td {
  color: #111 !important;
  text-align: center;
  vertical-align: middle;
  padding: 13px 12px;
  border-color: rgba(13,72,92,.18) !important;
  background: rgba(255,255,255,.58) !important;
}

/* Table animation */
#courses table tbody tr {
  transition: all .25s ease;
}

#courses table tbody tr:hover {
  transform: translateY(-2px);
}

#courses table tbody tr:hover td {
  background: rgba(13,72,92,.12) !important;
}

/* ========================================================= */
/* LINKS */
/* ========================================================= */

#about a,
#courses a {
  color: #0D485C !important;
  text-decoration: none;
  font-weight: 600;
  transition: all .25s ease;
}

#about a:hover,
#courses a:hover {
  color: #101A45 !important;
  text-decoration: underline;
}

/* ========================================================= */
/* PAGE ANIMATION */
/* ========================================================= */

@keyframes pageFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes headingLine {
  from {
    width: 0;
  }

  to {
    width: 60px;
  }
}

/* ========================================================= */
/* MOBILE */
/* ========================================================= */



/* ========================================================= */
/* EXTRA SMALL DEVICES */
/* ========================================================= */



/* ========================================= */
/* ACADEMIC SCHEDULE PAGE */
/* ========================================= */

#academic-schedule {
  margin-top: 40px;
  margin-bottom: 40px;
  animation: pageFadeIn 0.8s ease both;
}

#academic-schedule .container {
  padding-top: 30px;
  padding-bottom: 30px;
}

#academic-schedule h2 {
  font-weight: 700;
  letter-spacing: .5px;
  position: relative;
}

#academic-schedule h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 10px auto 0;
  border-radius: 5px;
  background: #0D485C;
}

/* Paragraph */
#academic-schedule p {
  color: #000 !important;
  line-height: 1.8;
  margin-bottom: 25px;
}

#academic-schedule .text-justify {
  text-align: justify !important;
}

/* Table */
#academic-schedule .table-responsive {
  overflow-x: auto;
  margin-bottom: 10px;
}

#academic-schedule table {
  width: 100%;
  margin-bottom: 0;
  color: #111 !important;
  background: rgba(255,255,255,.70) !important;
  border-radius: 12px;
  overflow: hidden;
}

/* Table heading */
#academic-schedule table thead th {
  background: #0D485C !important;
  color: #fff !important;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
  padding: 14px 12px;
  border-color: rgba(255,255,255,.35) !important;
}

/* Table cells */
#academic-schedule table tbody td {
  color: #000 !important;
  text-align: left;
  vertical-align: middle;
  padding: 15px 14px;
  line-height: 1.6;
  border-color: rgba(13,72,92,.18) !important;
  background: rgba(255,255,255,.60) !important;
}

/* Serial number */
#academic-schedule table tbody td:first-child {
  text-align: center;
  font-weight: 700;
}

/* Hover animation */
#academic-schedule table tbody tr {
  transition: all .25s ease;
}

#academic-schedule table tbody tr:hover {
  transform: translateY(-2px);
}

#academic-schedule table tbody tr:hover td {
  background: rgba(13,72,92,.12) !important;
}

/* Page entrance */
@keyframes pageFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ========================================= */
/* TABLET */
/* ========================================= */



/* ========================================= */
/* MOBILE */
/* ========================================= */



/* ========================================= */
/* EXTRA SMALL DEVICES */
/* ========================================= */



/* ========================================= */
/* ANTI-RAGGING PAGE */
/* ========================================= */

#anti-ragging {
  margin-top: 40px;
  margin-bottom: 40px;
  animation: pageFadeIn 0.8s ease both;
}

#anti-ragging .container {
  padding-top: 30px;
  padding-bottom: 30px;
}

/* Heading */

#anti-ragging h2 {
  font-weight: 700;
  font-size: 2rem;
  letter-spacing: .5px;
  position: relative;
}

#anti-ragging h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 10px auto 0;
  border-radius: 5px;
  background: #0D485C;
  animation: underlineGrow 1s ease-in-out;
}

/* Table container */

#anti-ragging .table-responsive {
  margin-top: 30px;
  overflow-x: auto;
  border-radius: 15px;
  background: rgba(255,255,255,.70) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
}

/* Table */

#anti-ragging table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  color: #000 !important;
  background: rgba(255,255,255,.65) !important;
}

/* Table header */

#anti-ragging table thead th {
  background: #0D485C !important;
  color: #fff !important;
  text-align: center;
  vertical-align: middle;
  padding: 15px 12px;
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .3px;
  border-color: rgba(255,255,255,.30) !important;
}

/* Table body */

#anti-ragging table tbody td {
  color: #000 !important;
  text-align: center;
  vertical-align: middle;
  padding: 14px 12px;
  font-size: .95rem;
  line-height: 1.5;
  background: rgba(255,255,255,.60) !important;
  border-color: rgba(13,72,92,.18) !important;
  transition: all .3s ease;
}

/* Serial number */

#anti-ragging table tbody td:first-child {
  font-weight: 700;
}

/* Hover */

#anti-ragging table tbody tr {
  transition: all .3s ease;
}

#anti-ragging table tbody tr:hover {
  transform: translateY(-2px);
}

#anti-ragging table tbody tr:hover td {
  background: rgba(13,72,92,.12) !important;
}

/* Remove Bootstrap conflicting colors */

#anti-ragging .table-primary {
  --bs-table-bg: #0D485C !important;
  --bs-table-color: #fff !important;
}

/* Heading animation */

@keyframes underlineGrow {
  from {
    width: 0;
  }

  to {
    width: 60px;
  }
}

/* Page entrance */

@keyframes pageFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ========================================= */
/* TABLET */
/* ========================================= */



/* ========================================= */
/* MOBILE */
/* ========================================= */



/* ========================================= */
/* EXTRA SMALL DEVICES */
/* ========================================= */



/* ========================================= */
/* PLACEMENT CELL PAGE */
/* ========================================= */

#placement-cell {
  margin-top: 40px;
  margin-bottom: 40px;
  animation: pageFadeIn 0.8s ease both;
}

#placement-cell .container {
  padding-top: 30px;
  padding-bottom: 30px;
}

/* Heading */

#placement-cell h2 {
  font-weight: 700;
  letter-spacing: .5px;
  position: relative;
}

#placement-cell h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 10px auto 0;
  border-radius: 5px;
  background: #0D485C;
  animation: underlineGrow 1s ease-in-out;
}

/* ========================================= */
/* PLACEMENT OFFICER */
/* ========================================= */

#placement-cell .placement-officer {
  margin-top: 30px;
  padding: 25px;
  border-radius: 18px;
  background: rgba(255,255,255,.50);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  animation: fadeUp 0.7s ease both;
}

/* Officer image */

#placement-cell .placement-officer-image {
  width: 100%;
  max-width: 220px;
  height: auto;
  object-fit: cover;
  border-radius: 15px !important;
  border: 3px solid rgba(255,255,255,.80);
  box-shadow: 0 8px 24px rgba(0,0,0,.18) !important;
  transition: all .35s ease;
}

#placement-cell .placement-officer-image:hover {
  transform: scale(1.03);
  box-shadow: 0 12px 30px rgba(0,0,0,.22) !important;
}

/* Officer information */

#placement-cell .placement-officer-info {
  padding-left: 25px;
}

#placement-cell .placement-officer-info h5 {
  color: #000 !important;
  font-size: 1.2rem;
  letter-spacing: .5px;
}

#placement-cell .placement-officer-info p {
  color: #000 !important;
  margin-bottom: 8px;
  line-height: 1.6;
}

#placement-cell .placement-officer-info a {
  color: #0D485C !important;
  font-weight: 600;
  text-decoration: none;
}

#placement-cell .placement-officer-info a:hover {
  color: #101A45 !important;
  text-decoration: underline;
}

/* ========================================= */
/* PLACEMENT LIST */
/* ========================================= */

#placement-cell .placement-list {
  margin: 25px 0 0;
  padding: 0;
}

#placement-cell .placement-list li {
  color: #000 !important;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(255,255,255,.70);
  border-left: 5px solid #0D485C;
  border-radius: 12px;
  padding: 15px 18px;
  margin-bottom: 12px;
  line-height: 1.7;
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
  transition: all .3s ease;
  animation: fadeUp 0.6s ease both;
}

/* Individual animation delays */

#placement-cell .placement-list li:nth-child(1) {
  animation-delay: .10s;
}

#placement-cell .placement-list li:nth-child(2) {
  animation-delay: .20s;
}

#placement-cell .placement-list li:nth-child(3) {
  animation-delay: .30s;
}

#placement-cell .placement-list li:nth-child(4) {
  animation-delay: .40s;
}

#placement-cell .placement-list li:nth-child(5) {
  animation-delay: .50s;
}

/* Hover */

#placement-cell .placement-list li:hover {
  transform: translateY(-4px);
  border-left-color: #101A45;
  box-shadow: 0 10px 25px rgba(0,0,0,.13);
  background: rgba(255,255,255,.75);
}

/* ========================================= */
/* ANIMATIONS */
/* ========================================= */

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes underlineGrow {
  from {
    width: 0;
  }

  to {
    width: 60px;
  }
}

/* ========================================= */
/* TABLET */
/* ========================================= */



/* ========================================= */
/* MOBILE */
/* ========================================= */



/* ========================================= */
/* EXTRA SMALL DEVICES */
/* ========================================= */



/* =========================================================
   VISION & MISSION
   ========================================================= */

#vision-mission {
  margin-top: 40px !important;
  margin-bottom: 40px;
  padding-top: 20px !important;
  padding-bottom: 30px;
  animation: pageFadeIn 0.8s ease both;
}

/* Container */

#vision-mission .container {
  padding-top: 0 !important;
  padding-bottom: 30px;
}

/* =========================================================
   PAGE HEADING
   ========================================================= */

#vision-mission .text-center {
  margin-top: 0 !important;
}

#vision-mission h2 {
  margin-top: 0 !important;
  margin-bottom: 10px;
  font-size: 2rem;
  font-weight: 700;
  color: #000 !important;
}

/* Heading underline */

#vision-mission .heading-line {
  width: 70px;
  height: 3px;
  margin: 0 auto;
  border-radius: 5px;
}

/* =========================================================
   VISION & MISSION CARDS
   ========================================================= */

.vision-mission-card {
  height: 100%;
  padding: 35px 30px;
  border-radius: 15px;
  background: #fff !important;
  text-align: center;

  border: 1px solid rgba(0, 0, 0, 0.06);

  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

/* Card hover */

.vision-mission-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

/* =========================================================
   ICON
   ========================================================= */

.vision-mission-card .card-icon {
  width: 65px;
  height: 65px;

  margin: 0 auto 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 28px;
  color: #000;
}

/* =========================================================
   CARD HEADINGS
   ========================================================= */

.vision-mission-card h3 {
  margin-bottom: 18px;

  font-size: 1.5rem;
  font-weight: 700;

  color: #000 !important;
}

/* =========================================================
   CARD TEXT
   ========================================================= */

.vision-mission-card p {
  margin-bottom: 0;

  font-size: 1rem;
  line-height: 1.8;

  color: #333 !important;

  opacity: 1 !important;
  visibility: visible !important;
}

/* =========================================================
   GENERAL TEXT VISIBILITY
   ========================================================= */

#vision-mission {
  color: #000 !important;
}

#vision-mission h2,
#vision-mission h3,
#vision-mission h4,
#vision-mission p {
  opacity: 1 !important;
  visibility: visible !important;
}

/* =========================================================
   MOBILE RESPONSIVE
   ========================================================= */



/* =========================================================
   SMALL MOBILE DEVICES
   ========================================================= */



/* =========================================================
   CIVIL ENGINEERING DEPARTMENT
   ========================================================= */

#dept-civil {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: civilPageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-civil .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-civil .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: civilHeading 0.8s ease both;
}

#dept-civil .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-civil .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: civilLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-civil .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: civilIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-civil .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-civil .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: civil-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-civil .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: civilSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED SLIDE-IN ANIMATION
   ========================================================= */

#dept-civil .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-civil .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-civil .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-civil .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-civil .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-civil .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-civil .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}

#dept-civil .department-list li:nth-child(8) {
  animation-delay: 1.34s;
}


/* =========================================================
   NUMBER
   ========================================================= */

#dept-civil .department-list li::before {
  counter-increment: civil-item;
  content: counter(civil-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-civil .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* Number animation */

#dept-civil .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-civil .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

/* Page fade */

@keyframes civilPageFade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


/* Heading slide */

@keyframes civilHeading {
  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Heading line */

@keyframes civilLine {
  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }
}


/* Introduction */

@keyframes civilIntro {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* List slide */

@keyframes civilSlideIn {
  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   ACCESSIBILITY
   ========================================================= */



/* =========================================================
   AUTOMOBILE ENGINEERING DEPARTMENT
   ========================================================= */

#dept-automobile {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: autoPageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-automobile .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-automobile .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: autoHeading 0.8s ease both;
}

#dept-automobile .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-automobile .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: autoLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-automobile .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  opacity: 1 !important;

  animation: autoIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-automobile .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-automobile .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: auto-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-automobile .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: autoSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED ANIMATION
   ========================================================= */

#dept-automobile .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-automobile .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-automobile .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-automobile .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-automobile .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-automobile .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-automobile .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}

#dept-automobile .department-list li:nth-child(8) {
  animation-delay: 1.34s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-automobile .department-list li::before {
  counter-increment: auto-item;
  content: counter(auto-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-automobile .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* Number hover */

#dept-automobile .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-automobile .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#dept-automobile .department-list li {
  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes autoPageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes autoHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes autoLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes autoIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes autoSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   MECHANICAL ENGINEERING DEPARTMENT
   ========================================================= */

#dept-mechanical {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: mechPageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-mechanical .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-mechanical .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: mechHeading 0.8s ease both;
}

#dept-mechanical .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-mechanical .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: mechLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-mechanical .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: mechIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-mechanical .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-mechanical .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: mechanical-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-mechanical .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: mechSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED SLIDE ANIMATION
   ========================================================= */

#dept-mechanical .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-mechanical .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-mechanical .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-mechanical .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-mechanical .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-mechanical .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-mechanical .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-mechanical .department-list li::before {
  counter-increment: mechanical-item;
  content: counter(mechanical-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-mechanical .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* =========================================================
   NUMBER HOVER
   ========================================================= */

#dept-mechanical .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-mechanical .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#dept-mechanical .department-list li {
  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes mechPageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes mechHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes mechLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes mechIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes mechSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   ELECTRONICS & COMMUNICATION ENGINEERING DEPARTMENT
   ========================================================= */

#dept-ece {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: ecePageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-ece .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-ece .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: eceHeading 0.8s ease both;
}

#dept-ece .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-ece .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: eceLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-ece .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: eceIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-ece .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-ece .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: ece-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-ece .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: eceSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED SLIDE-IN ANIMATION
   ========================================================= */

#dept-ece .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-ece .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-ece .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-ece .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-ece .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-ece .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-ece .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-ece .department-list li::before {
  counter-increment: ece-item;
  content: counter(ece-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-ece .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* =========================================================
   NUMBER HOVER
   ========================================================= */

#dept-ece .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-ece .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#dept-ece .department-list li {
  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes ecePageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes eceHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes eceLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes eceIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes eceSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   COMPUTER SCIENCE & ENGINEERING DEPARTMENT
   ========================================================= */

#dept-cs {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: csPageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-cs .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-cs .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: csHeading 0.8s ease both;
}

#dept-cs .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-cs .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: csLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-cs .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: csIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-cs .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-cs .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: cs-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-cs .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: csSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED ANIMATION
   ========================================================= */

#dept-cs .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-cs .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-cs .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-cs .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-cs .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-cs .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-cs .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}

#dept-cs .department-list li:nth-child(8) {
  animation-delay: 1.34s;
}

#dept-cs .department-list li:nth-child(9) {
  animation-delay: 1.46s;
}

#dept-cs .department-list li:nth-child(10) {
  animation-delay: 1.58s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-cs .department-list li::before {
  counter-increment: cs-item;
  content: counter(cs-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-cs .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* =========================================================
   NUMBER HOVER
   ========================================================= */

#dept-cs .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-cs .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#dept-cs .department-list li {
  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes csPageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes csHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes csLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes csIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes csSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   INFORMATION SCIENCE ENGINEERING DEPARTMENT
   ========================================================= */

#dept-ise {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: isePageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-ise .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-ise .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: iseHeading 0.8s ease both;
}

#dept-ise .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-ise .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: iseLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-ise .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: iseIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-ise .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-ise .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: ise-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-ise .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: iseSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED ANIMATION
   ========================================================= */

#dept-ise .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-ise .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-ise .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-ise .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-ise .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-ise .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-ise .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}

#dept-ise .department-list li:nth-child(8) {
  animation-delay: 1.34s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-ise .department-list li::before {
  counter-increment: ise-item;
  content: counter(ise-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-ise .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* =========================================================
   NUMBER HOVER
   ========================================================= */

#dept-ise .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-ise .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes isePageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes iseHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes iseLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes iseIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes iseSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   ELECTRICAL & ELECTRONICS ENGINEERING DEPARTMENT
   ========================================================= */

#dept-eee {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: eeePageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-eee .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-eee .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: eeeHeading 0.8s ease both;
}

#dept-eee .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-eee .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: eeeLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-eee .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: eeeIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-eee .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-eee .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: eee-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-eee .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: eeeSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED ANIMATION
   ========================================================= */

#dept-eee .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-eee .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-eee .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-eee .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-eee .department-list li::before {
  counter-increment: eee-item;
  content: counter(eee-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-eee .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* =========================================================
   NUMBER HOVER
   ========================================================= */

#dept-eee .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-eee .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#dept-eee .department-list li {
  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes eeePageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes eeeHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes eeeLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes eeeIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes eeeSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   ALLIED ENGINEERING DEPARTMENT
   ========================================================= */

#dept-allied {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: alliedPageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#dept-allied .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#dept-allied .department-heading {
  text-align: center;
  margin-bottom: 35px;

  animation: alliedHeading 0.8s ease both;
}

#dept-allied .department-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#dept-allied .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: alliedLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#dept-allied .department-intro {
  max-width: 850px;

  margin: 0 auto 35px;

  text-align: center;

  font-size: 1.05rem;
  line-height: 1.8;

  color: #555;

  animation: alliedIntro 0.9s ease 0.3s both;
}


/* =========================================================
   DEPARTMENT CONTENT
   ========================================================= */

#dept-allied .department-card {
  max-width: 1000px;

  margin: 0 auto;
  padding: 0;

  background: transparent;

  border: none;
  box-shadow: none;
}


/* =========================================================
   DEPARTMENT LIST
   ========================================================= */

#dept-allied .department-list {
  margin: 0;
  padding: 0;

  list-style: none;

  counter-reset: allied-item;
}


/* =========================================================
   LIST ITEMS
   ========================================================= */

#dept-allied .department-list li {
  position: relative;

  display: flex;
  align-items: flex-start;

  margin-bottom: 15px;
  padding: 18px 22px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 10px;

  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);

  opacity: 0;

  animation: alliedSlideIn 0.7s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   STAGGERED ANIMATION
   ========================================================= */

#dept-allied .department-list li:nth-child(1) {
  animation-delay: 0.5s;
}

#dept-allied .department-list li:nth-child(2) {
  animation-delay: 0.62s;
}

#dept-allied .department-list li:nth-child(3) {
  animation-delay: 0.74s;
}

#dept-allied .department-list li:nth-child(4) {
  animation-delay: 0.86s;
}

#dept-allied .department-list li:nth-child(5) {
  animation-delay: 0.98s;
}

#dept-allied .department-list li:nth-child(6) {
  animation-delay: 1.10s;
}

#dept-allied .department-list li:nth-child(7) {
  animation-delay: 1.22s;
}

#dept-allied .department-list li:nth-child(8) {
  animation-delay: 1.34s;
}


/* =========================================================
   NUMBER CIRCLE
   ========================================================= */

#dept-allied .department-list li::before {
  counter-increment: allied-item;
  content: counter(allied-item);

  flex-shrink: 0;

  width: 36px;
  height: 36px;

  margin-right: 17px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 0.9rem;
  font-weight: 700;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   HOVER EFFECT
   ========================================================= */

#dept-allied .department-list li:hover {
  transform: translateX(8px) translateY(-2px);

  background: #fff;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.09);
}


/* =========================================================
   NUMBER HOVER
   ========================================================= */

#dept-allied .department-list li:hover::before {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#dept-allied .department-list strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes alliedPageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes alliedHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes alliedLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes alliedIntro {

  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes alliedSlideIn {

  from {
    opacity: 0;
    transform: translateX(-45px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   INFRASTRUCTURE PAGE
   ========================================================= */

#infrastructure {
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 30px 0;

  animation: infrastructureFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#infrastructure .container {
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#infrastructure .infrastructure-heading {
  text-align: center;
  margin-bottom: 40px;

  animation: infrastructureHeading 0.8s ease both;
}

#infrastructure .infrastructure-heading h2 {
  margin: 0 0 12px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#infrastructure .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: infrastructureLine 0.8s ease 0.4s forwards;
}


/* =========================================================
   INFRASTRUCTURE CARDS
   ========================================================= */

#infrastructure .infrastructure-card {
  height: 100%;

  padding: 35px 30px;

  background: rgba(255, 255, 255, 0.65);

  border: 1px solid rgba(0, 0, 0, 0.06);

  border-radius: 15px;

  text-align: center;

  box-shadow:
    0 5px 20px rgba(0, 0, 0, 0.05);

  opacity: 0;

  animation: infrastructureCard 0.8s ease forwards;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}


/* =========================================================
   CARD ANIMATION DELAY
   ========================================================= */

#infrastructure .col-md-6:nth-child(1)
.infrastructure-card {
  animation-delay: 0.45s;
}

#infrastructure .col-md-6:nth-child(2)
.infrastructure-card {
  animation-delay: 0.65s;
}


/* =========================================================
   CARD HOVER
   ========================================================= */

#infrastructure .infrastructure-card:hover {
  transform: translateY(-8px);

  background: #fff;

  box-shadow:
    0 15px 35px rgba(0, 0, 0, 0.10);
}


/* =========================================================
   ICON
   ========================================================= */

#infrastructure .infrastructure-icon {
  width: 70px;
  height: 70px;

  margin: 0 auto 22px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 28px;

  color: #000;

  background: rgba(0, 0, 0, 0.06);

  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}


/* =========================================================
   ICON HOVER
   ========================================================= */

#infrastructure .infrastructure-card:hover
.infrastructure-icon {
  transform: rotate(8deg) scale(1.08);

  box-shadow:
    0 6px 18px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   CARD HEADING
   ========================================================= */

#infrastructure .infrastructure-card h3 {
  margin-bottom: 18px;

  font-size: 1.5rem;
  font-weight: 700;

  color: #000 !important;
}


/* =========================================================
   CARD TEXT
   ========================================================= */

#infrastructure .infrastructure-card p {
  margin-bottom: 15px;

  font-size: 1rem;
  line-height: 1.8;

  text-align: left;

  color: #444 !important;

  opacity: 1 !important;
  visibility: visible !important;
}

#infrastructure .infrastructure-card p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   IMPORTANT TEXT
   ========================================================= */

#infrastructure .infrastructure-card strong {
  color: #000 !important;
  font-weight: 700;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes infrastructureFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes infrastructureHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes infrastructureLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes infrastructureCard {

  from {
    opacity: 0;
    transform: translateY(40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   GRIEVANCE CELL
   ========================================================= */

#grievance-cell {
  margin-top: 40px !important;
  margin-bottom: 40px;

  padding-top: 20px !important;
  padding-bottom: 30px;

  color: #333;

  animation: grievancePageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#grievance-cell .container {
  padding-top: 0 !important;
  padding-bottom: 30px;
  border-radius: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#grievance-cell .department-heading {
  margin-top: 0 !important;
  margin-bottom: 35px;

  text-align: center;

  animation: grievanceHeading 0.8s ease both;
}

#grievance-cell .department-heading h2 {
  margin-top: 0 !important;
  margin-bottom: 10px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#grievance-cell .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: grievanceLine 0.8s ease 0.35s forwards;
}


/* =========================================================
   CONTENT SECTION
   ========================================================= */

#grievance-cell .grievance-section {
  max-width: 1000px;

  margin: 0 auto 30px;

  animation: grievanceSlide 0.7s ease both;
}


/* =========================================================
   SUB HEADINGS
   ========================================================= */

#grievance-cell .grievance-section h4 {
  margin: 0 0 12px;

  padding-left: 14px;

  font-size: 1.25rem;
  font-weight: 700;

  color: #000 !important;

  border-left: 4px solid currentColor;
}


/* =========================================================
   CONTENT BLOCK
   ========================================================= */

#grievance-cell .gc-content {
  padding: 22px 25px;

  background: rgba(255, 255, 255, 0.5);

  border-left: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);

  border-radius: 0 10px 10px 0;

  box-shadow:
    0 4px 15px rgba(0, 0, 0, 0.04);

  transition:
    transform 0.3s ease,
    background 0.3s ease,
    box-shadow 0.3s ease;
}


/* =========================================================
   CONTENT HOVER
   ========================================================= */

#grievance-cell .gc-content:hover {
  transform: translateX(5px);

  background: rgba(255, 255, 255, 0.85);

  box-shadow:
    0 8px 22px rgba(0, 0, 0, 0.07);
}


/* =========================================================
   PARAGRAPHS
   ========================================================= */

#grievance-cell .gc-content p {
  margin: 0 0 15px;

  font-size: 1rem;
  line-height: 1.8;

  text-align: justify;
  text-justify: inter-word;

  color: #333 !important;

  opacity: 1 !important;
  visibility: visible !important;
}

#grievance-cell .gc-content p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   LISTS
   ========================================================= */

#grievance-cell .gc-content ol,
#grievance-cell .gc-content ul {
  margin: 0;

  padding-left: 25px;
}

#grievance-cell .gc-content li {
  margin-bottom: 9px;

  font-size: 1rem;
  line-height: 1.7;

  color: #333 !important;

  text-align: justify;
}

#grievance-cell .gc-content li:last-child {
  margin-bottom: 0;
}


/* =========================================================
   LIST MARKERS
   ========================================================= */

#grievance-cell .gc-content li::marker {
  font-weight: 700;
  color: #000;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#grievance-cell p,
#grievance-cell li,
#grievance-cell h4 {
  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes grievancePageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes grievanceHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes grievanceLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes grievanceSlide {

  from {
    opacity: 0;
    transform: translateX(-30px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   REACH US
   ========================================================= */

#reach-us {
  margin-top: 40px !important;
  margin-bottom: 40px;

  padding-top: 20px !important;
  padding-bottom: 30px;

  animation: reachPageFade 0.8s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#reach-us .container {
  padding-top: 0 !important;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   Same style as other pages
   ========================================================= */

#reach-us .department-heading {
  margin-top: 0 !important;
  margin-bottom: 40px;

  text-align: center;

  animation: reachHeading 0.8s ease both;
}


#reach-us .department-heading h2 {
  margin-top: 0 !important;
  margin-bottom: 10px;

  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;

  color: #000 !important;
}


/* =========================================================
   HEADING UNDERLINE
   ========================================================= */

#reach-us .heading-line {
  width: 0;
  height: 3px;

  margin: 0 auto;

  border-radius: 10px;

  animation: reachLine 0.8s ease 0.35s forwards;
}


/* =========================================================
   PROFILE GRID
   ========================================================= */

#reach-us .profile-grid {
  max-width: 1000px;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 30px;
}


/* =========================================================
   PROFILE CARD
   ========================================================= */

#reach-us .profile-card {
  position: relative;

  padding: 35px 30px;

  background: rgba(255, 255, 255, 0.65);

  border: 1px solid rgba(0, 0, 0, 0.07);

  border-radius: 16px;

  text-align: center;

  box-shadow:
    0 8px 25px rgba(0, 0, 0, 0.07);

  opacity: 0;

  animation: profileSlide 0.8s ease forwards;

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease;
}


/* =========================================================
   STAGGERED CARD ANIMATION
   ========================================================= */

#reach-us .profile-card:nth-child(1) {
  animation-delay: 0.45s;
}


#reach-us .profile-card:nth-child(2) {
  animation-delay: 0.65s;
}


/* =========================================================
   CARD HOVER
   ========================================================= */

#reach-us .profile-card:hover {
  transform: translateY(-8px);

  background: rgba(255, 255, 255, 0.95);

  box-shadow:
    0 15px 35px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   PROFILE IMAGE CONTAINER
   ========================================================= */

#reach-us .profile-image {
  width: 135px;
  height: 135px;

  margin: 0 auto 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  overflow: hidden;

  background: #fff;

  border: 4px solid rgba(0, 0, 0, 0.08);

  box-shadow:
    0 6px 18px rgba(0, 0, 0, 0.10);

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}


/* =========================================================
   PROFILE IMAGE
   ========================================================= */

#reach-us .profile-image img {
  width: 100%;
  height: 100%;

  object-fit: fill;

  border-radius: 50%;

  transition:
    transform 0.4s ease;
}


/* =========================================================
   IMAGE HOVER
   ========================================================= */

#reach-us .profile-card:hover .profile-image {
  transform: scale(1.05);

  box-shadow:
    0 10px 25px rgba(0, 0, 0, 0.15);
}


#reach-us .profile-card:hover .profile-image img {
  transform: scale(1.08);
}


/* =========================================================
   PROFILE INFO
   ========================================================= */

#reach-us .profile-info {
  color: #333;

  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   DESIGNATION
   ========================================================= */

#reach-us .profile-info h4 {
  margin-bottom: 12px;

  font-size: 1.35rem;
  font-weight: 700;

  color: #000 !important;
}


/* =========================================================
   NAME
   ========================================================= */

#reach-us .profile-info .profile-name {
  margin-bottom: 8px;

  font-size: 1.05rem;
  font-weight: 700;

  color: #000 !important;
}


/* =========================================================
   PROFILE TEXT
   ========================================================= */

#reach-us .profile-info p {
  margin: 7px 0;

  font-size: 0.95rem;
  line-height: 1.6;

  color: #444 !important;

  opacity: 1 !important;
  visibility: visible !important;
}


/* =========================================================
   ICONS
   ========================================================= */

#reach-us .profile-info i {
  width: 20px;

  margin-right: 6px;

  color: #000 !important;

  transition:
    transform 0.25s ease;
}


#reach-us .profile-card:hover .profile-info i {
  transform: scale(1.1);
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#reach-us h2,
#reach-us h4,
#reach-us p,
#reach-us img {
  opacity: 1;
  visibility: visible;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes reachPageFade {

  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}


@keyframes reachHeading {

  from {
    opacity: 0;
    transform: translateY(-25px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


@keyframes reachLine {

  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }

}


@keyframes profileSlide {

  from {
    opacity: 0;
    transform: translateY(40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


/* =========================================================
   TABLET
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   FEEDBACK PAGE
   ========================================================= */

#feedback {
  margin-top: 40px !important;
  margin-bottom: 40px;
  padding-top: 20px !important;
  padding-bottom: 30px;
  animation: feedbackPageFade 0.7s ease both;
}


/* =========================================================
   CONTAINER
   ========================================================= */

#feedback .container {
  padding-top: 0 !important;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#feedback .department-heading {
  margin-top: 0 !important;
  margin-bottom: 30px;
  text-align: center;
  animation: feedbackHeading 0.7s ease both;
}

#feedback .department-heading h2 {
  margin-top: 0 !important;
  margin-bottom: 10px;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: #000 !important;
}


/* =========================================================
   HEADING LINE
   ========================================================= */

#feedback .heading-line {
  width: 0;
  height: 3px;
  margin: 0 auto;
  border-radius: 10px;
  background: #000;
  animation: feedbackLine 0.7s ease 0.25s forwards;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

#feedback .feedback-intro {
  max-width: 900px;
  margin: 0 auto 30px;
  text-align: justify;
  animation: feedbackSlide 0.7s ease 0.25s both;
}

#feedback .feedback-intro p {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.8;
  color: #000 !important;
  text-align: justify;
}


/* =========================================================
   FORM WRAPPER
   TRANSPARENT
   ========================================================= */

#feedback .feedback-form-wrapper {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 28px 30px;

  background: transparent !important;
  border: none !important;
  border-radius: 0;
  box-shadow: none;

  animation: feedbackFormSlide 0.8s ease 0.4s both;
}


/* =========================================================
   FORM WRAPPER HOVER
   ========================================================= */

#feedback .feedback-form-wrapper:hover {
  background: transparent !important;
  border: none !important;
  box-shadow: none;
  transform: none;
}


/* =========================================================
   FORM FIELD
   ========================================================= */

#feedback .feedback-field {
  width: 100%;
  margin: 0 0 22px 0;
}


/* =========================================================
   LABEL
   ========================================================= */

#feedback .feedback-field label {
  display: block;
  width: 100%;

  margin: 0 0 8px 0;
  padding: 0;

  font-size: 0.94rem;
  font-weight: 600;
  line-height: 1.4;

  color: #000 !important;
  text-align: left;
  letter-spacing: 0.1px;
}


/* =========================================================
   INPUT / SELECT / TEXTAREA
   ========================================================= */

#feedback .feedback-field .form-control,
#feedback .feedback-field .form-select {
  display: block;

  width: 100%;
  min-height: 48px;

  margin: 0;
  padding: 12px 15px;

  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.5;

  color: #000 !important;

  background: rgba(255, 255, 255, 0.55) !important;

  border: 1px solid rgba(0, 0, 0, 0.18) !important;
  border-radius: 9px;

  outline: none;

  box-shadow: none;

  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease;
}


/* =========================================================
   PLACEHOLDER
   ========================================================= */

#feedback .feedback-field .form-control::placeholder {
  color: #777 !important;

  font-family: inherit;
  font-size: 0.94rem;
  font-weight: 400;
  line-height: 1.5;

  opacity: 1;
  text-align: left;
}


/* =========================================================
   PLACEHOLDER FOCUS
   ========================================================= */

#feedback .feedback-field .form-control:focus::placeholder {
  color: #999 !important;
  opacity: 0.65;
}


/* =========================================================
   INPUT HOVER
   ========================================================= */

#feedback .feedback-field .form-control:hover,
#feedback .feedback-field .form-select:hover {
  background: rgba(255, 255, 255, 0.72) !important;

  border-color: rgba(0, 0, 0, 0.28) !important;

  box-shadow:
    0 3px 10px rgba(0, 0, 0, 0.04);

  transform: translateY(-1px);
}


/* =========================================================
   INPUT FOCUS
   ========================================================= */

#feedback .feedback-field .form-control:focus,
#feedback .feedback-field .form-select:focus {
  outline: none;

  background: rgba(255, 255, 255, 0.90) !important;

  border-color: #000 !important;

  box-shadow:
    0 0 0 3px rgba(0, 0, 0, 0.06);

  transform: translateY(-1px);
}


/* =========================================================
   SELECT
   ========================================================= */

#feedback .feedback-field .form-select {
  min-height: 48px;

  padding-top: 12px;
  padding-bottom: 12px;
  padding-left: 15px;
  padding-right: 42px;

  color: #555 !important;

  cursor: pointer;
}


/* =========================================================
   SELECT OPTIONS
   ========================================================= */

#feedback .feedback-field .form-select option {
  color: #000;
  background: #fff;

  font-size: 0.95rem;
  font-weight: 400;
}


/* =========================================================
   TEXTAREA
   ========================================================= */

#feedback .feedback-field textarea.form-control {
  min-height: 145px;

  padding: 14px 15px;

  line-height: 1.6;

  resize: vertical;
}


/* =========================================================
   TEXTAREA PLACEHOLDER
   ========================================================= */

#feedback .feedback-field textarea.form-control::placeholder {
  color: #777 !important;
  line-height: 1.6;
}


/* =========================================================
   SUBMIT BUTTON
   ========================================================= */

#feedback .feedback-submit {
  display: block;

  width: 100%;
  min-height: 48px;

  margin: 5px 0 0 0;
  padding: 12px 20px;

  border: none;
  border-radius: 9px;

  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;

  color: #fff;

  cursor: pointer;

  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    opacity 0.25s ease;
}


/* =========================================================
   BUTTON HOVER
   ========================================================= */

#feedback .feedback-submit:hover {
  transform: translateY(-2px);

  box-shadow:
    0 7px 18px rgba(0, 0, 0, 0.18);
}


/* =========================================================
   BUTTON ACTIVE
   ========================================================= */

#feedback .feedback-submit:active {
  transform: translateY(0);

  box-shadow:
    0 3px 8px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   BUTTON ICON
   ========================================================= */

#feedback .feedback-submit i {
  margin-right: 7px;

  transition:
    transform 0.25s ease;
}

#feedback .feedback-submit:hover i {
  transform: translateX(3px);
}


/* =========================================================
   BOTTOM NOTE
   ========================================================= */

#feedback .feedback-note {
  width: 100%;
  max-width: 720px;

  margin: 18px auto 0;

  text-align: center;

  animation: feedbackSlide 0.7s ease 0.65s both;
}

#feedback .feedback-note p {
  margin: 0;

  font-size: 0.9rem;
  line-height: 1.6;

  color: #555 !important;

  text-align: center;
}


/* =========================================================
   TEXT VISIBILITY
   ========================================================= */

#feedback h2,
#feedback p,
#feedback label,
#feedback input,
#feedback select,
#feedback textarea,
#feedback button {
  opacity: 1;
  visibility: visible;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

@keyframes feedbackPageFade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


@keyframes feedbackHeading {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


@keyframes feedbackLine {
  from {
    width: 0;
    opacity: 0;
  }

  to {
    width: 70px;
    opacity: 1;
  }
}


@keyframes feedbackSlide {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


@keyframes feedbackFormSlide {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */




/* =========================================================
   REDUCED MOTION
   ========================================================= */



/* =========================================================
   MANDATORY DISCLOSURES
   ========================================================= */

#mandatory {
  margin-top: 40px;
  margin-bottom: 40px;
}

#mandatory h2 {
  margin-bottom: 25px;
  color: #000 !important;
  font-size: 2rem;
  font-weight: 700;
}

#mandatory .mandatory-intro {
  max-width: 900px;
  margin: 0 auto 30px;
  color: #000 !important;
  font-size: 1rem;
  line-height: 1.7;
  text-align: justify;
}

#mandatory table {
  width: 100%;
  margin: 0 auto;
  background: transparent;
}

#mandatory th {
  color: #000 !important;
  font-weight: 600;
  text-align: center;
  vertical-align: middle;
}

#mandatory td {
  color: #000 !important;
  vertical-align: middle;
}

#mandatory td:first-child {
  width: 80px;
  text-align: center;
}

#mandatory td:last-child,
#mandatory th:last-child {
  width: 130px;
  text-align: center;
}

#mandatory a {
  color: #000 !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#mandatory a:hover {
  color: #555 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */



/* =========================================================
   RTI PAGE
   ========================================================= */

#rti {
  margin-top: 40px;
  margin-bottom: 40px;
  padding-top: 20px;
  padding-bottom: 30px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

#rti h2 {
  margin-top: 0;
  margin-bottom: 25px;

  color: #000 !important;

  font-size: 2rem;
  font-weight: 700;

  text-align: center;
}


/* =========================================================
   RTI CONTENT
   ========================================================= */

#rti .rti-intro {
  max-width: 900px;

  margin: 0 auto;

  color: #000 !important;

  font-size: 1.05rem;
  line-height: 1.8;

  text-align: justify;
}


/* =========================================================
   MOBILE
   ========================================================= */




/* =========================================================
   SMALL MOBILE
   ========================================================= */



/* ============================================================
   MODERN 2026 VISUAL LAYER
   Content/data untouched — presentation only.
   ============================================================ */

:root{
  --modern-navy:#071a33;
  --modern-blue:#0b3a63;
  --modern-cyan:#1f8fbf;
  --modern-gold:#d5a94a;
  --modern-ink:#0c1726;
  --modern-muted:#5d6b7b;
  --modern-surface:rgba(255,255,255,.90);
  --modern-surface-soft:rgba(255,255,255,.76);
  --modern-border:rgba(255,255,255,.62);
  --modern-shadow:0 18px 55px rgba(4,18,38,.13);
  --modern-shadow-hover:0 28px 70px rgba(4,18,38,.20);
}

html{scroll-behavior:smooth;scroll-padding-top:90px;}

body{
  font-family:"Roboto",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--modern-ink) !important;
  background-color:#081b34 !important;
  background-image:
    linear-gradient(135deg,rgba(4,17,34,.58),rgba(10,58,91,.30) 45%,rgba(7,26,51,.62)),
    url("../images/building.jpeg") !important;
  background-attachment:fixed !important;
  background-position:center top !important;
  background-size:cover !important;
  overflow-x:hidden;
}

body::before{
  background:
    radial-gradient(circle at 10% 15%,rgba(31,143,191,.14),transparent 28%),
    radial-gradient(circle at 90% 25%,rgba(213,169,74,.10),transparent 24%),
    linear-gradient(180deg,rgba(255,255,255,.025),rgba(0,0,0,.08));
}

/* Elegant selection + focus */
::selection{background:rgba(31,143,191,.25);color:#061426;}
:focus-visible{outline:3px solid rgba(31,143,191,.48);outline-offset:3px;}

/* Top utility strip */
.top-strip{
  background:rgba(4,16,32,.72) !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  backdrop-filter:blur(16px) saturate(140%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(140%) !important;
}
.top-strip-inner{
  min-height:36px;
  font-size:.79rem;
  letter-spacing:.02em;
}
.top-strip-inner span{
  color:rgba(255,255,255,.86) !important;
  font-weight:500 !important;
}

/* Premium brand area */
.brand-area{
  background:linear-gradient(180deg,rgba(8,27,52,.88),rgba(8,36,64,.72)) !important;
  border-bottom:1px solid rgba(255,255,255,.13) !important;
  backdrop-filter:blur(18px) saturate(140%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(140%) !important;
}
.brand-inner{padding:18px 0 !important;}
.brand{
  gap:17px;
  transition:transform .35s ease,filter .35s ease;
}
.brand:hover{transform:translateY(-2px);filter:brightness(1.05);}
.brand img{
  width:78px !important;
  height:78px !important;
  border-radius:20px !important;
  border:1px solid rgba(255,255,255,.38) !important;
  background:rgba(255,255,255,.10) !important;
  box-shadow:0 12px 32px rgba(0,0,0,.25) !important;
}
.brand strong{
  font-size:.76rem !important;
  letter-spacing:.16em !important;
  color:rgba(255,255,255,.72) !important;
}
.brand b{
  font-size:clamp(1.18rem,2.2vw,1.62rem) !important;
  letter-spacing:.01em;
  color:#fff !important;
}
.brand em{
  color:#dcecf5 !important;
  letter-spacing:.10em;
  font-size:.76rem !important;
}
.affiliation{
  border-left:1px solid rgba(255,255,255,.22) !important;
  color:rgba(255,255,255,.82) !important;
}
.affiliation span,.affiliation strong{color:inherit !important;}

/* Sticky navigation */
.main-nav{
  background:rgba(5,22,43,.92) !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.18) !important;
  backdrop-filter:blur(18px) saturate(145%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(145%) !important;
  transition:box-shadow .3s ease,background .3s ease;
}
.main-nav.is-scrolled{
  background:rgba(4,18,36,.98) !important;
  box-shadow:0 16px 40px rgba(0,0,0,.28) !important;
}
.main-nav .nav-link{
  position:relative;
  color:rgba(255,255,255,.88) !important;
  font-size:.86rem;
  font-weight:600 !important;
  padding:12px 13px !important;
  margin:5px 2px;
  border-radius:11px !important;
  transition:color .25s ease,background .25s ease,transform .25s ease;
}
.main-nav .nav-link::after{
  content:"";
  position:absolute;
  left:13px;right:13px;bottom:5px;
  height:2px;
  border-radius:99px;
  background:var(--modern-gold);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .28s ease;
}
.main-nav .nav-link:hover,
.main-nav .nav-link:focus,
.main-nav .nav-link.active{
  background:rgba(255,255,255,.075) !important;
  color:#fff !important;
  transform:translateY(-1px);
}
.main-nav .nav-link:hover::after,
.main-nav .nav-link.active::after{transform:scaleX(1);}
.main-nav .dropdown-menu{
  background:rgba(255,255,255,.97) !important;
  border:1px solid rgba(9,36,65,.10) !important;
  border-radius:15px !important;
  padding:8px !important;
  box-shadow:0 24px 60px rgba(2,17,34,.22) !important;
  animation:menuIn .18s ease both;
}
.main-nav .dropdown-item{
  font-size:.88rem;
  padding:10px 12px !important;
  border-radius:9px !important;
  transition:background .2s ease,transform .2s ease;
}
.main-nav .dropdown-item:hover,
.main-nav .dropdown-item:focus{
  background:#edf6fa !important;
  color:#08213b !important;
  transform:translateX(3px);
}

/* Hero carousel: image unchanged, presentation upgraded */
.site-hero-carousel{
  height:clamp(440px,58vw,700px) !important;
  margin:0 auto 42px !important;
  border:0 !important;
  border-radius:0 0 28px 28px;
  box-shadow:0 24px 70px rgba(2,18,37,.25) !important;
  background:#071a33 !important;
}
.site-hero-carousel .carousel-item{
  height:clamp(440px,58vw,700px) !important;
  min-height:0 !important;
}
.site-hero-carousel .carousel-item img{
  height:100% !important;
  width:100% !important;
  object-fit:fill !important; /* keeps original image proportions/content presentation */
  filter:saturate(1.04) contrast(1.02);
}
.site-hero-carousel .carousel-item::after{
  background:
    linear-gradient(90deg,rgba(2,16,34,.32),transparent 45%,rgba(2,16,34,.12)),
    linear-gradient(180deg,rgba(2,16,34,.04),transparent 55%,rgba(2,16,34,.34)) !important;
}
.site-hero-carousel .carousel-control-prev,
.site-hero-carousel .carousel-control-next{width:10% !important;}
.site-hero-carousel .carousel-control-prev-icon,
.site-hero-carousel .carousel-control-next-icon{
  width:3rem;height:3rem;
  border-radius:50%;
  background-color:rgba(5,25,47,.48);
  background-size:45%;
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.25);
  transition:transform .25s ease,background .25s ease;
}
.site-hero-carousel .carousel-control-prev:hover .carousel-control-prev-icon,
.site-hero-carousel .carousel-control-next:hover .carousel-control-next-icon{
  transform:scale(1.08);
  background-color:rgba(5,25,47,.72);
}
.site-hero-carousel .carousel-indicators [data-bs-target]{
  width:28px !important;height:4px !important;
  border:0 !important;border-radius:99px !important;
  margin:0 4px !important;
  opacity:.55;
  transition:width .3s ease,opacity .3s ease;
}
.site-hero-carousel .carousel-indicators .active{width:48px !important;opacity:1;}

/* General content surfaces */
main,
.content-box,
.gallery-page-container,
.feedback-form,
.about-column,
.quick-column,
.album,
.card,
.list-group-item,
.table-responsive{
  color:var(--modern-ink) !important;
  background:var(--modern-surface) !important;
  border:1px solid rgba(255,255,255,.72) !important;
  border-radius:22px !important;
  box-shadow:var(--modern-shadow) !important;
  backdrop-filter:blur(16px) saturate(130%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(130%) !important;
}

section .container{
  background:rgba(255,255,255,.83) !important;
  border:1px solid rgba(255,255,255,.70) !important;
  border-radius:24px !important;
  padding:34px !important;
  box-shadow:var(--modern-shadow);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

h1,h2,h3,h4,h5,h6,p,li,label,small,span,.lead,.text-primary,.text-muted,.table,.table td,.table th,.content-box,.album{
  color:var(--modern-ink) !important;
}
h1,h2,h3,h4,h5,h6{
  letter-spacing:-.025em;
  font-weight:750 !important;
}
p,li,.justify-text{font-weight:500 !important;line-height:1.78;}
.lead{font-weight:500 !important;color:#34475b !important;}
.text-muted{color:var(--modern-muted) !important;}
main a,section a,.container a,.content-box a,.list-group-item a,.album a{
  color:var(--modern-blue);
  font-weight:600;
  text-underline-offset:3px;
  transition:color .2s ease;
}
main a:hover,section a:hover,.container a:hover,.content-box a:hover,.list-group-item a:hover,.album a:hover{
  color:var(--modern-cyan);
}

/* Section headings */
.heading-line{
  height:3px !important;
  width:72px !important;
  margin:14px auto 24px !important;
  border-radius:99px;
  background:linear-gradient(90deg,var(--modern-blue),var(--modern-gold)) !important;
  box-shadow:0 4px 14px rgba(31,143,191,.20);
}
#banner{margin-bottom:0 !important;}
#welcome{margin-top:0 !important;}
#news-events{margin-top:28px !important;margin-bottom:42px !important;}

/* Cards and department/infrastructure elements */
.department-card,
.infrastructure-card,
.vision-mission-card,
.profile-card,
.feedback-form-wrapper{
  background:rgba(255,255,255,.91) !important;
  border:1px solid rgba(7,39,70,.09) !important;
  border-radius:20px !important;
  box-shadow:0 12px 35px rgba(5,28,52,.10) !important;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.department-card:hover,
.infrastructure-card:hover,
.vision-mission-card:hover,
.profile-card:hover{
  transform:translateY(-7px);
  box-shadow:var(--modern-shadow-hover) !important;
  border-color:rgba(31,143,191,.24) !important;
}
.infrastructure-icon,.card-icon{
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.infrastructure-card:hover .infrastructure-icon,
.vision-mission-card:hover .card-icon{transform:translateY(-4px) scale(1.06);}

/* Tables */
.table-responsive{overflow:hidden !important;}
.table{margin-bottom:0 !important;}
.table thead th,
.table th{
  background:#092846 !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.14) !important;
  font-weight:700 !important;
}
.table td{
  background:rgba(255,255,255,.80) !important;
  border-color:rgba(9,40,70,.09) !important;
}
.table tbody tr{transition:background .2s ease,transform .2s ease;}
.table tbody tr:hover td{background:#f0f7fa !important;}

/* Forms */
.form-control,.form-select,textarea,input[type=text],input[type=email],
input[type=password],input[type=number],input[type=date],input[type=file]{
  color:#102033 !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid #d6e0e8 !important;
  border-radius:12px !important;
  min-height:46px;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.form-control:focus,.form-select:focus,textarea:focus,input:focus{
  border-color:var(--modern-cyan) !important;
  box-shadow:0 0 0 4px rgba(31,143,191,.12) !important;
  transform:translateY(-1px);
}
.btn-primary,button[type=submit],.submit-center,.controls button,.btn-vgpu,
.feedback-submit{
  background:linear-gradient(135deg,#0a365d,#0c6c91) !important;
  border:0 !important;
  color:#fff !important;
  border-radius:12px !important;
  padding:11px 20px !important;
  box-shadow:0 10px 24px rgba(8,54,88,.18);
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.btn-primary:hover,button[type=submit]:hover,.submit-center:hover,.controls button:hover,
.btn-vgpu:hover,.feedback-submit:hover{
  background:linear-gradient(135deg,#0b406c,#0d789e) !important;
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(8,54,88,.25);
  filter:saturate(1.05);
}

/* Gallery */

.gallery-page-title {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.album{
  overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease;
}
.album:hover{transform:translateY(-6px);box-shadow:var(--modern-shadow-hover) !important;}
.album img,.gallery-page-container img{
  transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .35s ease;
}
.album:hover img{transform:scale(1.035);filter:saturate(1.08);}

/* Footer */
.site-footer{
  margin-top:70px !important;
  padding:58px 0 0 !important;
  background:
    radial-gradient(circle at 12% 0%,rgba(31,143,191,.18),transparent 25%),
    linear-gradient(145deg,#041426,#092b49 55%,#061a31) !important;
  border-top:1px solid rgba(255,255,255,.13) !important;
}
.footer-grid{gap:50px !important;padding-bottom:28px !important;}
.footer-grid h3{
  color:#fff !important;
  font-size:1rem !important;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.footer-grid h3::after{
  content:"";
  display:block;
  width:32px;height:2px;
  margin-top:9px;
  border-radius:99px;
  background:var(--modern-gold);
}
.footer-grid a{color:rgba(255,255,255,.74) !important;transition:color .2s ease,transform .2s ease;}
.footer-grid a:hover{color:#fff !important;transform:translateX(3px);}
.footer-brand{color:#fff !important;font-weight:750;font-size:1rem;line-height:1.5;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12) !important;
  padding:18px 0 !important;
  color:rgba(255,255,255,.64) !important;
}
.footer-bottom span,.footer-bottom a{color:inherit !important;font-size:.78rem;}

/* Back-to-top */
#backToTop{
  display:flex !important;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px) scale(.9);
  width:48px !important;height:48px !important;
  bottom:24px !important;right:24px !important;
  background:rgba(6,34,59,.88) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  backdrop-filter:blur(10px);
  box-shadow:0 14px 35px rgba(0,0,0,.22) !important;
  transition:opacity .3s ease,visibility .3s ease,transform .3s ease !important;
}
#backToTop.show{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
#backToTop:hover{background:#0b5475 !important;transform:translateY(-3px) scale(1.03) !important;}

/* Scroll reveal */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--reveal-delay,0ms);
}
.reveal.is-visible{opacity:1;transform:none;}
.reveal-left{transform:translateX(-28px);}
.reveal-right{transform:translateX(28px);}
.reveal-left.is-visible,.reveal-right.is-visible{transform:none;}

/* Subtle page entrance */
body.page-ready .site-header,
body.page-ready main,
body.page-ready .site-footer{animation:fadeUp .65s ease both;}
body.page-ready main{animation-delay:.05s;}
body.page-ready .site-footer{animation-delay:.1s;}

@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes menuIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}





/* =========================================================
   FINAL RESPONSIVE + HAMBURGER NAVIGATION FIX
   Keeps existing styling and page logic unchanged.
   ========================================================= */

/* Prevent horizontal overflow caused by fixed-width children */
html, body { max-width: 100%; overflow-x: hidden; }
img, video, iframe, canvas, svg { max-width: 100%; }
*, *::before, *::after { box-sizing: border-box; }

/* Bootstrap hamburger: reliable touch target and visibility */
.main-nav .navbar-toggler{
  display:none;
  align-items:center;
  justify-content:center;
  min-width:48px;
  min-height:44px;
  margin-left:auto;
  cursor:pointer;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.78);
  border-radius:10px;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.main-nav .navbar-toggler:focus{outline:0;box-shadow:0 0 0 3px rgba(255,255,255,.22);}

/* Mobile/tablet collapsed navigation */


/* Desktop navigation always visible */


/* Small phones */


/* Very small screens and landscape phones */


/* Wide screens: preserve readable layout without changing content */


/* =========================================================
   MOBILE DROPDOWN NAVIGATION FIX
   Ensures About Us and every navbar dropdown opens inside
   the hamburger menu without changing page content or layout.
   ========================================================= */


/* =========================================================
   STABLE MOBILE DROPDOWN OVERRIDE
   Removes focus-based auto-close behavior from the previous fix.
   Bootstrap's .show state controls the dropdown.
   ========================================================= */


/* =====================================================
   FINAL MOBILE NAVBAR + DROPDOWN FIX
   Keeps Bootstrap dropdown open while selecting items
   ===================================================== */



/* =========================================================
   FINAL RESPONSIVE SAFETY OVERRIDE - SEPT 2026
   ========================================================= */
html, body { width:100%; max-width:100%; overflow-x:hidden !important; }
*, *::before, *::after { box-sizing:border-box; }
img, picture, video, iframe, canvas, svg { max-width:100%; height:auto; }
main, section, .container, .container-fluid, .page-shell { min-width:0; max-width:100%; }

/* Tables: fit narrow screens by reducing text and allowing wrapping, not page scrolling */
.table-responsive { width:100%; max-width:100%; overflow-x:visible !important; }


/* Mobile dropdown: only Bootstrap's open class controls visibility. */


/* =========================================================
   FINAL COURSES TABLE FIX - MOBILE
   Shows ALL columns without horizontal page scrolling
   ========================================================= */



/* Fix Courses table width on mobile */



/* =========================================================
   CLEAN FINAL FIX — COURSES + MOBILE PAGE VISIBILITY
   This block is intentionally last and overrides earlier
   conflicting responsive rules.
   ========================================================= */

/* Full document must be vertically scrollable */
html, body {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100% !important;
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}





/* =========================================================
   FINAL COURSES PAGE MOBILE FIX
   ========================================================= */




/* =========================================================
   EXTRA SMALL ANDROID / IPHONE SCREENS
   ========================================================= */


/* =========================================================
   CLEAN RESPONSIVE SYSTEM — SINGLE SOURCE OF RESPONSIVENESS
   Previous @media blocks were removed before this block.
   Desktop styling above is preserved.
   ========================================================= */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  scroll-behavior: smooth;
}

body {
  width: 100%;
  min-width: 0;
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

/* Never allow normal content boxes to exceed the viewport */
img, video, iframe, canvas, svg {
  max-width: 100%;
  height: auto;
}

iframe {
  width: 100%;
}

/* =========================================================
   DESKTOP / LARGE SCREENS
   ========================================================= */
@media (min-width: 1200px) {
  .page-shell {
    width: min(100% - 48px, 1440px);
    margin-left: auto;
    margin-right: auto;
  }

  section .container {
    max-width: min(100% - 48px, 1320px);
  }
}

/* =========================================================
   TABLET AND BELOW
   ========================================================= */
@media (max-width: 991.98px) {

  .page-shell,
  .container,
  .container-fluid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  section,
  main,
  .content,
  .page-content,
  .content-box,
  .courses-section,
  .courses-table-wrapper {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto;
    max-height: none;
  }

  /* Mobile hamburger */
  .main-nav .navbar-toggler {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .main-nav .navbar-collapse {
    width: 100%;
    overflow: visible !important;
  }

  .main-nav .navbar-nav {
    width: 100%;
    align-items: stretch !important;
  }

  .main-nav .nav-item {
    width: 100%;
  }

  .main-nav .nav-link {
    width: 100%;
    white-space: normal;
  }

  /* Dropdown stays open until Bootstrap closes it */
  .main-nav .nav-item.dropdown {
    position: relative !important;
  }

  .main-nav .dropdown-menu {
    position: static !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 4px 0 8px !important;
    transform: none !important;
  }

  .main-nav .nav-item.dropdown > .dropdown-menu:not(.show) {
    display: none !important;
  }

  .main-nav .nav-item.dropdown.show > .dropdown-menu,
  .main-nav .nav-item.dropdown > .dropdown-menu.show {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }

  .main-nav .dropdown-toggle,
  .main-nav .dropdown-item {
    touch-action: manipulation;
    pointer-events: auto;
  }

  .main-nav .dropdown-menu,
  .main-nav .dropdown-menu * {
    transition: none !important;
  }

  /* Brand/header content may wrap instead of overflowing */
  .brand-inner,
  .top-strip-inner {
    min-width: 0;
    flex-wrap: wrap;
  }

  .brand {
    min-width: 0;
    max-width: 100%;
  }

  .brand span,
  .affiliation {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

/* =========================================================
   MOBILE CONTENT CONTAINERS
   ========================================================= */
@media (max-width: 767.98px) {

  body {
    min-width: 0;
  }

  .page-shell,
  .container,
  .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 12px;
    padding-right: 12px;
  }

  section,
  main,
  .content,
  .page-content,
  .content-box,
  .courses-section,
  .courses-table-wrapper {
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Normal content must grow vertically and never be clipped */
  section .container {
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }

  /* =======================================================
     COURSES TABLE — MOBILE CARD VIEW
     All 7 cells remain visible. No horizontal page scrolling.
     ======================================================= */
  #courses .courses-table-wrapper {
    overflow: visible !important;
  }

  #courses table.courses-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    table-layout: auto !important;
    border: 0 !important;
  }

  #courses table.courses-table thead {
    display: none !important;
  }

  #courses table.courses-table tbody {
    display: block !important;
    width: 100% !important;
  }

  #courses table.courses-table tbody tr {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 18px !important;
    border: 1px solid rgba(0,0,0,.16) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }

  #courses table.courses-table tbody td {
    display: grid !important;
    grid-template-columns: minmax(105px, 42%) minmax(0, 58%) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 46px !important;
    height: auto !important;
    padding: 11px 12px !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(0,0,0,.12) !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-align: left !important;
    vertical-align: top !important;
  }

  #courses table.courses-table tbody td::before {
    content: attr(data-label) !important;
    display: block !important;
    min-width: 0 !important;
    padding-right: 10px !important;
    font-weight: 700 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #courses table.courses-table tbody td:last-child {
    border-bottom: 0 !important;
  }

  /* Other wide tables may scroll inside their own wrapper only,
     never causing the whole page to scroll horizontally. */
  .table-responsive {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  .table-responsive table {
    max-width: none;
  }

  /* Text and headings should wrap rather than widen the page */
  h1, h2, h3, h4, h5, h6,
  p, li, a, span, td, th {
    overflow-wrap: anywhere;
  }

  .brand-area .affiliation {
    width: 100%;
  }
}

/* =========================================================
   SMALL PHONES
   ========================================================= */
@media (max-width: 480px) {

  .page-shell,
  .container,
  .container-fluid {
    padding-left: 10px;
    padding-right: 10px;
  }

  section .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .brand-inner {
    gap: 10px;
  }

  .brand {
    gap: 8px;
  }

  #courses table.courses-table tbody td {
    grid-template-columns: 1fr !important;
    gap: 4px;
  }

  #courses table.courses-table tbody td::before {
    padding-right: 0 !important;
  }
}


/* =========================================================
   EXTRA MOBILE BREAKPOINTS
   320px → 480px phones
   ========================================================= */

/* 481px–575px: larger phones */
@media (min-width: 481px) and (max-width: 575.98px) {
  .page-shell,
  .container,
  .container-fluid {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  #courses table.courses-table tbody td {
    grid-template-columns: minmax(120px, 40%) minmax(0, 60%) !important;
  }
}

/* 360px–480px: common Android and iPhone widths */
@media (min-width: 360px) and (max-width: 480px) {
  html {
    font-size: 15px;
  }

  .page-shell,
  .container,
  .container-fluid {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  #courses table.courses-table tbody td {
    grid-template-columns: minmax(105px, 42%) minmax(0, 58%) !important;
    padding: 10px !important;
  }

  .main-nav .dropdown-menu {
    width: 100% !important;
  }
}

/* 320px–359px: very small phones */
@media (max-width: 359.98px) {
  html {
    font-size: 14px;
  }

  body {
    width: 100% !important;
    min-width: 0 !important;
  }

  .page-shell,
  .container,
  .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  .brand,
  .brand-inner,
  .top-strip-inner {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .brand img {
    max-width: 58px !important;
    height: auto !important;
  }

  .main-nav .navbar-toggler {
    max-width: 100% !important;
  }

  .main-nav .nav-link,
  .main-nav .dropdown-item {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #courses table.courses-table tbody td {
    display: block !important;
    width: 100% !important;
    padding: 9px !important;
  }

  #courses table.courses-table tbody td::before {
    display: block !important;
    margin-bottom: 4px !important;
  }

  h1, h2, h3 {
    overflow-wrap: anywhere !important;
  }
}

/* Absolute viewport safety for every phone width */
@media (max-width: 575.98px) {
  body,
  main,
  section,
  .container,
  .container-fluid,
  .page-shell,
  .content,
  .page-content {
    min-width: 0 !important;
  }

  img,
  video,
  iframe,
  table {
    max-width: 100%;
  }
}


/* =========================================================
   COMPLETE 280px → 4K RESPONSIVE SYSTEM
   Added as the final responsive layer.
   ========================================================= */

/* ---------- Global viewport safety ---------- */
html, body {
  max-width: 100%;
}

body {
  min-width: 0;
}

/* ---------- Ultra-small screens: 280px–319px ---------- */
@media (max-width: 319.98px) {
  html {
    font-size: 13px;
  }

  .page-shell,
  .container,
  .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 5px !important;
    padding-right: 5px !important;
  }

  .brand-inner,
  .top-strip-inner,
  .brand {
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }

  .brand img {
    max-width: 50px !important;
    height: auto !important;
  }

  .affiliation {
    width: 100% !important;
    min-width: 0 !important;
  }

  .main-nav .navbar-toggler {
    margin-left: auto !important;
  }

  .main-nav .nav-link,
  .main-nav .dropdown-item {
    padding-left: 8px !important;
    padding-right: 8px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #courses table.courses-table tbody td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 8px !important;
  }

  #courses table.courses-table tbody td::before {
    margin-bottom: 4px !important;
  }

  h1, h2, h3, h4, h5, h6,
  p, td, th, li {
    overflow-wrap: anywhere !important;
    word-break: break-word;
  }
}

/* ---------- 320px–359px ---------- */
@media (min-width: 320px) and (max-width: 359.98px) {
  html { font-size: 14px; }

  .page-shell,
  .container,
  .container-fluid {
    padding-left: 7px !important;
    padding-right: 7px !important;
  }
}

/* ---------- 360px–479px ---------- */
@media (min-width: 360px) and (max-width: 479.98px) {
  .page-shell,
  .container,
  .container-fluid {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

/* ---------- 480px–575px ---------- */
@media (min-width: 480px) and (max-width: 575.98px) {
  .page-shell,
  .container,
  .container-fluid {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* ---------- Small tablets: 576px–767px ---------- */
@media (min-width: 576px) and (max-width: 767.98px) {
  .page-shell,
  .container,
  .container-fluid {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ---------- Tablets: 768px–991px ---------- */
@media (min-width: 768px) and (max-width: 991.98px) {
  .page-shell {
    width: min(100% - 32px, 960px);
    margin-left: auto;
    margin-right: auto;
  }

  .container {
    max-width: 100% !important;
  }
}

/* ---------- Laptops / small desktops: 992px–1199px ---------- */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .page-shell {
    width: min(100% - 40px, 1140px);
    margin-left: auto;
    margin-right: auto;
  }
}

/* ---------- Desktops: 1200px–1599px ---------- */
@media (min-width: 1200px) and (max-width: 1599.98px) {
  .page-shell {
    width: min(100% - 48px, 1320px);
    margin-left: auto;
    margin-right: auto;
  }
}

/* ---------- Large desktops: 1600px–1919px ---------- */
@media (min-width: 1600px) and (max-width: 1919.98px) {
  .page-shell {
    width: min(100% - 64px, 1520px);
    margin-left: auto;
    margin-right: auto;
  }

  .container {
    max-width: 1500px !important;
  }
}

/* ---------- 1080p / large displays: 1920px–2559px ---------- */
@media (min-width: 1920px) and (max-width: 2559.98px) {
  .page-shell {
    width: min(100% - 80px, 1720px);
    margin-left: auto;
    margin-right: auto;
  }

  .container {
    max-width: 1680px !important;
  }
}

/* ---------- QHD / 2K displays: 2560px–3839px ---------- */
@media (min-width: 2560px) and (max-width: 3839.98px) {
  html {
    font-size: 18px;
  }

  .page-shell {
    width: min(100% - 120px, 2200px);
    margin-left: auto;
    margin-right: auto;
  }

  .container {
    max-width: 2100px !important;
  }
}

/* ---------- 4K and above: 3840px+ ---------- */
@media (min-width: 3840px) {
  html {
    font-size: 20px;
  }

  .page-shell {
    width: min(100% - 160px, 3000px);
    margin-left: auto;
    margin-right: auto;
  }

  .container {
    max-width: 2880px !important;
  }
}

/* =========================================================
   FINAL CONTENT SAFETY — ALL SCREEN SIZES
   ========================================================= */

main,
section,
.content,
.page-content,
.content-box,
.courses-section,
.courses-table-wrapper {
  min-width: 0;
  max-width: 100%;
  height: auto;
  max-height: none;
}

img,
video,
iframe,
canvas {
  max-width: 100%;
}

pre,
code {
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* Wide tables remain inside their own responsive area */
.table-responsive {
  max-width: 100%;
}

/* Prevent accidental fixed elements from forcing page width */
@media (max-width: 991.98px) {
  .row {
    min-width: 0;
  }

  [class*="col-"] {
    min-width: 0;
  }
}

/* =========================================================
   ACADEMIC SCHEDULE HORIZONTAL TABLE SCROLLER
   ========================================================= */

#academic-schedule .table-responsive {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: visible !important;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: auto;
}


/* Keep the complete table width so all columns exist */
#academic-schedule .table-responsive table {
    width: 100%;
    min-width: 750px !important;
    max-width: none !important;

    white-space: normal;
}


/* Make scrollbar easier to use */
#academic-schedule .table-responsive::-webkit-scrollbar {
    height: 12px;
}

#academic-schedule .table-responsive::-webkit-scrollbar-track {
    background: #e9ecef;
    border-radius: 10px;
}

#academic-schedule .table-responsive::-webkit-scrollbar-thumb {
    background: #1f5668;
    border-radius: 10px;
}
/* =========================================================
   FINAL DATA VISIBILITY FIX — ALL SCREEN SIZES
   Keeps every column accessible instead of clipping the right half.
   ========================================================= */

/* Do not let a wide child enlarge the page; let its own wrapper scroll. */
html, body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

/* Every existing data/table wrapper gets an independent horizontal scroller. */
.table-responsive,
.courses-table-wrapper,
.staff-table-wrap,
.table-wrapper {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

/* Never hide or clip table columns inside responsive wrappers. */
.table-responsive > table,
.courses-table-wrapper > table,
.staff-table-wrap > table,
.table-wrapper > table {
  max-width: none !important;
}

/* Desktop keeps the normal full-width table layout. */
@media (min-width: 768px) {
  .table-responsive > table,
  .courses-table-wrapper > table,
  .staff-table-wrap > table,
  .table-wrapper > table {
    width: 100%;
  }
}

/* Phones and small tablets: preserve all data and make only the table area scroll. */
@media (max-width: 767.98px) {
  .table-responsive,
  .courses-table-wrapper,
  .staff-table-wrap,
  .table-wrapper {
    border-radius: 12px;
  }

  /* Bootstrap/general data tables must not be squeezed or cut off. */
  .table-responsive > table {
    width: max-content !important;
    min-width: 100% !important;
  }

  .table-responsive > table th,
  .table-responsive > table td {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  /* Staff/admin tables retain their complete columns and scroll inside the card. */
  .staff-table-wrap > .staff-table,
  .table-wrapper > table {
    max-width: none !important;
  }
}

/* Small-screen scrollbar remains easy to discover and use. */
.table-responsive::-webkit-scrollbar,
.courses-table-wrapper::-webkit-scrollbar,
.staff-table-wrap::-webkit-scrollbar,
.table-wrapper::-webkit-scrollbar {
  height: 10px;
}
