/*==================================================
    BCA STUDY HUB
    Premium Bootstrap 5 Theme
    Part 1 - Global + Navbar + Hero
==================================================*/

/* Google Font */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/*==================================
        Root Variables
==================================*/

:root{

    --primary:#7D2A90;
    --primary-dark:#642173;
    --primary-light:#B75BC9;

    --secondary:#F8F4FA;

    --white:#ffffff;
    --black:#111111;

    --text:#555555;

    --border:#ececec;

    --shadow:0 15px 40px rgba(125,42,144,.12);

    --transition:.35s ease;

}

/*==================================
        Reset
==================================*/

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

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;

    background:#fafafa;

    color:var(--black);

    overflow-x:hidden;

    line-height:1.7;

}

img{

    max-width:100%;

    display:block;

}

a{

    text-decoration:none;

    transition:var(--transition);

}

ul{

    list-style:none;

    padding:0;

    margin:0;

}

section{

    position:relative;

}

/*==================================
        Scrollbar
==================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#eee;

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:20px;

}

/*==================================
        Selection
==================================*/

::selection{

    background:var(--primary);

    color:#fff;

}

/*==================================
        Navbar
==================================*/

.navbar{

    background:#fff !important;

    transition:.4s;

    box-shadow:0 5px 20px rgba(0,0,0,.04);

    z-index:999;

}

.navbar-brand{

    color:var(--primary)!important;

    font-size:30px;

    font-weight:700;

}

.navbar-brand i{

    color:var(--primary);

}

.navbar-nav .nav-link{

    color:#555;

    font-weight:500;

    margin:0 10px;

    position:relative;

}

.navbar-nav .nav-link:hover{

    color:var(--primary);

}

.navbar-nav .nav-link.active{

    color:var(--primary);

}

/* underline */

.navbar-nav .nav-link::after{

    content:'';

    position:absolute;

    width:0;

    height:2px;

    left:0;

    bottom:-4px;

    background:var(--primary);

    transition:.4s;

}

.navbar-nav .nav-link:hover::after{

    width:100%;

}

.navbar-toggler{

    border:none;

    box-shadow:none!important;

}

/*==================================
        Buttons
==================================*/

.btn-theme{

    background:var(--primary);

    color:#fff;

    border-radius:50px;

    padding:13px 32px;

    font-weight:600;

    transition:.35s;

    border:none;

}

.btn-theme:hover{

    background:var(--primary-dark);

    color:#fff;

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(125,42,144,.30);

}

.btn-outline-light{

    border-radius:50px;

    padding:13px 30px;

}

/*==================================
        Hero Section
==================================*/

