/*==================================================
                WEESI INSTITUTE
              MAIN STYLESHEET
====================================================*/


/*==================================================
1. RESET
====================================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    font-size:16px;
    line-height:1.6;
    color:#555;
    background:#fff;
    overflow-x:hidden;
}

img{
    max-width:100%;
    height:auto;
    display:block;
}

a{
    text-decoration:none;
    transition:.3s;
}

ul{
    list-style:none;
}

button,
input,
textarea{
    font-family:'Poppins',sans-serif;
}

button{
    cursor:pointer;
}


/*==================================================
2. ROOT VARIABLES
====================================================*/

:root{

    --primary:#703098;

    --secondary:#11142d;

    --white:#ffffff;

    --black:#000000;

    --heading:#222;

    --text:#666;

    --light:#f8f9fa;

    --border:#e6e6e6;

    --radius:6px;

    --shadow:0 10px 30px rgba(0,0,0,.08);

    --transition:.3s;

}


/*==================================================
3. GLOBAL STYLES
====================================================*/

.container{

    width:min(92%,1200px);

    margin:auto;

}

section{

    padding:100px 0;

}

h1,
h2,
h3,
h4,
h5,
h6{

    color:var(--heading);

    font-weight:700;

}

p{

    color:var(--text);

}

.primary-btn{

    display:inline-block;

    background:var(--primary);

    color:#fff;

    padding:15px 35px;

    border-radius:5px;

    transition:.3s;

    font-weight:600;

}

.primary-btn:hover{

    background:#562575;

}


/*==================================================
4. HEADER
====================================================*/

.top-header{

    background:#fff;

    border-bottom:1px solid var(--border);

    padding:8px 0;

}

.header-wrapper{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:24px;

}

.logo a{

    color:inherit;

}

.logo{
    display:flex;
    align-items:center;
}

.logo-link{
    display:flex;
    align-items:center;
    gap:8px;
}

.site-logo{
    height:30px;
    width:auto;
    display:block;
    object-fit:contain;
}

.logo h2{

    color:var(--secondary);

    font-size:22px;

    font-weight:700;

    line-height:1;

}

.logo span{

    display:block;

    letter-spacing:2px;

    font-size:9px;

    color:#666;

    margin-top:1px;

}

.top-header .contact-info{

    display:flex;

    align-items:center;

    gap:18px;

    flex-direction:row;

}

.top-header .contact-item{

    display:flex;

    align-items:center;

    gap:6px;

}

.top-header .contact-item > div{
    display:flex;
    align-items:center;
    gap:6px;
    white-space:nowrap;
}

.top-header .contact-item h5{
    margin:0;
    font-size:12px;
    font-weight:600;
    line-height:1;
    color:#111827;
}

.top-header .contact-item p{
    margin:0;
    font-size:12px;
    color:#374151;
    line-height:1;
}

.top-header .contact-item i{

    color:var(--primary);

    font-size:14px;

}

.header-social-links{

    display:flex;

    align-items:center;

    gap:10px;

}

.header-social-links a{

    width:34px;

    height:34px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#f3e8ff;

    color:#6f2c91;

    border:1px solid #dec7ef;

    font-size:15px;

    transition:.3s;

}

.header-social-links a:hover{

    background:var(--primary);

    color:#fff;

    transform:translateY(-3px);

}

.header-social-links a.inactive,
.social-links a.inactive{

    opacity:1;

    cursor:default;

}

.header-social-links a.inactive:hover,
.social-links a.inactive:hover{

    transform:none;

}

/* unified h5 and p styles set above */

.apply-btn{

    display:inline-block;

    background:var(--primary);

    color:#fff;

    padding:7px 18px;

    border-radius:5px;

    font-size:13px;

    font-weight:600;

    transition:.3s;

}

.apply-btn:hover{

    background:#562575;

}


/*==================================================
5. NAVIGATION
====================================================*/

