/*==============================
        DISCLAIMER 3 aug
==============================*/

.disclaimer-overlay{

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:rgba(0,0,0,.65);

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:99999;

    backdrop-filter:blur(5px);

}

.disclaimer-box{

    width:90%;

    max-width:600px;

    background:#fff;

    border-radius:20px;

    padding:40px 40px 0 40px;

    text-align:center;

    box-shadow:0 25px 60px rgba(0,0,0,.25);

    animation:popup .5s ease;

    border-top:6px solid #F4C542;

    overflow:hidden;

}

.disclaimer-founders-day{

    color:#07690f !important;

    font-weight:900;

    font-size:19px;

    margin-bottom:30px !important;

    animation: founderBlink 2.5s ease-in-out infinite;



}

@keyframes founderBlink{

    0%, 100%{ opacity:1; }

    50%{ opacity:0.25; }

}

.disclaimer-footer{

    height:45px;

    width:calc(100% + 80px);

    margin:25px -40px 0 -40px;

    background:#0A2E5D;

}

.disclaimer-icon{

    width:80px;
    height:80px;

    margin:auto;

    border-radius:50%;

    background:#0A2E5D;

    color:#F4C542;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:35px;

    margin-bottom:20px;

}

.disclaimer-box h2{

    color:#0A2E5D;

    font-family:'Cinzel',serif;

    margin-bottom:20px;

}

.disclaimer-box p{

    color:#555;

    line-height:30px;

    margin-bottom:30px;

}

.disclaimer-box button{

    background:#0A2E5D;

    color:white;

    border:none;

    padding:15px 35px;

    border-radius:50px;

    font-size:16px;

    cursor:pointer;

    transition:.3s;

}

.disclaimer-box button:hover{

    background:#F4C542;

    color:#0A2E5D;

}

@keyframes popup{

from{

opacity:0;

transform:translateY(-30px);

}

to{

opacity:1;

transform:translateY(0);

}

}

/* Close Button */

.close-disclaimer{

    position:absolute;

    top:18px;

    right:18px;

    width:42px;

    height:42px;

    border-radius:50%;

    background:transparent;

    color:#0A2E5D;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    font-size:28px;

    font-weight:400;

    transition:.3s;

}

.close-disclaimer:hover{

    color:#F4C542;

    transform:rotate(90deg);

}


.disclaimer-box{
    position:relative;
}


.disclaimer-icon{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 15px;
}

.school-logo{
    width: 100px;
    height: 100px;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
    padding: 8px;
}














/*** Header ***/
.header-carousel::before,
.header-carousel::after,
.page-header::before,
.page-header::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 10px;
    top: 0;
    left: 0;
    background: url(../img/bg-header-top.png) center center repeat-x;
    z-index: 1;
}

.header-carousel::after,
.page-header::after {
    height: 19px;
    top: auto;
    bottom: 0;
    background: url(../img/bg-header-bottom.png) center center repeat-x;
}


/* =========================
   CAROUSEL
========================= */

.header-carousel .owl-carousel-item {
    position: relative;
    width: 100%;
    height: auto;
    overflow: hidden;
}

.header-carousel .owl-carousel-item img,
.header-carousel .owl-carousel-item video {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: center center;
}


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

@media (max-width: 768px) {

    .header-carousel .owl-carousel-item {
        height: auto !important;
        min-height: 0 !important;
    }

    .header-carousel .owl-carousel-item img,
    .header-carousel .owl-carousel-item video {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
    }

    .header-carousel .owl-carousel-item p {
        font-size: 16px !important;
        font-weight: 400 !important;
    }

    .header-carousel .owl-carousel-item h1 {
        font-size: 30px;
        font-weight: 600;
    }
}


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

@media (min-width: 769px) and (max-width: 991px) {

    .header-carousel .owl-carousel-item {
        height: auto !important;
    }

    .header-carousel .owl-carousel-item img {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
    }
}


.header-carousel .owl-nav {
    position: absolute;
    top: 50%;
    right: 8%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    z-index: 10;
}

.header-carousel .owl-nav .owl-prev,
.header-carousel .owl-nav .owl-next {
    margin: 7px 0;
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    background: transparent;
    border: 1px solid #FFFFFF;
    border-radius: 45px;
    font-size: 22px;
    transition: .5s;
}

.header-carousel .owl-nav .owl-prev:hover,
.header-carousel .owl-nav .owl-next:hover {
    background: var(--primary);
    border-color: var(--primary);
}

.page-header {
    background: linear-gradient(rgba(0, 0, 0, .2), rgba(0, 0, 0, .2)),
                url(../img/carousel-1.jpg) center center no-repeat;
    background-size: cover;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, .5);
}



















/* calender */
/* =====================================
   GOOGLE FONT
===================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800&family=Poppins:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600;700&family=Poppins:wght@300;400;500;600;700&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
    background:#fff;
    overflow-x:hidden;
    color:#333;
}

h1,h2,h3,h4{
    font-family:'Cinzel',serif;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
}

:root{
    --navy:#0A2E5D;
    --gold:#F4C542;
    --white:#ffffff;
    --light:#f8f9fa;
    --text:#555;
    --shadow:0 15px 40px rgba(0,0,0,.12);
}


/*=====================================
        HERO SECTION (calendar page)
======================================*/

