/* ================================================
   DESIGN TOKENS
   ================================================ */
:root{
  --navy: #0B1F3A;
  --navy-deep: #071427;
  --navy-soft: #14294c;
  --gold: #D4AF37;
  --gold-soft: #E9CD73;
  --maroon: #7A1B2C;
  --maroon-deep: #4E0F1A;
  --maroon-soft: #A6394A;
  --white: #FFFFFF;
  --gray-light: #FAF3E7;
  --ink: #1B2534;
  --ink-muted: #5B6472;
  --glass-bg: rgba(255,255,255,0.08);
  --glass-border: rgba(212,175,55,0.35);
  --shadow-soft: 0 20px 60px rgba(11,31,58,0.12);
  --shadow-deep: 0 30px 80px rgba(7,20,39,0.35);
  --radius-lg: 22px;
  --radius-md: 14px;
  --ease: cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden; max-width:100%;}
body{
  font-family:'Poppins', sans-serif;
  color:var(--ink);
  background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.display-serif{
  font-family:'Playfair Display', serif;
  color:var(--navy);
  letter-spacing:-0.01em;
}
a{text-decoration:none;}
::selection{background:var(--gold); color:var(--navy);}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

.eyebrow{
  font-family:'Poppins',sans-serif;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.72rem;
  font-weight:600;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:.6rem;
}
.eyebrow::before{
  content:"";
  width:28px;height:1px;background:var(--gold);display:inline-block;
}
.section-pad{padding:4.5rem 0;}
.divider-gold{
  width:70px;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-soft));
  border-radius:3px;margin:1.1rem 0 1.6rem;
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold),#c79a2b);
  color:var(--navy);
  border:none;
  font-weight:600;
  padding:.85rem 2rem;
  border-radius:50px;
  box-shadow:0 12px 30px rgba(212,175,55,0.35);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.btn-gold:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(212,175,55,0.5);
  color:var(--navy);
}
.btn-outline-navy{
  background:transparent;
  border:1.5px solid rgba(255,255,255,0.55);
  color:var(--white);
  font-weight:500;
  padding:.8rem 1.9rem;
  border-radius:50px;
  transition:all .35s var(--ease);
}
.btn-outline-navy:hover{
  background:rgba(255,255,255,0.12);
  border-color:var(--gold);
  color:var(--white);
}

/* ================================================
   SCROLL PROGRESS (Scale of Justice signature)
   ================================================ */
#scrollProgress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg,var(--gold-soft),var(--gold));
  z-index:2000; transition:width .1s linear;
}
/* Loader */
#loader{
  position:fixed; inset:0; background:var(--navy-deep);
  z-index:9999; display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:14px;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
#loaderLogo{
  width:96px; height:96px; border-radius:50%; object-fit:cover;
  border:2px solid var(--gold);
  box-shadow:0 0 30px rgba(212,175,55,0.35);
  animation:loaderPulse 1.4s ease-in-out infinite;
}
@keyframes loaderPulse{0%,100%{transform:scale(1); opacity:1;} 50%{transform:scale(1.08); opacity:.85;}}
#loader span{color:var(--gold-soft); letter-spacing:.3em; text-transform:uppercase; font-size:.7rem; font-family:'Poppins',sans-serif;}
body.loaded #loader{opacity:0; visibility:hidden;}

