/* --- Global Styles --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* Sangat penting dan sudah benar di sini */
}

body {
    background-image: url('img/bg1.jpg'); /* Ganti dengan path gambar Anda */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-color: #f8f8f8; /* Warna fallback */
    font-family: 'Open Sans', sans-serif; /* Pastikan ini diimport dari Google Fonts */
    line-height: 1.6;
    color: #333;
}

img {
    max-width: 100%;
    height: auto;
}

/* --- Header & Navbar --- */
.sticky-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: rgba(0,0,0,0.5);
    color: white;
    padding: 1rem 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    z-index: 1000;
    min-height: 60px;
}

.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 25px;
    height: 100%;
}

.navbar .logo {
    display: flex;
    align-items: center;
    color: white;
    text-decoration: none;
    font-family: 'Open Sans', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0px;
    line-height: 1;
}

.navbar .logo-img {
    height: 40px;
    width: auto;
    margin-right: 10px;
    border: none;
}

.nav-links {
    list-style: none;
    display: flex;
}

.nav-links li a {
    color: white;
    text-decoration: none;
    padding: 0.8rem 1.2rem;
    display: block;
    transition: background-color 0.3s ease, color 0.3s ease;
    border-radius: 5px;
}

.nav-links li a:hover,
.nav-links li a.active {
    background-color: #0056b3;
    color: white;
}

.hamburger-menu {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    position: relative;
    z-index: 1100;
}

.hamburger-menu span {
    display: block;
    width: 28px;
    height: 3px;
    background-color: white;
    margin: 6px 0;
    transition: all 0.3s ease;
    border-radius: 2px;
}

/* --- Page Sections --- */
.page-section {
    padding-top: 120px; /* Jarak dari header sticky */
    padding-bottom: 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    max-width: 900px; /* Batasi lebar konten utama section, bukan untuk semua section */
    margin: 0 auto; /* Pusatkan section */
    padding-left: 20px;
    padding-right: 20px;
}

.page-section h1, .page-section h2 {
    margin-bottom: 10px;
    color: #000080;
}

.page-section p {
    margin-bottom: 15px;
    font-size: 1.1rem;
    line-height: 1.8;
}

/* --- Home Section Styling --- */
#home-content h1 {
    text-align: center;
    margin-bottom: 20px;
    color: #000080;
    font-size: 2rem;
    font-weight: 500;
}

#home-content p:not(.call-to-action-text) {
    text-align: center;
    margin-bottom: 30px;
    font-size: 1.15rem;
    color: #555;
    line-height: 1.6;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.home-carousel-wrapper {
    max-width: 950px;
    margin: 40px auto 60px auto;
    padding: 25px;
    background-color: #f8faff;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.1);
    border: 1px solid #e0e0e0;
    box-sizing: border-box;
}

.home-carousel-wrapper .carousel-container {
    width: 100%;
    margin: 0;
    border-radius: 8px;
}

.home-carousel-wrapper .carousel-slide img {
    height: 450px;
}

.call-to-action-text {
    text-align: center;
    margin-top: 50px;
    font-size: 1.2rem;
    color: #444;
    font-weight: 500;
}

.call-to-action-text a {
    color: #007bff;
    text-decoration: none;
    font-weight: bold;
}

.call-to-action-text a:hover {
    text-decoration: underline;
}

/* --- Carousel Styles (General) --- */
/* Ini adalah gaya umum untuk semua carousel-container, termasuk yang di Gallery */
.carousel-container {
    position: relative;
    width: 100%;
    max-width: 800px; /* Max-width ini akan di-override oleh .home-carousel-wrapper .carousel-container jika di home */
    margin: 40px auto;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.carousel-slide {
    display: flex;
    width: 100%;
    transition: transform 0.8s ease-in-out;
}

.carousel-slide img {
    width: 100%;
    flex-shrink: 0;
    height: auto;
    max-height: 400px; /* Gunakan max-height agar gambar tidak terlalu tinggi di beberapa kasus */
    object-fit: cover;
    border: none;
}

.carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    padding: 12px 18px;
    cursor: pointer;
    font-size: 1.8rem;
    border-radius: 50%;
    transition: background-color 0.3s ease;
    z-index: 10;
}

