/* =====================================================
   SI ASPIRA DESA
   STYLE.CSS
====================================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* =====================================================
ROOT
====================================================== */

:root{

    --biru:#0B2D5C;
    --biru2:#174A8B;

    --hijau:#198754;
    --kuning:#FFC107;

    --putih:#ffffff;

    --abu:#f5f7fa;

    --shadow:0 10px 30px rgba(0,0,0,.12);

    --radius:18px;

}

/* =====================================================
RESET
====================================================== */

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    background:var(--abu);

    color:#333;

    overflow-x:hidden;

}

/* =====================================================
LINK
====================================================== */

a{

    text-decoration:none;

}

img{

    max-width:100%;

}

/* =====================================================
CONTAINER
====================================================== */

.container{

    max-width:1200px;

}

/* =====================================================
SECTION
====================================================== */

section{

    padding:90px 0;

}

/* =====================================================
CARD MODERN
====================================================== */

.card-modern{

    background:white;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    border:none;

    transition:.35s;

}

.card-modern:hover{

    transform:translateY(-8px);

}

/* =====================================================
BUTTON
====================================================== */

.btn{

    border-radius:12px;

    font-weight:600;

    padding:12px 28px;

}

.btn-warning{

    background:var(--kuning);

    border:none;

}

.btn-warning:hover{

    background:#ffca2c;

}

.btn-success{

    background:var(--hijau);

    border:none;

}

.btn-success:hover{

    background:#157347;

}
/* =====================================================
NAVBAR
====================================================== */

.navbar{

    background:var(--biru);

    padding:14px 0;

    box-shadow:0 5px 20px rgba(0,0,0,.18);

}

.navbar-brand{

    display:flex;

    align-items:center;

    gap:15px;

}

.navbar-brand img{

    width:55px;

}

.brand h3{

    color:white;

    font-size:22px;

    margin:0;

    font-weight:700;

}

.brand small{

    color:#dbe8ff;

}

.nav-link{

    color:white !important;

    margin-left:20px;

    font-weight:500;

}

.nav-link:hover{

    color:var(--kuning)!important;

}
/* =====================================================
   HERO PREMIUM
====================================================== */

.hero{

    min-height:100vh;

    position:relative;

    display:flex;

    align-items:center;

    background:
    linear-gradient(
    rgba(8,34,73,.78),
    rgba(8,34,73,.78)
    ),
    url("../foto/hero1.png");

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

    overflow:hidden;

}

/* Overlay */

.hero-overlay{

    width:100%;

    padding-top:120px;

    padding-bottom:90px;

}

/* Badge */

.hero-badge{

    display:inline-block;

    background:rgba(255,255,255,.15);

    color:white;

    padding:10px 22px;

    border-radius:30px;

    font-size:15px;

    margin-bottom:25px;

    backdrop-filter:blur(6px);

}

/* Judul */

.hero-title{

    color:white;

    font-size:64px;

    font-weight:800;

    line-height:1.15;

    margin-bottom:30px;

}

/* Deskripsi */

.hero-text{

    color:white;

    font-size:20px;

    line-height:1.9;

    max-width:620px;

}

/* Tombol */

.hero-button{

    margin-top:40px;

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}

.hero-button .btn{

    min-width:190px;

}

/* Logo */

.hero-logo{

    width:420px;

    max-width:100%;

    animation:floating 5s ease-in-out infinite;

    filter:drop-shadow(0 25px 40px rgba(0,0,0,.35));

}

/* Animasi */

@keyframes floating{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-15px);

    }

    100%{

        transform:translateY(0);

    }

}

/* Gelombang bawah */

.hero::after{

    content:"";

    position:absolute;

    bottom:0;

    left:0;

    width:100%;

    height:120px;

    background:linear-gradient(
    to top,
    #f5f7fa,
    rgba(245,247,250,0)
    );

}

/* Responsive */

@media(max-width:991px){

.hero{

min-height:auto;

text-align:center;

}

.hero-title{

font-size:42px;

}

.hero-text{

font-size:18px;

margin:auto;

}

.hero-button{

justify-content:center;

}

.hero-logo{

margin-top:50px;

width:280px;

}

}
/* =====================================================
   STATISTIK PREMIUM
====================================================== */

.statistik{

    margin-top:-90px;

    position:relative;

    z-index:20;

}

.statistik .card-modern{

    padding:35px 20px;

    text-align:center;

    border-radius:20px;

    transition:.4s;

    background:#ffffff;

    overflow:hidden;

    position:relative;

}

