/* =====================================================
   JASA TRAILER
   Premium Landing Page
===================================================== */

:root{

    --primary:#E31E24;
    --primary-dark:#c7151b;

    --dark:#0F172A;
    --dark2:#1E293B;

    --blue:#2563EB;

    --white:#ffffff;

    --gray:#64748B;
    --gray-light:#94A3B8;

    --bg:#F8FAFC;

    --radius:16px;

    --shadow:0 15px 40px rgba(0,0,0,.08);

    --transition:.35s ease;

    --container:1280px;

}


/* =====================================================
RESET
===================================================== */

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

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    color:var(--dark);

    background:#fff;

    line-height:1.7;

    overflow-x:hidden;

}

img{

    width:100%;
    display:block;

}

a{

    text-decoration:none;

}

ul{

    list-style:none;

}

section{

    padding:100px 0;

}

.container{

    width:min(92%,var(--container));

    margin:auto;

}


/* =====================================================
TYPOGRAPHY
===================================================== */

h1{

    font-size:64px;

    line-height:1.15;

    font-weight:700;

    color:var(--dark);

}

h2{

    font-size:42px;

    line-height:1.2;

    font-weight:700;

}

h3{

    font-size:24px;

    font-weight:600;

}

p{

    color:var(--gray);

    font-size:18px;

}

.section-title{

    text-align:center;

    margin-bottom:70px;

}

.section-title span{

    color:var(--primary);

    font-weight:600;

    letter-spacing:1px;

    text-transform:uppercase;

}

.section-title h2{

    margin-top:12px;

}


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

.btn-primary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:16px 34px;

    background:var(--primary);

    color:#fff;

    border-radius:999px;

    font-weight:600;

    transition:var(--transition);

    box-shadow:0 12px 30px rgba(227,30,36,.25);

}

.btn-primary:hover{

    background:var(--primary-dark);

    transform:translateY(-4px);

}

.btn-secondary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:16px 34px;

    border-radius:999px;

    border:2px solid #fff;

    color:#fff;

    transition:var(--transition);

    font-weight:600;

}

.btn-secondary:hover{

    background:#fff;

    color:var(--dark);

}


/* =====================================================
HEADER
===================================================== */

#header{

    position:fixed;

    width:100%;

    top:0;

    left:0;

    z-index:999;

    transition:.4s;

}

.navbar{

    display:flex;

    align-items:center;

    justify-content:space-between;

    height:90px;

}

.logo img{

    height:70px;

    width:auto;

}

.nav-menu{

    display:flex;

    gap:40px;

}

.nav-menu a{

    color:var(--dark);

    font-weight:500;

    transition:.3s;

}

.nav-menu a:hover{

    color:var(--primary);

}

.menu-toggle{

    display:none;

}


/* =====================================================
HEADER AFTER SCROLL
===================================================== */

#header.scrolled{

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

    backdrop-filter:blur(15px);

    box-shadow:0 8px 30px rgba(0,0,0,.08);

}

#header.scrolled .nav-menu a{

    color:var(--dark);

}

#header.scrolled .btn-primary{

    box-shadow:none;

}


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

#hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    background-image: url("../img/hero.png");
    background-size:cover;

    background-position:center;
    background-repeat:no-repeat;

}


/* putih transparan kiri */

.hero-overlay{

position:absolute;
inset:0;

background:
linear-gradient(
90deg,
rgba(255,255,255,.95) 0%,
rgba(255,255,255,.88) 28%,
rgba(255,255,255,.62) 48%,
rgba(255,255,255,.18) 68%,
rgba(255,255,255,0) 100%
);

}

.hero-content{

    position:relative;

    z-index:5;

    max-width:650px;

}

.hero-badge{

    display:inline-block;

    padding:10px 22px;

    border-radius:999px;

    background:#fff;

    color:var(--primary);

    font-weight:600;

    box-shadow:var(--shadow);

    margin-bottom:24px;

}

.hero-content h1{

    margin-bottom:28px;

}

.hero-content p{

    font-size:20px;

    margin-bottom:35px;

    max-width:600px;

}