.calendar-hero{
    position:relative;
    padding:120px 0;
    background:url("img/calendar-banner.jpg") center center/cover no-repeat;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,
    rgba(10,46,93,.92) 0%,
    rgba(10,46,93,.75) 45%,
    rgba(10,46,93,.25) 100%);
}

.calendar-hero .container{
    position:relative;
    z-index:2;
}

.hero-subtitle{
    color:#F4C542;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
}

.calendar-hero h1{
    color:#fff;
    font-size:56px;
    font-weight:700;
    margin:15px 0;
}

.calendar-hero p{
    color:#fff;
    font-size:18px;
    max-width:700px;
    margin:auto;
    line-height:1.8;
}


/*=====================================
      SECTION TITLE (calendar page)
======================================*/

.section-heading{
    margin-bottom:45px;
}

.section-heading h2{
    font-size:42px;
    color:#0A2E5D;
    font-weight:700;
}

.section-heading p{
    color:#777;
    font-size:17px;
}


/*=====================================
      CALENDAR
======================================*/

.calendar-section{
    padding:90px 0;
}

.calendar-card{
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 18px 40px rgba(0,0,0,.08);
}

.calendar-table{
    margin:0;
    min-width:1400px;
}

.calendar-table thead{
    background:#0A2E5D;
}

.calendar-table thead th{
    color:#fff;
    text-align:center;
    padding:18px;
    border:none;
    font-size:15px;
    white-space:nowrap;
}

.calendar-table td{
    text-align:center;
    padding:14px;
    border:1px solid #ececec;
    transition:.3s;
}

.calendar-table tbody tr:hover{
    background:#fff8e8;
}

.calendar-table tbody tr:hover td{
    transform:scale(1.02);
}

.event-column{
    min-width:320px;
}

.calendar-table td:last-child{
    text-align:left;
    font-weight:500;
}


/*=====================================
        STICKY COLUMN
======================================*/

.sticky-column{
    position:sticky;
    left:0;
    background:#fff;
    font-weight:600;
    z-index:10;
}

.calendar-table thead .sticky-column{
    background:#0A2E5D;
    color:#fff;
}


/*=====================================
       SUNDAY
======================================*/

.sunday{
    background:#ffe8e8;
    color:#c0392b;
}


/*=====================================
        HOLIDAY
======================================*/

.holiday-section{
    padding-bottom:80px;
}

.holiday-card{
    background:#fff;
    border-radius:20px;
    padding:35px;
    height:100%;
    box-shadow:0 12px 35px rgba(0,0,0,.08);
    transition:.35s;
}

.holiday-card:hover{
    transform:translateY(-8px);
}

.holiday-card h3{
    color:#0A2E5D;
    margin-bottom:25px;
    font-size:26px;
}

.holiday-card i{
    color:#F4C542;
    margin-right:10px;
}

.holiday-card ul{
    list-style:none;
    padding:0;
}

.holiday-card li{
    padding:12px 0;
    border-bottom:1px solid #eee;
}

.holiday-card li:last-child{
    border:none;
}


/*=====================================
      EXAM TABLE
======================================*/

.exam-section{
    padding-bottom:90px;
}

.exam-table{
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 18px 40px rgba(0,0,0,.08);
}

.exam-table thead{
    background:#0A2E5D;
}

.exam-table th{
    color:#fff;
    padding:18px;
}

.exam-table td{
    padding:18px;
}

.exam-table tbody tr:hover{
    background:#fff8e8;
}


/*=====================================
       SCROLLBAR
======================================*/

.table-responsive::-webkit-scrollbar{
    height:8px;
}

.table-responsive::-webkit-scrollbar-thumb{
    background:#F4C542;
    border-radius:20px;
}


/*=====================================
       MOBILE (calendar page)
======================================*/

@media(max-width:992px){
    .calendar-hero{
        padding:80px 0;
    }
    .calendar-hero h1{
        font-size:38px;
    }
    .section-heading h2{
        font-size:32px;
    }
}

@media(max-width:768px){
    .calendar-hero{
        text-align:center;
    }
    .calendar-hero h1{
        font-size:30px;
    }
    .calendar-hero p{
        font-size:16px;
    }
    .holiday-card{
        margin-bottom:25px;
    }
    .section-heading h2{
        font-size:28px;
    }
}


/* ==========================
   LOGIN DROPDOWN
========================== */

.login-dropdown{
    background:#0A2E5D;
    border-radius:12px;
    padding:8px;
    border:none;
    min-width:220px;
    margin-top:15px;
    box-shadow:0 15px 35px rgba(0,0,0,0.18);
    right:0 !important;
    left:auto !important;
    transform:translateX(-20px);
}

