*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,
body{
    width:100%;
    overflow-x:hidden;
}

/* No global body padding-top — each page handles its own offset */

@media(max-width:992px){

    body{
        padding-top:0;
    }
}

/* =====================================================
   ROOT VARIABLES
===================================================== */

:root {

    --primary: #10316b;
    --primary-dark: #0a2540;

    --secondary: #e5a93b;
    --secondary-dark: #c88f1d;

    --white: #ffffff;
    --off-white: #f8f9fa;

    --text: #333333;
    --text-light: #666666;

    --border: #e5e7eb;

    --shadow-sm: 0 4px 12px rgba(0,0,0,0.06);
    --shadow-md: 0 10px 30px rgba(0,0,0,0.08);
    --shadow-lg: 0 20px 40px rgba(0,0,0,0.12);

    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;

    --transition: all 0.3s ease;
}

/* =====================================================
   RESET
===================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    color:var(--text);
    background:var(--white);
    overflow-x:hidden;
    line-height:1.6;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

button,
input{
    font-family:inherit;
    border:none;
    outline:none;
}

/* =====================================================
   SCROLLBAR
===================================================== */

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:#f1f1f1;
}

::-webkit-scrollbar-thumb{
    background:var(--primary);
    border-radius:20px;
}

::-webkit-scrollbar-thumb:hover{
    background:var(--primary-dark);
}

/* =====================================================
   GLOBAL UTILITIES
===================================================== */

.container{
    width:min(1280px,92%);
    margin:auto;
}

.section-header{
    text-align:center;
    margin-bottom:5px;
}

.section-header span{
    display:inline-block;
    color:var(--primary);
    font-size:36px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-bottom:10px;
}

.section-header h2{
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size:3.5rem;
    font-weight:800;
    letter-spacing:-1px;
    color:var(--primary);
}

section{
    padding-top:34px;
    padding-bottom:34px;
}
.section-header p{
    display: inline-block;
    background: rgba(255,255,255,0.9);
    padding: 10px 20px;
    border-radius: 8px;
    color: #333;
}
/* =====================================================
   SECTION BACKGROUND IMAGE (light, blurry)
   Add class "has-bg" to any <section> and drop a
   ".section-bg-layer" div with an inline background-image
   as its first child to give that section a soft, blurred
   background image. The image sits behind the section's
   real content (z-index:-1) and is blurred + faded so text
   stays fully readable. Swap the placeholder image paths
   under assets/images/section-bg/ with real photos whenever
   they're ready — no other markup changes are needed.
===================================================== */

.has-bg{
    position:relative;
    isolation:isolate;
}

.section-bg-layer{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    transform:scale(1.1);
    opacity:40%;
    z-index:-1;
    pointer-events:none;
}

/* =====================================================
   TOP BAR
===================================================== */

.top-bar{
    position:fixed;
    top:0;
    left:0;
    width:100%;

    background:var(--primary-dark);
    color:white;
    font-size:14px;

    z-index:1000;
}

.top-bar-container{
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:50px;
    gap:20px;
    flex-wrap:wrap;
}

.announcement{
    display:flex;
    align-items:center;
    gap:15px;
    font-weight:600;
    flex-wrap:wrap;
}

.top-links{
    display:flex;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
}

.top-links a{
    color:white;
    transition:var(--transition);
}

.top-links a:hover{
    color:var(--secondary);
}

/* Apply Button */

.apply-btn{
    background:var(--secondary);
    color:white !important;
    padding:10px 18px;
    border-radius:30px;
    font-weight:700;
    animation:pulse 2s infinite;
    white-space:nowrap;
    margin-left:20px;
}

@keyframes pulse{

    0%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(229,169,59,.7);
    }

    70%{
        transform:scale(1.05);
        box-shadow:0 0 0 15px rgba(229,169,59,0);
    }

    100%{
        transform:scale(1);
    }
}

/* =====================================================
   Announcement
===================================================== */
.admission-link{

    color:white;
    text-decoration:none;
    font-size:14px;
    font-weight:700;

    display:inline-block;

    animation:admissionPulse 2s infinite;
}

.admission-link:hover{

    text-decoration:underline;
}

@keyframes admissionPulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.08);
        text-shadow:
            0 0 10px rgba(255,255,255,.8),
            0 0 20px #ffd700,
            0 0 30px #ffd700;
    }

    100%{
        transform:scale(1);
    }
}

.admission-link::before{
    content:"✨";
    animation:sparkle 1.5s infinite;
}

@keyframes sparkle{
    0%,100%{
        transform:rotate(0deg) scale(1);
    }
    50%{
        transform:rotate(15deg) scale(1.3);
    }
}

/* =====================================================
   HEADER
   Sits below the 50px top-bar on desktop.
   On index.html the hero is full-screen so no body
   padding is needed there. Inner pages use .page-hero
   which has its own padding-top to clear both bars.
===================================================== */

.header{
    position:fixed;
    top:0;
    left:0;
    width:100%;

    background:#f8f8f8;

    border-bottom:1px solid #e5e5e5;

    box-shadow:0 2px 8px rgba(0,0,0,.05);

    z-index:999;
}

/* index.html has a top-bar so its header sits below it */
.has-topbar .header{
    top:50px;
}

.has-topbar .mobile-menu{
    top:130px;
    height:calc(100vh - 130px);
}

.header.scrolled{
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(12px);
    box-shadow:var(--shadow-md);
}

.nav-container{
    display:flex;
    justify-content:space-between;
    align-items:center;

    min-height:80px;

    padding:0 40px;
}

/* =====================================================
   LOGO
===================================================== */

.logo{
    display:flex;
    align-items:center;
    gap:18px;
    flex-shrink:0;
    position:relative;
    top:0px;
}

.logo-circle{
    width: 75px;
    height:75px;

    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;

    background:none;
    border-radius:0;
    transform:none;
    overflow:hidden;
}

.logo-circle img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.logo-text h2{
    font-size:18px;
    font-weight:700;
    color:#163b82;
}

.logo-text span{
    color:#777;
    font-size:14px;
}

