/* =====================================================
   BASIC / GLOBAL
===================================================== */

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

html{
    scroll-behavior:smooth;
}

body{
    width:100%;
    min-height:100vh;
    overflow-x:hidden;
    font-family:Arial,Helvetica,sans-serif;
    color:#123657;
    background:#ffffff;
}

a{
    color:inherit;
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
}

button{
    font:inherit;
}

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


/* =====================================================
   HEADER
===================================================== */

.header{
    width:100%;
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid #e3e9ee;
    box-shadow:0 4px 18px rgba(18,57,95,.055);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.header::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    height:3px;
    background:
        linear-gradient(
            90deg,
            #a90000 0%,
            #a90000 24%,
            #12395f 24%,
            #12395f 76%,
            #a90000 76%,
            #a90000 100%
        );
}

.nav{
    width:min(1240px,95%);
    height:76px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}


/* =====================================================
   HEADER — BRAND
===================================================== */

.brand{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
    flex-shrink:0;
    padding:4px 8px 4px 4px;
    border-radius:14px;
    transition:.2s ease;
}

.brand:hover{
    background:#f8fbfd;
}

.brandLogoBox{
    width:58px;
    height:58px;
    flex:0 0 58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:#ffffff;
    border:1px solid #e2e8ed;
    box-shadow:0 4px 14px rgba(18,57,95,.12);
}

.brandLogo{
    width:51px;
    height:51px;
    object-fit:contain;
    border-radius:11px;
}

.brandText{
    min-width:0;
}

.brandText strong{
    display:block;
    color:#12395f;
    font-size:17px;
    font-weight:900;
    line-height:1.08;
}

.brandText span{
    display:block;
    margin-top:4px;
    color:#6f7e8a;
    font-size:10px;
    font-weight:700;
    letter-spacing:.5px;
}


/* =====================================================
   HEADER — MENU
===================================================== */

.menu{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
}

.menu a{
    position:relative;
    min-height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 10px;
    color:#40586e;
    font-size:12px;
    font-weight:800;
    border-radius:8px;
    transition:.2s;
}

.menu a:hover{
    color:#a90000;
    background:#fff7f7;
}

.menu a.active{
    color:#a90000;
}

.menu a.active::after{
    content:"";
    position:absolute;
    left:10px;
    right:10px;
    bottom:3px;
    height:2px;
    background:#a90000;
    border-radius:10px;
}


/* =====================================================
   HEADER — ACTIONS
===================================================== */

.navActions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
}

.loginBtn{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 16px;
    color:#ffffff;
    background:
        linear-gradient(
            135deg,
            #b40000,
            #8f0000
        );
    border:1px solid #920000;
    border-radius:10px;
    box-shadow:0 4px 11px rgba(169,0,0,.20);
    font-size:11px;
    font-weight:900;
    white-space:nowrap;
}

.adminBtn{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    color:#ffffff;
    background:#12395f;
    border:1px solid #12395f;
    border-radius:9px;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}


/* =====================================================
   HERO SLIDER — BASE
===================================================== */

.hero{
    width:100%;
    background:#eef8fc;
    overflow:hidden;
}

.heroSlider{
    position:relative;
    width:100%;
    margin:auto;
    overflow:hidden;
    background:#ffffff;
}

.heroTrack{
    display:flex;
    width:300%;
    transform:translateX(0);
}

.heroSlide{
    position:relative;
    width:33.333333%;
    flex:0 0 33.333333%;
    overflow:hidden;
}

.heroSlide img{
    width:100%;
    height:auto;
    display:block;
}


/* =====================================================
   HERO SLIDER — DESKTOP
===================================================== */

@media(min-width:951px){

    .heroSlider{
        width:100%;
        height:min(480px, calc(100vh - 190px));
        min-height:400px;
        overflow:hidden;
        background:#ffffff;
    }

    .heroTrack{
        height:100%;
    }

    .heroSlide{
        height:100%;
        display:flex;
        align-items:center;
        justify-content:center;
        background:#ffffff;
    }

    .heroSlide img{
        width:100%;
        height:100%;
        display:block;
        object-fit:contain;
        object-position:center center;
    }
}


/* =====================================================
   HERO SLIDER — ARROWS
===================================================== */

.heroArrow{
    position:absolute;
    top:50%;
    z-index:1000;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:50%;
    color:#ffffff;
    background:rgba(10,43,77,.72);
    font-size:22px;
    font-weight:900;
    cursor:pointer;
    transform:translateY(-50%);
    box-shadow:
        0 4px 14px
        rgba(0,0,0,.20);
}

.heroPrev{
    left:16px;
}

.heroNext{
    right:16px;
}


/* =====================================================
   HERO SLIDER — DOTS
===================================================== */

.heroDots{
    position:absolute;
    left:50%;
    bottom:12px;
    z-index:60;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    transform:translateX(-50%);
}

