
/* ===================================
   GOOGLE FONT
=================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
    scroll-behavior:smooth;
}

/* ===================================
   BODY
=================================== */

body{

    background:
    linear-gradient(
        rgba(255, 255, 255, 0.553),
        rgba(255, 255, 255, 0.563)
    ),
    url("../images/gambar.png");

    background-size:cover;
    background-attachment:fixed;

}
/* ===================================
   PROGRESS BAR
=================================== */

#progressBar{
    position:fixed;
    top:0;
    left:0;
    width:0%;
    height:5px;
    background:linear-gradient(
        90deg,
        #ffcc00,
        #ff6600
    );
    z-index:99999;
}

/* ===================================
   PRELOADER
=================================== */

#preloader{
    position:fixed;
    width:100%;
    height:100vh;
    background:rgb(63, 182, 255);
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:999999;
}

.loader-content{
    text-align:center;
}
.loader-logo{
    width:120px;
    animation:spin 4s linear infinite;
}

@keyframes spin{

    0%{
        transform:rotate(0deg);
    }

    100%{
        transform:rotate(360deg);
    }

}

/* ===================================
   TOP BAR
=================================== */

.top-bar{
    background:#111827;
    color:white;
    padding:10px 0;
    font-size:14px;
}

/* ===================================
   NAVBAR
=================================== */

.custom-navbar{
    background:rgba(0,0,0,0.65);
    backdrop-filter:blur(10px);
    transition:0.4s;
}

.navbar-brand{
    font-weight:800;
    letter-spacing:1px;
}

.nav-link{
    color:white !important;
    margin-left:10px;
    transition:0.3s;
}

.nav-link:hover{
    color:#ffc107 !important;
}

/* ===================================
   HERO SECTION
=================================== */

.hero-section{

    background:
    url("../images/gambar.png");

    background-size:cover;
    background-position:center;
    background-attachment:fixed;

    min-height:100vh;

    display:flex;
    align-items:center;

    position:relative;

}

.hero-overlay{

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:rgba(0,0,0,0.65);

}

.hero-content{

    position:relative;
    z-index:10;
    color:rgb(255, 255, 255);

}

.hero-content h1{

    font-size:5rem;
    font-weight:800;

}

.hero-content p{

    max-width:700px;

}

.hero-buttons{

    margin-top:30px;

}

.hero-buttons .btn{

    margin-right:10px;
    margin-top:10px;

}
.running-event{

    margin-top:25px;

    background:
    rgba(255,255,255,0.2);

    backdrop-filter:blur(10px);

    padding:5px;

    border-radius:5px;

    color:white;

}

/* ===================================
   GLASS EFFECT
=================================== */

.glass{

    background:rgba(255,255,255,0.15);

    backdrop-filter:blur(15px);

    border:1px solid rgba(255,255,255,0.2);

}

/* ===================================
   CARD
=================================== */

.card{

    background:
    rgb(255, 255, 255);

    backdrop-filter:blur(15px);

    border:
    1px solid rgba(255,255,255,0.3);

    color:rgb(0, 0, 0);

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:
    0 15px 35px rgba(0,0,0,0.2);

}

.card img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.card:hover img{

    transform:scale(1.05);

}

/* ===================================
   QUICK ACCESS
=================================== */

.quick-card{

    cursor:pointer;

    transition:0.4s;

}

.quick-card:hover{

    background:#ffc107;
    color:black;

}

/* ===================================
   COUNTER
=================================== */

.counter{

    font-size:3rem;
    font-weight:800;
    color:#0d6efd;

}

/* ===================================
   BUTTON
=================================== */

.btn{

    border-radius:50px;

    padding:10px 25px;

    transition:0.4s;

}

.btn:hover{

    transform:translateY(-3px);

}

/* ==========================
   ORGANIZATION SECTION
========================== */

.organization-section{

    padding:100px 0;

}

