* {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}
/* Kembalikan font untuk elemen Font Awesome */
.fa, .fas, .far, .fal, .fad, .fab {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900; /* atau 400 tergantung ikon */
}
/* Regular 400 */
@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('fonts/PlusJakartaSans-Regular.woff2?v=1') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Bold 700 */
@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('fonts/PlusJakartaSans-Bold.woff2?v=1') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Italic 400 */
@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('fonts/PlusJakartaSans-Italic.woff2?v=1') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

/********** Template CSS **********/
:root {
    --primary:#800000; /*REVISED*/
    --light: #F5F5F5;
    --dark: #353535;
    --bs-font-sans-serif: 'Plus Jakarta Sans';    
}

.fw-medium {
    font-weight: 500 !important;
}

.fw-bold {
    font-weight: 700 !important;
}

.fw-black {
    font-weight: 900 !important;
}

.back-to-top {
    position: fixed;
    display: none;
    right: 45px;
    bottom: 45px;
    z-index: 99;
}


/*** Spinner ***/
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}

#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}


/*** Button ***/
.btn {
    font-weight: 500;
    transition: .5s;
}

/*REVISED*/
.btn.btn-primary,
.btn.btn-secondary {
    color: #FFFFFF;
    border-radius: 5px;
    margin: 10px 0;
    padding: 2px 12px; /* Ukuran padding diperkecil */
    line-height: 1.5; /* Untuk alignment vertikal yang tepat */
    height: auto; /* Mengizinkan tinggi menyesuaikan konten */
    display: inline-flex; /* Untuk alignment yang lebih baik */
    align-items: center; /* Center vertikal */
    justify-content: center; /* Center horizontal */
}

 /*REVISED*/
.btn.btn-additional {
    color: inherit;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
}

.btn-square {
    width: 38px;
    height: 38px;
}

.btn-sm-square {
    width: 32px;
    height: 32px;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
}

/*** NAVBAR ***/

/* Dropdown arrow */
.navbar .dropdown-toggle::after {
    border: none;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    vertical-align: middle;
    margin-left: 8px;
}

/* Default nav-link */
.navbar-light .navbar-nav .nav-link {
    margin-right: 30px;
    padding: 5px 0;
    font-size: 17px;
    font-weight: 400;
    color: #667085;
    outline: none;
    transition: color .3s ease, border-bottom .3s ease;
}

.navbar-light .navbar-nav .nav-link {
    border-bottom: 2px solid transparent; /* tambahkan */
}

/* Hover state (hanya garis, warna teks tetap abu) */
.navbar-light .navbar-nav .nav-link:hover {
    color: #667085; /* tetap abu */
    border-bottom: 2px solid #800000 !important;
}

/* Active state (teks merah + garis merah) */
.navbar-light .navbar-nav .nav-link.active {
    color: #800000; /* teks merah */
    border-bottom: 2px solid #800000 !important;
}

/* KECUALIKAN dropdown toggle dari underline */
.navbar-light .navbar-nav .nav-link.dropdown-toggle,
.navbar-light .navbar-nav .nav-link.dropdown-toggle:hover {
    border-bottom: none !important;
}

/* Utilities */
.no-line,
.no-border {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Brand & Button sizing */
.navbar-light .navbar-brand,
.navbar-light a.btn {
    height: 35px;   /* REVISED */
}

/* Sticky behavior */
.navbar-light.sticky-top {
    top: -100px;
    transition: .5s;
}

/* ===============================
   MOBILE STYLES (max 991.98px)
   =============================== */
@media (max-width: 991.98px) {
    .navbar-light .navbar-nav {
        border-top: 1px solid #EEEEEE;
    }

    .navbar-light .navbar-nav .nav-link {
        display: inline-block;   /* agar underline sesuai teks */
        width: auto;
        margin-right: 0;
        padding: 10px 0;
    }

    /* Hilangkan garis bawah di mobile */
    .navbar-light .navbar-nav .nav-link.active,
    .navbar-light .navbar-nav .nav-link:hover {
        border-bottom: none !important;
    }
}

/* ===============================
   DESKTOP STYLES (min 992px)
   =============================== */
@media (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: block;
        border: none;
        margin-top: 0;
        top: 150%;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
    }

    .navbar .nav-item:hover .dropdown-menu {
        top: 100%;
        opacity: 1;
        visibility: visible;
    }
}