.carousel-btn.prev {
    left: 10px;
}

.carousel-btn.next {
    right: 10px;
}

.carousel-btn:hover {
    background-color: rgba(0, 0, 0, 0.7);
}

.carousel-dots {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
}

.dot {
    width: 12px;
    height: 12px;
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.dot.active {
    background-color: #007bff;
    transform: scale(1.2);
}

/* --- About Us Banner Image --- */
.about-us-banner-image {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 40px auto;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    border: none;
}

/* Hapus atau atur ulang tag <h2> kosong Anda di HTML */
/* Jika Anda memiliki h2 kosong langsung di #about-content, mereka akan membuat ruang.
   Sebaiknya hapus dari HTML, atau jika harus ada, berikan display: none; */
#about-content h2:not(.company-description-container h2) {
    display: none; /* Menyembunyikan h2 kosong yang mungkin ada di luar container deskripsi */
}

/* --- Content Containers Wrapper (About Us Page) --- */

#about-content {
    /* Aturan dari .page-section sudah cukup sebagai dasar */
    /* Pastikan padding-left dan padding-right sudah diatur di .page-section */
    /* Max-width dan margin auto di .page-section akan membantu membatasi lebar keseluruhan section */
    max-width: 1200px; /* Tambahkan atau sesuaikan ini di .page-section jika belum ada */
    margin: 0 auto; /* Ini juga agar section terpusat */
    
    /* Penting: Hapus flex-direction: row; dan gap: 30px; dari sini
       karena kita akan mengaturnya di .about-us-main-content */
    /* Jadi, pastikan #about-content tidak lagi memiliki display: flex;
       atau setel kembali ke flex-direction: column; jika .page-section defaultnya row */
    
    /* Default .page-section: display: flex; flex-direction: column; align-items: center; text-align: center; */
    /* Kita bisa biarkan default .page-section jika .about-us-main-content yang akan jadi flex container */
}

/* Ini adalah container baru yang membungkus gambar dan deskripsi */
.about-us-main-content {
    display: flex; /* Mengaktifkan Flexbox untuk anak-anaknya (gambar dan div deskripsi) */
    flex-wrap: wrap; /* Izinkan item untuk membungkus ke baris berikutnya di layar kecil */
    justify-content: center; /* Pusatkan item secara horizontal */
    align-items: flex-start; /* Sejajarkan item di bagian atas secara vertikal */
    gap: 30px; /* Memberikan jarak antar gambar dan deskripsi */
    width: 100%; /* Pastikan mengambil lebar penuh dari parent-nya */
    margin-top: 20px; /* Jarak dari judul section jika ada */
}

.about-us-main-content img {
    max-width: 100%; /* Pastikan gambar responsif */
    height: auto;
    flex: 1; /* Biarkan gambar mengambil ruang fleksibel */
    min-width: 280px; /* Ukuran minimum agar tidak terlalu kecil di mobile */
    border-radius: 8px; /* Contoh: Tambahkan sedikit sudut membulat pada gambar */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    /* margin-top: 20px; dihapus dari HTML, jadi tidak perlu di sini */
}

/* Sesuaikan gaya untuk company-description-container di dalam .about-us-main-content */
.about-us-main-content .company-description-container {
    flex: 2; /* Biarkan deskripsi mengambil ruang dua kali lipat dari gambar */
    min-width: 300px; /* Ukuran minimum agar deskripsi terbaca di mobile */
    background-color: rgba(255, 255, 255, 0.8); /* Warna latar belakang dari CSS Anda */
    padding: 30px; /* Padding di dalam container deskripsi */
    border-radius: 10px; /* Sudut membulat */
    box-shadow: 0 4px 15px rgba(0,0,0,0.08); /* Bayangan */
    border: 1px solid #e0e0e0; /* Border */
    box-sizing: border-box; /* Penting untuk padding */
    /* margin-top: 0; karena gap sudah menangani jarak antar item */
}