.organization-card{

    background:rgba(255,255,255,0.92);

    backdrop-filter:blur(12px);

    border-radius:25px;

    padding:30px;

    text-align:center;

    height:100%;

    transition:0.4s;

    border:1px solid rgba(255,255,255,0.3);

    box-shadow:
    0 10px 30px rgba(0,0,0,0.08);

}

.organization-card:hover{

    transform:translateY(-12px);

    box-shadow:
    0 20px 40px rgba(0,0,0,0.15);

}

.organization-logo{

    width:90px;

    height:90px;

    margin:auto;

    margin-bottom:20px;

}

.organization-logo img{

    width:100%;

    height:100%;

    object-fit:contain;

}

.organization-card h3{

    font-size:24px;

    font-weight:700;

    margin-bottom:15px;

    color:#0f172a;

}

.organization-card p{

    font-size:15px;

    line-height:1.7;

    color:#555;

    min-height:90px;

}

.organization-info{

    display:flex;

    justify-content:center;

    gap:15px;

    margin:20px 0;

}

.organization-info span{

    background:#eef6ff;

    color:#2563eb;

    padding:8px 15px;

    border-radius:30px;

    font-size:14px;

    font-weight:600;

}

.org-btn{

    border:none;

    background:linear-gradient(
        135deg,
        #6637ff,
        #4f38ff
    );

    color:white;

    padding:12px 30px;

    border-radius:30px;

    font-weight:600;

    transition:0.3s;

}

.org-btn:hover{

    transform:scale(1.05);

}


/* =========================
   BENEFIT SECTION
========================= */

.benefit-section{

    padding:60px 0;

    position:relative;

}

.section-header{

    text-align:center;

    margin-bottom:60px;

}

.section-header h2{

    font-size:50px;

    font-weight:800;

    color:#0f172a;

    margin-bottom:15px;

}

.section-header p{

    color:#555;

    max-width:700px;

    margin:auto;

}

.benefit-wrapper{

    max-width:600px;

    margin:auto;

}

.benefit-item{

    background:rgba(255,255,255,0.85);

    backdrop-filter:blur(15px);

    border-radius:25px;

    padding:10px;

    border-left:8px solid #4facfe;

    transition:0.4s;

    box-shadow:
    0 10px 25px rgba(0,0,0,0.08);

}

.benefit-item:hover{

    transform:translateX(15px);

    background:
    linear-gradient(
        135deg,
        #4facfe,
        #00c6fb
    );

    color:white;

}

.benefit-item h3{

    font-size:20px;

    font-weight:500;

    margin-bottom:15px;

}

.benefit-item p{

    margin:0;

    line-height:1.8;

    font-size:11px;

}

/* RESPONSIVE */

@media(max-width:768px){

    .section-header h2{

        font-size:35px;

    }

    .benefit-item{

        padding:20px;

    }

}
/* ===================================
   SPEAKER
=================================== */

#speaker img{

    height:300px;

    object-fit:cover;

}

/* ===================================
   GALLERY
=================================== */

#gallery img{

    border-radius:15px;

    transition:0.5s;

}

#gallery img:hover{

    transform:scale(1.08);

}


/* ===================================
   FOOTER
=================================== */

footer{

    background:#111827;

}

footer h4{

    font-weight:700;

}

/* ===================================
   BACK TO TOP
=================================== */

#topBtn{

    position:fixed;

    right:25px;

    bottom:25px;

    width:55px;
    height:55px;

    border-radius:50%;

    display:none;

    z-index:999;

}

/* ===================================
   FAQ
=================================== */

.accordion-button{

    font-weight:600;

}

/* ===================================
   FORM
=================================== */

form{

    background:rgb(237, 243, 255);

    padding:40px;

    border-radius:25px;

    box-shadow:
    0 10px 30px rgba(0,0,0,0.1);

}

.form-control,
.form-select{

    border-radius:15px;

    padding:12px;

}

/* ===================================
   MAP
=================================== */

iframe{

    border-radius:20px;

}

/* ===================================
   WHATSAPP
=================================== */

