/* =============================================== */
/* Styling untuk Header & Navbar (FINAL & RELIABLE) */
/* =============================================== */

.site-header {
    background-color: #000;
}

/* --- Mini Navbar --- */
.mini-navbar { background-color: #8B0000; padding: 10px 0; }
.mini-navbar nav ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: flex-end; align-items: center; }
.mini-navbar nav li { margin-left: 20px; }
.mini-navbar nav a { color: #ffffff; text-decoration: none; font-size: 0.9rem; padding: 5px 10px; }

/* --- Main Navbar --- */
.main-navbar {
    padding: 15px 0;
    border-top: 1px solid #333;
}
.main-navbar .navbar-brand img {
    height: 50px;
    width: auto;
}

/* --- Tombol Hamburger --- */
.navbar-toggler { padding: .9rem .45rem; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 5px; }
.navbar-toggler:focus { box-shadow: none; }
.navbar-toggler .hamburger-icon { display: block; width: 24px; height: 2px; background: #fff; position: relative; transition: all 0.3s ease-in-out; }
.navbar-toggler .hamburger-icon::before, .navbar-toggler .hamburger-icon::after { content: ''; position: absolute; left: 0; width: 24px; height: 2px; background: #fff; transition: all 0.3s ease-in-out; }
.navbar-toggler .hamburger-icon::before { top: -7px; }
.navbar-toggler .hamburger-icon::after { bottom: -7px; }
.navbar-toggler:not(.collapsed) .hamburger-icon { background: transparent; }
.navbar-toggler:not(.collapsed) .hamburger-icon::before { transform: rotate(45deg); top: 0; }
.navbar-toggler:not(.collapsed) .hamburger-icon::after { transform: rotate(-45deg); bottom: 0; }


/* =============================================== */
/* === STYLING MENU UTAMA (DESKTOP & MOBILE) === */
/* =============================================== */

/* Gaya dasar untuk link (berlaku di semua ukuran) */
.navbar-nav-custom a {
    text-decoration: none;
    display: flex; /* Penting untuk tumpukan title & subtitle */
    flex-direction: column;
}
.nav-title {
    color: #ffffff;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 5px;
    transition: color 0.3s ease;
}
.nav-subtitle {
    color: #cccccc;
    font-size: 0.8rem;
    font-weight: 400;
}
.navbar-nav-custom a.active .nav-title,
.navbar-nav-custom a:hover .nav-title {
    color: #ff0000;
}

/* --- ATURAN KHUSUS DESKTOP (Layar Besar) --- */
@media (min-width: 992px) {
    .navbar-nav-custom {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex; /* Menu menjadi horizontal */
        align-items: center;
    }
    .navbar-nav-custom li {
        padding: 0 30px;
        position: relative;
    }
    /* Garis pemisah vertikal */
    .navbar-nav-custom li:not(:first-child)::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 1px;
        height: 50px;
        background-color: #444;
    }
}


/* --- ATURAN KHUSUS MOBILE (Layar Kecil) --- */
@media (max-width: 991.98px) {
    .main-navbar .navbar-brand img {
        height: 40px; /* Perkecil logo */
    }
    
    .navbar-collapse {
        border-top: 1px solid #333;
        margin-top: 20px;
        padding-top: 10px;
    }
    
    .navbar-nav-custom {
        list-style: none;
        padding: 0;
        margin: 0;
        width: 100%;
        text-align: left; /* Teks rata kiri seperti desain */
    }

    .navbar-nav-custom li {
        width: 100%;
        border-bottom: 1px solid #333; /* Garis pemisah horizontal */
    }
    .navbar-nav-custom li:last-child {
        border-bottom: none;
    }

    .navbar-nav-custom a {
        padding: 15px 0; /* Memberi ruang vertikal */
        align-items: flex-start;
    }

    .nav-title {
        font-size: 1.2rem;
    }
}

/* =============================================== */
/* Styling untuk Partnership Section */
/* =============================================== */

#partnership {
    padding: 80px 0;

        /* === TAMBAHKAN PROPERTI INI UNTUK MENGATUR WARNA LATAR === */
    /* Ganti kode warna di bawah ini dengan warna yang Anda inginkan. */
    background-color: #ffffff; /* Contoh: Warna putih solid */
}

.section-title h2 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 60px;
    color: #222;
}

/* Memberi warna merah pada kata 'Collaboration' */
.section-title h2 span {
    color: #dc3545; /* Warna merah standar Bootstrap */
}

.partner-logos-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* Logo berada di tengah */
    align-items: center;
    gap: 45px 30px; /* Jarak vertikal dan horizontal antar logo */
}

.partner-logo {
    flex-basis: 12%; /* Menentukan lebar dasar setiap logo container */
    text-align: center;
}

.partner-logo img {
    max-height: 45px; /* Menyamakan tinggi maksimal logo */
    width: auto;
    max-width: 100%;
    object-fit: contain;/*
    filter: grayscale(100%);  Membuat logo menjadi abu-abu */
    opacity: 1;
    transition: all 0.3s ease-in-out;
}

/* Efek saat kursor mouse diarahkan ke logo */
.partner-logo img:hover {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.1); /* Sedikit memperbesar logo */
}

