/*=========================================================
 SINTA BBPP KETINDAN
 Style Version 2.0
=========================================================*/


/*=========================================================
ROOT
=========================================================*/

:root{

    --primary:#1D7C52;

    --primary-light:#34B67A;

    --secondary:#F7F8F5;

    --orange:#F4A62A;

    --dark:#243746;

    --gray:#6C757D;

    --white:#FFFFFF;

    --border:#E7ECEF;

    --shadow:0 15px 40px rgba(0,0,0,.08);

    --radius:18px;

    --transition:.35s;

}


/*=========================================================
RESET
=========================================================*/

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}


html{

    scroll-behavior:smooth;

}


body{

    font-family:'Poppins',sans-serif;

    background:#f8fafb;

    color:var(--dark);

    line-height:1.8;

    overflow-x:hidden;

}


img{

    max-width:100%;

    display:block;

}


a{

    text-decoration:none;

    transition:var(--transition);

}


ul{

    list-style:none;

    margin:0;

    padding:0;

}


button{

    border:none;

    outline:none;

}


input,
textarea,
select{

    outline:none;

    box-shadow:none !important;

}


section{

    padding:90px 0;

}


/*=========================================================
CONTAINER
=========================================================*/

.container{

    max-width:1240px;

}


/*=========================================================
TITLE
=========================================================*/

.section-title{

    margin-bottom:60px;

}


.section-title h2{

    font-size:42px;

    font-weight:700;

    color:var(--dark);

    margin-top:15px;

    margin-bottom:20px;

}


.section-title p{

    max-width:760px;

    margin:auto;

    color:var(--gray);

}


.section-badge{

    display:inline-block;

    background:#EAF7F0;

    color:var(--primary);

    padding:10px 22px;

    border-radius:50px;

    font-size:14px;

    font-weight:600;

}


/*=========================================================
BUTTON
=========================================================*/

.btn-primary-custom{

    display:inline-flex;

    align-items:center;

    gap:12px;

    background:var(--primary);

    color:#fff;

    padding:16px 34px;

    border-radius:50px;

    font-weight:600;

    transition:.35s;

    box-shadow:0 15px 30px rgba(29,124,82,.25);

}


.btn-primary-custom:hover{

    transform:translateY(-5px);

    background:#156B44;

    color:#fff;

}


.btn-outline-custom{

    display:inline-flex;

    align-items:center;

    gap:12px;

    border:2px solid var(--primary);

    color:var(--primary);

    padding:15px 32px;

    border-radius:50px;

    margin-left:12px;

    font-weight:600;

    transition:.35s;

}


.btn-outline-custom:hover{

    background:var(--primary);

    color:#fff;

}


/*=========================================================
CARD
=========================================================*/

.modern-card{

    background:#fff;

    border-radius:22px;

    padding:35px;

    box-shadow:var(--shadow);

    margin-bottom:30px;

    transition:.35s;

}


.modern-card:hover{

    transform:translateY(-5px);

}


.card-title{

    display:flex;

    align-items:center;

    gap:20px;

    margin-bottom:30px;

}


.card-icon{

    width:65px;

    height:65px;

    border-radius:18px;

    background:#EAF7F0;

    color:var(--primary);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:26px;

}


.card-title h3{

    font-size:24px;

    margin-bottom:5px;

}


.card-title p{

    margin:0;

    color:var(--gray);

}


/*=========================================================
UTILITY
=========================================================*/

.text-primary{

    color:var(--primary)!important;

}


.shadow-custom{

    box-shadow:var(--shadow);

}


.rounded-custom{

    border-radius:var(--radius);

}

/*=========================================================
HEADER
=========================================================*/

.main-header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:9999;

    transition:.4s;

    padding:18px 0;

    background:transparent;

}

.main-header.sticky{

    background:#ffffff;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    padding:12px 0;

}

.navbar-wrapper{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.logo-main{

    height:65px;

    transition:.35s;

}

.main-header.sticky .logo-main{

    height:58px;

}

.desktop-menu ul{

    display:flex;

    align-items:center;

    gap:35px;

}

.desktop-menu a{

    color:var(--dark);

    font-weight:600;

    font-size:15px;

    position:relative;

}

.desktop-menu a::after{

    content:"";

    position:absolute;

    width:0;

    left:0;

    bottom:-8px;

    height:3px;

    border-radius:50px;

    background:var(--primary);

    transition:.35s;

}

.desktop-menu a:hover::after,

.desktop-menu a.active::after{

    width:100%;

}

.btn-header{

    background:var(--primary);

    color:#fff;

    padding:13px 28px;

    border-radius:40px;

    font-weight:600;

    transition:.35s;

}

.btn-header:hover{

    color:#fff;

    transform:translateY(-4px);

    box-shadow:0 15px 30px rgba(29,124,82,.25);

}



/*=========================================================
HERO
=========================================================*/

.hero-section{

    position:relative;

    overflow:hidden;

    padding-top:170px;

    padding-bottom:140px;

    background:
    linear-gradient(
        135deg,
        #F7FAF5 0%,
        #F1FAF4 40%,
        #EDF7EF 100%
    );

}



/* dekorasi */

.hero-section::before{

    content:"";

    position:absolute;

    width:520px;

    height:520px;

    border-radius:50%;

    background:rgba(52,182,122,.08);

    top:-180px;

    right:-150px;

}

.hero-section::after{

    content:"";

    position:absolute;

    width:420px;

    height:420px;

    border-radius:50%;

    background:rgba(244,166,42,.08);

    bottom:-180px;

    left:-120px;

}



/*=========================================================
HERO CONTENT
=========================================================*/

.hero-content{

    position:relative;

    z-index:3;

}

.badge-sinta{

    display:inline-block;

    padding:10px 24px;

    background:#EAF7F0;

    color:var(--primary);

    border-radius:50px;

    font-size:14px;

    font-weight:600;

    margin-bottom:25px;

}

.hero-content h1{

    font-size:58px;

    line-height:1.15;

    font-weight:800;

    margin-bottom:30px;

    color:var(--dark);

}

.hero-content h1 span{

    display:block;

    color:var(--primary);

}

.hero-content p{

    font-size:18px;

    color:var(--gray);

    margin-bottom:40px;

    max-width:620px;

}

.hero-button{

    display:flex;

    flex-wrap:wrap;

    align-items:center;

    gap:15px;

    margin-bottom:45px;

}



/*=========================================================
FEATURE HERO
=========================================================*/

.hero-feature{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

}

.hero-feature div{

    display:flex;

    align-items:center;

    gap:10px;

    background:#fff;

    padding:14px 22px;

    border-radius:40px;

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

    font-weight:600;

}

.hero-feature i{

    color:var(--primary);

}



/*=========================================================
IMAGE HERO
=========================================================*/

.hero-image{

    position:relative;

    z-index:2;

    text-align:center;

}

.hero-image img{

    width:100%;

    max-width:620px;

    animation:floatHero 5s ease-in-out infinite;

}



/*=========================================================
FLOATING SHAPE
=========================================================*/

.hero-image::before{

    content:"";

    position:absolute;

    width:140px;

    height:140px;

    background:#ffffff;

    border-radius:30px;

    top:40px;

    left:-20px;

    opacity:.45;

    transform:rotate(18deg);

}

.hero-image::after{

    content:"";

    position:absolute;

    width:90px;

    height:90px;

    background:rgba(52,182,122,.20);

    border-radius:25px;

    bottom:30px;

    right:20px;

    transform:rotate(-20deg);

}



/*=========================================================
WAVE
=========================================================*/

.hero-wave{

    position:absolute;

    bottom:-2px;

    left:0;

    width:100%;

    line-height:0;

}

.hero-wave svg{

    width:100%;

    display:block;

}



/*=========================================================
ANIMATION
=========================================================*/

@keyframes floatHero{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-18px);

    }

    100%{

        transform:translateY(0);

    }

}