.login-dropdown .dropdown-item{
    display:flex;
    align-items:center;
    padding:10px 15px;
    font-size:14px;
    font-weight:500;
    color:#ffffff !important;
    border-radius:8px;
    transition:0.3s;
}

.login-dropdown .dropdown-item i{
    width:25px;
    font-size:16px;
    color:#F4C542;
}

.login-dropdown .dropdown-item:hover{
    background:#F4C542;
    color:#0A2E5D !important;
}

.login-dropdown .dropdown-item:hover i{
    color:#0A2E5D;
}

@media(max-width:991px){
    .login-dropdown{
        left:0 !important;
        right:auto !important;
        transform:none;
        width:220px;
    }
}


/* ==========================
   PREMIUM LOGIN ICON
========================== */

.premium-login {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: #F4C542;
    color: #0A2E5D !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    text-decoration: none;
    transition: 0.3s ease;
}

.premium-login::after {
    display: none;
}

.navbar .dropdown:hover .premium-login,
.navbar .dropdown .premium-login.show,
.premium-login:hover,
.premium-login:focus,
.premium-login.show{
    background:linear-gradient(135deg,#F4C542,#ffd966);
    color:#0A2E5D !important;
    transform:none;
    box-shadow:0 5px 15px rgba(244,197,66,.35);
}

@media(max-width:991px){
    .premium-login{
        margin-left:0;
        margin-top:15px;
    }
}


/*==========================================
        TOP BAR
==========================================*/

.topbar{
    background:#ffffff;
    color:#0A2E5D;
    padding:8px 0;
    overflow:hidden;
    border-bottom:1px solid #ececec;
}

.topbar i{
    color:var(--gold);
}

.topbar-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}

.notification-bar{
    display:flex;
    align-items:center;
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
}

.notification-label{
    background:#F4C542;
    color:#0A2E5D;
    font-weight:700;
    padding:6px 15px;
    border-radius:4px;
    white-space:nowrap;
    margin-right:15px;
    flex-shrink:0;
}

.notification-wrapper{
    overflow:hidden;
    flex:1;
    white-space:nowrap;
}

.notification-text{
    display:inline-block;
    padding-left:100%;
    animation:scrollNews 25s linear infinite;
    font-size:15px;
    color:#333;
}

.notification-text:hover{
    animation-play-state:paused;
}

@keyframes scrollNews{
    from{ transform:translateX(0); }
    to{ transform:translateX(-100%); }
}

.topbar-social{
    display:flex;
    align-items:center;
    gap:12px;
    flex:0 0 auto;
}

.topbar-social a{
    width:32px;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff !important;
    border-radius:50%;
    font-size:15px;
    text-decoration:none;
    transition:.3s;
    box-shadow:0 2px 6px rgba(0,0,0,.15);
    position:relative;
    overflow:hidden;
}

/* Facebook - official brand blue with the 'f' mark */
.topbar-social a:nth-child(1){
    background:#1877F2;
}

.topbar-social a:nth-child(1) i{
    font-size:16px;
}