.whatsapp-float{

    position:fixed;

    left:25px;

    bottom:25px;

    width:60px;
    height:60px;

    background:#25D366;

    color:white;

    display:flex;

    justify-content:center;
    align-items:center;

    border-radius:50%;

    font-size:30px;

    text-decoration:none;

    z-index:999;

    box-shadow:
    0 10px 20px rgba(0,0,0,0.2);

}

.whatsapp-float:hover{

    color:white;

    transform:scale(1.1);

}

/* ===================================
   SECTION TITLE
=================================== */

section h2{

    font-weight:800;

    position:relative;

}

section h2::after{

    content:"";

    width:80px;
    height:4px;

    background:#ffc107;

    position:absolute;

    left:50%;

    transform:translateX(-50%);

    bottom:-10px;

}


/* ===================================
   SCROLLBAR
=================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-thumb{

    background:#ffc107;
    border-radius:10px;

}

/* ===================================
   RESPONSIVE
=================================== */

@media(max-width:992px){

    .hero-content h1{

        font-size:3rem;

    }

}

@media(max-width:768px){

    .hero-content h1{

        font-size:2.3rem;

    }

    .hero-section{

        text-align:center;

    }

    .hero-buttons .btn{

        width:100%;

        margin-bottom:10px;

    }

}
.container{
    max-width:100%;
}
/* ==========================
   TESTIMONIAL SECTION
========================== */

.testimonial-section{

    padding:120px 0;

    position:relative;

}

.testimonial-card{

    max-width:700px;

    margin:auto;

    text-align:center;

    background:
    rgb(255, 255, 255);

    backdrop-filter:blur(20px);

    border-radius:30px;

    padding:50px;

    box-shadow:
    0 20px 50px rgba(0,0,0,0.12);

}

.rating{

    font-size:24px;

    margin-bottom:20px;

}

.testimonial-text{

    font-size:20px;

    line-height:1.8;

    color:#333;

    margin-bottom:30px;

    font-style:italic;

}

.testimonial-card img{

    width:100px;

    height:100px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid #4facfe;

    margin-bottom:15px;

}

.testimonial-card h4{

    font-size:24px;

    font-weight:700;

    margin-bottom:5px;

}

.testimonial-card span{

    color:#666666;

    font-size:15px;

}

.carousel-indicators{

    bottom:-60px;

}

.carousel-indicators button{

    width:12px !important;

    height:12px !important;

    border-radius:50%;

    background:#4facfe !important;

}

/* ==========================
   PREMIUM TIMELINE
========================== */

.timeline-premium{

    padding:120px 0;

    position:relative;

}

.timeline-container{

    position:relative;

    max-width:1200px;

    margin:auto;

}

.timeline-container::before{

    content:"";

    position:absolute;

    width:6px;

    background:
    linear-gradient(
        to bottom,
        #6a99ff70,
        #666effa1
    );

    top:0;

    bottom:0;

    left:50%;

    margin-left:-3px;

    border-radius:20px;

}

.timeline-row{

    position:relative;

    width:50%;

    padding:20px 40px;

}

.timeline-row.left{

    left:0;

}

.timeline-row.right{

    left:50%;

}

.timeline-row::before{

    content:"";

    position:absolute;

    width:24px;

    height:24px;

    background:white;

    border:5px solid #1100ff;

    border-radius:50%;

    top:40px;

    z-index:10;

    box-shadow:
    0 0 20px rgba(154, 208, 255, 0.5);

}

.timeline-row.left::before{

    right:-12px;

}

.timeline-row.right::before{

    left:-12px;

}

.timeline-content{

    background:white;

    padding:30px;

    border-radius:25px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.08);

    transition:.4s;

}

.timeline-content:hover{

    transform:
    translateY(-10px);

    box-shadow:
    0 20px 40px rgba(0,0,0,.15);

}

.timeline-badge{

    display:inline-block;

    background:
    linear-gradient(
        135deg,
        #005eff,
        #0037ff
    );

    color:white;

    padding:8px 18px;

    border-radius:30px;

    margin-bottom:15px;

    font-size:14px;

    font-weight:600;

}

