@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

* {
    font-family: 'Poppins', sans-serif;
}

/* body {
    opacity: 0;
    transition: opacity 0.25s ease-in-out;
}

body.page-loaded {
    opacity: 1;
} */


/********** Template CSS **********/
:root {
    --primary: #C62828;
    /* --primary: #FF5E14; */
    --secondary: #5F656F;
    --light: #F5F5F5;
    --dark: #02245B;
    --red: #C62828;
    --black: #111111;
    --gold: #D4AF37;
    --gray-soft: #F2F2F2;
    --gray-medium: #757575;
    --gray-dark: #333333;
    --white: #FFFFFF;
}

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

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

h3,
h4,
.h3,
.h4,
.fw-medium {
    font-weight: 600 !important;
}

h5,
h6,
.h5,
.h6,
.fw-semi-bold {
    font-weight: 500 !important;
}


/*** 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 {
    transition: .5s;
    font-weight: 500;
}

.btn-primary {
    background-color: var(--red);
    border-color: var(--red);
    color: var(--white);
}

.btn-primary:hover {
    background-color: #a62323;
    border-color: #a62323;
    color: var(--white);
}

.btn-primary:visited {
    box-shadow: 0 10px 24px rgba(183, 28, 28, 0.35)!important;
}

/* .btn-red {
    background-color: var(--red);
    border-color: var(--red);
    color: var(--white);
}

.btn-red:hover {
    background-color: #a62323;
    border-color: #a62323;
    color: var(--white);
}

.btn-red:visited {
    box-shadow: 0 10px 24px rgba(183, 28, 28, 0.35)!important;
} */

.btn-red {
    background-color: var(--red);
    border-color: var(--red);
    color: var(--white);
    border-radius: 50px;
    font-weight: 500;
    transition: all 0.25s ease;
    /* box-shadow: 0 8px 20px rgba(198, 40, 40, 0.25); */
}

/* Hover */
.btn-red:hover {
    background-color: #B71C1C;
    border-color: #B71C1C;
    color: var(--white);
    box-shadow: 0 12px 28px rgba(183, 28, 28, 0.35);
    transform: translateY(-1px);
}

/* Active (saat diklik) */
.btn-red:active {
    background-color: #8E0000;
    border-color: #8E0000;
    box-shadow: 0 4px 12px rgba(142, 0, 0, 0.35);
    transform: translateY(0);
}

/* Focus (keyboard / accessibility) */
.btn-red:focus,
.btn-red:focus-visible {
    outline: none;
    box-shadow:
        0 0 0 4px rgba(198, 40, 40, 0.35),
        0 8px 20px rgba(198, 40, 40, 0.25);
}

/* Visited (biarkan konsisten) */
.btn-red:visited {
    color: var(--white);
}

.btn-primary,
.btn-outline-primary:hover {
    color: #FFFFFF;
}

/* .btn-outline-red {
    color: var(--red)!important;
    border-color: var(--red)!important;
}

.btn-outline-red:hover {
    background-color: var(--white)!important;
    color: var(--red)!important;

} */

.btn-outline-red {
    background-color: transparent;
    border: 1.5px solid var(--red);
    color: var(--red);
    border-radius: 50px;
    font-weight: 500;
    transition: all 0.25s ease;
    /* box-shadow: 0 6px 16px rgba(198, 40, 40, 0.15); */
}

/* Hover */
.btn-outline-red:hover {
    background-color: var(--red);
    border-color: var(--red);
    color: var(--white)!important;
    box-shadow: 0 10px 24px rgba(198, 40, 40, 0.3);
    transform: translateY(-1px);
}

/* Active */
.btn-outline-red:active {
    background-color: #8E0000;
    border-color: #8E0000;
    color: var(--white);
    box-shadow: 0 4px 12px rgba(142, 0, 0, 0.35);
    transform: translateY(0);
}

/* Focus */
.btn-outline-red:focus,
.btn-outline-red:focus-visible {
    outline: none;
    box-shadow:
        0 0 0 4px rgba(198, 40, 40, 0.3),
        0 6px 16px rgba(198, 40, 40, 0.15);
}

/* Visited */
.btn-outline-red:visited {
    color: var(--red);
}




.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;
}


.topbar-right {
    position: relative;
    background: var(--gold);
}

.topbar-right::before {
    position: absolute;
    content: "";
    width: 30px;
    height: 100%;
    top: 0;
    left: -15px;
    transform: skewX(-30deg);
    background-color: var(--gold);
}


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

/* .dropdown-divider {
    margin: 4px 12px;
    border-top: 1px solid #000;
} */

.dropdown-item {
    padding: 10px 18px;
    border-bottom: 1px solid #ADADAD;
}

.dropdown-item:last-child {
    border-bottom: none;
}

.navbar .navbar-brand {
    position: relative;
    padding-right: 50px;
    height: 75px;
    display: flex;
    align-items: center;
    /* background: var(--primary); */
}

.navbar .navbar-brand::after {
    position: absolute;
    content: "";
    width: 50px;
    height: 100%;
    top: 0;
    right: -25px;
    transform: skewX(-30deg);
    /* background-color: var(--primary); */
}

.navbar .navbar-nav .nav-link {
    margin-right: 30px;
    padding: 20px 0;
    color: var(--black);
    font-size: 16px;
    font-weight: 500;
    outline: none;
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
    color: var(--red);
}

/* .dropdown-item {
    padding: 5px!important;
} */

.dropdown-item:hover,
.dropdown-item:active{
    background: var(--red)!important;
    color: var(--white);
}

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

@media (max-width: 991.98px) {
    .navbar .navbar-nav .nav-link  {
        margin-right: 0;
        padding: 10px 0;
    }

    .navbar .navbar-nav {
        border-top: 1px solid #EEEEEE;
    }
}

@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%;
        visibility: visible;
        transition: .5s;
        opacity: 1;
        padding: 15px 10px;
    }
}


/*** Header ***/
.carousel-caption {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    background: rgba(0, 0, 0, 0.30);
    /* background: linear-gradient(
  to right, 
  rgba(0, 0, 0, 0.85) 0%, 
  rgba(0, 0, 0, 0) 100%
); */
    /* background: linear-gradient(to right, rgba(2, 36, 91, 1) 0%, rgba(2, 36, 91, 0) 100%); */
    z-index: 1;
}

.carousel-control-prev,
.carousel-control-next {
    width: 15%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 3.5rem;
    height: 3.5rem;
    background-color: var(--red);
    border: 15px solid var(--red);
    border-radius: 3.5rem;
}

.carousel-subtitle {
    font-size: 1.25rem;
}

.btn-carousel {
    padding: 1rem 3rem;
    font-size: 1rem;
}

.banner-title {
    margin-bottom: 3rem;
}

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

    #header-carousel .carousel-caption {
        padding-left: 50px;
        padding-right: 50px;
    }
}