.heroDot{
    width:9px;
    height:9px;
    padding:0;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.72);
    box-shadow:
        0 1px 5px
        rgba(0,0,0,.20);
    cursor:pointer;
}

.heroDot.active{
    width:23px;
    border-radius:20px;
    background:#b00000;
}


/* =====================================================
   HERO SLIDER — SLIDE 1 HOTSPOTS
===================================================== */

.heroStartLink,
.heroCourseLink{
    position:absolute;
    z-index:40;
    display:block;
    cursor:pointer;
    pointer-events:auto;
    touch-action:manipulation;
    background:rgba(255,255,255,.001);
    border-radius:12px;
}

.heroStartLink{
    left:16%;
    top:84%;
    width:13.5%;
    height:10%;
}

.heroCourseLink{
    left:30%;
    top:84%;
    width:14.5%;
    height:10%;
}


/* =====================================================
   HERO SLIDER — TABLET
===================================================== */

@media(max-width:950px){

    .heroSlider{
        height:auto;
    }

    .heroSlide img{
        width:100%;
        height:auto;
        object-fit:contain;
    }

    .heroArrow{
        width:36px;
        height:36px;
        font-size:18px;
    }

    .heroPrev{
        left:8px;
    }

    .heroNext{
        right:8px;
    }
}


/* =====================================================
   HERO SLIDER — MOBILE
===================================================== */

@media(max-width:650px){

    .heroArrow{
        width:31px;
        height:31px;
        font-size:15px;
    }

    .heroDots{
        bottom:7px;
    }

    .heroDot{
        width:7px;
        height:7px;
    }

    .heroDot.active{
        width:18px;
    }
}


/* =====================================================
   PRIMARY QUICK ACCESS
===================================================== */

.quickFeatures{
    width:100%;
    margin-top:0;
    padding:10px 2%;
    background:
        linear-gradient(
            135deg,
            #e9f3f9 0%,
            #f8fbfd 50%,
            #edf5fa 100%
        );
    border-top:1px solid #d5e4ee;
    border-bottom:1px solid #d5e4ee;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.9);
}

.quickGrid{
    width:min(1180px,100%);
    margin:auto;
    display:grid;
    grid-template-columns:
        repeat(5,minmax(0,1fr));
    gap:8px;
}

.quickItem{
    min-width:0;
    min-height:92px;
    padding:10px 6px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:rgba(255,255,255,.96);
    border:1px solid #dce7ee;
    border-radius:13px;
    box-shadow:0 4px 13px rgba(18,57,95,.075);
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.quickItem:hover{
    background:#ffffff;
    border-color:#bed4e3;
    transform:translateY(-3px);
    box-shadow:0 8px 20px rgba(18,57,95,.12);
}

.quickIcon{
    width:36px;
    height:36px;
    flex:0 0 36px;
    margin-bottom:5px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    font-size:17px;
    box-shadow:0 3px 8px rgba(18,57,95,.08);
}

.quickItem:nth-child(1) .quickIcon{
    background:#e1efff;
}

.quickItem:nth-child(2) .quickIcon{
    background:#e4f8ec;
}

.quickItem:nth-child(3) .quickIcon{
    background:#f1e8ff;
}

.quickItem:nth-child(4) .quickIcon{
    background:#fff0dd;
}

.quickItem:nth-child(5) .quickIcon{
    background:#e1f7f8;
}

.quickItem strong{
    color:#123b62;
    font-size:11px;
    line-height:1.2;
}

.quickItem span{
    margin-top:3px;
    color:#718290;
    font-size:8px;
    line-height:1.2;
}


/* =====================================================
   PRIMARY QUICK ACCESS — DESKTOP
===================================================== */

@media(min-width:951px) and (max-width:1920px){

    .quickFeatures{
        margin-top:6px;
        padding:8px 2% 9px;
    }

    .quickGrid{
        gap:10px;
    }

    .quickItem{
        min-height:78px;
        padding:7px 6px;
        border-radius:14px;
    }

    .quickIcon{
        width:32px;
        height:32px;
        flex-basis:32px;
        margin-bottom:4px;
        font-size:15px;
    }

    .quickItem strong{
        font-size:10px;
    }

    .quickItem span{
        margin-top:2px;
        font-size:7px;
    }
}


/* =====================================================
   TRUST STRIP
===================================================== */

.trustStrip{
    width:100%;
    background:
        linear-gradient(
            135deg,
            #0d355c,
            #123f6b
        );
    border-bottom:1px solid #092b4d;
}

.trustInner{
    width:min(1180px,94%);
    margin:auto;
    display:grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
}

.trustItem{
    min-width:0;
    min-height:68px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:9px 12px;
    border-right:
        1px solid rgba(255,255,255,.14);
}

.trustItem:last-child{
    border-right:none;
}

.trustIcon{
    width:34px;
    height:34px;
    flex:0 0 34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    border:
        1px solid rgba(255,255,255,.15);
    font-size:15px;
}

.trustText strong{
    display:block;
    color:#ffffff;
    font-size:10px;
    font-weight:900;
}

.trustText span{
    display:block;
    margin-top:2px;
    color:#d6e4ee;
    font-size:7.5px;
}


/* =====================================================
   COMMON SECTION STYLES
===================================================== */

.sectionInner{
    width:min(1180px,92%);
    margin:auto;
}

.sectionLabel{
    display:block;
    margin-bottom:6px;
    color:#a90000;
    font-size:10px;
    font-weight:900;
    letter-spacing:1.4px;
}


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

.aboutSection{
    padding:20px 0;
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fbfdff
        );
    border-bottom:1px solid #edf1f4;
    scroll-margin-top:88px;
}

