/*
==================================================
SAIR MA'ARIF
Landing Page
Traditional Soul, Modern School
==================================================
*/


/*==================================================
RESET
==================================================*/

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

html{
    scroll-behavior:smooth;
}

body{

    font-family:
    "Inter",
    "Poppins",
    Arial,
    sans-serif;

    background:#f8f7f3;

    color:#24352d;

    overflow-x:hidden;

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

.header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:80px;

    padding:0 8%;

    display:flex;

    align-items:center;

    justify-content:space-between;

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

    backdrop-filter:blur(14px);

    border-bottom:1px solid rgba(0,0,0,.06);

    z-index:999;

}

.logo h1{

    font-size:28px;

    color:#355c4b;

}

.logo p{

    margin-top:5px;

    font-size:13px;

    letter-spacing:2px;

    color:#9b7b35;

} 
/*==================================================
OPENING FILM
==================================================*/

.opening-film{

    margin-top:80px;

    width:100%;

    height:calc(100vh - 80px);

    display:grid;

    grid-template-columns:30% 70%;

}
/*==================================================
LEFT PANEL
==================================================*/

.story-left{

    position:relative;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:flex-start;

    padding:70px;

    background:
    linear-gradient(
        135deg,
        #f8f6f1 0%,
        #eef5ef 55%,
        #e8f1eb 100%
    );

    overflow:hidden;

}


/* efek cahaya lembut */

.story-left::before{

    content:"";

    position:absolute;

    width:420px;

    height:420px;

    border-radius:50%;

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

    top:-180px;

    left:-180px;

    filter:blur(60px);

}


/* semua tulisan berada di atas efek */

.story-left>*{

    position:relative;

    z-index:2;

}


/*==================================================
BRAND TITLE
==================================================*/

#brandTitle{

    font-size:30px;

    font-weight:800;

    line-height:1.05;

    color:#355c4b;

    letter-spacing:2px;

}


/*==================================================
SUBTITLE
==================================================*/

#brandSubtitle{

    margin-top:22px;

    font-size:24px;

    font-weight:300;

    line-height:1.35;

    color:#2d4639;

}


/*==================================================
TAGLINE
==================================================*/

#brandTagline{

    margin-top:38px;

    font-size:24px;

    font-weight:600;

    color:#9b7b35;

    letter-spacing:1px;

}


/*==================================================
MOTTO
==================================================*/

#brandMotto{

    margin-top:18px;

    max-width:340px;

    font-size:18px;

    line-height:1.8;

    color:#6c746f;

}
/*==================================================
RIGHT PANEL
==================================================*/

.story-right{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:45px;

    background:#f4f5f2;

    overflow:hidden;

}


/*==================================================
MEDIA FRAME
==================================================*/

.story-right::before{

    content:"";

    position:absolute;

    inset:45px;

    border-radius:35px;

    background:white;

    box-shadow:
    0 30px 80px rgba(0,0,0,.10);

    z-index:1;

}
@media(max-width:900px){

.school-cards{

    overflow-x:auto;

    justify-content:flex-start;

    padding-left:30px;

}


.school-card{

    width:230px;

}

}

/*==================================================
VIDEO
==================================================*/

#film{

    position:relative;

    z-index:2;

    width:100%;

    height:100%;

    max-width:1100px;

    max-height:720px;

    border-radius:35px;

    object-fit:cover;

    transition:
    opacity .8s ease,
    transform 1.2s ease;

}


/*==================================================
JOURNEY IMAGE
==================================================*/

#journeyImage{

    position:absolute;

    inset:45px;

    width:calc(100% - 90px);

    height:calc(100% - 90px);

    object-fit:cover;

    border-radius:35px;

    display:none;

    opacity:0;

    transition:
    opacity .8s ease,
    transform .8s ease;

    z-index:3;

}


/*==================================================
DARK OVERLAY
==================================================*/

.story-right::after{

    content:"";

    position:absolute;

    inset:45px;

    border-radius:35px;

    background:
    linear-gradient(
        180deg,
        rgba(0,0,0,.10),
        rgba(0,0,0,.45)
    );

    pointer-events:none;

    z-index:4;

}
/*==================================================
JOURNEY OVERLAY
==================================================*/