@media (max-width: 576px) {

    #header-carousel .carousel-item {
        height: 220px;
        min-height: unset;
    }

    #header-carousel .carousel-item img {
        height: 220px;
        object-fit: cover;
        object-position: center;
    }

    #header-carousel .text-banner {
        font-size: 20px;
        line-height: 1.3;
        max-width: 90%;
    }

    #header-carousel p {
        font-size: 14px;
    }

    #header-carousel .btn {
        padding: 8px 15px;
        font-size: 14px;
    }

    #header-carousel .carousel-caption {
        padding-bottom: 20px;
        padding-left: 30px;
        padding-right: 30px;
    }

    .carousel-subtitle {
        font-size: 14px;
    }

    .btn-carousel {
        padding: 0.65rem 1.2rem;
        font-size: 0.9rem;
    }

    .carousel-control-prev,
    .carousel-control-next {
        width: 10%;
    }

    .carousel-control-prev-icon,
    .carousel-control-next-icon {
        width: 2rem;
        height: 2rem;
        border: 8px solid var(--red);
        border-radius: 2rem;
        background-size: 60%;
        opacity: 0.8;
    }

    .banner-title {
        margin-bottom: 1rem;
    }
}

/* .page-header {
    background: linear-gradient(to right, rgba(2, 36, 91, 1) 0%, rgba(2, 36, 91, 0) 100%), url(../img/bmp-carousel-1.jpg) center center no-repeat;
    background-size: cover;
} */

.page-header {
    position: relative;
    background: url(../img/bmp-carousel-1.webp) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-jk {
    position: relative;
    background: url(../img/bmp-carousel-2.webp) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-pt {
    position: relative;
    background: url(../img/bmp-carousel-3.webp) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-k {
    position: relative;
    background: url(../img/consult-1.jpg) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-js {
    position: relative;
    background: url(../img/satpam-3.jpeg) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-pent {
    position: relative;
    background: url(../img/galeri/gada/gada-1.jpeg) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-g {
    position: relative;
    background: url(../img/kolase.jpg) center center no-repeat;
    background-size: cover;
    overflow: hidden;
}

.page-header-training {
    background: url(../img/satpam-2.jpeg) center center no-repeat;
}

/* overlay hitam transparan */
.page-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.30);
    z-index: 1;
}

/* supaya konten di atas overlay */
.page-header .container {
    position: relative;
    z-index: 2;
}

.page-header .breadcrumb-item+.breadcrumb-item::before {
    color: var(--light);
}

.page-header .breadcrumb-item,
.page-header .breadcrumb-item a {
    font-size: 20px;
    color: var(--light);
}

@media (max-width: 576px) {
     .page-header {
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
    }

    .page-header .breadcrumb-item, .page-header .breadcrumb-item a {
        font-size: 14px;
    }

    .header-text {
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
    }

    .page-header h1 {
        font-size: 28px;
        line-height: 1.4;
    }
}

/*** Facts ***/
.fact-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: rgba(255, 215, 0, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
}

.fact-icon i {
    font-size: 30px;
    color: var(--gold);
}

.facts {
    position: relative;
    margin: 6rem 0;
    background: var(--gray-dark);
}

.facts .border {
    border-color: rgba(255,255,255,.2) !important;
    /* border-color: rgba(255, 255, 255, .1) !important; */
}

.fact-text {
    /* font-size: 1rem !important; */
    font-size: 15px;
    display: block;
    margin-top: 8px;
    letter-spacing: .3px;
}

.fact-col {
    /* padding: 3rem 1rem 3rem 1rem; */
    padding: 2.5rem 1.5rem;
    border-radius: 16px;
    transition: .3s;
}

.fact-col:hover {
    transform: translateY(-5px);
}

.fact-num {
    font-weight: 700;
    line-height: 1;
}

.fact-num::before {
    content: '';
    display: block;
    width: 40px;
    height: 3px;
    background: var(--gold);
    margin: 0 auto 15px;
}

@media (min-width: 1200px) {
    .fact-num {
        font-size: 4rem;
    }
}

@media (max-width: 576px) {

    .fact-num {
        font-size: 2.5rem;
    }

    .facts .col-md-6 {
        margin-bottom: 15px;
    }

}

/*** Features ***/
.btn-play {
    position: absolute;
    top: 50%;
    right: -30px;
    transform: translateY(-50%);
    display: block;
    box-sizing: content-box;
    width: 16px;
    height: 26px;
    border-radius: 100%;
    border: none;
    outline: none !important;
    padding: 18px 20px 20px 28px;
    background: var(--primary);
}

@media (max-width: 992px) {
    .btn-play {
        left: 50%;
        right: auto;
        transform: translate(-50%, -50%);
    }
}

.btn-play:before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    display: block;
    width: 60px;
    height: 60px;
    background: var(--primary);
    border-radius: 100%;
    animation: pulse-border 1500ms ease-out infinite;
}

.btn-play:after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    display: block;
    width: 60px;
    height: 60px;
    background: var(--primary);
    border-radius: 100%;
    transition: all 200ms;
}

.btn-play span {
    display: block;
    position: relative;
    z-index: 3;
    width: 0;
    height: 0;
    left: -1px;
    border-left: 16px solid #FFFFFF;
    border-top: 11px solid transparent;
    border-bottom: 11px solid transparent;
}

@keyframes pulse-border {
    0% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
        opacity: 1;
    }

    100% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(2);
        opacity: 0;
    }
}

.modal-video .modal-dialog {
    position: relative;
    max-width: 800px;
    margin: 60px auto 0 auto;
}

.modal-video .modal-body {
    position: relative;
    padding: 0px;
}

.modal-video .close {
    position: absolute;
    width: 30px;
    height: 30px;
    right: 0px;
    top: -30px;
    z-index: 999;
    font-size: 30px;
    font-weight: normal;
    color: #FFFFFF;
    background: #000000;
    opacity: 1;
}

/* Keunggulan */
.why-us .d-flex {
    transition: 0.3s;
}

.why-us .d-flex:hover {
    transform: translateX(5px);
}

.why-us .btn-lg-square {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    box-shadow: 0 6px 15px rgba(0,0,0,0.12);
    transition: 0.3s;
}

.why-us .d-flex:hover .btn-lg-square {
    transform: scale(1.05);
}

@media (max-width: 576px) {
    .why-us h4,
    .why-us .ms-4 h4 {
        font-size: 16px;
        line-height: 1.3;
        margin-bottom: 5px;
    }

    .why-us span,
    .why-us .ms-4 span {
        font-size: 14px;
        line-height: 1.5;
    }
}


/*** Service ***/
.service-item {
    position: relative;
    margin: 40px 0 25px 0;
    box-shadow: 0 0 45px rgba(0, 0, 0, .07);
    height: 356px;
}

.service-item .img-background-service {
    height: 356px;
    object-fit: cover;
    object-position: center;
}

.service-item:hover{
    box-shadow: 0 20px 45px rgba(0,0,0,.15);
    cursor: pointer;
}

.service-heading{
    display:inline-block;
    padding:12px 20px;
    font-size: 25px;
    background:#fff;
    border-radius:12px;
    font-weight:700;
    letter-spacing:-0.5px;
    color:#222;
    position:relative;
    transition:.3s;
}

.service-preview{
    margin-top:30px;
    color:#6c757d;
    font-size:15px;
    line-height:1.7;
    max-width:280px;
}

.service-item:hover .service-heading{
    transform:scale(1.05);
    color:#850000;
}

/* Garis atas */
/* .service-heading::before{
    content:'';
    position:absolute;
    top:-14px;
    left:50%;
    transform:translateX(-50%);
    width:70px;
    height:3px;
    background:#D4AF37;
    border-radius:10px;
} */