/*=========================================================
FEATURE CARD
=========================================================*/

.feature-card{

    background:#fff;

    border-radius:22px;

    padding:35px 28px;

    text-align:center;

    box-shadow:0 12px 35px rgba(0,0,0,.05);

    transition:.35s;

    height:100%;

    position:relative;

    overflow:hidden;

}

.feature-card::before{

    content:"";

    position:absolute;

    width:120px;

    height:120px;

    background:rgba(29,124,82,.05);

    border-radius:50%;

    right:-45px;

    top:-45px;

}

.feature-card:hover{

    transform:translateY(-10px);

    box-shadow:0 20px 45px rgba(0,0,0,.08);

}

.feature-icon{

    width:78px;

    height:78px;

    margin:auto;

    border-radius:22px;

    display:flex;

    justify-content:center;

    align-items:center;

    color:#fff;

    font-size:30px;

    margin-bottom:25px;

}

.feature-card h4{

    font-size:22px;

    font-weight:700;

    margin-bottom:15px;

}

.feature-card p{

    color:var(--gray);

}



/*=========================================================
COUNTER
=========================================================*/

.counter-section{

    padding:30px 0 80px;

}

.counter-box{

    background:#fff;

    border-radius:20px;

    padding:30px;

    text-align:center;

    box-shadow:0 10px 30px rgba(0,0,0,.05);

}

.counter-box h3{

    font-size:42px;

    color:var(--primary);

    font-weight:800;

}

.counter-box span{

    color:var(--gray);

}



/*=========================================================
STEP
=========================================================*/

.step-wrapper{

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin-bottom:45px;

}

.step-item{

    display:flex;

    flex-direction:column;

    align-items:center;

    flex:1;

}

.step-number{

    width:52px;

    height:52px;

    border-radius:50%;

    background:#EAF7F0;

    color:var(--primary);

    display:flex;

    justify-content:center;

    align-items:center;

    font-weight:700;

    margin-bottom:10px;

}

.step-item.active .step-number{

    background:var(--primary);

    color:#fff;

}

.step-line{

    height:2px;

    background:#dfe7e2;

    flex:1;

    margin:0 10px;

    margin-top:-28px;

}



/*=========================================================
FORM
=========================================================*/

.form-control{

    border:1px solid #dfe7e2;

    border-radius:15px;

    min-height:56px;

    padding:15px 18px;

    font-size:15px;

    transition:.35s;

}

.form-control:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(29,124,82,.12)!important;

}

textarea.form-control{

    min-height:180px;

    resize:vertical;

}

.form-group{

    margin-bottom:22px;

}

.form-group label{

    font-weight:600;

    margin-bottom:10px;

    display:block;

}



/*=========================================================
UPLOAD
=========================================================*/

.upload-area{

    border:2px dashed #b9d7c5;

    border-radius:18px;

    padding:35px;

    background:#fbfdfb;

    transition:.35s;

}

.upload-area:hover{

    border-color:var(--primary);

    background:#f3faf5;

}



/*=========================================================
CHECKBOX
=========================================================*/

.form-check{

    display:flex;

    gap:15px;

    align-items:flex-start;

}

.form-check-input{

    margin-top:5px;

    transform:scale(1.2);

}

.form-check-label{

    color:var(--gray);

}



/*=========================================================
SUBMIT
=========================================================*/