/* Atur ulang heading dalam company-description-container jika perlu */
.about-us-main-content .company-description-container h2 {
    text-align: left; /* Sesuaikan rata kiri untuk judul di dalam container */
    margin-bottom: 20px;
    color: #000080; /* Warna judul sesuai tema Anda */
    font-size: 2rem; /* Ukuran font sesuai tema Anda */
}

/* Atur ulang paragraf dalam company-description-container jika perlu */
.about-us-main-content .company-description-container p {
    text-align: justify; /* Teks rata kiri dan kanan */
    margin-bottom: 1.5em;
    line-height: 1.8;
    font-size: 1.1rem;
    font-weight: normal;
    color: #555;
}
.content-containers-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 50px;
    width: 100%;
    justify-content: center;
    max-width: 1000px; /* Tambahkan max-width dan margin auto agar wrapper ini terpusat */
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px; /* Tambahkan padding agar tidak terlalu rapat ke tepi */
}

.info-container {
    background-color: rgba(255, 255, 255, 0.8);
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    flex: 1;
    min-width: 300px;
    max-width: calc(50% - 15px); /* PENTING: Perhitungan ulang untuk 2 kolom + gap */
    text-align: left;
    border: 1px solid #e0e0e0;
    overflow: hidden;
    /* Tambahkan padding internal agar konten tidak menempel */
    padding: 25px 20px;
    box-sizing: border-box; /* Pastikan padding tidak menambah lebar */
}

.info-container h3 {
    color: #000080;
    font-size: 1.6rem;
    text-align: center;
    padding: 20px 15px; /* Sesuaikan padding judul */
    margin-top: -25px; /* Kompensasi padding atas container */
    margin-left: -20px; /* Kompensasi padding kiri container */
    margin-right: -20px; /* Kompensasi padding kanan container */
    margin-bottom: 20px; /* Jarak dari konten di bawahnya */
    background-color: #f2f7ff;
    border-bottom: 1px solid #d0e0ff;
}

.info-container p {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 15px;
}

.info-container ul {
    list-style: none; /* Menggunakan background-image untuk list-style */
    padding: 0; /* Pastikan padding asli 0 */
    margin: 0;
}

.info-container ul li {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%23007bff"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>') no-repeat left center;
    background-size: 16px;
    padding-left: 25px;
    margin-bottom: 10px;
    font-size: 1rem;
    line-height: 1.6;
}

/* Hapus .content-body jika tidak digunakan lagi, karena padding sudah di info-container */
/* .info-container .content-body {
    padding: 25px 20px;
} */


/* --- Service Boxes (Our Services Page) --- */
.services-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 50px;
    width: 100%;
    justify-content: center;
    max-width: 1000px; /* Tambahkan max-width dan margin auto agar wrapper ini terpusat */
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}

.service-box {
    background-color: rgba(255, 255, 255, 0.70);
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    flex: 1;
    min-width: 300px;
    max-width: calc(50% - 15px); /* PENTING: Perhitungan ulang untuk 2 kolom + gap */
    text-align: left;
    border: 1px solid #e0e0e0;
    overflow: hidden;
    /* Tambahkan padding internal agar konten tidak menempel */
    padding: 25px 20px;
    box-sizing: border-box;
}

.service-box h3 {
    color: #000080;
    font-size: 1.6rem;
    text-align: center;
    padding: 20px 15px; /* Sesuaikan padding judul */
    margin-top: -25px; /* Kompensasi padding atas container */
    margin-left: -20px; /* Kompensasi padding kiri container */
    margin-right: -20px; /* Kompensasi padding kanan container */
    margin-bottom: 20px; /* Jarak dari konten di bawahnya */
    background-color: #f2f7ff;
    border-bottom: 1px solid #d0e0ff;
}

.service-box ul {
    list-style: none; /* Menggunakan background-image untuk list-style */
    padding: 0;
    margin: 0;
}