/* Garis bawah */
.service-heading::after{
    content:'';
    position:absolute;
    bottom:-14px;
    left:50%;
    transform:translateX(-50%);
    width:70px;
    height:3px;
    background:#D4AF37;
    border-radius:10px;
}

.service-item .service-img {
    position: absolute;
    /* padding: 12px;
    width: 130px;
    height: 130px;
    top: -65px; */
    left: 50%;
    transform: translateX(-50%);
    background: #FFFFFF;
    box-shadow: 0 0 45px rgba(0, 0, 0, .09);
    z-index: 2;

     width: 150px;
    height: 150px;
    top: -75px;
    padding: 10px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid #fff;
}

.service-item .service-img img{
    border-radius: 50%;
    transition: .5s;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.service-item:hover .service-img {
    border: 4px solid #D4AF37;
}

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

.service-item .service-detail {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    z-index: 1;
}

.service-item .service-title {
    position: absolute;
    padding: 65px 30px 25px 30px;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* justify-content: center; */
    justify-content:flex-start;
    padding-top:110px;
    /* padding-top:180px; */
    text-align: center;
    background: #FFFFFF;
    transition: .5s;
}

.service-item:hover .service-title {
    top: -100%;
}

.service-item .service-text {
    position: absolute;
    overflow: hidden;
    padding: 65px 30px 25px 30px;
    width: 100%;
    height: 100%;
    top: 100%;
    left: 0;
    display: flex;
    align-items: center;
    text-align: center;
    background: rgba(0, 0, 0, 0.50);
    transition: .5s;
}

.service-item:hover .service-text {
    top: 0;
}

.service-item .service-text::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100px;
    top: -100%;
    left: 0;
    transform: skewY(-14deg);
    background: #FFFFFF;
    transition: .5s;
    box-shadow: 0 20px 45px rgba(0,0,0,.15);
}

.service-item:hover .service-text::before {
    top: -55px;
}

.service-item .btn-service {
    position: absolute;
    width: 130px;
    height: 50px;
    left: 50%;
    bottom: -25px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--secondary);
    background: #FFFFFF;
    border: none;
    box-shadow: 0 0 45px rgba(0, 0, 0, .09);
    z-index: 2;
}

.service-item:hover .btn-service{
    background: var(--primary) !important;
    color:#fff !important;
    border-color:var(--primary) !important;
}

/* =========================
   TABLET
========================= */
@media (min-width:768px) and (max-width:991px){

    /* .service-item{
        min-height: auto;
    } */

    .service-item{
        height: 300px;
    }

    .service-item .img-background-service {
        height: 300px;
    }

    .service-item .service-text { 
        padding: 65px 30px 25px 30px;
    }

    .service-item .service-title {
        padding: 65px 30px 25px 30px;
        padding-top: 100px;
    }

    .service-heading{
        font-size:20px;
    }

    .service-preview{
        font-size:14px;
    }

    .service-item .service-text {
        font-size:14px;
    }

    .service-item .btn-service {
        font-size: 14px;
    }
}

/* TABLET LEBIH BESAR */
@media (min-width: 992px) and (max-width: 1199px){

    .service-item{
        height: 300px;
    }

    .service-item .img-background-service {
        height: 300px;
    }

    .service-item .service-text { 
        padding: 65px 15px 25px 15px;
    }

    .service-item .service-title {
        padding: 65px 15px 25px 15px;
        padding-top: 90px;
    }

    .service-heading{
        font-size:20px;
    }

    .service-preview{
        font-size:14px;
    }

    .service-item .service-text {
        font-size:14px;
    }

    .service-item .btn-service {
        font-size: 14px;
    }
}

/* =========================
   MOBILE
========================= */
@media (max-width: 576px){

    .service-item{
        margin:30px 0;
        height: 250px;
    }

    .service-item .img-background-service {
        height: 250px;
    }

    .service-item .service-img{
        width:110px;
        height:110px;
        top:-55px;
        padding:7px;
    }

    .service-item .service-title{
        padding-top:80px;
        padding-left:20px;
        padding-right:20px;
    }

    .service-heading{
        font-size:20px;
        padding:8px 16px;
        line-height:1.3;
    }

    .service-heading::after{
        width:50px;
    }

    .service-preview{
        margin-top:20px;
        font-size:13px;
        line-height:1.6;
        max-width:100%;
    }

    .service-text{
        padding:40px 20px;
        font-size:14px;
    }
    
    .service-item .btn-service{
        width:120px;
        height:44px;
        font-size:14px;
        bottom:-22px;
    }

    .service-item .service-text::before {
        position: absolute;
        content: "";
        width: 100%;
        height: 100px;
        top: -100%;
        left: 0;
        transform: skewY(-14deg);
        background: #FFFFFF;
        transition: .5s;
        box-shadow: 0 20px 45px rgba(0,0,0,.15);
    }
}

/* .service-item .btn:hover {
    color: #FFFFFF;
    background: var(--primary);
} */

/* bootstrap service section */
/* .service-card{
    border:none;
    border-radius:24px;
    padding:16px;
    background:#fff;
    transition:.35s;
    box-shadow:0 8px 30px rgba(0,0,0,.08);
}

.service-card:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 45px rgba(0,0,0,.15);
}

.service-image{
    overflow:hidden;
    border-radius:18px;
}

.service-image img{
     width:100%;
    height:220px;
    object-fit:cover;
    transition:.5s;
}

.service-card:hover .service-image img{
    transform:scale(1.08);
}

.service-icon{
    width:55px;
    height:55px;
    border-radius:14px;
    background:rgba(212,175,55,.15);
    color:#D4AF37;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:22px;

    margin-bottom:18px;
}

.service-title-card{
    font-size:26px;
    font-weight:700;
    color:#222;
    margin-bottom:15px;
}

.service-desc{
    color:#666;
    line-height:1.7;
    font-size:15px;
}

.btn-service{
    background:#850000;
    color:#fff;

    padding:12px 24px;

    border-radius:12px;

    font-weight:600;

    transition:.3s;
}

.btn-service:hover{
    background:#D4AF37;
    color:#fff;
}

.card-footer{
    background:none;
    border:none;
    padding:0 0 10px 0;
}

@media (max-width:576px){

    .service-image img{
        height:180px;
    }

    .service-title-card{
        font-size:22px;
    }

    .service-desc{
        font-size:14px;
        line-height:1.6;
    }

} */


/*** Project ***/
.project-carousel {
    position: relative;
    background: var(--dark);
}

.project-item {
    position: relative;
    display: block;
}

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

.project-item:hover img,
.project-carousel .owl-item.center img {
    margin-top: -60px;
}

.project-item .project-title {
    position: absolute;
    padding: 0 15px;
    width: 100%;
    height: 80px;
    bottom: -110px;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: var(--dark);
    transition: .5s;
}

.project-item:hover .project-title,
.project-carousel .owl-item.center .project-title  {
    bottom: -60px;
}

.project-item .project-title::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 30px;
    top: -15px;
    left: 0;
    transform: skewY(-5deg);
    background: var(--dark);
    transition: .5s;
}

.project-carousel .owl-nav {
    position: absolute;
    width: 100%;
    height: 45px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    transition: .5s;
    opacity: 0;
    z-index: 1;
}