/* Cursor glow */
#cursorGlow{
  position:fixed; width:380px; height:380px; border-radius:50%;
  background:radial-gradient(circle, rgba(212,175,55,0.10), transparent 70%);
  pointer-events:none; z-index:1; transform:translate(-50%,-50%);
  transition:opacity .3s;
}
@media (max-width: 900px){ #cursorGlow{display:none;} }

/* ================================================
   NAVBAR
   ================================================ */
.navbar-premium{
  padding:1.1rem 0;
  transition:all .4s var(--ease);
  background:rgba(11,31,58,0.55);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(212,175,55,0.15);
}
.navbar-premium.scrolled{
  padding:.6rem 0;
  background:rgba(7,20,39,0.92);
  box-shadow:0 10px 30px rgba(0,0,0,0.25);
}
.navbar-premium .navbar-brand{display:flex;align-items:center;gap:.7rem;}
.brand-mark{
  width:76px;height:76px;border-radius:50%;
  object-fit:cover; background:var(--white);
  border:2px solid var(--gold);
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
  flex-shrink:0;
}
.brand-text{line-height:1.1; min-width:0;}
.brand-text .name{color:var(--white); font-family:'Playfair Display',serif; font-weight:700; font-size:1.08rem; display:block;}
.brand-text .loc{color:var(--gold-soft); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;}
@media (max-width:991px){
  .navbar-premium .navbar-brand{flex-wrap:nowrap; max-width:calc(100% - 64px);}
  .brand-mark{width:44px; height:44px; border-width:1.5px;}
  .brand-text .name{font-size:.82rem; white-space:normal; line-height:1.2;}
  .brand-text .loc{font-size:.52rem; letter-spacing:.12em;}
}
.navbar-premium .nav-link{
  color:rgba(255,255,255,0.85) !important;
  font-weight:500; font-size:.92rem;
  margin:0 .35rem; position:relative;
  padding:.4rem .3rem !important;
}
.navbar-premium .nav-link::after{
  content:""; position:absolute; left:0; bottom:0; width:0%; height:2px;
  background:var(--gold); transition:width .3s var(--ease);
}
.navbar-premium .nav-link:hover::after, .navbar-premium .nav-link.active::after{width:100%;}
.navbar-premium .nav-link:hover{color:var(--gold-soft) !important;}
.navbar-toggler{border:none; box-shadow:none !important;}
.navbar-toggler-icon{filter:invert(1);}

/* ================================================
   HERO
   ================================================ */
.hero{
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:var(--navy-deep);
}
.hero-bg{
  position:absolute; inset:0;
  background-image:linear-gradient(180deg, rgba(7,20,39,0.75), rgba(7,20,39,0.94)), url('https://images.unsplash.com/photo-1589829545856-d10d557cf95f?q=80&w=2000&auto=format&fit=crop');
  background-size:cover; background-position:center;
  will-change:transform;
}
.hero-shape{
  position:absolute; border-radius:50%;
  background:radial-gradient(circle, rgba(212,175,55,0.28), transparent 70%);
  animation:floatShape 9s ease-in-out infinite;
  filter:blur(2px);
}
.shape1{width:260px;height:260px; top:8%; left:4%; animation-delay:0s;}
.shape2{width:180px;height:180px; bottom:12%; left:18%; animation-delay:2s; background:radial-gradient(circle, rgba(122,27,44,0.35), transparent 70%);}
.shape3{width:340px;height:340px; top:20%; right:-60px; animation-delay:1s;}
@keyframes floatShape{
  0%,100%{transform:translateY(0) translateX(0);}
  50%{transform:translateY(-26px) translateX(14px);}
}
.hero-content{position:relative; z-index:2; padding-top:5rem;}
.hero-content .eyebrow{color:var(--gold-soft);}
.hero-content h1{
  color:var(--white);
  font-size:clamp(2.4rem, 5.2vw, 4.1rem);
  font-weight:700;
  line-height:1.08;
  margin:1.1rem 0 1.3rem;
}
.hero-content h1 em{
  font-style:italic; color:var(--gold-soft);
}
.hero-content p.lead{
  color:rgba(255,255,255,0.78);
  font-size:1.08rem;
  max-width:520px;
  margin-bottom:2.1rem;
  font-weight:300;
}
.hero-visual{position:relative; z-index:2;}
.hero-visual img{
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-deep);
  width:100%;
  border:1px solid rgba(212,175,55,0.25);
}
.floating-card{
  position:absolute;
  background:var(--glass-bg);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-md);
  padding:.9rem 1.15rem;
  color:var(--white);
  box-shadow:0 20px 50px rgba(0,0,0,0.35);
  display:flex; align-items:center; gap:.7rem;
  animation:cardFloat 5s ease-in-out infinite;
}
.floating-card i{color:var(--gold); font-size:1.3rem;}
.floating-card .label{font-size:.6rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,0.6); display:block;}
.floating-card .val{font-weight:600; font-size:.92rem;}
.fc1{top:-6%; left:-8%; animation-delay:0s;}
.fc2{bottom:14%; right:-10%; animation-delay:1.2s;}
.fc3{bottom:-6%; left:8%; animation-delay:.6s;}
@keyframes cardFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}
.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  z-index:3; color:rgba(255,255,255,0.6); font-size:.7rem;
  letter-spacing:.2em; text-transform:uppercase; text-align:center;
}
.scroll-cue .line{width:1px; height:34px; background:linear-gradient(var(--gold), transparent); margin:.5rem auto 0; animation:scrollCue 1.8s ease-in-out infinite;}
@keyframes scrollCue{0%{opacity:0; transform:scaleY(0);} 40%{opacity:1; transform:scaleY(1);} 100%{opacity:0; transform:scaleY(1) translateY(10px);}}