@media(max-width:992px){

    .has-topbar .header{
        top:50px;
    }

    .mobile-menu{
        top:80px;
        height:calc(100vh - 80px);
    }

    .has-topbar .mobile-menu{
        top:130px;
        height:calc(100vh - 130px);
    }

    .logo-circle{
        width:60px;
        height:60px;
    }

    .logo-text h2{
        font-size:14px;
    }

    .logo-text span{
        font-size:11px;
    }

}

@media(max-width:768px){

    .logo-circle img{

        width:60px;
        height:60px;
        object-fit:contain;
    }

    .logo-text h2{

        font-size:1.4rem;
    }

    .logo-text span{

        font-size:.85rem;
    }

    .nav-container{

        min-height:75px;

    }

    /* Top Bar — phone: single announcement line only */

    .top-bar{
        height:40px;
        overflow:hidden;
    }

    .top-bar-container{
        flex-direction:row;
        flex-wrap:nowrap;
        align-items:center;
        justify-content:center;
        min-height:40px;
        padding:0 12px;
        gap:0;
    }

    .announcement{
        font-size:12px;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        text-align:center;
        flex:1;
        min-width:0;
    }

    .top-links{
        display:none;
    }

    .header{
        top:40px;
    }

    /* index.html hero is full-screen — no body padding needed */
    /* inner pages clear via .page-hero padding-top in pages.css */

    .mobile-menu{
        top:115px;
        height:calc(100vh - 115px);
    }
}

@media(max-width:576px){

    .logo{
        top:0;
    }

    .logo-circle{
        width:50px;
        height:50px;
    }

    .logo-text h2{
        font-size:1rem;
    }

    .logo-text span{
        font-size:.75rem;
    }
}

/* =====================================================
   NAVIGATION
===================================================== */

.navbar{
    display:flex;
}

.nav-menu{
    display:flex;
    gap:40px;
    list-style:none;
}

.nav-menu a{
    position:relative;
    color:#333;
    font-size:16px;
    font-weight:500;
    text-decoration:none;

    transition:.3s ease;
}

.nav-menu a:hover{
    color:var(--primary);

    transform:translateY(-2px);
}

.nav-menu a::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-8px;

    width:0;

    height:2px;

    background:#163b82;

    transition:.3s;
}

.nav-menu a:hover::after{
    width:100%;
}

.nav-menu li{
    position:relative;
}

/* =====================================================
   MEGA MENU
===================================================== */

.dropdown{
    position:relative;
}

/* Show dropdown on hover */

.dropdown:hover .mega-menu{
    opacity:1;
    visibility:visible;
    transform:
    translateX(-50%)
    translateY(0);
}

/* Dropdown Box */

.mega-menu{

    position:absolute;

    top:100%;
    margin-top:-2px;
    left:50%;

    transform:
    translateX(-50%)
    translateY(0);

    width:650px;

    background:white;

    padding:30px;

    border-radius:20px;

    box-shadow:
    0 20px 50px rgba(0,0,0,.12);

    opacity:0;
    visibility:hidden;

    transition:.3s ease;

    z-index:1000;
}

/* Section Headings */

.menu-section h4{

    color:var(--primary);

    font-size:1.2rem;

    margin-bottom:15px;
}

/* Links Layout */

.menu-links{

    display:grid;

    grid-template-columns:
    repeat(3,1fr);

    gap: 10px;

    align-items:center;

    white-space:nowrap;
}

.menu-links a{

    color:var(--text-light);

    font-weight:500;

    transition:.3s ease;
}

.menu-links a:hover{

    color:var(--secondary);

    transform:translateY(-2px);
}

/* =====================================================
   HAMBURGER
===================================================== */

.hamburger{
    width:40px;
    height:40px;

    border:none;
    background:none;

    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;

    cursor:pointer;
}

.hamburger span{
    width:28px;
    height:3px;

    background:#163b82;

    border-radius:10px;

    transition:.3s;
}

.hamburger.active span:nth-child(1){
    transform:translateY(8px) rotate(45deg);
}

.hamburger.active span:nth-child(2){
    opacity:0;
}

.hamburger.active span:nth-child(3){
    transform:translateY(-8px) rotate(-45deg);
}

/* =====================================================
   MOBILE MENU
===================================================== */

.mobile-menu{

    position:fixed;

    top:90px;

    right:-320px;

    width:320px;

    height:calc(100vh - 90px);

    background:white;

    display:flex;
    flex-direction:column;

    overflow-y:auto;

    transition:right 0.35s ease;

    z-index:1001;

    box-shadow:
    -5px 0 20px rgba(0,0,0,.15);
}
.mobile-menu-header{
    display:flex;
    justify-content:flex-end;
    padding:15px 20px;
    border-bottom:1px solid var(--border);
}

.mobile-close-btn{
    border:none;
    background:none;
    font-size:28px;
    cursor:pointer;
    color:var(--primary);
}

.mobile-menu.active{
    right:0;
}

.mobile-menu a{

    padding:18px 24px;

    border-bottom:1px solid var(--border);

    font-weight:600;
}

.mobile-menu a:hover{

    background:var(--off-white);
}

/* Mobile Dropdown */

.mobile-dropdown-btn{

    width:100%;

    padding:18px 24px;

    border:none;

    background:white;

    text-align:left;

    font-weight:600;

    font-size:16px;

    cursor:pointer;

    border-bottom:1px solid var(--border);

    display:flex;

    justify-content:space-between;

    align-items:center;
}

.mobile-dropdown-btn::after{

    content:"›";

    font-size:22px;

    transition:0.3s ease;
}

.mobile-dropdown-btn.active::after{

    transform:rotate(90deg);
}

.mobile-submenu{

    display:none;

    background:#f8f8f8;
}

.mobile-submenu a{

    display:block;

    padding:14px 40px;

    border-bottom:1px solid var(--border);

    font-size:14px;

    font-weight:500;
}

.mobile-submenu.active{

    display:block;
}

.menu-overlay{

    position:fixed;
    inset:0;

    background:rgba(0,0,0,.4);

    opacity:0;
    visibility:hidden;

    transition:0.3s ease;

    z-index:1000;
}

.menu-overlay.active{

    opacity:1;
    visibility:visible;
}

/* =====================================================
   HERO SECTION
   index.html only — full viewport, no body padding needed
===================================================== */