/* Instagram - authentic diagonal gradient (yellow → pink/red → purple/blue) */
.topbar-social a:nth-child(2){
    background:linear-gradient(45deg,
        #FEDA75 0%,
        #FA7E1E 25%,
        #D62976 50%,
        #962FBF 75%,
        #4F5BD5 100%);
}

.topbar-social a:nth-child(2) i{
    font-size:15px;
}

/* YouTube - official red with play-button glyph */
.topbar-social a:nth-child(3){
    background:#FF0000;
}

.topbar-social a:nth-child(3) i{
    font-size:14px;
}

.topbar-social a i{
    color:#fff !important;
}

.topbar-social a:hover{
    transform:translateY(-3px) scale(1.08);
    box-shadow:0 6px 16px rgba(0,0,0,.25);
}

@media(max-width:768px){
    .topbar-social{
        display:none;
    }
}


/*==========================================
        NAVBAR
==========================================*/

.custom-navbar {
    background: #0A2E5D;
    transition: all 0.4s ease;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 10px 0;
    box-shadow: 0 5px 25px rgba(0,0,0,.15);
}

.custom-navbar.scrolled {
    background: rgba(10,46,93,0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.school-name{
    font-size:20px;
font-family:Montserrat,sans-serif;
    font-weight:700;
    color:#F4C542;
    margin-bottom:2px;
}

.school-place{
    font-size:14px;
    letter-spacing:3px;
    color:#fff;
    margin:0;
}

.navbar-nav .nav-link{
    color:#fff !important;
    font-size:15px;
    font-weight:500;
    margin-left:18px;
    transition:.4s;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active{
    color:#F4C542 !important;
}

/* ============================================================
   NAVBAR FIT FIX — the menu has 8 items + logo + login icon,
   which is too wide to sit on one line across most laptop/
   desktop widths (roughly 992–1600px). This tightens spacing
   across that whole zone so nothing overflows, and adds a wrap
   fallback so the row breaks onto a second line instead of
   clipping off screen if it's ever still too tight.
   ============================================================ */

@media (min-width:992px) and (max-width:1199px){
    .navbar-nav .nav-link{
        margin-left:7px;
        font-size:12.5px;
        padding-left:.4rem;
        padding-right:.4rem;
    }
    .school-name{
        font-size:15px;
    }
    .school-place{
        font-size:11px;
        letter-spacing:1.5px;
    }
    .navbar-brand img{
        height:40px !important;
    }
    .premium-login{
        width:34px;
        height:34px;
        font-size:13px;
        margin-left:6px;
    }
}

@media (min-width:1200px) and (max-width:1600px){
    .navbar-nav .nav-link{
        margin-left:10px;
        font-size:13.5px;
        padding-left:.5rem;
        padding-right:.5rem;
    }
    .school-name{
        font-size:17px;
    }
    .school-place{
        font-size:12px;
        letter-spacing:2px;
    }
    .navbar-brand img{
        height:45px !important;
    }
    .premium-login{
        width:38px;
        height:38px;
        font-size:15px;
    }
}

.navbar-collapse{
    flex-wrap:wrap;
}

.navbar-nav{
    flex-wrap:wrap;
    row-gap:8px;
}


/* Dropdown Menu */
.dropdown-menu{
    background:#0A2E5D;
    border:none;
    border-radius:12px;
    min-width:240px;
    margin-top:12px;
    padding:8px 0;
    box-shadow:0 12px 35px rgba(0,0,0,.25);
    overflow:hidden;
}

.dropdown-item{
    color:#ffffff;
    padding:12px 20px;
    font-size:15px;
    font-weight:500;
    transition:all .3s ease;
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active{
    background:#F4C542;
    color:#0A2E5D;
}

.navbar .dropdown-toggle::after{
    margin-left:6px;
    vertical-align:middle;
}

@media (min-width:992px){
    .navbar .dropdown:hover .dropdown-menu{
        display:block;
        margin-top:0;
        animation:fadeDown .25s ease;
    }
}

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


/*==========================================
        HERO SECTION (captains page)
==========================================*/

.captain-hero{
    position:relative;
    background:linear-gradient(135deg,#08264D,#0A2E5D);
    padding:90px 0 180px;
    overflow:hidden;
}

.captain-hero::before{
    content:"";
    position:absolute;
    right:-220px;
    top:-180px;
    width:650px;
    height:650px;
    background:rgba(244,197,66,.08);
    border-radius:50%;
}

.hero-text{
    position:relative;
    z-index:2;
    color:#fff;
}

.hero-text h1{
    font-size:72px;
    font-weight:800;
    line-height:1.1;
    margin-bottom:25px;
}

.hero-text h1 span{
    color:var(--gold);
}

.hero-text p{
    font-size:22px;
    line-height:1.7;
    opacity:.9;
    margin-bottom:30px;
}

.hero-icon{
    width:90px;
    height:90px;
    border:2px solid rgba(255,255,255,.25);
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:38px;
    color:#F4C542;
}


/*==========================================
        HERO IMAGE
==========================================*/

.hero-image{
    position:relative;
    z-index:2;
}

.hero-image img{
    border-radius:30px;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
    border:8px solid rgba(255,255,255,.15);
}

.hero-image::before{
    content:"";
    position:absolute;
    left:-55px;
    top:-45px;
    width:160px;
    height:160%;
    background:#F4C542;
    transform:rotate(30deg);
    z-index:-1;
    border-radius:80px;
}


/*==========================================
       CURVE
==========================================*/

.curve{
    position:absolute;
    bottom:-2px;
    left:0;
    width:100%;
    line-height:0;
}

.curve svg{
    display:block;
    width:100%;
    height:170px;
}


/*==========================================
        STUDENT LEADERS SECTION
==========================================*/

.leaders{
    background:#ffffff;
    padding:100px 0;
    position:relative;
}

.line{
    width:90px;
    height:5px;
    background:var(--gold);
    margin:20px auto;
    border-radius:30px;
}


/*==========================================
        PREMIUM FOOTER
==========================================*/

.footer{
    background: linear-gradient(135deg,#0A2E5D,#123D73) !important;
    color:#ffffff !important;
    padding-top:40px;
    padding-bottom:18px;
}

.footer-title{
    color:#F4C542;
    font-size:24px;
    font-weight:700;
    margin-bottom:10px;
}

.footer-heading{
    color:#F4C542;
    font-size:22px;
    font-weight:600;
    margin-bottom:20px;
}

.footer p,
.footer-text,
.footer a,
.footer li{
    color:#ffffff !important;
}

.footer-links{
    list-style:none;
    padding:0;
}

.footer-links li{
    margin-bottom:12px;
}

.footer-links a{
    text-decoration:none;
    transition:.3s;
}

.footer-links a:hover{
    color:#F4C542 !important;
    padding-left:8px;
}

.social-icons a{
    width:45px;
    height:45px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.12);
    color:#fff;
    border-radius:50%;
    margin-right:10px;
    transition:.4s;
    text-decoration:none;
}

.social-icons a:hover{
    background:#F4C542;
    color:#0A2E5D;
    transform:translateY(-5px);
}

.footer-btn{
    background:#F4C542;
    color:#0A2E5D;
    border-radius:30px;
    font-weight:600;
    padding:10px 25px;
}

.footer-btn:hover{
    background:#fff;
    color:#0A2E5D;
}

.footer-line{
    border-color:rgba(255,255,255,.2);
    margin:24px 0 16px;
}

.copyright{
    margin:0;
    color:#ddd;
}


/*==========================
      HERO CAROUSEL (Bootstrap carousel variant)
==========================*/

.hero-slider{
    margin-top:0;
}

#heroCarousel{
    height:65vh;
}

#heroCarousel .carousel-item{
    height:65vh;
    position:relative;
}

#heroCarousel img{
    width:100%;
    height:65vh;
    object-fit:cover;
}

.carousel-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        rgba(10,46,93,.55),
        rgba(10,46,93,.55)
    );
}

#heroCarousel .carousel-caption{
    bottom:50%;
    transform:translateY(50%);
    z-index:2;
}