.service-box ul li {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%23007bff"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>') no-repeat left center;
    background-size: 16px;
    padding-left: 25px;
    margin-bottom: 10px;
    font-size: 1rem;
    line-height: 1.6;
}

.service-box ul li:last-child {
    margin-bottom: 0;
}

/* Hapus .content-body jika tidak digunakan lagi */
/* .service-box .content-body {
    padding: 25px 20px;
} */

/* --- Accordion Styles (untuk Gallery) --- */
.accordion-item {
    width: 100%;
    max-width: 900px;
    margin: 20px auto;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.accordion-header {
    background-color: #f7f7f7;
    color: #333;
    cursor: pointer;
    padding: 18px 25px;
    width: 100%;
    text-align: left;
    border: none;
    outline: none;
    transition: background-color 0.3s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.accordion-header:hover {
    background-color: #e9e9e9;
}

.accordion-header h3 {
    margin: 0;
    color: #000080;
    font-size: 1rem;
}

.accordion-icon {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.accordion-header.active .accordion-icon {
    transform: rotate(180deg);
}

.accordion-content {
    background-color: #fff;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out;
    padding: 0 25px;
}

.accordion-content.open {
    max-height: 1000px; /* Nilai besar agar cukup untuk konten */
    padding-bottom: 25px;
}

/* Penyesuaian untuk Gallery Carousels */
.gallery-carousel {
    margin-bottom: 60px;
    max-width: 900px;
    margin-left: auto; /* Memusatkan carousel galeri */
    margin-right: auto;
}

.gallery-carousel h3 {
    text-align: center;
    margin-bottom: 25px;
    color: white; /* Perhatikan warna ini, jika latar belakang terang mungkin tidak terlihat */
    font-size: 3rem;
    margin-top: 50px;
    display: block;
    font-family: 'Open Sans', sans-serif;
}

.gallery-carousel .carousel-slide img {
    border: none;
}

/* --- Contact Form Styles --- */
.contact-form { /* Ini adalah styling untuk form itu sendiri, bukan wrapper */
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 500px; /* Hapus atau sesuaikan jika ini bertentangan dengan flex:1 di .contact-wrapper */
    margin-top: 30px;
    padding: 25px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.contact-form label {
    text-align: left;
    margin-bottom: 8px;
    font-weight: bold;
    color: #555;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
    width: 100%;
    padding: 12px;
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 1rem;
}

.contact-form textarea {
    resize: vertical;
    min-height: 120px;
}

.contact-form button {
    background-color: #007bff;
    color: white;
    padding: 14px 25px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1.1rem;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.contact-form button:hover {
    background-color: #0056b3;
}

.contact-info { /* Ini adalah styling untuk info kontak itu sendiri */
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid #eee;
}

.contact-info h3 {
    color: #000080;
    margin-bottom: 15px;
}

.contact-info p {
    margin-bottom: 10px;
    font-size: 1rem;
}

/* --- Logo Showcase Section --- */
.logo-showcase-section {
    padding-top: 120px;
    padding-bottom: 60px;
    background-color: #ffffff;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.logo-showcase-section h2 {
    margin-bottom: 30px;
    color: #000080;
    font-size: 2rem;
}

.logo-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 30px;
    max-width: 960px;
    width: 100%;
    margin: 0 auto;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.logo-item {
    flex-shrink: 0;
    flex-grow: 0;
    width: 150px;
    height: 150px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #f0f0f0;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.logo-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.12);
}

.logo-item img {
    max-width: 80%;
    max-height: 80%;
    width: auto;
    height: auto;
    object-fit: contain;
    border: none;
}

/* --- Company Description Section --- */
.company-description-section {
    background-color: #fcfcfc;
}

.company-description-section h2 {
    text-align: center;
    margin-bottom: 30px;
    color: #000080;
    font-size: 2rem;
}

.company-description-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
    background-color: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.company-description-container p {
    text-align: justify;
    margin-bottom: 1.2em;
    line-height: 1.8;
    font-size: 1.1rem;
    font-weight: bold;
    color: #555;
}

.company-description-container p:last-child {
    margin-bottom: 0;
}

.company-description-container .description-image {
    width: 300px; /* Atur lebar gambar yang Anda inginkan */
    height: auto; /* Biarkan tinggi menyesuaikan otomatis */
    float: left; /* Membuat gambar "mengapung" ke kiri teks */
    margin-right: 20px; /* Jarak antara gambar dan teks */
    margin-bottom: 10px; /* Jarak dari bawah jika teks membungkus */
    border-radius: 8px; /* Sesuaikan atau hapus jika tidak ingin sudut membulat */
    box-shadow: 0 2px 8px rgba(0,0,0,0.1); /* Tambahkan sedikit bayangan */
    object-fit: cover; /* Pastikan gambar mengisi ruang tanpa distorsi */
}

/* Pastikan konten di dalam company-description-container membersihkan float
   agar elemen lain (seperti paragraf berikutnya) tidak terpengaruh oleh float */
.company-description-container::after {
    content: "";
    display: table;
    clear: both;
}

/* --- Vision & Mission Wrapper --- */
/* Mengaktifkan kembali dan memperbaiki Vision & Mission */
.vision-mission-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch; /* PENTING: Untuk tinggi yang sama */
    gap: 30px;
    margin-top: 50px;
    margin-bottom: 50px;
    width: 100%;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px; /* Tambahkan padding */
    box-sizing: border-box; /* Pastikan box-sizing konsisten */
}

.vision-mission-wrapper .info-container {
    flex: 1; /* PENTING: Biarkan Flexbox yang mengatur lebar */
    min-width: 300px;
    /* Hapus max-width: 48%; */ /* <--- PENTING: Hapus ini */
    background-color: rgba(255, 255, 255, 0.8);
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    border: 1px solid #e0e0e0;
    overflow: hidden;
    padding: 25px 20px; /* Padding di dalam kontainer */
    box-sizing: border-box;
}

.vision-mission-wrapper .info-container .content-body p {
    text-align: center;
    font-size: 1.6rem;
    font-weight: bold;
    margin-bottom: 15px;
    color: #007bff;
}

.vision-mission-wrapper .info-container .content-body ul.core-values-list {
    text-align: left; /* Isi list rata tengah */
    list-style-type: none; /* Jika Anda ingin menghilangkan bullet default */
    padding-left: 0;
    margin-left: 0;
}

.vision-mission-wrapper .info-container .content-body ul.core-values-list li {
    padding-left: 0;
    text-indent: 0;
    margin-bottom: 10px;
    /* Jika Anda ingin bullet, gunakan ini: */
    /* list-style-type: disc; */
    /* margin-left: 20px; */
}


/* --- Left-Right Containers Wrapper (Yang Anda Tanyakan) --- */
.left-right-containers-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch; /* Kunci: Menjajar tinggi item agar sama */
    gap: 30px;
    margin-top: 20px;
    margin-bottom: 20px;
    width: 100%;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
    box-sizing: border-box; /* Pastikan ini ada dan berfungsi */
}

/* Penyesuaian untuk info-container di dalam left-right-containers-wrapper */
.left-right-containers-wrapper .info-container {
    flex: 1; /* KUNCI: Biarkan setiap info-container mengambil ruang yang sama */
    min-width: 350px; /* Lebar minimum sebelum item wrap */
    /* Hapus max-width: 48%; */ /* <--- PENTING: Hapus baris ini agar flex: 1 bisa bekerja */
    
    /* Tambahkan styling background dan padding agar tinggi terlihat */
    background-color: rgba(255, 255, 255, 0.8);
    padding: 30px; /* Padding di dalam kontainer */
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    border: 1px solid #e0e0e0;
    box-sizing: border-box; /* KUNCI: Sangat penting untuk perhitungan ukuran */
}

/* Styling spesifik untuk judul di dalam container ini */
.left-right-containers-wrapper .info-container h3 {
    text-align: center;
    margin-bottom: 20px;
    color: #000080;
    font-size: 1.6rem;
}

/* Styling spesifik untuk paragraf di dalam container ini */
.left-right-containers-wrapper .info-container p {
    text-align: justify; /* Ubah ke justify agar teks rapi */
    font-weight: normal; /* Umumnya konten utama tidak bold, sesuaikan jika Anda mau */
    margin-bottom: 1.2em;
    line-height: 1.7;
    font-size: 1rem;
    color: #555;
}

.left-right-containers-wrapper .info-container ul {
    text-align: left;
    list-style-type: disc; /* Menggunakan bullet default */
    padding-left: 20px;
    margin-left: 0; /* Pastikan tidak ada margin default */
}

.left-right-containers-wrapper .info-container ul li {
    margin-bottom: 8px;
    line-height: 1.5;
    color: #555; /* Pastikan warna teks terlihat */
}

/* --- Company Description Section --- */
.company-description-container {
    max-width: 800px;
    margin: 50px auto;
    padding: 30px;
    background-color: rgba(255, 255, 255, 0.70);
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    border: 1px solid #e0e0e0;
    box-sizing: border-box; /* Pastikan box-sizing konsisten */
}

.company-description-container h2 {
    text-align: center;
    margin-bottom: 25px;
    color: #000080;
    font-size: 2rem;
}

.company-description-container p {
    text-align: justify; /* Teks rata kiri dan kanan */
    margin-bottom: 1.5em;
    line-height: 1.8;
    font-size: 1.1rem;
    font-weight: normal; /* Umumnya konten utama tidak bold, sesuaikan jika Anda mau */
    color: #555;
}

.company-description-container p:last-child {
    margin-bottom: 0;
}

/* --- Contact Section Styling --- */
#contact-content h2 {
    text-align: center;
    margin-bottom: 20px;
    color: #000080;
    font-size: 2rem;
}

#contact-content p {
    text-align: center;
    margin-bottom: 40px;
    font-size: 1.1rem;
    color: #000000;
}

.contact-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    max-width: 1000px;
    margin: 0 auto 60px auto;
    padding: 30px;
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.1);
    box-sizing: border-box; /* Pastikan box-sizing konsisten */
}