/* Selector ini SANGAT SPESIFIK:
   hanya menargetkan tag <h4> yang berada di dalam div dengan class .about-right,
   yang juga berada di dalam section dengan id #about.
   Ini memastikan Anda tidak mengubah h4 di tempat lain. */
   #about .about-right h4 {
    color: rgba(255, 255, 255, 0.9); /* Sedikit lebih terang agar mudah dibaca */
    font-size: 1.5rem; /* Ukuran font (sesuaikan jika perlu) */
    font-weight: 300; /* Ketebalan font (normal, tidak bold) */
    
    /* PENGATUR JARAK ANTAR BARIS (Line Height) */
    /* Nilai 1.8 berarti jaraknya adalah 1.8x dari ukuran font.
       - Ganti menjadi 1.5 untuk lebih rapat.
       - Ganti menjadi 2.2 untuk lebih renggang. */
    line-height: 1.8; 

    /* PENGATUR JARAK ANTAR PARAGRAF */
    /* Ini akan memberikan jarak 25px di BAWAH setiap h4.
       Ini menggantikan fungsi dari tag <br>. */
    margin-bottom: 25px; 
}

/* Menghilangkan margin bawah dari h4 yang terakhir agar rapi */
#about .about-right h4:last-child {
    margin-bottom: 0;
}

/* =============================================== */
/* Styling untuk About Section */
/* =============================================== */

#about {
    padding: 100px 0;
    color: #ffffff;
    
    /* === PASTIKAN NAMA FILE DI BAWAH INI SESUAI DENGAN FILE ANDA === */
    background-image: url('../images/about-bg.png');
    /*
    background-color: #111;  Fallback color */
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* (Opsional) Efek parallax */
    position: relative;
}

/* Penambahan overlay gelap agar teks lebih mudah dibaca */
#about::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(10, 10, 10, 0.0);
    z-index: 1;
}

/* Pastikan konten berada di atas overlay */
#about .container {
    position: relative;
    z-index: 2;
}

.about-left h2 {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.3;
}

.about-left .text-highlight {
    color: #ff0000; /* Warna merah untuk highlight */
}

/* Styling untuk garis pemisah putus-putus */
.about-left .divider {
    border-top: 2px dashed #ffffff;
    margin: 40px 0;
    position: relative;
}

/* Membuat titik di ujung kiri dan kanan garis */
.about-left .divider::before,
.about-left .divider::after {
    content: '';
    position: absolute;
    top: -5px;
    width: 8px;
    height: 8px;
    background-color: #ffffff;
    border-radius: 50%;
}

.about-left .divider::before {
    left: 0;
}

.about-left .divider::after {
    right: 0;
}

.about-left .tagline {
    font-size: 1.1rem;
    font-style: italic;
    color: rgba(255, 255, 255, 0.9);
}

.about-right p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 25px;
}

/* =============================================== */
/* Styling untuk Theme Section (New Design) */
/* =============================================== */

#theme {
    background-color: #f8f9fa; /* Latar belakang abu-abu terang */
    padding-top: 80px;
    padding-bottom: 80px;

    /* === PADDING DEFAULT UNTUK MOBILE (SANGAT PENTING) === */
    /* Ini adalah padding yang akan digunakan di layar kecil.
       Ganti 15px dengan nilai yang Anda inginkan untuk tampilan mobile. */
    padding-left: 15px;
    padding-right: 15px;
}

/* === MEDIA QUERY UNTUK LAYAR BESAR (DESKTOP) === */
/* Aturan ini hanya akan aktif jika lebar layar 992px atau lebih. */
@media (min-width: 992px) {
    #theme {
        /* Ini adalah padding yang Anda inginkan untuk tampilan desktop.
           Ganti 10vh dengan nilai yang Anda suka (misal: 8vw, 100px, dll.) */
        padding-left: 10vh;
        padding-right: 10vh;
    }
}

#theme .section-title h5 {
    color: #6c757d; /* Abu-abu */
    font-weight: 600;
    text-transform: none; /* Tidak uppercase */
    font-size: 1rem;
}

#theme .section-title h2 {
    font-weight: 700;
    font-size: 2.2rem;
    margin-top: 10px;
    color: #212529; /* Hitam pekat */
}

.theme-card {
    background-color: #ffffff;
    border: 1px solid #e9ecef; /* Border abu-abu sangat tipis */
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); /* Shadow lebih subtle */
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.theme-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

.theme-card-image {
    position: relative;
    /* Memberi padding 10px di dalam .theme-card-image, di sekeliling frame */
    padding: 15px 15px 10px 15px;
}

/* Menata frame pembungkus gambar */
.theme-card-image .image-frame {
    position: relative;
    overflow: hidden; /* Penting agar border-radius pada gambar terlihat */
    
    /* === MENGATUR CORNER AGAR ROUNDED === */
    /* Ganti nilai 5px jika ingin lebih atau kurang rounded */
    border-radius: 5px;
}

/* Menata gambar di dalam frame */
.theme-card-image img {
    width: 100%;
    height: 150px; 
    object-fit: cover;
    display: block; /* Menghilangkan spasi kecil di bawah gambar */
}

