:root {
    --bs-component-hover-bg: #2e73ff;
    --bs-component-hover-color: #fff;
    --bs-dropdown-bg: #fff;
    --bs-dropdown-box-shadow: 0 0 0 0.15rem rgba(90, 90, 90, 0.25);
}

body {
    scroll-behavior: smooth;
    width: 100%;
    overflow-x: hidden;
}

header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    /* background: transparent !important; */
    box-shadow: none;
    z-index: 1030;
    color: #fff;
}

h1,
h2,
h3,
h4,
h5,
p {
    font-family: "Roboto", sans-serif !important;
}

.navbar-collapse {
    justify-content: end;
    gap: 1.5rem;
}

.landingSlider {
    margin-top: 0;
    /* jangan ditarik ke atas */
}

.carousel-item img {
    /* height: 100vh; */
    object-fit: cover;
}

.carousel-caption {
    top: 20%;
    z-index: 5;
}

.carousel-caption h4 {
    color: #fff;
    font-size: 3rem;
    font-weight: 600;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.carousel-caption h5 {
    color: #fff;
    font-size: 2.8rem;
    font-weight: 600;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.carousel-caption p {
    color: #fff;
    font-size: 1rem;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

.carousel-control-next,
.carousel-control-prev {
    opacity: 1;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: white;
    border-radius: 50%;
    padding: 0.7rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    width: 2.5rem;
    height: 2.5rem;
    background-size: 60% 60%;
    background-image: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel-control-prev-icon::after {
    content: "\2039";
    font-size: 2rem;
    color: black;
}

.carousel-control-next-icon::after {
    content: "\203A";
    font-size: 2rem;
    color: black;
}

.btn-primary-light {
    background-color: #28a972;
    border-color: #28a972;
    color: #fff;
    border-radius: 0.5rem;
}

.btn-primary-light:hover {
    background-color: #218f63;
    border-color: #218f63;
    color: #fff;
}

.btn-success-timeline {
    background: linear-gradient(90deg, #d4f66d 0%, #109f62 100%);
    border: none;
    color: white;
    padding: 0.5rem 1rem;
}

.btn-success-timeline:hover {
    background: linear-gradient(90deg, #c3e45f 0%, #0e8f56 100%);
    color: white;
}

.icon-social {
    display: flex;
    overflow: hidden;
}

.what-us {
    background: radial-gradient(
        circle at top left,
        rgba(212, 246, 109, 0.9) 0%,
        #109f62 40%,
        #109f62 80%
    );
}

.how-to-follow {
    margin-top: 4rem;
    margin-bottom: 4rem;
}

.how-to-follow .container-fluid {
    padding: 0;
}

.card-number {
    position: absolute;
    top: -15px;
    left: -15px;
    background: #109f62;
    color: #fff;
    font-weight: 600;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.step-follow {
    margin-top: 4rem;
    margin-bottom: 4rem;
}

.step-follow .nav-pills .nav-link {
    border-radius: 0;
    text-align: left;
    padding: 12px 15px;
    color: #333;
}

.step-follow .nav-pills .nav-link.active {
    background-color: #f5f6f8;
    color: #212529;
    font-weight: 600;
    border-radius: 8px;
    border-left: 6px solid #109f62;
    padding: 8px 16px;
}

.step-follow .nav-pills .nav-link {
    width: 100%;
    border-radius: 8px;
    padding: 8px 16px;
    color: #495057;
    font-weight: 500;
}

.step-follow .timeline {
    position: relative;
    padding-left: 30px;
    border-left: 2px dashed #88c78f;
}

.step-follow .timeline-item {
    position: relative;
    margin-bottom: 20px;
}

.step-follow .timeline-icon {
    position: absolute;
    left: -2.4rem;
    top: 0;
    width: 16px;
    height: 16px;
    background: #109f62;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 10px;
}

.step-follow .timeline-content {
    padding-left: 15px;
    font-size: 1rem;
    color: #333;
}

.ul-check {
    list-style: none;
    /* hilangkan default bullet */
    padding-left: 0;
    margin: 0;
}

.ul-check li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 8px;
}

.ul-check li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    color: #313131;
    font-weight: bold;
    font-size: 1.2rem;
    line-height: 1;
}

.statistic-student-participant .chartMenu {
    width: 100vw;
    height: 40px;
    background: #1a1a1a;
    color: rgba(255, 26, 104, 1);
}

.statistic-student-participant .chartMenu p {
    padding: 10px;
    font-size: 20px;
}

.chartBox {
    padding: 0px;
}

#statisticGrapAnimo {
    width: 100%;
    height: 400px !important;
}

.text-edit {
    color: #3b82f6;
}

.mySwiper .swiper-button-prev,
.mySwiper .swiper-button-next {
    color: #109f62 !important;
}

.mySwiper .swiper-button-next:after,
.mySwiper .swiper-button-prev:after {
    font-size: 2rem !important;
    font-weight: 700;
}

.mySwiper .swiper-pagination-bullets {
    bottom: -4px !important;
}

.mySwiper .swiper-pagination-bullet-active {
    background: #109f62 !important;
}

@media (max-width: 995px) {
    .what-us {
        display: none;
    }
}

@media (max-width: 1024px) {
    .carousel-caption h4 {
        color: #fff;
        font-size: 2rem;
        font-weight: 600;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    }

    .carousel-caption h5 {
        color: #fff;
        font-size: 1.8rem;
        font-weight: 600;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    }

    .carousel-caption p {
        color: #fff;
        font-size: 1.2rem;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
    }

    .how-to-follow .container-fluid {
        padding: 0 4rem;
    }

    .step-follow .container-fluid {
        padding: 0 4rem;
    }

    .statistics-student-participant .container-fluid {
        padding: 0 4rem;
    }

    .news .container-fluid {
        padding: 0 4rem;
    }
}

@media (max-width: 768px) {
    .carousel-item img {
        height: 80vh;
    }

    .carousel-caption {
        top: 15%;
    }

    .carousel-caption h4 {
        color: #fff;
        font-size: 1.8rem;
        font-weight: 600;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    }

    .carousel-caption h5 {
        color: #fff;
        font-size: 1.4rem;
        font-weight: 600;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    }

    .carousel-caption p {
        color: #fff;
        font-size: 0.8rem;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
    }

    .carousel-control-prev-icon,
    .carousel-control-next-icon {
        width: 2rem;
        height: 2rem;
    }

    .carousel-control-prev-icon::after {
        font-size: 1.5rem;
    }

    .carousel-control-next-icon::after {
        font-size: 1.5rem;
    }

    .how-to-follow .container-fluid {
        padding: 0 2rem;
    }

    .step-follow .container-fluid {
        padding: 0 2rem;
    }

    .step-follow .nav-pills .nav-link {
        margin-bottom: 0.5rem;
    }

    .statistics-student-participant .container-fluid {
        padding: 0 2rem;
    }

    .news .container-fluid {
        padding: 0 2rem;
    }

    .icon-social {
        flex-wrap: wrap;
        flex-direction: row;
    }

    .step-follow .timeline {
        padding-left: 10px;
    }

    .step-follow .timeline-icon {
        left: -1.1rem;
    }
}