#heroCarousel h1{
    font-family:'Cinzel',serif;
    font-size:4rem;
    font-weight:700;
    color:#fff;
    text-shadow:0 5px 20px rgba(0,0,0,.4);
}

#heroCarousel p{
    font-size:1.4rem;
    max-width:850px;
    margin:auto;
    color:#fff;
    margin-top:20px;
    line-height:1.8;
    text-shadow:0 3px 12px rgba(0,0,0,.5);
}

.carousel-control-prev-icon,
.carousel-control-next-icon{
    width:55px;
    height:55px;
    border-radius:50%;
    background-color:rgba(255,255,255,.2);
    backdrop-filter:blur(10px);
}

.carousel-indicators button{
    width:12px;
    height:12px;
    border-radius:50%;
}

.carousel-indicators .active{
    background:#F4C542;
}

@media(max-width:992px){

    #heroCarousel,
    #heroCarousel .carousel-item,
    #heroCarousel img{
        height:55vh;
    }

    #heroCarousel h1{
        font-size:2.5rem;
    }

    #heroCarousel p{
        font-size:1rem;
        padding:0 20px;
    }
}

@media(max-width:576px){

    #heroCarousel,
    #heroCarousel .carousel-item,
    #heroCarousel img{
        height:42vh;
    }

    #heroCarousel h1{
        font-size:2rem;
    }

    #heroCarousel p{
        font-size:.95rem;
    }
}


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

.school-intro{
    padding:20px 0 100px;
    background:#ffffff;
}

.sanskrit-heading{
    font-family:'Cinzel',serif;
    font-size:2.0rem;
    font-weight:800;
    color:#0A2E5D;
    margin-bottom:20px;
}

.meaning{
    color:#802424;
    font-size:1.2rem;
    margin-bottom:45px;
    line-height:1.8;
}

