:root{
    --primary:#1f8a5b;
    --primary-light:#2eaf72;
    --primary-dark:#146b45;
    --bg:#010101;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    outline:none;
    border:none;
    text-decoration:none;
}

body{
    font-family:sans-serif;
    background-color:#f4f6f9;
    color:#fff;
}

html{
    scroll-behavior:smooth;
}

section{
    scroll-margin-top:90px;
}

/* =================================================
   NAVBAR
================================================= */

.navbar{
    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:1.4rem 7%;

    background-color:rgba(1,1,1,0.8);

    border-bottom:1px solid var(--primary);

    position:fixed;
    top:0;
    left:0;
    right:0;

    z-index:9999;
}

.navbar .navbar-logo{
    font-size:2rem;
    color:#fff;
}

.navbar .navbar-nav a{
    color:#fff;

    display:inline-block;

    font-size:1.3rem;

    margin:0 1rem;

    transition:0.3s;
}

.navbar .navbar-nav a:hover{
    color:var(--primary-light);
}

.navbar .navbar-nav a::after{
    content:'';

    display:block;

    padding-bottom:0.5rem;

    border-bottom:0.1rem solid var(--primary);

    transform:scaleX(0);

    transform-origin:0 0;

    transition:0.3s;
}

.navbar .navbar-nav a:hover::after{
    transform:scaleX(1);
}

.navbar .navbar-extra a{
    color:#fff;

    margin:0 0.5rem;

    transition:0.3s;
}

.navbar .navbar-extra a:hover{
    color:var(--primary-light);
}

#menu{
    display:none;
}

.navbar .navbar-nav.active{
    right:0;
}




/* =================================================
   HERO
================================================= */

.hero{
    min-height:100vh;

    display:flex;

    align-items:center;

    background-image:url('../img/tritans.jpg') !important;

    background-repeat:no-repeat;

    background-size:cover;

    background-position:center;

    position:relative;

    overflow:hidden;
}

/* OVERLAY GAMBAR */
.hero::before{
    content:'';

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,0.60) 0%,
            rgba(0,0,0,0.35) 45%,
            rgba(0,0,0,0.15) 100%
        );

    z-index:0;
}

/* GRADIENT BAGIAN BAWAH */
.hero::after{
    content:'';

    display:block;

    position:absolute;

    width:100%;

    height:25%;

    bottom:0;

    background:
        linear-gradient(
            0deg,
            rgba(1,1,1,0.75) 0%,
            rgba(1,1,1,0.25) 55%,
            rgba(1,1,1,0) 100%
        );

    z-index:1;
}

.hero .content{
    padding:1.4rem 7%;

    max-width:60%;

    position:relative;

    z-index:2;
}

.hero .content h1{
    font-size:5rem;

    color:#fff;

    line-height:1.2;

    text-shadow:
        2px 2px 5px rgba(0,0,0,0.85);
}

.hero .content p{
    font-size:1.6rem;

    margin-top:1.5rem;

    margin-bottom:2rem;

    line-height:1.8;

    font-weight:400;

    color:#fff;

    text-shadow:
        2px 2px 5px rgba(0,0,0,0.85);
}

.hero .content .cta{
    margin-top:0.5rem;

    display:inline-block;

    padding:1rem 3rem;

    font-size:1.4rem;

    color:#fff;

    background-color:var(--primary);

    border-radius:0.5rem;

    box-shadow:
        0 4px 12px rgba(0,0,0,0.5);

    transition:0.3s;
}

.hero .content .cta:hover{
    background-color:var(--primary-light);

    transform:translateY(-2px);

    box-shadow:
        0 6px 18px rgba(31,138,91,0.4);
}


/* =================================================
   ABOUT / TENTANG KAMI
================================================= */

.about{
    min-height:100vh;

    padding:8rem 7% 6rem;

    display:flex;

    align-items:center;

    background:var(--bg);
}

.about-content{
    max-width:900px;

    margin:0 auto;

    text-align:center;
}