.btn-submit{

    background:linear-gradient(135deg,#1D7C52,#33B66F);

    color:#fff;

    padding:17px 42px;

    border-radius:50px;

    font-size:16px;

    font-weight:600;

    transition:.35s;

    box-shadow:0 18px 35px rgba(29,124,82,.25);

}

.btn-submit:hover{

    transform:translateY(-4px);

}



/*=========================================================
SIDEBAR
=========================================================*/

.sidebar-card{

    background:#fff;

    border-radius:22px;

    padding:30px;

    box-shadow:0 12px 30px rgba(0,0,0,.05);

    margin-bottom:30px;

}

.sidebar-card h3{

    font-size:22px;

    margin-bottom:25px;

}

.info-item{

    padding-bottom:20px;

    margin-bottom:20px;

    border-bottom:1px solid #edf1ef;

}

.info-item:last-child{

    border:none;

    margin-bottom:0;

    padding-bottom:0;

}

.info-item .date{

    color:var(--primary);

    font-weight:600;

    font-size:14px;

    margin-bottom:8px;

}

.contact-list li{

    display:flex;

    gap:14px;

    margin-bottom:18px;

}

.contact-list i{

    color:var(--primary);

    width:22px;

}



/*=========================================================
TIMELINE
=========================================================*/

.timeline-card{

    background:#fff;

    border-radius:22px;

    padding:35px;

    text-align:center;

    height:100%;

    transition:.35s;

    box-shadow:0 12px 30px rgba(0,0,0,.05);

}

.timeline-card:hover{

    transform:translateY(-8px);

}

.timeline-number{

    width:70px;

    height:70px;

    margin:auto;

    border-radius:50%;

    background:linear-gradient(135deg,#1D7C52,#34B67A);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:28px;

    font-weight:700;

    margin-bottom:25px;

}



/*=========================================================
QUOTE
=========================================================*/

.quote-card{

    background:linear-gradient(135deg,#1D7C52,#2AA86A);

    color:#fff;

}

.quote-card p{

    margin:0;

    line-height:1.8;

}

.quote-icon{

    font-size:36px;

    opacity:.25;

    margin-bottom:15px;

}

/*=========================================================
FAQ
=========================================================*/

.faq-section{

    background:#F8FBF8;

}

.accordion-item{

    border:none;

    border-radius:18px!important;

    margin-bottom:18px;

    overflow:hidden;

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

}

.accordion-button{

    padding:22px 28px;

    font-weight:600;

    background:#fff;

    color:var(--dark);

}

.accordion-button:not(.collapsed){

    background:#EAF7F0;

    color:var(--primary);

}

.accordion-button:focus{

    box-shadow:none;

}

.accordion-body{

    padding:25px 30px;

    color:var(--gray);

    line-height:1.8;

}

/*=========================================================
CTA
=========================================================*/

.cta-section{

    padding:90px 0;

}

.cta-box{

    background:linear-gradient(135deg,#1D7C52,#34B67A);

    border-radius:30px;

    padding:60px;

    color:#fff;

    overflow:hidden;

    position:relative;

}

.cta-box::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    right:-100px;

    top:-120px;

}

.cta-box h2{

    font-size:42px;

    font-weight:700;

}

.cta-box p{

    opacity:.9;

    margin-top:15px;

}

/*=========================================================
FOOTER
=========================================================*/

.footer{

    background:#143624;

    color:#fff;

    padding:80px 0 30px;

}

.footer-logo{

    width:100%;

}

.footer h5{

    margin-bottom:25px;

    font-weight:700;

}

.footer-menu li{

    margin-bottom:14px;

}

.footer-menu a{

    color:#d8e7de;

}

.footer-menu a:hover{

    color:#fff;

    padding-left:8px;

}

.footer hr{

    border-color:rgba(255,255,255,.12);

    margin:40px 0 25px;

}

/*=========================================================
PRELOADER
=========================================================*/

#preloader{

    position:fixed;

    left:0;

    top:0;

    width:100%;

    height:100%;

    background:#fff;

    z-index:99999;

    display:flex;

    align-items:center;

    justify-content:center;

}

[data-loader="circle-side"]{

    width:60px;

    height:60px;

    border:6px solid #EAF7F0;

    border-top-color:var(--primary);

    border-radius:50%;

    animation:spinLoader 1s linear infinite;

}

@keyframes spinLoader{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

/*=========================================================
BACK TO TOP
=========================================================*/

.back-to-top{

    position:fixed;

    right:30px;

    bottom:30px;

    width:52px;

    height:52px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    box-shadow:0 12px 25px rgba(0,0,0,.18);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:999;

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

}

/*=========================================================
SCROLL ANIMATION
=========================================================*/

.fade-up{

    opacity:0;

    transform:translateY(35px);

    transition:all .7s ease;

}

.fade-up.show{

    opacity:1;

    transform:none;

}

/*=========================================================
RESPONSIVE
=========================================================*/

@media(max-width:991px){

.hero-section{

padding-top:140px;

text-align:center;

}

.hero-content h1{

font-size:42px;

}

.hero-content p{

margin:auto;

margin-bottom:35px;

}

.hero-button{

justify-content:center;

}

.hero-feature{

justify-content:center;

margin-bottom:40px;

}

.hero-image{

margin-top:40px;

}

.desktop-menu{

display:none;

}

.header-button{

display:none;

}

.section-title h2{

font-size:34px;

}

.cta-box{

padding:40px;

text-align:center;

}

.footer{

text-align:center;

}

}

@media(max-width:768px){

section{

padding:70px 0;

}

.hero-content h1{

font-size:34px;

}

.section-title h2{

font-size:30px;

}

.step-wrapper{

display:none;

}

.modern-card{

padding:25px;

}

.counter-box{

margin-bottom:20px;

}

.timeline-card{

margin-bottom:25px;

}

.sidebar-card{

margin-top:25px;

}

.btn-primary-custom,

.btn-outline-custom{

display:block;

width:100%;

margin:10px 0;

text-align:center;

}

.hero-feature{

flex-direction:column;

}

}

@media(max-width:576px){

.hero-section{

padding-top:120px;

}

.hero-content h1{

font-size:28px;

}

.hero-content p{

font-size:16px;

}

.section-title h2{

font-size:26px;

}

.cta-box h2{

font-size:28px;

}

.footer{

padding:60px 0 20px;

}

}

/* ===== SUCCESS POPUP ===== */

.popup-overlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.55);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.popup-box{
    width: 420px;
    max-width: 90%;
    background: #fff;
    border-radius: 15px;
    padding: 35px 30px;
    text-align: center;
    box-shadow: 0 20px 40px rgba(0,0,0,.25);
    animation: popupShow .35s ease;
}

@keyframes popupShow{
    from{
        opacity:0;
        transform:scale(.85);
    }
    to{
        opacity:1;
        transform:scale(1);
    }
}

.popup-box .icon svg{
    width:80px;
    height:80px;
}

.popup-box h4{
    margin:20px 0 10px;
    font-size:24px;
    color:#28a745;
}

.popup-box small{
    display:block;
    color:#666;
    font-size:16px;
}

.contact-list a{
    color: var(--dark);
    text-decoration: none;
    transition: .3s;
}

.contact-list a:hover{
    color: var(--primary);
}

/* ==========================================================
   INFORMATION PAGE - BBPP KETINDAN
   Tambahan khusus halaman information.php
   Tidak mengubah komponen global SINTA.
   ========================================================== */

.information-page{
    overflow:hidden;
    background:#f8fafb;
}

.info-brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--dark);
}

.info-brand:hover{
    color:var(--primary);
}

.info-brand-mark{
    width:48px;
    height:48px;
    border-radius:15px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#EAF7F0;
    font-size:25px;
    flex-shrink:0;
}