.journey-overlay{

    position:absolute;

    left:45px;

    right:45px;

    bottom:45px;

    padding:55px;

    border-radius:0 0 35px 35px;

    background:
    linear-gradient(
        180deg,
        rgba(0,0,0,0),
        rgba(0,0,0,.78)
    );

    color:white;

    z-index:5;

    opacity:0;

    transform:translateY(40px);

    transition:
    opacity .8s ease,
    transform .8s ease;

}


/* muncul */

.journey-overlay.show{

    opacity:1;

    transform:translateY(0);

}


/*==================================================
TITLE
==================================================*/

#journeyTitle{

    font-size:52px;

    font-weight:700;

    line-height:1.15;

    margin-bottom:18px;

    text-shadow:
    0 8px 20px rgba(0,0,0,.35);

}

.journey-title{

    text-align:center;

    padding:80px 20px 20px;

}


.journey-title h2{

    font-size:40px;

    color:#355c4b;

}


.journey-title p{

    margin-top:15px;

    color:#777;

    font-size:18px;

}
/*==================================================
DESCRIPTION
==================================================*/

#journeyDesc{

    max-width:620px;

    font-size:22px;

    line-height:1.7;

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

}


/*==================================================
LABEL LEMBAGA
==================================================*/

.journey-label{

    display:inline-block;

    margin-bottom:20px;

    padding:8px 18px;

    border-radius:50px;

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

    backdrop-filter:blur(12px);

    font-size:14px;

    letter-spacing:2px;

    text-transform:uppercase;

}
/*==================================================
SCHOOL CARDS
==================================================*/

.school-cards{

    width:100%;

    padding:80px 8% 100px;

    display:flex;
    overflow:hidden;
    justify-content:center;

    align-items:flex-start;

    gap:28px;

    flex-wrap:nowrap;

    background:#f8f7f3;

}

.school-cards::before{

    content:"";

    position:absolute;

    top:50px;

    left:10%;

    right:10%;

    height:1px;

    background:
    rgba(155,123,53,.25);

}
/*==================================================
CARD
==================================================*/
.school-card{

    height:360px;

    display:flex;

    flex-direction:column;

}
.school-card{

    width:240px;

    flex-shrink:0;

    background:white;

    border-radius:28px;

    overflow:hidden;

    cursor:pointer;

    box-shadow:
    0 25px 60px rgba(0,0,0,.12);


    opacity:0;

    transform:
    translateY(-120px)
    scale(.8);


    transition:
    1s cubic-bezier(.2,.8,.2,1);

}
/*==================================================
SAAT MUNCUL
==================================================*/

.school-card.show{

    opacity:1;

    transform:
    translateY(0)
    scale(1);

}

/*==================================================
HOVER
==================================================*/

.school-card:hover img{

    transform:
    scale(1.08);

}


/*==================================================
IMAGE
==================================================*/

.school-card img{

    width:100%;

    height:190px;

    object-fit:cover;

    flex-shrink:0;

}


/*==================================================
BODY
==================================================*/
.card-body{

    padding:22px;

    flex:1;

    display:flex;

    flex-direction:column;

    justify-content:flex-start;

}
.school-card-body{

    padding:22px;

}


.card-body h3{

    font-size:19px;

    line-height:1.35;

    min-height:52px;

    color:#355c4b;

    margin-bottom:10px;

}

.card-body p{

    font-size:14px;

    line-height:1.5;

    color:#777;

}

.school-card-body p{

    font-size:15px;

    line-height:1.6;

    color:#777;

}


/*==================================================
ANIMATION
==================================================*/

@keyframes cardPop{

    from{

        opacity:0;

        transform:
        translateY(80px)
        scale(.7);

    }

    to{

        opacity:1;

        transform:
        translateY(0)
        scale(1);

    }

}
/*
==================================================
JOURNEY ANIMATION
==================================================
*/

#journeyImage{

    filter:
    brightness(.85)
    saturate(1.1);

}

#journeyImage.shrink{

    transform:
    scale(.78)
    translateY(120px);

    opacity:.25;

}

.school-card{

    width:250px;

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

    border-radius:30px;

    overflow:hidden;

    cursor:pointer;

    box-shadow:
    0 20px 50px rgba(0,0,0,.08);

    opacity:0;

    transform:
    translateY(50px)
    scale(.9);

    transition:
    .8s cubic-bezier(.2,.8,.2,1);

    backdrop-filter:blur(15px);

}

