/* =========================
   HERO VIDEO SECTION
========================= */

.hero-video{
    position:relative;
    width:100%;
    height:100vh;
    overflow:hidden;
}

/* VIDEO */

.hero-video-bg{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
}

/* OVERLAY */

.hero-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        to bottom,
        rgba(0,0,0,.20),
        rgba(0,0,0,.20),
        rgba(0,0,0,.20)
    );

}

/* CONTENT */

.hero-content{
    position:relative;
    z-index:2;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    color: white;
	font-weight:700;
    padding:20px;
}

.hero-content h1{

    margin-bottom:25px;

    text-align:center;

}

.hero-small{

    display:block;

    color:#ffffff;

    font-size:52px;

    font-weight:700;

    margin-bottom:10px;

}

.hero-title{

    display:block;

    color:#67E8F9;

    font-size:60px;

    font-weight:800;

    line-height:1.15;

    max-width:1100px;

}



.hero-content p{
    font-size:22px;
    max-width:850px;
    line-height:1.8;
    margin-bottom:35px;
}


.hero-divider{
    position:absolute;
    left:0;
    width:100%;
    transform-origin:left;
    will-change:transform,opacity;
}

/* ==========================
   Bottom Layer
========================== */

.divider1{
    bottom:-130px;
    height:130px;
    background:rgba(238,245,251,.80);
    animation:wave1 6s ease-in-out infinite;
}


/* ==========================
   Middle Layer
========================== */

.divider2{
    bottom:-110px;
    height:100px;
    background:rgba(238,245,251,.70);
    animation:wave2 7s ease-in-out infinite;
}

/* ==========================
   Top Layer
========================== */

.divider3{
    bottom:-90px;
    height:70px;
    background:rgba(238,245,251,.60);
    animation:wave3 8s ease-in-out infinite;
}


/* ==========================
   Wave Animations
========================== */

@keyframes wave1{

    0%{
        transform:skewY(-3deg) translateY(0);
        opacity:.60;
    }

    25%{
        transform:skewY(-3deg) translateY(-5px);
        opacity:.70;
    }

    50%{
        transform:skewY(-3deg) translateY(-10px);
        opacity:.80;
    }

    75%{
        transform:skewY(-3deg) translateY(-5px);
        opacity:.70;
    }

    100%{
        transform:skewY(-3deg) translateY(0);
        opacity:.60;
    }

}


@keyframes wave2{

    0%{
        transform:skewY(-2deg) translateY(-5px);
        opacity:.55;
    }

    25%{
        transform:skewY(-2deg) translateY(2px);
        opacity:.68;
    }

    50%{
        transform:skewY(-2deg) translateY(8px);
        opacity:.78;
    }

    75%{
        transform:skewY(-2deg) translateY(2px);
        opacity:.80;
    }

    100%{
        transform:skewY(-2deg) translateY(-5px);
        opacity:.55;
    }

}


@keyframes wave3{

    0%{
        transform:skewY(-1deg) translateY(8px);
        opacity:.50;
    }

    25%{
        transform:skewY(-1deg) translateY(2px);
        opacity:.65;
    }

    50%{
        transform:skewY(-1deg) translateY(-5px);
        opacity:.75;
    }

    75%{
        transform:skewY(-1deg) translateY(3px);
        opacity:.80;
    }

    100%{
        transform:skewY(-1deg) translateY(8px);
        opacity:.50;
    }

}

/* BUTTONS */

.hero-buttons{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
    justify-content:center;
}

.hero-btn{
    padding:15px 34px;
    border-radius:50px;
    text-decoration:none;
    font-size:17px;
    font-weight:700;
    transition:0.3s;
}

.primary-btn{
    background:#f0b400;
    color:black;
}

.primary-btn:hover{
    background:white;
    color:black;
}

.secondary-btn{
    border:2px solid white;
    color:white;
}

.secondary-btn:hover{
    background:white;
    color:black;
}

/* =========================
   QUICK LINKS
========================= */
.quick-card{
    max-width:400px;
    margin:0 auto;
}

.quick-links-section{
    padding:70px 0;
    background:#ffffff;
}