.contact-info {
    flex: 1;
    min-width: 300px;
    padding: 25px;
    background-color: rgba(255, 255, 255, 0.70);
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    text-align: center;
    box-sizing: border-box; /* Pastikan box-sizing konsisten */
}

.contact-info h3 {
    color: #000080;
    margin-bottom: 15px;
    font-size: 1.6rem;
    font-weight: 700;
}

.contact-info p {
    color: #000000;
    font-size: 1.2rem;
    line-height: 1.6;
    margin-bottom: 10px;
}

.contact-info p:last-child {
    margin-bottom: 0;
}

.contact-info a {
    color: #007bff;
    text-decoration: none;
    font-weight: bold;
}

.contact-info a:hover {
    text-decoration: underline;
}

.contact-form {
    flex: 1;
    min-width: 300px;
    padding: 25px;
    background-color: #f8faff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    box-sizing: border-box; /* Pastikan box-sizing konsisten */
}

.contact-form h3 {
    text-align: center;
    color: #000080;
    margin-bottom: 20px;
    font-size: 1.6rem;
    font-weight: 700;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
    width: 100%;
    padding: 12px;
    margin-bottom: 15px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 1rem;
    box-sizing: border-box;
}

.contact-form textarea {
    resize: vertical;
}

.contact-form button {
    display: block;
    width: 100%;
    padding: 12px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 1.1rem;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.contact-form button:hover {
    background-color: #0056b3;
}

.contact-map {
    width: 100%;
    padding: 20px;
    background-color: #f8faff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    margin-top: 20px;
    box-sizing: border-box; /* Pastikan box-sizing konsisten */
}

.contact-map h3 {
    text-align: center;
    color: #007bff;
    margin-bottom: 15px;
    font-size: 1.6rem;
    font-weight: 700;
}

.contact-map iframe {
    border-radius: 5px;
}

/* --- MEDIA QUERIES (Gabungan dan Perbaikan) --- */
@media (max-width: 768px) {
    /* Global Page Section */
    .page-section {
        padding-top: 100px;
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Navbar */
    .navbar {
        padding: 0 15px;
    }
    .nav-links {
        display: none;
        flex-direction: column;
        width: 100%;
        background-color: #3a3a3a;
        position: absolute;
        top: 100%;
        left: 0;
        box-shadow: 0 4px 10px rgba(0,0,0,0.2);
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease-in-out;
    }
    .nav-links.active {
        display: flex;
        max-height: 300px; /* Cukup besar untuk semua link */
    }
    .nav-links li {
        width: 100%;
        text-align: center;
        border-bottom: 1px solid #444;
    }
    .nav-links li:last-child {
        border-bottom: none;
    }
    .nav-links li a {
        padding: 1rem;
    }
    .hamburger-menu {
        display: block;
    }
    .hamburger-menu.active span:nth-child(1) {
        transform: translateY(9px) rotate(45deg);
    }
    .hamburger-menu.active span:nth-child(2) {
        opacity: 0;
    }
    .hamburger-menu.active span:nth-child(3) {
        transform: translateY(-9px) rotate(-45deg);
    }
    .navbar .logo {
        font-size: 1.5rem;
    }
    .navbar .logo-img {
        height: 30px;
        margin-right: 8px;
    }

    /* Home Section */
    #home-content h1 {
        font-size: 2.2rem;
    }
    #home-content p:not(.call-to-action-text) {
        font-size: 1rem;
        margin-bottom: 20px;
    }
    .home-carousel-wrapper {
        margin: 30px auto 40px auto;
        padding: 15px;
        border-radius: 10px;
    }
    .home-carousel-wrapper .carousel-slide img {
        height: 280px;
    }
    .call-to-action-text {
        font-size: 1.05rem;
        margin-top: 30px;
    }

    /* Carousel Umum */
    .carousel-btn {
        padding: 8px 12px;
        font-size: 1.5rem;
        left: 5px;
    }
    .carousel-btn.next {
        right: 5px;
        left: unset;
    }
    .dot {
        width: 10px;
        height: 10px;
    }
    .carousel-container,
    .gallery-carousel {
        margin-left: auto;
        margin-right: auto;
        padding: 0 10px;
    }
    .gallery-carousel h3 {
        margin-top: 30px;
        margin-bottom: 20px;
        font-size: 1.5rem;
        color: #000080; /* Ganti warna agar terlihat di latar belakang terang */
    }
    .gallery-carousel .carousel-slide img {
        height: auto; /* Biarkan tinggi auto agar fleksibel */
    }

    /* About Us Banner Image */
    .about-us-banner-image {
        margin-bottom: 20px;
    }

    /* Company Description Section */
    .company-description-container {
        margin: 30px auto;
        padding: 20px;
        max-width: 100%;
        border-radius: 8px;
    }
    .company-description-container h2 {
        font-size: 1.8rem;
        margin-bottom: 20px;
    }
    .company-description-container p {
        font-size: 1rem;
        line-height: 1.7;
    }

    /* Contact Section */
    #contact-content h2 {
        font-size: 2rem;
    }
    #contact-content p {
        font-size: 1rem;
        margin-bottom: 30px;
    }
    .contact-wrapper {
        flex-direction: column;
        gap: 20px;
        padding: 20px;
        margin: 0 auto 40px auto;
        border-radius: 10px;
    }
    .contact-info,
    .contact-form,
    .contact-map {
        min-width: unset;
        width: 100%;
        padding: 20px;
        margin-top: 0;
    }
    .contact-map {
        margin-top: 20px;
    }

    /* Logo Showcase */
    .logo-showcase-section {
        padding-top: 100px;
        padding-bottom: 40px;
    }
    .logo-container {
        gap: 20px;
    }
    .logo-item {
        width: 100px;
        height: 100px;
        border-radius: 6px;
    }
    .logo-item img {
        max-width: 70%;
        max-height: 70%;
    }

    /* Kontainer Fleksibel yang Menumpuk di Mobile (General untuk semua wrapper) */
    .content-containers-wrapper,
    .services-wrapper,
    .vision-mission-wrapper,
    .left-right-containers-wrapper {
        flex-direction: column; /* KUNCI: Ubah ke kolom di mobile */
        justify-content: center; /* Memusatkan secara horizontal saat kolom */
        align-items: center; /* Memusatkan item secara horizontal */
        gap: 20px;
        margin-top: 30px;
        margin-bottom: 30px;
        padding: 0 15px; /* Sesuaikan padding horizontal untuk mobile */
    }

    /* Aturan umum untuk info-container dan service-box di mobile */
    .info-container,
    .service-box,
    .vision-mission-wrapper .info-container, /* Pastikan ini juga terpengaruh */
    .left-right-containers-wrapper .info-container { /* Pastikan ini juga terpengaruh */
        max-width: 100%; /* Ambil lebar penuh di mobile */
        min-width: unset; /* Hapus min-width */
        padding: 25px; /* Sesuaikan padding internal */
    }

    /* Penyesuaian padding dan font untuk container di mobile */
    .info-container h3,
    .service-box h3 {
        padding: 15px 10px;
    }
    .info-container .content-body,
    .service-box .content-body {
        padding: 20px 15px;
    }
}