.info-brand small,
.info-brand strong,
.info-brand em{
    display:block;
    line-height:1.15;
}

.info-brand small{
    font-size:9px;
    color:var(--primary);
    font-weight:600;
    letter-spacing:.2px;
}

.info-brand strong{
    font-size:20px;
    color:#0095b5;
    font-weight:800;
}

.info-brand em{
    font-size:8px;
    color:var(--primary);
    font-style:normal;
    font-weight:600;
    letter-spacing:1px;
}

.info-hero-section{
    position:relative;
    overflow:hidden;
    padding-top:170px;
    padding-bottom:105px;
    background:linear-gradient(135deg,#F7FAF5 0%,#F1FAF4 45%,#EDF7EF 100%);
}

.info-hero-section::before{
    content:"";
    position:absolute;
    width:520px;
    height:520px;
    border-radius:50%;
    background:rgba(52,182,122,.08);
    right:-170px;
    top:-210px;
}

.info-hero-content{
    position:relative;
    z-index:2;
}

.info-hero-content h1{
    font-size:58px;
    line-height:1.1;
    font-weight:800;
    margin-bottom:25px;
}

.info-hero-content h1 span{
    display:block;
    color:var(--primary);
}

.info-hero-content p{
    max-width:620px;
    font-size:18px;
    color:var(--gray);
    margin-bottom:35px;
}

.info-hero-illustration{
    min-height:390px;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
}

.info-hero-circle{
    width:300px;
    height:300px;
    border-radius:50%;
    background:linear-gradient(135deg,#EAF7F0,#D5F0E0);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 25px 60px rgba(29,124,82,.12);
    color:var(--primary);
    font-size:115px;
    position:relative;
}

.info-hero-circle::before,
.info-hero-circle::after{
    content:"";
    position:absolute;
    border-radius:50%;
    background:#fff;
    opacity:.65;
}

.info-hero-circle::before{
    width:80px;
    height:80px;
    top:-20px;
    left:15px;
}

.info-hero-circle::after{
    width:55px;
    height:55px;
    right:-5px;
    bottom:35px;
}

.info-floating-card{
    position:absolute;
    display:flex;
    align-items:center;
    gap:12px;
    background:#fff;
    padding:15px 20px;
    border-radius:18px;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
    color:var(--gray);
    font-size:12px;
    line-height:1.4;
}

.info-floating-card i{
    width:42px;
    height:42px;
    border-radius:12px;
    background:#EAF7F0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--primary);
    font-size:18px;
}

.info-floating-card strong{
    color:var(--dark);
}

.info-floating-calendar{
    top:65px;
    right:5px;
}

.info-floating-check{
    bottom:55px;
    left:0;
}

.info-counter-section{
    padding:35px 0 80px;
    background:#f8fafb;
}

.info-stat-card{
    height:100%;
    position:relative;
    overflow:hidden;
    padding:35px 28px;
}

.info-stat-card::after{
    content:"";
    position:absolute;
    width:110px;
    height:110px;
    border-radius:50%;
    background:rgba(29,124,82,.045);
    right:-35px;
    top:-35px;
}

.info-stat-icon{
    width:64px;
    height:64px;
    margin:0 auto 18px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#EAF7F0;
    color:var(--primary);
    font-size:24px;
}

.info-stat-card h3{
    font-size:32px;
    color:var(--primary);
    margin:0 0 2px;
    font-weight:800;
}

.info-stat-card span{
    display:block;
    color:var(--dark);
    font-weight:600;
    font-size:15px;
}

.info-stat-card small{
    color:var(--gray);
    font-size:12px;
}

.info-list-section{
    padding:80px 0 40px;
    background:#fff;
}

.info-filter-card{
    padding:28px;
    margin-bottom:45px;
}

.info-filter-card .form-group label{
    font-size:13px;
}

.info-filter-card .form-control{
    min-height:54px;
    font-size:14px;
}

.info-search-button{
    width:100%;
    min-height:54px;
    border:0;
    cursor:pointer;
}

.info-result-heading{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:20px;
    margin-bottom:25px;
}

.info-result-heading h3{
    margin-top:15px;
    margin-bottom:0;
    font-size:30px;
    font-weight:700;
}

.info-result-heading p{
    margin:0;
    color:var(--gray);
    font-size:14px;
}

.info-result-heading p strong{
    color:var(--primary);
}

.info-list{
    display:grid;
    gap:25px;
}

.info-event-card{
    padding:18px;
    display:grid;
    grid-template-columns:235px minmax(0,1fr) 165px;
    gap:28px;
    align-items:center;
    margin-bottom:0;
}

.info-event-image{
    height:190px;
    border-radius:17px;
    background:#EAF7F0;
    overflow:hidden;
    position:relative;
}

.info-event-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.info-image-fallback{
    position:absolute;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    color:#8db9a0;
    font-size:45px;
    background:#EAF7F0;
}

.info-image-fallback.info-image-visible{
    display:flex;
}

.info-category{
    position:absolute;
    left:13px;
    top:13px;
    z-index:2;
    padding:7px 13px;
    border-radius:50px;
    background:var(--primary);
    color:#fff;
    font-size:11px;
    font-weight:600;
    box-shadow:0 7px 18px rgba(0,0,0,.12);
}

.info-event-content h3{
    font-size:23px;
    line-height:1.35;
    margin-bottom:13px;
    font-weight:700;
}

.info-event-meta{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    margin-bottom:13px;
}

.info-event-meta span{
    color:var(--gray);
    font-size:13px;
}

.info-event-meta i{
    color:var(--primary);
    margin-right:5px;
}

.info-event-description{
    color:var(--gray);
    font-size:14px;
    line-height:1.75;
    margin-bottom:15px;
}

.info-event-contact{
    border-top:1px solid #edf1ef;
    padding-top:12px;
}

.info-event-contact span{
    display:block;
    color:var(--gray);
    font-size:11px;
    margin-bottom:3px;
}

.info-event-contact strong{
    color:var(--dark);
    font-size:13px;
}

.info-event-contact i{
    color:var(--primary);
    margin-right:5px;
}

.info-event-action{
    display:flex;
    justify-content:center;
}

.info-event-action .btn-outline-custom{
    margin-left:0;
    padding:13px 20px;
    white-space:nowrap;
    font-size:13px;
}

.info-pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:35px;
}

.info-pagination a{
    min-width:42px;
    height:42px;
    padding:0 13px;
    border-radius:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid #e3ebe6;
    color:var(--dark);
    font-weight:600;
    font-size:13px;
}

.info-pagination a:hover,
.info-pagination a.active{
    background:var(--primary);
    border-color:var(--primary);
    color:#fff;
}

.info-pagination .info-page-arrow{
    width:auto;
}

.info-empty{
    text-align:center;
    padding:60px 30px;
}

.info-empty-icon{
    width:78px;
    height:78px;
    margin:0 auto 20px;
    border-radius:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#EAF7F0;
    color:var(--primary);
    font-size:28px;
}

.info-empty h3{
    font-size:25px;
    margin-bottom:8px;
}

.info-empty p{
    max-width:520px;
    margin:0 auto 25px;
    color:var(--gray);
}

.info-empty .btn-primary-custom{
    margin:0;
}

.info-cta-section{
    padding:60px 0 90px;
    background:#fff;
}

.info-cta-section .cta-box{
    padding:50px;
}

.info-cta-badge{
    background:rgba(255,255,255,.16);
    color:#fff;
    margin-bottom:18px;
}

.info-cta-section .cta-box h2{
    margin-bottom:0;
}

.info-cta-button{
    background:#fff;
    color:var(--primary);
}

.info-cta-button:hover{
    background:#f5faf7;
    color:var(--primary);
}

.info-footer-brand{
    display:flex;
    align-items:center;
    gap:13px;
}

.info-footer-brand .info-brand-mark{
    background:rgba(255,255,255,.12);
}

.info-footer-brand strong,
.info-footer-brand small{
    display:block;
}

.info-footer-brand strong{
    font-size:19px;
}

.info-footer-brand small{
    color:#b9d8c8;
    font-size:9px;
    letter-spacing:1px;
    margin-top:3px;
}

.footer .contact-list li{
    align-items:flex-start;
}

.footer .contact-list a{
    color:#d8e7de;
}

.footer .contact-list a:hover{
    color:#fff;
}

@media(max-width:991px){
    .info-hero-section{
        padding-top:145px;
        text-align:center;
    }

    .info-hero-content p{
        margin-left:auto;
        margin-right:auto;
    }

    .info-hero-illustration{
        min-height:330px;
    }

    .info-event-card{
        grid-template-columns:210px minmax(0,1fr);
    }

    .info-event-action{
        grid-column:2;
        justify-content:flex-start;
    }

    .info-result-heading{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:768px){
    .info-hero-section{
        padding-top:120px;
        padding-bottom:65px;
    }

    .info-hero-content h1{
        font-size:42px;
    }

    .info-hero-content p{
        font-size:16px;
    }

    .info-hero-illustration{
        min-height:280px;
        margin-top:15px;
    }

    .info-hero-circle{
        width:220px;
        height:220px;
        font-size:80px;
    }

    .info-floating-calendar{
        right:2%;
        top:20px;
    }

    .info-floating-check{
        left:2%;
        bottom:25px;
    }

    .info-event-card{
        grid-template-columns:1fr;
    }

    .info-event-image{
        height:220px;
    }

    .info-event-action{
        grid-column:auto;
        width:100%;
    }

    .info-event-action .btn-outline-custom{
        width:100%;
        justify-content:center;
        margin:0;
    }

    .info-filter-card{
        padding:22px;
    }

    .info-cta-section .cta-box{
        padding:35px 25px;
        text-align:center;
    }
}

@media(max-width:576px){
    .info-brand small{
        font-size:7px;
    }

    .info-brand strong{
        font-size:16px;
    }

    .info-brand em{
        font-size:7px;
    }

    .info-brand-mark{
        width:42px;
        height:42px;
    }

    .info-hero-content h1{
        font-size:34px;
    }

    .info-hero-content .hero-button{
        display:block;
    }

    .info-hero-content .btn-primary-custom,
    .info-hero-content .btn-outline-custom{
        margin:10px 0;
    }

    .info-hero-illustration{
        display:none;
    }

    .info-result-heading h3{
        font-size:25px;
    }

    .info-event-content h3{
        font-size:20px;
    }

    .info-event-meta{
        display:block;
    }

    .info-event-meta span{
        display:block;
        margin-bottom:7px;
    }

    .info-cta-section .cta-box h2{
        font-size:28px;
    }
}

/* ==========================================================
   FIX HERO INFORMATION
   Header tetap terlihat di atas, hero berada di bawah header.
   Tidak mengubah styling existing index.php.
   ========================================================== */

.information-page{
    /* Header pada website menggunakan position:fixed. */
    padding-top: 88px;
}

.information-page .info-hero-section{
    /* Hero tidak lagi tertutup oleh header fixed. */
    padding-top: 0;
    padding-bottom: 0;
    background: transparent;
}

.information-page .info-hero-section::before{
    display:none;
}

.information-page .info-hero-banner{
    width:100%;
    max-width:1280px;
    margin:0 auto;
    overflow:hidden;
}

.information-page .info-hero-banner img{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:1280 / 500;
    object-fit:contain;
}

/* Desktop: hero mengikuti lebar container website, tetapi tetap
   mempertahankan rasio desain 1280 x 500. */
@media (min-width: 992px){
    .information-page .info-hero-banner{
        width:100%;
    }
}

/* Tablet dan HP: tetap di bawah header dan tidak terpotong. */
@media (max-width: 991px){
    .information-page{
        padding-top:78px;
    }
}

@media (max-width: 576px){
    .information-page{
        padding-top:72px;
    }

    .information-page .info-hero-banner img{
        aspect-ratio:1280 / 500;
    }
}

/* =====================================================
   POPUP SUKSES PENGADUAN
   ===================================================== */

.popup-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;

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

    background: rgba(0, 0, 0, 0.55);
    padding: 20px;
}

.popup-box {
    width: 100%;
    max-width: 480px;

    background: #ffffff;
    border-radius: 20px;

    padding: 35px 30px 30px;

    text-align: center;

    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.20);

    animation: popupShow 0.3s ease;
}