.quick-card{
    display:block;
    background:white;
    border-radius:18px;
    padding:45px 35px;
    text-align:center;
    text-decoration:none;
    box-shadow:0 8px 25px rgba(0,0,0,0.08);
    transition:0.3s;
    height:100%;
}

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

.quick-icon{
    width:80px;
    height:80px;
    background:#F59E0B;
    color:#071a35;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:auto;
    margin-bottom:25px;
    font-size:32px;
}

.quick-card h4{
    color:#4A1F74;
    font-size:22px;
    font-weight:700;
    margin-bottom:15px;
}

.quick-card p{
    color:#555;
    line-height:1.7;
    margin:0;
}

/*====================================================
HOME INFO SECTION
====================================================*/

.home-info-section{
    padding:40px 0;
    background:#f7f9fc;
}

/*====================================================
ONE PREMIUM CARD
====================================================*/

.home-card{

    width:100%;

    max-width:100%;

    margin:0;

    background:#ffffff;

    border-radius:1px;

    overflow:hidden;

    border:1px solid rgba(15,76,129,.08);

    box-shadow:
        0 10px 25px rgba(0,0,0,.05),
        0 22px 45px rgba(0,0,0,.08);

}

/*====================================================
GOLD COLUMN DIVIDERS
====================================================*/

.notice-box,
.updates-box{
    position:relative;
}

.notice-box::before,
.updates-box::before{

    content:"";

    position:absolute;

    left:0;

    /* Increase these to shorten the line */
    top:35px;
    bottom:30px;

    width:2px;

    background:#F59E0B;

    border-radius:10px;

}
/*====================================================
ABOUT SECTION
====================================================*/

/*====================================================
ABOUT SECTION
====================================================*/

.about-wrapper{

    display:flex;

    flex-direction:column;

    background:transparent;

    box-shadow:none;

    border-radius:0;

    overflow:hidden;

    height:100%;

}

/*====================================================
IMAGE SLIDER
====================================================*/

.about-slider{

    width:calc(100% - 60px);

    height:360px;

    margin:20px 30px 0;

    overflow:hidden;

    border-radius:10px;

    box-shadow:0 10px 30px rgba(0,0,0,.15);

}

.about-slider .carousel,
.about-slider .carousel-inner,
.about-slider .carousel-item,
.about-slide{

    width:100%;
    height:100%;

}

.about-slide{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;

    overflow:hidden;

    background:#000;

}

/*====================================================
Blurred Background
====================================================*/

.about-bg{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    filter:blur(22px);

    transform:scale(1.18);

    opacity:.85;

}

/*====================================================
Dark Overlay
====================================================*/

.about-slide::after{

    content:"";

    position:absolute;

    inset:0;

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

    z-index:1;

    pointer-events:none;

}

/*====================================================
Main Image
====================================================*/

.about-main{

    position:relative;

    z-index:2;

    width:100%;

    height:100%;

    object-fit:contain;

    object-position:center;

    pointer-events:none;

}

.about-bg{

    pointer-events:none;

}

/*====================================================
Navigation
====================================================*/

.about-slider .carousel-control-prev,
.about-slider .carousel-control-next{

    position:absolute;

    top:0;

    bottom:0;

    width:70px;

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:1;

    z-index:50;

}

.about-slider .carousel-control-prev{

    left:0;

}

.about-slider .carousel-control-next{

    right:0;

}

.about-slider .carousel-control-prev-icon,
.about-slider .carousel-control-next-icon{

    width:46px;

    height:46px;

    border-radius:50%;

    background-color:rgba(15,76,129,.90);

    background-size:18px;

    transition:all .3s ease;

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

}

.about-slider .carousel-control-prev:hover .carousel-control-prev-icon,
.about-slider .carousel-control-next:hover .carousel-control-next-icon{

    transform:scale(1.12) translateY(-2px);

}

/*====================================================
Responsive
====================================================*/

@media (max-width:992px){

    .about-slider{

        width:100%;

        height:300px;

        margin:15px 0 0;

        border-radius:8px;

    }

    .about-slider .carousel-control-prev,
    .about-slider .carousel-control-next{

        width:60px;

    }

}

