/* Container untuk timeline */
.cbp_tmtimeline {
    margin: 0;
    padding: 0;
    list-style: none;
    position: relative;
}

/* Garis vertikal yang menghubungkan elemen timeline */
.cbp_tmtimeline::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #eee;
    left: 20%;   /* Posisi garis vertikal di desktop */
    margin-left: -6px;
}

/* Setiap item timeline */
.cbp_tmtimeline > li {
    position: relative;
}

/* Menyesuaikan item pertama di timeline */
.cbp_tmtimeline > li:first-child .cbp_tmtime span.large {
    color: #444;
    font-size: 17px !important;
    font-weight: 700;
}

/* Ikon pertama di timeline */
.cbp_tmtimeline > li:first-child .cbp_tmicon {
    background: #fff;
    color: #666;
}

/* Menyesuaikan timeline item untuk elemen dengan urutan ganjil */
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmtime span:last-child {
    color: #444;
    font-size: 13px;
}

/* Mengatur label untuk item ganjil */
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel {
    background: #f0f1f3;
}

/* Menyesuaikan border untuk label item ganjil */
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after {
    border-right-color: #f0f1f3;
}

/* Menyesuaikan warna dan style untuk item yang kosong */
.cbp_tmtimeline > li .empty span {
    color: #777;
}

/* Styling untuk waktu dan tanggal */
.cbp_tmtimeline > li .cbp_tmtime {
    display: block;
    width: 20%;
    text-align: right;
    padding-right: 30px;
    position: absolute;
}

/* Menyesuaikan tampilan waktu dan tanggal */
.cbp_tmtime span {
    display: block;
    text-align: right;
}

/* Menyesuaikan font untuk waktu pertama */
.cbp_tmtimeline > li .cbp_tmtime span:first-child {
    font-size: 15px;
    color: #3d4c5a;
    font-weight: 700;
}

/* Menyesuaikan font untuk waktu terakhir */
.cbp_tmtimeline > li .cbp_tmtime span:last-child {
    font-size: 14px;
    color: #444;
}

/* Label status */
.cbp_tmtimeline > li .cbp_tmlabel {
    margin: 0 0 15px 25%;
    background: #f0f1f3;
    padding: 1.2em;
    position: relative;
    border-radius: 5px;
}

/* Menyesuaikan posisi panah label */
.cbp_tmtimeline > li .cbp_tmlabel:after {
    right: 100%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-right-color: #f0f1f3;
    border-width: 10px;
    top: 10px;
}

/* Mengatur ukuran teks dalam blockquote */
.cbp_tmtimeline > li .cbp_tmlabel blockquote {
    font-size: 16px;
}

/* Menyesuaikan tampilan map-checkin */
.cbp_tmtimeline > li .cbp_tmlabel .map-checkin {
    border: 5px solid rgba(235, 235, 235, 0.2);
    box-shadow: 0px 0px 0px 1px #ebebeb;
    background: #fff !important;
}

/* Menyesuaikan ukuran judul label */
.cbp_tmtimeline > li .cbp_tmlabel h2 {
    margin: 0px;
    padding: 0 0 10px 0;
    line-height: 26px;
    font-size: 16px;
    font-weight: normal;
}

/* Menyesuaikan ukuran link di judul label */
.cbp_tmtimeline > li .cbp_tmlabel h2 a {
    font-size: 15px;
}

/* Menambahkan efek hover pada link di label */
.cbp_tmtimeline > li .cbp_tmlabel h2 a:hover {
    text-decoration: none;
}

/* Menyesuaikan ukuran font di span label */
.cbp_tmtimeline > li .cbp_tmlabel h2 span {
    font-size: 15px;
}

/* Menyesuaikan tampilan teks di label */
.cbp_tmtimeline > li .cbp_tmlabel p {
    color: #444;
}

/* Menyesuaikan ukuran ikon status */
.cbp_tmtimeline > li .cbp_tmicon {
    width: 40px;
    height: 40px;
    font-size: 1.4em;
    line-height: 40px;
    background: #46a4da;
    border-radius: 50%;
    box-shadow: 0 0 0 5px #f5f5f6;
    color: #fff;
    text-align: center;
    position: absolute;
    left: 20%;
    top: 0;
    margin: 0 0 0 -20px;
}

/* Media Query untuk tampilan tablet */
@media screen and (max-width: 992px) and (min-width: 768px) {
    .cbp_tmtimeline > li .cbp_tmtime {
        padding-right: 60px;
    }
}

/* Media Query untuk tampilan mobile (kecil) */
@media screen and (max-width: 47.2em) {
    /* **JANGAN SEMBUNYIKAN GARIS VERTIKAL DI MOBILE** */
    .cbp_tmtimeline:before {
        /* display: none; */ /* Hapus atau komentari baris ini */
        left: 20px; /* Atur posisi garis vertikal untuk mobile */
        margin-left: 0; /* Hapus margin negatif */
    }

    /* Menyusun ulang elemen timeline untuk mobile */
    .cbp_tmtimeline > li .cbp_tmtime {
        width: 100%;
        position: relative;
        padding: 0 0 20px 0;
        padding-left: 60px; /* Tambahkan padding agar tidak menimpa garis */
    }

    .cbp_tmtimeline > li .cbp_tmtime span {
        text-align: left;
    }

    /* Menyesuaikan label status untuk mobile */
    .cbp_tmtimeline > li .cbp_tmlabel {
        margin: 0 0 30px 60px; /* Sesuaikan margin kiri agar tidak menimpa garis */
        padding: 1em;
        font-weight: 400;
        font-size: 95%;
    }

    /* Menyesuaikan panah di label status untuk mobile */
    .cbp_tmtimeline > li .cbp_tmlabel:after {
        right: auto;
        left: 40px; /* Sesuaikan posisi panah agar sesuai dengan garis */
        border-right-color: transparent;
        border-bottom-color: #f0f1f3; /* Pastikan warnanya sesuai background label */
        top: -20px;
    }

    /* Menyusun ikon menjadi lebih kecil dan posisinya menyesuaikan */
    .cbp_tmtimeline > li .cbp_tmicon {
        position: absolute; /* Ubah menjadi absolute agar sejajar dengan garis */
        left: 20px; /* Sesuaikan posisi left agar sejajar dengan garis */
        top: 0; /* Sesuaikan posisi top */
        margin: 0; /* Hapus margin yang tidak perlu */
        transform: translateX(-50%); /* Pusatkan ikon pada garis */
    }

    /* Menyesuaikan label untuk elemen ganjil */
    .cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after {
        border-right-color: transparent;
        border-bottom-color: #f0f1f3; /* Pastikan warnanya sesuai background label */
    }
}