.navbar{

    background:
        radial-gradient(circle at 12% 85%, rgba(111,44,145,.30) 0%, transparent 34%),
        radial-gradient(circle at 88% 12%, rgba(84,80,189,.25) 0%, transparent 38%),
        linear-gradient(115deg, #07080d 0%, #170b20 48%, #111226 100%);

    position:relative;

}

.navbar-wrapper{

    display:flex;

    justify-content:flex-end;

    align-items:center;

    position:relative;

}

.menu-btn{

    display:none;

    background:rgba(255,255,255,.08);

    color:#fff;

    width:48px;

    height:48px;

    font-size:26px;

    border:none;

    border-radius:6px;

    cursor:pointer;

    align-items:center;

    justify-content:center;

    transition:.25s;

}

.menu-btn:hover,
.menu-btn[aria-expanded="true"]{

    background:rgba(255,102,0,.18);

    color:var(--primary);

}

.nav-menu{

    display:flex;

    align-items:center;

}

.nav-menu li{

    margin-left:35px;

    position:relative;

}

.nav-menu li a{

    display:block;

    color:#fff;

    padding:10px 16px;

    font-weight:500;

    transition:.3s;

    border-radius:8px;

}

.nav-menu li a:hover{

    color:#fff;

    background:rgba(255,255,255,.08);

}

.nav-menu li a.active{

    color:#fff;

    font-weight:700;

    background:rgba(255,255,255,.12);

    box-shadow:0 8px 20px rgba(0,0,0,.22);

}

.nav-menu li a i{

    margin-left:6px;

    font-size:11px;

}

.dropdown-menu{

    position:absolute;

    top:100%;

    left:0;

    min-width:200px;

    background:#fff;

    border-radius:0 0 6px 6px;

    box-shadow:0 14px 30px rgba(0,0,0,.16);

    opacity:0;

    visibility:hidden;

    transform:translateY(10px);

    transition:.25s;

    z-index:1000;

}

.nav-menu li:hover > .dropdown-menu,
.nav-menu li:focus-within > .dropdown-menu{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.dropdown-menu li{

    margin:0;

}

.dropdown-menu li a{

    color:var(--secondary);

    padding:12px 18px;

    white-space:nowrap;

    font-size:14px;

    border-bottom:1px solid #edf0f5;

}

.dropdown-menu li:last-child a{

    border-bottom:none;

}

.dropdown-menu li a:hover{

    background:#f6f7fb;

    color:var(--primary);

}


/*==================================================
6. RESPONSIVE DESIGN
====================================================*/


/*==========================================
Large Desktop
==========================================*/

@media(max-width:1400px){

}


/*==========================================
Desktop
==========================================*/

@media(max-width:1200px){

    .nav-menu li{

        margin-left:24px;

    }

}


/*==========================================
Laptop
==========================================*/

@media(max-width:992px){

    .header-wrapper{

        flex-direction:column;

        text-align:center;

        gap:12px;

    }

    .logo,
    .logo-link,
    .header-button{

        justify-content:center;

    }

    .top-header .contact-info{

        justify-content:center;

        flex-wrap:wrap;

        gap:10px 18px;

    }

    .top-header .contact-item{

        justify-content:center;

    }

    .header-social-links{

        justify-content:center;

        flex-wrap:wrap;

    }

    .navbar-wrapper{

        justify-content:flex-start;

        min-height:72px;

    }

    .menu-btn{

        display:flex;

    }

    .nav-menu{

        display:none;

        position:absolute;

        top:100%;

        left:0;

        width:100%;

        background:var(--secondary);

        flex-direction:column;

        z-index:999;

        border-top:1px solid rgba(255,255,255,.08);

        box-shadow:0 18px 30px rgba(0,0,0,.18);

    }

    .nav-menu.show{

        display:flex;

    }

    .nav-menu li{

        margin:0;

        width:100%;

    }

    .nav-menu li a{

        padding:16px 18px;

        border-top:1px solid rgba(255,255,255,.08);

        text-align:center;

        font-size:15px;

    }

}


@media(max-width:992px){

    .dropdown-menu{

        position:static;

        display:none;

        width:100%;

        min-width:0;

        background:rgba(255,255,255,.06);

        border-radius:0;

        box-shadow:none;

        opacity:1;

        visibility:visible;

        transform:none;

    }

    .nav-menu li:hover > .dropdown-menu,
    .nav-menu li:focus-within > .dropdown-menu,
    .nav-menu li.open > .dropdown-menu{

        display:block;

    }

    .dropdown-menu li a{

        color:#fff;

        padding:13px 18px;

        border-top:1px solid rgba(255,255,255,.08);

        border-bottom:none;

        font-size:14px;

    }

    .dropdown-menu li a:hover{

        background:rgba(255,255,255,.08);

        color:var(--primary);

    }

}

/*==========================================
Tablet
==========================================*/

@media(max-width:768px){

    section{

        padding:72px 0;

    }

    .top-header .contact-info{

        flex-direction:column;

        align-items:center;

        gap:8px;

    }

    .top-header .contact-item > div{

        justify-content:center;

    }

    .dropdown-menu{

        position:static;

        display:none;

        width:100%;

        min-width:0;

        background:rgba(255,255,255,.06);

        border-radius:0;

        box-shadow:none;

        opacity:1;

        visibility:visible;

        transform:none;

    }

    .nav-menu li:hover > .dropdown-menu,
    .nav-menu li:focus-within > .dropdown-menu,
    .nav-menu li.open > .dropdown-menu{

        display:block;

    }

    .dropdown-menu li a{

        color:#fff;

        padding:13px 18px;

        border-top:1px solid rgba(255,255,255,.08);

        border-bottom:none;

        font-size:14px;

    }

    .dropdown-menu li a:hover{

        background:rgba(255,255,255,.08);

        color:var(--primary);

    }

}


/*==========================================
Phones
==========================================*/

@media(max-width:576px){

    .container{

        width:90%;

    }

    section{

        padding:64px 0;

    }

    .header-wrapper{

        flex-wrap:nowrap;

        justify-content:center;

        text-align:center;

        padding:6px 0 10px;

    }

    .site-logo{

        height:34px;

    }

    .logo h2{

        font-size:21px;

    }

    .top-header .contact-info{

        width:100%;

    }

    .top-header .contact-item{

        flex-direction:row;

        justify-content:center;

        text-align:center;

        width:100%;

    }

    .top-header .contact-item > div{

        gap:4px;

    }

    .top-header .contact-item h5,
    .top-header .contact-item p{

        font-size:12px;

    }

    .apply-btn{

        width:auto;

        text-align:center;

        padding:9px 22px;

    }

    .navbar .container{

        width:100%;

    }

    .navbar-wrapper{

        min-height:72px;

        padding-left:20px;

    }

    .nav-menu{

        left:0;

        right:0;

        width:100%;

    }

}
/*==================================================
                HERO SECTION
====================================================*/

.hero{
    position:relative;
    width:100%;
    min-height:90vh;
    display:flex;
    align-items:center;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    overflow:hidden;
}

.hero-bg-slide{
    position:absolute;
    inset:0;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    opacity:0;
    transform:translateX(100%);
    transition:transform 1.1s ease-in-out, opacity 1.1s ease-in-out;
    z-index:0;
    will-change:transform, opacity;
}

.hero-bg-slide.active{
    opacity:1;
    transform:translateX(0);
    z-index:1;
}

.hero-bg-slide.exit-left{
    opacity:0;
    transform:translateX(-45%);
    z-index:0;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(17,20,45,.70);
    z-index:1;
}

.hero .container{
    position:relative;
    z-index:2;
}

.hero-content{
    max-width:700px;
}

.hero-subtitle{
    display:inline-block;
    color:#fff;
    background:rgba(255,255,255,.15);
    padding:10px 24px;
    border-radius:30px;
    letter-spacing:2px;
    font-size:14px;
    margin-bottom:25px;
}

.hero-content h1{
    color:#fff;
    font-size:clamp(2.5rem,5vw,4.8rem);
    line-height:1.15;
    margin-bottom:25px;
}

.hero-content p{
    color:#eee;
    font-size:18px;
    line-height:1.9;
    margin-bottom:40px;
    max-width:620px;
}

.hero-buttons{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

.secondary-btn{
    display:inline-block;
    padding:15px 35px;
    border:2px solid #fff;
    border-radius:6px;
    color:#fff;
    font-weight:600;
    transition:.3s;
}

.secondary-btn:hover{
    background:#fff;
    color:#11142d;
}
/*==================================================
            HERO RESPONSIVE
====================================================*/

@media(max-width:992px){

    .hero{

        min-height:75vh;

        text-align:center;

    }

    .hero-content{

        margin:auto;

    }

    .hero-buttons{

        justify-content:center;

    }

}

@media(max-width:768px){

    .hero{

        min-height:70vh;

        padding:90px 0;

    }

    .hero-content p{

        font-size:16px;

    }

}

@media(max-width:576px){

    .hero{

        min-height:65vh;

    }

    .hero-subtitle{

        font-size:12px;

        padding:8px 18px;

    }

    .hero-buttons{

        flex-direction:column;

    }

    .primary-btn,

    .secondary-btn{

        width:100%;

        text-align:center;

    }

}

/*==================================================
            WELCOME SECTION
====================================================*/

.welcome{

    background:#fff;

}

.welcome-wrapper{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:70px;

}

.welcome-image{

    flex:1;

}

.welcome-image img{

    width:100%;

    border-radius:10px;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

}

.welcome-content{

    flex:1;

}

.section-subtitle{

    display:inline-block;

    color:var(--primary);

    font-weight:600;

    letter-spacing:2px;

    margin-bottom:20px;

}

.welcome-content h2{

    font-size:42px;

    margin-bottom:25px;

}

.welcome-content p{

    margin-bottom:30px;

    line-height:1.9;

}

.welcome-features{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

    margin-bottom:35px;

}

.feature{

    display:flex;

    align-items:center;

    gap:12px;

}

.feature i{

    color:var(--primary);

    font-size:20px;

}

.feature span{

    font-weight:500;

}

/*==================================================
        WELCOME RESPONSIVE
====================================================*/

@media(max-width:992px){

    .welcome-wrapper{

        flex-direction:column;

    }

    .welcome-content{

        text-align:center;

    }

    .welcome-features{

        grid-template-columns:1fr;

    }

    .feature{

        justify-content:center;

    }

}

@media(max-width:576px){

    .welcome-content h2{

        font-size:32px;

    }

}

/*==================================================
            WHY CHOOSE WEESI
====================================================*/

.why-weesi{

    padding:100px 0;

    background:#f8f9fc;

}

.section-heading{

    max-width:750px;

    margin:0 auto 60px;

    text-align:center;

}

.section-heading h2{

    font-size:42px;

    color:#11142d;

    margin:20px 0;

}

.section-heading p{

    color:#666;

    line-height:1.8;

}

.why-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.why-card{

    background:#fff;

    padding:40px 30px;

    border-radius:10px;

    text-align:center;

    transition:.4s;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.why-card:hover{

    transform:translateY(-10px);

    box-shadow:0 15px 35px rgba(0,0,0,.15);

}

.why-icon{

    width:90px;

    height:90px;

    margin:auto;

    margin-bottom:25px;

    border-radius:50%;

    background:#703098;

    display:flex;

    justify-content:center;

    align-items:center;

}

.why-icon i{

    font-size:34px;

    color:#fff;

}

.why-card h3{

    margin-bottom:15px;

    color:#11142d;

    font-size:24px;

}

.why-card p{

    color:#666;

    line-height:1.8;

}

/*==================================================
        WHY CHOOSE RESPONSIVE
====================================================*/

@media(max-width:1100px){

    .why-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .why-weesi{

        padding:70px 0;

    }

    .section-heading h2{

        font-size:34px;

    }

}

@media(max-width:576px){

    .why-grid{

        grid-template-columns:1fr;

    }

    .why-card{

        padding:30px 25px;

    }

    .section-heading h2{

        font-size:28px;

    }

}

/*=====================================
            COURSES PAGE
======================================*/

.courses-page{

    padding:100px 0;

    background:#f8f9fc;

}

.courses-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:35px;

}

.course-card{

    background:#fff;

    border-radius:10px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.35s;

}

.course-card:hover{

    transform:translateY(-8px);

}

.course-card img{

    width:100%;

    height:240px;

    object-fit:cover;

}

.course-content{

    padding:25px;

}

.course-price{

    display:inline-block;

    background:#703098;

    color:#fff;

    padding:8px 16px;

    border-radius:30px;

    font-size:14px;

    margin-bottom:18px;

}

.course-content h3{

    margin-bottom:15px;

    color:#11142d;

}

.course-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:25px;

}

/*==================================================
        FEATURED COURSES
==================================================*/

.featured-courses{

    background:#f8f9fc;

    padding:100px 0;

    overflow:hidden;

}

.course-slider{

    width:100%;

    overflow:hidden;

}

.course-track{

    display:flex;

    gap:30px;

    width:max-content;

    animation:slideCourses 30s linear infinite;

}

.course-track:hover{

    animation-play-state:paused;

}

.home-services-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:24px;

}

.home-training-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:850px;
    margin-left:auto;
    margin-right:auto;
}

.home-service-card{

    display:block;

    background:#fff;

    padding:34px 24px;

    border-radius:10px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    text-align:center;

    transition:.3s;

    min-height:260px;

}

.home-service-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 36px rgba(17,20,45,.14);

}

.home-service-icon{

    width:72px;

    height:72px;

    margin:0 auto 20px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:30px;

}

.home-service-card h3{

    color:#11142d;

    margin-bottom:14px;

    font-size:21px;

}

.home-service-card p{

    color:#666;

    line-height:1.7;

    margin:0;

}

.course-card{

    width:340px;

    background:#fff;

    border-radius:10px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.3s;

}

.course-card:hover{

    transform:translateY(-8px);

}

.course-card img{

    width:100%;

    height:220px;

    object-fit:cover;

}

.course-content{

    padding:25px;

}

.course-price{

    display:inline-block;

    background:#703098;

    color:#fff;

    padding:7px 18px;

    border-radius:30px;

    margin-bottom:15px;

    font-size:14px;

}

.course-content h3{

    margin-bottom:15px;

}

.course-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:25px;

}

@keyframes slideCourses{

    from{

        transform:translateX(0);

    }

    to{

        transform:translateX(-50%);

    }

}

@media(max-width:992px){

    .home-services-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .course-card{

        width:300px;

    }

}

@media(max-width:768px){

    .featured-courses{

        padding:70px 0;

    }

    .course-card{

        width:280px;

    }

}

@media(max-width:576px){

    .home-services-grid{

        grid-template-columns:1fr;

    }

    .course-card{

        width:250px;

    }

}

/*==================================================
            HOME DEPARTMENTS
==================================================*/

.home-departments{

    padding:100px 0;

    background:#fff;

}

.departments-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.department-card{

    background:#fff;

    border-radius:10px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.35s;

}

.department-card:hover{

    transform:translateY(-10px);

}

.department-card img{

    width:100%;

    height:240px;

    object-fit:cover;

}

.department-content{

    padding:25px;

    text-align:center;

}

.department-content h3{

    margin-bottom:15px;

    color:#11142d;

}

.department-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:25px;

}
@media(max-width:992px){

    .departments-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .departments-grid{

        grid-template-columns:1fr;

    }

}

/*==================================================
                STATISTICS
==================================================*/

.statistics{

    padding:100px 0;

    background:#11142d;

}

.stats-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.stat-card{

    text-align:center;

    color:#fff;

    padding:40px 20px;

    border-radius:10px;

    background:rgba(255,255,255,.05);

    transition:.3s;

}

.stat-card:hover{

    transform:translateY(-10px);

    background:#703098;

}

.stat-icon{

    width:90px;

    height:90px;

    margin:0 auto 25px;

    border-radius:50%;

    background:#703098;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:.3s;

}