.hero-buttons{

    display:flex;

    gap:18px;

    margin-bottom:35px;

}

.hero-buttons .btn-secondary{

    color:var(--dark);

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

}

.hero-buttons .btn-secondary:hover{

    background:var(--dark);

    color:#fff;

}

.hero-feature{

    display:flex;

    gap:25px;

    margin-bottom:30px;

    font-weight:600;

    color:var(--dark);

}

.hero-rating{

    display:inline-block;

    background:#fff;

    border-radius:18px;

    padding:20px 24px;

    box-shadow:var(--shadow);

}

.hero-rating strong{

    color:#FFC107;

    font-size:22px;

    display:block;

    margin-bottom:8px;

}

.hero-rating p{

    font-size:15px;

    margin:0;

}


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

#hero::after{

    content:"";

    position:absolute;

    bottom:-200px;

    right:-200px;

    width:600px;

    height:600px;

    border-radius:50%;

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

    backdrop-filter:blur(30px);

}


/* =====================================================
UTILITY
===================================================== */

.text-center{

    text-align:center;

}

.mt-30{

    margin-top:30px;

}

.mb-50{

    margin-bottom:50px;

}

/*=====================================================
STATISTIC
=====================================================*/

#statistic{

    background:var(--bg);

    padding-top:70px;
    padding-bottom:70px;

}

.stats-grid{

    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;

}

.stat-card{

    background:#fff;

    border-radius:22px;

    padding:45px 25px;

    text-align:center;

    box-shadow:var(--shadow);

    transition:.35s;

    border:1px solid rgba(0,0,0,.04);

}

.stat-card:hover{

    transform:translateY(-10px);

    box-shadow:0 30px 50px rgba(0,0,0,.12);

}

.stat-card h2{

    color:var(--primary);

    font-size:52px;

    margin-bottom:10px;

}

.stat-card p{

    font-size:17px;

}


/*=====================================================
WHY US
=====================================================*/

#why{

    background:#fff;

}

.why-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.why-image{

    overflow:hidden;

    border-radius:24px;

    box-shadow:var(--shadow);

}

.why-image img{

    transition:.5s;

}

.why-image:hover img{

    transform:scale(1.08);

}

.why-content{

    display:grid;

    gap:20px;

}

.why-item{

    background:#fff;

    padding:24px 30px;

    border-radius:18px;

    box-shadow:var(--shadow);

    font-weight:600;

    transition:.3s;

    position:relative;

    padding-left:65px;

}

.why-item::before{

    content:"✔";

    position:absolute;

    left:25px;

    top:50%;

    transform:translateY(-50%);

    width:28px;

    height:28px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:14px;

}

.why-item:hover{

    transform:translateX(8px);

}


/*=====================================================
ARMADA
=====================================================*/

#armada{

    background:var(--bg);

}

.armada-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.armada-card{

    background:#fff;

    overflow:hidden;

    border-radius:22px;

    box-shadow:var(--shadow);

    transition:.35s;

}

.armada-card:hover{

    transform:translateY(-10px);

}

.armada-card img{

    height:260px;

    object-fit:cover;

    transition:.45s;

}

.armada-card:hover img{

    transform:scale(1.08);

}

.armada-card h3{

    text-align:center;

    padding:28px;

}


/*=====================================================
SERVICES
=====================================================*/

#services{

    background:#fff;

}

.service-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.service-card{

    background:#fff;

    border-radius:20px;

    box-shadow:var(--shadow);

    padding:50px 30px;

    text-align:center;

    transition:.35s;

    font-size:52px;

}

.service-card:hover{

    transform:translateY(-10px);

}

.service-card h3{

    margin-top:20px;

    font-size:22px;

}


/*=====================================================
PROCESS
=====================================================*/

#process{

    background:linear-gradient(135deg,#0F172A,#1E293B);

    color:#fff;

}

#process .section-title h2{

    color:#fff;

}

.timeline{

    display:flex;

    justify-content:space-between;

    gap:25px;

    margin-top:60px;

}

.step{

    flex:1;

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

    backdrop-filter:blur(10px);

    padding:35px 20px;

    text-align:center;

    border-radius:18px;

    position:relative;

    font-weight:600;

}

