*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Inter",sans-serif;
    color:#152235;
    background:#fff;
    line-height:1.7;
    overflow-x:hidden;
}

a{
    text-decoration:none;
}

.container{
    width:91%;
    max-width:1180px;
    margin:auto;
}


/* =================================
   HERO
================================= */

.hero{
    position:relative;
    min-height:760px;
    display:flex;
    align-items:center;
    overflow:hidden;
    color:#fff;
    background:#071522;
}

.hero-bg{
    position:absolute;
    inset:0;

    background:
        radial-gradient(
            circle at 75% 20%,
            rgba(35,210,181,.16),
            transparent 27%
        ),
        radial-gradient(
            circle at 15% 80%,
            rgba(30,100,170,.14),
            transparent 30%
        ),
        linear-gradient(
            115deg,
            #06111c 0%,
            #091b2a 55%,
            #071522 100%
        );
}

.hero-bg::after{
    content:"";
    position:absolute;
    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(3,10,17,.35),
            transparent
        );
}

.hero-container{
    position:relative;
    z-index:2;

    display:grid;
    grid-template-columns:1.12fr .88fr;

    gap:75px;
    align-items:center;
}

.top-label,
.section-head > span,
.side-title > span,
.trainer span,
.cta > div > span{
    color:#36d4bd;

    font-size:12px;
    font-weight:800;

    letter-spacing:2.5px;
}

.hero h1{
    margin-top:20px;

    font-family:"Manrope",sans-serif;

    font-size:clamp(52px,6vw,82px);

    line-height:.98;

    letter-spacing:-4px;
}

.hero h1 span{
    color:#35d5bc;
}

.hero-lead{
    max-width:680px;

    margin-top:28px;

    color:#b6c3d1;

    font-size:18px;
}

.hero-buttons{
    display:flex;
    gap:14px;

    margin-top:35px;
}

.btn-main,
.btn-second{
    min-height:54px;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:0 27px;

    border-radius:9px;

    font-weight:800;

    transition:.3s ease;
}

.btn-main{
    color:#04241e;
    background:#36d5bd;
}

.btn-main:hover{
    transform:translateY(-3px);
    box-shadow:0 15px 35px rgba(54,213,189,.2);
}

.btn-second{
    color:#fff;

    border:1px solid rgba(255,255,255,.16);

    background:rgba(255,255,255,.04);
}

.btn-second:hover{
    background:#fff;
    color:#071522;
}

.hero-info{
    display:flex;
    gap:42px;

    margin-top:50px;
}

.hero-info strong{
    display:block;

    color:#fff;

    font-family:"Manrope";

    font-size:20px;
}

.hero-info span{
    display:block;

    margin-top:2px;

    color:#7f90a3;

    font-size:12px;
}


/* =================================
   HERO PANEL
================================= */

.hero-panel{
    padding:35px;

    border:1px solid rgba(255,255,255,.12);

    border-radius:20px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.09),
            rgba(255,255,255,.035)
        );

    backdrop-filter:blur(16px);

    box-shadow:0 30px 80px rgba(0,0,0,.28);
}

.panel-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.panel-head > span{
    color:#39d7bf;

    font-size:11px;
    font-weight:800;

    letter-spacing:1.7px;
}

.status{
    padding:5px 10px;

    border-radius:30px;

    color:#39d7bf;

    background:rgba(54,213,189,.1);

    font-size:11px;
    font-weight:800;
}

.hero-panel h2{
    margin-top:20px;

    font-family:"Manrope";

    font-size:29px;

    line-height:1.25;
}

.panel-line{
    width:48px;
    height:3px;

    margin:24px 0;

    background:#35d5bd;
}

.panel-row{
    padding:16px 0;

    border-bottom:1px solid rgba(255,255,255,.08);
}

.panel-row span{
    display:block;

    color:#7d8c9e;

    font-size:11px;
}

.panel-row strong{
    display:block;

    margin-top:3px;

    font-size:14px;
}

.panel-price{
    margin-top:25px;
}

.panel-price small{
    color:#7e8e9f;

    font-size:10px;
    font-weight:800;

    letter-spacing:1.4px;
}