.aboutBox{
    width:min(1000px,92%);
    margin:auto;
    display:grid;
    grid-template-columns:
        180px minmax(0,1fr);
    align-items:center;
    gap:18px;
    padding:14px 18px;
    background:#ffffff;
    border:1px solid #e4ebf0;
    border-radius:15px;
    box-shadow:0 6px 20px rgba(18,57,95,.055);
}

.aboutBrand{
    min-height:126px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:10px;
    border-radius:13px;
    background:
        linear-gradient(
            145deg,
            #eef7fc,
            #fff8f5
        );
    border:1px solid #e2eaf0;
}

.aboutLogo{
    width:68px;
    height:68px;
    object-fit:contain;
    padding:4px;
    background:#ffffff;
    border-radius:16px;
}

.aboutBrand strong{
    margin-top:7px;
    color:#12395f;
    font-size:10.5px;
    font-weight:900;
}

.aboutBrand span{
    margin-top:2px;
    color:#a90000;
    font-size:6px;
    font-weight:900;
}

.aboutContent .sectionLabel{
    margin-bottom:4px;
    font-size:8px;
}

.aboutContent h2{
    color:#12395f;
    font-size:21px;
    line-height:1.15;
}

.aboutLead{
    max-width:690px;
    margin-top:5px;
    color:#5e7180;
    font-size:10.2px;
    line-height:1.55;
}

.aboutPoints{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:8px;
}

.aboutPoint{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 7px;
    border-radius:20px;
    color:#35536d;
    background:#f4f8fb;
    border:1px solid #e1e9ef;
    font-size:6.5px;
    font-weight:800;
}

.aboutPoint b{
    color:#a90000;
}

.aboutMore{
    display:none;
    max-width:700px;
    margin-top:7px;
    padding-top:7px;
    border-top:1px dashed #d9e2e8;
    color:#667987;
    font-size:8.8px;
    line-height:1.5;
}

.aboutMore.show{
    display:block;
}

.aboutBtn{
    min-height:30px;
    margin-top:8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 11px;
    border:none;
    border-radius:8px;
    color:#ffffff;
    background:#12395f;
    font-size:7.8px;
    font-weight:900;
    cursor:pointer;
}


/* =====================================================
   EXAMS
===================================================== */

.examSection{
    padding:38px 0 42px;
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #f8fbfd
        );
    scroll-margin-top:88px;
}

.sectionTop{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:21px;
}

.sectionTop h2{
    color:#12395f;
    font-size:
        clamp(26px,3.3vw,34px);
}

.sectionTop p{
    max-width:650px;
    margin-top:6px;
    color:#71808c;
    font-size:11px;
    line-height:1.5;
}

.viewAll{
    min-height:36px;
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:7px 13px;
    color:#a90000;
    background:#ffffff;
    border:1px solid #e4caca;
    border-radius:10px;
    font-size:9px;
    font-weight:900;
}

.examGrid{
    display:grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
    gap:15px;
}

.examCard{
    --accent:#a90000;
    min-width:0;
    position:relative;
    min-height:200px;
    display:flex;
    flex-direction:column;
    padding:17px;
    overflow:hidden;
    background:#ffffff;
    border:1px solid #e1e8ed;
    border-radius:16px;
    box-shadow:
        0 6px 18px rgba(18,57,95,.06);
    transition:.22s;
}

.examCard::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:4px;
    background:var(--accent);
}

.examCard:nth-child(1){
    --accent:#a90000;
}

.examCard:nth-child(2){
    --accent:#1f5f99;
}

.examCard:nth-child(3){
    --accent:#7046a3;
}

.examCard:nth-child(4){
    --accent:#25835f;
}

.examCard:hover{
    transform:translateY(-3px);
    box-shadow:
        0 11px 25px rgba(18,57,95,.11);
}

.examCard.disabled{
    cursor:default;
}

.examCard.disabled:hover{
    transform:none;
    box-shadow:
        0 6px 18px rgba(18,57,95,.06);
}

.examCard.disabled .examAction{
    color:#8795a0;
}

.examCard.disabled .examArrow{
    background:#a8b2ba;
}

.examCardTop{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:12px;
}

.examBadge{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    color:#ffffff;
    background:var(--accent);
    font-size:9px;
    font-weight:900;
    text-align:center;
    padding:3px;
    overflow:hidden;
}