/*** Header ***/
/* @media (max-width: 768px) {
    .header-carousel .owl-carousel-item {
        position: relative;
        min-height: 500px;
    }
    
    .header-carousel .owl-carousel-item img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .header-carousel .owl-carousel-item h5,
    .header-carousel .owl-carousel-item p {
        font-size: 14px !important;
        font-weight: 400 !important;
    }

    .header-carousel .owl-carousel-item h1 {
        font-size: 30px;
        font-weight: 600;
    }
}

.header-carousel .owl-nav {
    position: absolute;
    width: 200px;
    height: 45px;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: space-between;
}

.header-carousel .owl-nav .owl-prev,
.header-carousel .owl-nav .owl-next {
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    background: transparent;
    border: 1px solid #FFFFFF;
    font-size: 22px;
    transition: .5s;
}

.header-carousel .owl-nav .owl-prev:hover,
.header-carousel .owl-nav .owl-next:hover {
    background: var(--primary);
    border-color: var(--primary);
}

.header-carousel .owl-dots {
    position: absolute;
    height: 45px;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.header-carousel .owl-dot {
    position: relative;
    display: inline-block;
    margin: 0 5px;
    width: 15px;
    height: 15px;
    background: transparent;
    border: 1px solid #FFFFFF;
    transition: .5s;
}

.header-carousel .owl-dot::after {
    position: absolute;
    content: "";
    width: 5px;
    height: 5px;
    top: 4px;
    left: 4px;
    background: transparent;
    border: 1px solid #FFFFFF;
}

.header-carousel .owl-dot.active {
    background: var(--primary);
    border-color: var(--primary);
}

.page-header {
    background: linear-gradient(rgba(53, 53, 53, .7), rgba(53, 53, 53, .7)), url(../img/carousel-1.jpg) center center no-repeat;
    background-size: cover;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: var(--light);
} */


/*** Section Title ***/
/* .section-title h1 {
    position: relative;
    display: inline-block;
    padding: 0 60px;
}

.section-title.text-start h1 {
    padding-left: 0;
}

.section-title h1::before,
.section-title h1::after {
    position: absolute;
    content: "";
    width: 45px;
    height: 5px;
    bottom: 0;
    background: var(--dark);
}

.section-title h1::before {
    left: 0;
}

.section-title h1::after {
    right: 0;
}

.section-title.text-start h1::before {
    display: none;
} */


/*** About ***/
/* @media (min-width: 992px) {
    .container.about {
        max-width: 100% !important;
    }

    .about-text  {
        padding-right: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .about-text  {
        padding-right: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .about-text  {
        padding-right: calc(((100% - 1320px) / 2) + .75rem);
    }
} */


/*** Service ***/
/* .service-item img {
    transition: .5s;
}

.service-item:hover img {
    transform: scale(1.1);
} */


/*** Feature ***/
/* @media (min-width: 992px) {
    .container.feature {
        max-width: 100% !important;
    }

    .feature-text  {
        padding-left: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .feature-text  {
        padding-left: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .feature-text  {
        padding-left: calc(((100% - 1320px) / 2) + .75rem);
    }
} */


/*** Project Portfolio ***/
/* #portfolio-flters li {
    display: inline-block;
    font-weight: 500;
    color: var(--dark);
    cursor: pointer;
    transition: .5s;
    border-bottom: 2px solid transparent;
}

#portfolio-flters li:hover,
#portfolio-flters li.active {
    color: var(--primary);
    border-color: var(--primary);
}

.portfolio-item img {
    transition: .5s;
}

.portfolio-item:hover img {
    transform: scale(1.1);
}

.portfolio-item .portfolio-overlay {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 0;
    height: 0;
    bottom: 0;
    left: 50%;
    background: rgba(53, 53, 53, .7);
    transition: .5s;
}

.portfolio-item:hover .portfolio-overlay {
    width: 100%;
    height: 100%;
    left: 0;
}

.portfolio-item .portfolio-overlay .btn {
    opacity: 0;
}

.portfolio-item:hover .portfolio-overlay .btn {
    opacity: 1;
} */


/*** Quote ***/
/* @media (min-width: 992px) {
    .container.quote {
        max-width: 100% !important;
    }

    .quote-text  {
        padding-right: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .quote-text  {
        padding-right: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .quote-text  {
        padding-right: calc(((100% - 1320px) / 2) + .75rem);
    }
} */