.panel-price strong{
    display:inline-block;

    margin-top:3px;

    font-family:"Manrope";

    font-size:31px;
}

.panel-price span{
    color:#7e8e9f;

    font-size:12px;
}

.panel-button{
    height:52px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-top:24px;

    border-radius:8px;

    color:#06151f;

    background:#fff;

    font-weight:800;

    transition:.3s;
}

.panel-button:hover{
    transform:translateY(-3px);
}


/* =================================
   GENERAL
================================= */

.intro,
.background-section,
.requirements,
.competency,
.investment,
.targets{
    padding:110px 0;
}

.section-head{
    max-width:820px;

    margin:0 auto 55px;

    text-align:center;
}

.section-head h2{
    margin-top:12px;

    font-family:"Manrope";

    font-size:clamp(38px,4.5vw,55px);

    line-height:1.08;

    letter-spacing:-2px;
}

.section-head p{
    margin-top:18px;

    color:#687689;

    font-size:17px;
}

.section-head.light h2{
    color:#fff;
}

.section-head.light p{
    color:#93a3b4;
}


/* =================================
   INTRO
================================= */

.intro{
    background:#fff;
}

.intro-grid{
    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:18px;
}

.intro-card{
    padding:32px;

    min-height:210px;

    border:1px solid #e2e8ee;

    border-radius:17px;

    background:#fbfcfd;

    transition:.35s ease;
}

.intro-card:hover{
    transform:translateY(-6px);

    box-shadow:0 25px 55px rgba(20,35,55,.07);
}

.intro-card.featured-card{
    border-color:#32cdb7;
}

.number{
    color:#0ba38e;

    font-size:13px;
    font-weight:800;
}

.intro-card h3{
    margin-top:20px;

    font-family:"Manrope";

    font-size:24px;
}

.intro-card p{
    margin-top:8px;

    color:#69788a;
}


/* =================================
   SCHEDULE
================================= */

.schedule{
    padding:110px 0;

    background:#071522;
}

.schedule-list{
    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:12px;
}

.schedule-list div{
    padding:20px 14px;

    text-align:center;

    border:1px solid rgba(255,255,255,.09);

    border-radius:9px;

    background:rgba(255,255,255,.04);

    color:#d8e2eb;

    font-size:14px;
    font-weight:700;

    transition:.3s;
}

.schedule-list div:hover{
    color:#35d5bd;

    border-color:#35d5bd;

    transform:translateY(-3px);
}


/* =================================
   BACKGROUND
================================= */

.background-section{
    background:#f5f8fa;
}

.background-grid{
    display:grid;

    grid-template-columns:.7fr 1.3fr;

    gap:100px;
}

.side-title h2{
    margin-top:15px;

    font-family:"Manrope";

    font-size:48px;

    line-height:1.1;

    letter-spacing:-2px;
}

.background-content p{
    margin-bottom:25px;

    color:#59697c;

    font-size:17px;
}


/* =================================
   TARGET
================================= */

.targets{
    background:#fff;
}

.target-grid{
    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:13px;
}

.target-grid article{
    display:grid;

    grid-template-columns:45px 1fr;

    gap:15px;

    padding:23px;

    border:1px solid #e3e8ed;

    border-radius:13px;

    background:#fbfcfd;

    transition:.3s;
}

.target-grid article:hover{
    border-color:#30cdb6;

    transform:translateY(-3px);
}

.target-grid b{
    color:#0aa28d;

    font-family:"Manrope";
}

.target-grid p{
    color:#59697b;

    font-size:14px;
}


/* =================================
   REQUIREMENT
================================= */

.requirements{
    background:#f5f8fa;
}

.requirement-list{
    max-width:920px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:13px;
}

.requirement-list div{
    display:grid;

    grid-template-columns:45px 1fr;

    align-items:center;

    padding:21px;

    border:1px solid #e0e6ec;

    border-radius:12px;

    background:#fff;
}

.requirement-list span{
    color:#0aa18c;

    font-weight:800;
}

.requirement-list p{
    color:#59697b;

    font-size:14px;
    font-weight:600;
}


/* =================================
   COMPETENCY
================================= */

.competency{
    background:#fff;
}

.competency-grid{
    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:14px;
}

