.travel-box .route-city{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
}

/* ===========================
   VIEKA TRANS
=========================== */

.travel-box{
    max-width:1200px;
    margin:auto;
    background:#fff;
    border-radius:15px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    overflow:hidden;
    font-family:'Poppins',sans-serif;
}

.travel-box *,
.travel-box *::before,
.travel-box *::after{
    box-sizing:border-box;
}

/* ===========================
   HEADER
=========================== */

.travel-box .header-title{
    background:#661CEB;
    color:#fff;
    padding:18px;
    text-align:center;
    font-size:22px;
    font-weight:700;
    line-height:1.4;
}

/* ===========================
   FILTER
=========================== */

.travel-box .filter-box{
    display:grid;
    grid-template-columns:2fr 1fr 1fr auto;
    gap:15px;
    padding:20px;
    background:#fafafa;
    border-bottom:1px solid #ececec;
}

.travel-box .filter-box input,
.travel-box .filter-box select{
    width:100%;
    height:48px;
    padding:0 15px;
    border:1px solid #ddd;
    border-radius:8px;
    outline:none;
    font-size:14px;
    font-family:inherit;
    transition:.25s;
}

.travel-box .filter-box input:focus,
.travel-box .filter-box select:focus{
    border-color:#661CEB;
    box-shadow:0 0 0 3px rgba(102,28,235,.12);
}

.travel-box .reset-btn{
    height:48px;
    padding:0 22px;
    background:#661CEB;
    color:#fff;
    border:none;
    border-radius:8px;
    cursor:pointer;
    font-weight:600;
    font-family:inherit;
    transition:.25s;
}

.travel-box .reset-btn:hover{
    background:#5213d1;
}

/* ===========================
   ROUTE LIST
=========================== */

.travel-box .route-item{
    display:grid;
    grid-template-columns:60px 1fr auto;
    align-items:center;
    gap:20px;
    padding:18px 20px;
    border-bottom:1px solid #ececec;
    position:relative;
    transition:all .25s ease;
}

.travel-box .route-item::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:4px;
    height:100%;
    background:#661CEB;
    transform:scaleY(0);
    transition:.25s;
}

.travel-box .route-item:hover{
    background:#faf5ff;
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(102,28,235,.08);
}

.travel-box .route-item:hover::before{
    transform:scaleY(1);
}

.travel-box .route-no{
    font-size:15px;
    font-weight:600;
    color:#444;
}

.travel-box .route-city{
    display:grid;
    grid-template-columns:1fr 1fr 1fr 1fr;
    align-items:center;
    width:100%;
}

.travel-box .asal,
.travel-box .tujuan{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:15px;
    font-weight:700;
    text-transform:uppercase;
}

.travel-box .asal{
    justify-content:flex-start;
}

.travel-box .tujuan{
    justify-content:flex-start;
}

.travel-box .asal i,
.travel-box .tujuan i{
    color:#661CEB;
    font-size:16px;
}

.travel-box .route-arrow{
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:24px;
    font-weight:700;
}

/* ===========================
   BUTTON
=========================== */

.travel-box .btn-group{
    display:flex;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.travel-box .btn-wa{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 16px;
    background:#661CEB;
    color:#fff;
    border-radius:50px;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    transition:.25s;
}

.travel-box .btn-wa:hover{
    background:#4f0fd1;
    color:#fff;
}

.travel-box .btn-form{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 16px;
    background:#fff;
    color:#661CEB;
    border:1px solid #661CEB;
    border-radius:50px;
    cursor:pointer;
    font-size:13px;
    font-weight:600;
    transition:.25s;
}

.travel-box .btn-form:hover{
    background:#661CEB;
    color:#fff;
}

/* ===========================
   PAGINATION
=========================== */

.travel-box .pagination{
    display:flex;
    justify-content:center;
    gap:8px;
    padding:20px;
    flex-wrap:wrap;
}

.travel-box .page-btn{
    width:42px;
    height:42px;
    border:none;
    border-radius:8px;
    cursor:pointer;
    background:#f2ecff;
    color:#661CEB;
    font-weight:600;
    transition:.25s;
}

.travel-box .page-btn:hover,
.travel-box .page-btn.active{
    background:#661CEB;
    color:#fff;
}

.travel-box .page-btn:disabled{
    opacity:.45;
    cursor:not-allowed;
}

/* ===========================
   EMPTY
=========================== */

.travel-box .no-data{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:180px;
    text-align:center;
    color:#777;
    font-size:16px;
    font-weight:500;
}

/* ===========================
   MOBILE
=========================== */

@media (max-width:500px){

    /* HEADER */

    .travel-box .header-title{
        font-size:18px;
    }

    /* FILTER */

    .travel-box .filter-box{
        grid-template-columns:1fr;
        padding:15px;
        gap:12px;
    }

    .travel-box .filter-box input,
    .travel-box .filter-box select,
    .travel-box .reset-btn{
        width:100%;
    }

    .travel-box .reset-btn{
        height:48px;
    }

    /* ROUTE */

    .travel-box .route-item{
        display:grid;
        grid-template-columns:20px 1fr;
        grid-template-areas:
            "no city"
            "button button";
        gap:5px;
        padding:25px 10px;
    }

    .travel-box .route-no{
        grid-area:no;
        margin-top:8px;
    }

    .travel-box .route-city{
         grid-area:city;
        display:grid;
        grid-template-columns:1fr 1fr 1fr 1fr;
        align-items:center;
        width:100%;
    }

    

    .travel-box .btn-group{
        grid-area:button;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:10px;
        width:90%;
        margin-top:8px;
        margin-left: 22px;
    }
    
    .travel-box .btn-group .btn-wa,
    .travel-box .btn-group .btn-form{
        width:100%;
        height:42px;
        padding:0;
        justify-content:center;
        min-width: 0;
    }
    
    .travel-box .badge-box {
        margin-left: 0px !important;
        position: absolute;
        top: 7px;
        right: 7px;
    }
    
    .travel-box .asal{
        display:flex;
        justify-content:flex-start;
        align-items:center;
        gap:5px;
        text-align:left;
    }

    .travel-box .route-arrow{
        display:flex;
        justify-content:center;
        align-items:center;
        font-size:22px;
    }
    
    .travel-box .tujuan{
        display:flex;
        justify-content:flex-start;
        align-items:center;
        gap:5px;
        flex-direction:row;
        line-height: 10px;
    }
}

/* ===========================
   BADGE PP & Box
=========================== */
.travel-box .badge-box{
    display:flex;
    align-items:center;
    justify-content:flex-start;
}

.travel-box .badge-pp{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width:34px;

    margin-left:8px;

    padding:2px 8px;

    background:#16a34a;

    color:#fff;

    border-radius:30px;

    font-size:11px;

    font-weight:700;

    line-height:1.5;

}

.travel-box .badge-empty{

    display:inline-block;

    width:34px;

    margin-left:8px;

}