/* ================================================
   STATS
   ================================================ */
.stats-band{
  background:var(--navy);
  position:relative;
  padding:3.2rem 0;
}
.stats-band::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(212,175,55,0.08), transparent 45%);
}
.stat-item{text-align:center; position:relative; z-index:1;}
.stat-num{
  font-family:'Playfair Display',serif;
  font-size:clamp(2.1rem,3.6vw,3rem);
  font-weight:700;
  color:var(--gold-soft);
  line-height:1;
}
.stat-label{
  color:rgba(255,255,255,0.65);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  margin-top:.5rem;
}

/* ================================================
   WHY CHOOSE - ICON CARDS
   ================================================ */
.bg-lightgray{background:var(--gray-light);}
.feature-card{
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:2.1rem 1.7rem;
  height:100%;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(11,31,58,0.05);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
  position:relative;
  overflow:hidden;
}
.feature-card::after{
  content:""; position:absolute; top:0; left:0; width:4px; height:0%;
  background:linear-gradient(var(--gold),var(--gold-soft));
  transition:height .4s var(--ease);
}
.feature-card:hover{transform:translateY(-10px); box-shadow:var(--shadow-deep); border-color:rgba(212,175,55,0.3);}
.feature-card:hover::after{height:100%;}
.feature-icon{
  width:58px;height:58px;border-radius:16px;
  background:linear-gradient(135deg, var(--navy), var(--navy-soft));
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-soft); font-size:1.5rem; margin-bottom:1.2rem;
  transition:transform .4s var(--ease);
}
.feature-card:hover .feature-icon{transform:rotate(-8deg) scale(1.06);}
.feature-card h5{font-family:'Playfair Display',serif; font-weight:600; margin-bottom:.6rem;}
.feature-card p{color:var(--ink-muted); font-size:.9rem; margin:0;}

/* ================================================
   ABOUT
   ================================================ */
.about-img-wrap{position:relative; height:100%; min-height:340px;}
.about-img-wrap img{border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); width:100%; height:100%; object-fit:cover;}
.vmv-item{display:flex; gap:1rem; margin-bottom:1.1rem;}
.vmv-item .dot{
  width:34px;height:34px;flex-shrink:0;border-radius:50%;
  background:rgba(212,175,55,0.12); color:var(--gold);
  display:flex; align-items:center; justify-content:center; font-size:.95rem;
}
.vmv-item h6{font-weight:600; margin-bottom:.15rem; color:var(--navy);}
.vmv-item p{color:var(--ink-muted); font-size:.87rem; margin:0;}

/* ================================================
   COURSES
   ================================================ */
.course-card{
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-soft); background:var(--white);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  height:100%; display:flex; flex-direction:column;
}
.course-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-deep);}
.course-img{height:190px; overflow:hidden; position:relative;}
.course-img img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.course-card:hover .course-img img{transform:scale(1.09);}
.course-tag{
  position:absolute; top:14px; left:14px;
  background:var(--maroon); color:var(--white); font-weight:600; font-size:.72rem;
  padding:.3rem .8rem; border-radius:50px;
}
.course-body{padding:1.5rem; flex:1; display:flex; flex-direction:column;}
.course-body h5{font-family:'Playfair Display',serif;}
.course-meta{display:flex; gap:1.1rem; margin:.9rem 0 1.2rem; flex-wrap:wrap;}
.course-meta span{font-size:.78rem; color:var(--ink-muted); display:flex; align-items:center; gap:.35rem;}
.course-meta i{color:var(--gold);}
.course-body .btn{margin-top:auto;}

/* ================================================
   ADMISSION TIMELINE
   ================================================ */