.theme-card-image .image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
    opacity: 0; /* Awalnya transparan */
    transition: opacity 0.3s ease;
}
.theme-card:hover .image-overlay {
    opacity: 1; /* Muncul saat di-hover */
}

.theme-card-image .badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    gap: 8px;
}

.badges span {
    color: #fff;
    padding: 4px 10px;
    border-radius: 50px; /* Badge pill shape */
    font-size: 0.75rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.badges .badge-duration {
    background-color: #ffc107; /* Kuning */
    color: #000;
}

.badges .badge-materi {
    background-color: #dc3545; /* Merah */
}

.theme-card-image .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}
/* Membuat ikon segitiga play dengan CSS */
.theme-card-image .play-button::after {
    content: '';
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 14px solid #212529;
    margin-left: 4px;
}

.theme-card-content {
    padding: 0px 20px 20px 20px !important;
}

.theme-card-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.instructor-info, .rating-info {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: #6c757d;
}

.instructor-info span {
    white-space: nowrap;      /* Mencegah teks pindah baris */
    overflow: hidden;         /* Sembunyikan teks yang meluber */
    text-overflow: ellipsis;  /* Tampilkan titik-titik (...) */
    max-width: 100px;         /* Batasi lebar maksimum, sesuaikan jika perlu */
}

.rating-info i {
    color: #ffc107; /* Warna bintang kuning */
}

.rating-info strong {
    color: #212529;
    font-weight: 600;
}

.theme-title {
    font-size: 1.1rem;
    font-weight:500;
    margin-bottom: 0px;
    color: #212529;
    
    /* === TAMBAHKAN 5 BARIS INI UNTUK LINE-CLAMP === */
    height: 25px; /* Perkiraan tinggi untuk 2 baris (font-size * line-height * 2) */
    line-height: 1.2; /* Atur line-height agar konsisten */
    display: -webkit-box;
    -webkit-line-clamp: 1; /* Batasi hingga 2 baris */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.theme-title a {
    text-decoration: none;
    color: inherit;
    transition: color 0.3s ease;
}

.theme-title a:hover {
    color: #dc3545;
}

.theme-description {
    font-size: 0.85rem;
    color: #6c757d;
    line-height: 1.5;
    height: 40.8px; /* Perkiraan tinggi untuk 2 baris (0.85rem * 16 * 1.5 * 2) */

    /* === TAMBAHKAN 4 BARIS INI UNTUK LINE-CLAMP === */
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Batasi hingga 2 baris */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.theme-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #e9ecef;
    padding-top: 15px;
    margin-top: 15px;
}

.theme-card-footer .price {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
}

.btn-lihat-kelas {
    background-color: #fff;
    color: #E80000 !important;
    border: 2px solid #E80000 !important;
    padding: 6px 16px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.btn-lihat-kelas:hover {
    background-color: #E80000 !important;
    color: #fff !important;
}

/* =============================================== */
/* Styling untuk Team Section (REVISED & ACCURATE) */
/* =============================================== */

#team {
    padding: 100px 0;
    color: #ffffff;
    
    /* === PASTIKAN NAMA FILE DI BAWAH INI SESUAI DENGAN FILE ANDA === */
    background-image: url('../images/team-bg.png');
    /*
    background-color: #111;  Fallback color */
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* (Opsional) Efek parallax */
    position: relative;
}

#team::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.0); /* Overlay lebih gelap agar pola tidak terlalu dominan */
    z-index: 1;
}

#team .container {
    position: relative;
    z-index: 2;
}

.team-intro h5 {
    font-size: 1.1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.5px;
}

.team-intro h2 {
    font-size: 3.2rem;
    font-weight: 700;
    margin: 10px 0 30px 0;
    line-height: 1.2;
}

/* Class text-highlight akan digunakan di beberapa tempat */
.text-highlight {
    color: #ff0000; /* Warna merah Fintalk */
}

.team-intro p {
    font-size: 1rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 15px;
    max-width: 90%; /* Batasi lebar paragraf agar lebih mudah dibaca */
}

.team-member-card {
    display: flex;
    align-items: center;
    gap: 25px; /* Jarak antara foto dan info */
}

.team-member-photo img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(255, 255, 255, 0.2); /* Border abu-abu transparan */
    flex-shrink: 0; /* Mencegah foto menyusut */
}

.team-member-info {
    position: relative;
    padding-left: 25px; /* Memberi ruang untuk garis vertikal */
}

/* Membuat garis vertikal merah sesuai desain */
.team-member-info::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 80%; /* Tinggi garis 80% dari tinggi kontainer info */
    width: 2px;
    background-color: #ff0000;
}

.team-member-info h6 {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 8px;
    line-height: 1.3;
}

.team-member-info .role {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.5;
    margin-bottom: 12px;
}

.team-member-info .education {
    font-size: 0.95rem;
    font-weight: 500;
    margin: 0;
}

/* =============================================== */
/* Styling untuk News & Events Section */
/* =============================================== */

#news-events {
    padding: 80px 0;
    background-color: #fff; /* Latar belakang diubah menjadi putih */
}