.project-carousel:hover .owl-nav {
    opacity: 1;
}

.project-carousel .owl-nav .owl-prev,
.project-carousel .owl-nav .owl-next {
    margin: 0 30px;
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    background: var(--primary);
    border-radius: 45px;
    font-size: 22px;
    transition: .5s;
}

@media (max-width: 576px) {
    .testimonial-carousel .owl-nav .owl-prev, .testimonial-carousel .owl-nav .owl-next {
        font-size: 30px;
    }
}


/*** Team ***/
.team-item .team-social {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: -100%;
    display: flex;
    align-items: center;
    background: var(--primary);
    transition: .5s;
}

.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;
    }
}

@media (max-width: 576px) {
    .testimoni {
        font-size: 12px;
        text-align: justify;
    }

    .testimoni-nama {
        font-size: 18px;
    }

    .testimonial-carousel .testimonial-img img {
        width: 80px;
        height: 80px;
    }
}

.testimonial-carousel .owl-nav {
    position: absolute;
    width: 350px;
    top: 20px;
    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(--red);
    font-size: 45px;
    transition: .5s;
}

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

.testimonial-carousel .testimonial-img img {
    width: 100px;
    height: 100px;
}

.testimonial-carousel .testimonial-img .btn-square {
    position: absolute;
    bottom: -19px;
    left: 50%;
    transform: translateX(-50%);
}

.testimonial-carousel .owl-item .testimonial-text {
    margin-bottom: 30px;
    box-shadow: 0 0 45px rgba(0, 0, 0, .08);
    transform: scale(.8);
    transition: .5s;
}

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


/*** Footer ***/
.footer {
    color: #B0B9AE;
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    color: #B0B9AE;
    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(--light);
    letter-spacing: 1px;
    box-shadow: none;
}

.copyright {
    color: #B0B9AE;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

@media (max-width: 576px) {
    .cr-footer {
        font-size: 14px;
    }
}

.section-title {
    color: #111111;
    font-weight: 700;
    position: relative;
}

.section-title:after {
    content: "";
    width: 60px;
    height: 3px;
    background: #D4AF37;
    display: block;
    margin-top: 8px;
}

.section-title2 {
    color: #111111;
    font-weight: 700;
    position: relative;
}

@media (max-width: 576px) {
    .section-title, .section-title2 {
        font-size: 1.5rem !important;
        line-height: 1.3;
    }

}

.text-primary {
    color: var(--red)!important;
}

.bg-primary {
    background-color: var(--gold)!important;
}

.text-black {
    color: var(--black);
}

.text-white {
    color: var(--white);
}

.text-red {
    color: var(--red);
}

.link-red {
    color: var(--red);
}

.link-red:hover {
    color: #a62323!important;
}

.text-gold {
    color: var(--gold);
}

.text-gray {
    color: #CFCFCF;
}

.text-gray-soft {
    color: var(--gray-soft);
}

.text-gray-medium {
    color: var(--gray-medium);
}

.text-gray-dark {
    color: var(--gray-dark);
}

.bg-black {
    background-color: var(--black)!important;
}

.bg-red {
    background-color: var(--red)!important;
}

.bg-gold {
    background-color: var(--gold)!important;
}

.bg-white {
    background-color: var(--white)!important;
}

.bg-gray-soft {
    background-color: var(--gray-soft)!important;
}

.bg-gray-medium {
    background-color: var(--gray-medium)!important;
}

.bg-gray-dark {
    background-color: var(--gray-dark)!important;
}

@media (min-width: 1200px) {
    .text-banner {
        font-size: 3rem;
    }
}

.topbar-link:hover {
    text-decoration: underline;
}

.line-gold {
    /* width: 60px; */
    height: 2px!important;
    background: #D4AF37;
    display: block;
    /* margin-top: 8px; */
}

.service-item .btn:hover {
    background: var(--red)!important;
}

/* .client-logo {
    filter: grayscale(100%);
    opacity: 0.6;
    transition: all 0.3s ease;
    max-height: 70px;
    width: auto;
}

.client-logo:hover {
    filter: grayscale(0%);
    opacity: 1;
} */

.client-slider-wrapper {
    overflow: hidden;
    width: 100%;
    padding: 20px 0;
}

.client-row {
    display: flex;
    width: 100%;
    margin: 10px 0;
    white-space: nowrap;
    overflow: hidden;
}

.client-track {
    display: flex;
    gap: 60px;
}

.client-track img {
    height: 55px;
    width: auto;
    transition: transform 0.3s ease;
}

.client-track img:hover {
    transform: scale(1.1);
}

@media (max-width: 576px) {
    .client-track img {
        height: 35px;
    }

    .client-track {
        gap: 30px;
    }
}

/* --- ANIMATIONS --- */

.marquee-left .client-track {
    animation: scroll-left 30s linear infinite;
}

.marquee-right .client-track {
    animation: scroll-right 30s linear infinite;
}

/* hover melambat */
.marquee-left:hover .client-track,
.marquee-right:hover .client-track {
    animation-play-state: paused;
}

/* KEYFRAMES */
@keyframes scroll-left {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes scroll-right {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

.fa-star {
    color: #FFD43B!important;
}

.text-footer {
    font-size: 14px;
}

@media (max-width:576px) {
    .text-footer {
        font-size: 14px;
    }
}

/* ISO Section */
.iso-card {
    perspective: 1000px;
}

.iso-card-inner {
    position: relative;
    width: 100%;
    height: 280px;
    transform-style: preserve-3d;
    transition: transform 0.8s ease;
}

.iso-card:hover .iso-card-inner {
    transform: rotateY(180deg);
}

/* .iso-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    margin-bottom: 15px;

    background: rgba(212, 175, 55, 0.12);
    color: #D4AF37;

    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 999px;

    font-size: 12px;
    font-weight: 600;
} */

.iso-badge {
    background: rgba(212,175,55,.15);
    color: #D4AF37;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 10px;
}

/* FRONT & BACK */
.iso-card-front,
.iso-card-back {
    border: 1px solid #eee;
    /* border-top: 4px solid #D4AF37; */
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    background: var(--white);
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(0,0,0,0.06);
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* FRONT */
.iso-card-front img {
    max-height: 120px;
    margin-bottom: 15px;
    margin-top: 15px;
}

.iso-card-front h5 {
    font-weight: 600;
    color: var(--black);
    font-size: 20px;
}

.iso-card-front p {
    color: var(--gray-medium);
    font-size: 14px;
}

/* BACK */
.iso-card-back {
    transform: rotateY(180deg);
    background: var(--black);
    color: var(--white);
}

.iso-card-back h5 {
    color: var(--gold)!important;
    margin-bottom: 15px;
    font-size: 20px;
}

.iso-card-back p {
    font-size: 14px;
    line-height: 1.6;
}

/* =========================
   ISO MOBILE
========================= */
@media (max-width: 576px) {
    .iso-card-inner {
        height: 260px;
    }

    .iso-card-front h5 {
        font-size: 18px;
    }
    
    .iso-card-front p, .iso-card-back p {
        font-size: 14px;
    }

    .iso-card-front img {
        max-height: 100px;
    }

    .iso-kemnaker {
        height: 90px!important;
    }
}


.paragraf {
    text-align: justify;
    line-height: 1.7;
}

.company-profile-section {
    background: #f5f5f5;
}

@media (max-width: 576px) {

    .paragraf {
        font-size: 14px;
        /* font-size: 0.95rem; */
        line-height: 1.6;
        margin-bottom: 10px !important;
    }

    .title-mobile {
        font-size: 20px;
    }

    .list-layanan {
        margin-bottom: 10px !important;
    }

    .pelayanan {
        font-size: 14px;
        line-height: 1.6;
        margin-bottom: 8px!important;
    }

}

@media (max-width: 576px) {

    /* Jarak antar informasi kontak */
    .contact-info-mobile > .col-sm-6 {
        margin-bottom: 20px;
    }

    .contact-info-mobile > .col-sm-6:last-child {
        margin-bottom: 0;
    }

    /* Perkecil lingkaran icon */
    .contact-info-mobile .btn-lg-square {
        width: 45px;
        height: 45px;
        min-width: 45px;
    }

    /* Icon */
    .contact-info-mobile .btn-lg-square i {
        font-size: 16px;
    }

    /* Label */
    .contact-info-mobile p {
        font-size: 14px;
        margin-bottom: 2px !important;
    }

    /* Email / nomor */
    .contact-info-mobile h5 {
        font-size: 16px;
        margin-bottom: 0 !important;
    }

    .company-profile-section {
        padding: 35px 20px !important;
    }

    .company-profile-section h2 {
        font-size: 24px;
    }

    .company-profile-section p {
        font-size: 14px;
        line-height: 1.6;
    }

    .company-profile-section .btn {
        font-size: 14px;
        padding: 10px 18px !important;
    }
}

.legalitas-card {
    background: #f8f8f8;
    border-radius: 20px;
    padding: 10px 30px;
    max-width: 900px;
    margin: 0 auto;
}

.legalitas-item {
    display: flex;
    align-items: center;
    padding: 20px 10px;
    border-bottom: 1px solid #e5e5e5;
}

.legalitas-item:last-child {
    border-bottom: none;
}

.legalitas-label {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 35%;
    font-weight: 600;
    color: var(--black);
}

.legalitas-label i {
    color: var(--red);
    width: 22px;
    text-align: center;
}

.legalitas-value {
    width: 65%;
    color: #555;
}

/* Mobile */
@media (max-width: 576px) {
    .legalitas-card {
        padding: 5px 20px;
        border-radius: 15px;
    }

    .legalitas-item {
        display: block;
        padding: 16px 5px;
    }

    .legalitas-label {
        width: 100%;
        margin-bottom: 6px;
        font-size: 14px;
    }

    .legalitas-value {
        width: 100%;
        font-size: 14px;
        line-height: 1.5;
        padding-left: 34px;
    }
}

.logo-float-wrapper {
    position: relative;
    animation: logoFloat 4s ease-in-out infinite;
}

.logo-float-img {
    max-width: 80%;
    display: block;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* SHADOW LEBIH TEGAS */
.logo-shadow {
    position: absolute;
    left: 50%;
    bottom: -30px; /* JARAK DITURUNIN */
    width: 80%;
    height: 18px;
    background: rgba(0, 0, 0, 0.45);
    border-radius: 50%;
    transform: translateX(-50%);
    filter: blur(8px); /* blur dikurangi */
    z-index: 1;
    animation: shadowScale 4s ease-in-out infinite;
}

/* FLOAT LOGO */
@keyframes logoFloat {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-16px);
    }
    100% {
        transform: translateY(0);
    }
}

/* SHADOW DINAMIS KELIATAN */
@keyframes shadowScale {
    0% {
        transform: translateX(-50%) scale(0.85);
        opacity: 0.45;
        filter: blur(8px);
    }
    50% {
        transform: translateX(-50%) scale(1.2);
        opacity: 0.22;
        filter: blur(16px);
    }
    100% {
        transform: translateX(-50%) scale(0.85);
        opacity: 0.45;
        filter: blur(8px);
    }
}


.vm-card {
    background: #ffffff;
    padding: 40px 32px;
    border-radius: 16px;
    border: 1px solid #eee;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
    border-top:5px solid #D4AF37;
}

.vm-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.10);
}

.vm-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px;
    /* background: var(--red); */
    background:linear-gradient(
        135deg,
        var(--red),
        #b71c1c
    );
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
}

