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

/* =========================
   ROOT COLOR
   Mengikuti warna logo
========================= */

:root{
    --primary:#081b63;
    --primary-dark:#04103b;
    --secondary:#b30000;
    --secondary-light:#e11d48;

    --white:#ffffff;
    --soft:#f4f7fb;
    --gray:#6b7280;
    --dark:#111827;

    --shadow:
        0 20px 50px rgba(8,27,99,0.12);

    --shadow-hover:
        0 25px 60px rgba(179,0,0,0.18);

    --gradient-blue:
        linear-gradient(135deg,#081b63 0%,#163cb3 100%);

    --gradient-red:
        linear-gradient(135deg,#b30000 0%,#ff2b2b 100%);
}

/* =========================
   GLOBAL
========================= */

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    background:
        radial-gradient(circle at top left,#eef3ff 0%,#f8faff 45%,#ffffff 100%);
    color:var(--dark);
    overflow-x:hidden;
}

a{
    text-decoration:none;
}

img{
    max-width:100%;
    display:block;
}

section{
    position:relative;
}

/* =========================
   DECORATION BG
========================= */

body::before{
    content:'';
    width:450px;
    height:450px;

    position:fixed;
    top:-150px;
    left:-150px;

    background:rgba(8,27,99,0.08);
    border-radius:50%;

    z-index:-1;
}

body::after{
    content:'';
    width:500px;
    height:500px;

    position:fixed;
    bottom:-200px;
    right:-150px;

    background:rgba(179,0,0,0.08);
    border-radius:50%;

    z-index:-1;
}

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

.navbar{
    width:92%;
    margin:24px auto;

    padding:18px 38px;

    background:rgba(255,255,255,0.85);

    backdrop-filter:blur(14px);

    border:1px solid rgba(255,255,255,0.5);

    border-radius:28px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    position:sticky;
    top:18px;
    z-index:999;

    box-shadow:var(--shadow);
}

.logo img{
    width:170px;
    transition:0.4s;
}

.logo img:hover{
    transform:scale(1.05);
}

.nav-menu{
    display:flex;
    gap:42px;
}

.nav-menu a{
    color:var(--primary);
    font-weight:600;
    position:relative;
    transition:0.3s;
}

.nav-menu a::after{
    content:'';
    width:0%;
    height:4px;

    background:var(--gradient-red);

    position:absolute;
    left:0;
    bottom:-10px;

    border-radius:20px;
    transition:0.35s;
}

.nav-menu a:hover,
.nav-menu a.active{
    color:var(--secondary);
}

.nav-menu a:hover::after,
.nav-menu a.active::after{
    width:100%;
}

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

.btn-primary{
    padding:16px 30px;

    border-radius:18px;

    background:var(--gradient-red);
    color:var(--white);

    display:flex;
    align-items:center;
    gap:10px;

    font-weight:600;

    transition:0.4s;
    box-shadow:
        0 10px 25px rgba(179,0,0,0.25);
}

.btn-primary:hover{
    transform:translateY(-6px) scale(1.02);

    box-shadow:
        0 20px 40px rgba(179,0,0,0.35);
}

.btn-outline{
    padding:16px 30px;

    border-radius:18px;

    border:2px solid var(--primary);

    color:var(--primary);

    font-weight:600;

    display:flex;
    align-items:center;
    gap:10px;

    transition:0.35s;
}

.btn-outline:hover{
    background:var(--gradient-blue);
    color:#fff;

    transform:translateY(-5px);
}

.large{
    padding:18px 34px;
}

/* =========================
   HERO
========================= */

.hero{
    width:92%;
    margin:auto;

    min-height:92vh;

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;

    align-items:center;

    padding-top:40px;
}

.hero-left{
    position:relative;
    z-index:2;
}

.hero-label{
    display:inline-flex;
    align-items:center;
    gap:14px;

    padding:12px 18px;

    border-radius:50px;

    background:rgba(8,27,99,0.08);

    margin-bottom:30px;
}

.dot{
    width:16px;
    height:16px;

    border-radius:50%;

    background:var(--secondary);

    box-shadow:
        0 0 0 5px rgba(179,0,0,0.15);
}

.hero-label span{
    font-weight:600;
    letter-spacing:1px;
    color:var(--primary);
}

.hero-left h1{
    font-size:84px;
    line-height:1.05;
    font-weight:900;

    color:var(--primary);

    margin-bottom:28px;
}

.red-text{
    background:var(--gradient-red);

    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
}

.hero-left p{
    font-size:18px;
    line-height:1.9;

    color:var(--gray);

    max-width:620px;

    margin-bottom:42px;
}

.hero-buttons{
    display:flex;
    gap:20px;

    margin-bottom:55px;
}

/* =========================
   HERO STATS
========================= */

.hero-stats{
    display:flex;
    gap:26px;
    flex-wrap:wrap;
}

.stat-item{
    display:flex;
    align-items:center;
    gap:16px;
}

.icon{
    width:60px;
    height:60px;

    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#fff;
    font-size:22px;

    box-shadow:var(--shadow);
}

.blue{
    background:var(--gradient-blue);
}

.red{
    background:var(--gradient-red);
}

.stat-item h3{
    font-size:30px;
    color:var(--primary);
}

.stat-item p{
    margin:0;
    font-size:14px;
}

.stat-divider{
    width:1px;
    height:50px;

    background:#dbe2f1;
}

/* =========================
   HERO RIGHT
========================= */

.hero-right{
    position:relative;

    display:flex;
    align-items:center;
    justify-content:center;
}

.bg-shape{
    position:absolute;
    filter:blur(2px);
}

.blue-shape{
    width:520px;
    height:360px;

    background:var(--gradient-blue);

    border-radius:80px;

    top:20px;
    right:20px;

    transform:rotate(-10deg);

    opacity:0.95;
}

.red-shape{
    width:420px;
    height:420px;

    background:var(--gradient-red);

    border-radius:50%;

    bottom:-20px;
    right:-40px;

    opacity:0.95;
}

.glass-card{
    width:650px;

    padding:50px;

    border-radius:36px;

    background:
        rgba(255,255,255,0.72);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,0.5);

    position:relative;
    z-index:2;

    box-shadow:
        0 30px 70px rgba(8,27,99,0.15);
}

.glass-card::before{
    content:'';

    position:absolute;
    inset:0;

    border-radius:36px;

    padding:1px;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,0.8),
            rgba(255,255,255,0.1)
        );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;
            mask-composite:exclude;
}