.section-title-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}

.section-heading {
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 0; /* Margin dipindahkan ke container */
    color: #212529;
}
.section-heading span {
    color: #ff0000;
}

.btn-view-all {
    color: #ff0000;
    text-decoration: none;
    font-weight: 600;
}

/* === GANTI SELURUH BLOK CSS UNTUK POST DARI SINI ... === */

.post-list-homepage {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.post-item-homepage {
    display: flex;
    gap: 20px;
    align-items: flex-start; /* Alignment diubah ke atas */
}

.post-image-link {
    flex-shrink: 0;
}

.post-image-link img {
    width: 150px;
    height: 100px;
    object-fit: cover;
    border-radius: 10px;
}

.post-content .post-date {
    font-size: 0.8rem;
    color: #6c757d;
    margin-bottom: 5px;
}

.post-content .post-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 8px;
    /* Batasi judul hingga 2 baris */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.post-content .post-title a {
    text-decoration: none;
    color: #212529;
    transition: color 0.3s ease;
}
.post-content .post-title a:hover {
    color: #ff0000;
}

.post-content .post-overview {
    font-size: 0.9rem;
    color: #6c757d;
    line-height: 1.6;
    margin: 0;
    /* Batasi overview hingga 2 baris */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Styling untuk Kolom Upcoming Events */
.event-list {
    display: flex;
    flex-direction: column;
    gap: 20px; /* Jarak antar event */
}

.event-card {
    display: flex;
    align-items: center;
    gap: 20px;
    background-color: #fff;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

.event-date-box {
    text-align: center;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    
    /* === TAMBAHKAN BARIS INI UNTUK MENYAMAKAN LEBAR === */
    /* Anda bisa menyesuaikan nilai 80px ini jika dirasa terlalu lebar atau sempit */
    width: 100px; 
}

.event-date-box .date-top {
    background-color: #ff0000;
    color: #fff;
    padding: 15px 15px;
}

.event-date-box .day {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1;
}

.event-date-box .month {
    display: block;
    font-size: 0.9rem;
    font-weight: 500;
}

.event-date-box .date-bottom {
    background-color: #000;
    color: #fff;
    padding: 5px 15px;
}

.event-date-box .year {
    font-size: 1rem;
    font-weight: 600;
}

.event-content h6 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 10px;
}

.event-content h6 a {
    text-decoration: none;
    color: #222;
    transition: color 0.3s ease;
}
.event-content h6 a:hover {
    color: #ff0000;
}

.event-content p {
    font-size: 0.95rem;
    color: #666;
    margin-bottom: 10px;
    line-height: 1.6; /* Tambahkan line-height agar konsisten */

    /* === TAMBAHKAN 4 BARIS INI UNTUK LINE-CLAMP === */
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Batasi hingga 4 baris */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.event-content .event-time {
    font-weight: 600;
    color: #333;
}

/* =============================================== */
/* Styling untuk CTA Join Section (REVISED DESIGN) */
/* =============================================== */

#cta-join {
    background-color: #ff0000; /* Latar belakang merah menyala */
    padding: 80px 0; /* Memberi ruang atas dan bawah */
    overflow: hidden;
}

/* Frame putih untuk grid gambar */
.student-grid-frame {
    background-color: #000000;
    padding: 0px; /* Jarak antara frame dan grid gambar di dalamnya */
    height: 100%;
}

.student-grid {
    display: grid;
    grid-template-columns: repeat(10, 1fr); 
}

.student-grid img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

.cta-content {
    background-color: #000000;
    color: #ffffff;
    height: 100%; /* Penting agar tingginya sama dengan kolom gambar */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 40px;
    text-align: center;
}

.cta-content h2 {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 30px;
}

/* Style baru untuk tombol JOIN NOW */
.btn-join-now {
    background-color: #ff0000;
    color: #ffffff;
    padding: 15px 40px;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

.btn-join-now:hover {
    background-color: #cc0000; /* Merah lebih gelap saat hover */
    color: #ffffff;
}

/* Penyesuaian untuk layar lebih kecil (tablet/mobile) */
@media (max-width: 991.98px) {
    #cta-join .col-lg-7, #cta-join .col-lg-5 {
        /* Menghapus padding default kolom agar konten menempel */
        padding-left: 0;
        padding-right: 0;
    }

    .student-grid {
        grid-template-columns: repeat(8, 1fr); /* Tampilkan 8 foto per baris */
    }

    .cta-content {
        padding: 60px 30px;
    }
}

@media (max-width: 576px) {
    .student-grid {
        grid-template-columns: repeat(5, 1fr); /* Tampilkan 5 foto per baris */
    }

    .container-ctajoin {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* =============================================== */
/* Styling untuk Testimonial Section (FINAL & RELIABLE) */
/* =============================================== */

#testimonials {
    padding: 80px 0;
    background-color: #f8f9fa;
    overflow: hidden; /* Mencegah tombol keluar dari section di layar kecil */
}

#testimonials .section-title h2 { font-weight: 700; font-size: 2.2rem; }
#testimonials .section-title p { color: #6c757d; margin-top: 10px; font-size: 1rem; }

/* Wrapper utama untuk slider dan tombol */
.testimonial-slider-container {
    position: relative;
    max-width: 1400px;
    margin: 40px auto 0 auto;
    /* Padding diatur via media query */
    padding: 0 15px; /* Default untuk mobile */
}

.testimonial-swiper {
    padding-bottom: 50px;
    /* PENTING: Jangan set 'overflow' di sini, biarkan default */
}

.testimonial-swiper .swiper-wrapper {
    align-items: stretch; /* Membuat semua kartu sama tinggi */
}

.testimonial-swiper .swiper-slide {
    height: auto;
    display: flex;
    background: transparent;
}

.testimonial-card {
    background-color: #fff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.06);
    text-align: left;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.testimonial-text { font-style: italic; font-size: 0.95rem; line-height: 1.7; color: #555; margin-bottom: 25px; flex-grow: 1; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.testimonial-author { display: flex; align-items: center; }
.testimonial-author img { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; margin-right: 15px; }
.author-info strong { font-size: 1rem; font-weight: 600; color: #222; }
.author-info span { font-size: 0.85rem; color: #777; }

/* Tombol Navigasi */
.testimonial-slider-container .swiper-button-prev,
.testimonial-slider-container .swiper-button-next {
    width: 45px; height: 45px; background-color: #ff0000; color: #fff; border-radius: 50%; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    position: absolute; top: 50%; transform: translateY(-50%); margin-top: -25px; z-index: 10;
}
.testimonial-slider-container .swiper-button-prev::after,
.testimonial-slider-container .swiper-button-next::after { font-size: 1rem; }
.testimonial-slider-container .swiper-button-prev { left: 0; }
.testimonial-slider-container .swiper-button-next { right: 0; }

/* Pagination */
.testimonial-slider-container .swiper-pagination { bottom: 0 !important; }
.testimonial-slider-container .swiper-pagination-bullet { width: 10px; height: 10px; background-color: #ccc; opacity: 1; }
.testimonial-slider-container .swiper-pagination-bullet-active { background-color: #ff0000; width: 25px; border-radius: 5px; }

/* Responsive */
@media (min-width: 768px) {
    /* Atur padding yang lebih besar untuk tablet dan desktop agar ada ruang untuk panah */
    .testimonial-slider-container {
        padding: 0 60px;
    }
}
@media (max-width: 767.98px) {
    .testimonial-slider-container .swiper-button-prev,
    .testimonial-slider-container .swiper-button-next {
        display: none;
    }
}

/* =============================================== */
/* Styling untuk Gallery Section (Scrolling Ticker) */
/* =============================================== */

#gallery {
    /* Menghapus padding agar gambar menempel di tepi layar */
    padding: 0; 
    /* Menyembunyikan bagian dari ticker yang berada di luar layar */
    overflow: hidden; 
    width: 100%;
}

.gallery-ticker {
    display: flex; /* Membuat semua item berjajar horizontal */
    /* Lebar total adalah 200% karena kita menduplikasi gambar */
    width: 200%; 
    
    /* Menerapkan animasi: nama, durasi, tipe, perulangan */
    /* Anda bisa mengubah '40s' menjadi lebih cepat (misal: 20s) atau lebih lambat (misal: 60s) */
    animation: ticker-scroll 40s linear infinite;
}

@media (max-width: 991.98px) {
    #gallery {
        /* Menghapus padding agar gambar menempel di tepi layar */
        padding-top: 50px !important; 
        /* Menyembunyikan bagian dari ticker yang berada di luar layar */
        overflow: hidden; 
        width: 100%;
    }
}

/* Memberhentikan animasi saat kursor mouse di atasnya */
.gallery-ticker:hover {
    animation-play-state: paused;
}

.gallery-item {
    /* Setiap item memiliki lebar 25% dari viewport, jadi sekitar 4 gambar terlihat di layar */
    /* Ubah nilai ini untuk mengatur jumlah gambar yang terlihat (misal: 20vw untuk 5 gambar) */
    width: 25vw; 
    flex-shrink: 0; /* Mencegah item menyusut */

    /* === MENGATUR RASIO ASPEK GAMBAR === */
    /* Rasio 4:3 adalah landscape (lebar:tinggi) */
    /* Jika Anda benar-benar ingin 3:4 (potrait), ganti menjadi '3 / 4' */
    aspect-ratio: 4 / 3; 
}

.gallery-item img {
    width: 100%;
    height: 100%;
    /* === MEMBUAT GAMBAR MENJADI "FILL" === */
    object-fit: cover; 
}

/* === DEFINISI ANIMASI === */
@keyframes ticker-scroll {
    0% {
        transform: translateX(0%);
    }
    100% {
        /* Bergerak ke kiri sejauh 50% dari total lebarnya (yaitu, selebar satu set gambar) */
        transform: translateX(-50%);
    }
}

/* =============================================== */
/* Styling untuk Hero Section (REVISED & ACCURATE) */
/* =============================================== */

#hero {
    width: 100%;
    position: relative;
    /* Menghapus padding default dari section agar gambar dan bar bawah menempel */
    padding: 0;
}

.hero-content {
    /* GANTI 'hero-bg.jpg' dengan nama file gambar latar Anda */
    background-image: url('../images/background_hero.png');
    background-size: cover;
    background-position: center;
    position: relative;
    padding: 120px 0;
    color: #ffffff; /* Warna teks default putih */
    display: flex;
    align-items: center;
    min-height: 81.5vh; /* Tinggi minimal agar section terlihat penuh */
}

/* Membuat overlay merah transparan sesuai desain */
.hero-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Menggunakan warna merah marun gelap dengan transparansi 
    background-color: rgba(100, 0, 0, 0.75); */
    z-index: 1;
}

/* Memastikan konten teks berada di atas overlay */
.hero-content .container {
    position: relative;
    z-index: 2;
}

.hero-text h5 {
    font-size: 1rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.hero-text h1 {
    font-size: 3.5rem; /* Ukuran teks utama yang besar dan tegas */
    font-weight: 700;
    margin: 20px 0;
    line-height: 1.2;
}

.hero-text p {
    font-size: 1.1rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 40px; /* Jarak lebih besar ke tombol */
}

.hero-buttons .btn {
    padding: 12px 30px;
    border-radius: 50px; /* Membuat tombol lonjong (pill shape) */
    font-weight: 600;
    margin-right: 15px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent; /* Border awal transparan */
}

/* Tombol dengan outline putih */
.btn-hero-outline {
    background-color: transparent;
    border-color: #ffffff !important;
    color: #ffffff !important;
}

.btn-hero-outline:hover {
    background-color: #ffffff;
    border-color: #ffffff !important;
    color: #810505 !important;
}

/* Tombol dengan garis tepi putih */
.btn-hero-solid-1 {
    background-color: #ffffff;
    border-color: #ffffff !important;
    color: #810505 !important;
}

.btn-hero-solid-1:hover {
    background-color: transparent;
    border-color: #ffffff !important;
    color: #ffffff !important;
}

/* =============================================== */
/* =============================================== */
/* ==   ATURAN CSS RESPONSIVE (MEDIA QUERIES)   == */
/* =============================================== */
/* =============================================== */


/* Aturan untuk Tablet & di bawahnya (lebar layar maks 991px) */
@media (max-width: 991.98px) {

    /* --- Penyesuaian Hero Section --- */
    .hero-text h1 {
        font-size: 2.8rem; /* Perkecil judul utama */
    }
    .hero-content {
        text-align: center; /* Pusatkan teks hero di layar tablet */
    }
    .hero-buttons {
        justify-content: center; /* Pusatkan tombol */
    }
    /* Menyesuaikan baris info di bawah hero */
    .hero-bottom-bar {
        padding: 10px 15px; /* Kurangi padding vertikal & horizontal */
    }
    .hero-bottom-bar p {
        font-size: 0.25rem !important; /* Perkecil ukuran font secara signifikan */
        line-height: 0.5 !important;   /* Beri sedikit ruang antar baris jika teksnya jadi 2 baris */
    }
    /* === AKHIR DARI BLOK BARU === */

    /* --- Penyesuaian About Section --- */
    #about {
        padding: 100px 0;
        color: #ffffff;
        
        /* === PASTIKAN NAMA FILE DI BAWAH INI SESUAI DENGAN FILE ANDA === */
        background-image: url('../images/about-bg.png');
        /*
        background-color: #111;  Fallback color */
        background-size: cover;
        background-position: center;
        background-attachment: fixed; /* (Opsional) Efek parallax */
        position: relative;
    }

    #about .about-left, #about .about-right {
        text-align: center; /* Pusatkan teks di kedua kolom */
    }
    #about .about-left {
        margin-bottom: 40px; /* Beri jarak antara kolom kiri dan kanan saat menumpuk */
    }

    /* --- Penyesuaian Team Section --- */
    .team-member-card {
        flex-direction: column; /* Tumpuk foto di atas info */
        text-align: center;
        gap: 15px;
    }
    .team-member-info::before {
        display: none; /* Sembunyikan garis vertikal */
    }
    .team-member-info {
        padding-left: 0;
    }
    .team-intro p {
        max-width: 100%; /* Lebar penuh di tablet */
    }
}


/* Aturan untuk Handphone & di bawahnya (lebar layar maks 767px) */
@media (max-width: 767.98px) {

    /* Menyesuaikan ukuran logo di layar kecil */
    .main-navbar .navbar-brand img {
        height: 20px; /* Perkecil tinggi logo dari 50px menjadi 40px */
    }
    /* === AKHIR DARI BLOK BARU === */  
    
    /* --- Penyesuaian Section Umum --- */
    section {
        padding: 40px 0; /* Kurangi padding section */
    }
    
    .section-title h2, .team-intro h2, #about .about-left h2 {
        font-size: 2rem; /* Perkecil semua judul section */
    }
    
    /* --- Penyesuaian Hero Section --- */
    .hero-content {
        padding: 80px 0;
        min-height: auto;
    }
    .hero-text h1 {
        font-size: 2.2rem;
    }
    .hero-buttons {
        display: flex;
        flex-direction: column;
        gap: 15px;
        align-items: center;
    }
    .hero-buttons .btn {
        width: 80%;
        margin-right: 0;
    }

    /* --- Penyesuaian Partnership Section --- */
    .partner-logos-grid {
        gap: 30px 40px; /* Kurangi jarak antar logo */
    }
    .partner-logo {
        flex-basis: 25%; /* Tampilkan 3-4 logo per baris */
    }

    /* --- Penyesuaian Theme Section --- */
    .theme-card-content {
        padding: 15px; /* Kurangi padding di dalam kartu */
    }
    .theme-title {
        font-size: 1rem; /* Perkecil judul kartu */
        height: auto; /* Hapus tinggi tetap agar bisa 1-2 baris */
    }
    .theme-description {
        height: auto; /* Hapus tinggi tetap agar deskripsi bisa lebih panjang jika perlu */
    }

    /* --- Penyesuaian CTA Join Section --- */
    .student-grid {
        grid-template-columns: repeat(5, 1fr); /* Tampilkan 5 foto per baris */
    }
    .cta-content h2 {
        font-size: 2rem;
    }
    #cta-join {
        padding: 0; /* Hapus padding agar gambar dan konten menempel */
    }
    .cta-content {
        padding: 40px 20px;
    }

    /* --- Penyesuaian News & Events --- */
    #news-events .col-lg-6 {
        margin-bottom: 40px;
    }
    #news-events .col-lg-6:last-child {
        margin-bottom: 0;
    }
    .post-item {
        flex-direction: column; /* Tumpuk gambar di atas teks */
        gap: 15px;
    }
    .post-item-image img {
        width: 100%; /* Lebarkan gambar */
        height: 180px;
    }
}