.hero-section{

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    background:linear-gradient(135deg,#7D2A90,#5E1C70,#2D1036);

    position:relative;

}

/*==================================
        Floating Circles
==================================*/

.circle{

    position:absolute;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    animation:float 8s infinite ease-in-out;

}

.circle1{

    width:420px;

    height:420px;

    right:-120px;

    top:-80px;

}

.circle2{

    width:250px;

    height:250px;

    left:-80px;

    bottom:80px;

    animation-duration:10s;

}

.circle3{

    width:120px;

    height:120px;

    right:35%;

    bottom:50px;

    animation-duration:7s;

}

@keyframes float{

0%,100%{

transform:translateY(0);

}

50%{

transform:translateY(25px);

}

}

/*==================================
        Hero Badge
==================================*/

.hero-badge{

    display:inline-block;

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

    backdrop-filter:blur(10px);

    color:#fff;

    padding:12px 22px;

    border-radius:50px;

    border:1px solid rgba(255,255,255,.15);

    font-size:15px;

}

/*==================================
        Hero Heading
==================================*/

.hero-section h1{

    color:#fff;

    font-size:65px;

    font-weight:800;

    line-height:1.2;

}

.hero-section h1 span{

    color:#FFD166;

}

.hero-section p{

    color:rgba(255,255,255,.88);

    max-width:580px;

    font-size:18px;

}

/*==================================
        Hero Stats
==================================*/

.hero-stats{

    display:flex;

    gap:40px;

}

.hero-stats h3{

    color:#fff;

    font-size:38px;

    font-weight:700;

}

.hero-stats small{

    color:rgba(255,255,255,.8);

}

/*==================================
        Hero Image
==================================*/

.hero-image{

    position:relative;

}

.hero-image img{

    animation:updown 5s infinite ease-in-out;

    filter:drop-shadow(0 30px 60px rgba(0,0,0,.25));

}

@keyframes updown{

0%,100%{

transform:translateY(0);

}

50%{

transform:translateY(-18px);

}

}

/* Glass Effect */

.hero-image::before{

    content:'';

    position:absolute;

    width:420px;

    height:420px;

    background:rgba(255,255,255,.10);

    border-radius:50%;

    backdrop-filter:blur(10px);

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    z-index:-1;

}

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

@media(max-width:991px){

.hero-section{

padding:120px 0 70px;

text-align:center;

}

.hero-section h1{

font-size:48px;

}

.hero-image{

margin-top:60px;

}

.hero-stats{

justify-content:center;

}

}

@media(max-width:768px){

.navbar-brand{

font-size:24px;

}

.hero-section h1{

font-size:36px;

}

.hero-section p{

font-size:16px;

}

.hero-stats{

gap:20px;

}

.hero-stats h3{

font-size:28px;

}

.hero-badge{

font-size:13px;

}

}

@media(max-width:576px){

.hero-stats{

flex-direction:column;

gap:12px;

align-items:center;

}

.btn-theme{

width:100%;

margin-bottom:15px;

}

.btn-outline-light{

width:100%;

}

}
/*==================================================
    PART 2
    Semester Section
==================================================*/

/*==============================
      Semester Section
==============================*/

.semester-section{
    padding:110px 0;
    background:#faf9fc;
    position:relative;
}

.semester-section::before{
    content:'';
    position:absolute;
    width:420px;
    height:420px;
    background:rgba(125,42,144,.05);
    border-radius:50%;
    top:-180px;
    left:-180px;
}

.semester-section::after{
    content:'';
    position:absolute;
    width:350px;
    height:350px;
    background:rgba(125,42,144,.04);
    border-radius:50%;
    bottom:-160px;
    right:-120px;
}

/*==============================
      Section Heading
==============================*/

.section-badge{

    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:10px 22px;

    background:rgba(125,42,144,.08);

    color:var(--primary);

    border-radius:50px;

    font-weight:600;

    font-size:14px;

}

.section-title{

    font-size:46px;

    font-weight:700;

    color:var(--black);

    margin-top:18px;

}

.section-description{

    color:#777;

    max-width:700px;

    margin:auto;

    margin-top:15px;

    font-size:17px;

}

/*==============================
      Semester Link
==============================*/

.semester-link{

    display:block;

    color:inherit;

}

/*==============================
      Semester Card
==============================*/

.semester-card{

    position:relative;

    background:#fff;

    border-radius:24px;

    padding:35px;

    height:100%;

    overflow:hidden;

    transition:.4s;

    border:1px solid rgba(125,42,144,.08);

    box-shadow:0 12px 35px rgba(0,0,0,.06);

}

/* Decorative Circle */

.semester-card::before{

    content:'';

    position:absolute;

    width:180px;

    height:180px;

    border-radius:50%;

    background:rgba(125,42,144,.05);

    top:-80px;

    right:-80px;

    transition:.5s;

}

.semester-card:hover::before{

    transform:scale(2);

}

/* Hover */

.semester-card:hover{

    transform:translateY(-14px);

    border-color:var(--primary);

    box-shadow:0 28px 55px rgba(125,42,144,.20);

}

/*==============================
      Semester Icon
==============================*/

.semester-icon{

    width:75px;

    height:75px;

    background:linear-gradient(135deg,#7D2A90,#A84BC0);

    color:#fff;

    border-radius:18px;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:34px;

    margin-bottom:25px;

    transition:.35s;

}

.semester-card:hover .semester-icon{

    transform:rotate(-8deg) scale(1.1);

}

/*==============================
      Title
==============================*/

.semester-card h4{

    font-size:25px;

    font-weight:700;

    margin-bottom:6px;

}

.semester-card p{

    color:#777;

    margin-bottom:22px;

}

/*==============================
      Subject List
==============================*/

.semester-card ul{

    margin-bottom:28px;

}

.semester-card ul li{

    display:flex;

    align-items:center;

    gap:10px;

    padding:11px 0;

    color:#555;

    border-bottom:1px dashed #ececec;

    transition:.3s;

}

.semester-card ul li:last-child{

    border-bottom:none;

}

.semester-card ul li i{

    color:var(--primary);

    font-size:17px;

}

.semester-card:hover ul li{

    padding-left:8px;

}

/*==============================
      View Button
==============================*/

.semester-btn{

    display:inline-flex;

    align-items:center;

    gap:10px;

    font-weight:600;

    color:var(--primary);

    transition:.35s;

}

.semester-btn i{

    transition:.35s;

}

.semester-card:hover .semester-btn{

    color:var(--primary-dark);

}

.semester-card:hover .semester-btn i{

    transform:translateX(8px);

}

/*==============================
      Card Glow
==============================*/

.semester-card:hover{

    background:linear-gradient(
        to bottom,
        #ffffff,
        #fcf8fd
    );

}

/*==============================
      Floating Animation
==============================*/

@keyframes cardFloat{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-6px);

}

100%{

transform:translateY(0);

}

}