.vm-card h4 {
    font-weight: 700;
    color: var(--black);
}

.vm-list {
    padding-left: 0;
    list-style: none;
}

.vm-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 14px;
}

.vm-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--gold);
    font-weight: 700;
}


/* .img-support {
    width: 100%;
    height: 250px;
    object-fit: cover;
    object-position: center;
    border-radius: 16px;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.img-support:hover {
    transform: scale(1.03) translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
} */

/* Visi & Misi */
@media (max-width: 576px) {
    .vm-text {
        font-size: 14px;
        line-height: 1.6;
    }
}

/* Image Header */
.img-support-wrapper {
    width: 100%;
    height: 250px;
    overflow: hidden;
    border-radius: 16px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.img-support-wrapper:hover{
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.img-support {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.img-support-wrapper:hover .img-support {
    transform: scale(1.05);
}

@media (max-width: 576px) {
    .img-support-wrapper {
        height: 200px;
    }
}


/* .feature-icon {
    width: 50px;
    height: 50px;
    background: var(--red);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.feature-item h5 {
    margin-bottom: 4px;
} */

.feature-item{
    align-items:flex-start;
    gap:18px;
    padding:18px 0;
    border-bottom:1px solid #ececec;
    transition:.3s;
}

.feature-item:last-child{
    border-bottom:none;
}

.feature-item:hover{
    transform:translateX(6px);
}

.feature-icon{
    width:58px;
    height:58px;
    border-radius:16px;

    background:rgba(180,27,27,.08);
    color:var(--red);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:24px;
    flex-shrink:0;

    transition:.3s;
}

.feature-item:hover .feature-icon{
    background:var(--red);
    color:#fff;
}

.feature-content h5{
    font-size:20px;
    font-weight:700;
    margin-bottom:6px;
    color:#111;
}

.feature-content p{
    font-size:15px;
    line-height:1.7;
}

.feature-img{
    transition: transform .35s ease, filter .35s ease;
    max-width: 330px;
}

.feature-img:hover{
    transform: translateY(-8px);
    filter: drop-shadow(0 18px 20px rgba(0,0,0,.22));
}

@media (max-width:576px){

    .feature-item{
        gap:14px;
        padding:14px 0;
    }

    .feature-icon{
        width:44px;
        height:44px;
        border-radius:12px;
        font-size:18px;
    }

    .feature-content h5{
        font-size:16px;
        margin-bottom:4px;
        line-height:1.35;
    }

    .feature-content p{
        font-size:13px;
        line-height:1.6;
    }

    .feature-img {
        width: 200px;
        filter: drop-shadow(0 8px 14px rgba(0,0,0,.15));
    }

    .sub-title {
        font-size: 14px;
    }

}

.training-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    transition: all 0.35s ease;
}

.training-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 45px rgba(0,0,0,0.15);
}

.training-icon {
    width: 60px;
    height: 60px;
    background: var(--red);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.training-list {
    padding-left: 0;
    margin-top: 15px;
}

.training-list li {
    list-style: none;
    padding-left: 24px;
    position: relative;
    margin-bottom: 8px;
    color: var(--gray-medium);
}

.training-list li::before {
    content: "✔";
    position: absolute;
    left: 0;
    color: var(--gold);
    font-size: 14px;
}

@media (max-width:576px) {
    .training-list li {
        font-size: 14px;
    }

    .training-icon {
    width: 45px;
    height: 45px;
    font-size: 20px;
    }
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    color: var(--gray-dark)!important;
}

.area-card {
    background: var(--white);
    border-radius: 14px;
    padding: 28px 20px;
    text-align: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    height: 100%;
    align-content: center;
}

.area-card i {
    font-size: 28px;
    color: var(--red);
    margin-bottom: 12px;
}

.area-card h6 {
    margin: 0;
    font-weight: 600;
    color: var(--black);
}

.area-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 36px rgba(0,0,0,0.15);
}

@media (max-width: 576px) {
    .area-card {
        padding: 18px 12px;
        border-radius: 10px;
    }

    .area-card i {
        font-size: 22px;
        margin-bottom: 8px;
    }

     .area-card h6 {
        font-size: 14px;
        line-height: 1.4;
        font-weight: 600;
    }
}

.consult-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 32px 26px;
    height: 100%;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

.consult-card h5 {
    margin-bottom: 12px;
    font-weight: 600;
    color: var(--black);
}

.consult-card p {
    margin: 0;
    font-size: 15px;
    color: var(--gray-medium);
    line-height: 1.6;
    text-align: justify;
}

.consult-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: rgba(220, 53, 69, 0.1); /* merah soft BMP */
    display: flex;
    align-items: center;
    justify-content: center;
}