.about-content h2{
    font-size:3rem;

    margin-bottom:3rem;

    color:#fff;

    text-shadow:
        1px 1px 3px rgba(1,1,3,0.5);
}

.about-content h2 span{
    color:var(--primary);
}

.about-content p{
    font-size:1.5rem;

    line-height:1.8;

    font-weight:300;

    color:#ddd;

    margin-bottom:1.8rem;

    text-align:justify;
}
.about-app-info{
    display:flex;
    align-items:center;
    gap:2rem;
    margin:3rem 0;
    padding:2rem;
    background:linear-gradient(
        135deg,
        rgba(31,138,91,0.12),
        rgba(11,23,18,0.9)
    );
    border:1px solid rgba(46,175,114,0.25);
    border-radius:1.2rem;
    box-shadow:0 8px 25px rgba(0,0,0,0.25);
}

.about-app-icon{
    min-width:75px;
    height:75px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--primary);
    border-radius:1rem;
    font-size:3rem;
    box-shadow:0 8px 20px rgba(31,138,91,0.3);
}

.about-app-text{
    flex:1;
}

.about-app-text h3{
    margin:0 0 0.8rem;
    font-size:1.8rem;
    color:#fff;
}

.about-app-text p{
    margin:0 0 0.8rem;
    color:#ddd;
    line-height:1.7;
    font-size:1.05rem;
}

.about-app-btn{
    display:inline-block;
    margin-top:1rem;
    padding:0.9rem 1.5rem;
    background:var(--primary);
    color:#fff;
    border-radius:0.6rem;
    font-weight:600;
    text-decoration:none;
    transition:0.3s;
}

.about-app-btn:hover{
    background:var(--primary-light);
    transform:translateY(-2px);
    box-shadow:0 7px 18px rgba(31,138,91,0.35);
}

.about-content strong{
    color:var(--primary-light);
}


/* =================================================
   ABOUT FEATURES
================================================= */

.about-features{
    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:1.5rem;

    margin-top:4rem;
}

.feature-card{
    padding:2rem 1.5rem;

    background:#111;

    border:
        1px solid
        rgba(31,138,91,0.35);

    border-radius:1rem;

    text-align:center;

    transition:0.3s;
}

.feature-card:hover{
    transform:translateY(-6px);

    border-color:var(--primary);

    box-shadow:
        0 8px 25px
        rgba(31,138,91,0.15);
}

.feature-icon{
    font-size:2.8rem;

    margin-bottom:1rem;
}

.feature-card h3{
    color:var(--primary-light);

    font-size:1.4rem;

    margin-bottom:1rem;
}

.feature-card p{
    color:#bbb;

    font-size:1.1rem;

    line-height:1.7;

    margin:0;

    text-align:center;
}


/* =================================================
   LAYANAN
================================================= */

.layanan{
    min-height:100vh;

    padding:8rem 7% 6rem;

    background:#080706;
}

.layanan h2{
    text-align:center;

    font-size:3rem;

    margin-bottom:4rem;

    color:#fff;
}

.layanan h2 span{
    color:var(--primary);
}

.layanan-container{
    display:flex;

    justify-content:center;

    align-items:stretch;

    gap:2rem;

    flex-wrap:wrap;
}

.layanan-card{
    width:350px;

    padding:2.5rem;

    background:#111;

    border:
        1px solid
        rgba(31,138,91,0.5);

    border-radius:1rem;

    box-shadow:
        0 8px 25px
        rgba(0,0,0,0.4);

    transition:0.3s;
}

.layanan-card:hover{
    transform:translateY(-8px);

    border-color:var(--primary);

    box-shadow:
        0 12px 30px
        rgba(31,138,91,0.18);
}

.layanan-card h3{
    text-align:center;

    font-size:2rem;

    color:var(--primary-light);

    margin-bottom:2rem;
}

.layanan-item{
    padding:1.5rem 0;

    border-bottom:
        1px solid
        rgba(255,255,255,0.12);

    position:relative;
}

.layanan-item:last-child{
    border-bottom:none;
}