.competency-grid div{
    min-height:190px;

    padding:29px;

    border:1px solid #e1e7ed;

    border-radius:15px;

    background:#fbfcfd;

    transition:.35s;
}

.competency-grid div:hover{
    transform:translateY(-6px);

    border-color:#30cdb6;

    box-shadow:0 20px 45px rgba(20,35,55,.07);
}

.competency-grid span{
    color:#0aa28c;

    font-size:12px;
    font-weight:800;
}

.competency-grid h3{
    margin-top:17px;

    font-family:"Manrope";

    font-size:17px;

    line-height:1.45;
}


/* =================================
   MATERIAL
================================= */

.materials{
    padding:110px 0;

    background:#081725;
}

.material-grid{
    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:12px;
}

.material-grid div{
    min-height:70px;

    display:flex;
    align-items:center;

    padding:18px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:10px;

    background:rgba(255,255,255,.035);

    color:#cbd5df;

    font-size:14px;

    transition:.3s;
}

.material-grid div:hover{
    border-color:#30cdb6;

    color:#fff;

    transform:translateY(-3px);
}


/* =================================
   TRAINER
================================= */

.trainer{
    padding:85px 0;

    background:#071522;

    color:#fff;
}

.trainer-box{
    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:80px;
}

.trainer-box h2{
    margin-top:12px;

    font-family:"Manrope";

    font-size:44px;
}

.trainer-box p{
    color:#9aa9b8;

    font-size:17px;
}


/* =================================
   INVESTMENT
================================= */

.investment{
    background:#f5f8fa;
}

.price-grid{
    max-width:820px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;
}

.price-card{
    position:relative;

    padding:40px;

    text-align:center;

    border:1px solid #dde4eb;

    border-radius:18px;

    background:#fff;

    transition:.3s;
}

.price-card:hover{
    transform:translateY(-5px);
}

.price-card.active{
    border:2px solid #25cbb3;

    box-shadow:0 25px 60px rgba(15,150,130,.1);
}

.price-card small{
    color:#0ba18d;

    font-size:11px;
    font-weight:800;

    letter-spacing:2px;
}

.price-card h3{
    margin-top:12px;

    font-family:"Manrope";

    font-size:34px;
}

.price-card p{
    color:#8793a0;
}

.price-card a{
    height:50px;

    display:flex;

    align-items:center;
    justify-content:center;

    margin-top:25px;

    border-radius:8px;

    background:#071522;

    color:#fff;

    font-weight:800;
}

.recommended{
    position:absolute;

    top:-14px;
    left:50%;

    transform:translateX(-50%);

    padding:5px 14px;

    border-radius:30px;

    background:#25cbb3;

    color:#06241f;

    font-size:9px;
    font-weight:900;

    letter-spacing:1px;
}


/* =================================
   CTA
================================= */

.cta{
    padding:120px 0;

    text-align:center;

    background:#fff;
}

.cta > div > span{
    color:#0ba18d;
}

.cta h2{
    max-width:780px;

    margin:15px auto;

    font-family:"Manrope";

    font-size:clamp(40px,5vw,60px);

    line-height:1.05;

    letter-spacing:-2px;
}

.cta p{
    max-width:680px;

    margin:20px auto 32px;

    color:#667487;

    font-size:17px;
}

.cta-button{
    display:inline-flex;

    min-height:56px;

    align-items:center;
    justify-content:center;

    padding:0 30px;

    border-radius:9px;

    color:#06251f;

    background:#31d2ba;

    font-weight:800;

    transition:.3s;
}

.cta-button:hover{
    transform:translateY(-3px);

    box-shadow:0 15px 35px rgba(49,210,186,.2);
}


/* =================================
   FLOATING WHATSAPP
================================= */