.intro-card{
    background:linear-gradient(135deg,#FFF9E6,#FFF3C4);
    border:2px solid #F4C542;
    border-radius:25px;
    padding:60px;
    box-shadow:0 15px 35px rgba(244,197,66,.25);
}

.intro-card h2{
    color:#0A2E5D;
    font-family:'Cinzel',serif;
    font-weight:700;
    margin-bottom:25px;
}

.intro-card p{
    color:#555;
    font-size:1.1rem;
    line-height:2;
    text-align:justify;
}

@media(max-width:992px){
    .school-intro{
        padding:80px 0;
    }
    .sanskrit-heading{
        font-size:2.7rem;
    }
    .intro-card{
        padding:35px;
    }
}

@media(max-width:576px){
    .sanskrit-heading{
        font-size:2rem;
    }
    .meaning{
        font-size:1rem;
    }
    .intro-card{
        padding:25px;
    }
}


/*==========================================
        FEATURE CARDS
==========================================*/

.feature-section{
    background:#f5f9ff;
    padding:90px 0;
}

.feature-card{
    position:relative;
    background:#ffffff;
    border-radius:22px;
    text-align:center;
    padding:140px 35px 45px;
    transition:.4s;
    overflow:hidden;
    box-shadow:0 15px 40px rgba(23,59,115,.08);
    border:1px solid rgba(23,59,115,.08);
}

.feature-card:hover{
    transform:translateY(-12px);
    box-shadow:0 25px 60px rgba(23,59,115,.18);
}

.feature-img{
    width:200px;
    height:200px;
    position:absolute;
    top:-70px;
    left:50%;
    transform:translateX(-50%);
    border-radius:50%;
    overflow:hidden;
    border:8px solid #fff;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
}

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

.feature-content h3{
    color:#173B73;
    font-size:34px;
    font-family:'Cinzel',serif;
    font-weight:700;
    margin-bottom:18px;
}

.divider{
    width:180px;
    margin:20px auto 28px;
    border-top:1px solid #d9e4f5;
}

.divider i{
    background:#fff;
    color:#D4AF37;
    padding:0 15px;
    margin-top:-14px;
    font-size:24px;
}

.btn-explore{
    display:inline-block;
    padding:13px 36px;
    background:#173B73;
    color:#fff;
    text-decoration:none;
    border-radius:50px;
    font-weight:600;
    letter-spacing:1px;
    transition:.35s;
}

.btn-explore:hover{
    background:#D4AF37;
    color:#173B73;
}


/*======================================
        HOLISTIC DEVELOPMENT
======================================*/

.holistic-section{
    position:relative;
    padding:90px 0;
    background:linear-gradient(180deg,#ffffff,#f5f9ff);
    overflow:hidden;
}

.shape{
    position:absolute;
    border-radius:50%;
    animation:float 10s ease-in-out infinite;
    opacity:.35;
    z-index:0;
}

.shape1{
    width:180px;
    height:180px;
    background:#d6e9ff;
    top:-70px;
    left:-70px;
}

.shape2{
    width:140px;
    height:140px;
    background:#ffe7b3;
    right:-40px;
    top:120px;
    animation-delay:2s;
}

.shape3{
    width:90px;
    height:90px;
    background:#dff7df;
    bottom:80px;
    left:8%;
    animation-delay:4s;
}

.shape4{
    width:120px;
    height:120px;
    background:#f4dfff;
    bottom:-50px;
    right:8%;
    animation-delay:6s;
}

.section-subtitle{
    display:inline-block;
    font-size:15px;
    text-transform:uppercase;
    letter-spacing:3px;
    color:#d79b19;
    font-weight:700;
    margin-bottom:12px;
}

.section-desc{
    max-width:780px;
    margin:auto;
    color:#666;
    font-size:18px;
    line-height:1.9;
}


/*====================================================
        CO-CURRICULAR SECTION
====================================================*/

.co-curricular-section{
    padding:10px 0;
    background:#ffffff;
    font-family:'Poppins',sans-serif;
    position:relative;
    overflow:hidden;
}

.co-curricular-section::before{
    content:'';
    position:absolute;
    width:450px;
    height:450px;
    background:rgba(244,197,66,.08);
    border-radius:50%;
    top:-180px;
    right:-180px;
    filter:blur(60px);
}

.co-curricular-section::after{
    content:'';
    position:absolute;
    width:350px;
    height:350px;
    background:rgba(10,46,93,.05);
    border-radius:50%;
    left:-150px;
    bottom:-150px;
    filter:blur(60px);
}


/*====================================================
            SECTION HEADING (shared)
====================================================*/

.section-title{
    max-width:850px;
    margin:auto;
    text-align:center;
    margin-bottom:60px;
}

.section-title h5{
    color:var(--gold);
    font-size:16px;
    font-weight:700;
    letter-spacing:3px;
    text-transform:uppercase;
    margin-bottom:15px;
}

.top-title{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-bottom:20px;
}

.top-title span{
    width:70px;
    height:2px;
    background:#F4C542;
}

.top-title h6{
    margin:0;
    color:#C99A1B;
    letter-spacing:5px;
    font-size:14px;
    font-weight:700;
}

.section-title h2{
    font-family:'Cormorant Garamond',serif;
    font-size:70px;
    font-weight:400;
    color:#0A2E5D;
    line-height:1.1;
    margin-bottom:20px;
}

.section-title h2 span{
    color:#F4C542;
}

.section-title p{
    color:#666;
    font-size:18px;
    line-height:1.8;
    margin:20px auto 0;
    max-width:700px;
}


/*====================================================
                ACTIVITY CARD
====================================================*/

.activity-card{
    position:relative;
    height:320px;
    overflow:hidden;
    border-radius:22px;
    cursor:pointer;
    background:transparent;
    border:none;
    outline:none;
    box-shadow:none;
}

.activity-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    border:none;
    outline:none;
    transition:.6s ease;
}

.activity-card:hover img{
    transform:scale(1.08);
}

.row.g-4{
    --bs-gutter-x:1.5rem;
    --bs-gutter-y:1.5rem;
}

.col-lg-4,
.col-md-6{
    background:transparent;
}

.overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(10,46,93,0.95) 0%,
        rgba(10,46,93,0.80) 25%,
        rgba(10,46,93,0.45) 45%,
        rgba(10,46,93,0.15) 65%,
        rgba(10,46,93,0.00) 80%
    );
    transition:0.4s ease;
}

.activity-card:hover .overlay{
    background:linear-gradient(
        to top,
        rgba(10,46,93,0.98) 0%,
        rgba(10,46,93,0.85) 30%,
        rgba(10,46,93,0.50) 50%,
        rgba(10,46,93,0.18) 70%,
        rgba(10,46,93,0.00) 85%
    );
}

.activity-content{
    position:absolute;
    left:25px;
    right:25px;
    bottom:22px;
    z-index:5;
    color:#fff;
}

.activity-content h3{
    font-size:28px;
    font-weight:700;
    margin-bottom:10px;
    text-shadow:0 3px 10px rgba(0,0,0,.45);
}