.examStatus{
    min-height:23px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 7px;
    border-radius:20px;
    font-size:6px;
    font-weight:900;
    white-space:nowrap;
}

.status-coming{
    color:#8a5a00;
    background:#fff7df;
    border:1px solid #f1dfaa;
}

.status-active{
    color:#116842;
    background:#e5f8ee;
    border:1px solid #bfe8d2;
}

.status-practice{
    color:#175a8d;
    background:#e9f5ff;
    border:1px solid #c7e4f8;
}

.examCard h3{
    color:#143b61;
    font-size:14px;
}

.examCard > p{
    margin-top:6px;
    color:#697d8c;
    font-size:9.5px;
    line-height:1.5;
}

.examMeta{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    margin-top:10px;
}

.examMeta span{
    padding:4px 6px;
    color:#587083;
    background:#f5f8fa;
    border:1px solid #e3e9ed;
    border-radius:20px;
    font-size:6px;
    font-weight:800;
}

.examAction{
    margin-top:auto;
    padding-top:13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:var(--accent);
    font-size:8.5px;
    font-weight:900;
}

.examArrow{
    width:24px;
    height:24px;
    flex:0 0 24px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#ffffff;
    background:var(--accent);
    border-radius:50%;
}

.examEmpty{
    grid-column:1/-1;
    padding:25px;
    text-align:center;
    background:#ffffff;
    border:1px dashed #d5dfe6;
    border-radius:15px;
    color:#6e808e;
    font-size:10px;
}


/* =====================================================
   DAILY LEARNING
===================================================== */

.dailyLearning{
    padding:30px 0 34px;
    background:
        linear-gradient(
            180deg,
            #f7fbfe,
            #ffffff
        );
    border-top:1px solid #e7eef3;
    border-bottom:1px solid #e7eef3;
    scroll-margin-top:88px;
}

.dailyLearningTop{
    margin-bottom:19px;
    text-align:center;
}

.dailyLearningTop h2{
    color:#12395f;
    font-size:25px;
}

.dailyLearningTop p{
    max-width:650px;
    margin:5px auto 0;
    color:#6e808e;
    font-size:10px;
    line-height:1.5;
}

.learningGrid{
    display:grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
    gap:13px;
}

.learningCard{
    --learning:#12395f;
    min-width:0;
    position:relative;
    min-height:155px;
    display:flex;
    flex-direction:column;
    padding:15px;
    overflow:hidden;
    background:#ffffff;
    border:1px solid #e0e8ee;
    border-radius:15px;
    box-shadow:
        0 5px 16px rgba(18,57,95,.055);
    transition:.2s;
}

a.learningCard:hover{
    transform:translateY(-3px);
    box-shadow:
        0 10px 22px rgba(18,57,95,.10);
}

.learningCard::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:4px;
    background:var(--learning);
}

.learningCard.book{
    --learning:#6743a5;
}

.learningCard.quiz{
    --learning:#176f55;
}

.learningCard.current{
    --learning:#b2412d;
}

.learningCard.vocab{
    --learning:#1d62a0;
}

.learningTopRow{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
}

.learningIcon{
    width:40px;
    height:40px;
    flex:0 0 40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    color:#ffffff;
    background:var(--learning);
    font-size:18px;
}

.learningStatus{
    min-height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 7px;
    border-radius:20px;
    color:#755400;
    background:#fff4cf;
    border:1px solid #eddc9b;
    font-size:5.5px;
    font-weight:900;
    white-space:nowrap;
}

.learningStatus.live{
    color:#116842;
    background:#e5f8ee;
    border-color:#bfe8d2;
}

.learningCard h3{
    margin-top:10px;
    color:#143b61;
    font-size:13.5px;
}

.learningCard p{
    margin-top:5px;
    color:#6b7e8c;
    font-size:8.5px;
    line-height:1.45;
}

.learningAction{
    margin-top:auto;
    padding-top:11px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:7px;
    color:var(--learning);
    font-size:7.5px;
    font-weight:900;
}

.learningArrow{
    width:23px;
    height:23px;
    flex:0 0 23px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#ffffff;
    background:var(--learning);
}


/* =====================================================
   HOW IT WORKS
===================================================== */

.howSection{
    padding:24px 0 26px;
    background:#f8fafc;
}

.howSection .sectionLabel{
    margin-bottom:4px;
    font-size:8px;
}

.howTitle{
    color:#12395f;
    font-size:23px;
}

.howText{
    margin-top:4px;
    color:#71808c;
    font-size:10.5px;
}

.stepsGrid{
    display:grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:14px;
}

.step{
    min-width:0;
    display:flex;
    align-items:flex-start;
    gap:8px;
}

.stepNo{
    width:31px;
    height:31px;
    flex:0 0 31px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#ffffff;
    background:#b00000;
    border-radius:50%;
    font-size:10px;
    font-weight:900;
}