.school-card.show{

    opacity:1;

    transform:
    translateY(0)
    scale(1);

}
@media(max-width:900px){


/* ================================
   OPENING MOBILE
================================ */


.opening-film{

    display:flex;

    flex-direction:column;

    height:auto;

}


/* tulisan SAIR */

.story-left{

    order:1;

    width:100%;

    min-height:300px;

    padding:40px 25px;

    justify-content:center;

    align-items:center;

    text-align:center;

}

#brandTagline{

    font-size:20px;

}


#brandMeaning{

    font-size:22px;

}



/* video */

.story-right{

    order:2;

    height:70vh;

    padding:20px;

}



.story-right::before,
.story-right::after{

    inset:20px;

}


#film{

    border-radius:25px;

}



#journeyImage{

    inset:20px;

    width:calc(100% - 40px);

    height:calc(100% - 40px);

    border-radius:25px;

}



/* overlay */

.journey-overlay{

    left:20px;

    right:20px;

    bottom:20px;

    padding:25px;

}



#journeyTitle{

    font-size:30px;

}


#journeyDesc{

    font-size:16px;

}




/* ================================
 CARD MOBILE
================================ */


.school-cards{

    width:100%;

    overflow-x:auto;
    
    justify-content:flex-start;

    flex-wrap:nowrap;

    gap:18px;

    padding:

    50px 25px;

}


.school-card{

    width:260px;

    height:360px;

    flex-shrink:0;

}



}
/*==================================================
SKIP STORY BUTTON
==================================================*/

#skipStory{

    position:absolute;

    bottom:70px;

    right:70px;

    z-index:10;

    padding:12px 24px;

    border-radius:50px;

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

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

    backdrop-filter:blur(10px);

    color:white;

    font-size:14px;

    letter-spacing:1px;

    cursor:pointer;

    transition:.4s;

}


#skipStory:hover{

    background:white;

    color:#355c4b;

    transform:translateY(-3px);

}


@media(max-width:900px){

    #skipStory{

        top:40px;

        right:35px;

        font-size:12px;

        padding:10px 18px;

    }

}
/*
==================================================
SATU YAYASAN, BANYAK LANGKAH
==================================================
*/

.one-foundation{

    padding:90px 8% 100px;

    background:
    linear-gradient(
        180deg,
        #ffffff,
        #faf8f2
    );

}


.foundation-frame{

    max-width:1100px;

    margin:auto;

    padding:70px 80px;

    background:#ffffff;

    border-radius:35px;

    border:
    1px solid rgba(53,92,75,.08);

    box-shadow:
    0 25px 70px rgba(0,0,0,.07);

    position:relative;

    overflow:hidden;

}


/*
------------------------------------------
hiasan lembut
------------------------------------------
*/

.foundation-frame::before{

    content:"";

    position:absolute;

    width:300px;
    height:300px;

    border-radius:50%;

    background:
    radial-gradient(
        circle,
        rgba(220,235,220,.55),
        transparent 70%
    );

    top:-150px;
    left:-100px;

}


.foundation-frame::after{

    content:"";

    position:absolute;

    width:250px;
    height:250px;

    border-radius:50%;

    background:
    radial-gradient(
        circle,
        rgba(155,123,53,.08),
        transparent 70%
    );

    bottom:-130px;
    right:-80px;

}


/*
------------------------------------------
HEADING
------------------------------------------
*/

.foundation-heading{

    position:relative;

    z-index:2;

    max-width:700px;

    margin:auto;

    text-align:center;

}


.foundation-kicker{

    display:inline-block;

    margin-bottom:18px;

    font-size:12px;

    font-weight:600;

    letter-spacing:4px;

    color:#9b7b35;

}


.foundation-heading h2{

    margin:0;

    font-size:46px;

    line-height:1.15;

    font-weight:700;

    color:#355c4b;

}


.foundation-heading p{

    max-width:650px;

    margin:25px auto 0;

    font-size:16px;

    line-height:1.8;

    color:#6d6d6d;

}


/*
------------------------------------------
VALUES
------------------------------------------
*/

.foundation-values{

    position:relative;

    z-index:2;

    margin-top:55px;

    display:grid;

    grid-template-columns:
    repeat(3,1fr);

    gap:25px;

}


.foundation-value{

    padding:30px 25px;

    text-align:center;

    background:#fafbf8;

    border-radius:22px;

    border:
    1px solid rgba(53,92,75,.06);

    transition:.35s;

}


.foundation-value:hover{

    transform:
    translateY(-6px);

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

}


.value-icon{

    font-size:30px;

    margin-bottom:15px;

}