.stat-card:hover .stat-icon{

    background:#fff;

}

.stat-icon i{

    font-size:34px;

    color:#fff;

}

.stat-card:hover .stat-icon i{

    color:#703098;

}

.counter{

    font-size:50px;

    font-weight:700;

    margin-bottom:10px;

    color:#fff;

}

.stat-card p{

    font-size:18px;

    color:#ddd;

}

.stat-card:hover p{

    color:#fff;

}

/*==================================================
        STATISTICS RESPONSIVE
==================================================*/

@media(max-width:992px){

    .stats-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .statistics{

        padding:70px 0;

    }

}

@media(max-width:576px){

    .stats-grid{

        grid-template-columns:1fr;

    }

    .counter{

        font-size:40px;

    }

}

/*==================================================
                TEAM PREVIEW
==================================================*/

.team-preview{

    padding:100px 0;

    background:#ffffff;

}

.team-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.team-card{

    background:#fff;

    border-radius:12px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.35s;

}

.team-card:hover{

    transform:translateY(-10px);

}

.team-card img{

    width:100%;

    height:340px;

    object-fit:contain;

}


.team-content{

    padding:25px;

    text-align:center;

}

.team-content h3{

    color:#11142d;

    margin-bottom:10px;

}

.team-content span{

    display:block;

    color:#703098;

    font-weight:600;

    margin-bottom:18px;

}

.team-content p{

    color:#666;

    line-height:1.8;

}

.team-button{

    text-align:center;

    margin-top:50px;

}

/*==================================================
            TEAM RESPONSIVE
==================================================*/

@media(max-width:992px){

    .team-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .team-preview{

        padding:70px 0;

    }

}

@media(max-width:576px){

    .team-grid{

        grid-template-columns:1fr;

    }

    .team-card img{

        height:300px;

    }

}

/*==================================================
                GALLERY PREVIEW
==================================================*/

.gallery-preview{

    padding:100px 0;

    background:#f8f9fc;

}

.gallery-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

}

.gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:10px;

    cursor:pointer;

}

.gallery-item img{

    width:100%;

    height:280px;

    object-fit:contain;

    transition:.5s;

    display:block;

}

.gallery-overlay{

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:100%;

    background:rgba(17,20,45,.75);

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:0;

    transition:.4s;

}

.gallery-overlay i{

    color:#fff;

    font-size:34px;

}

.gallery-item:hover img{

    transform:scale(1.12);

}

.gallery-item:hover .gallery-overlay{

    opacity:1;

}

.gallery-btn{

    text-align:center;

    margin-top:50px;

}
/*==================================================
            GALLERY RESPONSIVE
==================================================*/

@media(max-width:992px){

    .gallery-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .gallery-preview{

        padding:70px 0;

    }

}

@media(max-width:576px){

    .gallery-grid{

        grid-template-columns:1fr;

    }

    .gallery-item img{

        height:240px;

    }

}
/*==================================================
            GALLERY LIGHTBOX
==================================================*/

.gallery-modal{

    display:none;

    position:fixed;

    z-index:9999;

    left:0;

    top:0;

    width:100%;

    height:100%;

    background:rgba(0,0,0,.95);

    justify-content:center;

    align-items:center;

}

/*==================================================
        SHORT COURSE CARDS
==================================================*/

.short-course-carousel{

    width:100%;

    overflow:hidden;

    padding:28px 4px 38px;

}

.short-course-track{

    display:flex;

    gap:28px;

    transition:transform .75s ease;

    will-change:transform;

}

.short-course-card{

    flex:0 0 calc((100% - 56px) / 3);

    height:490px;

    display:flex;

    flex-direction:column;

    border-radius:22px;

    overflow:hidden;

    background:#fff;

    border:1px solid #ececf1;

    box-shadow:0 14px 32px rgba(17,20,45,.12);

    transform:none;

    opacity:1;

    transition:transform .3s ease, box-shadow .3s ease;

}

.short-course-card.active{

    transform:none;

    opacity:1;

    box-shadow:0 14px 32px rgba(17,20,45,.12);

}

.short-course-card:hover{

    transform:translateY(-6px);

    box-shadow:0 20px 40px rgba(17,20,45,.17);

}

.short-course-card img{

    width:100%;

    height:205px;

    min-height:205px;

    object-fit:cover;

    transition:.45s;

}

.short-course-card:hover img{

    transform:scale(1.06);

}

.short-course-card::after{

    display:none;

}

.short-course-overlay{

    display:flex;

    flex:1;

    flex-direction:column;

    padding:20px 20px 18px;

    color:var(--text);

}

.short-course-overlay h3{

    color:var(--heading);

    font-size:19px;

    line-height:1.3;

    margin-bottom:9px;

    display:-webkit-box;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:2;

    overflow:hidden;

}

.short-course-overlay p{

    color:var(--text);

    line-height:1.45;

    margin-bottom:13px;

    font-size:12px;

    display:-webkit-box;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:3;

    overflow:hidden;

}

.short-course-meta{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    margin-bottom:14px;

}

.short-course-meta span{

    display:inline-flex;

    align-items:center;

    gap:7px;

    padding:6px 10px;

    border-radius:30px;

    background:#f0f0f4;

    color:#55586a;

    font-size:12px;

    font-weight:500;

}

.short-course-overlay .primary-btn{

    width:100%;

    text-align:center;

    background:var(--primary);

    color:#fff;

    border-radius:30px;

    padding:11px 20px;

    margin-top:auto;

}

.short-course-overlay .primary-btn:hover{

    background:var(--secondary);

    color:#fff;

}

.short-course-empty{

    width:100%;

}

@media(max-width:992px){

    .short-course-card{

        flex-basis:calc((100% - 28px) / 2);

    }

}

@media(max-width:640px){

    .short-course-track{

        gap:0;

    }

    .short-course-card{

        flex-basis:100%;

        height:470px;

        transform:scale(1);

        opacity:1;

    }

    .short-course-card.active{

        transform:scale(1);

    }

}

.gallery-modal.show{

    display:flex;

}

.gallery-modal img{

    max-width:90%;

    max-height:90%;

    border-radius:8px;

    animation:zoomIn .3s;

}

.close-gallery{

    position:absolute;

    top:20px;

    right:40px;

    color:#fff;

    font-size:50px;

    cursor:pointer;

    transition:.3s;

}

.close-gallery:hover{

    color:#703098;

}

@keyframes zoomIn{

    from{

        transform:scale(.7);

        opacity:0;

    }

    to{

        transform:scale(1);

        opacity:1;

    }

}

/*==================================================
                TESTIMONIALS
==================================================*/

.testimonials{

    padding:100px 0;

    background:#ffffff;

}

.testimonial-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.testimonial-card{

    background:#f8f9fc;

    padding:35px;

    border-radius:12px;

    text-align:center;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.3s;

}

.testimonial-card:hover{

    transform:translateY(-8px);

}

.testimonial-card img{

    width:90px;

    height:90px;

    border-radius:50%;

    object-fit:cover;

    margin-bottom:20px;

}

.testimonial-text{

    font-style:italic;

    color:#555;

    line-height:1.8;

    margin-bottom:20px;

}

.testimonial-card h4{

    color:#11142d;

    margin-bottom:8px;

}

.testimonial-card span{

    color:#703098;

    font-weight:600;

}
@media(max-width:992px){

    .testimonial-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .testimonials{

        padding:70px 0;

    }

}

@media(max-width:576px){

    .testimonial-grid{

        grid-template-columns:1fr;

    }

}

/*=====================================
        CALL TO ACTION
=====================================*/

.cta{
    position: relative;
    height: 650px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    color: #fff;
}