.statistik .card-modern::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:5px;

    background:linear-gradient(
        90deg,
        var(--biru),
        var(--hijau),
        var(--kuning)
    );

}

.statistik .card-modern:hover{

    transform:translateY(-12px);

    box-shadow:0 18px 45px rgba(0,0,0,.18);

}

.statistik i{

    font-size:52px;

    margin-bottom:18px;

}

.statistik h2{

    font-size:42px;

    font-weight:700;

    color:var(--biru);

    margin-bottom:10px;

}

.statistik p{

    font-size:17px;

    color:#666;

    margin:0;

    font-weight:500;

}

/* Efek animasi icon */

.statistik .card-modern:hover i{

    transform:scale(1.12);

    transition:.35s;

}

/* Responsive */

@media(max-width:991px){

.statistik{

margin-top:30px;

}

.statistik .card-modern{

margin-bottom:20px;

}

}
/* =====================================================
SECTION TITLE
====================================================== */

section h2{

    font-weight:700;

    color:var(--biru);

}

section p{

    line-height:1.8;

}
/* =====================================================
   TENTANG SI ASPIRA DESA
====================================================== */

.tentang{

    background:#ffffff;

}

.tentang img{

    border-radius:25px;

    box-shadow:0 20px 45px rgba(0,0,0,.15);

    transition:.4s;

}

.tentang img:hover{

    transform:scale(1.03);

}

.tentang h2{

    font-size:42px;

    font-weight:700;

    color:var(--biru);

    margin-bottom:25px;

}

.tentang p{

    font-size:17px;

    color:#555;

    line-height:1.9;

    text-align:justify;

}

/* =========================================
   CARD KEUNGGULAN
========================================= */

.tentang .card-modern{

    border-radius:18px;

    transition:.35s;

    cursor:pointer;

    height:100%;

}

.tentang .card-modern:hover{

    transform:translateY(-8px);

    box-shadow:0 15px 35px rgba(0,0,0,.15);

}

.tentang .card-modern i{

    font-size:42px;

    margin-bottom:15px;

}

.tentang .card-modern h6{

    font-size:17px;

    font-weight:600;

    margin:0;

}

/* =========================================
   RESPONSIVE
========================================= */

@media(max-width:991px){

.tentang{

text-align:center;

}

.tentang h2{

font-size:34px;

}

.tentang p{

text-align:center;

}

}
/* =====================================================
   LAYANAN SI ASPIRA DESA
====================================================== */

.layanan{

    background:#f8f9fc;

}

.layanan h2{

    font-size:42px;

    font-weight:700;

    color:var(--biru);

}

.layanan p{

    color:#666;

    font-size:17px;

}

/* ==========================================
   CARD LAYANAN
========================================== */

.layanan .card-modern{

    padding:35px 25px;

    border-radius:22px;

    transition:.4s;

    position:relative;

    overflow:hidden;

    cursor:pointer;

    height:100%;

    background:#fff;

}

/* Garis Atas */

.layanan .card-modern::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:6px;

    background:linear-gradient(
        90deg,
        var(--biru),
        var(--hijau),
        var(--kuning)
    );

}

/* Hover */

.layanan .card-modern:hover{

    transform:translateY(-12px);

    box-shadow:0 18px 45px rgba(0,0,0,.18);

}

/* Icon */

.layanan .card-modern i{

    font-size:60px;

    transition:.35s;

}

.layanan .card-modern:hover i{

    transform:rotate(-8deg) scale(1.12);

}

/* Judul */

.layanan .card-modern h5{

    margin-top:25px;

    font-size:22px;

    font-weight:700;

    color:var(--biru);

}

/* Isi */

.layanan .card-modern p{

    margin-top:15px;

    font-size:15px;

    line-height:1.8;

}

/* Efek Background */

.layanan .card-modern::after{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    background:rgba(13,110,253,.05);

    border-radius:50%;

    right:-80px;

    bottom:-80px;

    transition:.4s;

}

.layanan .card-modern:hover::after{

    transform:scale(1.4);

}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:991px){

.layanan{

text-align:center;

}

.layanan h2{

font-size:34px;

}

}
/* =====================================================
   ALUR PENGAJUAN DANA DESA
====================================================== */

.alur{

    background:#ffffff;

    position:relative;

}

.alur h2{

    font-size:42px;

    font-weight:700;

    color:var(--biru);

    margin-bottom:60px;

}