/* Aturan untuk mobile yang lebih kecil */
@media (max-width: 480px) {
    #home-content h1 {
        font-size: 1.8rem;
    }
    .logo-container {
        flex-direction: column;
        gap: 15px;
    }
    .logo-item {
        width: 120px;
        height: 120px;
    }
}

/* Orientasi Portrait Background */
@media screen and (orientation: portrait) {
    body {
        background-image: url('img/bgp1.jpg');
        background-size: cover;
        background-position: center center;
    }
	
	@media (max-width: 768px) {
    /* Penyesuaian untuk Section "About Us" di mobile */
    #about-content {
        flex-direction: column; /* Ubah menjadi kolom di layar kecil */
        align-items: center; /* Pusatkan item secara horizontal saat dalam mode kolom */
        /* padding sudah diatur di .page-section, jadi tidak perlu diulang */
    }

    #about-content img {
        width: 100%; /* Ambil lebar penuh di mobile */
        min-width: unset; /* Hapus min-width di mobile */
        margin-top: 0; /* Hapus margin top di mobile */
    }

    #about-content .company-description-container {
        flex: unset; /* Hapus fleksibilitas di mobile */
        width: 100%; /* Ambil lebar penuh di mobile */
        margin-top: 30px; /* Jarak antara gambar dan deskripsi di mobile */
        padding: 20px; /* Sedikit lebih kecil padding di mobile */
        border-radius: 8px;
    }

    #about-content .company-description-container h2 {
        text-align: center; /* Pusat judul di mobile */
        font-size: 1.8rem;
    }

    #about-content .company-description-container p {
        font-size: 1rem;
    }
}

@media (max-width: 768px), screen and (orientation: portrait) {
    /* ... (kode media query Anda sebelumnya) ... */

    /* Di tampilan mobile/portrait, hapus float agar gambar kembali ke alur normal */
    .company-description-container .description-image {
        float: none; /* Hapus float */
        display: block; /* Buat gambar menjadi blok agar menempati baris sendiri */
        margin: 0 auto 20px auto; /* Pusatkan gambar dan beri jarak di bawahnya */
        max-width: 80%; /* Batasi lebar gambar agar tidak terlalu besar di mobile */
    }

    /* Pastikan company-description-container tidak memiliki float atau display: flex
       yang akan mengganggu layout ini. Defaultnya akan menjadi block. */
    /* Jika company-description-container sendiri adalah flex item, ini akan bekerja. */

    /* Sesuaikan text-align untuk paragraf jika perlu di mobile */
    .company-description-container p {
        text-align: left; /* Biarkan rata kiri atau justify jika Anda suka */
    }
}
}