.layanan-item h4{
    font-size:1.5rem;

    color:#fff;

    margin-bottom:0.5rem;
}

.layanan-item p{
    font-size:1.3rem;

    color:#bbb;

    margin-bottom:0.8rem;
}

.layanan-item span{
    font-size:1.6rem;

    font-weight:bold;

    color:var(--primary-light);
}

/* =================================================
   KONTAK / PESAN
================================================= */

.contact{
    min-height:100vh;

    padding:8rem 7% 6rem;

    background:#010101;

    display:flex;

    align-items:center;

    justify-content:center;
}

.contact-content{
    width:100%;

    max-width:1000px;

    margin:auto;

    text-align:center;
}

.contact-content h2{
    font-size:3rem;

    color:#fff;

    margin-bottom:2rem;
}

.contact-content h2 span{
    color:var(--primary);
}

.contact-content > p{
    max-width:750px;

    margin:0 auto 4rem;

    color:#bbb;

    font-size:1.4rem;

    line-height:1.8;
}

.contact-options{
    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:2rem;
}

.contact-card{
    background:#111;

    border:1px solid
        rgba(31,138,91,0.45);

    border-radius:1rem;

    padding:3rem 2.5rem;

    transition:0.3s;

    box-shadow:
        0 8px 25px
        rgba(0,0,0,0.4);
}

.contact-card:hover{
    transform:translateY(-8px);

    border-color:var(--primary);

    box-shadow:
        0 12px 30px
        rgba(31,138,91,0.18);
}

.contact-icon{
    width:70px;

    height:70px;

    margin:0 auto 1.5rem;

    display:flex;

    align-items:center;

    justify-content:center;

    background:
        rgba(31,138,91,0.12);

    border:1px solid
        rgba(31,138,91,0.4);

    border-radius:50%;

    color:var(--primary-light);
}

.contact-icon svg{
    width:32px;

    height:32px;
}

.contact-card h3{
    font-size:1.8rem;

    color:#fff;

    margin-bottom:1rem;
}

.contact-card p{
    font-size:1.2rem;

    line-height:1.7;

    color:#aaa;

    margin-bottom:2rem;
}

.contact-btn{
    display:inline-block;

    padding:1rem 2rem;

    background:var(--primary);

    color:#fff;

    border-radius:0.5rem;

    font-size:1.2rem;

    font-weight:bold;

    transition:0.3s;
}

.contact-btn:hover{
    background:var(--primary-light);

    transform:translateY(-2px);

    box-shadow:
        0 6px 18px
        rgba(31,138,91,0.25);
}



/* =================================================
   BUTTON PESAN
================================================= */

.btn-pesan{
    position:absolute;

    right:0;

    bottom:1.5rem;

    display:inline-block;

    padding:0.8rem 1.8rem;

    background-color:var(--primary);

    color:#fff;

    border-radius:0.5rem;

    font-size:1.2rem;

    transition:0.3s;
}

.btn-pesan:hover{
    background-color:var(--primary-light);

    transform:translateY(-2px);

    box-shadow:
        0 5px 15px
        rgba(31,138,91,0.25);
}


/* =================================================
   DESKRIPSI LAYANAN
================================================= */

.layanan-description{
    margin-top:2rem;

    padding-top:1.5rem;

    border-top:
        1px solid
        rgba(255,255,255,0.12);
}

.layanan-description p{
    font-size:1.2rem;

    line-height:1.7;

    color:#bbb;

    text-align:center;
}


/* =================================================
   POPUP PESANAN
================================================= */

.popup-pesanan{
    display:none;

    position:fixed;

    inset:0;

    z-index:10000;

    background:
        rgba(0,0,0,0.8);

    justify-content:center;

    align-items:center;

    padding:2rem;
}

.popup-pesanan.active{
    display:flex;
}