/* ==========================================
   CARD ALUR
========================================== */

.alur .card-modern{

    border-radius:22px;

    padding:35px 25px;

    text-align:center;

    transition:.4s;

    position:relative;

    overflow:hidden;

    cursor:pointer;

    height:100%;

}

/* Garis warna */

.alur .card-modern::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:6px;

    background:linear-gradient(
        90deg,
        var(--biru),
        var(--hijau),
        var(--kuning)
    );

}

/* Hover */

.alur .card-modern:hover{

    transform:translateY(-10px);

    box-shadow:0 18px 45px rgba(0,0,0,.18);

}

/* Nomor */

.alur .display-6{

    width:70px;

    height:70px;

    line-height:70px;

    margin:auto;

    border-radius:50%;

    color:white;

    background:linear-gradient(
        135deg,
        var(--biru),
        var(--biru2)
    );

    font-size:28px;

    font-weight:700;

    margin-bottom:20px;

}

/* Ikon */

.alur i{

    font-size:50px;

    color:var(--hijau);

    margin-bottom:20px;

    transition:.35s;

}

.alur .card-modern:hover i{

    transform:scale(1.15) rotate(-5deg);

}

/* Judul */

.alur h5{

    font-weight:700;

    color:var(--biru);

    margin-top:15px;

}

/* Garis Penghubung Desktop */

@media(min-width:992px){

.alur .col-md-3{

position:relative;

}

.alur .col-md-3:not(:last-child)::after{

content:"";

position:absolute;

top:90px;

right:-20px;

width:40px;

height:4px;

background:linear-gradient(
90deg,
var(--biru),
var(--kuning)
);

border-radius:10px;

}

}

/* Responsive */

@media(max-width:991px){

.alur{

text-align:center;

}

.alur h2{

font-size:34px;

}

.alur .card-modern{

margin-bottom:25px;

}

}
/* =====================================================
   CALL TO ACTION (CTA)
====================================================== */

.cta{

    background:linear-gradient(
        135deg,
        var(--biru),
        var(--biru2),
        var(--hijau)
    );

    color:white;

    position:relative;

    overflow:hidden;

}

.cta::before{

    content:"";

    position:absolute;

    width:350px;

    height:350px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    top:-120px;

    right:-120px;

}

.cta::after{

    content:"";

    position:absolute;

    width:250px;

    height:250px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

    bottom:-100px;

    left:-80px;

}

.cta .card-modern{

    background:transparent;

    border:2px solid rgba(255,255,255,.15);

    box-shadow:none;

    position:relative;

    z-index:2;

}

.cta h2{

    color:white;

    font-size:44px;

    font-weight:700;

}

.cta p{

    color:#f5f5f5;

    font-size:18px;

    line-height:1.9;

    max-width:800px;

    margin:auto;

}

.cta .btn{

    margin-top:15px;

    min-width:220px;

    transition:.35s;

}

.cta .btn-success{

    box-shadow:0 12px 30px rgba(25,135,84,.35);

}

.cta .btn-warning{

    box-shadow:0 12px 30px rgba(255,193,7,.35);

}

.cta .btn:hover{

    transform:translateY(-5px);

}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:991px){

.cta h2{

font-size:34px;

}

.cta p{

font-size:16px;

}

.cta .btn{

width:100%;

margin-bottom:15px;

}

}
/* =====================================================
   FOOTER PREMIUM
====================================================== */

footer{

    background:var(--biru);

    color:#ffffff;

    padding:70px 0 25px;

    position:relative;

    overflow:hidden;

}

/* Garis Atas */

footer::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:5px;

    background:linear-gradient(
        90deg,
        var(--kuning),
        var(--hijau),
        var(--biru2)
    );

}

/* Logo */

.footer-logo{

    width:75px;

    margin-bottom:20px;

}

.footer-title{

    font-size:24px;

    font-weight:700;

    margin-bottom:10px;

}

.footer-desc{

    color:#d7e3f5;

    line-height:1.8;

    font-size:15px;

}

/* Heading */

.footer-heading{

    font-size:20px;

    font-weight:600;

    margin-bottom:20px;

}

/* Menu */

.footer-menu{

    list-style:none;

    padding:0;

    margin:0;

}

.footer-menu li{

    margin-bottom:12px;

}

.footer-menu a{

    color:#d7e3f5;

    text-decoration:none;

    transition:.3s;

}

.footer-menu a:hover{

    color:var(--kuning);

    padding-left:8px;

}