.consult-icon i {
    font-size: 30px;
    color: var(--red);
}

.consult-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.15);
}

@media (max-width:576px) {
    .consult-card p {
        font-size: 14px;
    }

    .consult-icon {
        width: 50px;
        height: 50px;
    }

    .consult-icon i {
        font-size: 25px;
    }
}

.offer-panel {
    /* background: linear-gradient(
        135deg,
        rgba(198, 40, 40, 0.05),
        rgba(212, 175, 55, 0.08)
    ); */
    background: #fff;
    border-radius: 20px;
    padding:3rem 2.5rem !important;
    box-shadow:0 12px 32px rgba(0,0,0,.08);
}

.offer-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: var(--red);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin: 0 auto;
}

.offer-title{
    font-size:34px;
    font-weight:700;
    color:#111;
}

.offer-panel .btn {
    border-radius: 50px;
    font-weight: 500;
}

.offer-panel p{
    font-size:16px;
    line-height:1.7;
}

.offer-panel .btn-outline-primary:hover {
    background-color: var(--red);
    border-color: var(--red);
    color: #fff;
}

/* Decorative shape */
.offer-shape {
    position: absolute;
    top: -60px;
    right: -60px;
    width: 150px;
    height: 150px;
    background: rgba(198, 40, 40, 0.08);
    border-radius: 50%;
}

.offer-btn{
    padding:12px 26px;
    border-radius:50px;
    font-size:15px;
    font-weight:600;
}

.offer-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:8px 18px;

    border-radius:999px;

    background:rgba(198,40,40,.08);
    color:var(--red);

    font-size:14px;
    font-weight:600;

    margin-bottom:18px;
}

@media (max-width:576px){

    .offer-panel{
        padding:32px 22px !important;
        border-radius:18px;
    }

    .offer-icon{
        width:48px;
        height:48px;
        font-size:20px;
    }

    .offer-title{
        font-size:24px;
        line-height:1.35;
    }

    .offer-panel p{
        font-size:14px;
        line-height:1.6;
    }

    .offer-btn{
        width:100%;
        font-size:14px;
        padding:10px 18px;
    }

    .offer-shape{
        width:90px;
        height:90px;
        top:-35px;
        right:-35px;
    }

    .offer-panel .small{
        font-size:12px;
    }

}

.timeline {
    position: relative;
    margin-left: 20px;
}

.timeline::before {
    content: "";
    position: absolute;
    top: 0;
    left:30px;
    width: 3px;
    height: 100%;
    background:linear-gradient(
        to bottom,
        var(--red),
        rgba(198,40,40,.15)
    );
}

.timeline-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    margin-bottom: 40px;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline-dot {
    width: 58px;
    height: 58px;
    background:linear-gradient(
        135deg,
        #d32f2f,
        #b71c1c
    );
    color: var(--white);
    border-radius: 50%;
    font-size: 17px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
    border:5px solid #fff;

    box-shadow:
        0 0 0 5px rgba(198,40,40,.08),
        0 10px 25px rgba(198,40,40,.25);
}

.timeline-content {
    margin-left:28px;
    padding:22px 26px;

    background:#fff;

    border-radius:16px;

    box-shadow:0 10px 25px rgba(0,0,0,.06);

    transition:.3s;
}

.timeline-content:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 36px rgba(0,0,0,.12);
}

.timeline-content h5 {
    margin-bottom: 8px;
    font-size:20px;
    font-weight: 700;
    color: var(--black);
}

.timeline-content p {
    margin-bottom: 0;
    color: var(--gray-medium);
    font-size: 15px;
}

.timeline-icon{

    color:var(--red);

    font-size:22px;

    margin-bottom:12px;

    display:inline-block;
}

@media (max-width:576px){

.timeline{

    margin-left:0;

    padding-left:0;

}

.timeline::before{

    left:22px;

}

.timeline-dot{

    width:46px;
    height:46px;

    font-size:14px;

    border-width:4px;
}

.timeline-content{

    margin-left:18px;

    padding:18px;
}

.timeline-content h5{

    font-size:16px;
}

.timeline-content p{

    font-size:13px;
    line-height:1.6;
}

}

/* Badges */
.training-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.badge-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--gray-soft);
    border-radius: 50px;
    font-size: 14px;
    font-weight: 500;
    color: var(--black);
    transition: all 0.3s ease;
}

.badge-item i {
    color: var(--red);
    font-size: 14px;
}

.badge-item:hover {
    background: var(--red);
    color: var(--white);
}

.badge-item:hover i {
    color: var(--white);
}

@media (max-width:576px){
    .badge-item {
        font-size: 14px;
        padding: 8px 12px;
    }

}

/* Image Styling */
.training-image-wrapper {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.training-image {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.training-image-wrapper:hover .training-image {
    transform: scale(1.05);
}

@media (max-width:576px) {
    .training-image {
        height: auto;
    }
}

/* Facility Card */
.facility-card {
    background: var(--white);
    border-radius: 16px;
    padding: 30px 20px;
    text-align: center;
    height: 100%;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    transition: all 0.35s ease;
}

.facility-card i {
    font-size: 36px;
    color: var(--red);
    margin-bottom: 15px;
}

.facility-card h6 {
    font-size: 16px;
    font-weight: 600;
    color: var(--black);
    margin: 0;
}

.facility-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.15);
}

/* Card Container */
.requirements-card {
    background: var(--white);
    border-radius: 20px;
    /* padding: 40px 35px; */
    padding: 45px;
    /* box-shadow: 0 20px 45px rgba(0, 0, 0, 0.1); */
    box-shadow:0 12px 35px rgba(0,0,0,.06);
}

/* Item */
.requirement-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