@media (max-width:768px){

    .about-slider{

        height:240px;

    }

    .about-slider .carousel-control-prev,
    .about-slider .carousel-control-next{

        width:50px;

    }

    .about-slider .carousel-control-prev-icon,
    .about-slider .carousel-control-next-icon{

        width:38px;

        height:38px;

        background-size:14px;

    }

}

@media (max-width:576px){

    .about-slider{

        height:210px;

    }

    .about-slider .carousel-control-prev,
    .about-slider .carousel-control-next{

        width:45px;

    }

    .about-slider .carousel-control-prev-icon,
    .about-slider .carousel-control-next-icon{

        width:34px;

        height:34px;

        background-size:12px;

    }

}

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

.about-content{

    width:100%;

    padding:22px 30px 28px;

    display:flex;

    flex-direction:column;

    justify-content:flex-start;

}

.about-content h2{

    font-size:24px;

    font-weight:800;

    color:#4A1F74;

    line-height:1.25;

    margin:0 0 10px;

}

.about-content h3{

    font-size:15px;

    font-weight:800;

    color:#F59E0B;

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:10px;

}

.about-content p{

    font-size:16px;
	
	font-weight:300;

    line-height:1.75;

    color:#2E0E57;

    text-align:justify;

    margin-bottom:20px;

}

/*====================================================
BUTTON
====================================================*/

.about-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    align-self:flex-start;

    background:#2FA88A;

    color:#fff;

    text-decoration:none;

    padding:9px 20px;

    border-radius:6px;

    font-size:13px;

    font-weight:600;

    transition:.3s;

}

.about-btn:hover{

    background:#F59E0B;

    color:#111;

}


/*====================================================
ABOUT SECTION - SUBTLE SHIMMER
====================================================*/

.about-wrapper{
    position:relative;
    overflow:hidden;
}

/* Shimmer layer */
.about-wrapper::after{

    content:"";

    position:absolute;

    top:0;
    left:-100%;

    width:45%;
    height:100%;

    background:linear-gradient(
        110deg,
        transparent 0%,
        rgba(255,255,255,.03) 30%,
        rgba(255,255,255,.22) 50%,
        rgba(255,255,255,.03) 70%,
        transparent 100%
    );

    transform:skewX(-20deg);

    animation:aboutShimmer 3s ease-in-out infinite;

    pointer-events:none;

    z-index:5;
}

@keyframes aboutShimmer{

    0%{
        left:-100%;
    }

    45%{
        left:-100%;
    }

    75%{
        left:130%;
    }

    100%{
        left:130%;
    }

}

/*====================================================
NOTICE & UPDATE PANELS
(height is controlled by the About section)
====================================================*/

/* the columns holding the panels become the positioning parent */
.home-card [class*="col-"]:has(> .notice-box),
.home-card [class*="col-"]:has(> .updates-box){
    position:relative;
}

.notice-box,
.updates-box{
    position:absolute;        /* removes them from the height calculation */
    top:0;
    right:0;
    bottom:0;
    left:0;

    background:transparent;
    box-shadow:none;
    border-radius:0;
    padding:30px;
    margin:0;

    display:flex;
    flex-direction:column;
    overflow:hidden;
}

/* Latest Updates: scroll if there are many items */
.updates-box{
    overflow-y:auto;
}

/* Latest Notices: marquee fills the remaining space, never grows */
.notice-box marquee{
    flex:1 1 0;
    min-height:0;
    height:auto !important;   /* overrides any height="" set in the HTML */
    overflow:hidden;
    padding-right:8px;
}

/* MOBILE / TABLET: columns stack, so give the panels a fixed height */
@media (max-width:992px){

    .home-card [class*="col-"]:has(> .notice-box),
    .home-card [class*="col-"]:has(> .updates-box){
        position:static;
    }

    .notice-box,
    .updates-box{
        position:relative;
        height:420px;
        padding:25px 20px;
    }

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

.notice-box h3,
.updates-box h3{

    font-size:30px;

    font-weight:800;

    color:#4A1F74;

    margin-bottom:28px;

    position:relative;

}

.notice-box h3::after,
.updates-box h3::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-10px;

    width:60px;

    height:3px;

    background:#F59E0B;

    border-radius:50px;

    transform-origin:left center;

    animation:underlineCollapse 3s ease-in-out infinite;

}