/* Background Video */
.cta-video{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* Dark Blue Overlay */
.cta-overlay{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(17, 20, 45, 0.75);
    z-index: 2;
}

/* Content */
.cta .container{
    position: relative;
    z-index: 3;
    width: 90%;
    max-width: 900px;
    margin: auto;
}

.cta-content{
    max-width: 850px;
    margin: auto;
}

.cta-subtitle{
    display: inline-block;
    color: #703098;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.cta h2{
    font-size: 60px;
    font-weight: 700;
    line-height: 1.2;
    color: #ffffff;
    margin-bottom: 25px;
}

.cta p{
    font-size: 19px;
    line-height: 1.8;
    color: rgba(255,255,255,0.9);
    margin-bottom: 40px;
}

.cta-buttons{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.btn-primary,
.btn-secondary{
    display: inline-block;
    padding: 16px 40px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 600;
    transition: .3s ease;
}

.btn-primary{
    background: #703098;
    color: #fff;
}

.btn-primary:hover{
    background: #e65c00;
}

.btn-secondary{
    border: 2px solid #fff;
    color: #fff;
    background: transparent;
}

.btn-secondary:hover{
    background: #fff;
    color: #11142d;
}

/*=====================================
        RESPONSIVE
=====================================*/

@media (max-width: 992px){

    .cta{
        height: 550px;
    }

    .cta h2{
        font-size: 46px;
    }

    .cta p{
        font-size: 17px;
    }

}

@media (max-width: 768px){

    .cta{
        height: 500px;
        padding: 20px;
    }

    .cta-subtitle{
        font-size: 15px;
    }

    .cta h2{
        font-size: 34px;
    }

    .cta p{
        font-size: 15px;
    }

    .cta-buttons{
        flex-direction: column;
        gap: 15px;
    }

    .btn-primary,
    .btn-secondary{
        width: 220px;
        text-align: center;
    }

}

@media (max-width: 480px){

    .cta{
        height: 450px;
    }

    .cta h2{
        font-size: 28px;
    }

    .cta p{
        font-size: 14px;
    }

    .btn-primary,
    .btn-secondary{
        width: 200px;
        padding: 14px 30px;
    }

}

/*=====================================
                FOOTER
======================================*/

.footer{

    background:
        radial-gradient(circle at 12% 85%, rgba(111,44,145,.30) 0%, transparent 34%),
        radial-gradient(circle at 88% 12%, rgba(84,80,189,.25) 0%, transparent 38%),
        linear-gradient(115deg, #07080d 0%, #170b20 48%, #111226 100%);

    color:#f1eafa;

    padding:80px 0 30px;

}

.footer-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:50px;

}

.footer-column h4{

    color:#fff;

    margin-bottom:25px;

    font-size:22px;

}

.footer-logo{

    display:inline-block;

    margin-bottom:20px;

}

.footer-logo h2{

    color:#fff;

    font-size:38px;

    margin:0;

    font-weight:700;

}

.footer-logo span{

    color:#c9a7ff;

    letter-spacing:4px;

    font-size:13px;

}

.footer-column p{

    line-height:1.9;

    margin-bottom:15px;

    color:#f1eafa;

}

.footer-column ul{

    list-style:none;

}

.footer-column ul li{

    margin-bottom:15px;

}

.footer-column ul li a{

    color:#f7f2ff;

    transition:.3s;

}

.footer-column ul li a:hover{

    color:#d8c2ff;

    padding-left:8px;

}

.footer-column i{

    color:#fff;

    width:25px;

}

.social-links{

    display:flex;

    gap:15px;

    margin-top:25px;

}

.social-links a{

    width:45px;

    height:45px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#fff;

    color:#6f2c91;

    transition:.3s;

}

.social-links a:hover{

    background:#f3e8ff;

    transform:translateY(-5px);

}

.footer .social-links a i{

    color:#6f2c91;

    width:auto;

}

.footer-mobile-socials{
    display:none;
}

.footer-bottom{

    margin-top:60px;

    padding-top:30px;

    border-top:1px solid rgba(255,255,255,.08);

    display:flex;

    justify-content:space-between;

    align-items:center;

    flex-wrap:wrap;

    gap:15px;

}

.footer-bottom p{

    margin:0;

    color:#f1eafa;

}

/*=====================================
            RESPONSIVE
======================================*/

@media(max-width:992px){

    .footer-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .footer{

        text-align:center;

    }

    .footer-grid{

        grid-template-columns:1fr;

    }

    .social-links{

        justify-content:center;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

    }

}

@media(max-width:480px){

    .footer{

        padding:60px 20px 25px;

    }

    .footer-logo h2{

        font-size:30px;

    }

    .footer-column h4{

        font-size:20px;

    }

}

/*=====================================
            PAGE BANNER
======================================*/

.page-banner{

    position:relative;

    height:380px;

    background:url("../images/hero.jpg");

    background-size:cover;

    background-position:center;

    display:flex;

    justify-content:center;

    align-items:center;

    overflow:hidden;

}

.banner-overlay{

    position:absolute;

    inset:0;

    background:rgba(17,20,45,.75);

}

.banner-content{

    position:relative;

    z-index:2;

    text-align:center;

    color:#fff;

}

.banner-content h1{

    font-size:60px;

    margin-bottom:15px;

    font-weight:700;

}

.banner-content p{

    font-size:18px;

}

.banner-content a{

    color:#703098;

}

@media(max-width:768px){

    .page-banner{

        height:260px;

    }

    .banner-content h1{

        font-size:38px;

    }

}
/*=====================================
        ABOUT INTRODUCTION
======================================*/

.about-intro{

    padding:100px 0;

    background:#fff;

}

.about-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.about-image{

    position:relative;

}

.about-image img{

    width:100%;

    border-radius:12px;

    display:block;

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

.about-content p{

    margin:20px 0;

    color:#666;

    line-height:1.9;

    font-size:16px;

}

.about-features{

    margin:35px 0;

}

.feature-item{

    display:flex;

    align-items:center;

    margin-bottom:18px;

    font-size:17px;

    font-weight:500;

}

.feature-item i{

    color:#703098;

    margin-right:15px;

    font-size:20px;

}

/*=========================
Responsive
=========================*/

@media(max-width:991px){

    .about-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

}

@media(max-width:768px){

    .about-intro{

        padding:70px 0;

    }

    .about-content{

        text-align:center;

    }

    .feature-item{

        justify-content:center;

    }

}
/*=====================================
    VISION | MISSION | CORE VALUES
======================================*/

.vision-section{

    padding:100px 0;

    background:#f8f9fc;

}

.section-heading{

    text-align:center;

    max-width:750px;

    margin:0 auto 70px;

}

.section-heading p{

    margin-top:20px;

    color:#666;

    line-height:1.8;

}

.vision-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.vision-card{

    background:#fff;

    padding:45px 35px;

    border-radius:12px;

    text-align:center;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    transition:.4s;

}

.vision-card:hover{

    transform:translateY(-10px);

}

.vision-icon{

    width:85px;

    height:85px;

    margin:auto;

    border-radius:50%;

    background:#703098;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:34px;

    margin-bottom:25px;

}

.vision-card h3{

    color:#11142d;

    margin-bottom:18px;

    font-size:24px;

}

.vision-card p{

    color:#666;

    line-height:1.9;

}

/*=========================
Responsive
=========================*/

@media(max-width:991px){

    .vision-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .vision-grid{

        grid-template-columns:1fr;

    }

    .vision-section{

        padding:70px 0;

    }

}

/*=====================================
            OUR HISTORY
======================================*/

.history-section{

    padding:100px 0;

    background:#ffffff;

}

.history-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.history-content p{

    margin:20px 0;

    color:#666;

    line-height:1.9;

}

.history-image img{

    width:100%;

    border-radius:12px;

    box-shadow:0 20px 40px rgba(0,0,0,.12);

}

.history-timeline{

    margin-top:40px;

}

.timeline-item{

    display:flex;

    align-items:flex-start;

    margin-bottom:30px;

}

.timeline-year{

    min-width:90px;

    background:#703098;

    color:#fff;

    padding:10px;

    border-radius:6px;

    text-align:center;

    font-weight:600;

    margin-right:25px;

}

.timeline-text{

    color:#555;

    line-height:1.8;

}

/*=========================
Responsive
=========================*/

@media(max-width:991px){

    .history-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .history-section{

        padding:70px 0;

    }

    .timeline-item{

        flex-direction:column;

    }

    .timeline-year{

        margin-bottom:15px;

    }

}

/*=====================================
        DEPARTMENTS INTRODUCTION
======================================*/

.departments-intro{

    padding:100px 0;

    background:#fff;

}

@media(max-width:768px){

    .departments-intro{

        padding:70px 0;

    }

}

/*=====================================
        DEPARTMENTS GRID
======================================*/

.departments-section{

    padding:0 0 100px;

    background:#ffffff;

}

.departments-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.department-card{

    background:#fff;

    border-radius:12px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.35s ease;

}

.department-card:hover{

    transform:translateY(-10px);

    box-shadow:0 20px 45px rgba(0,0,0,.15);

}

.department-card img{

    width:100%;

    height:240px;

    object-fit:cover;

    display:block;

}

.department-content{

    padding:30px;

}

.department-tag{

    display:inline-block;

    background:#703098;

    color:#fff;

    padding:6px 15px;

    border-radius:30px;

    font-size:13px;

    margin-bottom:18px;

    font-weight:600;

}

.department-content h3{

    font-size:24px;

    color:#11142d;

    margin-bottom:15px;

}

.department-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:25px;

}

.department-footer{

    display:flex;

    justify-content:space-between;

    align-items:center;

    border-top:1px solid #eee;

    padding-top:20px;

}

.department-footer span{

    color:#555;

    font-size:15px;

}

.department-footer i{

    color:#703098;

    margin-right:6px;

}

.department-footer a{

    color:#703098;

    font-weight:600;

    transition:.3s;

}

.department-footer a:hover{

    color:#11142d;

}

/*=========================
Responsive
=========================*/

@media(max-width:991px){

    .departments-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .departments-grid{

        grid-template-columns:1fr;

    }

    .departments-section{

        padding-bottom:70px;

    }

}

/*=====================================
        ADMISSIONS INTRODUCTION
======================================*/

.admissions-intro{

    padding:100px 0;

    background:#fff;

}

@media(max-width:768px){

    .admissions-intro{

        padding:70px 0;

    }

}

/*=====================================
    ADMISSION REQUIREMENTS
======================================*/

.admission-requirements{

    padding:100px 0;

    background:#f8f9fc;

}

.requirements-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;

}

.requirements-content p{

    margin:20px 0 30px;

    line-height:1.9;

    color:#666;

}

.requirements-list{

    list-style:none;

    padding:0;

}

.requirements-list li{

    display:flex;

    align-items:center;

    margin-bottom:20px;

    font-size:17px;

    color:#444;

}

.requirements-list i{

    color:#703098;

    margin-right:15px;

    font-size:20px;

}

.requirements-image img{

    width:100%;

    border-radius:12px;

    box-shadow:0 15px 35px rgba(0,0,0,.12);

}

@media(max-width:991px){

    .requirements-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .admission-requirements{

        padding:70px 0;

    }

}
/*=====================================
        HOW TO APPLY
======================================*/

.how-to-apply{

    padding:100px 0;

    background:#fff;

}

.apply-steps{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

    margin-top:50px;

}

.step-box{

    background:#f8f9fc;

    padding:35px 25px;

    border-radius:12px;

    text-align:center;

    transition:.3s;

    position:relative;

}

.step-box:hover{

    transform:translateY(-8px);

    box-shadow:0 15px 35px rgba(0,0,0,.1);

}

.step-number{

    width:60px;

    height:60px;

    background:#703098;

    color:#fff;

    font-weight:700;

    font-size:20px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    margin:0 auto 20px;

}

.step-box h3{

    margin-bottom:15px;

    color:#11142d;

    font-size:20px;

}

.step-box p{

    color:#666;

    line-height:1.7;

}

/*=========================
Responsive
=========================*/

@media(max-width:991px){

    .apply-steps{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:600px){

    .apply-steps{

        grid-template-columns:1fr;

    }

    .how-to-apply{

        padding:70px 0;

    }

}
/*=====================================
        INTAKE INFORMATION
======================================*/

.intake-section{

    padding:100px 0;

    background:#f8f9fc;

}

.intake-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

    margin-top:50px;

}

.intake-card{

    background:#fff;

    padding:40px 30px;

    text-align:center;

    border-radius:12px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.3s;

}

.intake-card:hover{

    transform:translateY(-10px);

    box-shadow:0 20px 40px rgba(0,0,0,.12);

}

.intake-month{

    width:90px;

    height:90px;

    margin:0 auto 25px;

    border-radius:50%;

    background:#703098;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:700;

    font-size:18px;

}

.intake-card h3{

    color:#11142d;

    margin-bottom:15px;

    font-size:24px;

}

.intake-card p{

    color:#666;

    line-height:1.8;

}

/*=========================
Responsive
=========================*/

@media(max-width:991px){

    .intake-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .intake-grid{

        grid-template-columns:1fr;

    }

    .intake-section{

        padding:70px 0;

    }

}
/*=====================================
                FAQ
======================================*/

.faq-section{

    padding:100px 0;

    background:#ffffff;

}

.faq-container{

    max-width:900px;

    margin:50px auto 0;

}

.faq-item{

    margin-bottom:20px;

    border-radius:10px;

    overflow:hidden;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

}

.faq-question{

    width:100%;

    background:#11142d;

    color:#fff;

    border:none;

    outline:none;

    padding:22px 25px;

    font-size:18px;

    font-weight:600;

    display:flex;

    justify-content:space-between;

    align-items:center;

    cursor:pointer;

    transition:.3s;

}

.faq-question:hover{

    background:#703098;

}

.faq-question span{

    font-size:26px;

    transition:.3s;

}

.faq-answer{

    max-height:0;

    overflow:hidden;

    background:#fff;

    transition:max-height .4s ease;

}

.faq-answer p{

    padding:25px;

    color:#666;

    line-height:1.8;

}

.faq-item.active .faq-answer{

    max-height:250px;

}

.faq-item.active .faq-question{

    background:#703098;

}

.faq-item.active .faq-question span{

    transform:rotate(45deg);

}

@media(max-width:768px){

    .faq-section{

        padding:70px 0;

    }

    .faq-question{

        font-size:16px;

        padding:18px 20px;

    }

}
/*=====================================
            CONTACT PAGE
======================================*/

.contact-section{

    padding:100px 0;

    background:#f8f9fc;

}

/*==================================================
        MOBILE HOMEPAGE SLIDERS AND COMPACT LAYOUTS
==================================================*/

@media(max-width:576px){

    .mobile-carousel-viewport{
        width:100%;
        overflow:hidden;
    }

    .mobile-carousel-track.why-grid,
    .mobile-carousel-track.home-services-grid,
    .mobile-carousel-track.team-grid{
        display:flex;
        gap:0;
        transition:transform .55s ease-in-out;
        will-change:transform;
    }

    .mobile-carousel-track > .why-card,
    .mobile-carousel-track > .home-service-card,
    .mobile-carousel-track > .team-card{
        flex:0 0 100%;
        width:100%;
    }

    .mobile-carousel-track > .why-card,
    .mobile-carousel-track > .home-service-card{
        min-height:300px;
    }

    .stats-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;
    }

    .stat-card{
        padding:24px 8px;
        min-width:0;
    }

    .stat-icon{
        width:64px;
        height:64px;
        margin-bottom:16px;
    }

    .stat-icon i{
        font-size:25px;
    }

    .counter{
        font-size:30px;
    }

    .stat-card p{
        font-size:13px;
        line-height:1.4;
    }

    .footer{
        text-align:left;
        padding-left:12px;
        padding-right:12px;
    }

    .footer-grid{
        grid-template-columns:minmax(0,.88fr) minmax(0,1.55fr);
        gap:20px 12px;
        align-items:start;
    }

    .footer-grid > .footer-column:first-child{
        grid-column:1 / -1;
    }

    .footer-grid > .footer-column:nth-child(2){
        position:relative;
        align-self:stretch;
        padding-right:12px;
    }

    .footer-grid > .footer-column:nth-child(2)::after{
        content:"";
        position:absolute;
        top:0;
        right:0;
        width:1px;
        height:100%;
        background:rgba(255,255,255,.8);
    }

    .footer-column h4{
        text-align:left;
        margin-bottom:14px;
        font-size:18px;
    }

    .footer-column p{
        display:flex;
        align-items:flex-start;
        gap:4px;
        font-size:11.5px;
        line-height:1.45;
        overflow-wrap:anywhere;
    }

    .footer-column p i{
        width:20px;
        flex:0 0 20px;
        margin-top:2px;
    }

    .footer-column ul li,
    .footer-column p{
        margin-bottom:8px;
    }

    .footer-column ul li a{
        font-size:14px;
    }

    .footer-contact-social{
        display:none;
    }

    .footer-mobile-socials{
        display:flex;
        grid-column:1 / -1;
        width:100%;
        margin-top:2px;
        justify-content:space-between;
        flex-wrap:nowrap;
        gap:10px;
    }

    .footer-mobile-socials a{
        width:40px;
        height:40px;
    }

}