.semester-card{

    animation:cardFloat 6s ease-in-out infinite;

}

/*==============================
      Fade Animation
==============================*/

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(40px);

}

to{

opacity:1;

transform:translateY(0);

}

}

.semester-card{

    animation:
    fadeUp .8s ease,
    cardFloat 6s infinite ease-in-out;

}

/*==============================
      Hover Border
==============================*/

.semester-card::after{

content:'';

position:absolute;

left:0;

bottom:0;

width:0;

height:4px;

background:linear-gradient(90deg,#7D2A90,#B75BC9);

transition:.4s;

}

.semester-card:hover::after{

width:100%;

}

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

@media(max-width:991px){

.section-title{

font-size:38px;

}

.semester-card{

padding:30px;

}

}

@media(max-width:768px){

.section-title{

font-size:32px;

}

.section-description{

font-size:15px;

}

.semester-icon{

width:65px;

height:65px;

font-size:28px;

}

.semester-card h4{

font-size:22px;

}

}

@media(max-width:576px){

.semester-section{

padding:80px 0;

}

.section-title{

font-size:28px;

}

.semester-card{

padding:25px;

}

.semester-btn{

font-size:15px;

}

}
/*==================================================
    PART 3
    Newsletter + Footer + Utilities
==================================================*/

/*==============================
      Newsletter
==============================*/

.footer-newsletter{

    background:linear-gradient(135deg,#7D2A90,#5D1F6B);

    padding:70px 0;

}

.footer-newsletter h2{

    font-size:42px;

    font-weight:700;

}

.footer-newsletter p{

    color:rgba(255,255,255,.85);

}

.newsletter-form .form-control{

    height:60px;

    border:none;

    border-radius:50px 0 0 50px;

    padding-left:25px;

    box-shadow:none;

}

.newsletter-form .form-control:focus{

    box-shadow:none;

}

.newsletter-form .btn{

    background:#fff;

    color:var(--primary);

    font-weight:600;

    padding:0 30px;

    border-radius:0 50px 50px 0;

    transition:.35s;

}

.newsletter-form .btn:hover{

    background:#f3f3f3;

}

/*==============================
      Footer
==============================*/

.footer{

    background:#18121d;

    color:#ddd;

}

.footer-logo{

    color:#fff;

    font-weight:700;

    margin-bottom:20px;

}

.footer-logo i{

    color:var(--primary-light);

}

.footer-text{

    color:#bdbdbd;

    line-height:1.9;

}

.footer h5{

    color:#fff;

    margin-bottom:25px;

    font-weight:600;

}

/*==============================
      Footer Links
==============================*/

.footer-links li{

    margin-bottom:15px;

}

.footer-links a{

    color:#bdbdbd;

    transition:.35s;

}

.footer-links a:hover{

    color:#fff;

    padding-left:8px;

}

/*==============================
      Contact
==============================*/

.footer-contact li{

    display:flex;

    align-items:flex-start;

    gap:12px;

    margin-bottom:18px;

    color:#bdbdbd;

}

.footer-contact i{

    color:var(--primary-light);

    font-size:18px;

}

/*==============================
      Social Icons
==============================*/

.social-icons{

    display:flex;

    gap:12px;

    margin-top:30px;

}

.social-icons a{

    width:46px;

    height:46px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.08);

    color:#fff;

    font-size:18px;

    transition:.35s;

}

.social-icons a:hover{

    background:var(--primary);

    transform:translateY(-6px);

}

/*==============================
      Copyright
==============================*/

.copyright{

    border-top:1px solid rgba(255,255,255,.08);

    padding:22px 0;

    color:#bdbdbd;

    font-size:15px;

}

.copyright strong{

    color:#fff;

}

/*==============================
      Back To Top
==============================*/

.back-to-top{

    position:fixed;

    right:25px;

    bottom:25px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    font-size:22px;

    cursor:pointer;

    box-shadow:0 15px 35px rgba(125,42,144,.35);

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:999;

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

}

.back-to-top:hover{

    transform:translateY(-6px);

    background:var(--primary-dark);

}

/*==============================
      Utilities
==============================*/

.shadow-box{

    box-shadow:var(--shadow);

}

.rounded-xl{

    border-radius:25px;

}

.bg-primary-soft{

    background:rgba(125,42,144,.08);

}

.text-primary{

    color:var(--primary)!important;

}

.border-primary{

    border-color:var(--primary)!important;

}

/*==============================
      Smooth Fade
==============================*/

.fade-in{

    animation:fadeIn .8s ease;

}

@keyframes fadeIn{

from{

opacity:0;

transform:translateY(20px);

}

to{

opacity:1;

transform:translateY(0);

}

}

/*==============================
      Image Hover
==============================*/

.img-hover{

    overflow:hidden;

    border-radius:20px;

}

.img-hover img{

    transition:.5s;

}

.img-hover:hover img{

    transform:scale(1.08);

}

/*==============================
      Card Hover Shadow
==============================*/

.hover-shadow{

    transition:.35s;

}

.hover-shadow:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

/*==============================
      Purple Gradient Text
==============================*/

.gradient-text{

    background:linear-gradient(90deg,#7D2A90,#C06AD7);

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}

/*==============================
      Divider
==============================*/

.divider{

    width:80px;

    height:4px;

    background:var(--primary);

    border-radius:10px;

    margin:20px auto;

}

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

@media(max-width:991px){

.footer-newsletter{

text-align:center;

}

.newsletter-form{

margin-top:30px;

}

.footer{

text-align:center;

}

.social-icons{

justify-content:center;

}

.footer-contact li{

justify-content:center;

}

}

@media(max-width:768px){

.footer-newsletter h2{

font-size:30px;

}

.newsletter-form .form-control{

border-radius:50px;

margin-bottom:15px;

}

.newsletter-form .btn{

width:100%;

border-radius:50px;

height:55px;

}

.input-group{

display:block;

}

.copyright{

text-align:center;

}

}

@media(max-width:576px){

.footer-newsletter{

padding:60px 0;

}

.footer-newsletter h2{

font-size:26px;

}

.footer{

padding-top:20px;

}

.footer-logo{

font-size:28px;

}

.social-icons a{

width:42px;

height:42px;

font-size:16px;

}

.back-to-top{

width:48px;

height:48px;

font-size:18px;

right:15px;

bottom:15px;

}

}
/*==================================================
            MOBILE RESPONSIVE
==================================================*/

/* Large Tablets */
@media (max-width: 992px) {

    .navbar{
        padding:15px 0;
    }

    .navbar-nav{
        margin-top:20px;
        text-align:center;
    }

    .navbar-nav .nav-link{
        margin:12px 0;
    }

    .btn-theme{
        width:100%;
        margin-top:15px;
    }

    .hero-section{
        padding:120px 0 80px;
        min-height:auto;
        text-align:center;
    }

    .hero-section .row{
        flex-direction:column-reverse;
    }

    .hero-image{
        margin-bottom:50px;
    }

    .hero-image img{
        max-width:380px;
        margin:auto;
    }

    .hero-section h1{
        font-size:48px;
    }

    .hero-section p{
        margin:auto;
        margin-top:20px;
    }

    .hero-stats{
        justify-content:center;
        margin-top:40px;
    }

}


/* Tablets */
@media (max-width:768px){

    .container{
        padding-left:20px;
        padding-right:20px;
    }

    .hero-section{

        padding-top:120px;

    }

    .hero-section h1{

        font-size:38px;

    }

    .hero-section p{

        font-size:16px;

    }

    .hero-badge{

        font-size:13px;

    }

    .hero-image img{

        width:85%;

    }

    .hero-stats{

        gap:20px;

        flex-wrap:wrap;

    }

    .hero-stats h3{

        font-size:28px;

    }

    .section-title{

        font-size:32px;

    }

    .section-description{

        font-size:15px;

    }

    .semester-card{

        padding:25px;

    }

    .semester-icon{

        width:65px;

        height:65px;

        font-size:30px;

    }

    .footer-newsletter{

        text-align:center;

    }

    .newsletter-form{

        margin-top:30px;

    }

}


/* Mobile */
@media (max-width:576px){

    body{

        overflow-x:hidden;

    }

    .navbar-brand{

        font-size:22px;

    }

    .navbar-brand i{

        font-size:22px;

    }

    .hero-section{

        padding:100px 0 60px;

    }

    .hero-section h1{

        font-size:30px;

        line-height:1.3;

    }

    .hero-section p{

        font-size:15px;

        margin-top:18px;

    }

    .hero-image{

        margin-bottom:40px;

    }

    .hero-image img{

        width:100%;

        max-width:280px;

    }

    .hero-stats{

        flex-direction:column;

        gap:18px;

        margin-top:35px;

    }

    .hero-stats h3{

        font-size:26px;

    }

    .btn-theme,

    .btn-outline-light{

        width:100%;

        margin-bottom:15px;

    }

    .section-title{

        font-size:28px;

    }

    .section-description{

        font-size:14px;

    }

    .semester-card{

        padding:22px;

    }

    .semester-card h4{

        font-size:22px;

    }

    .semester-card ul li{

        font-size:14px;

    }

    .semester-btn{

        font-size:15px;

    }

    .footer-newsletter{

        padding:50px 0;

    }

    .footer-newsletter h2{

        font-size:28px;

    }

    .newsletter-form .form-control{

        border-radius:50px;

        margin-bottom:15px;

        height:55px;

    }

    .newsletter-form .btn{

        width:100%;

        height:55px;

        border-radius:50px;

    }

    .input-group{

        display:block;

    }

    .footer{

        text-align:center;

    }

    .footer-links{

        margin-bottom:30px;

    }

    .footer-contact li{

        justify-content:center;

    }

    .social-icons{

        justify-content:center;

    }

    .copyright{

        text-align:center;

        font-size:13px;

    }

    .back-to-top{

        width:45px;

        height:45px;

        right:15px;

        bottom:15px;

    }

}


/* Small Mobile */
/* ==========================================
   MOBILE RESPONSIVE FIX
   Add at the END of style.css
========================================== */

html,
body{
    width:100%;
    overflow-x:hidden;
}

/* Images */
img{
    max-width:100%;
    height:auto;
    display:block;
}

/* Hero */
@media (max-width:768px){

    .hero-section{
        min-height:auto;
        padding:100px 0 60px;
        text-align:center;
    }

    .hero-section .row{
        min-height:auto;
    }

    .hero-section h1{
        font-size:2.2rem;
        line-height:1.3;
    }

    .hero-section p{
        font-size:15px;
        max-width:100%;
    }

    .hero-image{
        margin-top:40px;
    }

    .hero-image img{
        max-width:280px;
        margin:auto;
    }

    .hero-buttons{
        display:flex;
        flex-direction:column;
        gap:15px;
    }

    .hero-buttons .btn{
        width:100%;
    }

    .hero-stats{
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:15px;
        margin-top:40px;
        text-align:center;
    }

    .hero-stats h3{
        font-size:24px;
    }

    .hero-stats small{
        font-size:13px;
    }

    /* Hide background circles */

    .circle{
        display:none;
    }

}

/* Navbar */

@media(max-width:991px){

    .navbar-nav{
        text-align:center;
        padding-top:15px;
    }

    .navbar-nav .nav-item{
        margin:8px 0;
    }

    .navbar .btn-theme{
        width:100%;
        margin-top:15px;
    }

}

/* Semester Cards */

@media(max-width:768px){

    .semester-section{
        padding:70px 0;
    }

    .section-title{
        font-size:30px;
    }

    .section-description{
        font-size:15px;
    }

    .semester-card{
        padding:20px;
        border-radius:18px;
    }

    .semester-icon{
        width:60px;
        height:60px;
        font-size:28px;
    }

    .semester-card h4{
        font-size:22px;
    }

    .semester-card ul li{
        font-size:14px;
    }

}

/* Newsletter */

@media(max-width:768px){

    .footer-newsletter{
        text-align:center;
        padding:50px 20px;
    }

    .newsletter-form .input-group{
        display:block;
    }

    .newsletter-form .form-control{
        width:100%;
        border-radius:50px;
        margin-bottom:15px;
    }

    .newsletter-form .btn{
        width:100%;
        border-radius:50px;
    }

}

/* Footer */

@media(max-width:768px){

    .footer{
        text-align:center;
    }

    .footer-links{
        margin-bottom:25px;
    }

    .footer-contact li{
        justify-content:center;
    }

    .social-icons{
        justify-content:center;
        flex-wrap:wrap;
    }

}

/* Small Phones */

@media(max-width:576px){

    .container{
        padding-left:15px;
        padding-right:15px;
    }

    .hero-section h1{
        font-size:1.9rem;
    }

    .hero-section p{
        font-size:14px;
    }

    .hero-stats{
        grid-template-columns:1fr;
    }

    .section-title{
        font-size:26px;
    }

    .navbar-brand{
        font-size:22px;
    }

}

/* Prevent Bootstrap row overflow */

.row{
    margin-left:0;
    margin-right:0;
}

[class*="col-"]{
    padding-left:12px;
    padding-right:12px;
}