.popup-box{
    position:relative;

    width:100%;

    max-width:500px;

    max-height:90vh;

    overflow-y:auto;

    background:#111;

    border:
        1px solid
        var(--primary);

    border-radius:1rem;

    padding:2.5rem;

    box-shadow:
        0 10px 40px
        rgba(0,0,0,0.6),
        0 0 25px
        rgba(31,138,91,0.12);
}

.popup-box h2{
    text-align:center;

    font-size:2.4rem;

    color:#fff;

    margin-bottom:2rem;
}

.popup-close{
    position:absolute;

    top:1rem;

    right:1.5rem;

    background:none;

    color:#fff;

    font-size:2.8rem;

    cursor:pointer;

    transition:0.3s;
}

.popup-close:hover{
    color:var(--primary-light);

    transform:rotate(90deg);
}


/* =================================================
   DETAIL LAYANAN
================================================= */

.detail-layanan{
    padding:1.5rem;

    margin-bottom:2rem;

    background:#181818;

    border-left:
        3px solid
        var(--primary);

    border-radius:0.5rem;
}

.detail-layanan h3{
    color:#fff;

    font-size:1.5rem;

    margin-bottom:0.5rem;
}

.detail-layanan p{
    color:#bbb;

    font-size:1.2rem;

    margin-bottom:0.5rem;
}

.detail-layanan strong{
    color:var(--primary-light);

    font-size:1.5rem;
}


/* =================================================
   FORM
================================================= */

.popup-box > label{
    display:block;

    color:#fff;

    font-size:1.3rem;

    margin-bottom:0.7rem;

    margin-top:1.5rem;
}

.popup-box textarea{
    width:100%;

    resize:vertical;

    padding:1rem;

    background:#181818;

    color:#fff;

    border:
        1px solid
        #444;

    border-radius:0.5rem;

    font-family:inherit;

    font-size:1.2rem;

    transition:0.3s;
}

.popup-box textarea:focus{
    border-color:var(--primary);

    box-shadow:
        0 0 0 2px
        rgba(31,138,91,0.12);
}


/* =================================================
   GPS
================================================= */

.alamat-box{
    position:relative;
}

.btn-gps{
    margin-top:0.8rem;

    padding:0.8rem 1.2rem;

    background:transparent;

    color:var(--primary-light);

    border:
        1px solid
        var(--primary);

    border-radius:0.5rem;

    font-size:1.1rem;

    cursor:pointer;

    transition:0.3s;
}

.btn-gps:hover{
    background:var(--primary);

    color:#fff;

    box-shadow:
        0 5px 15px
        rgba(31,138,91,0.2);
}


/* =================================================
   PILIHAN TERAPIS
================================================= */

.pilihan-terapis{
    display:flex;

    gap:1rem;
}

.radio-terapis{
    flex:1;

    cursor:pointer;
}

.radio-terapis input{
    display:none;
}

.radio-terapis span{
    display:block;

    padding:1rem;

    text-align:center;

    background:#181818;

    color:#ccc;

    border:
        1px solid
        #444;

    border-radius:0.5rem;

    font-size:1.2rem;

    transition:0.3s;
}

.radio-terapis span:hover{
    border-color:var(--primary);
}

.radio-terapis input:checked + span{
    background:var(--primary);

    color:#fff;

    border-color:var(--primary);

    box-shadow:
        0 0 12px
        rgba(31,138,91,0.2);
}


/* =================================================
   KONFIRMASI
================================================= */

.btn-konfirmasi{
    width:100%;

    margin-top:2rem;

    padding:1.2rem;

    background:var(--primary);

    color:#fff;

    border-radius:0.5rem;

    font-size:1.3rem;

    font-weight:bold;

    cursor:pointer;

    transition:0.3s;
}

.btn-konfirmasi:hover{
    background:var(--primary-light);

    transform:translateY(-2px);

    box-shadow:
        0 6px 18px
        rgba(31,138,91,0.25);
}


/* =================================================
   HP POPUP
================================================= */

@media(max-width:450px){

    .popup-pesanan{
        padding:1rem;
    }

    .popup-box{
        padding:2rem 1.5rem;

        max-height:92vh;
    }

    .popup-box h2{
        font-size:2.2rem;
    }

    .pilihan-terapis{
        flex-direction:column;
    }
}