/* Number */
.req-number {
    min-width: 48px;
    height: 48px;
    background: var(--red);
    color: var(--white);
    font-weight: 700;
    font-size: 15px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Text */
.requirement-item p {
    margin: 0;
    color: var(--gray-dark);
    line-height: 1.6;
    font-size: 15px;
    align-self: center;
}

.req-icon{

    width:42px;
    height:42px;

    border-radius:50%;

    background:rgba(198,40,40,.08);

    color:var(--red);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:16px;

    flex-shrink:0;

    transition:.3s;
}

.requirement-item:hover .req-icon{

    background:var(--red);
    color:white;

}

.requirement-item:hover .req-icon{
    background:var(--red);
    color:#fff;
}

/* Responsive */
@media (max-width: 576px) {
    .req-icon{

    width:36px;
    height:36px;

    font-size:14px;

    }

    .requirement-item p{

        font-size:14px;

        line-height:1.6;

    }

    .requirements-card {
        padding: 30px 20px;
    }

    .req-number {
        min-width: 40px;
        height: 40px;
        font-size: 14px;
    }
}

.info-card {
    background: var(--white);
    border-radius: 18px;
    padding: 32px;
    box-shadow: 0 12px 32px rgba(0,0,0,.08);
    transition: .3s;
    height: 100%;
}

.info-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 45px rgba(0,0,0,.12);
}

.info-card h4{
    font-size:24px;
    font-weight:700;
    margin-bottom:14px;
}

.info-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 18px;
    background: rgba(198,40,40,.08);
    color: var(--red);
    border-radius: 50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
}

.info-list {
    list-style:none;
    padding:0;
    margin:0;
}

.info-list li{
    position:relative;
    padding-left:22px;
    margin-bottom:12px;
    line-height:1.6;
}

.info-list li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:var(--gold);
    font-weight:700;
}

.price-text {
    font-size:36px;
    font-weight:700;
    color:var(--red);
    line-height:1.2;
}

.info-card.highlight {
    border-left: 5px solid var(--red);
}

.price-badge{
    display:inline-block;
    background:rgba(212, 175, 55, 0.15);
    color:var(--gold);
    padding:6px 14px;
    border-radius:30px;
    font-size:13px;
    font-weight:600;
    margin-bottom:14px;
}

@media (max-width:576px){

    .info-card{
        padding:22px 20px;
        border-radius:14px;
    }

    .info-icon{
        width:52px;
        height:52px;
        font-size:22px;
        margin-bottom:14px;
    }

    .info-card h4{
        font-size:18px;
        margin-bottom:10px;
    }

    .info-list li{
        font-size:14px;
        line-height:1.6;
        margin-bottom:8px;
        padding-left:18px;
    }

    .price-text{
        font-size:26px;
    }

    .info-card .small{
        font-size:13px;
    }
}

/* CONTACT */
.contact-map{
    width:100%;
    height:450px;
    border:0;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.10);
}

@media (max-width:991.98px){

    .contact-map{
        height:350px;
    }

}

@media (max-width:576px){

    .contact-map{
        height:250px;
        border-radius:12px;
    }

}

.contact-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 40px 35px;
    text-align: center;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.contact-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 26px 60px rgba(0, 0, 0, 0.12);
}

.contact-icon {
    width: 76px;
    height: 76px;
    margin: 0 auto 20px;
    background: rgba(198, 0, 0, 0.1);
    color: var(--red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
}

.contact-card.highlight {
    border-top: 6px solid var(--red);
}

.contact-card .btn {
    border-radius: 50px;
    font-weight: 600;
}

.section-daftar-training {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #9B1C1C 0%, #B71C1C 100%);
}

.section-daftar-training::before{
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    border-radius:50%;
    background:rgba(255,255,255,.05);
    top:-120px;
    right:-100px;
}

.section-daftar-training::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(255,255,255,.04);
    bottom:-100px;
    left:-80px;
}

.section-daftar-training h2{
    font-size:42px;
    font-weight:700;
}

.section-daftar-training p{
    font-size:18px;
    opacity:.95;
}

/* .btn-cta {
    padding: 16px 34px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 50px;
    min-width: 240px;
    transition: all 0.3s ease;
} */

.btn-cta{
    border-radius:999px;
    box-shadow:0 8px 24px rgba(0,0,0,.15);
}

.btn-cta i{
    margin-right:8px;
}

.cta-icon{
    width:72px;
    height:72px;
    margin:auto;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:30px;
}

/* Button Telepon */
.btn-light.btn-cta {
    color: var(--red);
}

.btn-light.btn-cta:hover {
    background: #f1f1f1;
    transform: translateY(-3px);
}

/* Button WhatsApp */
.btn-outline-light.btn-cta:hover {
    background: #ffffff;
    color: var(--red);
    transform: translateY(-3px);
}

@media (max-width:576px){

    .section-daftar-training{
        padding-top:55px !important;
        padding-bottom:55px !important;
    }

    .section-daftar-training h2{
        font-size:28px;
        line-height:1.35;
        margin-bottom:14px !important;
    }

    .section-daftar-training p{
        font-size:14px;
        line-height:1.7;
        margin-bottom:24px !important;
    }

    .btn-cta{
        min-width:100%;
        padding:14px 20px;
        font-size:14px;
    }
}

/* Training Timeline */
.training-timeline {
    position: relative;
    max-width: 700px;
    margin: 0 auto;
    padding-left: 30px;
}

/* Vertical Line */
.training-timeline::before{
    width:3px;
    background:linear-gradient(
        to bottom,
        var(--red),
        rgba(198,40,40,.2)
    );
}

/* Item */
.training-timeline-item {
    position: relative;
    margin-bottom: 32px;
}

/* Dot */
.training-timeline-dot{
    width:18px;
    height:18px;
    left:-4px;
    border:4px solid #fff;
    background:var(--red);
    box-shadow:0 0 0 4px rgba(198,40,40,.2);
}

/* Content Box */
.training-timeline-content{
    background:#fff;
    border-left:5px solid var(--red);
    border-radius:14px;
    padding:20px 24px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    transition:.3s;
}

.training-timeline-content:hover{
    transform:translateX(6px);
    box-shadow:0 18px 35px rgba(0,0,0,.12);
}

.training-timeline-content h5{
    font-size:22px;
    font-weight:700;
    color:#111;
    margin-bottom:8px;
}

.training-timeline-content p{
    font-size:16px;
}

/* Tentative Badge */
.badge-tentative {
    background: rgba(212, 175, 55, 0.15);
    color: var(--gold);
    font-weight: 500;
    font-size: 0.75rem;
    padding: 4px 10px;
    border-radius: 20px;
}

.training-card{
    background:#fff;
    border-radius:18px;
    padding:28px;
    height:100%;
    border:1px solid #eee;
    box-shadow:0 12px 30px rgba(0,0,0,.06);
    transition:.3s;
    position:relative;
    overflow:hidden;
}

.training-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:5px;
    background:var(--red);
}

.training-card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.training-date{
    display:inline-flex;
    align-items:center;
    gap:8px;

    background:#F8F8F8;

    padding:8px 14px;

    border-radius:30px;

    font-size:14px;

    color:#555;

    margin-bottom:22px;
}

.training-date i{
    color:var(--red);
}