.contact-section > .container > .section-heading > .section-subtitle{

    font-size:20px;

    letter-spacing:4px;

    font-weight:800;

}

.contact-grid{

    display:grid;

    grid-template-columns:380px 1fr;

    gap:54px;

    margin-top:60px;

    align-items:start;

}

.contact-section .contact-info{

    display:flex;

    flex-direction:column;

    gap:25px;

}

.info-card{

    background:#fff;

    padding:32px;

    border-radius:10px;

    border:1px solid rgba(17,20,45,.06);

    box-shadow:0 14px 34px rgba(17,20,45,.07);

    transition:.3s;

}

.info-card:hover{

    transform:translateY(-6px);

    box-shadow:0 18px 40px rgba(17,20,45,.11);

}

.info-card i{

    font-size:28px;

    color:#703098;

    margin-bottom:20px;

}

.info-card h3{

    margin-bottom:10px;

    color:#11142d;

}

.info-card p{

    color:#666;

    line-height:1.8;

}

.contact-form{

    background:#fff;

    padding:44px;

    border-radius:10px;

    border:1px solid rgba(17,20,45,.06);

    box-shadow:0 16px 42px rgba(17,20,45,.08);

}

.contact-form-heading{

    margin-bottom:28px;

}

.contact-form-heading h3{

    color:#11142d;

    font-size:28px;

    line-height:1.25;

    margin-top:8px;

}

.form-alert{

    padding:14px 16px;

    border-radius:8px;

    margin-bottom:20px;

    font-weight:500;

}

.form-alert.success{

    background:#e8fff1;

    color:#0f7d46;

    border:1px solid rgba(15,125,70,.16);

}

.form-alert.error{

    background:#fff0f0;

    color:#b3261e;

    border:1px solid rgba(179,38,30,.16);

}

.form-group{

    margin-bottom:20px;

}

.contact-form input,

.contact-form textarea{

    width:100%;

    padding:16px 20px;

    border:1px solid #dfe3eb;

    border-radius:7px;

    font-size:16px;

    color:#11142d;

    background:#fff;

    transition:.3s;

}

.contact-form input::placeholder,

.contact-form textarea::placeholder{

    color:#8b93a7;

}

.contact-form input:focus,

.contact-form textarea:focus{

    border-color:#703098;

    outline:none;

    box-shadow:0 0 0 4px rgba(255,102,0,.12);

}

.contact-form textarea{

    resize:vertical;

    min-height:150px;

}

.contact-submit-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    min-height:52px;

    padding:0 28px;

    border:0;

    border-radius:7px;

    background:#703098;

    color:#fff;

    font-family:inherit;

    font-size:15px;

    font-weight:700;

    cursor:pointer;

    box-shadow:0 12px 26px rgba(255,102,0,.26);

    transition:.25s;

}

.contact-submit-btn:hover{

    background:#562575;

    transform:translateY(-2px);

    box-shadow:0 16px 30px rgba(255,102,0,.32);

}

.contact-submit-btn:focus{

    outline:none;

    box-shadow:0 0 0 4px rgba(255,102,0,.18), 0 12px 26px rgba(255,102,0,.26);

}

@media(max-width:992px){

    .contact-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .contact-section{

        padding:70px 0;

    }

    .contact-form{

        padding:30px 20px;

    }

    .contact-form-heading h3{

        font-size:24px;

    }

    .contact-submit-btn{

        width:100%;

    }

}
/*=====================================
            GOOGLE MAP
======================================*/

.map-section{

    padding:100px 0 0;

    background:#fff;

}

.map-container{

    margin-top:50px;

}

.map-container iframe{

    width:100%;

    height:500px;

    border:none;

    display:block;

}

@media(max-width:768px){

    .map-section{

        padding:70px 0 0;

    }

    .map-container iframe{

        height:350px;

    }

}

/*====================================================
                PREMIUM GALLERY PAGE
====================================================*/

.gallery-page{

    padding:100px 0;

    background:#f8f9fc;

}

.gallery-page .section-heading{

    text-align:center;

    margin-bottom:50px;

}

/*====================================================
                FILTER BUTTONS
====================================================*/

.gallery-filter,
.student-program-filters{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:15px;

    margin-bottom:60px;

}