@keyframes underlineCollapse{

    0%{
        width:60px;
    }

    25%{
        width:25px;
    }

    50%{
        width:60px;
    }

    75%{
        width:40px;
    }

    100%{
        width:60px;
    }

}

/*====================================================
MARQUEE
====================================================*/

.notice-box marquee{

    flex:1;

    overflow:hidden;

    padding-right:8px;

}

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

.notice-box ul{

    list-style:none;

    margin:0;

    padding:0;

}

.notice-box li{

    border-bottom:1px solid #e7edf5;

}

.notice-box li:last-child{

    border-bottom:none;

}

.update-item{

    padding:18px 0;

    border-bottom:1px solid #e7edf5;

}

.update-item:last-child{

    border-bottom:none;

}

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

.notice-box a{

    display:block;

    padding:18px 0;

    text-decoration:none;

    color:#2E0E57;

    font-size:18px;

    font-weight:400;

    line-height:1.8;

    transition:.3s;

}

.notice-box a:hover{

    color:#F59E0B;

    padding-left:10px;

}

.update-item a{

    display:block;

    color:#2E0E57;

    text-decoration:none;

    font-size:16px;

    font-weight:600;

    line-height:1.7;

    transition:.3s;

}

.update-item a:hover{

    color:#F59E0B;

    padding-left:8px;

}

/*====================================================
DATE BADGE
====================================================*/

.update-date{

    display:inline-block;

    background:#2FA88A;

    color:#ffffff;

    padding:5px 12px;

    border-radius:20px;

    font-size:11px;

    font-weight:700;

    margin-bottom:10px;

}

/*====================================================
LATEST UPDATES - SLOW BREATHING EFFECT
====================================================*/

.update-item{
    animation:highlightNews 8s linear infinite;
}

.update-item:nth-child(1){ animation-delay:0s; }
.update-item:nth-child(2){ animation-delay:1.6s; }
.update-item:nth-child(3){ animation-delay:3.2s; }
.update-item:nth-child(4){ animation-delay:4.8s; }
.update-item:nth-child(5){ animation-delay:6.4s; }

@keyframes highlightNews{

    0%,80%,100%{
        background:transparent;
    }

    10%,20%{
        background: rgba(245, 158, 11, 0.12);
    }

}
/* =========================
   UNIVERSITY HIGHLIGHTS
========================= */