/* =============================================== */
/* Styling untuk Footer Section */
/* =============================================== */

.site-footer {
    background-color: #000;
    color: rgba(255, 255, 255, 0.7);
    padding: 80px 0;
}

.footer-widgets {
    padding-bottom: 40px;
    border-bottom: 1px solid #333;
}

.footer-widget .footer-logo {
    max-width: 200px; /* Sesuaikan ukuran logo di footer */
    margin-bottom: 30px;
}

.widget-title {
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 25px;
    position: relative;
    padding-bottom: 10px;
}

/* Membuat garis merah di bawah judul widget */
.widget-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background-color: #ff0000;
}

.footer-links, .contact-info {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.footer-links li, .contact-info li {
    margin-bottom: 12px;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
}

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

.contact-info li {
    display: flex;
    align-items: flex-start;
}

.contact-info i {
    font-size: 1rem;
    color: #fff;
    margin-right: 15px;
    margin-top: 5px;
}

/* Styling untuk Ikon Sosial Media */
.social-icons {
    display: flex;
    gap: 15px;
    margin-top: 30px;
}

.social-icons a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.7);
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.social-icons a:hover {
    background-color: #fff;
    color: #000;
    border-color: #fff;
}

/* Penyesuaian responsif untuk footer */
@media (max-width: 991.98px) {
    .footer-widget {
        margin-bottom: 40px;
    }
}

