/* ===============================
   NAVBAR
================================= */

header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    z-index:999;

    background:transparent;

    transition:all .35s ease;

}

header.scrolled{

    background:transparent;

    -webkit-backdrop-filter:none;

    backdrop-filter:none;

    box-shadow:none;

}



/* ===============================
   NAV CONTAINER
================================= */

.nav-container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:120px;

}



/* ===============================
   LOGO
================================= */

.logo{

    height:120px;

    width:auto;

    object-fit:contain;

    transition:.35s ease;

}


.logo:hover{

    transform:scale(1.03);

}



/* ketika scroll */

header.scrolled .logo{

    height:95px;

}



/* ===============================
   MENU
================================= */

.nav-menu{

    display:flex;

    align-items:center;

    gap:45px;

    padding:16px 35px;

    border-radius:999px;

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

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

    backdrop-filter:blur(18px);

    transition:.35s ease;

}



.nav-menu a{

    position:relative;

    display:inline-block;

    text-decoration:none;

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

    font-size:16px;

    font-weight:600;

    transition:.3s;

}


.nav-menu a:hover{

    color:#fff;

}



/* underline */

.nav-menu a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    background:#18BFFF;

    transition:.3s;

}


.nav-menu a:hover::after{

    width:100%;

}



.nav-menu a.active{

    color:#fff;

    font-weight:700;

}


.nav-menu a.active::after{

    width:100%;

}



/* ===============================
   BUTTON
================================= */

.nav-btn{

    display:flex;

    align-items:center;

    gap:12px;

    padding:10px 26px;

    border-radius:999px;

    background:#fff;

    color:#111;

    font-weight:600;

    transition:.3s ease;

}


.nav-btn:hover{

    transform:translateY(-2px);

    background:#E8F8FF;

    box-shadow:0 12px 30px rgba(24,191,255,.25);

}


.nav-btn svg{

    transition:.3s;

}


.nav-btn:hover svg{

    transform:translateX(4px);

}



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

.service-dropdown{

    position:relative;

}



.service-menu{

    position:absolute;

    top:45px;

    left:180%;

    transform:translateX(-50%) translateY(12px);

    min-width:250px;

    padding:10px;

    border-radius:18px;

    background:#232832;

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

    backdrop-filter:blur(20px);

    opacity:0;

    visibility:hidden;

    transition:.3s ease;

    box-shadow:0 20px 40px rgba(0,0,0,.25);

}


.service-dropdown:hover .service-menu{

    opacity:1;

    visibility:visible;

    transform:translateX(-50%) translateY(0);

}


.service-menu a{

    display:block;

    padding:12px 18px;

    border-radius:12px;

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

    text-decoration:none;

    font-size:15px;

}


.service-menu a:hover{

    background:rgba(24,191,255,.12);

    color:#18BFFF;

}


.service-menu a::after{

    display:none;

}



/* ===============================
   HAMBURGER
================================= */

.menu-toggle{

    display:none;

    width:48px;

    height:48px;

    border:none;

    background:transparent;

    cursor:pointer;

    padding:0;

    z-index:1001;

}


.menu-toggle span{

    display:block;

    width:28px;

    height:2px;

    margin:6px auto;

    border-radius:999px;

    background:#fff;

    transition:.35s ease;

}


/* ketika aktif */

.menu-toggle.active span:nth-child(1){

    transform:translateY(8px) rotate(45deg);

}


.menu-toggle.active span:nth-child(2){

    opacity:0;

}


.menu-toggle.active span:nth-child(3){

    transform:translateY(-8px) rotate(-45deg);

}



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

.mobile-menu{

    display:none;

}


.mobile-service-menu{

    display:none;

}

body.menu-open{

    overflow:hidden;

}



/* ===============================
   TABLET
================================= */

@media(max-width:1024px){

    .nav-container{

        height:100px;

    }

    .logo{

        height:100px;

    }

    header.scrolled .logo{

        height:82px;

    }

    .nav-menu{

        gap:28px;

        padding:14px 24px;

    }

    .nav-menu a{

        font-size:15px;

    }

    .nav-btn{

        padding:10px 20px;

        font-size:15px;

    }

}



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


@media(max-width:768px){

header{

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

    -webkit-backdrop-filter:blur(15px);

    backdrop-filter:blur(15px);

}

header.scrolled{

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

    -webkit-backdrop-filter:blur(15px);

    backdrop-filter:blur(15px);

    box-shadow:none;

}

.nav-container{

    height:80px;

    padding:0 20px;

}

.logo{

    height:58px;

}

.nav-menu{

    display:none;

}

.nav-btn{

    display:none;

}

.menu-toggle{

    display:block;

}


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

.mobile-menu{

    position:fixed;

    top:80px;

    left:0;

    width:100%;

    background:#151515;

    padding:30px;

    display:flex;

    flex-direction:column;

    gap:8px;

    opacity:0;

    visibility:hidden;

    pointer-events:none;

    transform:translateY(-30px);

    transition:.35s ease;

    z-index:998;

}

.mobile-menu.active{

    opacity:1;

    visibility:visible;

    pointer-events:auto;

    transform:translateY(0);

}


.mobile-menu>a{

    color:#fff;

    text-decoration:none;

    font-size:16px;

    font-weight:600;

    padding:16px 0;

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

}


/* Contact */

.mobile-contact{

    display:flex;

    justify-content:center;

    align-items:center;

    margin-top:18px;

    padding:14px;

    border-radius:999px;

    background:#fff;

    color:#000000;

    font-weight:600;

}


/* Service */

.mobile-service-btn{

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    background:none;

    border:none;

    color:#fff;

    padding:16px 0;

    cursor:pointer;

    font-size:16px;

    font-weight:600;

}


.mobile-service-menu{

    display:none;

    padding-left:15px;

}


.mobile-service.active .mobile-service-menu{

    display:block;

}


.mobile-service-menu a{

    display:block;

    padding:10px 0;

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

    text-decoration:none;

}

}


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


@media(max-width:480px){

.nav-container{

    height:70px;

}

.logo{

    height:52px;

}

.mobile-menu{

    top:70px;

    padding:22px;

}

}