.vc-section{

    position:relative;
    padding:45px 0;
    background:linear-gradient(to right, #2E0E57, #1B0638);
    overflow:hidden;

}

.vc-section::before{

    content:"";
    position:absolute;
    top:-120px;
    right:-120px;
    width:260px;
    height:260px;
    border-radius:50%;
    background:rgba(240,180,0,.06);

}

.vc-section::after{

    content:"";
    position:absolute;
    bottom:-150px;
    left:-150px;
    width:340px;
    height:340px;
    border-radius:50%;
    background:rgba(255,255,255,.03);

}


/* =========================
   LEADERS
========================= */

.leader-box{

    position:relative;
    z-index:2;
    text-align:center;
    padding:10px;

}

.leader-box img{

    width:210px;
    height:240px;
    object-fit:cover;
    padding:5px;
    box-shadow:0 14px 35px rgba(0,0,0,.28);
    transition:.35s;

}

.leader-box h3{

    color:#F59E0B;
    font-size:17px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-top:16px;
    margin-bottom:6px;

}

.leader-box h4{

    color:#ffffff;
    font-size:27px;
    font-weight:700;
    line-height:1.3;
    margin:0;

}


/* =========================
   DIVIDER
========================= */

.vc-divider{

    width:100%;
    height:1px;
    background:rgba(255,255,255,.15);
    margin:35px 0;

}


/* =========================
   STATISTICS
========================= */

.stat-item{

    position:relative;
    text-align:center;
    padding:12px;

}

.stat-item:not(:last-child)::after{

    content:"";
    position:absolute;
    top:20%;
    right:0;
    width:1px;
    height:60%;
    background:rgba(255,255,255,.15);

}

.stat-item h2{

    color:#ffffff;
    font-size:54px;
    font-weight:800;
    line-height:1;
    margin-bottom:8px;

}

.stat-item span{

    display:block;
    color:#3CBF9D;
    font-size:14px;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;

}


/* =========================
   SECTION HEADING
========================= */

.section-heading{

    position:relative;
    z-index:2;
    margin-bottom:40px;

}

.section-tag{

    display:inline-block;
    color:#F59E0B;
    font-size:40px;
    font-weight:800;
    letter-spacing:3px;
    text-transform:uppercase;
    margin-bottom:12px;

}

.section-tag1{

    display:inline-block;
    color:#4A1F74;
    font-size:40px;
    font-weight:800;
    letter-spacing:3px;
    text-transform:uppercase;
    margin-bottom:12px;

}

.section-heading h2{

    color:#ffffff;
    font-size:40px;
    font-weight:800;
    margin-bottom:12px;

}

.section-heading p{

    color:rgba(255,255,255,.75);
    font-size:17px;
    max-width:650px;
    margin:auto;
    line-height:1.7;

}

/* =========================
   FACILITIES SECTION
========================= */

.facilities-section{
    padding:100px 0;
    background:#eef5fb;
}


/* =========================
   GRID
   (gap is 0: spacing comes from item padding,
   so the divider lines run unbroken)
========================= */

.facilities-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    counter-reset:facility;
}

/* =========================
   ITEM (no card)
========================= */

.facility-card{
    position:relative;
    display:flex;
    flex-direction:column;
    height:100%;
    padding:38px 40px 52px;
    background:transparent;
    border:none;
    border-top:1px solid rgba(74,31,116,.18);
    border-right:1px solid rgba(74,31,116,.18);   /* vertical separator */
    border-radius:0;
    box-shadow:none;
    counter-increment:facility;
    opacity:0;
    transform:translateY(24px);
    animation:facilityReveal .8s cubic-bezier(.2,.7,.2,1) forwards;
}

/* staggered entrance */
.facility-card:nth-child(1){ animation-delay:.05s; }
.facility-card:nth-child(2){ animation-delay:.15s; }
.facility-card:nth-child(3){ animation-delay:.25s; }
.facility-card:nth-child(4){ animation-delay:.35s; }
.facility-card:nth-child(5){ animation-delay:.45s; }
.facility-card:nth-child(6){ animation-delay:.55s; }

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

/* amber accent on top of the hairline, extends on hover */

.facility-card::before{
    content:"";
    position:absolute;
    top:-1px;
    left:0;
    width:56px;
    height:2px;
    background:#F59E0B;
    transition:width .6s cubic-bezier(.2,.7,.2,1);
}

.facility-card:hover::before{
    width:100%;
}

/* large faint index number */

.facility-card::after{
    content:counter(facility, decimal-leading-zero);
    position:absolute;
    top:26px;
    right:40px;
    font-size:56px;
    font-weight:800;
    line-height:1;
    letter-spacing:-2px;
    color:rgba(74,31,116,.07);
    transition:color .4s ease, transform .5s ease;
    pointer-events:none;
}

.facility-card:hover::after{
    color:rgba(245,158,11,.30);
    transform:translateY(-4px);
}


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

.facility-icon{
    width:62px;
    height:62px;
    border-radius:50%;
    background:transparent;
    color:#4A1F74;
    border:1.5px solid rgba(74,31,116,.28);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:25px;
    margin-bottom:28px;
    transition:background .35s ease, color .35s ease, border-color .35s ease, transform .35s ease;
}

.facility-card:hover .facility-icon{
    background:#F59E0B;
    border-color:#F59E0B;
    color:#ffffff;
    transform:translateY(-3px);
}


/* =========================
   TITLE
========================= */