.glass-card img{
    width:320px;
    margin:auto;
    margin-bottom:40px;

    filter:
        drop-shadow(0 20px 40px rgba(8,27,99,0.2));
}

/* =========================
   MINI CARD
========================= */

.mini-cards{
    display:flex;
    gap:18px;
}

.mini-card{
    flex:1;

    padding:22px;

    border-radius:24px;

    background:#fff;

    display:flex;
    align-items:center;
    gap:16px;

    transition:0.35s;

    box-shadow:
        0 12px 30px rgba(8,27,99,0.08);
}

.mini-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-hover);
}

.mini-icon{
    width:58px;
    height:58px;

    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#fff;
    font-size:20px;
    font-weight:700;
}

.mini-card h4{
    color:var(--primary);
    font-size:16px;
    margin-bottom:4px;
}

.mini-card p{
    font-size:13px;
    color:var(--gray);
}

/* =========================
   FEATURES
========================= */

.features{
    padding:140px 5%;
}

.section-header{
    text-align:center;
    margin-bottom:80px;
}

.section-header span{
    color:var(--secondary);
    font-weight:700;
    letter-spacing:1px;
}

.section-header h2{
    margin-top:16px;

    font-size:64px;
    font-weight:800;

    color:var(--primary);
}

.section-header h2 span{
    color:var(--secondary);
}

.section-header p{
    margin-top:18px;

    color:var(--gray);
    line-height:1.9;
}

/* =========================
   FEATURE CARD
========================= */

.feature-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:32px;
}

.feature-card{
    padding:50px 40px;

    border-radius:32px;

    background:
        rgba(255,255,255,0.8);

    backdrop-filter:blur(14px);

    text-align:center;

    position:relative;
    overflow:hidden;

    transition:0.4s;

    box-shadow:
        0 15px 40px rgba(8,27,99,0.08);
}

.feature-card::before{
    content:'';

    width:180px;
    height:180px;

    position:absolute;
    top:-80px;
    right:-80px;

    background:rgba(179,0,0,0.08);

    border-radius:50%;

    transition:0.4s;
}

.feature-card:hover{
    transform:translateY(-12px);
    box-shadow:
        0 25px 50px rgba(8,27,99,0.14);
}

.feature-card:hover::before{
    transform:scale(1.3);
}

.feature-icon{
    width:95px;
    height:95px;

    margin:auto;
    margin-bottom:30px;

    border-radius:24px;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#fff;
    font-size:38px;

    box-shadow:
        0 15px 35px rgba(8,27,99,0.18);
}

.feature-card h3{
    font-size:32px;
    color:var(--primary);

    margin-bottom:18px;
}

.feature-card p{
    color:var(--gray);
    line-height:1.9;
}