.training-card h4{

    font-size:24px;

    font-weight:700;

    margin-bottom:8px;
}

.training-class{

    color:#888;

    margin-bottom:24px;
}

.training-status{

    display:inline-block;

    padding:8px 18px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;
}

.training-status.selesai{

    background:#E8F5E9;

    color:#2E7D32;
}

.training-status.tentative{

    background:#FFF8E1;

    color:#C58A00;
}

@media (max-width:576px){

.training-card{

    padding:20px;

}

.training-card h4{

    font-size:19px;

}

.training-date{

    font-size:13px;

}

.training-class{

    font-size:14px;

    margin-bottom:18px;

}

.training-status{

    font-size:12px;

    padding:7px 14px;

}

}

/* Gallery */
/* .gallery-title {
    font-weight: 600;
    color: var(--black);
} */

.gallery-title{
    font-size:28px;
    font-weight:700;
    color:var(--black);
}

.gallery-link{
    text-decoration:none;
    color:var(--red);
    font-weight:600;
    transition:.3s;
}

.gallery-link i{
    transition:.3s;
}

.gallery-link:hover i{
    transform:translateX(5px);
}

.gallery-img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    border-radius:14px;
    transition:.35s;
}

.gallery-img:hover{
    transform:scale(1.04);
}

.gallery-group img{
    box-shadow:0 10px 24px rgba(0,0,0,.08);
}

.gallery-photo{
    position:relative;
    display:block;
    overflow:hidden;
    border-radius:14px;
}

.gallery-photo::after{
    content:"\f00e";
    font-family:"Font Awesome 5 Free";
    font-weight:900;

    position:absolute;
    inset:0;

    display:flex;
    align-items:center;
    justify-content:center;

    background:rgba(0,0,0,.28);
    color:#fff;

    font-size:28px;

    opacity:0;
    transition:.3s;
}

.gallery-photo:hover::after{
    opacity:1;
}

.btn-gallery-more{
    background:none;
    border:none;
    color:var(--red);
    font-weight:600;
    font-size:16px;
    transition:.3s;
}

.btn-gallery-more i{
    transition:.3s;
}

.btn-gallery-more:hover{
    color:#a61f1f;
}

.btn-gallery-more:hover i{
    transform:translateX(6px);
}

.gallery-divider{
    display:flex;
    align-items:center;
    margin:70px 0;
}

.gallery-divider::before,
.gallery-divider::after{
    content:"";
    flex:1;
    height:1px;
    background:#e5e5e5;
}

.gallery-divider span{
    width:50px;
    height:50px;
    margin:0 20px;

    border-radius:50%;
    background:#fff;

    display:flex;
    justify-content:center;
    align-items:center;

    color:var(--red);

    border:1px solid #ececec;
}

@media(max-width:576px){

    .gallery-title{
        font-size:20px;
    }

    .btn-gallery-more{
        font-size:14px;
    }

    .gallery-link{
        font-size:14px;
    }

    .gallery-img{
        border-radius:10px;
        max-height: 200px;
    }

    .modal-title{
        font-size:18px;
    }

}

.gallerySwiper {
    padding: 10px 0 30px;
}

.gallerySwiper .swiper-slide {
    border-radius: 16px;
    overflow: hidden;
}

.gallerySwiper img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.gallerySwiper img:hover {
    transform: scale(1.05);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
}

/* Arrow */
.gallerySwiper .swiper-button-next,
.gallerySwiper .swiper-button-prev {
    color: var(--red);
}

.gallerySwiper .swiper-button-next::after,
.gallerySwiper .swiper-button-prev::after {
    font-size: 20px;
    font-weight: bold;
}

.gallerySwiper a {
    display: block;
    position: relative;
}

.gallerySwiper a::after {
    content: "\f002";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    padding: 6px 8px;
    border-radius: 50%;
    font-size: 14px;
    opacity: 0;
    transition: 0.3s ease;
}

.gallerySwiper a:hover::after {
    opacity: 1;
}

.navbar-light .navbar-toggler {
    border: 0;
}


.btn-red-simple {
    background-color: var(--red);
    border-color: var(--red);
    color: var(--white);
    /* border-radius: 50px; */
    font-weight: 500;
    /* transition: all 0.25s ease; */
    /* box-shadow: 0 8px 20px rgba(198, 40, 40, 0.25); */
}

/* Hover */
.btn-red-simple:hover {
    background-color: #B71C1C;
    border-color: #B71C1C;
    color: var(--white);
    box-shadow: 0 12px 28px rgba(183, 28, 28, 0.35);
    /* transform: translateY(-1px); */
}

/* Active (saat diklik) */
.btn-red-simple:active {
    background-color: #8E0000;
    border-color: #8E0000;
    box-shadow: 0 4px 12px rgba(142, 0, 0, 0.35);
    /* transform: translateY(0); */
}

/* Focus (keyboard / accessibility) */
.btn-red-simple:focus,
.btn-red-simple:focus-visible {
    outline: none;
    box-shadow:
        0 0 0 4px rgba(198, 40, 40, 0.35),
        0 8px 20px rgba(198, 40, 40, 0.25);
}

/* Visited (biarkan konsisten) */
.btn-red-simple:visited {
    color: var(--white);
}

.footer-icon {
    font-size: 18px;
}

.whatsapp-float {
    position: fixed;
    right: 30px;
    bottom: 90px; /* di atas back-to-top */
    z-index: 99;
    background-color: #25D366;
    color: #fff;
    box-shadow: 0 6px 18px rgba(0,0,0,.25);
    transition: transform .25s ease, box-shadow .25s ease;
    display: none;
}

.whatsapp-float:hover {
    transform: translateY(-4px) scale(1.05);
    box-shadow: 0 10px 24px rgba(0,0,0,.35);
    color: #fff;
}

.navbar-light .navbar-toggler.collapsed .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,0,0,0.7)' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

.navbar-light .navbar-toggler:not(.collapsed) .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,0,0,0.7)' stroke-width='2' stroke-linecap='round' d='M6 6L24 24M6 24L24 6'/%3E%3C/svg%3E");
}

.navbar-toggler-icon {
    transition: background-image 0.25s ease-in-out;
}

/* Smooth dropdown khusus mobile */
@media (max-width: 991.98px) {

    .navbar-nav .dropdown-menu {
        display: block;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transform: translateY(-6px);
        transition:
            max-height .2s ease,
            opacity .15s ease;
        padding-top: 0;
        padding-bottom: 0;
        border: none;
        box-shadow: none;
    }

    .navbar-nav .dropdown-menu.show {
        max-height: 300px;
        opacity: 1;
        transform: translateY(0);
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .navbar-nav .dropdown-item {
        padding: 10px 16px;
    }

    .nav-link.dropdown-toggle::after {
    transition: transform 0.3s ease;
    }

    .nav-item.dropdown .nav-link.show::after {
        transform: rotate(180deg);
    }

    .btn-kontak {
        margin-bottom: 20px;
    }

}

@media (max-width: 576px) {
    .navbar .navbar-nav .nav-link, .dropdown-item, .btn-kontak {
        font-size: 14px;
    }

    .navbar .navbar-nav {
        padding-bottom: 10px !important;
    }

    .navbar .navbar-brand {
        padding-left: 24px !important;
    }
}

.img-about {
    border-radius: 14px;
}