/*** Team ***/
/* .team-item img {
    transition: .5s;
}

.team-item:hover img {
    transform: scale(1.1);
}

.team-item .team-social {
    position: absolute;
    width: 38px;
    top: 50%;
    left: -38px;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    background: #FFFFFF;
    transition: .5s;
}

.team-item .team-social .btn {
    color: var(--primary);
    background: #FFFFFF;
}

.team-item .team-social .btn:hover {
    color: #FFFFFF;
    background: var(--primary);
}

.team-item:hover .team-social {
    left: 0;
} */


/*** Testimonial ***/
/* .testimonial-carousel::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    z-index: 1;
}

.testimonial-carousel::after {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    z-index: 1;
}

@media (min-width: 768px) {
    .testimonial-carousel::before,
    .testimonial-carousel::after {
        width: 200px;
    }
}

@media (min-width: 992px) {
    .testimonial-carousel::before,
    .testimonial-carousel::after {
        width: 300px;
    }
}

.testimonial-carousel .owl-item .testimonial-text {
    border: 5px solid var(--light);
    transform: scale(.8);
    transition: .5s;
}

.testimonial-carousel .owl-item.center .testimonial-text {
    transform: scale(1);
}

.testimonial-carousel .owl-nav {
    position: absolute;
    width: 350px;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: space-between;
    opacity: 0;
    transition: .5s;
    z-index: 1;
}

.testimonial-carousel:hover .owl-nav {
    width: 300px;
    opacity: 1;
}

.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next {
    position: relative;
    color: var(--primary);
    font-size: 45px;
    transition: .5s;
}

.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover {
    color: var(--dark);
} */


/*** Contact ***/
/* @media (min-width: 992px) {
    .container.contact {
        max-width: 100% !important;
    }

    .contact-text  {
        padding-left: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .contact-text  {
        padding-left: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .contact-text  {
        padding-left: calc(((100% - 1320px) / 2) + .75rem);
    }
} */


/*** Footer ***/
.footer {
    background: linear-gradient(rgba(53, 53, 53, .7), rgba(53, 53, 53, .7)), url(../img/footer.jpg) center center no-repeat;
    background-size: cover;
}

.footer .btn.btn-social {
    margin-right: 5px;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--light);
    border: 1px solid #FFFFFF;
    transition: .3s;
}

.footer .btn.btn-social:hover {
    color: var(--primary);
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    color: #FFFFFF;
    font-size: 15px;
    font-weight: normal;
    text-transform: capitalize;
    transition: .3s;
}

.footer .btn.btn-link::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
}

.footer .btn.btn-link:hover {
    color: var(--primary);
    letter-spacing: 1px;
    box-shadow: none;
}

.footer .copyright {
    padding: 25px 0;
    font-size: 15px;
    border-top: 1px solid rgba(256, 256, 256, .1);
}

.footer .copyright a {
    color: var(--light);
}

.footer .copyright a:hover {
    color: var(--primary);
}

 /** ADDITIONAL ****************************/

 /* Hilangkan tag2 hanya di layar < 768px */
@media (max-width: 768px) {
  .hide-mobile {
    display: none !important;
  }
}

/* CSS lengkap untuk mengganti deteksi layar dan memastikan footer tetap muncul */

.desktop-only {
    display: block;
}

.mobile-only {
    display: none;
}

/* Media Query untuk perangkat mobile */
@media only screen and (max-width: 768px), (hover: none) and (pointer: coarse) {
    :root {
        --font-size-base: 0.9rem;
    }

    .header {
        background-color: var(--mobile-primary);
        padding: 0.8rem;
    }

    .desktop-only {
        display: none !important;
    }

    .mobile-only {
        display: block !important;
        overflow: visible !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }

    body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    padding-top: 56px;
    /* font-family: var(--bs-font-sans-serif); */
    }

    /* Pastikan container penuh dan tidak memotong footer */
    body, html {
        height: auto !important;
        min-height: 100% !important;
        overflow-x: hidden;
        overflow-y: auto;

        
    }

    @media (max-width: 768px) {
    body {
        padding-top: 40px; /* lebih besar di mobile */
    }
    }

    main, .content, .container-fluid, .container {
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
    }
}

/* Deteksi orientasi */
@media (orientation: portrait) {
    .orientation-warning {
        display: block;
        background: #fbbc05;
        padding: 0.5rem;
        text-align: center;
    }
}

@media (orientation: landscape) {
    .orientation-warning {
        display: none;
    }
}