/* Kontak */

.footer-contact{

    list-style:none;

    padding:0;

}

.footer-contact li{

    margin-bottom:14px;

    color:#d7e3f5;

}

.footer-contact i{

    color:var(--kuning);

    width:28px;

    text-align:center;

}

/* Social */

.footer-social{

    margin-top:20px;

}

.footer-social a{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:45px;

    height:45px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    color:white;

    margin-right:10px;

    transition:.35s;

}

.footer-social a:hover{

    background:var(--kuning);

    color:var(--biru);

    transform:translateY(-5px);

}

/* Copyright */

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.15);

    margin-top:50px;

    padding-top:20px;

    text-align:center;

    color:#d7e3f5;

    font-size:15px;

}

/* Responsive */

@media(max-width:991px){

footer{

text-align:center;

}

.footer-social{

margin-bottom:25px;

}

.footer-menu{

margin-bottom:30px;

}

.footer-contact{

margin-bottom:30px;

}

}
/* =====================================================
   ANIMATION
====================================================== */

.fade-up{

    opacity:0;

    transform:translateY(40px);

    transition:all .8s ease;

}

.fade-up.show{

    opacity:1;

    transform:translateY(0);

}

/* =====================================================
   SCROLLBAR
====================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#eef2f7;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(
    var(--biru),
    var(--hijau)
    );

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--biru2);

}

/* =====================================================
   BACK TO TOP
====================================================== */

#backToTop{

    position:fixed;

    right:25px;

    bottom:25px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:var(--biru);

    color:white;

    font-size:22px;

    cursor:pointer;

    display:none;

    z-index:999;

    box-shadow:0 10px 25px rgba(0,0,0,.25);

    transition:.3s;

}

#backToTop:hover{

    background:var(--kuning);

    color:black;

    transform:translateY(-6px);

}

/* =====================================================
   GLOBAL HOVER
====================================================== */

img{

    transition:.4s;

}

img:hover{

    transform:scale(1.02);

}

.btn{

    transition:.3s;

}

.btn:hover{

    transform:translateY(-3px);

}

/* =====================================================
   SELECTION
====================================================== */

::selection{

    background:var(--kuning);

    color:black;

}

/* =====================================================
   RESPONSIVE
====================================================== */

@media(max-width:1200px){

.hero-title{

font-size:56px;

}

}

@media(max-width:992px){

section{

padding:70px 0;

}

.hero{

text-align:center;

}

.hero-title{

font-size:42px;

}

.hero-text{

font-size:18px;

}

.hero-button{

justify-content:center;

}

.hero-logo{

margin-top:40px;

width:280px;

}

}

@media(max-width:768px){

.hero-title{

font-size:34px;

}

.hero-text{

font-size:16px;

}

.card-modern{

margin-bottom:20px;

}

}

@media(max-width:576px){

.hero-title{

font-size:28px;

}

.hero-button .btn{

width:100%;

}

.footer-title{

font-size:22px;

}

}
/* =====================================================
   LOGIN PAGE
====================================================== */

.login-page{

    background:url("../foto/hero.png") center center;

    background-size:cover;

    background-repeat:no-repeat;

    min-height:100vh;

    overflow:hidden;

}

/* Overlay */

.login-overlay{

    min-height:100vh;

    background:linear-gradient(
    rgba(11,45,92,.82),
    rgba(25,135,84,.65)
    );

    display:flex;

    align-items:center;

}

/* ==========================================
   LOGIN CARD
========================================== */

.login-card{

    background:rgba(255,255,255,.15);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border-radius:25px;

    padding:45px;

    border:1px solid rgba(255,255,255,.25);

    box-shadow:0 25px 60px rgba(0,0,0,.35);

}

/* ==========================================
   LOGO
========================================== */

.login-logo{

    width:120px;

    animation:floatLogo 4s ease-in-out infinite;

    margin-bottom:15px;

}

@keyframes floatLogo{

0%{

transform:translateY(0px);

}

50%{

transform:translateY(-10px);

}

100%{

transform:translateY(0px);

}

}

/* ==========================================
   TITLE
========================================== */

.login-card h2{

    color:white;

    font-weight:700;

    margin-bottom:10px;

}

.login-card p{

    color:#f5f5f5;

}

/* ==========================================
   LABEL
========================================== */

.login-card label{

    color:white;

    font-weight:600;

    margin-bottom:8px;

}

/* ==========================================
   INPUT
========================================== */