.facility-card h4{
    font-size:23px;
    font-weight:700;
    color:#4A1F74;
    letter-spacing:-.2px;
    line-height:1.3;
    margin:0 0 14px;
}


/* =========================
   DESCRIPTION
========================= */

.facility-card p{
    color:#0b4f8a;
    font-size:15.5px;
    line-height:1.85;
    font-weight:400;
    flex-grow:1;
    margin:0 0 26px;
    max-width:36ch;
}


/* =========================
   LINK
   (arrow comes from your HTML icon only)
========================= */

.facility-card a{
    position:relative;
    display:inline-flex;
    align-items:center;
    align-self:flex-start;
    gap:10px;
    padding-bottom:6px;
    color:#F59E0B;
    font-size:13px;
    font-weight:700;
    letter-spacing:1.6px;
    text-transform:uppercase;
    text-decoration:none;
    transition:color .3s ease;
}

/* underline that draws in on hover */

.facility-card a::before{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:1.5px;
    background:#0b2447;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .45s cubic-bezier(.2,.7,.2,1);
}

/* the existing arrow icon slides forward on hover */

.facility-card a i,
.facility-card a svg{
    transition:transform .3s ease;
}

.facility-card:hover a{
    color:#0b2447;
    padding-left:0;
}

.facility-card:hover a::before{
    transform:scaleX(1);
}

.facility-card:hover a i,
.facility-card:hover a svg{
    transform:translateX(5px);
}


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

/* DESKTOP: 4 columns in one row */

@media(min-width:1200px){

    .facility-card{
        padding:38px 30px 52px;
    }

    .facility-card::after{
        right:30px;
    }

    .facility-card:nth-child(4n+1){
        padding-left:0;
    }

    .facility-card:nth-child(4n){
        padding-right:0;
        border-right:none;
    }

    .facility-card:nth-child(4n)::after{
        right:0;
    }

}

/* TABLET and small laptops: 2 columns */

@media(min-width:577px) and (max-width:1199px){

    .facilities-section{
        padding:75px 0;
    }

    .facilities-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .facility-card{
        padding:34px 30px 44px;
    }

    .facility-card::after{
        right:30px;
        font-size:48px;
    }

    .facility-card:nth-child(2n+1){
        padding-left:0;
    }

    .facility-card:nth-child(2n){
        padding-right:0;
        border-right:none;
    }

    .facility-card:nth-child(2n)::after{
        right:0;
    }

    .facility-card h4{
        font-size:21px;
    }

}

/* PHONE: 1 column, horizontal dividers only */

@media(max-width:576px){

    .facilities-section{
        padding:55px 0;
    }

    .facilities-grid{
        grid-template-columns:1fr;
    }

    .facility-card{
        padding:32px 0 40px;
        border-right:none;
    }

    .facility-card::after{
        right:0;
        font-size:42px;
        top:22px;
    }

    .facility-icon{
        width:56px;
        height:56px;
        font-size:22px;
        margin-bottom:22px;
    }

    .facility-card h4{
        font-size:20px;
    }

    .facility-card p{
        font-size:15px;
        line-height:1.75;
        max-width:none;
    }

}

/* respect users who prefer no motion */

@media (prefers-reduced-motion:reduce){

    .facility-card{
        opacity:1;
        transform:none;
        animation:none;
    }

}

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

@media(max-width:991px){

    .leader-box{

        margin-bottom:35px;

    }

    .leader-box img{

        width:130px;

        height:130px;

    }

    .leader-box h4{

        font-size:24px;

    }

    .vc-divider{

        margin:35px 0;

    }

    .stat-item{

        margin-bottom:35px;

    }

    .stat-item::after{

        display:none;

    }

    .stat-item h2{

        font-size:46px;

    }

}
/*====================================================
RESPONSIVE (consolidated)
Breakpoints: 1600 / 1400 / 1200 / 992 / 768 / 576 / 400
====================================================*/

/* ---------- Large desktops ---------- */

@media (max-width:1600px){
    .about-slider{ height:380px; }
}

@media (max-width:1400px){
    .about-slider{ height:340px; }
}