.foundation-value h3{

    margin-bottom:10px;

    font-size:20px;

    color:#355c4b;

}


.foundation-value p{

    font-size:14px;

    line-height:1.7;

    color:#777;

}


/*
------------------------------------------
GARIS
------------------------------------------
*/

.foundation-line{

    position:relative;

    z-index:2;

    width:80px;

    height:2px;

    margin:50px auto 30px;

    background:#9b7b35;

    opacity:.5;

}


/*
------------------------------------------
BOTTOM
------------------------------------------
*/

.foundation-bottom{

    position:relative;

    z-index:2;

    text-align:center;

}


.foundation-bottom p{

    font-size:15px;

    color:#777;

}


.foundation-bottom span{

    display:block;

    margin-top:12px;

    font-size:12px;

    letter-spacing:3px;

    font-weight:600;

    color:#355c4b;

}


/*
==================================================
MOBILE
==================================================
*/

@media(max-width:900px){

    .one-foundation{

        padding:
        60px 20px 70px;

    }


    .foundation-frame{

        padding:
        50px 25px;

        border-radius:28px;

    }


    .foundation-heading h2{

        font-size:36px;

    }


    .foundation-heading p{

        font-size:15px;

    }


    .foundation-values{

        grid-template-columns:1fr;

        gap:15px;

        margin-top:40px;

    }


    .foundation-value{

        padding:25px 20px;

    }

}


/* ==================================================
   MOBILE
================================================== */

@media(max-width:700px){

    .header{

        padding-left:20px;

        padding-right:20px;

    }


    .menu-lembaga{

        position:fixed;

        top:75px;

        right:15px;

        left:15px;

        width:auto;

    }

}
/* ==================================================
   MENU LEMBAGA — SOFT
================================================== */

.lembaga-menu{
    position:relative;
}


/* ==================================================
   TOMBOL "LEMBAGA"
================================================== */

.lembaga-toggle{

    position:relative;

    border:0;

    background:transparent;

    font-family:inherit;

    font-size:15px;

    color:inherit;

    cursor:pointer;

    padding:8px 4px;

    transition:
        color .25s ease,
        transform .25s ease;

}


/* GARIS HALUS DI BAWAH */

.lembaga-toggle::after{

    content:"";

    position:absolute;

    left:0;

    bottom:2px;

    width:0;

    height:1px;

    background:#6f8f76;

    transition:
        width .3s ease;

}


/* HOVER */

.lembaga-toggle:hover{

    color:#55745d;

    transform:translateY(-1px);

}


.lembaga-toggle:hover::after{

    width:100%;

}


/* SAAT MENU TERBUKA */

.lembaga-toggle.active{

    color:#55745d;

}


/* ==================================================
   DROPDOWN
================================================== */

.lembaga-dropdown{

    position:absolute;

    top:calc(100% + 16px);

    right:0;

    width:255px;

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

    border:1px solid rgba(91,115,96,.10);

    border-radius:18px;

    padding:8px;

    box-shadow:
        0 18px 45px
        rgba(55,75,60,.10);

    opacity:0;

    visibility:hidden;

    transform:
        translateY(-8px)
        scale(.98);

    transition:
        opacity .25s ease,
        transform .25s ease,
        visibility .25s ease;

    z-index:1000;

}


/* MENU TERBUKA */

.lembaga-dropdown.show{

    opacity:1;

    visibility:visible;

    transform:
        translateY(0)
        scale(1);

}


/* ==================================================
   NAMA LEMBAGA
================================================== */

.lembaga-dropdown a{

    position:relative;

    display:block;

    padding:12px 15px;

    border-radius:12px;

    text-decoration:none;

    color:#374151;

    font-size:14px;

    transition:
        background .25s ease,
        color .25s ease,
        padding-left .25s ease;

}


/* HOVER NAMA */

.lembaga-dropdown a:hover{

    background:#f4f8f3;

    color:#55745d;

    padding-left:19px;

}


/* GARIS KECIL */

.lembaga-dropdown a::before{

    content:"";

    position:absolute;

    left:8px;

    top:50%;

    width:3px;

    height:3px;

    border-radius:50%;

    background:#8ba58f;

    opacity:0;

    transform:translateY(-50%);

    transition:
        opacity .25s ease,
        transform .25s ease;

}


.lembaga-dropdown a:hover::before{

    opacity:1;

    transform:
        translateY(-50%)
        scale(1.4);

}