/* =================================================
   LAPTOP
================================================= */

@media(max-width:1366px){

    html{
        font-size:75%;
    }
}


/* =================================================
   TABLET
================================================= */

@media(max-width:768px){

    html{
        font-size:60.5%;
    }

    #menu{
        display:inline-block;
    }

    .navbar .navbar-nav{
        position:absolute;

        top:100%;

        right:-100%;

        background-color:#fff;

        width:30rem;

        height:100vh;

        transition:0.3s;

        box-shadow:
            -5px 5px 20px
            rgba(0,0,0,0.2);
    }

    .navbar .navbar-nav a{
        color:var(--bg);

        display:block;

        margin:1.5rem;

        padding:0.5rem;

        font-size:2rem;
    }

    .navbar .navbar-nav a::after{
        transform-origin:0 0;
    }

    .navbar .navbar-nav a:hover{
        color:var(--primary);
    }

    .navbar .navbar-nav a:hover::after{
        transform:scaleX(0.2);
    }

    .about{
        padding:8rem 7% 5rem;
    }

    .about-content h2{
        font-size:3rem;

        margin-bottom:2.5rem;
    }

    .about-content p{
        font-size:1.6rem;

        line-height:1.8;

        margin-bottom:1.8rem;
    }

    .about-features{
        grid-template-columns:
            repeat(2,1fr);

        gap:1.2rem;
    }
    .about-app-info{
        flex-direction:column;
        align-items:flex-start;
        gap:1.2rem;
        padding:1.5rem;
    }

    .about-app-icon{
        width:60px;
        min-width:60px;
        height:60px;
        font-size:2.2rem;
    }

    .about-app-text h3{
        font-size:1.45rem;
    }

    .about-app-text p{
        font-size:0.95rem;
    }

    .about-app-btn{
        width:100%;
        text-align:center;
        box-sizing:border-box;
    }


    .hero .content{
        max-width:80%;
    }

    .hero .content h1{
        font-size:4rem;
    }
    .contact{
        padding:8rem 7% 5rem;
    }

    .contact-content h2{
        font-size:3rem;
    }

    .contact-options{
        grid-template-columns:1fr;
    }
}


/* =================================================
   ANDROID
================================================= */

@media(max-width:450px){

    html{
        font-size:50%;
    }

    .about{
        padding:8rem 6% 4rem;
    }

    .about-content h2{
        font-size:2.8rem;
    }

    .about-content p{
        font-size:1.6rem;

        line-height:1.8;

        text-align:left;
    }

    .about-features{
        grid-template-columns:1fr;
    }

    .hero .content{
        max-width:100%;

        padding:1.4rem 6%;
    }

    .hero .content h1{
        font-size:3.5rem;
    }

    .hero .content p{
        font-size:1.5rem;
    }

    .layanan-card{
        width:100%;
    }
    .contact{
        padding:8rem 6% 4rem;
    }

    .contact-content h2{
        font-size:2.8rem;
    }

    .contact-content > p{
        font-size:1.5rem;
    }

    .contact-card{
        padding:2.5rem 1.8rem;
    }

    .contact-card h3{
        font-size:1.8rem;
    }

    .contact-card p{
        font-size:1.3rem;
    }

    .contact-btn{
        width:100%;
    }

}



/* =================================================
   CEGAH SCROLL KE SAMPING
================================================= */

html,
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

/* Pastikan section tidak melebar keluar layar */
.hero,
.about{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

/* Cegah elemen animasi membuat halaman melebar */
.scroll-left,
.scroll-right,
.scroll-animate{
    max-width:100%;
}

/* ABOUT APP */
.about-app-info{
    max-width:100%;
    box-sizing:border-box;
}

/* FEATURES */
.about-features{
    max-width:100%;
    box-sizing:border-box;
}

/* Semua elemen menggunakan box sizing */
*,
*::before,
*::after{
    box-sizing:border-box;
}