.activity-content p{
    font-size:15px;
    color:#f2f2f2;
    line-height:1.6;
    margin-bottom:15px;
    text-shadow:0 2px 8px rgba(0,0,0,.5);
}

.icon{
    width:60px;
    height:60px;
    border-radius:50%;
    background:#0A2E5D;
    border:2px solid #F4C542;
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:18px;
}

.icon i{
    color:#F4C542 !important;
    font-size:26px;
    transition:.3s;
}

.activity-card:hover .icon{
    transform:scale(1.08);
}

.activity-content a{
    color:#F4C542;
    text-decoration:none;
    font-size:16px;
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:.3s;
}

.activity-content a i{
    transition:.3s;
}

.activity-card:hover .activity-content a i{
    transform:translateX(6px);
}

.activity-content a:hover{
    color:#FFD95A;
}


/*=========================================
        FEATURE STRIP
==========================================*/

.feature-strip{
    margin-top:60px;
    background:#ffffff;
    border-radius:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    overflow:hidden;
    border:1px solid #edf1f7;
}

.feature-item{
    display:flex;
    align-items:center;
    gap:18px;
    padding:28px 25px;
    height:100%;
    border-right:1px solid #edf1f7;
    transition:.35s;
}

.feature-item:last-child{
    border-right:none;
}

.feature-item:hover{
    background:#f8fbff;
}

.feature-item i{
    width:60px;
    height:60px;
    background:#F4C542;
    color:#0A2E5D;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
    flex-shrink:0;
}

.feature-item h5{
    margin:0;
    margin-bottom:6px;
    color:#0A2E5D;
    font-size:19px;
    font-weight:700;
}

.feature-item p{
    margin:0;
    color:#666;
    font-size:15px;
    line-height:1.5;
}


/*=========================================
        RESPONSIVE (co-curricular / activity cards)
==========================================*/

@media(max-width:1200px){
    .section-title h2{
        font-size:58px;
    }
    .activity-card{
        height:300px;
    }
}

@media(max-width:992px){
    .section-title h2{
        font-size:48px;
    }
    .section-title p{
        font-size:17px;
    }
    .activity-card{
        height:280px;
    }
    .feature-item{
        border-right:none;
        border-bottom:1px solid #edf1f7;
    }
    .feature-item:last-child{
        border-bottom:none;
    }
}

@media(max-width:768px){
    .co-curricular-section{
        padding:70px 0;
    }
    .top-title span{
        width:40px;
    }
    .section-title h2{
        font-size:40px;
    }
    .section-title p{
        font-size:16px;
    }
    .activity-card{
        height:260px;
    }
    .activity-content{
        left:20px;
        right:20px;
        bottom:20px;
    }
    .activity-content h3{
        font-size:24px;
    }
    .activity-content p{
        font-size:14px;
    }
    .icon{
        width:55px;
        height:55px;
        font-size:22px;
    }
    .feature-item{
        padding:22px;
    }
}

@media(max-width:576px){
    .section-title h2{
        font-size:34px;
    }
    .activity-card{
        height:340px;
    }
    .top-title h6{
        font-size:13px;
        letter-spacing:2px;
    }
    .activity-content h3{
        font-size:22px;
    }
}


/*====================================
        VIRTUAL TOUR
=====================================*/

.virtual-tour-section{
    padding:30px 0;
}

.virtual-tour{
    position:relative;
    overflow:hidden;
    height:210px;
    border-radius:22px;
    box-shadow:0 18px 40px rgba(0,0,0,.18);
}

.virtual-tour img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.tour-overlay{
    position:absolute;
    inset:0;
    display:none;
    background:linear-gradient(
        90deg,
        rgba(255,248,220,.75) 0%,
        rgba(255,243,190,.55) 45%,
        rgba(255,255,255,.20) 100%
    );
}

.tour-content{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    gap:30px;
    padding:0 60px;
    color:#222;
    z-index:2;
}

.play-btn a{
    width:90px;
    height:90px;
    border-radius:50%;
    background:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    text-decoration:none;
    box-shadow:0 10px 30px rgba(0,0,0,.3);
    transition:.3s;
}

.play-btn a span{
    width:0;
    height:0;
    border-top:16px solid transparent;
    border-bottom:16px solid transparent;
    border-left:26px solid #0A2E5D;
    margin-left:6px;
}

.play-btn a:hover{
    background:#F4C542;
    transform:scale(1.1);
}

.tour-text h2{
    font-size:38px;
    font-weight:700;
    color:#b22222;
    margin-bottom:8px;
}

.tour-text p{
    font-size:17px;
    color:#333;
    max-width:450px;
    margin-bottom:18px;
}

.btn-tour{
    display:inline-block;
    padding:12px 28px;
    background:#F4C542;
    color:#0A2E5D;
    border-radius:50px;
    font-weight:700;
    text-decoration:none;
    transition:.3s;
}

.btn-tour:hover{
    background:#fff;
    color:#0A2E5D;
}