.gallery-filter button,
.student-program-filter{

    border:none;

    outline:none;

    padding:14px 28px;

    border-radius:40px;

    background:#fff;

    color:#333;

    cursor:pointer;

    font-size:15px;

    font-weight:600;

    transition:.35s;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.gallery-filter button:hover,

.gallery-filter button.active,
.student-program-filter:hover,
.student-program-filter.active{

    background:#703098;

    color:#fff;

    transform:translateY(-4px);

}

.student-program-filter{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:50px;
}

.student-program-filter strong{
    font-size:12px;
    font-weight:600;
    opacity:.75;
}

.student-program-filter:focus-visible{
    outline:3px solid #703098;
    outline-offset:4px;
}

/*====================================================
                GALLERY GRID
====================================================*/

.gallery-masonry{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    grid-auto-rows:260px;

    gap:20px;

}

/*====================================================
                IMAGE CARDS
====================================================*/

.gallery-card{

    position:relative;

    overflow:hidden;

    border-radius:18px;

    cursor:pointer;

    background:#ddd;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

}

.gallery-card.large{

    grid-row:span 2;

}

.gallery-card.wide{

    grid-column:span 2;

}

.gallery-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:transform .7s ease;

}

.gallery-card:hover img{

    transform:scale(1.12);

}

/*====================================================
                OVERLAY
====================================================*/

.gallery-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        to top,

        rgba(17,20,45,.95),

        rgba(255,102,0,.30)

    );

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:30px;

    opacity:0;

    transition:.4s;

}

.gallery-card:hover .gallery-overlay{

    opacity:1;

}

.gallery-overlay h3{

    color:#fff;

    font-size:24px;

    margin-bottom:8px;

    transform:translateY(25px);

    transition:.45s;

}

.gallery-overlay p{

    color:#f3f3f3;

    margin-bottom:20px;

    transform:translateY(25px);

    transition:.55s;

}

.gallery-overlay span{

    width:55px;

    height:55px;

    background:#703098;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    color:#fff;

    font-size:22px;

    transform:scale(.5);

    transition:.4s;

}

.gallery-card:hover .gallery-overlay h3,

.gallery-card:hover .gallery-overlay p{

    transform:translateY(0);

}

.gallery-card:hover .gallery-overlay span{

    transform:scale(1);

}

/*====================================================
                LIGHTBOX
====================================================*/

.gallery-lightbox{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:100%;

    background:rgba(0,0,0,.98);

    display:none;

    justify-content:center;

    align-items:center;

    z-index:999999;

    overflow:hidden;

}

/*====================================================
                LIGHTBOX IMAGE
====================================================*/

.gallery-lightbox img{

    width:auto;

    height:auto;

    max-width:95%;

    max-height:95%;

    object-fit:contain;

    border-radius:10px;

    transform:scale(.3);

    opacity:0;

    transition:

        transform .4s ease,

        opacity .4s ease;

}
.gallery-lightbox.show img{

    transform:scale(1);

    opacity:1;

}

/*====================================================
                CLOSE BUTTON
====================================================*/

.close-lightbox{

    position:absolute;

    top:20px;

    right:30px;

    font-size:55px;

    color:#fff;

    cursor:pointer;

    z-index:1000000;

    transition:.3s;

}

.close-lightbox:hover{

    color:#703098;

}

/*====================================================
                PREVIOUS BUTTON
====================================================*/

.prev-image{

    position:absolute;

    left:20px;

    top:50%;

    transform:translateY(-50%);

    font-size:65px;

    color:#fff;

    cursor:pointer;

    user-select:none;

    transition:.3s;

}

/*====================================================
                NEXT BUTTON
====================================================*/

.next-image{

    position:absolute;

    right:20px;

    top:50%;

    transform:translateY(-50%);

    font-size:65px;

    color:#fff;

    cursor:pointer;

    user-select:none;

    transition:.3s;

}

.prev-image:hover,

.next-image:hover{

    color:#703098;

}

/*====================================================
                ZOOM ANIMATION
====================================================*/

@keyframes zoomImage{

    from{

        transform:scale(.85);

        opacity:0;

    }

    to{

        transform:scale(1);

        opacity:1;

    }

}
/*====================================================
                CLOSE BUTTON
====================================================*/

.close-lightbox{

    position:absolute;

    top:20px;

    right:35px;

    color:#fff;

    font-size:55px;

    cursor:pointer;

    transition:.3s;

}

.close-lightbox:hover{

    color:#703098;

}

/*====================================================
                ARROWS
====================================================*/

.prev-image,

.next-image{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:60px;

    height:60px;

    border-radius:50%;

    background:rgba(255,255,255,.15);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    font-size:30px;

    transition:.3s;

    user-select:none;

}

.prev-image{

    left:30px;

}

.next-image{

    right:30px;

}

.prev-image:hover,

.next-image:hover{

    background:#703098;

}

/*====================================================
                ANIMATION
====================================================*/

@keyframes zoomImage{

    from{

        transform:scale(.8);

        opacity:0;

    }

    to{

        transform:scale(1);

        opacity:1;

    }

}

/*====================================================
                RESPONSIVE
====================================================*/

@media(max-width:992px){

    .gallery-masonry{

        grid-template-columns:repeat(2,1fr);

    }

    .gallery-card.wide{

        grid-column:span 1;

    }

}

@media(max-width:768px){

    .gallery-page{

        padding:70px 0;

    }

    .gallery-masonry{

        grid-template-columns:1fr;

        grid-auto-rows:260px;

    }

    .gallery-card.large{

        grid-row:span 1;

    }

    .gallery-card.wide{

        grid-column:span 1;

    }

    .gallery-overlay h3{

        font-size:20px;

    }

    .gallery-overlay p{

        font-size:14px;

    }

    .prev-image,

    .next-image{

        width:50px;

        height:50px;

        font-size:24px;

    }

    .close-lightbox{

        font-size:45px;

        right:20px;

    }

}
/*====================================================
                    TEAM PAGE
====================================================*/

.team-page{

    padding:100px 0;

    background:#f8f9fc;

}

.team-filter{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:15px;

    margin:38px 0 0;

}

.team-filter button{

    border:none;

    background:#fff;

    color:#11142d;

    padding:14px 30px;

    border-radius:30px;

    font-weight:700;

    box-shadow:0 10px 24px rgba(0,0,0,.06);

    transition:.3s;

}

.team-filter button:hover,
.team-filter button.active{

    background:var(--primary);

    color:#fff;

}

.team-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

    margin-top:60px;

}

/*====================================================
                    TEAM CARD
====================================================*/

.team-card{

    background:#fff;

    border-radius:15px;

    overflow:hidden;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    transition:.4s ease;

    position:relative;

}

.team-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(0,0,0,.15);

}

.team-card img{

    width:100%;

    height:350px;

    object-fit:contain;

    display:block;

    transition:.5s;

}

.team-card:hover img{

    transform:scale(1.05);

}

/*====================================================
                TEAM CONTENT
====================================================*/

.team-content{

    padding:30px;

    text-align:center;

}

.team-content h3{

    font-size:24px;

    color:#11142d;

    margin-bottom:8px;

}

.team-content span{

    display:inline-block;

    background:#703098;

    color:#fff;

    padding:6px 18px;

    border-radius:30px;

    font-size:14px;

    margin-bottom:15px;

}

.team-content h4{

    color:#666;

    font-size:17px;

    margin-bottom:18px;

}

.team-content p{

    color:#777;

    line-height:1.8;

    font-size:15px;

}

/*====================================================
                SOCIAL ICONS
====================================================*/

.team-social{

    display:flex;

    justify-content:center;

    gap:12px;

    margin-top:25px;

}

.team-social a{

    width:42px;

    height:42px;

    border-radius:50%;

    background:#f3f3f3;

    color:#11142d;

    display:flex;

    justify-content:center;

    align-items:center;

    text-decoration:none;

    transition:.3s;

}

.team-social a:hover{

    background:#703098;

    color:#fff;

    transform:translateY(-5px);

}

/*====================================================
                RESPONSIVE
====================================================*/

@media(max-width:992px){

    .team-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .team-page{

        padding:70px 0;

    }

    .team-grid{

        grid-template-columns:1fr;

    }

}

/* Contact page submit button override */
.contact-form button.contact-submit-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:54px;
    padding:0 30px;
    border:0;
    border-radius:8px;
    background:#703098;
    color:#fff;
    font-family:'Poppins',sans-serif;
    font-size:15px;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    box-shadow:0 14px 28px rgba(255,102,0,.28);
    transition:.25s ease;
}

.contact-form button.contact-submit-btn:hover{
    background:#562575;
    transform:translateY(-2px);
    box-shadow:0 18px 34px rgba(255,102,0,.34);
}

.contact-form button.contact-submit-btn i{
    color:#fff;
    font-size:15px;
}

@media(max-width:768px){
    .contact-form button.contact-submit-btn{
        width:100%;
    }
}

/* Programs carousel and details */
.programs-showcase{
    background:#f8f9fc;
}

.program-carousel{
    overflow:hidden;
    --program-visible:3;
}

.program-track{
    display:flex;
    gap:26px;
    transition:transform .65s ease;
    will-change:transform;
}

.program-card{
    display:block;
    flex:0 0 calc((100% - 52px) / 3);
    padding:0;
    overflow:hidden;
    border:1px solid #e1e4ec;
    border-radius:16px;
    background:#fff;
    color:#11142d;
    text-align:left;
    font:inherit;
    cursor:pointer;
    text-decoration:none;
    box-shadow:0 10px 30px rgba(17,20,45,.06);
    transition:transform .3s ease, box-shadow .3s ease;
}

.program-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 38px rgba(17,20,45,.14);
}

.program-card > img{
    width:100%;
    height:220px;
    display:block;
    object-fit:cover;
}

.program-card-content{
    display:block;
    min-height:155px;
    padding:22px 20px 26px;
}

.program-card-content strong{
    display:block;
    margin-bottom:10px;
    font-size:19px;
    line-height:1.3;
    color:#11142d;
}

.program-card-content > span{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
    color:#687086;
    line-height:1.7;
}

.program-controls{
    display:flex;
    justify-content:center;
    gap:12px;
    margin-top:32px;
}

.program-controls button{
    width:42px;
    height:42px;
    border:1px solid #d9ddea;
    border-radius:50%;
    background:#fff;
    color:#6f2c91;
    cursor:pointer;
    transition:.25s ease;
}