.step h3{
    color:#143b61;
    font-size:11.5px;
}

.step p{
    margin-top:3px;
    color:#71808d;
    font-size:9px;
    line-height:1.4;
}


/* =====================================================
   SELECTED STUDENTS
===================================================== */

.spotlightSection{
    display:none;
    position:relative;
    overflow:hidden;
    padding:28px 0 31px;
    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(255,226,190,.32),
            transparent 43%
        ),
        linear-gradient(
            90deg,
            #ffffff 0%,
            #fff7ed 48%,
            #ffffff 100%
        );
    border-top:1px solid #eadfd6;
    border-bottom:1px solid #eadfd6;
}

.spotlightSection::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:
        linear-gradient(
            90deg,
            transparent,
            #a90000 20%,
            #12395f 50%,
            #a90000 80%,
            transparent
        );
    z-index:4;
}

.spotlightSection .sectionInner{
    position:relative;
    z-index:1000;
}

.spotlightHeader{
    margin-bottom:18px;
    text-align:center;
}

.spotlightHeader .sectionLabel{
    display:inline-flex;
    padding:4px 9px;
    color:#a90000;
    background:rgba(169,0,0,.055);
    border:1px solid rgba(169,0,0,.09);
    border-radius:20px;
    font-size:8px;
}

.spotlightHeader h2{
    color:#12395f;
    font-size:26px;
}

.spotlightHeader p{
    margin-top:4px;
    color:#667b8b;
    font-size:10px;
}

.spotlightViewport{
    width:100%;
    position:relative;
    overflow:hidden;
    padding:8px 0 6px;
}

.spotlightTrack{
    width:max-content;
    display:flex;
    align-items:flex-start;
    gap:27px;
    will-change:transform;
}

.studentCard{
    width:132px;
    flex:0 0 132px;
    text-align:center;
}

.studentPhotoWrap{
    position:relative;
    width:98px;
    height:98px;
    margin:0 auto 9px;
    overflow:hidden;
    border-radius:50%;
    background:#eef6fa;
    border:4px solid #ffffff;
    box-shadow:
        0 0 0 2px #d9e5ed,
        0 7px 17px rgba(18,57,95,.14);
}

.studentPhoto{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    border-radius:50%;
}

.studentInitials{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#12395f;
    font-size:28px;
    font-weight:900;
}

.selectedBadge{
    position:absolute;
    right:3px;
    bottom:3px;
    width:23px;
    height:23px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#ffffff;
    background:#a90000;
    border:2px solid #ffffff;
    border-radius:50%;
}

.selectedBadge::after{
    content:"✓";
    font-size:11px;
    font-weight:900;
}

.studentInfo h3{
    color:#12395f;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.studentInfo p{
    min-height:19px;
    margin-top:3px;
    color:#667c8c;
    font-size:7.7px;
    line-height:1.3;
}

.studentInfo .studentExtra{
    display:block;
    margin-top:3px;
    color:#a90000;
    font-size:6.7px;
    font-weight:900;
}


/* =====================================================
   SELECTED STUDENTS — CELEBRATION
===================================================== */

.celebrationLayer{
    position:absolute;
    inset:0;
    overflow:hidden;
    pointer-events:none;
    z-index:1;
}

.confetti{
    position:absolute;
    top:-18px;
    width:6px;
    height:12px;
    border-radius:2px;
    opacity:.82;
    animation:
        confettiFall linear infinite;
}

.confetti.circle{
    width:7px;
    height:7px;
    border-radius:50%;
}

.confetti.star{
    width:auto;
    height:auto;
    background:none !important;
    font-size:11px;
}

@keyframes confettiFall{

    0%{
        transform:
            translateY(-20px)
            rotate(0deg);
        opacity:0;
    }

    8%{
        opacity:.9;
    }

    100%{
        transform:
            translateY(245px)
            translateX(30px)
            rotate(600deg);
        opacity:0;
    }
}

.sparkle{
    position:absolute;
    z-index:2;
    pointer-events:none;
    font-size:15px;
    animation:
        sparklePop
        2.1s
        ease-in-out
        infinite;
}

.sparkle.one{
    left:3%;
    top:42%;
}

.sparkle.two{
    right:4%;
    top:30%;
}

.sparkle.three{
    left:48%;
    top:5%;
}

.sparkle.four{
    left:25%;
    top:28%;
}

.sparkle.five{
    right:25%;
    top:52%;
}

@keyframes sparklePop{

    0%,
    100%{
        transform:scale(.4);
        opacity:0;
    }

    45%{
        transform:scale(1.25);
        opacity:.9;
    }
}


/* =====================================================
   CONTACT
===================================================== */

.contactSection{
    padding:25px 0 27px;
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #f5f9fc
        );
    border-top:1px solid #e5edf2;
    scroll-margin-top:88px;
}