@media(max-width:768px){
    .virtual-tour{
        height:260px;
    }
    .tour-content{
        flex-direction:column;
        justify-content:center;
        text-align:center;
        padding:20px;
        gap:15px;
    }
    .tour-text h2{
        font-size:28px;
    }
    .play-btn a{
        width:70px;
        height:70px;
        font-size:30px;
    }
}

/* ================= ALUMNI CARDS - 4-5 PER ROW, SMALLER PHOTOS ================= */

.alumni-cards-grid .card-content,
.alumni-cards-grid .card-content h6,
.alumni-cards-grid .card-content p,
.alumni-cards-grid .company,
.alumni-cards-grid .card-content span{
    color:#000 !important;
}



.alumni-cards-grid{
    display:grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
}

.alumni-cards-grid .card-content h3{
    color:#7A1F1F;
    font-size:14.5px;
    font-weight:700;
}
.alumni-cards-grid .card-content{
    padding:14px 16px 16px;
    display:flex;
    flex-direction:column;
    flex:1;
    min-height:0;
}
/* Unwrap the Bootstrap col divs so premium-card sits directly in the grid */
.alumni-cards-grid > div{
    display:contents;
}

.alumni-cards-grid .premium-card{
    height:340px;
    display:flex;
    flex-direction:column;
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 6px 18px rgba(10,46,93,.09);
    border:1px solid #eef1f6;
    transition:.3s ease;
}

.alumni-cards-grid .premium-card:hover{
    transform:translateY(-6px);
    box-shadow:0 16px 30px rgba(10,46,93,.16);
}

.alumni-cards-grid .card-image{
    position:relative;
    height:180px;
    flex-shrink:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

.alumni-cards-grid .card-image img{
    width:100%;
    height:auto;      /* let the image keep its natural proportions */
    object-fit: contain;   /* harmless now, but keep as a fallback */
    display:block;
    order:1;
}

.alumni-cards-grid .batch-tag{
    position:static;
    order:2;
    align-self:flex-end;
    background:#F4C542;
    color:#0A2E5D;
    font-size:9.5px;
    font-weight:700;
    padding:2px 10px;
    border-radius:0 0 0 10px;
    line-height:1.6;
    height:20px;
    display:flex;
    align-items:center;
}

.alumni-cards-grid .batch-tag:empty,
.alumni-cards-grid .batch-tag:has(> :only-child:empty){
    display:none;
}



.alumni-cards-grid .card-content h3{
    font-size:14.5px;
    font-weight:700;
    color:#7A1F1F;
    margin-bottom:2px;
    line-height:1.3;
}

.alumni-cards-grid .card-content h6{
    font-size:11.5px;
    font-weight:600;
    color:#F4A200;
    margin-bottom:8px;
    text-transform:uppercase;
    letter-spacing:.3px;
}

.alumni-cards-grid .card-content h6:empty{
    display:none;
}

.alumni-cards-grid .company{
    font-size:12px;
    line-height:1.55;
    color:#667085;
    display:-webkit-box;
    -webkit-line-clamp:7;
    -webkit-box-orient:vertical;
    overflow:hidden;
    flex:1;
}

.alumni-cards-grid .company i{
    display:none;
}

@media (max-width:1200px){
    .alumni-cards-grid{
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width:900px){
    .alumni-cards-grid{
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width:600px){
    .alumni-cards-grid{
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   ALUMNI CARD "SEE MORE / SEE LESS" (added feature only —
   no existing rule above this point has been modified)
   ============================================================ */

/* .premium-card already transitions ".3s ease" (all properties),
   which is what makes the JS-driven height change below animate
   smoothly. This rule is only restated here for clarity/safety
   in case that base rule ever changes. */
.alumni-cards-grid .premium-card{
    transition:.3s ease;
}

/* Needed so the "See More" link can be positioned in the
   bottom-right corner of the description WITHOUT adding any
   extra height to the card — keeps the collapsed card size
   pixel-identical to the original design. */
.alumni-cards-grid .card-content{
    position:relative;
}

/* Expanded state: release the 7-line clamp so the full
   description is shown. The card's own height is controlled
   by JS (so the CSS transition has a concrete start/end value
   to animate between). */
.alumni-cards-grid .premium-card.expanded .company{
    -webkit-line-clamp:unset;
    overflow:visible;
}

/* "See More" trigger — sits over the last line of the
   truncated text, faded in from the card's white background
   so it doesn't look like it's cutting off a word. */
.alumni-cards-grid .see-more-btn{
    position:absolute;
    right:16px;
    bottom:14px;
    background:linear-gradient(to left, #fff 60%, rgba(255,255,255,0));
    padding-left:24px;
    font-size:11.5px;
    font-weight:700;
    color:#0A2E5D;
    cursor:pointer;
    line-height:1.55;
    user-select:none;
}

.alumni-cards-grid .see-more-btn:hover{
    text-decoration:underline;
}

/* Once expanded, the link no longer needs to float over text —
   it just sits as a normal line under the full paragraph. */
.alumni-cards-grid .premium-card.expanded .see-more-btn{
    position:static;
    display:inline-block;
    margin-top:4px;
    background:none;
    padding-left:0;
}