/* =============================================== */
/* Styling untuk Halaman Topics */
/* =============================================== */
/* Penyesuaian responsif untuk footer */
@media (max-width: 991.98px) {
    .topics-page {
        padding: 0px 20px !important;
        margin: 50px 0px !important;

    }
}

.topics-page {
    background-color: #f8f9fa;
    padding: 60px 0;
}

.topics-page .page-title h5 {
    color: #ff0000;
    font-weight: 700;
    text-transform: uppercase;
}

.topics-page .page-title h1 {
    font-weight: 700;
    font-size: 2.8rem;
    color: #212529;
    margin-top: 10px;
    margin-bottom: 40px;
}

.topic-card {
    background-color: #fff;
    border-radius: 15px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.topic-card-image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.topic-card-content {
    padding: 20px;
    flex-grow: 1;
}

.topic-meta {
    display: flex;
    gap: 15px;
    font-size: 0.85rem;
    color: #6c757d;
    margin-bottom: 15px;
}
.topic-meta span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.topic-title {
    font-size: 1.2rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 10px;
    
    /* === TAMBAHKAN 3 BARIS INI === */
    white-space: nowrap;      /* Mencegah teks pindah ke baris baru */
    overflow: hidden;         /* Sembunyikan teks yang meluber dari kotaknya */
    text-overflow: ellipsis;  /* Tampilkan titik-titik (...) di akhir */
}

.topic-overview {
    font-size: 0.9rem;
    color: #6c757d;
    line-height: 1.6;
    margin-bottom: 15px;
    
    /* === TAMBAHKAN 4 BARIS INI UNTUK LINE-CLAMP === */
    display: -webkit-box;
    -webkit-line-clamp: 3; /* Batasi hingga 3 baris */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.topic-rating {
    font-size: 0.9rem;
}
.topic-rating i {
    color: #ffc107;
}
.topic-rating span {
    color: #6c757d;
    margin-left: 5px;
}

.topic-card-footer {
    padding: 0 20px 20px 20px;
}

.btn-baca-materi {
    display: block;
    width: 100%;
    background-color: #ff0000;
    color: #fff;
    border: 2px solid #ff0000;
    padding: 12px;
    border-radius: 10px;
    text-align: center;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-baca-materi:hover {
    background-color: #fff;
    color: #ff0000;
}

/* =============================================== */
/* Styling untuk Halaman "Coming Soon" */
/* =============================================== */

.coming-soon-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 60px 15px;
    min-height: 60vh;
    justify-content: center;
}

/* === PERBAIKAN UTAMA ADA DI SELEKTOR DI BAWAH INI === */
.coming-soon-container .coming-soon-image {
    /* Atur lebar maksimal yang Anda inginkan di sini */
    max-width: 400px; 
    
    width: 100%; /* Biarkan agar tetap responsif dan tidak melebihi max-width */
    margin-bottom: 40px;
}

.coming-soon-container .coming-soon-title {
    font-size: 2.2rem;
    font-weight: 700;
    color: #ff0000;
    margin-bottom: 20px;
}

.coming-soon-container .coming-soon-text {
    font-size: 1.1rem;
    color: #6c757d;
    max-width: 700px;
    line-height: 1.8;
}

/* Penyesuaian responsif untuk Coming Soon */
/* Pastikan tidak ada aturan .coming-soon-image lain di sini yang menimpanya */
@media (max-width: 767.98px) {
    .coming-soon-container .coming-soon-title {
        font-size: 1.8rem;
    }
    .coming-soon-container .coming-soon-text {
        font-size: 1rem;
    }
    
    /* Anda bisa mengatur max-width yang berbeda untuk mobile jika perlu */
    /* Contoh:
    .coming-soon-container .coming-soon-image {
        max-width: 150px;
    }
    */
}

/* =============================================== */
/* Styling untuk Simon Setijono Group Section */
/* =============================================== */

#ss-group {
    padding: 80px 0;
    background-color: #fff;
}

.ss-logo-container {
    text-align: center;
}

.ss-logo {
    /* Atur lebar maksimal logo. Karena rasio 1:1, tingginya akan sama. */
    /* Sesuaikan nilai 250px ini jika perlu. */
    max-width: 350px; 
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1; /* Memaksa gambar menjadi kotak */
    object-fit: cover; /* Pastikan gambar mengisi kotak tanpa distorsi */
}

/* KUNCI PERBAIKAN: Menggunakan Flexbox untuk alignment vertikal */
.ss-description-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center; /* Memusatkan konten secara vertikal */
    height: 100%; /* Penting agar wrapper ini mengisi seluruh tinggi kolom */
}