.timeline-wrap{position:relative; padding-top:2rem;}
.timeline-line{
  position:absolute; top:38px; left:0; right:0; height:2px;
  background:repeating-linear-gradient(90deg, var(--gold) 0 10px, transparent 10px 18px);
  z-index:0;
}
@media (max-width:991px){.timeline-line{display:none;}}
.timeline-step{text-align:center; position:relative; z-index:1;}
.timeline-circle{
  width:76px; height:76px; border-radius:50%; margin:0 auto 1.1rem;
  background:linear-gradient(135deg,var(--navy),var(--navy-soft));
  color:var(--gold-soft); display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; box-shadow:var(--shadow-soft); border:3px solid var(--white);
  transition:transform .4s var(--ease);
}
.timeline-step:hover .timeline-circle{transform:scale(1.08); background:linear-gradient(135deg,var(--gold),var(--gold-soft)); color:var(--navy);}
.timeline-step h6{font-weight:600; margin-bottom:.3rem;}
.timeline-step p{font-size:.8rem; color:var(--ink-muted);}

/* ================================================
   FACILITIES
   ================================================ */
.facility-card{
  background:var(--white); border-radius:var(--radius-md);
  padding:1.6rem 1.2rem; text-align:center; height:100%;
  box-shadow:0 8px 26px rgba(11,31,58,0.06);
  transition:all .35s var(--ease); border:1px solid transparent;
}
.facility-card:hover{
  transform:translateY(-6px);
  border-color:rgba(212,175,55,0.4);
  box-shadow:var(--shadow-soft);
}
.facility-card i{font-size:1.8rem; color:var(--navy); margin-bottom:.8rem; display:block; transition:color .3s;}
.facility-card:hover i{color:var(--gold);}
.facility-card span{font-size:.85rem; font-weight:500; color:var(--ink);}

/* ================================================
   FACULTY
   ================================================ */
.faculty-card{
  border-radius:var(--radius-lg); overflow:hidden; background:var(--white);
  box-shadow:var(--shadow-soft); transition:transform .4s var(--ease);
}
.faculty-card:hover{transform:translateY(-8px);}
.faculty-img{aspect-ratio:4/5; overflow:hidden; position:relative;}
.faculty-img img{width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform .5s var(--ease);}
.faculty-card:hover .faculty-img img{transform:scale(1.06);}
.faculty-info{padding:1.3rem 1.2rem; text-align:center;}
.faculty-info h6{font-family:'Playfair Display',serif; font-weight:600; margin-bottom:.1rem;}
.faculty-info .role{color:var(--gold); font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em;}
.faculty-info p{font-size:.8rem; color:var(--ink-muted); margin:.4rem 0 0;}

/* ================================================
   CLASSROOMS
   ================================================ */
.classroom-card{position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:1/1; box-shadow:0 8px 26px rgba(11,31,58,0.10);}
.classroom-card img{width:100%; height:100%; object-fit:cover; object-position:top center; display:block; transition:transform .5s var(--ease);}
.classroom-card:hover img{transform:scale(1.08);}
.classroom-card .classroom-label{
  position:absolute; left:0; right:0; bottom:0; padding:.55rem .3rem; text-align:center;
  background:linear-gradient(0deg, rgba(11,31,58,0.88), transparent);
  color:var(--white); font-weight:600; font-size:.82rem; font-family:'Playfair Display',serif;
}

/* ================================================
   PLACEMENTS
   ================================================ */
.placement-illustration{
  background:linear-gradient(145deg, var(--maroon-deep), var(--maroon));
  border-radius:var(--radius-lg); padding:3rem 2rem; color:var(--white);
  position:relative; overflow:hidden; height:100%;
}
.placement-illustration i{font-size:5rem; color:rgba(212,175,55,0.6);}
.placement-list li{
  display:flex; align-items:flex-start; gap:.8rem; margin-bottom:1rem;
  font-size:.92rem; color:var(--ink);
}
.placement-list i{color:var(--gold); margin-top:.2rem;}
.recruiter-chip{
  background:var(--white); border:1px solid rgba(11,31,58,0.08);
  border-radius:50px; padding:.55rem 1.2rem; font-size:.82rem; font-weight:500;
  color:var(--ink-muted); box-shadow:0 6px 18px rgba(11,31,58,0.05);
  transition:.3s;
}
.recruiter-chip:hover{border-color:var(--gold); color:var(--navy); transform:translateY(-3px);}

/* ================================================
   TESTIMONIALS
   ================================================ */
