/*==================================================
    animation.css
    Landing Page Yayasan Pesantren
==================================================*/

/* ===========================
    Fade Animation
=========================== */

.fade-up{
    animation:fadeUp .8s ease forwards;
}

.fade-down{
    animation:fadeDown .8s ease forwards;
}

.fade-left{
    animation:fadeLeft .8s ease forwards;
}

.fade-right{
    animation:fadeRight .8s ease forwards;
}

.zoom-in{
    animation:zoomIn .7s ease forwards;
}

.zoom-out{
    animation:zoomOut .7s ease forwards;
}

@keyframes fadeUp{

    from{
        opacity:0;
        transform:translateY(40px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

@keyframes fadeDown{

    from{
        opacity:0;
        transform:translateY(-40px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

@keyframes fadeLeft{

    from{
        opacity:0;
        transform:translateX(-40px);
    }

    to{
        opacity:1;
        transform:translateX(0);
    }

}

@keyframes fadeRight{

    from{
        opacity:0;
        transform:translateX(40px);
    }

    to{
        opacity:1;
        transform:translateX(0);
    }

}

@keyframes zoomIn{

    from{
        opacity:0;
        transform:scale(.8);
    }

    to{
        opacity:1;
        transform:scale(1);
    }

}

@keyframes zoomOut{

    from{
        opacity:0;
        transform:scale(1.2);
    }

    to{
        opacity:1;
        transform:scale(1);
    }

}


/* ===========================
    Program Card
=========================== */

.program-card{

    transition:.4s;

    overflow:hidden;

    position:relative;

}

.program-card::before{

    content:"";

    position:absolute;

    width:100%;

    height:5px;

    left:0;

    top:0;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );

    transform:scaleX(0);

    transition:.4s;

}

.program-card:hover::before{

    transform:scaleX(1);

}

.program-card:hover{

    transform:translateY(-12px);

    box-shadow:0 20px 45px rgba(0,0,0,.15);

}

.program-card:hover .icon-circle{

    transform:rotate(8deg) scale(1.08);

}


/* ===========================
    Icon Circle
=========================== */

.icon-circle{

    transition:.35s;

}


/* ===========================
    Hero Button
=========================== */

.hero .btn{

    transition:.35s;

}

.hero .btn:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 25px rgba(0,0,0,.25);

}


/* ===========================
    Image Hover
=========================== */

img{

    transition:.4s;

}

.gallery-item{

    overflow:hidden;

    border-radius:16px;

}

.gallery-item img:hover{

    transform:scale(1.08);

}


/* ===========================
    News Card
=========================== */

.news-card{

    border-radius:18px;

    overflow:hidden;

    transition:.35s;

    background:#fff;

}

.news-card:hover{

    transform:translateY(-10px);

    box-shadow:0 18px 40px rgba(0,0,0,.15);

}

.news-card img{

    transition:.45s;

}

.news-card:hover img{

    transform:scale(1.08);

}


/* ===========================
    Founder Image
=========================== */

#founder img{

    transition:.45s;

}

#founder img:hover{

    transform:scale(1.03);

}


/* ===========================
    Timeline
=========================== */

.timeline-item{

    position:relative;

    padding-left:50px;

    margin-bottom:45px;

}

.timeline-item::before{

    content:"";

    position:absolute;

    left:12px;

    top:0;

    width:3px;

    height:100%;

    background:var(--secondary);

}

.timeline-item::after{

    content:"";

    position:absolute;

    left:2px;

    top:0;

    width:22px;

    height:22px;

    border-radius:50%;

    background:var(--primary);

    border:5px solid white;

}


/* ===========================
    Floating WhatsApp
=========================== */

.wa-float{

    transition:.35s;

}

.wa-float:hover{

    transform:scale(1.12);

}


/* ===========================
    Navbar Link
=========================== */

.nav-link{

    position:relative;

}

.nav-link::after{

    content:"";

    position:absolute;

    width:0;

    height:2px;

    left:0;

    bottom:-3px;

    background:var(--accent);

    transition:.3s;

}

.nav-link:hover::after{

    width:100%;

}


/* ===========================
    PPDB Banner
=========================== */

.ppdb-banner{

    position:relative;

    overflow:hidden;

}

.ppdb-banner::before{

    content:"";

    position:absolute;

    width:250px;

    height:250px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    right:-80px;

    top:-80px;

}

.ppdb-banner::after{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

    left:-50px;

    bottom:-50px;

}


/* ===========================
    Section Title
=========================== */

h2{

    position:relative;

    display:inline-block;

}

h2::after{

    content:"";

    width:70px;

    height:4px;

    background:linear-gradient(
        to right,
        var(--primary),
        var(--secondary)
    );

    display:block;

    margin:15px auto 0;

    border-radius:20px;

}


/* ===========================
    Scroll Reveal
=========================== */

.reveal{

    opacity:0;

    transform:translateY(60px);

    transition:all .8s;

}

.reveal.active{

    opacity:1;

    transform:none;

}


/* ===========================
    Back To Top
=========================== */

#backToTop{

    position:fixed;

    right:25px;

    bottom:95px;

    width:55px;

    height:55px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--primary);

    color:white;

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:999;

}

#backToTop.show{

    opacity:1;

    visibility:visible;

}

#backToTop:hover{

    transform:translateY(-5px);

}


/* ===========================
    Smooth Hover
=========================== */

.card,
.btn,
img,
.program-card,
.news-card{

    transition:all .35s ease;

}


/* ===========================
    Gradient Text
=========================== */

.gradient-text{

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}


/* ===========================
    Divider
=========================== */

.wave-divider{

    line-height:0;

}

.wave-divider svg{

    display:block;

    width:100%;

    height:80px;

}


/* ===========================
    Hero Scroll Indicator
=========================== */

.scroll-indicator{

    position:absolute;

    bottom:30px;

    left:50%;

    transform:translateX(-50%);

    animation:bounce 2s infinite;

}

@keyframes bounce{

    0%{

        transform:translate(-50%,0);

    }

    50%{

        transform:translate(-50%,10px);

    }

    100%{

        transform:translate(-50%,0);

    }

}

/*=========================================
    LIGHTBOX
=========================================*/

#lightbox{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.92);

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:99999;

}

#lightbox.show{

    opacity:1;

    visibility:visible;

}

#lightbox img{

    max-width:90%;

    max-height:85vh;

    border-radius:12px;

    box-shadow:0 20px 40px rgba(0,0,0,.5);

}

#close-lightbox{

    position:absolute;

    top:25px;

    right:35px;

    font-size:45px;

    color:white;

    cursor:pointer;

}

#next-image,
#prev-image{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    color:white;

    font-size:55px;

    cursor:pointer;

    user-select:none;

    transition:.3s;

}

#next-image{

    right:30px;

}

#prev-image{

    left:30px;

}

#next-image:hover,
#prev-image:hover{

    color:#D4AF37;

}