.bottom-line{
    width:90px;
    height:8px;

    margin:auto;
    margin-top:36px;

    border-radius:50px;
}

.blue-line{
    background:var(--gradient-blue);
}

.red-line{
    background:var(--gradient-red);
}

/* =========================
   FOOTER
========================= */

.footer{
    margin-top:120px;

    background:
        linear-gradient(
            135deg,
            #020817 0%,
            #081b63 100%
        );

    color:#fff;

    padding-top:90px;

    position:relative;
    overflow:hidden;
}

.footer::before{
    content:'';

    width:500px;
    height:500px;

    background:
        rgba(255,255,255,0.04);

    position:absolute;
    top:-180px;
    right:-150px;

    border-radius:50%;
}

.footer::after{
    content:'';

    width:300px;
    height:300px;

    background:
        rgba(255,0,0,0.08);

    position:absolute;
    bottom:-120px;
    left:-120px;

    border-radius:50%;
}

.footer-top{
    width:90%;
    margin:auto;

    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.3fr;
    gap:60px;

    position:relative;
    z-index:2;
}

.footer-brand img{
    width:180px;

    background:#fff;

    padding:12px;

    border-radius:16px;

    margin-bottom:25px;
}

.footer-brand p{
    color:#d6dcff;
    line-height:1.9;
}

.footer-social{
    display:flex;
    gap:14px;
    margin-top:30px;
}

.footer-social a{
    width:48px;
    height:48px;

    border-radius:16px;

    background:rgba(255,255,255,0.08);

    display:flex;
    align-items:center;
    justify-content:center;

    color:#fff;

    transition:0.35s;
}

.footer-social a:hover{
    background:var(--gradient-red);

    transform:
        translateY(-6px)
        rotate(5deg);
}

.footer-links h3{
    font-size:22px;
    margin-bottom:28px;
}

.footer-links a{
    display:flex;
    align-items:center;
    gap:10px;

    color:#d6dcff;

    margin-bottom:18px;

    transition:0.3s;
}

.footer-links a:hover{
    color:#fff;
    transform:translateX(6px);
}

.footer-bottom{
    margin-top:70px;
    padding:30px;

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

    text-align:center;

    color:#d6dcff;

    position:relative;
    z-index:2;
}

/* =========================
   RESPONSIVE
========================= */