/* Animasi popup */

@keyframes popupShow {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.96);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}


/* Icon centang */

.popup-box .icon {
    width: 72px;
    height: 72px;

    margin: 0 auto 18px;
}


/* Judul */

.popup-box h4 {
    margin: 0 0 10px;

    font-size: 24px;
    font-weight: 700;

    color: #222;
}


/* Deskripsi */

.popup-desc {
    margin: 0 auto 20px;

    max-width: 390px;

    font-size: 15px;
    line-height: 1.6;

    color: #666;
}


/* Kotak kode unik */

.kode-laporan {
    margin: 20px 0;

    padding: 18px 15px;

    background: #f3faf6;

    border: 1px dashed #28a745;

    border-radius: 12px;
}


/* Label kode */

.kode-laporan span {
    display: block;

    margin-bottom: 7px;

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

    color: #666;
}


/* Kode unik */

.kode-laporan strong {
    display: block;

    font-size: 20px;
    font-weight: 700;

    color: #198754;

    letter-spacing: 1px;

    word-break: break-all;
}


/* Pesan penting */

.popup-note {
    margin: 18px auto 25px;

    max-width: 390px;

    font-size: 14px;
    line-height: 1.6;

    color: #555;
}

.popup-note strong {
    color: #198754;
}


/* Tombol Tutup Popup */
.btn-tutup-popup {
    border: none;
    cursor: pointer;
}

