/* ==========================================================
   UPSCHOL v1.0
   Global Responsive Styles
========================================================== */

/* ==========================================================
   Large Desktop
========================================================== */

@media (max-width:1400px){

    :root{

        --container:1200px;

    }

}

/* ==========================================================
   Laptop
========================================================== */

@media (max-width:1200px){

    :root{

        --container:1100px;

    }

    .container{

        width:min(var(--container),94%);

    }

}

/* ==========================================================
   Tablet Landscape
========================================================== */

@media (max-width:992px){

    :root{

        --section-space:80px;

    }

    h1{

        font-size:3rem;

    }

    h2{

        font-size:2rem;

    }

    .btn-primary,
    .btn-outline{

        height:48px;

        padding:0 22px;

        font-size:14px;

    }

}

/* ==========================================================
   Tablet
========================================================== */

@media (max-width:768px){

    :root{

        --section-space:70px;

    }

    .container{

        width:92%;

    }

    h1{

        font-size:2.5rem;

        line-height:1.15;

    }

    h2{

        font-size:1.8rem;

    }

    h3{

        font-size:1.2rem;

    }

    p{

        font-size:15px;

    }

    .section-title{

        flex-direction:column;

        align-items:flex-start;

        gap:16px;

    }

    .section-title h2{

        font-size:30px;

    }

    .card{

        padding:22px;

    }

}

/* ==========================================================
   Mobile
========================================================== */

@media (max-width:576px){

    :root{

        --section-space:60px;

    }

    .container{

        width:94%;

    }

    h1{

        font-size:2.1rem;

    }

    h2{

        font-size:1.6rem;

    }

    h3{

        font-size:1.1rem;

    }

    .btn-primary,
    .btn-outline{

        width:100%;

        justify-content:center;

    }

    .badge{

        font-size:12px;

        padding:7px 12px;

    }

    .icon-circle{

        width:48px;

        height:48px;

        font-size:20px;

    }

    .modal-card{

        padding:24px;

        border-radius:20px;

    }

    /* The access-model explainer is useful on larger screens but adds
       unnecessary vertical scrolling and confusion on phones. */
    .hero-panel{

        display:none !important;

    }

}

/* ==========================================================
   Small Mobile
========================================================== */

@media (max-width:400px){

    h1{

        font-size:1.8rem;

    }

    h2{

        font-size:1.4rem;

    }

    body{

        font-size:14px;

    }

    .container{

        width:95%;

    }

}
/* ==========================================================
   MOBILE NAVIGATION
========================================================== */

.mobile-actions{

    display:flex;

    align-items:center;

    gap:12px;

}

.mobile-menu-btn{

    display:none;

    width:48px;

    height:48px;

    border:none;

    border-radius:14px;

    background:#EFF6FF;

    color:var(--primary);

    font-size:24px;

    cursor:pointer;

}

.mobile-menu{

    position:fixed;

    top:0;

    right:-100%;

    width:300px;

    height:100vh;

    background:#fff;

    z-index:9999;

    padding:30px;

    transition:.35s;

    box-shadow:-8px 0 30px rgba(0,0,0,.08);

    display:flex;

    flex-direction:column;

}

.mobile-menu.active{

    right:0;

}

.mobile-menu-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:35px;

}

.mobile-menu-header button{

    background:none;

    border:none;

    font-size:24px;

    cursor:pointer;

}

.mobile-menu nav{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.mobile-menu nav a{

    display:flex;

    align-items:center;

    gap:12px;

    color:var(--text);

    font-weight:600;

}

.mobile-search{

    margin:30px 0;

}

.mobile-search input{

    width:100%;

    height:48px;

    border:1px solid var(--border);

    border-radius:14px;

    padding:0 16px;

}

.mobile-overlay{

    position:fixed;

    inset:0;

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

    display:none;

    z-index:9998;

}

.mobile-overlay.active{

    display:block;

}

@media (max-width:991px){

    .desktop-nav{

        display:none;

    }

    .header-search{

        display:none;

    }

    .desktop-btn{

        display:none;

    }

    .mobile-menu-btn{

        display:flex;

        align-items:center;

        justify-content:center;

    }

}