.program-controls button:hover{
    background:#6f2c91;
    color:#fff;
}

.program-modal{
    position:fixed;
    inset:0;
    z-index:10000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(5,5,12,.78);
}

.program-modal.show{ display:flex; }

.program-modal-panel{
    position:relative;
    width:min(850px, 100%);
    max-height:90vh;
    overflow:auto;
    border-radius:18px;
    background:#fff;
    box-shadow:0 30px 80px rgba(0,0,0,.35);
}

.program-modal-panel > img{
    width:100%;
    height:340px;
    display:block;
    object-fit:cover;
}

.program-modal-content{ padding:32px; }
.program-modal-content h2{ margin-bottom:14px; color:#11142d; }
.program-modal-content p{ margin-bottom:25px; color:#555d70; line-height:1.85; white-space:pre-line; }

.program-modal-close{
    position:absolute;
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:#fff;
    color:#11142d;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 5px 20px rgba(0,0,0,.2);
}

.program-empty{ text-align:center; color:#687086; }

.program-detail-page{
    background:#f6f7fb;
}

.program-detail{
    width:min(980px, 100%);
    margin:0 auto;
    overflow:hidden;
    border:1px solid #e2e5ee;
    border-radius:20px;
    background:#fff;
    box-shadow:0 18px 50px rgba(17,20,45,.09);
}

.program-back-link{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin:24px 28px;
    color:#6f2c91;
    font-weight:600;
}

.program-detail-image{
    width:100%;
    max-height:520px;
    display:block;
    object-fit:cover;
}

.program-detail-content{
    padding:42px 48px 50px;
}

.program-detail-content h1{
    margin:8px 0 14px;
    color:#11142d;
    font-size:clamp(30px, 5vw, 48px);
    line-height:1.2;
}

.program-detail-intro{
    padding-bottom:22px;
    border-bottom:1px solid #e5e7ef;
    color:#667085;
    font-size:18px;
    line-height:1.75;
}

.program-full-description{
    padding-top:24px;
    color:#3f4658;
    font-size:16px;
    line-height:1.9;
}

.program-not-found{
    padding:80px 20px;
    text-align:center;
}

.program-not-found p{ margin:12px 0 25px; color:#687086; }

@media(max-width:900px){
    .program-carousel{ --program-visible:2; }
    .program-card{ flex-basis:calc((100% - 26px) / 2); }
}

@media(max-width:600px){
    .program-carousel{ --program-visible:1; }
    .program-card{ flex-basis:100%; }
    .program-card > img{ height:210px; }
    .program-modal-panel > img{ height:230px; }
    .program-modal-content{ padding:24px 20px; }
    .program-detail-content{ padding:30px 22px 38px; }
    .program-back-link{ margin:20px; }
}

/* Modules feature */
.modules-feature{
    background:#fff;
}

.modules-feature-grid{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
    align-items:center;
    gap:68px;
}

.modules-list{
    display:grid;
    gap:90px;
}

.modules-feature-grid:nth-child(even) .modules-feature-image{
    order:2;
}

.modules-feature-image img{
    width:100%;
    height:430px;
    display:block;
    object-fit:cover;
    border-radius:16px;
    box-shadow:0 20px 45px rgba(17,20,45,.13);
}

.modules-feature-content h1,
.modules-feature-content h2{
    margin:14px 0 22px;
    color:#11142d;
    font-size:clamp(30px, 4vw, 44px);
    line-height:1.25;
}

.modules-feature-content p{
    color:#5f6675;
    font-size:16px;
    line-height:2;
}

.module-description{
    color:#5f6675;
    font-size:16px;
    line-height:2;
}

@media(max-width:900px){
    .modules-feature-grid{
        grid-template-columns:1fr;
        gap:38px;
    }

    .modules-feature-grid:nth-child(even) .modules-feature-image{
        order:0;
    }

    .modules-feature-image img{
        height:min(430px, 62vw);
    }
}

@media(max-width:576px){
    .modules-feature-image img{
        height:260px;
        border-radius:12px;
    }

    .modules-feature-content h1{
        font-size:28px;
    }
}

/* Keep the homepage team preview as a single-card slider after team-page overrides. */
@media(max-width:576px){
    .team-preview .mobile-carousel-track.team-grid{
        display:flex;
        grid-template-columns:none;
        gap:0;
        margin-top:0;
        transition:transform .55s ease-in-out;
    }

    .team-preview .mobile-carousel-track > .team-card{
        flex:0 0 100%;
        width:100%;
    }
}

/*==================================================
        ADMIN-MANAGED SERVICE CARDS
==================================================*/

.services-showcase{
    background:#f5f6fa;
}

.service-summary-grid{
    display:grid;
    gap:28px;
    max-width:940px;
    margin:0 auto;
}

.service-summary-card{
    display:grid;
    grid-template-columns:minmax(260px,38%) 1fr;
    min-height:270px;
    overflow:hidden;
    border-radius:18px;
    background:#fff;
    box-shadow:0 16px 38px rgba(17,20,45,.10);
    transition:transform .3s ease, box-shadow .3s ease;
}

.service-summary-card:hover{
    transform:translateY(-5px);
    box-shadow:0 22px 48px rgba(17,20,45,.16);
}

.service-summary-image,
.service-summary-image img,
.service-image-placeholder{
    width:100%;
    height:100%;
    min-height:270px;
}

.service-summary-image img{
    object-fit:cover;
}

.service-image-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#343434;
    color:#fff;
    font-size:46px;
}

.service-summary-content{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:34px 38px;
}

.service-summary-content > span{
    color:var(--primary);
    font-size:12px;
    font-weight:700;
    letter-spacing:1.5px;
    text-transform:uppercase;
}

.service-summary-content h3{
    margin:9px 0 13px;
    font-size:25px;
    line-height:1.3;
}

.service-summary-content p{
    display:-webkit-box;
    overflow:hidden;
    margin-bottom:22px;
    line-height:1.7;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}

.service-read-more{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:auto;
    padding:11px 21px;
    border-radius:30px;
    background:var(--primary);
    color:#fff;
    font-size:14px;
    font-weight:600;
}

.service-read-more:hover{
    background:var(--secondary);
    color:#fff;
}

.service-detail-page{
    background:#f5f6fa;
}

.service-back-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:25px;
    color:var(--primary);
    font-weight:600;
}

.service-detail-card{
    overflow:hidden;
    border-radius:20px;
    background:#fff;
    box-shadow:0 18px 45px rgba(17,20,45,.10);
}

.service-detail-card > img{
    display:block;
    width:auto;
    max-width:calc(100% - 48px);
    max-height:420px;
    height:auto;
    margin:24px auto 0;
    object-fit:contain;
    background:#fff;
}

.service-detail-content{
    max-width:900px;
    padding:48px;
}

.service-detail-content h1{
    margin:12px 0 18px;
    font-size:clamp(30px,5vw,48px);
}

.service-detail-intro{
    margin-bottom:25px;
    padding-bottom:22px;
    border-bottom:1px solid #e8e8ed;
    color:#4f5563;
    font-size:18px;
    font-weight:600;
}

.service-full-description{
    margin-bottom:32px;
    color:#606675;
    line-height:1.9;
}

.service-full-description h2,
.service-full-description h3{
    margin:26px 0 12px;
    color:var(--heading);
}

.service-full-description p{
    margin-bottom:16px;
}

.service-full-description ol,
.service-full-description ul{
    margin:0 0 20px 25px;
    padding-left:18px;
}

.service-full-description ol{
    list-style:decimal;
}

.service-full-description ul{
    list-style:disc;
}

.service-full-description li{
    margin-bottom:8px;
}

.service-full-description blockquote{
    margin:20px 0;
    padding:14px 20px;
    border-left:4px solid var(--primary);
    background:#f6f2f9;
}

@media(max-width:700px){
    .service-summary-card{
        grid-template-columns:1fr;
    }

    .service-summary-image,
    .service-summary-image img,
    .service-image-placeholder{
        height:220px;
        min-height:220px;
    }

    .service-summary-content,
    .service-detail-content{
        padding:26px 22px;
    }

    .service-detail-card > img{
        max-width:calc(100% - 28px);
        max-height:300px;
        height:auto;
        margin-top:14px;
    }
}

/*==================================================
        SIYB CLIENT ENTRY APPLICATION
==================================================*/

.siyb-application-section{
    padding:90px 0;
    background:#f3f5f9;
}

.siyb-application-form{
    max-width:1050px;
    margin:0 auto;
}

.application-section-card{
    margin:0 0 30px;
    padding:34px;
    border:1px solid #e0e3ea;
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 32px rgba(17,20,45,.07);
}

.application-section-card legend{
    display:flex;
    align-items:center;
    gap:12px;
    width:auto;
    padding:0 12px 0 0;
    color:var(--secondary);
    font-size:23px;
    font-weight:700;
}

.application-section-card legend span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    font-size:16px;
}

.application-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.application-form-grid .full{
    grid-column:1 / -1;
}

.siyb-application-form .field{
    display:flex;
    flex-direction:column;
    gap:9px;
    color:#313747;
}

.siyb-application-form .field > span{
    font-size:14px;
    font-weight:600;
}

.siyb-application-form input[type="text"],
.siyb-application-form input[type="email"],
.siyb-application-form input[type="tel"],
.siyb-application-form input[type="number"],
.siyb-application-form input[type="date"],
.siyb-application-form input[type="month"],
.siyb-application-form select,
.siyb-application-form textarea{
    width:100%;
    min-height:48px;
    padding:11px 13px;
    border:1px solid #d7dbe4;
    border-radius:8px;
    outline:none;
    background:#fff;
    color:#303645;
}

.siyb-application-form textarea{
    min-height:100px;
    resize:vertical;
}

.siyb-application-form input:focus,
.siyb-application-form select:focus,
.siyb-application-form textarea:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 3px rgba(112,48,152,.10);
}