/** header ****************************/
.break-top {margin-top:60px;}
    .diagonal-container {
        margin:0;
        background-color: #E8DAA9;
        position: relative;
        overflow: hidden;
    }
    .left-panel {
        position: absolute;
        top: 0; bottom: 0; left: 0;
        width: 100%;
        background-color: #EFE6C5;
        clip-path: polygon(0 0, 69% 0, 58% 100%, 0 100%);
        z-index: 3;
    }
    .right-panel {
        position: absolute;
        top: 0; bottom: 0; left: 0;
        width: 100%;
        background-color: transparent;
        clip-path: polygon(70% 0, 100% 0, 100% 100%, 59% 100%);
        z-index: 2;
    }

    .left-panel-home {
        position: absolute;
        top: 0; bottom: 0; left: 0;
        width: 100%;
        background-color: transparent;
        clip-path: polygon(0 0, 60% 0, 49% 100%, 0 100%);
        z-index: 3;
    }
    .right-panel-home {
        position: absolute;
        top: 0; bottom: 0; left: 0;
        width: 100%;
        background-color: transparent;
        clip-path: polygon(60% 0, 100% 0, 100% 100%, 49% 100%);
        z-index: 2;
    }

    .left-panel img,
    .left-panel-home video {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
    }

    .right-panel img,
    .right-panel-home img {
        position: absolute;
        right: 0;
        top: 0;
        height: 100%;
        object-fit: cover;
        pointer-events: none;
        user-select: none;
    }


.overlay-text {
  position: relative;
  z-index: 5;
  color: #333;
}

.overlay-text h2 {
  font-size: 2rem;
  font-weight: bold;
}

.overlay-text p {
  font-size: 1.1rem;
}


/** zoom ****************************/
.zoom-effect {
  position: relative;
  overflow: hidden;         /* biar zoom tidak keluar */
  border-radius: 1.15rem !important;   /* kotak tetap rounded */
}

.zoom-effect .bg-image {
  position: absolute;
  inset: 0;                 /* top:0; right:0; bottom:0; left:0 */
  background-size: cover;
  background-position: center;
  transition: transform 0.6s ease;
  z-index: 0;
}

.zoom-effect:hover .bg-image {
  transform: scale(1.1);    /* hanya bg yang membesar */
}

.zoom-effect .content {
  position: relative;
  z-index: 1;               /* teks di atas gambar */
}



.zoom2-effect {
    display: inline-block;
    margin: 0 20px;
    transition: transform 0.5s ease; /* Animasi untuk bingkai */
}

.zoom2-effect img {
    width: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* Efek zoom ke bingkai + gambar */

/* Zoom + outline + shadow */
.zoom2-effect:hover {
    transform: scale(2);z-index:1000; border-radius: 50%;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4); /* Bayangan lembut */
     /*outline: 2px solid #CCAE43; Warna outline */
     /*outline-offset: 5px;        Jarak outline dari bingkai */
    
    /* box-shadow: 
        0 0 0 5px #CCAE43,   Outline pertama (oranye) */
     /*    0 0 0 10px #800000,  Outline kedua (biru) */
     /*   0 8px 20px rgba(0,0,0,0.4);  Shadow */
}


.rounded_pict{border-radius: 1.15rem !important;}

/**shadow ****************************/   
.shadow-hover {
  transition: all 0.3s ease;
  border-radius: 1.15rem !important;
}
.shadow-hover:hover {
  box-shadow: 0 10px 20px rgba(0,0,0,0.15) !important; /* Shadow lebih gelap */
  transform: translateY(-5px); /* Efek mengambang baru */
  overflow: visible !important;
}


/** underline hover ****************************/  
.hover-underline-container {
    position: relative;
    display: inline-block;
    width: 100%;
}
.underline-title {
    position: relative;
    display: inline-block;
    padding-bottom: 8px; /* Jarak antara teks dan underline */
}
.underline-title::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: #CCAE43;
    transform: scaleX(0);
    transform-origin: bottom right;
    transition: transform 0.25s ease-out;
}
.hover-underline-container:hover .underline-title::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}



.cursor_pointer{cursor: pointer;}