.btn-tutup-popup:hover {
    color: #fff;
}

/* =====================================================
   RESPONSIVE POPUP
   ===================================================== */

@media (max-width: 576px) {

    .popup-overlay {
        padding: 15px;
    }

    .popup-box {
        padding: 28px 20px 25px;

        border-radius: 16px;
    }

    .popup-box h4 {
        font-size: 21px;
    }

    .popup-desc {
        font-size: 14px;
    }

    .kode-laporan {
        padding: 15px 10px;
    }

    .kode-laporan strong {
        font-size: 17px;
    }

    .popup-note {
        font-size: 13px;
    }

    .btn-tutup-popup {
        width: 100%;
    }
}

/* =========================================================
   MOBILE HAMBURGER MENU
   ========================================================= */

/* Default desktop */
.mobile-menu-toggle {
    display: none;
}

.mobile-menu {
    display: none;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {

    /* HEADER */
    .main-header {
        position: relative !important;
        z-index: 9999;
    }

    .main-header .container {
        width: 100%;
        max-width: 100%;
        padding-left: 15px;
        padding-right: 15px;
    }

    .navbar-wrapper {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }


    /* LOGO */
    .logo-area {
        flex: 1;
    }

    .logo-main {
        max-width: 180px;
        height: auto;
    }


    /* HILANGKAN MENU DESKTOP */
    .desktop-menu {
        display: none !important;
    }


    /* HILANGKAN LOGIN DESKTOP */
    .header-button {
        display: none !important;
    }


    /* TOMBOL HAMBURGER */
    .mobile-menu-toggle {
        display: flex !important;

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

        width: 44px;
        height: 44px;

        padding: 0;

        margin-left: auto;

        border: none;
        border-radius: 10px;

        background: #198754;
        color: #ffffff;

        font-size: 20px;

        cursor: pointer;

        position: relative;
        z-index: 10001;
    }

    .mobile-menu-toggle i {
        color: #ffffff;
    }


    /* =====================================================
       MENU MOBILE
       ===================================================== */

    .mobile-menu {
        display: none !important;

        position: absolute !important;

        top: 100% !important;
        left: 0 !important;
        right: 0 !important;

        width: 100% !important;

        background: #ffffff;

        padding: 10px 15px 15px;

        margin: 0;

        box-shadow: 0 8px 20px rgba(0,0,0,0.12);

        border-top: 1px solid #eeeeee;

        z-index: 10000;
    }


    /* MENU DIBUKA */
    .mobile-menu.show {
        display: block !important;
    }


    /* ITEM MENU */
    .mobile-menu a {
        display: flex !important;

        align-items: center;

        width: 100%;

        padding: 13px 15px;

        margin: 4px 0;

        border-radius: 10px;

        text-decoration: none !important;

        color: #17324d !important;

        font-size: 15px;

        font-weight: 600;

        background: transparent;

        box-sizing: border-box;

        transition: all 0.2s ease;
    }


    .mobile-menu a i {
        display: inline-block;

        width: 24px;

        margin-right: 10px;

        color: #198754;

        text-align: center;
    }


    .mobile-menu a:hover,
    .mobile-menu a:focus {
        background: #eaf7f1;

        color: #198754 !important;
    }

}

/* ==========================================
   SEARCH - KODE UNIK
   ========================================== */

#searchForm .search-input-wrapper {
    width: 400px !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

#searchForm input#search {
    display: block !important;
    width: 400px !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* ==========================================================
   SEARCH PAGE - ISOLATED LAYOUT
   Hanya berlaku pada search.php.
   Tidak mengubah index.php / information.php.
   ========================================================== */
.search-page-wrapper .search-card{
    width:100%; max-width:680px; margin:0 auto; padding:28px 32px;
    background:#fff; border:1px solid #e7ecef; border-radius:20px;
    box-shadow:0 12px 30px rgba(0,0,0,.06);
}
.search-page-wrapper #searchForm .search-input-wrapper,
.search-page-wrapper #searchForm input#search{width:100%!important;max-width:none!important}
.search-page-wrapper #searchForm input#search{min-height:52px;border-radius:12px;padding:12px 16px;font-size:14px}
.search-page-wrapper .btn-form-func{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 24px;border:0;border-radius:12px;background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px rgba(29,124,82,.18);transition:.25s ease}
.search-page-wrapper .btn-form-func:hover{background:#156b44;color:#fff;transform:translateY(-2px)}
.search-page-wrapper + * .search-alert,
.search-page-wrapper .search-alert{width:100%;max-width:980px;margin:0 auto 20px;padding:15px 18px;display:flex;align-items:center;gap:12px;background:#fff5f5;border:1px solid #f1cccc;border-radius:14px;color:#b42318;font-size:14px}
.search-page{padding:20px 0 80px;background:#f8fafb}
.search-page .laporan-result{width:100%;max-width:980px;margin:0 auto;padding:28px;background:#fff;border:1px solid #e7ecef;border-radius:20px;box-shadow:0 12px 35px rgba(0,0,0,.06)}
.search-page .result-header{display:flex;align-items:center;gap:14px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #edf1ef}
.search-page .result-icon{width:46px;height:46px;flex:0 0 46px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:#eaf7f0;color:var(--primary);font-size:18px}
.search-page .result-header h3{margin:0 0 3px;font-size:20px;font-weight:700}
.search-page .result-header p{margin:0;color:var(--gray);font-size:13px}
.search-page .result-code{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;margin-bottom:20px;background:#f3faf6;border:1px dashed #b9d7c5;border-radius:12px}
.search-page .result-code span{color:var(--gray);font-size:12px;font-weight:600}
.search-page .result-code strong{color:var(--primary);font-size:15px;font-weight:700;letter-spacing:.4px;word-break:break-word;text-align:right}
.search-page .result-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.search-page .result-item{min-width:0;padding:15px 16px;background:#fafcfb;border:1px solid #edf1ef;border-radius:12px}
.search-page .result-item .label,.search-page .result-status>.label{display:block;margin-bottom:6px;color:#7a858d;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.35px}
.search-page .result-item strong{display:block;color:var(--dark);font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.search-page .result-item.result-message{grid-column:1/-1}
.search-page .result-message p{margin:0;color:#59656d;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.search-page .result-status{margin-top:4px}
.search-page .status-box{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;background:#f4f9ff;border:1px solid #dcebf8;border-radius:12px;color:#4d6172;font-size:13px;line-height:1.7}
.search-page .status-box i{margin-top:3px;flex:0 0 auto;color:#3b82c4}
.search-page .result-note{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding-top:15px;border-top:1px solid #edf1ef;color:#89939a;font-size:11px;line-height:1.6}
.search-page .result-note i{margin-top:2px;color:var(--primary);flex:0 0 auto}
.search-page-wrapper .section-title{margin-bottom:28px}
.search-page-wrapper .section-title h2{margin-bottom:12px}
.search-page-wrapper .section-title p{max-width:620px;font-size:14px}
@media(max-width:991px){.search-page .result-info{grid-template-columns:repeat(2,minmax(0,1fr))}.search-page .result-item.result-message{grid-column:1/-1}}
@media(max-width:576px){.search-page-wrapper{padding-top:105px}.search-page-wrapper .search-card{max-width:100%;padding:22px 18px;border-radius:16px}.search-page .laporan-result{padding:20px 16px;border-radius:16px}.search-page .result-header{align-items:flex-start}.search-page .result-header h3{font-size:18px}.search-page .result-code{display:block}.search-page .result-code strong{display:block;margin-top:5px;text-align:left}.search-page .result-info{grid-template-columns:1fr;gap:10px}.search-page .result-item.result-message{grid-column:auto}.search-page .result-item{padding:13px 14px}.search-page .status-box{padding:13px 14px}.search-page-wrapper .btn-form-func{width:100%}}


/* =========================================================
   INFORMASI KEGIATAN - REDESIGN SIDEBAR
   ========================================================= */
.activity-card{
    padding: 26px;
    overflow: hidden;
}

.activity-card-header{
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding-bottom: 20px;
    margin-bottom: 6px;
    border-bottom: 1px solid #edf1ef;
}

.activity-card-icon{
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eaf7f0;
    color: var(--primary);
    font-size: 21px;
}

.activity-card-header h3{
    margin: 0 0 3px;
    font-size: 22px;
    font-weight: 700;
    color: var(--dark);
}

.activity-card-header p{
    margin: 0;
    color: var(--gray);
    font-size: 12px;
    line-height: 1.55;
}

.activity-list{
    display: flex;
    flex-direction: column;
}

.activity-card .info-item{
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 20px 0;
    margin: 0;
    border-bottom: 1px solid #edf1ef;
    transition: transform .25s ease, background .25s ease;
}

.activity-card .info-item:hover{
    transform: translateX(4px);
}

.event-date-badge{
    width: 58px;
    min-width: 58px;
    min-height: 70px;
    padding: 8px 5px 7px;
    border-radius: 15px;
    background: linear-gradient(145deg, #eaf7f0, #dff2e7);
    border: 1px solid rgba(29, 124, 82, .10);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-align: center;
}

.event-day{
    color: var(--primary);
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -.5px;
}

.event-month{
    margin-top: 4px;
    color: var(--dark);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .7px;
}

.event-date-badge small{
    margin-top: 4px;
    color: var(--gray);
    font-size: 9px;
    font-weight: 600;
}

.event-content{
    min-width: 0;
    flex: 1;
}

.event-label{
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 5px;
    color: var(--primary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.event-label i{
    font-size: 9px;
}

.activity-card .info-item h5{
    margin: 0 0 6px;
    color: var(--dark);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.45;
}

.activity-card .info-item p{
    margin: 0 0 9px;
    color: var(--gray);
    font-size: 13px;
    line-height: 1.65;
}

.event-more{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: gap .25s ease, color .25s ease;
}

.event-more:hover{
    color: var(--primary);
    gap: 11px;
}

.activity-all-link{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    margin-top: 20px;
    padding: 13px 16px;
    border: 1px solid rgba(29, 124, 82, .16);
    border-radius: 13px;
    background: #f8fcf9;
    color: var(--primary);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: all .25s ease;
}

.activity-all-link:hover{
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(29, 124, 82, .16);
}

@media (max-width: 991px){
    .activity-card{
        margin-top: 25px;
    }
}

@media (max-width: 576px){
    .activity-card{
        padding: 22px;
    }

    .activity-card-header h3{
        font-size: 20px;
    }

    .activity-card .info-item{
        gap: 12px;
    }

    .event-date-badge{
        width: 54px;
        min-width: 54px;
    }

    .activity-card .info-item h5{
        font-size: 15px;
    }
}

/* ==========================================================
   DETAIL KEGIATAN - MODAL FIX
   Modal dibuat fixed dan berada di luar kartu kegiatan.
   ========================================================== */

body.detail-kegiatan-open {
    overflow: hidden;
}

.detail-kegiatan-modal {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 100000 !important;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.detail-kegiatan-modal.show {
    display: flex !important;
}

.detail-kegiatan-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 54, 36, .72);
    backdrop-filter: blur(5px);
}

.detail-kegiatan-dialog {
    position: relative;
    z-index: 2;
    width: min(920px, 100%);
    max-height: 92vh;
    overflow-y: auto;
    background: #fff;
    border-radius: 26px;
    box-shadow: 0 30px 90px rgba(0,0,0,.30);
    animation: detailKegiatanModalIn .28s ease-out;
}

.detail-kegiatan-close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.96);
    color: var(--dark);
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0,0,0,.16);
    transition: .25s ease;
}

.detail-kegiatan-close:hover {
    background: var(--primary);
    color: #fff;
    transform: rotate(90deg);
}

.detail-kegiatan-photo {
    position: relative;
    width: 100%;
    max-height: 65vh;
    overflow: hidden;
    background: #eef7f1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.detail-kegiatan-photo img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: 65vh;
    object-fit: contain;
}

.detail-kegiatan-photo:has(img[style*="display: none"]) {
    min-height: 220px;
}

.detail-kegiatan-image-fallback {
    position: absolute;
    inset: 0;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    font-size: 68px;
    background: linear-gradient(135deg,#eaf7f0,#f7faf5);
}

.detail-kegiatan-category {
    position: absolute;
    left: 24px;
    bottom: 20px;
    padding: 8px 17px;
    border-radius: 50px;
    background: var(--primary);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(0,0,0,.16);
}

.detail-kegiatan-body {
    padding: 34px 38px 30px;
}

.detail-kegiatan-body h2 {
    margin: 0 0 26px;
    color: var(--dark);
    font-size: 30px;
    line-height: 1.35;
    font-weight: 700;
}

.detail-kegiatan-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 14px;
    margin-bottom: 28px;
}

.detail-kegiatan-meta-item {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: #f7faf8;
}

.detail-kegiatan-meta-icon {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eaf7f0;
    color: var(--primary);
}

.detail-kegiatan-meta-item small {
    display: block;
    margin-bottom: 3px;
    color: var(--gray);
    font-size: 11px;
    line-height: 1.3;
}

.detail-kegiatan-meta-item strong {
    display: block;
    color: var(--dark);
    font-size: 13px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.detail-kegiatan-description h4 {
    margin: 0 0 13px;
    color: var(--dark);
    font-size: 18px;
    font-weight: 700;
}

.detail-kegiatan-description h4 i {
    margin-right: 8px;
    color: var(--primary);
}

#detailKegiatanDescription {
    color: var(--gray);
    font-size: 15px;
    line-height: 1.9;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.detail-kegiatan-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--border);
}

.detail-kegiatan-footer .btn-primary-custom {
    border: 0;
    cursor: pointer;
    margin: 0;
    padding: 12px 25px;
}

@keyframes detailKegiatanModalIn {
    from {
        opacity: 0;
        transform: translateY(24px) scale(.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 768px) {
    .detail-kegiatan-modal {
        padding: 14px;
    }

    .detail-kegiatan-dialog {
        max-height: 94vh;
        border-radius: 21px;
    }

    .detail-kegiatan-photo {
        height: 230px;
    }

    .detail-kegiatan-body {
        padding: 25px 20px 22px;
    }

    .detail-kegiatan-body h2 {
        font-size: 23px;
    }

    .detail-kegiatan-meta {
        grid-template-columns: 1fr;
    }

    .detail-kegiatan-footer .btn-primary-custom {
        width: auto;
        display: inline-flex;
    }
}

@media (max-width: 480px) {
    .detail-kegiatan-photo {
        height: 190px;
    }

    .detail-kegiatan-close {
        width: 40px;
        height: 40px;
        top: 12px;
        right: 12px;
    }

    .detail-kegiatan-body h2 {
        font-size: 20px;
    }

    .detail-kegiatan-footer .btn-primary-custom {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================
   DETAIL KEGIATAN - SEMBUNYIKAN TOMBOL DI HP
   ========================================================== */
@media (max-width: 400px) {
    .info-event-action .btn-detail-kegiatan {
        display: none !important;
    }
}

/* ==========================================================
   FOOTER MOBILE - RATA KIRI
   Berlaku untuk index.php, search.php, information.php
   ========================================================== */

@media (max-width: 768px) {

    .footer-mobile-left .footer {
        text-align: left !important;
    }

    .footer-mobile-left .footer .text-center {
        text-align: left !important;
    }

    .footer-mobile-left .footer .row > [class*="col-"] {
        text-align: left !important;
    }

    .footer-mobile-left .footer h5,
    .footer-mobile-left .footer p,
    .footer-mobile-left .footer-menu,
    .footer-mobile-left .footer-menu li,
    .footer-mobile-left .footer-menu a {
        text-align: left !important;
    }

    .footer-mobile-left .footer-menu {
        padding-left: 0;
    }

    .footer-mobile-left .footer img {
        margin-left: 0 !important;
        margin-right: auto !important;
    }

}

/* ==========================================================
   FOOTER CONTACT
   ========================================================== */

.footer-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.footer-contact-item i {
    width: 20px;
    flex-shrink: 0;
    margin-top: 4px;
}

.footer-contact-item a,
.footer-contact-item a:visited {
    color: #fff !important;
    text-decoration: none;
    word-break: break-word;
}

.footer-contact-item a:hover,
.footer-contact-item a:focus {
    color: #fff !important;
    text-decoration: underline;
}

/* =========================================================
   CONTACT PERSON + JAM
   ========================================================= */

.info-event-contact-wrapper {
    border-top: 1px solid #edf1ef;
    padding-top: 12px;

    display: flex;
    align-items: flex-start;
    gap: 40px;
}

.info-event-contact-wrapper .info-event-contact {
    border-top: none;
    padding-top: 0;
}

.info-event-contact-wrapper .info-event-contact span {
    display: block;
    color: var(--gray);
    font-size: 11px;
    margin-bottom: 3px;
}

.info-event-contact-wrapper .info-event-contact strong {
    color: var(--dark);
    font-size: 13px;
    display: block;
}

.info-event-contact-wrapper .info-event-contact i {
    color: var(--primary);
    margin-right: 5px;
}

/* Supaya Jam tidak terlalu jauh */
.info-event-time {
    min-width: 110px;
}

.detail-kegiatan-time {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: var(--dark);
}

.detail-kegiatan-time i {
    color: var(--primary);
    margin-right: 4px;
}

/* ==========================================================
   WAKTU + LOKASI KEGIATAN
   ========================================================== */

.event-info-small {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 2px 0 8px;
}

.event-info-small span {
    display: inline-flex;
    align-items: center;
    color: var(--gray);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
}

.event-info-small span + span {
    padding-left: 10px;
    border-left: 1px solid #dfe8e3;
}

.event-info-small i {
    color: var(--primary);
    font-size: 10px;
    margin-right: 4px;
}