.contactBox{
    width:min(1120px,92%);
    margin:auto;
    display:grid;
    grid-template-columns:
        .8fr minmax(0,1.7fr);
    align-items:center;
    gap:22px;
    padding:19px 21px;
    background:#ffffff;
    border:1px solid #e1e9ef;
    border-radius:18px;
    box-shadow:
        0 7px 20px rgba(18,57,95,.06);
}

.contactIntro h2{
    color:#12395f;
    font-size:23px;
}

.contactIntro p{
    max-width:330px;
    margin-top:5px;
    color:#6d7e8b;
    font-size:9px;
    line-height:1.5;
}

.contactActions{
    min-width:0;
    display:grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap:10px;
}

.contactAction{
    min-width:0;
    min-height:78px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:11px;
    background:#ffffff;
    border:1px solid #e2e8ed;
    border-radius:13px;
    box-shadow:
        0 4px 11px rgba(18,57,95,.05);
}

.contactActionIcon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#ffffff;
    border-radius:10px;
    font-size:17px;
}

.contactAction strong{
    display:block;
    color:#143b61;
    font-size:10px;
}

.contactAction span:not(.contactActionIcon){
    display:block;
    margin-top:3px;
    color:#6c7e8c;
    font-size:7px;
    overflow-wrap:anywhere;
}

.callAction .contactActionIcon{
    background:#12395f;
}

.whatsappAction .contactActionIcon{
    background:#1f9d55;
}

.whatsappAction strong{
    color:#17733f;
}

.emailAction .contactActionIcon{
    background:#a90000;
}


/* =====================================================
   CTA
===================================================== */

.cta{
    background:#103c68;
    color:#ffffff;
}