.timeline-content h3{

    font-size:24px;

    margin-bottom:12px;

    color:#0f172a;

    font-weight:700;

}

.timeline-content p{

    color:#64748b;

    line-height:1.8;

    margin:0;

}
@media(max-width:768px){

.timeline-container::before{

    left:25px;

}

.timeline-row{

    width:100%;

    padding-left:70px;

    padding-right:20px;

}

.timeline-row.right{

    left:0;

}

.timeline-row.left::before,
.timeline-row.right::before{

    left:13px;

}

}


/* ==========================================
   STYLE 1: MODERN GLASSMORPHISM
   ========================================== */

/* Kotak utama dengan efek kaca transparan */
.modal-content {
    background: rgba(255, 255, 255, 0.75); /* Transparansi putih */
    backdrop-filter: blur(15px); /* Efek blur di belakang kaca */
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.4); /* Border tipis kilauan kaca */
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

/* Header simpel dan menyatu dengan badan modal */
.modal-header {
    background: transparent;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    padding: 25px 30px 15px 30px;
}

.modal-header .modal-title {
    color: #111111;
    font-weight: 700;
    font-size: 1.4rem;
}

/* Tombol close minimalis */
.modal-header .btn-close {
    background-color: rgba(0, 0, 0, 0.05);
    padding: 10px;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.modal-header .btn-close:hover {
    background-color: rgba(255, 0, 0, 0.1);
    transform: scale(1.1);
}

/* Bagian Isi */
.modal-body {
    padding: 20px 30px 30px 30px;
    color: #333333;
}

.modal-body strong {
    color: #1a3b6d; /* Highlight warna icon & label */
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.modal-body hr {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* Tombol Tutup Kaca */
.modal-footer-custom {
    padding: 0 30px 30px 30px;
    display: flex;
    justify-content: flex-end;
}

.modal-content .btn-secondary {
    background: rgba(0, 0, 0, 0.05);
    color: #222222;
    border: 1px solid rgba(0, 0, 0, 0.05);
    padding: 10px 28px;
    border-radius: 12px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.modal-content .btn-secondary:hover {
    background: #000000;
    color: #ffffff;
}








/* Gaya untuk Card Upcoming */
.card-upcoming {
    transition: all 0.3s ease;
    border-radius: 12px;
}

.card-upcoming:hover {
    transform: translateY(-10px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.1) !important;
}

/* Modal Styling */
#modalUpcoming .modal-content {
    border-radius: 20px;
    overflow: hidden;
}

#modalUpcoming .modal-header {
    background: linear-gradient(45deg, #80b7ff, #3c3baa);
}

#modalUpcoming .icon-box {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#modalUpcoming .text-uppercase {
    letter-spacing: 1px;
    font-size: 0.7rem !important;
}

/* Animasi Smooth Zoom */
.modal.fade .modal-dialog {
    transform: scale(0.9);
    transition: transform 0.3s ease;
}
.modal.show .modal-dialog {
    transform: scale(1);
}







/* ==========================================
   CSS CUSTOM: CARDS & PROFILE MODAL SPEAKER
   ========================================== */

/* Pengaturan Rasio Foto pada Card */
.card-speaker {
    border-radius: 15px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-speaker:hover {
    transform: translateY(-8px);
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.15) !important;
}

.card-speaker .img-container {
    width: 100%;
    height: 280px; /* Batas tinggi box foto seragam */
    overflow: hidden;
    background-color: #eaeaea;
}

.card-speaker .img-speaker {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Foto otomatis memotong proporsional tanpa gepeng */
    object-position: center top;
}

/* Struktur Utama Modal Profil */
.profile-modal-content {
    border-radius: 20px !important;
    overflow: hidden;
    position: relative;
}

/* Tombol silang penutup mengambang di atas elemen modal */
.profile-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 10;
    filter: invert(1) brightness(2); /* Menjadikan silang berwarna putih bersih */
    opacity: 0.8;
}

/* Sisi Kiri Modal (Sidebar) */
.profile-sidebar {
    background: linear-gradient(135deg, #0d6efd, #0042a5);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 320px;
}

/* Pembungkus Bingkai Foto Melingkar */
.profile-avatar-wrapper {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    padding: 5px;
    background: rgba(255, 255, 255, 0.25); /* Border luar transparan berkilau */
}

.profile-avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
}

/* Ikon Media Sosial Sidebar */
.profile-socials a {
    opacity: 0.85;
    transition: opacity 0.2s, transform 0.2s;
    display: inline-block;
}

.profile-socials a:hover {
    opacity: 1;
    transform: scale(1.2);
}

/* Jarak antar daftar riwayat */
.profile-list li {
    display: flex;
    align-items: center;
    font-size: 0.95rem;
    color: #495057;
}

/* Pembeda Warna Gradasi untuk Masing-masing Tema Speaker */
.profile-sidebar.style-sarah {
    background: linear-gradient(135deg, #6f42c1, #401687);
}
.profile-sidebar.style-chandra {
    background: linear-gradient(135deg, #5254d6, #1f57ff);
}

.style-sarah-list i {
    color: #6f42c1;
}
.style-chandra-list i {
    color: #dc3545;
}

/* Animasi Zoom Halus */
.modal.fade .profile-modal-content {
    transform: scale(0.9);
    transition: transform 0.3s ease;
}
.modal.show .profile-modal-content {
    transform: scale(1);
}




/* ORGANISASI */
/* ==========================================
   CSS CUSTOM: CARDS & MODALS ORGANISASI
   ========================================== */

/* Efek Angkat Kartu Saat Di-Hover */
.organization-card {
    border-radius: 16px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.organization-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12) !important;
}

/* Modifikasi Desain Dasar Pop-up Modal */
.modal-org .modal-content {
    border-radius: 18px !important;
    overflow: hidden;
}

/* Memperjelas Teks Konten */
.modal-org h6 {
    letter-spacing: 0.5px;
}

.modal-org .badge {
    font-weight: 500;
    padding: 8px 12px;
}

/* Animasi Zoom-In Halus Saat Pop-up Terbuka */
.modal.fade .modal-content {
    transform: scale(0.92);
    transition: transform 0.3s ease;
}

.modal.show .modal-content {
    transform: scale(1);
}




/* ==========================================
   CSS CUSTOM: PORTAL BERITA TERBARU & MODAL
   ========================================== */

/* Pengaturan Image & Hover Card Berita */
.card-news {
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-news:hover {
    transform: translateY(-6px);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12) !important;
}

.news-img-container {
    width: 100%;
    height: 210px;
    overflow: hidden;
    background-color: #f0f0f0;
}

.news-img-container .img-news {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Kustomisasi Tampilan Badge Berita Soft (Pastel) */
.bg-purple-light {
    background-color: #f3e8ff;
}
.text-purple {
    color: #6f42c1;
}
.bg-danger-light {
    background-color: #ffe2e5;
}
.bg-info-light {
    background-color: #e1f5fe;
}

/* Desain Layout Internal Modal Berita */
.news-modal-content {
    border-radius: 18px !important;
}

.news-modal-img-wrapper {
    max-height: 380px;
    overflow: hidden;
    border-radius: 8px;
}

.news-modal-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Tipografi dan Jarak Paragraf Artikel */
.news-article-content p {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 1.25rem;
    text-align: justify;
}

/* Desain Kotak Kutipan (Blockquote) Berita */
.news-quote {
    font-style: italic;
    font-size: 1.05rem;
    color: #495057;
}

/* Pengaturan Scrollbar Halus untuk Modal */
.modal-dialog-scrollable .modal-body {
    scrollbar-width: thin;
}

/* Animasi Masuk Modal Berita */
.modal.fade .news-modal-content {
    transform: translateY(20px);
    transition: transform 0.3s ease-out;
}
.modal.show .news-modal-content {
    transform: translateY(0);
}