.step::after{

    content:"→";

    position:absolute;

    right:-18px;

    top:50%;

    transform:translateY(-50%);

    font-size:34px;

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

}

.step:last-child::after{

    display:none;

}


/*=====================================================
COVERAGE
=====================================================*/

#coverage{

    background:#fff;

}

.coverage-content{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:50px;

    align-items:center;

}

.coverage-map{

    border-radius:24px;

    overflow:hidden;

    box-shadow:var(--shadow);

}

.coverage-list{

    background:var(--bg);

    padding:40px;

    border-radius:20px;

}

.coverage-list ul{

    display:grid;

    gap:18px;

}

.coverage-list li{

    font-size:18px;

    font-weight:600;

    position:relative;

    padding-left:28px;

}

.coverage-list li::before{

    content:"✓";

    color:var(--primary);

    position:absolute;

    left:0;

}


/*=====================================================
TESTIMONIAL
=====================================================*/

#testimonial{

    background:var(--bg);

}

.testimonial-slider{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.testimonial-card{

    background:#fff;

    padding:40px;

    border-radius:22px;

    box-shadow:var(--shadow);

    transition:.3s;

}

.testimonial-card:hover{

    transform:translateY(-10px);

}

.testimonial-card strong{

    color:#FFC107;

    font-size:24px;

}

.testimonial-card p{

    margin:20px 0;

}

.testimonial-card h4{

    color:var(--primary);

}


/*=====================================================
FAQ
=====================================================*/

#faq{

    background:#fff;

}

.faq-list{

    max-width:900px;

    margin:auto;

}

.faq-item{

    background:var(--bg);

    padding:25px 30px;

    margin-bottom:20px;

    border-radius:18px;

    cursor:pointer;

    transition:.3s;

    position:relative;

    font-weight:600;

}

.faq-item:hover{

    background:#fff;

    box-shadow:var(--shadow);

}

.faq-item::after{

    content:"+";

    position:absolute;

    right:30px;

    font-size:28px;

}


/*=====================================================
CTA
=====================================================*/

#contact{

    background:linear-gradient(135deg,var(--primary),#B91C1C);

}

.cta-box{

    text-align:center;

    color:#fff;

}

.cta-box h2{

    color:#fff;

    font-size:54px;

    margin-bottom:20px;

}

.cta-box p{

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

    margin-bottom:40px;

}

.cta-box .btn-primary{

    background:#fff;

    color:var(--primary);

    box-shadow:none;

}

.cta-box .btn-primary:hover{

    transform:translateY(-5px);

}


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

footer{

    background:#0F172A;

    color:#fff;

    padding:80px 0 30px;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:60px;

}

footer img{

    width:220px;

    margin-bottom:25px;

}

footer p{

    color:#CBD5E1;

}

footer h3{

    margin-bottom:20px;

}

footer li{

    color:#CBD5E1;

    margin-bottom:12px;

    cursor:pointer;

    transition:.3s;

}

footer li:hover{

    color:#fff;

    padding-left:6px;

}

.copyright{

    margin-top:70px;

    padding-top:25px;

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

    text-align:center;

    color:#94A3B8;

}


/*=====================================================
SCROLLBAR
=====================================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:20px;

}

::-webkit-scrollbar-track{

    background:#ECECEC;

}

/*=====================================================
ANIMATION
======================================================*/

.fade-up{

    opacity:0;

    transform:translateY(50px);

    transition:1s;

}

.fade-left{

    opacity:0;

    transform:translateX(-60px);

    transition:1s;

}

.fade-right{

    opacity:0;

    transform:translateX(60px);

    transition:1s;

}

.show{

    opacity:1;

    transform:translate(0,0);

}


/* Hover Premium */

.armada-card,
.service-card,
.stat-card,
.testimonial-card,
.why-item{

    will-change:transform;

}


/* Button Ripple */

.btn-primary{

    position:relative;

    overflow:hidden;

}

.btn-primary::before{

    content:"";

    position:absolute;

    width:0;

    height:0;

    border-radius:50%;

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

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    transition:.5s;

}