.ctaInner{
    width:min(1180px,92%);
    margin:auto;
    padding:23px 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.cta h2{
    font-size:19px;
}

.cta p{
    margin-top:4px;
    color:#d8e5ef;
    font-size:11px;
}

.ctaBtn{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 21px;
    color:#173b5d;
    background:#ffd43b;
    border-radius:30px;
    font-size:11px;
    font-weight:900;
}


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

.footer{
    background:#092b4d;
    color:#d4e0ea;
}

.footerInner{
    width:min(1180px,92%);
    margin:auto;
    padding:23px 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.footerBrand{
    display:flex;
    align-items:center;
    gap:10px;
}

.footerBrand img{
    width:48px;
    height:48px;
    object-fit:contain;
    background:#ffffff;
    border-radius:6px;
}

.footerBrand strong{
    display:block;
    color:#ffffff;
    font-size:12px;
}

.footerBrand span{
    display:block;
    margin-top:3px;
    font-size:8.5px;
}

.footerLinks{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:13px;
    font-size:9.5px;
}

.copyright{
    padding:10px;
    text-align:center;
    border-top:
        1px solid rgba(255,255,255,.12);
    color:#9eb1c1;
    font-size:8.5px;
}


/* =====================================================
   RESPONSIVE — TABLET
===================================================== */

@media(max-width:950px){

    .nav{
        width:94%;
        height:70px;
    }

    .menu{
        display:none;
    }

    .brandLogoBox{
        width:52px;
        height:52px;
        flex-basis:52px;
    }

    .brandLogo{
        width:45px;
        height:45px;
    }

    .brandText strong{
        font-size:14px;
    }

    .brandText span{
        font-size:9px;
    }

    .quickFeatures{
        padding:15px 2.5%;
    }

    .quickGrid{
        gap:9px;
    }

    .quickItem{
        min-height:108px;
        padding:11px 6px;
        border-radius:14px;
    }

    .quickIcon{
        width:44px;
        height:44px;
        flex-basis:44px;
        margin-bottom:7px;
        font-size:20px;
    }

    .quickItem strong{
        font-size:11.5px;
    }

    .quickItem span{
        margin-top:4px;
        font-size:8px;
    }

    .trustInner{
        width:100%;
    }

    .trustItem{
        min-height:65px;
        padding:8px 6px;
    }

    .aboutSection{
        padding:15px 0;
    }

    .aboutBox{
        width:94%;
        grid-template-columns:
            135px minmax(0,1fr);
        gap:14px;
        padding:12px 14px;
    }

    .aboutBrand{
        min-height:108px;
        padding:8px;
    }

    .aboutLogo{
        width:58px;
        height:58px;
    }

    .aboutBrand strong{
        margin-top:5px;
        font-size:8.5px;
    }

    .aboutBrand span{
        font-size:5px;
    }

    .aboutContent h2{
        font-size:18px;
    }

    .aboutLead{
        margin-top:4px;
        font-size:9px;
        line-height:1.5;
    }

    .aboutPoints{
        margin-top:6px;
    }

    .aboutPoint{
        padding:3px 6px;
        font-size:6px;
    }

    .aboutBtn{
        min-height:28px;
        margin-top:7px;
        font-size:7px;
    }

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

    .learningGrid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
        gap:11px;
    }

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

    .contactBox{
        width:94%;
        grid-template-columns:
            .65fr minmax(0,1.8fr);
        gap:15px;
    }
}


/* =====================================================
   RESPONSIVE — MOBILE
===================================================== */

@media(max-width:650px){

    .nav{
        width:95%;
        height:65px;
        gap:5px;
    }

    .brand{
        gap:6px;
        padding:2px;
    }

    .brandLogoBox{
        width:45px;
        height:45px;
        flex-basis:45px;
        border-radius:12px;
    }

    .brandLogo{
        width:39px;
        height:39px;
    }

    .brandText strong{
        font-size:10.5px;
        white-space:nowrap;
    }

    .brandText span{
        font-size:6.8px;
    }

    .loginBtn{
        min-height:33px;
        padding:6px 9px;
        font-size:8.5px;
    }

    .adminBtn{
        min-height:31px;
        padding:6px;
        font-size:7.5px;
    }

    .heroStartLink{
        left:2%;
        top:73.5%;
        width:18%;
        height:17%;
    }

    .heroCourseLink{
        left:20%;
        top:73.5%;
        width:20%;
        height:17%;
    }

    /* QUICK ACCESS — 2 + 2 + 1 */

    .quickFeatures{
        padding:14px 12px 16px;
        background:
            linear-gradient(
                145deg,
                #e6f1f8 0%,
                #f6fafc 50%,
                #e9f3f9 100%
            );
    }

    .quickGrid{
        width:100%;
        grid-template-columns:
            repeat(2,minmax(0,1fr));
        gap:10px;
    }

    .quickItem{
        min-height:100px;
        padding:10px 7px;
        border-radius:14px;
        border:1px solid #d6e3eb;
        box-shadow:
            0 5px 14px rgba(18,57,95,.09);
    }

    .quickItem:nth-child(5){
        grid-column:1 / -1;
        min-height:88px;
    }

    .quickIcon{
        width:42px;
        height:42px;
        flex-basis:42px;
        margin-bottom:7px;
        font-size:19px;
    }

    .quickItem strong{
        font-size:10.5px;
        line-height:1.2;
    }

    .quickItem span{
        display:block;
        margin-top:4px;
        color:#718290;
        font-size:7.7px;
        line-height:1.25;
    }

    .trustInner{
        grid-template-columns:
            repeat(4,minmax(0,1fr));
    }

    .trustItem{
        min-height:55px;
        flex-direction:column;
        gap:3px;
        padding:6px 2px;
        text-align:center;
    }

    .trustIcon{
        width:24px;
        height:24px;
        flex-basis:24px;
        font-size:10px;
    }

    .trustText strong{
        font-size:6.3px;
    }

    .trustText span{
        display:none;
    }

    .aboutSection{
        padding:12px 0;
        scroll-margin-top:72px;
    }

    .aboutBox{
        width:94%;
        grid-template-columns:
            72px minmax(0,1fr);
        gap:9px;
        padding:9px;
        border-radius:12px;
    }

    .aboutBrand{
        min-height:94px;
        padding:6px;
        border-radius:10px;
    }

    .aboutLogo{
        width:46px;
        height:46px;
        padding:3px;
        border-radius:12px;
    }

    .aboutBrand strong{
        margin-top:4px;
        font-size:6.4px;
        line-height:1.2;
    }

    .aboutBrand span{
        margin-top:2px;
        font-size:3.9px;
    }

    .aboutContent .sectionLabel{
        margin-bottom:2px;
        font-size:5.5px;
        letter-spacing:.8px;
    }

    .aboutContent h2{
        font-size:13.5px;
        line-height:1.15;
    }

    .aboutLead{
        margin-top:4px;
        font-size:6.8px;
        line-height:1.45;
    }

    .aboutPoints{
        gap:3px;
        margin-top:5px;
    }

    .aboutPoint{
        gap:2px;
        padding:3px 4px;
        font-size:4.7px;
    }

    .aboutBtn{
        min-height:25px;
        margin-top:6px;
        padding:4px 7px;
        border-radius:7px;
        font-size:5.8px;
    }

    .aboutMore{
        margin-top:5px;
        padding-top:5px;
        font-size:6.2px;
        line-height:1.45;
    }

    .examSection{
        padding:25px 0 28px;
        scroll-margin-top:72px;
    }

    .sectionInner{
        width:94%;
    }

    .sectionTop{
        display:block;
        margin-bottom:15px;
    }

    .sectionTop h2{
        font-size:23px;
    }

    .sectionTop p{
        font-size:8px;
    }

    .viewAll{
        min-height:30px;
        margin-top:8px;
        padding:6px 8px;
        font-size:7px;
    }

    .examGrid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
        gap:9px;
    }

    .examCard{
        min-height:165px;
        padding:11px 9px;
        border-radius:12px;
    }

    .examBadge{
        width:33px;
        height:33px;
        flex-basis:33px;
        font-size:6.5px;
    }

    .examStatus{
        min-height:19px;
        padding:3px 5px;
        font-size:4.5px;
    }

    .examCard h3{
        font-size:10.5px;
    }

    .examCard > p{
        font-size:6.7px;
    }

    .examMeta span{
        font-size:4.6px;
    }

    .examAction{
        font-size:6.2px;
    }

    .dailyLearning{
        padding:21px 0 24px;
        scroll-margin-top:72px;
    }

    .dailyLearningTop{
        margin-bottom:13px;
    }

    .dailyLearningTop .sectionLabel{
        font-size:6px;
    }

    .dailyLearningTop h2{
        font-size:19px;
    }

    .dailyLearningTop p{
        font-size:7px;
    }

    .learningGrid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
        gap:8px;
    }

    .learningCard{
        min-height:132px;
        padding:10px 9px;
        border-radius:11px;
    }

    .learningTopRow{
        gap:5px;
    }

    .learningIcon{
        width:32px;
        height:32px;
        flex-basis:32px;
        border-radius:9px;
        font-size:14px;
    }

    .learningStatus{
        min-height:18px;
        padding:3px 5px;
        font-size:4.3px;
    }

    .learningCard h3{
        margin-top:7px;
        font-size:9.5px;
    }

    .learningCard p{
        margin-top:3px;
        font-size:6.2px;
        line-height:1.35;
    }

    .learningAction{
        padding-top:7px;
        font-size:5.8px;
    }

    .learningArrow{
        width:19px;
        height:19px;
        flex-basis:19px;
        font-size:8px;
    }

    .howSection{
        padding:17px 0 19px;
    }

    .howTitle{
        font-size:18px;
    }

    .howText{
        font-size:7.5px;
    }

    .stepsGrid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
        gap:9px 7px;
        margin-top:10px;
    }

    .stepNo{
        width:24px;
        height:24px;
        flex-basis:24px;
        font-size:7.5px;
    }

    .step h3{
        font-size:8.5px;
    }

    .step p{
        font-size:6.7px;
    }

    .spotlightSection{
        padding:22px 0 24px;
    }

    .spotlightHeader{
        margin-bottom:13px;
    }

    .spotlightHeader h2{
        font-size:20px;
    }

    .spotlightHeader p{
        font-size:7px;
    }

    .spotlightTrack{
        gap:19px;
    }

    .studentCard{
        width:106px;
        flex-basis:106px;
    }

    .studentPhotoWrap{
        width:78px;
        height:78px;
        border-width:3px;
    }

    .studentInfo h3{
        font-size:9.5px;
    }

    .studentInfo p{
        font-size:6.5px;
    }

    .contactSection{
        padding:18px 0 20px;
        scroll-margin-top:72px;
    }

    .contactBox{
        width:94%;
        display:block;
        padding:12px;
    }

    .contactIntro{
        text-align:center;
    }

    .contactIntro .sectionLabel{
        font-size:6px;
    }

    .contactIntro h2{
        font-size:17px;
    }

    .contactIntro p{
        max-width:100%;
        margin:4px auto 0;
        font-size:6.7px;
    }

    .contactActions{
        margin-top:10px;
        grid-template-columns:
            repeat(3,minmax(0,1fr));
        gap:6px;
    }

    .contactAction{
        min-height:72px;
        flex-direction:column;
        justify-content:center;
        gap:4px;
        padding:6px 3px;
        text-align:center;
    }

    .contactActionIcon{
        width:29px;
        height:29px;
        flex-basis:29px;
        font-size:12px;
    }

    .contactAction strong{
        font-size:7px;
    }

    .contactAction span:not(.contactActionIcon){
        display:none;
    }

    .ctaInner{
        flex-direction:column;
        gap:11px;
        padding:18px 0;
        text-align:center;
    }

    .cta h2{
        font-size:16px;
    }

    .cta p{
        font-size:8.5px;
    }

    .footerInner{
        flex-direction:column;
        padding:18px 0;
        text-align:center;
    }

    .footerLinks{
        justify-content:center;
    }
}


/* =====================================================
   RESPONSIVE — SMALL MOBILE
===================================================== */

@media(max-width:390px){

    .brandLogoBox{
        width:42px;
        height:42px;
        flex-basis:42px;
    }

    .brandLogo{
        width:36px;
        height:36px;
    }

    .brandText strong{
        font-size:9.5px;
    }

    .brandText span{
        display:none;
    }

    .loginBtn{
        padding:5px 7px;
        font-size:8px;
    }

    .quickFeatures{
        padding:12px 9px 14px;
    }

    .quickGrid{
        gap:8px;
    }

    .quickItem{
        min-height:96px;
        padding:9px 5px;
    }

    .quickItem:nth-child(5){
        min-height:84px;
    }

    .quickIcon{
        width:39px;
        height:39px;
        flex-basis:39px;
        font-size:17px;
    }

    .quickItem strong{
        font-size:9.5px;
    }

    .quickItem span{
        font-size:7px;
    }
}