.testimonial-card{
  background:var(--white); border-radius:var(--radius-lg);
  padding:2.6rem; text-align:center; max-width:700px; margin:0 auto;
  box-shadow:var(--shadow-soft); border:1px solid rgba(212,175,55,0.15);
}
.testimonial-card img{width:76px; height:76px; border-radius:50%; object-fit:cover; border:3px solid var(--gold-soft); margin-bottom:1rem;}
.testimonial-card .stars{color:var(--gold); margin-bottom:.8rem; font-size:.9rem;}
.testimonial-card p.quote{font-style:italic; color:var(--ink); font-size:1.02rem; margin-bottom:1.1rem;}
.testimonial-card h6{margin-bottom:0; font-weight:600;}
.testimonial-card small{color:var(--ink-muted);}
#testimonialCarousel .carousel-control-prev, #testimonialCarousel .carousel-control-next{
  width:44px; height:44px; top:50%; transform:translateY(-50%); border-radius:50%;
  background:var(--navy); opacity:1;
}
#testimonialCarousel .carousel-control-prev{left:-10px;}
#testimonialCarousel .carousel-control-next{right:-10px;}
@media (max-width:767px){
  #testimonialCarousel .carousel-control-prev, #testimonialCarousel .carousel-control-next{display:none;}
}

/* ================================================
   FAQ
   ================================================ */
.accordion-premium .accordion-item{
  border:none; margin-bottom:.9rem; border-radius:var(--radius-md) !important; overflow:hidden;
  box-shadow:0 6px 20px rgba(11,31,58,0.06);
}
.accordion-premium .accordion-button{
  font-weight:600; color:var(--navy); font-family:'Poppins',sans-serif; padding:1.2rem 1.5rem;
  background:var(--white);
}
.accordion-premium .accordion-button:not(.collapsed){
  color:var(--navy); background:#fbf7ea; box-shadow:none;
}
.accordion-premium .accordion-button:focus{box-shadow:none; border-color:var(--gold);}
.accordion-premium .accordion-button::after{filter:sepia(1) saturate(3) hue-rotate(0deg);}
.accordion-premium .accordion-body{color:var(--ink-muted); font-size:.9rem; padding:0 1.5rem 1.3rem;}

/* ================================================
   CTA
   ================================================ */
.cta-section{
  position:relative; background:linear-gradient(160deg, var(--navy-deep), var(--navy) 60%);
  padding:4.2rem 0; text-align:center; overflow:hidden;
}
.cta-section::before{
  content:""; position:absolute; inset:0;
  background-image:url('https://images.unsplash.com/photo-1505664194779-8beaceb93744?q=80&w=1800&auto=format&fit=crop');
  background-size:cover; background-position:center; opacity:.16; mix-blend-mode:luminosity;
}
.cta-section h2{color:var(--white); font-size:clamp(1.8rem,3.6vw,2.8rem); position:relative; z-index:1;}
.cta-section p{color:rgba(255,255,255,0.7); position:relative; z-index:1;}
.cta-section .btns{position:relative; z-index:1;}

/* ================================================
   CONTACT
   ================================================ */