.choice-row,
.choice-grid{
    display:flex;
    flex-wrap:wrap;
    gap:10px 18px;
    padding:12px;
    border-radius:8px;
    background:#f7f7fa;
}

.choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.choice-row label,
.choice-grid label,
.application-consent label{
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-size:13px;
}

.choice-row input,
.choice-grid input,
.application-consent input{
    margin-top:4px;
    accent-color:var(--primary);
}

.assessment-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.assessment-grid label{
    padding:12px;
    border:1px solid #e1e4eb;
    border-radius:8px;
}

.assessment-grid b{
    display:block;
    min-height:42px;
    margin-bottom:7px;
    font-size:13px;
}

.application-consent{
    margin:22px 0;
    padding:18px;
    border-radius:10px;
    background:#eee7f3;
}

.application-submit{
    border:0;
}

.application-notice{
    max-width:1050px;
    margin:0 auto 24px;
    padding:16px 20px;
    border-radius:10px;
}

.application-notice.success{ background:#e7f7ed; color:#16733a; }
.application-notice.error{ background:#fdeaea; color:#a32626; }
.application-honeypot{ position:absolute !important; left:-10000px !important; }
.siyb-application-form [hidden]{ display:none !important; }

@media(max-width:700px){
    .application-form-grid,
    .choice-grid,
    .assessment-grid{
        grid-template-columns:1fr;
    }

    .application-section-card{
        padding:24px 18px;
    }

    .application-section-card legend{
        font-size:18px;
    }
}


.admissions-calendar-section{padding:20px 0 90px;background:linear-gradient(180deg,#fff 0%,#f5f6fb 100%)}
.calendar-heading{margin-bottom:38px}.admissions-calendar{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr);background:#fff;border-radius:24px;box-shadow:0 18px 55px rgba(25,28,74,.12);overflow:hidden;border:1px solid #ececf4}
.calendar-panel{padding:34px 40px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.calendar-toolbar h3{font-size:22px;color:#111a46;margin:0}.calendar-nav{width:40px;height:40px;border:0;border-radius:50%;background:#f1edf9;color:#7624a0;cursor:pointer}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays span{text-align:center;color:#7b7e8f;font-size:12px;font-weight:700;padding:8px 0}.calendar-day{position:relative;min-height:58px;border:0;background:transparent;border-radius:13px;color:#252944;font:600 14px Poppins,sans-serif;cursor:pointer}.calendar-day:hover,.calendar-day.selected{background:#7624a0;color:#fff}.calendar-day.today{box-shadow:inset 0 0 0 2px #f39b29}.calendar-day i{position:absolute;width:6px;height:6px;border-radius:50%;background:#f39b29;bottom:8px;left:50%;transform:translateX(-50%)}.calendar-day.selected i{background:#fff}
.calendar-events-panel{background:#f3f2f9;padding:34px 28px;max-height:560px;overflow:auto}.calendar-events-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-events-title span{font-size:11px;letter-spacing:2px;color:#7624a0;font-weight:800}.calendar-events-title h3{font-size:20px;margin:3px 0 0;color:#111a46}.calendar-events-title>i{font-size:28px;color:#f39b29}.calendar-event-list{display:grid;gap:14px}.calendar-event-card{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:17px;background:#fff;border-radius:14px;box-shadow:0 6px 18px rgba(22,25,62,.08)}.event-date{height:54px;border-radius:11px;background:#7624a0;color:#fff;text-align:center;padding:5px}.event-date b,.event-date span{display:block}.event-date b{font-size:20px;line-height:25px}.event-date span{font-size:10px;text-transform:uppercase}.calendar-event-card h4{font-size:14px;color:#111a46;margin:0 0 7px}.calendar-event-card p{font-size:11px;color:#686b7c;margin:3px 0}.calendar-event-card p i{color:#f39b29;width:14px}.event-description{font-size:11px;color:#777b8b;margin-top:7px;line-height:1.5}.calendar-empty{text-align:center;color:#7b7e8f;padding:60px 15px}.calendar-empty i{font-size:34px;color:#b9b5c7}.calendar-apply-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:30px;padding:28px 34px;border-radius:18px;background:#111a46;color:#fff}.calendar-apply-cta h3{margin:5px 0 0;font-size:22px}.calendar-apply-cta .primary-btn{white-space:nowrap}
.calendar-apply-cta h3,.calendar-apply-cta .section-subtitle{color:#fff}
@media(max-width:850px){.admissions-calendar{grid-template-columns:1fr}.calendar-events-panel{max-height:none}.calendar-panel{padding:25px 16px}.calendar-day{min-height:45px}.calendar-apply-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.calendar-weekdays,.calendar-days{gap:2px}.calendar-day{min-height:39px}.calendar-events-panel{padding:25px 16px}.calendar-apply-cta{padding:24px 20px}}
.home-event-widget{position:fixed;right:32px;bottom:28px;width:min(365px,calc(100vw - 32px));z-index:900;background:#f4f3fa;border:1px solid rgba(112,48,152,.15);border-radius:20px;padding:16px;box-shadow:0 18px 55px rgba(13,20,59,.25);overflow:hidden}.home-event-label{display:flex;align-items:center;gap:8px;margin:0 4px 11px;color:#111a46;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px}.home-event-label i{color:#f39b29}.home-event-stage{position:relative;height:125px;overflow:hidden}.home-event-slide{position:absolute;inset:0;display:grid;grid-template-columns:54px 1fr;gap:14px;padding:14px 15px;background:#fff;border-radius:14px;box-shadow:0 6px 18px rgba(22,25,62,.08);opacity:0;transform:translateX(-115%);pointer-events:none;transition:transform .6s cubic-bezier(.22,.61,.36,1),opacity .45s ease}.home-event-slide.active{opacity:1;transform:translateX(0);pointer-events:auto}.home-event-slide.entering{opacity:0;transform:translateX(-115%)}.home-event-slide.leaving{opacity:0;transform:translateX(115%)}.home-event-date{height:56px;border-radius:11px;background:#7624a0;color:#fff;text-align:center;padding:5px}.home-event-date b,.home-event-date span{display:block}.home-event-date b{font-size:21px;line-height:27px}.home-event-date span{font-size:10px}.home-event-details{min-width:0}.home-event-details h3{margin:0 0 6px;color:#111a46;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-event-details p{margin:3px 0;color:#707484;font-size:11px}.home-event-details p i{width:14px;color:#f39b29}.home-event-details div{margin-top:7px;color:#7a7d8d;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-event-progress{height:3px;margin:10px 4px 0;background:#ddd9e7;border-radius:5px;overflow:hidden}.home-event-progress span{display:block;width:0;height:100%;background:#7624a0}.home-event-progress span.running{animation:homeEventProgress 5s linear infinite}@keyframes homeEventProgress{from{width:0}to{width:100%}}
@media(max-width:600px){.home-event-widget{right:16px;bottom:16px;padding:12px}.home-event-label{margin-bottom:8px}.home-event-stage{height:119px}}
@media(prefers-reduced-motion:reduce){.home-event-slide{transition:none}.home-event-progress span.running{animation:none;width:100%}}
.home-event-widget{width:min(310px,calc(100vw - 28px));padding:12px;border-radius:16px}.home-event-label{margin:0 3px 8px;font-size:10px}.home-event-stage{height:86px}.home-event-slide{grid-template-columns:48px 1fr;gap:11px;padding:11px 12px;border-radius:12px}.home-event-date{height:51px;padding:4px}.home-event-date b{font-size:19px;line-height:25px}.home-event-details h3{font-size:13px;margin-bottom:5px}.home-event-details p{font-size:10px}.home-event-progress{margin-top:7px}
@media(max-width:600px){.home-event-widget{width:min(285px,calc(100vw - 24px));right:12px;bottom:12px;padding:10px}.home-event-stage{height:80px}.home-event-slide{grid-template-columns:45px 1fr;padding:10px}.home-event-date{height:48px}.home-event-date b{font-size:18px;line-height:23px}}
.home-event-slide{text-decoration:none;color:inherit}.home-event-slide.active{cursor:pointer}.home-event-slide.active:hover{box-shadow:0 9px 24px rgba(22,25,62,.16)}.home-event-slide:focus-visible{outline:3px solid #f39b29;outline-offset:-3px}
.footer-address-text{display:inline-block;vertical-align:top}


.service-checklist{border:1px solid #ddd;border-radius:8px;padding:10px;max-height:140px;overflow:auto;background:#fff}.service-check{display:flex;gap:8px;align-items:center;padding:7px;cursor:pointer}.service-check input{accent-color:#703098;width:16px;height:16px}.service-check:hover{background:#f4eef8}
.students-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1100px;margin:35px auto}.student-card{background:#f1f2f5;border-radius:10px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.08)}.student-photo-wrap{height:240px;background:#d5d9e1}.student-photo-wrap img{width:100%;height:100%;object-fit:cover}.student-details{padding:16px}.student-details h2{font-size:18px;margin:0 0 8px}.student-details p{font-size:13px;margin:7px 0;color:#667}.student-card:nth-child(3n+1) .student-details{background:#5143df;color:#fff}.student-card:nth-child(3n+1) .student-details p{color:#fff}.student-program-filters{margin:30px auto 45px;max-width:1000px}.students-hero{text-align:center;padding:55px 0 20px}@media(max-width:800px){.students-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.students-grid{grid-template-columns:1fr}}
.student-card:nth-child(3n+1) .student-details{background:#f1f2f5;color:inherit}.student-card:nth-child(3n+1) .student-details p{color:#667}.student-photo-wrap{height:240px;background:#fff}.student-photo-wrap img{object-fit:contain;object-position:center top}
.student-photo-wrap{height:240px;display:flex;align-items:center;justify-content:center;overflow:hidden}.student-photo-wrap img{width:100%;height:100%;object-fit:contain;object-position:center center}.student-details{min-height:180px}
.student-service-item{display:block;margin:3px 0 0 18px}