.ss-description-wrapper h3 {
    font-size: 2.5rem;
    font-weight: 700;
    color: #212529;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 3px solid #ff0000; /* Garis merah di bawah judul */
    display: inline-block; /* Agar border hanya selebar teks */
}

.ss-description-wrapper p {
    font-size: 1.6rem;
    line-height: 1.8;
    color: #495057;
}

/* Penyesuaian responsif untuk layar kecil */
@media (max-width: 767.98px) {
    .ss-logo-container {
        margin-bottom: 40px; /* Beri jarak bawah saat menumpuk */
    }
    .ss-description-wrapper {
        text-align: center; /* Pusatkan teks di layar kecil */
    }
    .ss-description-wrapper h3 {
        display: inline-block; /* Agar border tetap berfungsi di tengah */
    }
}

/* =============================================== */
/* Styling untuk FAQ Section (REVISED DESIGN) */
/* =============================================== */

#faq {
    padding: 80px 0;
    background-color: #f7f8fc; /* Latar belakang abu-abu kebiruan */
}

.faq-title-container .faq-subtitle {
    font-weight: 600;
    color: #ff0000;
    text-transform: uppercase;
}
.faq-title-container .faq-title {
    font-weight: 700;
    font-size: 2.5rem;
    margin-top: 5px;
    color: #212529;
}

.faq-accordion {
    margin-top: 40px;
    max-width: 900px; /* Batasi lebar accordion agar lebih fokus */
    margin-left: auto;
    margin-right: auto;
}

/* Kustomisasi Accordion Bootstrap */
.accordion-item {
    background-color: #fff;
    border: none;
    border-radius: 10px !important;
    margin-bottom: 15px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.3s ease;
}
.accordion-item:hover {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.accordion-header {
    border: none;
}

.accordion-button {
    font-weight: 600;
    color: #212529;
    border-radius: 10px !important;
    background-color: #fff;
    box-shadow: none !important;
    padding: 20px 25px; /* Padding lebih besar */
}
/* Menghilangkan warna latar biru saat aktif */
.accordion-button:not(.collapsed) {
    background-color: #fff;
    color: #212529;
}


/* Mengubah ikon plus/minus default menjadi lingkaran merah */
.accordion-button::after {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3e%3cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3e%3c/svg%3e");
    background-color: #ff0000;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 0.8rem;
}
.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3e%3cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8z'/%3e%3c/svg%3e");
    transform: none; /* Hilangkan rotasi default */
}

.accordion-body {
    padding: 0 25px 20px 25px; /* Atur padding agar rapi */
    color: #495057;
    line-height: 1.7;
}