.contact-info-card{
  background:var(--navy); color:var(--white); border-radius:var(--radius-lg);
  padding:2.4rem; height:100%;
}
.contact-info-card .item{display:flex; gap:1rem; margin-bottom:1.5rem;}
.contact-info-card .item i{
  width:42px; height:42px; border-radius:12px; background:rgba(212,175,55,0.15);
  color:var(--gold-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-info-card .item h6{margin-bottom:.15rem; font-weight:600;}
.contact-info-card .item p{margin:0; font-size:.85rem; color:rgba(255,255,255,0.68);}
.contact-info-card .item p a{color:rgba(255,255,255,0.85);}
.contact-info-card .item p a:hover{color:var(--gold-soft);}
.map-wrap{border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); height:380px;}
.map-wrap iframe{width:100%; height:100%; border:0; filter:grayscale(.2);}
.form-control-premium{
  border:1px solid #e3e6ec; border-radius:12px; padding:.85rem 1.1rem; font-size:.9rem;
}
.form-control-premium:focus{border-color:var(--gold); box-shadow:0 0 0 .2rem rgba(212,175,55,0.15);}
.consent-check{display:flex; align-items:flex-start; gap:.6rem; padding-left:0;}
.consent-check .form-check-input{
  width:1.15em; height:1.15em; margin-top:.2rem; margin-left:0; flex-shrink:0; cursor:pointer;
  border:1.5px solid var(--maroon);
}
.consent-check .form-check-input:checked{background-color:var(--maroon); border-color:var(--maroon);}
.consent-check .form-check-input:focus{box-shadow:0 0 0 .2rem rgba(122,27,44,0.2); border-color:var(--maroon);}
.consent-check .form-check-label{color:var(--maroon); font-size:.85rem; line-height:1.5; cursor:pointer;}
.consent-check .required-star{font-weight:700;}

/* ================================================
   FOOTER
   ================================================ */
footer{background:var(--navy-deep); color:#fff; padding:3.2rem 0 0;}
footer h6{color:var(--white); font-family:'Playfair Display',serif; font-weight:600; margin-bottom:1.2rem;}
footer ul{list-style:none; padding:0; margin:0;}
footer ul li{margin-bottom:.55rem;}
footer ul li a{color:#fff; font-size:.87rem; transition:.3s;}
footer ul li a:hover{color:var(--gold-soft); padding-left:4px;}
.footer-contact{margin:0 0 1.3rem;}
.footer-contact li{display:flex; align-items:flex-start; gap:.6rem; margin-bottom:.7rem; font-size:.85rem; color:#fff; line-height:1.4;}
.footer-contact li i{color:var(--gold); margin-top:.2rem; flex-shrink:0;}
.footer-contact li a{color:#fff; font-size:.85rem;}
.footer-contact li a:hover{color:var(--gold-soft); padding-left:0;}
.footer-social a{
  width:38px;height:38px; border-radius:50%; background:rgba(255,255,255,0.08);
  display:inline-flex; align-items:center; justify-content:center; color:var(--white); margin-right:.5rem;
  transition:.3s;
}
.footer-social a:hover{background:var(--gold); color:var(--navy);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08); margin-top:1.8rem; padding:1.1rem 0; font-size:.8rem; text-align:center;}
.footer-bottom a{color:var(--gold-soft);}

/* Sticky apply + scroll top */
#stickyApply{
  position:fixed; bottom:26px; left:26px; z-index:1400;
  box-shadow:0 15px 40px rgba(212,175,55,0.45);
}
#scrollTop{
  position:fixed; bottom:26px; right:26px; z-index:1400;
  width:48px; height:48px; border-radius:50%; background:var(--navy); color:var(--gold);
  display:flex; align-items:center; justify-content:center; border:1px solid rgba(212,175,55,0.4);
  opacity:0; visibility:hidden; transform:translateY(12px); transition:all .35s var(--ease);
  box-shadow:0 12px 30px rgba(11,31,58,0.35);
}
#scrollTop.show{opacity:1; visibility:visible; transform:translateY(0);}
#scrollTop:hover{background:var(--gold); color:var(--navy);}

/* Wave divider */
.wave-divider{display:block; width:100%; line-height:0;}
.wave-divider svg{width:100%; height:70px; display:block;}

/* Counter observer helper */
.counted{visibility:visible;}

/* Section title helper */
.section-title{max-width:640px;}
.section-title.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ================================================
   PHOTO LIGHTBOX
   ================================================ */
.classroom-card{cursor:pointer;}
.lightbox-overlay{
  position:fixed; inset:0; background:rgba(7,20,39,0.94);
  display:none; align-items:center; justify-content:center;
  z-index:5000; padding:2rem;
}
.lightbox-overlay.show{display:flex;}
.lightbox-content{max-width:88vw; max-height:85vh; text-align:center;}
.lightbox-content img{
  max-width:100%; max-height:78vh; display:block; margin:0 auto;
  border-radius:var(--radius-md); box-shadow:var(--shadow-deep);
  border:1px solid rgba(212,175,55,0.25);
}
.lightbox-caption{color:var(--white); margin-top:1.1rem; font-family:'Playfair Display',serif; font-size:1.1rem;}
.lightbox-close, .lightbox-nav{
  border:1px solid rgba(212,175,55,0.4); background:rgba(255,255,255,0.08); color:var(--white);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.3s;
}
.lightbox-close{
  position:absolute; top:24px; right:28px; width:46px; height:46px; border-radius:50%; font-size:1.2rem; z-index:1;
}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:52px; height:52px; border-radius:50%; font-size:1.4rem;
}
.lightbox-nav.prev{left:20px;}
.lightbox-nav.next{right:20px;}
.lightbox-close:hover, .lightbox-nav:hover{background:var(--gold); color:var(--navy);}
@media (max-width:576px){
  .lightbox-nav{width:40px; height:40px; font-size:1.1rem;}
  .lightbox-nav.prev{left:8px;}
  .lightbox-nav.next{right:8px;}
  .lightbox-close{width:38px; height:38px; font-size:1rem; top:12px; right:12px;}
}