.floating-wa{
    position:fixed;

    right:24px;
    bottom:24px;

    z-index:9999;

    width:60px;
    height:60px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:#25D366;
    color:#fff;

    box-shadow:
        0 10px 30px rgba(0,0,0,.18),
        0 0 0 0 rgba(37,211,102,.4);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.floating-wa svg{
    display:block;

    width:31px;
    height:31px;
}

.floating-wa:hover{
    transform:translateY(-5px) scale(1.05);

    box-shadow:
        0 15px 35px rgba(0,0,0,.22),
        0 0 0 8px rgba(37,211,102,.12);
}

.floating-wa:active{
    transform:scale(.95);
}


/* Pulse halus */

.floating-wa::before{
    content:"";

    position:absolute;

    inset:0;

    border-radius:50%;

    border:1px solid rgba(37,211,102,.5);

    animation:waPulse 2.2s infinite;
}

@keyframes waPulse{

    0%{
        transform:scale(1);
        opacity:.8;
    }

    70%{
        transform:scale(1.35);
        opacity:0;
    }

    100%{
        transform:scale(1.35);
        opacity:0;
    }

}


/* Mobile */

@media(max-width:650px){

    .floating-wa{
        width:56px;
        height:56px;

        right:17px;
        bottom:17px;
    }

    .floating-wa svg{
        width:28px;
        height:28px;
    }

}
/* =================================
   RESPONSIVE
================================= */

@media(max-width:1000px){

    .hero-container{
        grid-template-columns:1fr;
    }

    .hero{
        padding:100px 0;
    }

    .hero-panel{
        max-width:650px;
    }

    .background-grid{
        grid-template-columns:1fr;
        gap:40px;
    }

    .competency-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .material-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .trainer-box{
        grid-template-columns:1fr;
        gap:25px;
    }

}


@media(max-width:650px){

    .container{
        width:90%;
    }

    .hero{
        min-height:auto;

        padding:75px 0;
    }

    .hero h1{
        font-size:48px;

        letter-spacing:-2px;
    }

    .hero-lead{
        font-size:16px;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .btn-main,
    .btn-second{
        width:100%;
    }

    .hero-info{
        display:grid;

        grid-template-columns:1fr 1fr;

        gap:22px;
    }

    .hero-panel{
        padding:27px;
    }

    .intro,
    .background-section,
    .requirements,
    .competency,
    .investment,
    .targets,
    .schedule,
    .materials,
    .cta{
        padding:80px 0;
    }

    .section-head h2{
        font-size:36px;
    }

    .intro-grid,
    .target-grid,
    .requirement-list,
    .competency-grid,
    .material-grid,
    .price-grid{
        grid-template-columns:1fr;
    }

    .schedule-list{
        grid-template-columns:1fr 1fr;
    }

    .side-title h2{
        font-size:38px;
    }

    .trainer-box h2{
        font-size:36px;
    }

    .cta h2{
        font-size:40px;
    }

    .floating-wa{
        width:56px;
        height:56px;

        right:16px;
        bottom:16px;
    }

}

/* =========================================================
   WRAPPER UTAMA
========================================================= */

.wrap{
    width: min(1200px, calc(100% - 40px));
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer{
    position: relative;
    width: 100%;
    color: var(--text-inv-soft, #d8e1ec);
    overflow: hidden;
    background: #081b33;
}


/* =========================================================
   FOOTER BACKGROUND
========================================================= */

.footer-media{
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.footer-media img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.footer-overlay{
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(8,16,28,.94) 0%,
            rgba(8,16,28,.90) 50%,
            rgba(8,16,28,.97) 100%
        );
}


/* =========================================================
   FOOTER TOP
========================================================= */

.footer-top{
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        1.35fr
        .75fr
        1.1fr;

    gap: 60px;

    padding-top: 70px;
    padding-bottom: 50px;

    border-bottom:
        1px solid rgba(255,255,255,.10);
}


/* =========================================================
   FOOTER COLUMN
========================================================= */

.footer-col{
    min-width: 0;
}

.footer-col h3{
    margin: 0 0 22px;

    font-family:
        var(--font-mono,
        "Courier New",
        monospace);

    font-size: 12px;

    font-weight: 500;

    letter-spacing: .16em;

    text-transform: uppercase;

    color: #d9a93a;
}


/* =========================================================
   BRAND
========================================================= */

.footer-brand{
    display: flex;

    align-items: center;

    gap: 13px;

    margin-bottom: 20px;

    color: #fff;

    font-size: 14px;

    font-weight: 700;

    line-height: 1.35;

    letter-spacing: .04em;
}

.footer-brand .brand-logo{
    width: 44px;
    height: 44px;

    flex-shrink: 0;

    object-fit: cover;

    border-radius: 50%;
}

.footer-brand span{
    color: #fff;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.footer-desc{
    max-width: 390px;

    margin: 0 0 26px;

    color: #c9d3df;

    font-size: 14px;

    line-height: 1.75;
}


/* =========================================================
   SOCIAL MEDIA
========================================================= */

.footer-social{
    display: flex;

    align-items: center;

    gap: 12px;
}

.footer-social a{
    width: 38px;
    height: 38px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255,255,255,.15);

    border-radius: 50%;

    color: #dce5ef;

    text-decoration: none;

    transition:
        .2s ease;
}

.footer-social a svg{
    width: 17px;
    height: 17px;
}

.footer-social a:hover{
    color: #d9a93a;

    border-color: #d9a93a;

    background:
        rgba(217,169,58,.08);

    transform:
        translateY(-2px);
}


/* =========================================================
   NAVIGASI
========================================================= */

.footer-col-nav{
    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 14px;
}

.footer-col-nav a{
    display: block;

    color: #cbd6e2;

    font-size: 14px;

    line-height: 1.5;

    text-decoration: none;

    transition:
        color .2s ease,
        transform .2s ease;
}

.footer-col-nav a:hover{
    color: #fff;

    transform:
        translateX(3px);
}


/* =========================================================
   KONTAK
========================================================= */

.footer-col-contact{
    display: flex;

    flex-direction: column;

    gap: 19px;
}

.footer-contact-item{
    display: flex;

    align-items: flex-start;

    gap: 14px;
}

.footer-contact-item svg{
    width: 18px;
    height: 18px;

    flex-shrink: 0;

    margin-top: 2px;

    color: #d9a93a;
}

.footer-contact-item span{
    color: #cbd6e2;

    font-size: 14px;

    line-height: 1.65;
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.footer-bottom{
    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;
    justify-content: center;

    min-height: 70px;

    text-align: center;
}

.footer-bottom p{
    margin: 0;

    color: rgba(255,255,255,.45);

    font-size: 12px;

    line-height: 1.6;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 980px){

    .footer-top{
        grid-template-columns:
            1fr 1fr;

        gap: 45px;
    }

    .footer-col-brand{
        grid-column: 1 / -1;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px){

    .wrap{
        width:
            calc(100% - 36px);
    }

    .footer-top{
        grid-template-columns: 1fr;

        gap: 38px;

        padding-top: 55px;
        padding-bottom: 40px;
    }

    .footer-col-brand{
        grid-column: auto;
    }

    .footer-desc{
        max-width: 100%;
    }

    .footer-bottom{
        min-height: 65px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px){

    .wrap{
        width:
            calc(100% - 30px);
    }

    .footer-top{
        padding-top: 45px;
    }

    .footer-brand{
        font-size: 13px;
    }

    .footer-desc,
    .footer-col-nav a,
    .footer-contact-item span{
        font-size: 13px;
    }

}





    .bt-footer-grid {

        grid-template-columns: 1fr;

        gap: 40px;
    }


/* =========================================================
   JS SCROLL REVEAL
========================================================= */

.reveal {
    opacity: 0;
    transform: translateY(25px);

    transition:
        opacity .7s ease,
        transform .7s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* ============================================================
   COPYRIGHT
============================================================ */

.footer-copyright {
    margin-top: 25px;
    padding-top: 18px;

    border-top: 1px solid rgba(255,255,255,.10);

    color: rgba(255,255,255,.60);

    font-size: 0.78rem;
    line-height: 1.5;
}

/* =========================================================
   FLOATING WHATSAPP
========================================================= */

.floating-wa {
    position: fixed;

    right: 24px;
    bottom: 24px;

    z-index: 9999;

    width: 61px;
    height: 61px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: #25d366;

    box-shadow:
        0 10px 30px rgba(37,211,102,.35);

    transition: .25s ease;
}

.floating-wa:hover {
    transform: translateY(-5px) scale(1.04);
}

.floating-wa svg {
    width: 32px;
    height: 32px;

    fill: #fff;
}