@media (max-width:1200px){

    .about-slider{
        height:300px;
        margin:20px 24px 0;
        width:calc(100% - 48px);
    }

    .about-content{ padding:20px 24px 26px; }

    .about-content h2{ font-size:22px; }

    .about-content p{
        font-size:15px;
        line-height:1.7;
    }

    .notice-box,
    .updates-box{ padding:26px 22px; }

    .notice-box h3,
    .updates-box h3{ font-size:26px; }

    .notice-box a{ font-size:16px; }
}

/* ---------- Tablets: columns stack ---------- */

@media (max-width:992px){

    .home-info-section{ padding:25px 0; }

    /* About section */
    .about-wrapper{
        height:auto;
        min-height:0;
    }

    .about-slider{
        width:calc(100% - 40px);
        height:300px;
        margin:20px 20px 0;
        border-radius:8px;
    }

    .about-content{
        padding:22px 20px 28px;
        margin:0;
    }

    /* Notices and updates: fixed height, scroll inside */
    .home-card [class*="col-"]:has(> .notice-box),
    .home-card [class*="col-"]:has(> .updates-box){
        position:static;
    }

    .notice-box,
    .updates-box{
        position:relative;
        height:400px;
        min-height:0;
        padding:34px 20px 22px;
    }

    /* gold divider becomes a horizontal line on top */
    .notice-box::before,
    .updates-box::before{
        top:0;
        bottom:auto;
        left:20px;
        right:20px;
        width:auto;
        height:2px;
    }
}

/* ---------- Large phones ---------- */

@media (max-width:768px){

    /* hero */
    .hero-video{ height:70vh; }

    .hero-content h1{ font-size:30px; }

    .hero-content p{
        font-size:16px;
        line-height:1.6;
    }

    .hero-btn{
        padding:12px 22px;
        font-size:15px;
    }

    /* general sections */
    .quick-links-section,
    .about-section,
    .notice-section{ padding:50px 0; }

    .section-title h2{ font-size:28px; }

    /* about */
    .about-slider{
        height:240px;
        width:calc(100% - 32px);
        margin:16px 16px 0;
    }

    .about-content{ padding:20px 16px 24px; }

    .about-content h2{ font-size:22px; }

    .about-content h3{
        font-size:13px;
        letter-spacing:1.5px;
    }

    .about-content p{
        font-size:15px;
        line-height:1.65;
        margin-bottom:16px;
    }

    /* notices / updates */
    .notice-box,
    .updates-box{
        height:380px;
        padding:32px 16px 20px;
    }

    .notice-box::before,
    .updates-box::before{
        left:16px;
        right:16px;
    }

    .notice-box h3,
    .updates-box h3{
        font-size:24px;
        margin-bottom:24px;
    }

    .notice-box a{
        font-size:15px;
        padding:14px 0;
        line-height:1.7;
    }

    .update-item{ padding:14px 0; }

    .update-item a{ font-size:15px; }
}

/* ---------- Phones ---------- */

@media (max-width:576px){

    .hero-video{ height:65vh; }

    .hero-content h1{ font-size:26px; }

    .hero-content p{ font-size:15px; }

    .quick-links-section,
    .about-section,
    .notice-section{ padding:40px 0; }

    .section-title h2{ font-size:24px; }

    .about-slider{ height:210px; }

    .about-content h2{ font-size:20px; }

    .about-content p{
        font-size:14.5px;
        text-align:left;      /* justified text looks gappy on narrow screens */
    }

    .notice-box,
    .updates-box{ height:340px; }

    .notice-box h3,
    .updates-box h3{ font-size:22px; }

    .notice-box a,
    .update-item a{ font-size:14.5px; }

    .update-date{
        font-size:10.5px;
        padding:4px 10px;
    }
}

/* ---------- Small phones ---------- */

@media (max-width:400px){

    .about-slider{ height:185px; }

    .about-slider .carousel-control-prev,
    .about-slider .carousel-control-next{ width:38px; }

    .about-content h2{ font-size:18px; }

    .notice-box,
    .updates-box{ height:320px; }
}