@media(max-width:1200px){

    .hero{
        grid-template-columns:1fr;
        text-align:center;
    }

    .hero-left p{
        margin:auto;
        margin-bottom:40px;
    }

    .hero-buttons{
        justify-content:center;
    }

    .hero-stats{
        justify-content:center;
    }

    .footer-top{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:768px){

    .navbar{
        width:95%;
        padding:18px 20px;
    }

    .nav-menu{
        display:none;
    }

    .hero{
        gap:40px;
    }

    .hero-left h1{
        font-size:56px;
    }

    .hero-left p{
        font-size:16px;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .glass-card{
        width:100%;
        padding:28px;
    }

    .mini-cards{
        flex-direction:column;
    }

    .section-header h2{
        font-size:42px;
    }

    .footer-top{
        grid-template-columns:1fr;
        text-align:center;
    }

    .footer-social{
        justify-content:center;
    }

    .footer-links a{
        justify-content:center;
    }
}


/* =========================================
   RESPONSIVE MOBILE PERFECT
   TAMBAHKAN DI BAGIAN PALING BAWAH CSS
========================================= */

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

@media (max-width: 992px){

    .navbar{
        width:94%;
        padding:18px 24px;
    }

    .hero{
        grid-template-columns:1fr;
        gap:50px;

        padding-top:40px;
        text-align:center;
    }

    .hero-left{
        order:1;
    }

    .hero-right{
        order:2;
    }

    .hero-left p{
        margin:auto;
        margin-bottom:35px;
    }

    .hero-buttons{
        justify-content:center;
        flex-wrap:wrap;
    }

    .hero-stats{
        justify-content:center;
        flex-wrap:wrap;
    }

    .glass-card{
        width:100%;
        max-width:650px;
    }

    .footer-top{
        grid-template-columns:1fr 1fr;
    }
}

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

@media (max-width: 768px){

    body{
        overflow-x:hidden;
    }

    /* NAVBAR */

    .navbar{
        width:95%;
        margin:16px auto;

        padding:16px 18px;

        border-radius:22px;
    }

    .logo img{
        width:130px;
    }

    .nav-menu{
        display:none;
    }

    .btn-primary,
    .btn-outline{
        padding:14px 20px;
        font-size:14px;
    }

    /* HERO */

    .hero{
        width:92%;
        min-height:auto;

        grid-template-columns:1fr;
        gap:30px;

        padding-top:30px;
        padding-bottom:60px;
    }

    .hero-left{
        text-align:center;
    }

    .hero-label{
        margin:auto;
        margin-bottom:24px;
    }

    .hero-left h1{
        font-size:46px;
        line-height:1.15;

        margin-bottom:22px;
    }

    .hero-left p{
        font-size:15px;
        line-height:1.8;

        margin-bottom:30px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:center;

        gap:14px;

        margin-bottom:35px;
    }

    .hero-buttons a{
        width:100%;
        justify-content:center;
    }

    /* STATS */

    .hero-stats{
        flex-direction:column;
        gap:20px;
    }

    .stat-divider{
        display:none;
    }

    .stat-item{
        width:100%;
        justify-content:center;
    }

    .stat-item h3{
        font-size:24px;
    }

    /* HERO RIGHT */

    .hero-right{
        width:100%;
    }

    .glass-card{
        width:100%;
        padding:24px;

        border-radius:28px;
    }

    .glass-card img{
        width:220px;
        margin-bottom:30px;
    }

    .blue-shape{
        width:280px;
        height:220px;

        top:20px;
        right:10px;
    }

    .red-shape{
        width:240px;
        height:240px;

        bottom:-10px;
        right:-20px;
    }

    /* MINI CARD */

    .mini-cards{
        flex-direction:column;
        gap:16px;
    }

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

    .mini-icon{
        width:50px;
        height:50px;
    }

    /* SECTION */

    .features{
        padding:80px 5%;
    }

    .section-header{
        margin-bottom:50px;
    }

    .section-header h2{
        font-size:36px;
        line-height:1.2;
    }

    .section-header p{
        font-size:15px;
    }

    /* FEATURE CARD */

    .feature-grid{
        grid-template-columns:1fr;
        gap:22px;
    }

    .feature-card{
        padding:36px 24px;
        border-radius:26px;
    }

    .feature-icon{
        width:80px;
        height:80px;

        font-size:30px;
    }

    .feature-card h3{
        font-size:26px;
    }

    .feature-card p{
        font-size:15px;
    }

    /* FOOTER */

    .footer{
        margin-top:80px;
        padding-top:70px;
    }

    .footer-top{
        grid-template-columns:1fr;
        gap:45px;

        text-align:center;
    }

    .footer-brand img{
        margin:auto;
        margin-bottom:24px;
    }

    .footer-social{
        justify-content:center;
    }

    .footer-links a{
        justify-content:center;
    }

    .footer-bottom{
        padding:24px 16px;
        font-size:14px;
    }
}

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

@media (max-width: 480px){

    .navbar{
        padding:14px 16px;
    }

    .logo img{
        width:115px;
    }

    .hero{
        width:90%;
    }

    .hero-left h1{
        font-size:38px;
    }

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

    .hero-label{
        padding:10px 16px;
    }

    .hero-label span{
        font-size:13px;
    }

    .btn-primary,
    .btn-outline{
        width:100%;
        padding:14px 18px;

        border-radius:16px;
    }

    .glass-card{
        padding:20px;
    }

    .glass-card img{
        width:180px;
    }

    .mini-card{
        flex-direction:column;
        text-align:center;
    }

    .section-header h2{
        font-size:30px;
    }

    .feature-card{
        padding:30px 20px;
    }

    .feature-card h3{
        font-size:22px;
    }

    .footer{
        text-align:center;
    }
}

/* =====================================
   FIX NAVBAR MOBILE
===================================== */

@media (max-width:768px){

    .navbar{
        width:95%;
        margin:12px auto;

        padding:14px 16px;

        border-radius:18px;

        position:relative;
        top:0;

        flex-wrap:wrap;
        gap:14px;
    }

    .logo{
        width:100%;

        display:flex;
        justify-content:center;
    }

    .logo img{
        width:120px;
    }

    /* tampilkan menu di mobile */
    .nav-menu{
        width:100%;

        display:flex;
        justify-content:center;
        align-items:center;
        flex-wrap:wrap;

        gap:18px;

        margin-top:4px;
    }

    .nav-menu a{
        font-size:14px;
    }

    /* tombol kanan */
    .navbar .btn-primary{
        width:100%;
        justify-content:center;

        padding:13px 18px;

        font-size:14px;
    }
}

/* =====================================
   EXTRA SMALL DEVICE
===================================== */

@media (max-width:480px){

    .navbar{
        padding:12px;
    }

    .nav-menu{
        gap:12px;
    }

    .nav-menu a{
        font-size:13px;
    }

    .logo img{
        width:105px;
    }

    .navbar .btn-primary{
        font-size:13px;
        padding:12px;
    }
}