.text_just{text-align: justify;}
.text_gold{color:#CCAE43;}
.text_merah{color:#800000;}
.text_abu{color:#667085;}

.fs-1rem {font-size: 1rem;}
.fs-6rem {font-size: 6rem;}
.fs-4rem {font-size: 4rem;}
.fs-44rem {font-size: 4.4rem;}


.garis_merah{
    display: inline-block;
    padding: 0px 0;
    padding-bottom: 0px; /* jarak dari teks ke garis */
    box-shadow: inset 0 -3px 0 0 #800000;}





/* 
    display: inline;padding:5px 0;
    box-shadow: inset 0 -3px 0 0 #800000; */

.bg_pink{background-color:#FAF7EC;}
.bg_pink2{background-color:#FEFDFB;}
.bg_header{background-color:#EFE6C5;}
/* .bg_abu{background-color:#F9FAFB;} */

.bg_footer{background-color:#101828;}
.text_footer{color:#98A2B3;}

.img-muted {
    filter: grayscale(40%) brightness(0.9) !important;
    opacity: 1 !important;
    object-fit: contain;
    max-height: 400px;
}

/**custom-li ****************************/  
.custom-list {
  list-style: none;
  margin: 0;
  padding-left: 1.8rem;  /* Tambah ruang khusus bullet */
  position: relative;
}

.custom-list li {
  position: relative;
  margin-bottom: 10px;
  padding-left: 0;       /* biar teks mulai dari paling kiri area konten */
}

/* Garis per li */
.custom-list li::after {
  content: '';
  position: absolute;
  top: 14px;              /* mulai tepat di bawah bullet */
  left: -1.15rem;         /* sejajar bawah donat, agak kiri */
  width: 2px;
  height: calc(105% - 0px); /* panjang otomatis sisanya */
  background-color: #ccc;
}


/* Hilangkan garis di li terakhir */
.custom-list li:last-child::after {
  display: none;
}

/* Bullet donat merah */
.custom-list li::before {
  content: '';
  position: absolute;
  left: -1.4rem;
  top: 6px;
  width: 10px;
  height: 10px;
  border: 2px solid var(--bullet-color, #800000); /* default merah */  
  border-radius: 50%;
  background-color: #fff;
  z-index: 1;
}


.custom-list-right {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: right;   /* teks rata kanan */
  position: relative;
}

.custom-list-right li {
  position: relative;
  margin-bottom: 10px;
  padding-right: 1.8rem; /* jarak teks dengan bullet */
}

.custom-list-right li::before {
  content: '';
  position: absolute;
  top: 6px;
  right: 0;  /* bullet di kanan */
  width: 10px;
  height: 10px;
  border: 2px solid var(--bullet-color, #800000);
  border-radius: 50%;
  background: #fff;
}

.custom-list-right li::after {
  content: '';
  position: absolute;
  top: 16px;
  right: 4px;
  width: 2px;
  height: calc(100% - 0px);
  background: #ccc;
}

.custom-list-right li:last-child::after {
  display: none;
}



/**progressive mind ****************************/  
.step {
    background: white;
    padding: 10px;
    position: relative;
    text-align: center;
}
.step-number {
    background-color: #8b0000;
    color: white;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 18px;
    margin: -30px auto 15px;
}
.step img.icon {
    height: 40px;
    margin-bottom: 10px;
}
.arrow {
    position: absolute;
    top: -30px;
    right: -60px;
    width: 100px;
}
@media (max-width: 992px) {
    .arrow {
        display: none;
    }
}
/**icon merge ****************************/  
.icon-stack {
  position: relative;
  width: 2rem;
  height: 2rem;
  display: inline-block;
}

.base-icon {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 2rem;
}

.top-icon {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1.5rem;
}

/**sosmed ****************************/  
.social-icons-wrapper {
    display: inline-flex;
    align-items: center;
    height: 100%;
    vertical-align: middle;
}

/**client ****************************/  
.client-logos-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    padding: 20px 0;
}
.client-logo-wrapper {
    position: relative;
    display: inline-block;
    margin: 0 20px;
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.client-logo {
    width: 100px;
    height: 100px;
    object-fit: contain;
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    filter: grayscale(10%) brightness(0.9); /******************************/  
    opacity: 0.8;
    padding: 10px;
}
.client-logo:hover {
    position: relative; 
    transform: scale(2.0);
    filter: grayscale(0%) brightness(1);
    opacity: 1;
    z-index: 200;
    padding: 5px;
    border-radius: 0.45rem;
    background: whitesmoke; /* rgba(0, 0, 0, 0.8); */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}
.logo-preview {
    position: absolute;
    bottom: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: #CCAE43; /* rgba(0, 0, 0, 0.8); */
    color: whitesmoke; /*  white; */
    padding: 5px 5px;
    border-radius: 0 0 6px 6px;
    font-size: 16px;
    font-weight: 500;
    opacity: 0;
    transition: all 0.4s ease;
    white-space: nowrap;
    pointer-events: none;
    min-width: 200px;
    text-align: center;
    z-index: 200;
}
.client-logo-wrapper:hover .logo-preview {
    opacity: 1;
}

/**people gallery ****************************/ 
/* Khusus gambar dalam People card */
.people-card img {
  border-radius: 1.15rem;
}

	.gradient-bg {
		background: linear-gradient(to bottom, white 250px, #EFE6C5 250px);
		/* <!-- background: linear-gradient(to bottom, white 50%, #EFE6C5 50%); --> */
		background-repeat: no-repeat;
		/* <!-- background-size: 100% 300px; atur tinggi gradasi putih --> */
	}
    .main-img {
        background-color: white;
        padding: 10px;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
        border-radius: 6px;
        position: relative;
        overflow: hidden;
        box-shadow: 0 6px 18px rgba(0,0,0,0.3); /* bayangan gambar */
    }
    .main-img img {
        transition: opacity 0.5s ease;
        border-radius: 4px;
        width: 100%;
        display: block;
    }
    /* Overlay teks */
	.caption {
		position: absolute;
		left: 10px;
		bottom: 30px;
		right: 10px; /* kasih jarak supaya tidak menempel border */
		background: rgba(0, 0, 0, 0.6);
		padding: 20px 15px;
		color: #CCAE43;
		text-align: center;
		box-sizing: border-box;
		opacity: 1;
		transition: opacity 0.5s ease;
	}
	.caption h5 {
		margin-bottom: 5px;
		font-weight: bold;color: #CCAE43;
	}
	.caption p {
		margin: 0;
		font-size: 0.9rem;
	}
	.caption.show {
		opacity: 1;
	}

/* Thumbnail styling */
/* Thumbnail row */
.thumb-row {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 50px;
    overflow-x: auto;
    white-space: nowrap;
    padding-bottom: 15px;
}
.thumb-row::-webkit-scrollbar {
    display: none;
}

/* Thumbnail container */
.thumb-img {
    position: relative;           /* untuk overlay */
    display: inline-block;
    flex: 0 0 auto;
    border: 5px solid #ffffff;
    border-radius: 5px;          /* sudut membulat */
    overflow: hidden;             /* gambar + overlay ikut radius */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 6px 18px rgba(0,0,0,0.3);
}

/* Thumbnail image */
.thumb-img img {
    display: block;
    width: 100%;
    height: auto;                 /* biar proporsional */
    object-fit: cover;            /* isi tetap rapi */
    border-radius: inherit;       /* ikut parent */
    cursor: pointer;
    transition: transform 0.3s ease;
}

/* Overlay (preview icon / text) */
.thumb-img .overlay {
    position: absolute;
    inset: 0;                     /* full parent */
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.5);
    color: #fff;
    font-weight: bold;
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: inherit;       /* ikut border radius parent */
}

/* Hover effect */
.thumb-img:hover {
    transform: translateY(-10px) scale(1.05);
}

/* Hover show overlay */
.thumb-img:hover .overlay {
    opacity: 1;
}

/* Active (preview dipilih) */
.gall-img.active {
    transform: translateY(-25px) scale(1.05);
    box-shadow: 0 8px 22px rgba(0,0,0,0.4);
    border-color: #FFFFFF;        /* contoh: warna emas */
}

/* Thumbnail gallery container */
.gall-img {
    position: relative;           /* untuk overlay */
    display: inline-block;
    flex: 0 0 auto;
    border: none;
    border-radius: 0px;          /* sudut membulat */
    overflow: hidden;             /* gambar + overlay ikut radius */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
   
}

/* Thumbnail image */
.gall-img img {
    display: block;
    width: 100%;
    height: auto;                 /* biar proporsional */
    object-fit: cover;            /* isi tetap rapi */
    border-radius: inherit;       /* ikut parent */
    cursor: pointer;
    transition: transform 0.3s ease;
}

/* Overlay (preview icon / text) */
.gall-img .overlay {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.5);
    color: #fff;
    font-weight: bold;
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: inherit;       /* ikut border radius parent */
}

/* Hover effect */
.gall-img:hover {
    transform: translateY(0px) scale(1.01);
     box-shadow: 0 6px 18px rgba(0,0,0,0.3);    
}

/* Hover show overlay */
.gall-img:hover .overlay {
    opacity: 1;
}




/* Active (preview dipilih) */
.gall-img.active {
    transform: translateY(-25px) scale(1.05);
    border-color: #FFFFFF;        /* contoh: warna emas */
}

    @media (max-width: 768px) {
    .thumb-row {
        overflow-x: auto;
        scroll-behavior: smooth;
        display: flex;
        gap: 20px;
        padding-bottom: 15px;
    }
    .thumb-row::-webkit-scrollbar {
        display: none;
    }
    .thumb-img {
        flex: 0 0 auto;
    }
    .gall-img {
        flex: 0 0 auto;
    }    
    }

  /* bullet styling */
.timeline {
  list-style: none;
  padding: 0;
  position: relative;
  margin-left: 0.1rem;
}

.timeline::before {
  content: "";
  position: absolute;
  top: 0.6rem;     /* mulai sejajar icon pertama */
  left: 5px;
  width: 2px;
  height: calc(100% - 1.5rem); /* berhenti sebelum ujung bawah */
  background: #ddd; /* garis vertikal */
}

.timeline li {
  position: relative;
  margin-bottom: 1.5rem;
  padding-left: 2rem;
}

.timeline-icon {
  position: absolute;
  left: -4px;
  top: 0;
  font-size: 1.2rem;
  color: #800000; /* merah bootstrap */
  background: #fff;
  border-radius: 50%;
}

.timeline-content {
  font-size: 1rem;
  color: #333;
}

.timeline-content ul {
  list-style-type: disc; /* bulat solid */
  margin: 0.1rem;
  padding-top: 1rem;
  padding-left: 1rem;
}

.timeline-content ul li {
  margin: 0;
  padding: 0;
  line-height: 1.2;
}

/**************** gallery facility */
/* === Facility Gallery & Preview Popup === */
.award-gallery img {
  cursor: pointer;
  /* border-radius: 6px; */
  /* transition: transform 0.3s ease, box-shadow 0.3s ease; */
}
.award-gallery img:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
}


.facility-gallery img {
  cursor: pointer;
  /* border-radius: 6px; */
  /* transition: transform 0.3s ease, box-shadow 0.3s ease; */
}
.facility-gallery img:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
}

/* Overlay */
.preview-overlay {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.8);
  z-index: 2000;
  justify-content: center;
  align-items: center;
}
.preview-overlay.active { display: flex; }

/* Container */
.preview-container {
  position: relative;
  background: #fff;
  padding: 15px;
  border-radius: 10px;
  max-width: 90%;
  max-height: 90%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.preview-container img {
  max-width: 100%;
  max-height: 70vh;
  transition: transform 0.3s ease;
}

/* Kontrol tombol */
.preview-controls {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}
.preview-controls button {
  border: none;
  background: var(--primary);
  color: white;
  padding: 8px 12px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 18px;
  transition: background 0.3s;
}
.preview-controls button:hover {
  background: #b30000;
}

/* Tombol close */
.preview-close {
  position: absolute;
  top: 8px; right: 12px;
  font-size: 28px;
  color: #fff;
  cursor: pointer;
  z-index: 2100;
}
/* === Facility Lightbox Style  === */
.lightbox-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  z-index: 3000;
  justify-content: center;
  align-items: center;
}
.lightbox-overlay.active { 
  display: flex;
  justify-content: center;
  align-items: center;  /* tetap center */
}

.lightbox-content {
  position: relative;
  max-width: 90%;
  max-height: 90%;
  display: flex;
  flex-direction: column;
  align-items: center;
  
  /* Geser turun 100px tapi tetap relatif dari center */
  transform: translateY(30px);
}
.lightbox-content img {
  max-width: 100%;
  max-height: 65vh;
  border-radius: 8px;
  transition: transform 0.3s ease;
}

/* tombol close */
.lightbox-close {
  position: absolute;
  top: 0px; right: 20px;
  font-size: 32px;
  /* color: white; */
  color: transparent;
  cursor: pointer;
  z-index: 20; /* lebih tinggi dari gambar & kontrol */
}


/* Kontainer tombol kontrol (sebuah bar panjang) */
.lightbox-controls {
  margin-top: 30px; /* Menurunkan tombol lebih banyak */
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  z-index: 10; /* pastikan lebih tinggi dari gambar */
  background: rgba(126, 126, 126, 0.7); /* Background abu dengan opacity */
  padding: 10px 24px; /* Menambah ruang internal pada kontainer */
  border-radius: 50px; /* Rounded panjang */
}

/* Tombol kontrol */
.lightbox-controls button {
  border: none;
  background: transparent; /* Tombol transparan agar tidak menutupi background */
  color: #bbbbbb;
  padding: 2px 10px; /* Ukuran tombol */
  font-size: 18px;
  cursor: pointer;
  transition: background 0.3s, transform 0.3s;
  border-radius: 5px; /* Menambahkan sedikit border-radius pada tombol */
}

/* Efek tombol saat hover */
.lightbox-controls button:hover {
  transform: scale(1.5); /* Menambah sedikit ukuran saat hover */
  color: #ffffff;
}



/* Bungkus thumbnail dengan overlay */
.thumb-img {
  position: relative;
  display: inline-block;
  overflow: hidden;
  /* cursor: pointer; */
}


/* overlay background */
.thumb-img::before {
  content: "\f06e"; /* FontAwesome fa-eye */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 2.0rem;
  color: #CCAE43;
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
  pointer-events: none; /* ⬅️ tidak menghalangi klik */
}

/* tulisan Preview */
.thumb-img::after {
  content: "Preview";
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1rem;
  color: #fff;
  font-weight: 600;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
  pointer-events: none; /* ⬅️ tidak menghalangi klik */
}

/* background gelap */
.thumb-img img {
  display: block;
  width: 100%;
  transition: transform 0.3s ease;
}

.thumb-img:hover img {
  transform: scale(1.05);
  filter: brightness(60%);
}

.thumb-img:hover::before,
.thumb-img:hover::after {
  opacity: 1;
}


/* .row {
  overflow: visible !important;
} */


.header-img {
  max-height: 300px;   /* tinggi maksimal */
  object-fit: cover;   /* gambar tetap proporsional, tidak gepeng */
}


/* Custom override untuk Bootstrap container */
.container {
  max-width: 85% !important;
}

@media (max-width: 1200px) { /* 992px */
  .container {
    max-width: 100% !important;
  }
}

/* Kalau butuh tetap 100% full (misalnya hero banner) */
.container.full {
  max-width: 100% !important;
}




.mw-85 {
  max-width: 80% !important;
}

@media (max-width: 1200px) {
  .mw-85 {
    max-width: 100% !important;;
  }
}



.mw_60 {
  max-width: 60%;
}
@media (max-width: 1200px) {
  .mw_60 {
    max-width: 80%;
  }
}


.fs-23 {
  font-size: 2.3rem !important;
}


.scroll-container {
  display: flex;
  overflow: hidden;
  scroll-behavior: smooth;
}
.slider-item { flex: 0 0 100%; scroll-snap-align: center; }
.nav-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(0,0,0,0.6); color: #fff; border: none;
  padding: 8px 12px; cursor: pointer; font-size: 22px; z-index: 10;
}
.left { left: 5px; }
.right { right: 5px; }


#fre {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}


.timeline-item {
  position: relative;
}


.timeline-center {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.timeline-center .line {
  position: absolute;
  top: 10px;   /* mulai sedikit di bawah dot */
  bottom: -10px; /* sambung ke item berikutnya */
  left: 50%;
  width: 2px;
  background: #aaa;
  transform: translateX(-50%);
}


.timeline-center {
  position: relative;
  width: 40px;   /* kolom tengah fix */
}

.timeline-center .line {
  position: absolute;
  top: 10px;
  bottom: -10px;
  left: 50%;
  width: 2px;
  background: #aaa;
  transform: translateX(-50%);
}

.timeline-center .dot {
  position: absolute;
  top: 10px;  /* sejajarkan dengan tinggi "year" */
  left: 50%;
  width: 14px;
  height: 14px;
  border: 4px solid #800000;
  border-radius: 50%;
  background: #fff;
  transform: translateX(-50%);
  z-index: 2;
}

.timeline-item:last-child .timeline-center .line {
  display: none;
}

.award-gallery,
.award-gallery .row,
.award-gallery .col {
  border: none !important;
}

/**************** heading bg */
.heading-bg {
  position: relative;
  z-index: 1;
}

.heading-bg::before {
  content: attr(data-text); /* ambil dari attribute */
  position: absolute;
  top: 10%; /* lebih kecil dari 50% agar naik */
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 80px;   /* bisa disesuaikan */
  font-weight: 900;
  color: rgba(90, 81, 81, 0.05); /* warna bayangan */
  z-index: -1;
  white-space: nowrap;
}



.space-to-line {
            white-space: pre-wrap;
            word-break: break-word;
            line-height: 1.8;
            background-color: #f8f9fa;
            padding: 15px;
            border-radius: 16px;
}

/* Sembunyikan <br> di layar mobile (smaller than 768px) */
@media (max-width: 767.98px) {
    .desktop-br br {
        display: none;
    }
}