.login-card .form-control{

    border:none;

    height:52px;

    border-radius:12px;

    background:rgba(255,255,255,.95);

}

.login-card .input-group-text{

    background:rgba(255,255,255,.95);

    border:none;

}

/* ==========================================
   BUTTON LOGIN
========================================== */

.login-card .btn-success{

    height:55px;

    font-size:18px;

    font-weight:700;

    border-radius:14px;

    transition:.35s;

}

.login-card .btn-success:hover{

    transform:translateY(-4px);

}

/* ==========================================
   BUTTON HOME
========================================== */

.login-card .btn-outline-primary{

    border:2px solid white;

    color:white;

    border-radius:14px;

    font-weight:600;

}

.login-card .btn-outline-primary:hover{

    background:white;

    color:var(--biru);

}

/* ==========================================
   LINK
========================================== */

.login-card a{

    text-decoration:none;

}

/* ==========================================
   COPYRIGHT
========================================== */

.login-card hr{

    border-color:rgba(255,255,255,.25);

}

.login-card .text-muted{

    color:white !important;

}

.login-card .text-secondary{

    color:#e6e6e6 !important;

}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:768px){

.login-card{

padding:30px;

}

.login-logo{

width:90px;

}

.login-card h2{

font-size:28px;

}

}
/* =====================================================
   DASHBOARD OPERATOR
====================================================== */

.operator-page{

    background:#f4f7fb;

    font-family:'Poppins',sans-serif;

}

.wrapper{

    display:flex;

    min-height:100vh;

}

/* ==========================
   SIDEBAR
========================== */

.sidebar{

    width:280px;

    background:linear-gradient(180deg,#0B2D5C,#103A75);

    color:#fff;

    position:fixed;

    left:0;

    top:0;

    bottom:0;

    overflow-y:auto;

    box-shadow:8px 0 30px rgba(0,0,0,.15);

    z-index:1000;

    display:flex;

    flex-direction:column;

}

.sidebar-header{

    padding:35px 20px;

    text-align:center;

    border-bottom:1px solid rgba(255,255,255,.12);

}

.sidebar-logo{

    width:90px;

    animation:floatLogo 4s ease-in-out infinite;

}

.sidebar-header h4{

    margin-top:15px;

    font-weight:700;

    color:#fff;

}

.sidebar-header small{

    color:#d9e4f3;

}
/* ==========================
   MENU
========================== */

.sidebar-menu{

    list-style:none;

    padding:25px 0;

    margin:0;

}

.sidebar-menu li{

    margin:8px 15px;

}

.sidebar-menu li a{

    display:flex;

    align-items:center;

    gap:12px;

    padding:14px 18px;

    border-radius:12px;

    color:#dbe8ff;

    text-decoration:none;

    transition:.3s;

    font-weight:500;

}

.sidebar-menu li a i{

    font-size:20px;

    width:25px;

    text-align:center;

}

.sidebar-menu li a:hover{

    background:#198754;

    color:#fff;

    transform:translateX(5px);

}

.sidebar-menu li a.active{

    background:#FFC107;

    color:#0B2D5C;

    font-weight:700;

}
/* ==========================
   SIDEBAR FOOTER
========================== */

.sidebar-footer{

    margin-top:auto;

    padding:20px;

    border-top:1px solid rgba(255,255,255,.12);

}

.sidebar-footer .btn{

    border-radius:12px;

    font-weight:600;

}

.sidebar-footer .user-info{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    margin-bottom:15px;

    color:#fff;

    font-size:15px;

    font-weight:600;

}
/* ==========================
   CONTENT
========================== */

.content{

    flex:1;

    margin-left:280px;

}

.page-title{

    font-size:32px;

    font-weight:700;

    color:#0B2D5C;

    margin-bottom:8px;

}

.page-subtitle{

    color:#6c757d;

    margin-bottom:30px;

}
/* ==========================
   TOPBAR
========================== */

.topbar{

    background:#fff;

    padding:18px 25px;

    border-radius:18px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:30px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.topbar h3{

    margin:0;

    color:#0B2D5C;

    font-weight:700;

}

.topbar small{

    color:#6c757d;

}
/* ==========================
   RESPONSIVE
========================== */

@media(max-width:991px){

.sidebar{

    left:-280px;

    transition:.4s;

}

.sidebar.show{

    left:0;

}

.content{

    margin-left:0;

    padding:20px;

}

.topbar{

    flex-direction:column;

    align-items:flex-start;

    gap:10px;

}

}