.hero{

    min-height:100vh;

    display:flex;
    align-items:center;

    position:relative;

    background:
    url("../assets/images/gallery/g1.png")
    center/cover no-repeat;
}

.hero-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:0;
    opacity:.8;
    pointer-events:none;
}

.hero-overlay{

    position:absolute;
    inset:0;

    background:
    linear-gradient(
        rgba(10,37,64,.40),
        rgba(10,37,64,.35)
    );
}

.hero-content{
    position:relative;
    z-index:2;
}

.hero-text{
    max-width:700px;
    color:white;
}

.hero-badge{

    display:inline-block;

    padding:12px 18px;

    border-radius:30px;

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(10px);

    margin-bottom:25px;

    font-family: "Helvetica Neue", Arial, sans-serif;

    font-size:3.5rem;

    font-weight:800;
}

.hero-text h1{

    font-size:clamp(3rem,3vw,5.5rem);

    line-height:1.1;

    font-weight:900;

    margin-bottom:25px;

    text-shadow:0 2px 12px rgba(0,0,0,.45);
}

.hero-text p{

    font-size:1.15rem;

    max-width:650px;

    margin-bottom:35px;

    color:rgba(255,255,255,.92);

    text-shadow:0 1px 8px rgba(0,0,0,.4);
}

/* =====================================================
   HERO BUTTONS
===================================================== */