.btn-primary:hover::before{

    width:350px;

    height:350px;

}

/*=============================
ACTIVE NAVIGATION
=============================*/

.nav-menu a.active{

    color:var(--primary);

    font-weight:600;

}


/*=============================
FAQ
=============================*/

.faq-item{

    overflow:hidden;

}

.faq-item.open{

    background:#fff;

    box-shadow:var(--shadow);

}

.faq-item.open::after{

    content:"−";

}


/*=============================
BACK TO TOP
=============================*/

.top-button{

    position:fixed;

    right:30px;

    bottom:30px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    font-size:22px;

    cursor:pointer;

    box-shadow:var(--shadow);

    opacity:0;

    visibility:hidden;

    transition:.3s;

    z-index:999;

}

.top-button.show{

    opacity:1;

    visibility:visible;

}

.top-button:hover{

    transform:translateY(-5px);

}


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

@media(max-width:992px){

.nav-menu{

    position:absolute;

    top:90px;

    left:5%;

    width:90%;

    background:#fff;

    border-radius:20px;

    padding:25px;

    display:flex;

    flex-direction:column;

    gap:18px;

    box-shadow:var(--shadow);

    opacity:0;

    visibility:hidden;

    transform:translateY(-20px);

    transition:.3s;

}

.nav-menu.open{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.nav-menu a{

    color:var(--dark);

}

}

.wa-button{

position:fixed;

right:30px;

bottom:100px;

width:60px;

height:60px;

border-radius:50%;

background:#25D366;

display:flex;

align-items:center;

justify-content:center;

font-size:32px;

color:white;

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

z-index:999;

transition:.3s;

}

.wa-button:hover{

transform:scale(1.08);

}

#header{

backdrop-filter:blur(20px);

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

}

.armada-card:hover,
.service-card:hover,
.stat-card:hover,
.testimonial-card:hover{

transform:translateY(-12px);

box-shadow:

0 30px 70px rgba(0,0,0,.12);

}

section{

position:relative;

}

section::after{

content:"";

position:absolute;

bottom:0;

left:50%;

transform:translateX(-50%);

width:120px;

height:3px;

background:#E31E24;

opacity:.08;

}

#hero::before{

content:"";

position:absolute;

right:-120px;

top:120px;

width:450px;

height:450px;

background:#E31E24;

filter:blur(180px);

opacity:.12;

border-radius:50%;

}

footer{

background:

linear-gradient(

180deg,

#111827,

#0F172A

);

}

::-webkit-scrollbar{

width:12px;

}

::-webkit-scrollbar-thumb{

background:

linear-gradient(

180deg,

#E31E24,

#B91C1C

);

border-radius:20px;

}


/*=====================================
OTHER SERVICES
=====================================*/

#other-services{

    background:#F8FAFC;

}

.other-services-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

    margin-top:60px;

}

.other-card{

    background:#fff;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 18px 45px rgba(0,0,0,.08);

    transition:.35s;

    border:1px solid rgba(0,0,0,.05);

}

.other-card:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 60px rgba(0,0,0,.12);

}

.other-image{

    height:260px;

    overflow:hidden;

}

.other-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.5s;

}

.other-card:hover img{

    transform:scale(1.08);

}

.other-body{

    padding:35px;

}

.other-icon{

    width:70px;

    height:70px;

    border-radius:50%;

    background:#fff;

    color:var(--primary);

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:30px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    margin-top:-70px;

    position:relative;

    z-index:2;

}

.other-body h3{

    margin-top:25px;

    margin-bottom:18px;

}

.other-body p{

    margin-bottom:22px;

    color:#555;

}

.other-body ul{

    display:grid;

    gap:12px;

    margin-bottom:30px;

}

.other-body li{

    list-style:none;

    position:relative;

    padding-left:28px;

}

.other-body li::before{

    content:"✔";

    position:absolute;

    left:0;

    color:var(--primary);

}

.btn-outline{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:100%;

    height:55px;

    border-radius:12px;

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

    color:var(--primary);

    font-weight:600;

    transition:.3s;

}

.btn-outline:hover{

    background:var(--primary);

    color:#fff;

}