.hero-buttons{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

.btn{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:16px 28px;

    border-radius:50px;

    font-weight:700;

    transition:var(--transition);
}

.btn-primary{

    background:var(--secondary);
    color:white;
}

.btn-primary:hover{

    transform:translateY(-4px);

    background:var(--secondary-dark);

    box-shadow:var(--shadow-md);
}

.btn-secondary{

    border:2px solid white;
    color:white;
}

.btn-secondary:hover{

    background:white;
    color:var(--primary);

    transform:translateY(-4px);
}

.btn-outline{

    border:2px solid var(--primary);
    color:var(--primary);
    background:transparent;
}

.btn-outline:hover{

    background:var(--primary);
    color:white;

    transform:translateY(-4px);

    box-shadow:var(--shadow-md);
}

/* =====================================================
   HERO ANIMATION
===================================================== */

.hero-text h1,
.hero-text p,
.hero-buttons,
.hero-badge{

    animation:fadeUp 1s ease forwards;
}

@keyframes fadeUp{

    from{
        opacity:0;
        transform:translateY(30px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* =====================================================
   LEADERSHIP SECTION
===================================================== */

.leadership-section{

    background:var(--off-white);

    position:relative;

    overflow:hidden;

    padding-top:34px;
    padding-bottom:34px;
}

.leadership-section::before{

    content:"";

    position:absolute;

    width:400px;
    height:400px;

    border-radius:50%;

    background:rgba(229,169,59,.08);

    top:-150px;
    right:-150px;
}

.leadership-grid{

    display:grid;

    grid-template-columns:
    repeat(3,1fr);

    gap:35px;
}

.leader-card{

    background:#fff;

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    transition:.5s ease;

    transform:translateY(40px);

    opacity:0;
}

.leader-card.show{

    transform:translateY(0);

    opacity:1;
}

.leader-card:hover{

    transform:
    translateY(-12px);

    box-shadow:
    0 25px 60px rgba(0,0,0,.15);
}

.leader-image{

    height:350px;

    overflow:hidden;

    position:relative;
}

.leader-image img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.7s ease;
}

.leader-card:hover .leader-image img{

    transform:scale(1.08);
}

.leader-content{

    padding:30px;
}

.leader-role{

    display:inline-block;

    padding:8px 16px;

    border-radius:30px;

    background:
    rgba(16,49,107,.08);

    color:var(--primary);

    font-weight:700;

    margin-bottom:15px;
}

.leader-content h3{

    font-size:1.7rem;

    color:var(--primary);

    margin-bottom:15px;
}

.leader-content p{

    color:var(--text-light);

    margin-bottom:20px;

    line-height:1.8;
}

.leader-content a{

    color:var(--secondary);

    font-weight:700;
}

.leader-content a:hover{

    color:var(--primary);
}

@media(max-width:992px){

    .leadership-grid{

        grid-template-columns:1fr;
    }

    .leader-image{

        height:300px;
    }
}

/* =====================================================
   STATS SECTION
===================================================== */

.stats{

    background:
    linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:white;

    padding-top:34px;
    padding-bottom:34px;
}

.stats-grid{

    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}

.stat-item{

    text-align:center;

    position:relative;
}

.stat-item::after{

    content:"";

    position:absolute;

    right:-15px;
    top:50%;

    transform:translateY(-50%);

    width:1px;
    height:70px;

    background:rgba(255,255,255,.15);
}

.stat-item:last-child::after{
    display:none;
}

.stat-item h3{

    font-size:3.5rem;

    font-weight:900;

    margin-bottom:10px;

    color:var(--secondary);
}

.stat-item p{

    font-size:1rem;

    letter-spacing:1px;

    text-transform:uppercase;
}

/* =====================================================
   ACHIEVEMENTS SECTION
===================================================== */

.achievements{

    background:white;

    position:relative;
}

.achievements::before{

    content:"";

    position:absolute;

    width:500px;
    height:500px;

    border-radius:50%;

    background:rgba(16,49,107,.03);

    left:-250px;
    bottom:-250px;
}

.achievement-grid{

    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:30px;
}

.achievement-card{

    background:white;

    border-radius:var(--radius-lg);

    padding:35px;

    box-shadow:var(--shadow-sm);

    transition:var(--transition);

    position:relative;

    overflow:hidden;
}

.achievement-card::before{

    content:"🏆";

    position:absolute;

    right:25px;
    top:20px;

    font-size:2.5rem;

    opacity:.1;
}

.achievement-card:hover{

    transform:translateY(-10px);

    box-shadow:var(--shadow-lg);
}

.achievement-card h3{

    color:var(--primary);

    margin-bottom:15px;

    font-size:1.4rem;
}

.achievement-card p{

    color:var(--text-light);

    line-height:1.8;
}

/* =====================================================
   ACHIEVEMENT HIGHLIGHT STRIP
===================================================== */

.achievement-highlight{

    margin-top:70px;

    display:grid;
    grid-template-columns:repeat(4,1fr);

    gap:20px;
}

.highlight-box{

    text-align:center;

    background:
    linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:white;

    padding:25px;

    border-radius:20px;
}

.highlight-box h4{

    font-size:2rem;

    color:var(--secondary);

    margin-bottom:8px;
}

.highlight-box p{

    font-size:.9rem;

    opacity:.9;
}

/* =====================================================
   PREMIUM TESTIMONIALS
===================================================== */
.testimonials{
    padding-top:16px;
    padding-bottom:16px;
    background: linear-gradient(135deg, #f7faff, #ffffff);
    overflow:hidden;
}

.testimonial-wrapper{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:8px;
    max-width:1300px;
    margin:auto;
}

/* =====================================================
   CARD
===================================================== */
.testimonial-card{
    display:flex;
    align-items:center;
    gap:20px;
    padding:0 28px;
    text-align:left;
    transition: opacity .6s ease, transform .6s ease;
}
.testimonial-card.fade-out{
    opacity:0;
    transform: translateY(20px) scale(.97);
}

.testimonial-card:first-child{
    border-right:1px solid rgba(0,0,0,.1);
}

.testimonial-card:last-child{
    flex-direction:row-reverse;
    text-align:right;
}

/* =====================================================
   IMAGE — original tall rectangular card shape restored.
   The CONTAINER is the fixed size-lock; the img fills it
   with object-fit:cover so any uploaded image (landscape,
   portrait, square) is cropped to fit without ever
   overflowing or resizing the card.
===================================================== */
.testimonial-image{
    flex-shrink:0;
    /* Fixed container — exact original dimensions */
    width:300px;
    height:420px;
    border-radius:16px;
    overflow:hidden;               /* ← this is the crash-proof lock */
    box-shadow: 0 15px 35px rgba(0,0,0,.12);
    background: #e8edf4;           /* placeholder colour while image loads */
}
.testimonial-image img{
    width:100%;
    height:100%;                   /* fill the fixed container exactly */
    object-fit:cover;              /* crop to fill — never stretches card */
    object-position:top center;    /* show top of image (faces/subjects) */
    display:block;
}
/* =====================================================
   CONTENT
===================================================== */
.testimonial-content{
    flex:1;
}
.quote-mark{
    font-size:50px;
    color:rgba(229,169,59,.2);
    line-height:1;
    margin-bottom:5px;
}
.testimonial-content p{
    font-size:1.5rem;
    line-height:1.7;
    color:var(--text);
    font-style:italic;
    margin-bottom:15px;
}
.testimonial-content h4{
    color:var(--primary);
    font-size:1.2rem;
    margin-bottom:4px;
}
.testimonial-content span{
    color:var(--text-light);
    font-size:2.8rem;
    font-weight:800;
    letter-spacing:0.05em;
    text-transform:uppercase;
}

/* =====================================================
   CONTROLS
===================================================== */
.testimonial-controls{
    display:flex;
    justify-content:center;
    gap:15px;
    margin-top:45px;
}
.testimonial-controls button{
    width:55px;
    height:55px;
    border:none;
    border-radius:50%;
    cursor:pointer;
    font-size:22px;
    background:white;
    box-shadow: 0 8px 25px rgba(0,0,0,.08);
    transition:.3s ease;
}
.testimonial-controls button:hover{
    transform: translateY(-4px) scale(1.05);
    background:var(--secondary);
    color:white;
}

/* =====================================================
   DOTS
===================================================== */
.testimonial-dots{
    display:flex;
    justify-content:center;
    gap:12px;
    margin-top:30px;
}
.testimonial-dot{
    width:12px;
    height:12px;
    border-radius:50%;
    background:#d1d5db;
    cursor:pointer;
    transition:.3s ease;
}
.testimonial-dot.active{
    width:35px;
    border-radius:20px;
    background:var(--secondary);
}

/* =====================================================
   TABLET
===================================================== */
@media(max-width:992px){
    .testimonial-wrapper{
        grid-template-columns:1fr;
    }
    .testimonial-card:first-child{
        border-right:none;
        border-bottom:1px solid rgba(0,0,0,.1);
        padding-bottom:30px;
        margin-bottom:30px;
    }
    .testimonial-card:last-child{
        flex-direction:row;
        text-align:left;
    }
}

/* =====================================================
   MOBILE
===================================================== */
@media(max-width:768px){
    .testimonial-card{
        flex-direction:column;
        text-align:center;
        padding:0 20px;
    }
    .testimonial-card:last-child{
        flex-direction:column;
        text-align:center;
    }
    .testimonial-image{
        width:200px;
        height:260px;
    }
    .testimonial-content p{
        font-size:.9rem;
    }
    .quote-mark{
        font-size:40px;
    }
}
/* =====================================================
   SECTION DECORATIONS
===================================================== */

.curriculum-card,
.achievement-card,
.testimonial{

    will-change:transform;
}

.curriculum-card:hover .card-icon{

    transform:rotate(-6deg) scale(1.08);
}

.card-icon{
    transition:var(--transition);
}

/* =====================================================
   FLOATING SHAPES
===================================================== */

.floating-shape{

    position:absolute;

    border-radius:50%;

    animation:floatShape 6s ease-in-out infinite;
}

.shape-1{

    width:80px;
    height:80px;

    background:rgba(229,169,59,.12);

    top:10%;
    left:5%;
}

.shape-2{

    width:120px;
    height:120px;

    background:rgba(16,49,107,.08);

    bottom:10%;
    right:8%;
}

@keyframes floatShape{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-20px);
    }

    100%{
        transform:translateY(0);
    }
}

/* =====================================================
   TESTIMONIAL ANIMATION
===================================================== */

@keyframes fadeSlide{

    from{
        opacity:0;
        transform:translateY(30px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* =====================================================
   HOVER GLOW EFFECTS
===================================================== */

.curriculum-card:hover,
.achievement-card:hover{

    box-shadow:
    0 15px 40px rgba(16,49,107,.12),
    0 0 0 1px rgba(16,49,107,.05);
}

/* =====================================================
   (Per-class section padding overrides removed)
===================================================== */

/* =====================================================
   PREMIUM DIVIDER
===================================================== */

.section-header::after{

    content:"";

    display:block;

    width:80px;
    height:4px;

    background:
    linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );

    margin:20px auto 0;

    border-radius:50px;
}

/* =====================================================
   FOOTER
===================================================== */

.footer{

    background:var(--primary-dark);

    color:white;

    padding-top:80px;
}

.footer-grid{

    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:40px;

    padding-bottom:50px;
}

.footer h3{

    margin-bottom:20px;

    color:var(--secondary);

    font-size:1.2rem;
}

.footer a{

    display:block;

    margin-bottom:12px;

    color:rgba(255,255,255,.85);

    transition:var(--transition);
}

.footer a:hover{

    color:var(--secondary);

    transform:translateX(5px);
}

.footer p{

    margin-bottom:12px;

    color:rgba(255,255,255,.85);
}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.1);

    text-align:center;

    padding:20px;

    color:rgba(255,255,255,.7);
}

/* =====================================================
   SOCIAL ICONS
===================================================== */

.social-icons{

    display:flex;

    gap:12px;

    flex-wrap:wrap;
}

.social-icons a{

    width:45px;
    height:45px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    transition:var(--transition);
}

.social-icons a:hover{

    background:var(--secondary);

    color:white;

    transform:translateY(-5px);
}

/* =====================================================
   CHAT TOGGLE BUTTON
===================================================== */

.chat-toggle{

    position:fixed;

    right:25px;
    bottom:25px;

    width:65px;
    height:65px;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:white;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:1.7rem;

    cursor:pointer;

    z-index:2000;

    box-shadow:var(--shadow-lg);

    transition:var(--transition);

    animation:chatPulse 2s infinite;
}

.chat-toggle:hover{

    transform:scale(1.08);
}

@keyframes chatPulse{

    0%{
        box-shadow:
        0 0 0 0 rgba(16,49,107,.6);
    }

    70%{
        box-shadow:
        0 0 0 18px rgba(16,49,107,0);
    }

    100%{
        box-shadow:
        0 0 0 0 rgba(16,49,107,0);
    }
}

/* =====================================================
   CHAT WIDGET
===================================================== */

.chat-widget{

    position:fixed;

    right:25px;
    bottom:100px;

    width:370px;
    max-height:600px;

    background:white;

    border-radius:20px;

    overflow:hidden;

    box-shadow:var(--shadow-lg);

    z-index:2000;

    opacity:0;
    visibility:hidden;

    transform:
    translateY(30px);

    transition:var(--transition);

    display:flex;
    flex-direction:column;
}

.chat-widget.active{

    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

/* =====================================================
   CHAT HEADER
===================================================== */

.chat-header{

    background:
    linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:white;

    padding:18px;

    display:flex;

    justify-content:space-between;

    align-items:center;
}

.chat-header h4{

    font-size:1rem;
    margin-bottom:4px;
}

.chat-header span{

    font-size:.85rem;

    color:#90ee90;
}

.chat-close{

    width:35px;
    height:35px;

    border-radius:50%;

    background:rgba(255,255,255,.15);

    color:white;

    cursor:pointer;
}

/* =====================================================
   CHAT BODY
===================================================== */

.chat-body{

    padding:20px;

    overflow-y:auto;

    height:320px;

    background:#fafafa;
}

.chat-message{

    margin-bottom:15px;

    max-width:85%;

    padding:12px 15px;

    border-radius:16px;

    line-height:1.5;

    font-size:.95rem;
}

.bot-message{

    background:#edf2ff;

    color:var(--text);
}

.user-message{

    background:var(--primary);

    color:white;

    margin-left:auto;
}

/* =====================================================
   CHAT OPTIONS
===================================================== */

.chat-options{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    padding:15px;

    border-top:1px solid var(--border);
}

.chat-options button{

    padding:10px 14px;

    border-radius:30px;

    cursor:pointer;

    background:#f1f5f9;

    color:var(--primary);

    font-size:.85rem;

    transition:var(--transition);
}

.chat-options button:hover{

    background:var(--primary);

    color:white;
}

/* =====================================================
   CHAT INPUT
===================================================== */

.chat-input{

    display:flex;

    border-top:1px solid var(--border);
}

.chat-input input{

    flex:1;

    padding:15px;
}

.chat-input button{

    background:var(--primary);

    color:white;

    padding:0 20px;

    cursor:pointer;
}

/* =====================================================
   TYPING INDICATOR
===================================================== */

.typing{

    display:flex;

    gap:5px;

    align-items:center;
}

.typing span{

    width:8px;
    height:8px;

    border-radius:50%;

    background:#999;

    animation:typing 1.2s infinite;
}

.typing span:nth-child(2){
    animation-delay:.2s;
}

.typing span:nth-child(3){
    animation-delay:.4s;
}

@keyframes typing{

    0%,100%{
        transform:translateY(0);
        opacity:.4;
    }

    50%{
        transform:translateY(-4px);
        opacity:1;
    }
}

/* =====================================================
   CHAT — REPRESENTATIVE LEAD FORM
===================================================== */

.chat-lead-form-wrapper{

    background:transparent;

    padding:0;

    max-width:100%;
}

.chat-lead-form{

    display:flex;

    flex-direction:column;

    gap:10px;

    background:white;

    border:1px solid var(--border);

    border-radius:var(--radius-md);

    padding:15px;

    box-shadow:var(--shadow-sm);
}

.chat-lead-form input,
.chat-lead-form textarea{

    width:100%;

    padding:11px 13px;

    border:1px solid var(--border);

    border-radius:10px;

    font-size:.9rem;

    font-family:inherit;

    color:var(--text);

    background:var(--off-white);
}

.chat-lead-form textarea{

    resize:vertical;

    min-height:70px;
}

.chat-lead-form input:focus,
.chat-lead-form textarea:focus{

    outline:none;

    border-color:var(--primary);

    background:white;
}

.chat-lead-error{

    color:#d92d20;

    font-size:.8rem;

    min-height:1em;
}

.chat-lead-submit{

    align-self:flex-start;

    padding:11px 24px;

    border-radius:30px;

    background:var(--secondary);

    color:white;

    font-weight:700;

    font-size:.9rem;

    cursor:pointer;

    transition:var(--transition);
}

.chat-lead-submit:hover{

    background:var(--secondary-dark);
}

.chat-lead-submit:disabled{

    opacity:.65;

    cursor:not-allowed;
}

/* =====================================================
   INPUT FOCUS STATES
===================================================== */

input:focus,
textarea:focus{

    box-shadow:
    0 0 0 3px
    rgba(16,49,107,.15);
}

/* =====================================================
   LARGE TABLETS
===================================================== */

@media(max-width:1200px){

    .mega-menu{
        width:600px;
    }

    .hero-text h1{
        font-size:4rem;
    }
}

/* =====================================================
   TABLETS
===================================================== */

@media(max-width:992px){

    .navbar{
        display:none;
    }

    .hamburger{
        display:flex;
    }

    .curriculum-grid{

        grid-template-columns:
        repeat(2,1fr);
    }

    .stats-grid{

        grid-template-columns:
        repeat(2,1fr);

        gap:40px;
    }

    .achievement-grid{

        grid-template-columns:
        1fr;
    }

    .footer-grid{

        grid-template-columns:
        repeat(2,1fr);
    }

    .achievement-highlight{

        grid-template-columns:
        repeat(2,1fr);
    }

    .stat-item::after{
        display:none;
    }
}

/* =====================================================
   MOBILE DEVICES
===================================================== */

@media(max-width:992px){

    section{
        padding:80px 0;
    }

    .top-bar{
        padding:0;
        height:50px;
        overflow:hidden;
    }

    .top-bar-container{

        flex-direction:row;

        flex-wrap:nowrap;

        justify-content:space-between;

        align-items:center;

        gap:10px;

        padding:0 15px;

        min-height:50px;
    }

    .announcement{
        font-size:12px;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        flex:1;
        min-width:0;
        text-align:left;
    }

    .admission-link{
        font-size:12px;
    }

    .top-links{
        display:flex;
        align-items:center;
        gap:0;
        flex-wrap:nowrap;
        flex-shrink:0;
    }

    .top-links a:not(.apply-btn){
        display:none;
    }

    .apply-btn{
        margin-left:0;
        padding:6px 12px;
        font-size:11px;
        animation:none;
        box-shadow:none;
    }

    .announcement{
        text-align:left;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .navbar{
        display:none;
    }

    .hamburger{
        display:flex;
    }

    .hero{
        min-height:90vh;
    }

    .hero-text{
        text-align:center;
    }

    .hero-buttons{
        justify-content:center;
    }

    .hero-text h1{
        font-size:3rem;
    }

    .hero-text p{
        font-size:1rem;
    }

    .curriculum-grid{
        grid-template-columns:1fr;
    }

    .stats-grid{
        grid-template-columns:1fr;
    }

    .achievement-grid{
        grid-template-columns:1fr;
    }

    .footer-grid{
        grid-template-columns:1fr;
    }

    .achievement-highlight{
        grid-template-columns:1fr;
    }

    .testimonial{
        padding:40px 25px;
    }

    .testimonial p{
        font-size:1rem;
    }

    .chat-widget{
        width:calc(100% - 30px);
        right:15px;
        left:15px;
        bottom:90px;
    }

    .chat-toggle{
        right:15px;
        bottom:15px;
    }

    .hero-text h1{
        font-size:1.8rem;
    }

    .hero-badge{
        font-size:2.5rem;
    }

}

/* =====================================================
   SMALL PHONES
===================================================== */

@media(max-width:576px){

    .logo-circle{
        width:50px;
        height:50px;
    }

    .logo-text h2{
        font-size:1rem;
    }

    .logo-text span{
        font-size:.75rem;
    }

    .hero-text h1{
        font-size:1.5rem;
    }

    .hero-badge{
        font-size:2rem;
    }

    .btn{
        width:100%;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .section-header h2{
        font-size:2rem;
    }

    .curriculum-card,
    .achievement-card{
        padding:25px;
    }

    .stat-item h3{
        font-size:2.8rem;
    }

    .chat-body{
        height:280px;
    }

    .chat-lead-form{
        padding:12px;
    }

    .chat-lead-submit{
        width:100%;
    }
}

/* =====================================================
   EXTRA SMALL DEVICES
===================================================== */

@media(max-width:400px){
    .hero-text h1{
        font-size:1.5rem;
    }

    .hero-badge{
        font-size:2rem;
    }

    .chat-widget{
        width:calc(100% - 20px);
        left:10px;
        right:10px;
    }
}

/* =====================================================
   EVENT GALLERY
===================================================== */

.event-gallery{
    background:#f8fafc;
    overflow:hidden;
}

.gallery-carousel{
    position:relative;
    height:550px;
    display:flex;
    align-items:center;
    justify-content:center;
    perspective:1200px;
    overflow:hidden;
    max-width:100%;
}

.carousel-track{
    position:relative;
    width:100%;
    height:100%;
    overflow:hidden;
}

.carousel-slide{

    position:absolute;

    top:50%;
    left:50%;

    width:700px;
    height:420px;

    border-radius:24px;

    overflow:hidden;

    cursor:pointer;

    transition:
        transform .7s ease,
        opacity .7s ease,
        filter .7s ease;

    transform-style:preserve-3d;

    box-shadow:
        0 20px 50px rgba(0,0,0,.15);

    /* Safe default for any slide that hasn't yet been classified as
       .active/.prev/.next/.hidden by JS (e.g. during the brief window
       before script.js runs, or while apply-admin-data.js is rebuilding
       the carousel from server data). Without this, an un-classed slide
       sits centered at full size and full opacity — and with multiple
       slides stacked in the same spot, the topmost one (often light-
       colored) reads as a blank "white screen" until JS assigns the
       real positioning classes a moment later. */
    transform:translate(-50%, -50%) scale(.5);
    opacity:0;
    filter:blur(10px);
    z-index:1;
}

.carousel-slide img{

    width:100%;
    height:100%;

    object-fit:cover;

    display:block;
}

.slide-overlay{

    position:absolute;

    left:0;
    right:0;
    bottom:0;

    padding:30px;

    color:white;

    background:
        linear-gradient(
            transparent,
            rgba(0,0,0,.7)
        );
}

.slide-overlay h3{
    font-size:1.8rem;
}

.slide-gallery-hint {
    display: inline-block;
    margin-top: 6px;
    font-size: .85rem;
    background: rgba(255,255,255,.18);
    padding: 3px 10px;
    border-radius: 20px;
    backdrop-filter: blur(4px);
    letter-spacing: .02em;
}

.carousel-slide.active{

    transform:
        translate(-50%, -50%)
        scale(1);

    opacity:1;

    filter:blur(0);

    z-index:10;
}

.carousel-slide.prev{

    transform:
        translate(-120%, -50%)
        scale(.75)
        rotateY(25deg);

    opacity:.55;

    filter:blur(5px);

    z-index:5;
}

.carousel-slide.next{

    transform:
        translate(20%, -50%)
        scale(.75)
        rotateY(-25deg);

    opacity:.55;

    filter:blur(5px);

    z-index:5;
}

.carousel-slide.hidden{

    transform:
        translate(-50%, -50%)
        scale(.5);

    opacity:0;

    filter:blur(10px);

    z-index:1;
}

.gallery-nav{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:60px;
    height:60px;

    border:none;

    border-radius:50%;

    background:white;

    font-size:24px;

    cursor:pointer;

    box-shadow:
        0 8px 25px rgba(0,0,0,.15);

    z-index:20;

    transition:.3s;
}

.gallery-nav:hover{

    transform:
        translateY(-50%)
        scale(1.1);
}

.gallery-nav.prev{
    left:20px;
}

.gallery-nav.next{
    right:20px;
}

.carousel-dots{

    position:absolute;

    bottom:-10px;

    left:50%;

    transform:translateX(-50%);

    display:flex;

    gap:12px;
}

.carousel-dot{

    width:12px;
    height:12px;

    border-radius:50%;

    background:#cbd5e1;

    cursor:pointer;

    transition:.3s;
}

.carousel-dot.active{
    background:#163b82;
    transform:scale(1.3);
}

@media (max-width: 992px) {

    .gallery-carousel{
        height:450px;
    }

    .carousel-slide{
        width:500px;
        height:320px;
    }

    .carousel-slide.prev,
    .carousel-slide.next{
        scale:.65;
    }
}

@media (max-width: 768px) {

    /* ---- CAROUSEL: full-width single-card on mobile ---- */
    .gallery-carousel{
        height:260px;
        overflow:hidden;
    }

    .carousel-track{
        overflow:hidden;
    }

    /* Active slide fills the carousel width */
    .carousel-slide{
        width:calc(100vw - 40px);
        max-width:100%;
        height:220px;
        border-radius:16px;
        left:50%;
        top:50%;
    }

    /* Hide prev/next slides entirely on mobile to stop overflow */
    .carousel-slide.prev,
    .carousel-slide.next{
        opacity:0;
        pointer-events:none;
        transform: translate(-50%, -50%) scale(0.5);
        visibility:hidden;
    }

    .carousel-slide.active{
        transform: translate(-50%, -50%) scale(1);
        opacity:1;
        visibility:visible;
    }

    .carousel-slide.hidden{
        opacity:0;
        visibility:hidden;
    }

    .slide-overlay{
        padding:16px 20px;
    }

    .slide-overlay h3{
        font-size:1.1rem;
    }

    /* Nav arrows: keep inside the carousel */
    .gallery-nav{
        width:40px;
        height:40px;
        font-size:16px;
        z-index:30;
    }

    .gallery-nav.prev{ left:8px; }
    .gallery-nav.next{ right:8px; }

    .carousel-dots{
        bottom:-18px;
    }

    /* ---- END CAROUSEL ---- */

    .logo-circle img{
        width:60px;
        height:60px;
        object-fit:contain;
    }

    .logo-text h2{
        font-size:1.4rem;
    }

    .logo-text span{
        font-size:.85rem;
    }

    .nav-container{
        min-height:75px;
    }
}

/* =====================================================
   WHY VSPS
===================================================== */

.section-tag{

    display:inline-block;

    font-size:46px;

    font-weight:14px;

    letter-spacing:4px;

    color:var(--primary)!important;

    text-transform:uppercase;

    margin-bottom:20px;
}

.why-vsps{
    background:
    linear-gradient(
        135deg,
        #f7faff,
        #ffffff
    );
}

.why-showcase{

    display:grid;

    grid-template-columns:
    repeat(12,1fr);

    gap:25px;
}

.why-item{

    position:relative;

    overflow:hidden;

    border-radius:24px;

    min-height:350px;

    cursor:pointer;

    box-shadow:
    0 20px 40px rgba(0,0,0,.08);

    grid-column:span 4;

    opacity:0;

    transform:
    translateY(50px);

    transition:
    transform .5s ease,
    box-shadow .5s ease;
}

.why-item.show{

    opacity:1;

    transform:
    translateY(0);
}

.why-item.large{

    grid-column:span 6;

    min-height:500px;
}

/* New layout classes: 3 large in row 1, 4 small in row 2 */
.why-item.large.three-col{

    grid-column:span 4;

    min-height:500px;
}

.why-item.four-col{

    grid-column:span 3;

    min-height:350px;
}

.why-item img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
    transform .7s ease;
}

.why-overlay{

    position:absolute;

    left:0;
    right:0;
    bottom:0;

    padding:40px 30px;

    color:white;

    background:
    linear-gradient(
        transparent,
        rgba(0,0,0,.85)
    );
}

.why-overlay h3{

    font-size:2rem;

    margin-bottom:10px;
}

.why-overlay p{

    font-size:1rem;

    line-height:1.6;
}

.why-item:hover{

    transform:
    translateY(-10px)
    scale(1.02);

    box-shadow:
    0 30px 60px rgba(0,0,0,.18);
}

.why-item:hover img{

    transform:scale(1.1);
}

.why-item::before{

    content:"";

    position:absolute;

    inset:0;

    border:2px solid transparent;

    border-radius:24px;

    transition:.4s ease;

    z-index:2;
}

.why-item:hover::before{

    border-color:
    rgba(255,255,255,.5);
}

@media (max-width: 992px) {

    .why-item.large{
        grid-column:span 12;
    }

    .why-item.large.three-col{
        grid-column:span 12;
    }

    .why-item.four-col{
        grid-column:span 6;
    }

    .why-item{
        grid-column:span 6;
    }
}

@media (max-width: 768px) {

    .why-showcase{
        grid-template-columns:1fr;
    }

    .why-item,
    .why-item.large,
    .why-item.large.three-col,
    .why-item.four-col{
        grid-column:span 1;
        min-height:320px;
    }

    .why-overlay h3{
        font-size:1.5rem;
    }
}

/* =====================================================
   LEADERSHIP SLIDER
===================================================== */

.leader-slider {
    position: relative;
    min-height: 420px;
    overflow: hidden;
}

.leader-slide {
    display: none;
    align-items: center;
    gap: 60px;
    animation: leaderFadeIn 0.6s ease;
}

.leader-slide.active {
    display: flex;
}

@keyframes leaderFadeIn {
    from { opacity: 0; transform: translateX(30px); }
    to   { opacity: 1; transform: translateX(0); }
}

.leader-slide-image {
    flex: 0 0 320px;
    height: 380px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0,0,0,0.15);
    border: 4px solid var(--secondary);
}

.leader-slide-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 0.7s ease;
}

.leader-slide:hover .leader-slide-image img {
    transform: scale(1.05);
}

.leader-slide-content {
    flex: 1;
    padding: 10px 0;
}

.leader-slide-content .leader-role {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 30px;
    background: rgba(16,49,107,0.08);
    color: var(--primary);
    font-weight: 700;
    margin-bottom: 14px;
}

.leader-slide-content h3 {
    font-size: 2rem;
    color: var(--primary);
    margin-bottom: 18px;
    font-weight: 800;
}

.leader-quote-mark {
    font-size: 4rem;
    line-height: 1;
    color: var(--secondary);
    margin-bottom: 10px;
    font-family: Georgia, serif;
}

.leader-quote {
    font-size: 1.08rem;
    color: var(--text);
    line-height: 1.9;
    font-style: italic;
    padding: 20px 24px;
    background: rgba(255,255,255,0.8);
    border-left: 4px solid var(--secondary);
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 16px rgba(0,0,0,0.05);
}

/* Dot navigation */
.leader-dots {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 36px;
}

.leader-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: rgba(16,49,107,0.2);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.leader-dot.active {
    background: var(--primary);
    transform: scale(1.3);
}

@media (max-width: 900px) {
    .leader-slide,
    .leader-slide.active {
        flex-direction: column;
        gap: 28px;
    }
    .leader-slide-image {
        flex: none;
        width: 100%;
        max-width: 320px;
        height: 300px;
        margin: 0 auto;
    }
}

/* =====================================================
   PHONE TOP-BAR FIX — must stay at END of file
===================================================== */

@media(max-width:768px){

    .top-bar{
        height:36px !important;
        min-height:36px !important;
        max-height:36px !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    .top-bar-container{
        display:flex !important;
        flex-direction:row !important;
        flex-wrap:nowrap !important;
        align-items:center !important;
        justify-content:space-between !important;
        height:36px !important;
        min-height:36px !important;
        padding:0 10px !important;
        gap:6px !important;
    }

    .announcement{
        display:flex !important;
        flex-wrap:nowrap !important;
        align-items:center !important;
        gap:4px !important;
        flex:1 1 0 !important;
        min-width:0 !important;
        overflow:hidden !important;
        font-size:9.5px !important;
        line-height:1 !important;
        white-space:nowrap !important;
    }

    .admission-link{
        font-size:9.5px !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
        display:inline-block !important;
        max-width:100% !important;
        line-height:1 !important;
    }

    .admission-link::before{
        content:"✨" !important;
        font-size:9.5px !important;
    }

    .top-links{
        display:flex !important;
        align-items:center !important;
        flex-shrink:0 !important;
        gap:0 !important;
    }

    .top-links a:not(.apply-btn){
        display:none !important;
    }

    .apply-btn{
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        padding:4px 9px !important;
        font-size:9.5px !important;
        font-weight:700 !important;
        margin-left:18px !important;
        white-space:nowrap !important;
        border-radius:20px !important;
        line-height:1 !important;
        height:24px !important;
        animation:pulse 2s infinite !important;
    }

    /* Inner pages: header starts at very top, no top-bar */
    .header{
        top:0 !important;
    }

    /* index.html only: header sits below the 36px top-bar */
    .has-topbar .header{
        top:36px !important;
    }

    .nav-container{
        padding:0 14px !important;
        min-height:78px !important;
        display:flex !important;
        align-items:center !important;
    }

    /* index.html: hero is full-screen so no body padding needed */
    /* inner pages: body padding handled by .page-hero in pages.css */
    body{
        padding-top:0 !important;
    }

    /* Inner pages: mobile menu sits just below the 78px header */
    .mobile-menu{
        top:78px !important;
        height:calc(100vh - 78px) !important;
    }

    /* index.html: mobile menu sits below top-bar + header */
    .has-topbar .mobile-menu{
        top:114px !important;
        height:calc(100vh - 114px) !important;
    }

    .logo{
        display:flex !important;
        align-items:center !important;
        flex-shrink:0 !important;
        gap:10px !important;
    }

    .logo-circle{
        flex-shrink:0 !important;
        width:50px !important;
        height:50px !important;
        overflow:visible !important;
    }

    .logo-circle img{
        width:50px !important;
        height:50px !important;
        object-fit:contain !important;
    }

    .logo-text h2{
        font-size:0.9rem !important;
        line-height:1.2 !important;
    }

    .logo-text span{
        font-size:0.7rem !important;
    }
}

@media(max-width:480px){

    .nav-container{
        padding:0 10px !important;
    }

    .logo{
        gap:8px !important;
    }

    .logo-circle{
        width:44px !important;
        height:44px !important;
        flex-shrink:0 !important;
    }

    .logo-circle img{
        width:44px !important;
        height:44px !important;
    }

    .logo-text h2{
        font-size:0.82rem !important;
        line-height:1.2 !important;
    }

    .logo-text span{
        font-size:0.72rem !important;
    }
}