/* Import Font dari Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

/*
|--------------------------------------------------------------------------
| Global Styles & Reset
|--------------------------------------------------------------------------
*/
:root {
    /* Warna default akan diambil dari PHP, ini hanya fallback */
    --primary-color: #03478C; 
    --primary-color-rgb: 3, 71, 140;

    /* Warna Sekunder (Biru Tua/Abu Rig) - Pengganti Hitam */
    --secondary-color: #343a40;
    --secondary-color-rgb: 52, 58, 64;

    /* Warna Aksen (Kuning Matahari) */
    --accent-color: #ffc107;
    --accent-color-rgb: 255, 193, 7;

    /* Warna Netral */
    --light-gray: #f8f9fa;
    --medium-gray: #dee2e6;
    --dark-gray: #6c757d; /* Abu-abu untuk teks sekunder */
    --white: #ffffff;
    --black: #000000; /* Tetap ada jika dibutuhkan */

    /* Font & Ukuran */
    --font-primary: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --header-height: 80px;
}

/* Basic Reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth; /* Animasi scroll halus */
}

body {
    font-family: var(--font-primary);
    line-height: 1.6;
    color: var(--secondary-color);
    background-color: #f0f4f8; /* << TAMBAHKAN: Abu-abu muda lembut */
}

a {
    color: var(--primary-color);
    text-decoration: none;
    transition: color 0.2s ease;
}
a:hover {
    color: #012f93; /* Warna primary lebih gelap */
}

img, video {
    max-width: 100%;
    height: auto;
    display: block;
}

ul {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.3;
    margin-bottom: 0.75rem;
    font-weight: 600;
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }

.container {
    width: 100%;
    max-width: 1200px; /* Lebar maksimum konten */
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.section-padding {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.section-title {
    font-size: 2.2rem; /* Ukuran yang lebih besar */
    font-weight: 700; /* Lebih tebal */
    color: var(--secondary-color); /* Warna biru tua */
    text-align: center; /* Rata tengah default */
    margin-bottom: 3.5rem; /* Jarak bawah yang cukup */
    position: relative;
    padding-bottom: 1rem; /* Ruang untuk garis bawah */
    display: inline-block; /* Agar garis bawah sesuai lebar teks */
}
.section-title::after {
    content: '';
    position: absolute;
    left: 50%; /* Tengah */
    transform: translateX(-50%); /* Tengah */
    bottom: 0;
    width: 60px; /* Lebar garis */
    height: 4px;
    background-color: var(--primary-color); /* Warna biru */
    border-radius: 2px;
}
/* Untuk judul yang rata kiri (seperti di Services, Project intro) */
.section-title.text-left {
    text-align: left;
}
.section-title.text-left::after {
    left: 0;
    transform: translateX(0);
}

/* Class baru untuk judul dengan garis di kiri (untuk News) */
.section-title-with-line {
    display: inline-block;
    position: relative;
}
.section-title-with-line::before {
    content: '';
    position: absolute;
    left: -40px; /* Jarak garis dari teks */
    top: 50%;
    transform: translateY(-50%);
    height: 4px;
    width: 30px;
    background-color: var(--primary-color);
}

/* Button Styles */
.btn {
    display: inline-block;
    padding: 0.8rem 2rem;
    border-radius: 5px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent; /* Border transparan default */
    font-size: 1rem;
    cursor: pointer;
}
.btn-primary {
    background-color: var(--primary-color);
    color: var(--white);
    border-color: var(--primary-color);
}
.btn-primary:hover {
    background-color: var(--primary-color-dark); /* Warna sedikit lebih gelap */
    border-color: var(--primary-color-dark);
    transform: translateY(-2px); /* Efek angkat */
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.btn-secondary {
    background-color: var(--secondary-color);
    color: var(--white);
    border-color: var(--secondary-color);
}
.btn-secondary:hover {
    background-color: var(--secondary-color-dark);
    border-color: var(--secondary-color-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.btn-outline-primary {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    border: 2px solid var(--primary-color);
    border-radius: 4px;
    color: var(--primary-color);
    background-color: transparent;
    font-weight: 600;
    text-align: center;
    transition: background-color 0.2s ease, color 0.2s ease;
    margin-top: 1rem;
}
.btn-outline-primary:hover {
    background-color: var(--primary-color);
    color: var(--white);
}
.btn-link {
    color: var(--primary-color);
    font-weight: 600;
    font-size: 0.9rem;
}
.btn-link:hover {
    text-decoration: underline;
}

.cta-button { /* Tombol khusus di header */
    background-color: var(--primary-color);
    color: var(--white);
    padding: 0.6rem 1.2rem;
    border-radius: 4px;
    font-weight: 600;
}
.cta-button:hover {
    background-color: #012f93;
    color: var(--white);
}

/*
|--------------------------------------------------------------------------
| Language Switcher Styles
|--------------------------------------------------------------------------
*/
.language-switcher {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-left: 1.5rem; /* Jarak dari menu utama */
}
.lang-flag {
    display: flex; /* Tambahkan flex untuk centering */
    align-items: center; /* Tambahkan flex untuk centering */
}
.lang-flag img {
    width: auto; /* Biarkan lebar otomatis */
    height: 16px; /* Tentukan tinggi yang seragam */
    border-radius: 3px;
    display: block;
    transition: transform 0.2s ease, opacity 0.2s ease;
    opacity: 0.7;
    border: 1px solid rgba(255, 255, 255, 0.2); /* Tambahkan border tipis */
    box-shadow: 0 1px 3px rgba(0,0,0,0.2); /* Tambahkan bayangan halus */
}
.lang-flag:hover img,
.lang-flag.active img {
    transform: scale(1.1);
    opacity: 1;
}

.text-center { text-align: center; }

/* Styling untuk konten dari TinyMCE (Global) */
.editable-content p { margin-bottom: 1rem; }
.editable-content ul, .editable-content ol { margin-left: 1.5rem; margin-bottom: 1rem; }
.editable-content li { margin-bottom: 0.5rem; }
.editable-content strong { font-weight: 700; }
.editable-content em { font-style: italic; }
.editable-content a { color: var(--primary-color); text-decoration: underline; }
.editable-content a:hover { color: #012f93; }

/*
|--------------------------------------------------------------------------
| Header Styles
|--------------------------------------------------------------------------
*/
.main-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    z-index: 1000;
    background-color: rgba(3, 71, 140, 0.7);
    transition: background-color 0.3s ease;
}

.main-header.scrolled {
     background-color: var(--primary-color);
     box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.main-header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

.main-header .logo img {
    max-height: 50px;
}

.main-nav ul {
    display: flex;
    gap: 1.5rem;
}

.main-nav a {
    color: var(--white);
    font-weight: 500;
    padding: 0.5rem 0;
    position: relative;
}
.main-nav a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--primary-color);
    transition: width 0.3s ease;
}
.main-nav a:hover::after,
.main-nav a.active::after {
    width: 100%;
}

.main-header.scrolled .main-nav a {
    color: var(--white);
}
.main-header.scrolled .main-nav a.active {
    color: var(--white);
}

/*
|--------------------------------------------------------------------------
| Hero Section Styles v2 (Konsisten Full Height)
|--------------------------------------------------------------------------
*/
.hero-section, /* Untuk Homepage */
.page-hero { /* Untuk Halaman Internal */
    position: relative;
    height: 100vh; /* WAJIB: Tinggi penuh layar */
    min-height: 600px; /* Jaga tinggi minimal */
    display: flex; /* WAJIB: Untuk centering */
    align-items: center; /* WAJIB: Tengah vertikal */
    justify-content: center; /* WAJIB: Tengah horizontal */
    overflow: hidden; /* Penting agar media tidak keluar */
    text-align: center;
    color: var(--white);
    background-color: #333; /* Warna fallback jika media gagal */
}

/* Background Media (Video atau Gambar) */
.hero-section video,
.page-hero video,
.hero-section .hero-background-image, /* Gunakan div terpisah untuk gambar */
.page-hero .hero-background-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    object-fit: cover; /* Pastikan media menutupi area */
}
/* Khusus video, perlu penyesuaian posisi sedikit */
.hero-section video,
.page-hero video {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
}

/* Overlay Gelap */
.hero-section .hero-overlay,
.page-hero .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 2;
}

/* Wrapper Konten (H1, P, Tombol, Breadcrumbs) */
.hero-content-container { /* Pastikan nama class ini konsisten */
    position: relative;
    z-index: 3;
    animation: fadeInHero 1s ease-out 0.5s both;
}

/* Styling Konten di Dalamnya */
.hero-content-container h1 {
    font-size: 3rem; /* Ukuran default (bisa dioverride) */
    margin-bottom: 1rem;
    font-weight: 700;
}
/* Atur ulang H1 halaman internal jika perlu */
.page-hero .hero-content-container h1 {
     font-size: 2.8rem;
}

.hero-content-container p { /* Hanya untuk subjudul homepage */
    font-size: 1.25rem;
    margin-bottom: 2rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.hero-content-container .breadcrumb { /* Breadcrumbs halaman internal */
    display: flex;
    justify-content: center;
    padding: 0;
    margin-top: 1rem; /* Jarak dari H1 */
    list-style: none;
    background-color: transparent;
    font-size: 0.9rem;
}
.breadcrumb-item a { color: rgba(255, 255, 255, 0.8); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--white); }
.breadcrumb-item + .breadcrumb-item::before { padding: 0 0.5rem; color: rgba(255, 255, 255, 0.5); content: "/"; }
.breadcrumb-item.active { color: var(--white); }


/* Animasi */
@keyframes fadeInHero {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/*
|--------------------------------------------------------------------------
| Services Section Styles (v3 - Layout 2 Kolom GTA Style)
|--------------------------------------------------------------------------
*/
.services-section-split {
    display: flex;
    background-color: #1a2533;
    color: var(--white);
    padding: 4rem 0; /* Padding atas bawah */
    /* min-height: 450px; Hapus min-height agar fleksibel */
    align-items: center; /* Coba align center vertikal */
}

.services-intro-text {
    flex: 1; /* Seimbang */
    padding: 2rem 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.services-intro-text h2 {
    text-align: left;
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
    color: var(--white);
    position: relative;
    padding-left: 0;
    margin-bottom: 2rem; /* Jarak lebih besar dari judul ke paragraf */
}

.services-intro-text h2::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 0;
    width: 50px;
    height: 4px;
    background-color: var(--primary-color);
    border-radius: 2px;
}
.services-intro-text h2::after { display: none; }

/* Style untuk paragraf di intro section */
.section-description {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--dark-gray); /* Warna abu gelap agar terbaca */
    margin-bottom: 2rem; /* Jarak dari tombol/list */
}

/* Terapkan ke Services intro */
.services-intro-text p {
    color: var(--white-light); /* Warna putih keabu-abuan agar kontras dengan background gelap */
    line-height: 1.8;
    font-size: 1rem;
    margin-bottom: 2rem;
}

.services-list {
    list-style: none; /* Hapus bullet default */
    padding: 0;
    margin-bottom: 2rem;
}

.services-list li {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
    font-size: 1.1rem; /* Sedikit lebih besar */
    color: var(--white); /* Warna teks putih */
}

.services-list svg { /* Styling ikon panah */
    width: 1.3em; /* Ukuran ikon lebih besar */
    height: 1.3em;
    fill: var(--primary-color);
    margin-right: 0.8rem;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.services-list li:hover svg {
    transform: translateX(5px); /* Geser ikon lebih jauh */
}

.services-list a {
    color: inherit; /* Ikuti warna li */
    text-decoration: none;
    transition: color 0.2s ease;
}
.services-list a:hover {
    color: var(--primary-color); /* Warna biru saat hover */
}

.services-intro-text .btn {
    background-color: var(--primary-color);
    color: var(--white);
    padding: 0.8rem 1.8rem;
    align-self: flex-start;
}
.services-intro-text .btn:hover {
    background-color: #012f93;
}

.services-image-col {
    flex: 1; /* Seimbang */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    align-self: stretch; /* Paksa kolom gambar mengisi tinggi flex container */
    min-height: 400px; /* Jaga tinggi minimal jika teks pendek */
}
/* Pastikan Projects intro layout juga punya tinggi yang sama */
.latest-projects-section .projects-intro-layout {
    min-height: 450px; /* << Tambahkan ini agar layout sama tingginya */
    /* Atau sesuaikan jika project slider punya tinggi berbeda */
}
@media (max-width: 992px) {
    .services-section-split { flex-direction: column; }
    .services-intro-text { padding: 3rem 2rem; }
    .services-image-col { min-height: 300px; }
}

/*
|--------------------------------------------------------------------------
| Latest Projects Section Styles (v7 - Swiper Slider All Projects)
|--------------------------------------------------------------------------
*/
.latest-projects-section {
    background: linear-gradient(to right, #f0f4f8, var(--white));
    padding: 4rem 0;
    display: flex; 
    align-items: center; 
    min-height: 550px; /* <<== TINGGI MINIMAL SECTION (Disesuaikan untuk slider) */
}

.projects-intro-layout {
    display: flex;
    align-items: center;
    gap: 3rem;
    width: 100%;
}

.projects-intro-text {
    flex: 0 0 35%; /* Mengambil sekitar 35% untuk teks intro */
    max-width: 35%;
    padding-right: 2rem;
}
.projects-intro-text h2 {
    text-align: left; font-size: 1.8rem; margin-bottom: 1rem; position: relative;
    display: inline-block; padding-bottom: 0.5rem; color: var(--secondary-color);
}
.projects-intro-text h2::before { display: none; }
.projects-intro-text h2::after {
    content: ''; position: absolute; left: 0; bottom: 0; width: 50px; height: 4px;
    background-color: var(--primary-color); border-radius: 2px;
}
.projects-intro-text p.section-description {
    color: var(--dark-gray); line-height: 1.8; font-size: 1rem; margin-bottom: 2rem;
}
.projects-intro-text .btn {
    background-color: var(--primary-color); color: var(--white); padding: 0.8rem 1.8rem;
}
.projects-intro-text .btn:hover { background-color: var(--primary-color-dark); }


/* Wrapper untuk Slider Swiper */
.projects-slider-wrapper {
    flex: 1; /* Mengambil sisa 65% lebar */
    max-width: 65%;
}

.projectsSwiper {
    width: 100%;
    /* Tinggi ditentukan oleh swiper-slide */
}

/* Styling Kartu Proyek (Dipertahankan dari yang Anda berikan) */
.project-card {
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    position: relative; 
    display: block; 
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.project-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
}

.project-card .image-container { /* Wrapper gambar */
    width: 100%;
    aspect-ratio: 16 / 10; /* RASIO GAMBAR */
    background-color: #eee;
    overflow: hidden;
    position: relative;
}
.project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover; 
    display: block;
    transition: transform 0.4s ease;
}
.project-card:hover img {
    transform: scale(1.05);
}

/* Konten Overlay di bawah (Dipertahankan dari yang Anda berikan) */
.project-card-content {
    position: absolute; 
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.2rem 1.5rem;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 20%, rgba(0, 0, 0, 0));
    color: var(--white);
    transition: background 0.3s ease;
}
.project-card-content h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.2rem;
    color: var(--white);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.project-card-content p.project-description {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Swiper Navigation Customization */
.projectsSwiper .swiper-button-next,
.projectsSwiper .swiper-button-prev {
    color: var(--primary-color);
    top: 50%;
    transform: translateY(-50%);
}

.projectsSwiper .swiper-button-prev {
    left: -10px; /* Sedikit geser ke luar */
}
.projectsSwiper .swiper-button-next {
    right: -10px; /* Sedikit geser ke luar */
}

/* Responsif Slider */
@media (max-width: 992px) {
    .projects-intro-layout { flex-direction: column; text-align: center; }
    .projects-intro-text { 
        padding-right: 0; 
        margin-bottom: 2rem;
        flex: 0 0 100%; /* Ambil penuh di tablet */
        max-width: 100%;
    }
    .projects-intro-text h2 { text-align: center; }
    .projects-intro-text h2::after { left: 50%; transform: translateX(-50%); }
    
    .projects-slider-wrapper { 
        width: 100%; 
        max-width: 100%; 
        padding: 0 20px; /* Beri padding agar navigasi tidak menempel */
    }
    .projectsSwiper .swiper-button-next,
    .projectsSwiper .swiper-button-prev {
        display: none; /* Sembunyikan navigasi di mobile/tablet kecil */
    }
}
@media (max-width: 768px) {
     .project-card .image-container { aspect-ratio: 4 / 3; } 
}

/* Seimbangkan tinggi section Services */
.services-section-split {
    min-height: 550px; /* <<== SAMAKAN DENGAN project section */
}
.services-image-col {
    min-height: 550px; /* <<== SAMAKAN DENGAN project section */
}
/*
|--------------------------------------------------------------------------
| Latest News Section Styles (Mengikuti Screenshot)
|--------------------------------------------------------------------------
*/
.latest-news-section {
    background-color: var(--light-gray);
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.news-card {
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.news-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
}

.news-card-content {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.news-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--dark-gray);
    margin-bottom: 0.75rem;
}
.news-meta svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.news-card h3 {
    font-size: 1.15rem;
    margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
}
.news-card h3 a {
    color: var(--secondary-color);
    text-decoration: none;
}
.news-card h3 a:hover {
    color: var(--primary-color);
}

.news-excerpt {
    font-size: 0.95rem;
    color: var(--dark-gray);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 1rem;
    flex-grow: 1;
}

/* Responsif News & Projects */
@media (max-width: 992px) {
    .projects-intro-layout { flex-direction: column; gap: 2rem; }
    .projects-grid, .news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .projects-grid, .news-grid { grid-template-columns: 1fr; }
    .projects-intro-text h2 { text-align: center; padding-left: 0; }
    .projects-intro-text h2::before { display: none; }
    .projects-intro-text { text-align: center; }
}


/*
|--------------------------------------------------------------------------
| CTA Section Styles
|--------------------------------------------------------------------------
*/
.cta-section {
    position: relative;
    background-size: cover;
    background-position: center;
    color: var(--white);
    text-align: center;
}
.cta-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--primary-color-rgb, 139, 0, 0), 0.8);
    z-index: 1;
}
.cta-content {
    position: relative;
    z-index: 2;
}
.cta-content h2 {
    font-size: 2.2rem;
    margin-bottom: 1rem;
}
.cta-content p {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}
.cta-content .btn-primary {
    background-color: var(--white);
    color: var(--primary-color);
    border: 2px solid var(--white);
}
.cta-content .btn-primary:hover {
    background-color: transparent;
    color: var(--white);
}

/*
|--------------------------------------------------------------------------
| Partner Slider Section Styles
|--------------------------------------------------------------------------
*/
.partner-slider-section {
    background-color: var(--white);
    padding-top: 3rem;
    padding-bottom: 3rem;
    border-top: 1px solid var(--medium-gray);
    border-bottom: 1px solid var(--medium-gray);
}
.partner-slider-section h2 {
    text-align: left; /* Rata Kiri */
    font-size: 1.8rem; /* Ukuran lebih standar */
    color: var(--secondary-color); /* Warna teks gelap */
    margin-bottom: 2.5rem;
    position: relative;
    padding-left: 0; /* Hapus padding jika ada */
    /* Tambahkan garis pendek di atas atau samping jika mau */
}
.partner-slider-section h2::before { /* Contoh garis atas */
    content: '';
    position: absolute;
    top: -10px;
    left: 0;
    width: 50px;
    height: 4px;
    background-color: var(--primary-color); /* Garis warna biru */
    border-radius: 2px;
}
.partner-slider-section h2::after { display: none; }

.partnerSwiper {
    width: 100%;
    height: 80px;
    overflow: hidden;
}
.partnerSwiper .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
}
.partnerSwiper .partner-logo img {
    max-height: 100px; /* << NAIKKAN NILAI INI (misal dari 50px) */
    width: auto;
    opacity: 0.9;
    transition: opacity 0.3s ease;
}
.partnerSwiper .swiper-slide:hover .partner-logo img {
     opacity: 1; /* Opacity penuh saat hover */
}

/*
|--------------------------------------------------------------------------
| Footer Styles (v2 - Fixes)
|--------------------------------------------------------------------------
*/
.main-footer {
    background-color: var(--primary-color); /* Biru */
    color: #e9ecef; /* Putih kebiruan */
    padding-top: 4rem;
    font-size: 0.95rem; /* Ukuran font dasar footer */
}
.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* Kolom auto-fit */
    gap: 2.5rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
    /* Tidak perlu style khusus, biarkan grid mengatur */

.footer-col h4 {
    color: var(--white);
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
    position: relative;
    padding-bottom: 0.5rem;
    display: inline-block; /* Agar garis hanya selebar teks */
}
.footer-col h4::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px; /* Garis lebih panjang sedikit */
    height: 2px;
    background-color: var(--white);
}
.footer-logo {
    max-width: 200px; /* Batasi lebar logo */
    height: auto; /* Tinggi otomatis */
    margin-bottom: 1rem;
}
.footer-col p,
.footer-col address {
    line-height: 1.7;
    margin-bottom: 0; /* Hapus margin bawah default address */
}
.footer-col address strong { color: var(--white); }
.footer-col iframe { border-radius: 4px; max-width: 100%;} /* Max width peta */

/* Styling Ikon Kontak di Footer */
.footer-col address .contact-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0.9rem; /* Jarak antar item kontak */
}
.footer-col address .contact-item i.fa-fw { /* Target ikon FA fixed-width */
    font-size: 1rem;
    margin-right: 0.8rem;
    margin-top: 0.2em;
    width: 1.25em; /* Lebar tetap untuk ikon */
    text-align: center;
    flex-shrink: 0;
    color: var(--white);
}
.footer-col address .contact-item span {
    flex-grow: 1;
}

/* Styling Ikon Sosial Media di Footer */
.social-links {
    margin-top: 1rem; /* Jarak dari judul */
}
.social-links a {
    display: inline-flex; /* Agar bisa align center */
    align-items: center;
    justify-content: center;
    font-size: 1.1rem; /* Ukuran ikon */
    margin-right: 0.8rem;
    color: rgba(255, 255, 255, 0.7); /* Warna ikon sedikit transparan */
    width: 36px; /* Kotak ikon */
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%; /* Bulat */
    transition: all 0.3s ease;
}
.social-links a:hover {
    color: var(--primary-color); /* Warna ikon jadi biru */
    background-color: var(--white); /* Background jadi putih */
    border-color: var(--white);
    transform: scale(1.1);
}
.social-links a:last-child { margin-right: 0; }

.footer-bottom {
    padding: 1.5rem 0;
    text-align: center;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.7);
    border-top: 1px solid rgba(255, 255, 255, 0.1); /* Garis pemisah halus */
    margin-top: 3rem; /* Jarak dari grid footer */
}

/* Responsive Footer */
@media (max-width: 768px) {
    .footer-grid { text-align: left; } /* Kembali rata kiri di mobile */
    .footer-col h4::after { left: 0; transform: none; } /* Garis kembali rata kiri */
    .footer-logo { margin-left: 0; margin-right: 0; }
    .social-links { text-align: left;} /* Ikon rata kiri di mobile */
}

/*
|--------------------------------------------------------------------------
| Page Specific Styles: Layanan & Detail Layanan
|--------------------------------------------------------------------------
*/
.services-list-section { background-color: var(--white); }
.services-list-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.service-list-card { background-color: var(--white); border-radius: 8px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.07); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.service-list-card:hover { transform: translateY(-8px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
.service-list-card .service-card-image-wrapper { position: relative; height: 220px; overflow: hidden; }
.service-list-card .service-card-image-wrapper img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.service-list-card:hover .service-card-image-wrapper img { transform: scale(1.05); }
.service-list-card .service-card-icon { position: absolute; bottom: -25px; left: 50%; transform: translateX(-50%); background-color: var(--primary-color); color: var(--white); border-radius: 50%; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; border: 3px solid var(--white); box-shadow: 0 2px 5px rgba(0,0,0,0.2); }
.service-list-card .service-card-icon svg { width: 24px; height: 24px; }
.service-list-card .service-card-content { padding: 2.5rem 1.5rem 1.5rem; text-align: center; flex-grow: 1; display: flex; flex-direction: column; }
.service-list-card h3 { font-size: 1.25rem; margin-bottom: 0.75rem; color: var(--secondary-color); }
.service-list-card .service-excerpt { font-size: 0.95rem; color: var(--dark-gray); line-height: 1.5; margin-bottom: 1.5rem; flex-grow: 1; }
.service-list-card .btn-outline-primary { margin-top: auto; }

@media (max-width: 992px) { .services-list-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .services-list-grid { grid-template-columns: 1fr; } }

.service-detail-section { background-color: var(--white); }
.service-detail-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 3rem; align-items: flex-start; }
.service-description-content h2 { font-size: 1.8rem; color: var(--primary-color); margin-bottom: 1.5rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--medium-gray); display: inline-block; }
.service-description-content .editable-content { line-height: 1.7; color: var(--secondary-color); }
.service-main-image img { border-radius: 8px; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); width: 100%; height: auto; }

.related-projects-section { border-top: 1px solid var(--medium-gray); }
.projects-grid.related { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 992px) {
    .projects-grid.related { grid-template-columns: repeat(2, 1fr); }
    .service-detail-grid { grid-template-columns: 1fr; }
    .service-main-image { margin-top: 2rem; }
}
@media (max-width: 768px) { .projects-grid.related { grid-template-columns: 1fr; } }


/*
|--------------------------------------------------------------------------
| Page Specific Styles: Proyek (Portfolio)
|--------------------------------------------------------------------------
*/
.portfolio-section { background-color: var(--white); }
.filter-buttons {
    text-align: center;
    margin-bottom: 3rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}
.filter-btn {
    background-color: transparent;
    border: 1px solid var(--medium-gray);
    color: var(--dark-gray);
    padding: 0.6rem 1.5rem;
    margin: 0.3rem;
    border-radius: 50px; /* Lebih bulat */
    cursor: pointer;
    transition: all 0.3s ease;
    font-weight: 500;
    font-size: 0.9rem;
}
.filter-btn:hover {
    background-color: var(--light-gray);
    border-color: var(--primary-color);
    color: var(--primary-color);
}
.filter-btn.active {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--white);
    box-shadow: 0 4px 15px rgba(var(--primary-color-rgb), 0.3);
    transform: translateY(-2px);
}

.portfolio-grid { margin: -0.75rem; }
.portfolio-item { width: 33.333%; padding: 0.75rem; transition: transform 0.4s ease, opacity 0.4s ease; }
.project-card.portfolio { border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); position: relative; }
.project-card.portfolio img { height: 250px; border-radius: 8px 8px 0 0; object-fit: cover; }
.project-card.portfolio .project-card-content.overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); color: var(--white); display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; padding: 1.5rem; opacity: 0; transition: opacity 0.4s ease; border-radius: 8px; }
.project-card.portfolio:hover .project-card-content.overlay { opacity: 1; }
.project-card.portfolio .project-category { background-color: rgba(255, 255, 255, 0.2); color: var(--white); }
.project-card.portfolio h3 { font-size: 1.2rem; color: var(--white); margin-bottom: 0.5rem; white-space: normal; overflow: visible; text-overflow: clip; -webkit-line-clamp: unset; line-clamp: unset; }
.zoom-icon { position: absolute; top: 1rem; right: 1rem; background-color: rgba(var(--primary-color-rgb, 139, 0, 0), 0.8); color: var(--white); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; text-decoration: none; transform: scale(0.8); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; }
.project-card.portfolio:hover .zoom-icon { transform: scale(1); opacity: 1; }

@media (max-width: 992px) { .portfolio-item { width: 50%; } }
@media (max-width: 768px) { .portfolio-item { width: 100%; } .filter-buttons { margin-bottom: 2rem; } .filter-btn { font-size: 0.9rem; padding: 0.5rem 1rem; } }

/* Lightbox2 Customization */
.lightbox .lb-caption { font-size: 1rem; }
.lightbox .lb-number { font-size: 0.9rem; }

/*
|--------------------------------------------------------------------------
| Responsive Styles (Mobile First Approach - Contoh max-width)
|--------------------------------------------------------------------------
*/

/* --- Tablet (Contoh: max-width 992px) --- */
@media (max-width: 992px) {
    :root {
        --header-height: 70px; /* Sedikit lebih pendek */
    }
    h1 { font-size: 2.2rem; }
    h2 { font-size: 1.8rem; }
    h3 { font-size: 1.3rem; }

    .container {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .section-padding {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

   
    
    .cta-button {
        padding: 0.5rem 1rem;
        font-size: 0.9rem;
    }

    /* Hero */
    .hero-section h1, .page-hero h1 { font-size: 2.5rem; }
    .hero-section p { font-size: 1.1rem; max-width: 90%; }

    /* Grid (Sudah diatur jadi 2 kolom di rules sebelumnya) */
    .services-list-grid, .news-grid, .projects-grid.related { grid-template-columns: repeat(2, 1fr); }
    .projects-grid { grid-template-columns: repeat(2, 1fr); } /* Grid proyek di homepage */
    .portfolio-item { width: 50%; } /* Portfolio grid */
    .footer-grid { grid-template-columns: repeat(2, 1fr); }

}


/* --- Mobile (Contoh: max-width 768px) --- */
@media (max-width: 768px) {
    :root {
        --header-height: 60px; /* Lebih pendek lagi */
    }
    h1 { font-size: 1.8rem; }
    h2 { font-size: 1.6rem; }
    h3 { font-size: 1.2rem; }

    
    .main-nav {
        display: block; /* Selalu block, tapi kita atur visibilitasnya */
        position: fixed; /* Ubah ke fixed agar menutupi layar */
        top: 0;
        left: -100%; /* Mulai dari luar layar kiri */
        width: 80%; /* Lebar menu (misal 80%) */
        max-width: 300px; /* Lebar maksimum */
        height: 100%;
        background-color: var(--white);
        box-shadow: 5px 0 15px rgba(0,0,0,0.1);
        padding: calc(var(--header-height) + 1rem) 0 1rem; /* Padding atas bawah */
        transition: left 0.4s ease; /* Transisi slide */
        z-index: 999; /* Di bawah tombol toggle */
        overflow-y: auto; /* Bisa scroll jika menu panjang */
    }
    .main-nav.active { /* Class untuk menampilkan menu mobile */
        left: 0;
    }
    .main-nav ul {
        flex-direction: column;
        gap: 0;
    }
    .main-nav li {
        width: 100%;
    }
    .main-nav a {
        display: block;
        padding: 0.8rem 1.5rem; /* Padding link menu mobile */
        color: var(--secondary-color); /* Warna teks menu mobile */
        border-bottom: 1px solid var(--medium-gray);
    }
    .main-nav a::after { display: none; } /* Hapus garis bawah hover */
    .main-nav a.active {
        color: var(--primary-color);
        background-color: var(--light-gray);
    }
    /* Pindahkan language switcher ke dalam menu mobile */
    .language-switcher {
        padding: 1rem 1.5rem;
        border-bottom: 1px solid var(--medium-gray);
    }

    /* Tombol Hamburger */
    .mobile-nav-toggle {
        display: block;
        background: none;
        border: none;
        cursor: pointer;
        padding: 10px; /* Area klik lebih besar */
        z-index: 1001;
        position: relative; /* Agar z-index bekerja */
        margin: -10px; /* Kompensasi padding */
    }
    .mobile-nav-toggle span { /* Garis hamburger */
        display: block;
        width: 25px;
        height: 3px;
        background-color: var(--white); /* Warna awal (di header transparan) */
        margin: 5px 0;
        transition: all 0.3s ease;
    }
    /* Warna garis saat header di-scroll */
    .main-header.scrolled .mobile-nav-toggle span {
        background-color: var(--white); /* << GANTI JADI PUTIH */
    }

    /* Animasi Tombol Hamburger jadi X (opsional) */
    .mobile-nav-toggle.active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .mobile-nav-toggle.active span:nth-child(2) { opacity: 0; }
    .mobile-nav-toggle.active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
    /* Warna X saat header di-scroll (jika menu aktif) */
     .main-header.scrolled .mobile-nav-toggle.active span {
         background-color: var(--white); /* << GANTI JADI PUTIH */
     }
     /* Warna X saat header TIDAK di-scroll (jika menu aktif) */
      .mobile-nav-toggle.active span {
         background-color: var(--secondary-color); /* Atau --white tergantung background menu */
     }


    .cta-button { display: none; } /* Sembunyikan tombol CTA di mobile (bisa taruh di menu) */

    /* Hero */
    .hero-section, .page-hero { min-height: 400px; height: 60vh; } /* Lebih pendek */
    .hero-section h1, .page-hero h1 { font-size: 2rem; }
    .hero-section p { font-size: 1rem; }
    .breadcrumb { font-size: 0.8rem; }

    /* Layout 1 Kolom */
    .services-section-split { flex-direction: column; }
    .projects-intro-layout { flex-direction: column; gap: 2rem; }
    .services-list-grid, .news-grid, .projects-grid, .projects-grid.related { grid-template-columns: 1fr; }
    .portfolio-item { width: 100%; }
    .footer-grid { grid-template-columns: 1fr; text-align: center; }
    .footer-col h4::after { left: 50%; transform: translateX(-50%); }
    .footer-logo { margin-left: auto; margin-right: auto; }
    .profile-grid, .commitment-grid { grid-template-columns: 1fr; gap: 2rem; }
    .vision-mission-grid { grid-template-columns: 1fr; }
    .commitment-gallery { grid-template-columns: 1fr; }
    .commitment-gallery img { height: auto; }

    /* Kurangi Padding */
    .section-padding { padding-top: 2.5rem; padding-bottom: 2.5rem; }
    .container { padding-left: 1rem; padding-right: 1rem; }
    .services-intro-text, .profile-text, .vision-box, .mission-box, .commitment-text { padding: 2rem 1.5rem; }
    .project-card-content, .news-card-content { padding: 1rem 1.2rem; }
    .main-footer { padding-top: 3rem; }
    .footer-grid { gap: 2rem; padding-bottom: 2rem;}
    .footer-bottom { padding: 1rem 0; }

}
/* Overlay saat menu mobile aktif (Opsional) */
    body.mobile-menu-active::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 998; /* Di bawah menu, di atas konten */
        opacity: 1;
        transition: opacity 0.4s ease;
    }
     /* Sembunyikan overlay default */
    body::before {
        content: '';
        position: fixed;
        /* ... (properti sama tapi opacity 0 dan pointer-events none) ... */
        opacity: 0;
        pointer-events: none; /* Agar tidak bisa diklik saat tersembunyi */
        transition: opacity 0.4s ease;
    }

    /* Mencegah body scroll saat menu aktif */
    body.mobile-menu-active {
        overflow: hidden;
    }
/*
|--------------------------------------------------------------------------
| Page Specific Styles: Berita & Detail Berita
|--------------------------------------------------------------------------
*/

/* Halaman Daftar Berita (berita.php) */
.news-list-section {
    background-color: var(--light-gray);
}
/* Gunakan grid yang sama dengan homepage */
.news-list-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
/* Style news-card sudah ada sebelumnya */

/* Tombol Baca Selengkapnya */
.news-card .btn-link {
    color: var(--primary-color);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    align-self: flex-start; /* Rata kiri */
}
.news-card .btn-link:hover {
    text-decoration: underline;
}

/* Responsive Grid Daftar Berita */
@media (max-width: 992px) {
    .news-list-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .news-list-grid { grid-template-columns: 1fr; }
}


/* Halaman Detail Berita (detail-berita.php) */
.news-detail-section {
    background-color: var(--white);
}
.news-detail-layout {
    /* Bisa tambahkan sidebar nanti: display: grid; grid-template-columns: 2.5fr 1fr; gap: 3rem; */
    max-width: 850px; /* Batasi lebar konten agar nyaman dibaca */
    margin-left: auto;
    margin-right: auto;
}
.news-content .featured-image {
    width: 100%;
    height: auto;
    max-height: 450px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 2rem;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.news-meta.detail {
    font-size: 0.9rem;
    color: var(--dark-gray);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--medium-gray);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap; /* Agar bisa ke bawah jika info banyak */
}
.news-meta.detail svg { width: 1em; height: 1em; fill: currentColor; }
.news-author { margin-left: 0.5rem; }

.editable-content.full-content {
    line-height: 1.8;
    font-size: 1rem;
    color: var(--secondary-color);
}
.editable-content.full-content h2 { font-size: 1.8rem; margin-top: 2rem; margin-bottom: 1rem; }
.editable-content.full-content h3 { font-size: 1.5rem; margin-top: 1.8rem; margin-bottom: 1rem; }
.editable-content.full-content img { max-width: 100%; height: auto; border-radius: 4px; margin: 1.5rem 0; box-shadow: 0 3px 8px rgba(0,0,0,0.1); }
.editable-content.full-content blockquote { border-left: 4px solid var(--primary-color); padding-left: 1.5rem; margin: 1.5rem 0; font-style: italic; color: var(--dark-gray); background-color: var(--light-gray); padding-top: 1rem; padding-bottom: 1rem; border-radius: 0 4px 4px 0;}
.editable-content.full-content ul, .editable-content.full-content ol { margin-left: 1.5rem; margin-bottom: 1.5rem; }
.editable-content.full-content li { margin-bottom: 0.7rem; }

/* (CSS untuk sidebar jika ditambahkan nanti) */
/* .news-sidebar { ... } */
/*
|--------------------------------------------------------------------------
| Page Specific Styles: Kontak
|--------------------------------------------------------------------------
*/

/* Section Peta */
.contact-map-section iframe {
    vertical-align: bottom; /* Hilangkan space bawah iframe */
    width: 100%; /* Pastikan lebar penuh */
}

/* Section Detail & Form */
.contact-details-section {
    background-color: var(--white);
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr; /* Kolom form sedikit lebih lebar */
    gap: 3rem;
}

/* Kolom Info Kontak */
.contact-info h2 {
    font-size: 1.8rem;
    color: var(--primary-color);
    border-bottom: 2px solid var(--medium-gray); /* Tambah garis bawah */
    margin-bottom: 1rem;
}
.contact-info p {
    color: var(--dark-gray);
    margin-bottom: 2rem;
}
.contact-info .contact-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1.5rem;
    font-size: 1rem;
    line-height: 1.6;
}
.contact-info .contact-item i {
    font-size: 1.2rem;
    color: var(--primary-color);
    margin-right: 1.2rem; /* Jarak ikon lebih besar */
    margin-top: 0.1em;
    width: 25px; /* Lebar ikon */
    text-align: center;
}
.contact-info .contact-item strong {
    display: block;
    color: var(--secondary-color);
    margin-bottom: 0.2rem;
}

.contact-info .social-title {
    font-size: 1.3rem;
    color: var(--secondary-color);
    margin-top: 3rem;
    margin-bottom: 1rem;
}
.social-links.contact-page a {
    font-size: 1.5rem; /* Ikon sosmed lebih besar */
    color: var(--secondary-color);
    margin-right: 1.5rem;
}
.social-links.contact-page a:hover {
    color: var(--primary-color);
}

/* Kolom Form Kontak */
.contact-form-wrapper h2 {
    font-size: 1.8rem;
    color: var(--secondary-color);
    margin-bottom: 1.5rem;
}
.contact-form .form-group label {
    font-weight: 500; /* Label tidak terlalu tebal */
    color: var(--secondary-color);
    font-size: 0.9rem;
}
.contact-form .form-group label .required { color: red; }
.contact-form .form-group input[type="text"],
.contact-form .form-group input[type="email"],
.contact-form .form-group input[type="tel"],
.contact-form .form-group textarea {
    background-color: #fdfdfd; /* Latar input lebih cerah */
    border: 1px solid var(--medium-gray);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.contact-form .form-group input[type="text"]:focus,
.contact-form .form-group input[type="email"]:focus,
.contact-form .form-group input[type="tel"]:focus,
.contact-form .form-group textarea:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(var(--primary-color-rgb), 0.2);
}
.contact-form .form-group textarea { resize: vertical; }

/* Notifikasi Form */
.contact-form-wrapper .notification { font-size: 0.95rem; }

/* Responsif Halaman Kontak */
@media (max-width: 992px) {
    .contact-grid {
        grid-template-columns: 1fr; /* Tumpuk kolom */
        gap: 2.5rem;
    }
    .contact-form-wrapper { margin-top: 2rem; }
}
/*
|--------------------------------------------------------------------------
| Equipment Section Styles (Mirip Screenshot)
|--------------------------------------------------------------------------
*/
.equipment-section {
    background-color: var(--white); /* Atau background gradasi/gambar */
    /* background: linear-gradient(to bottom, #eef2f7, var(--white)); */
}

.equipmentSwiper {
    width: 100%;
    padding-top: 1rem; /* Ruang di atas */
    padding-bottom: 3rem; /* Ruang untuk tombol Read More */
}

.equipmentSwiper .swiper-slide {
    width: 30%; /* Coba 3 slide per view, bisa disesuaikan */
    max-width: 350px; /* Lebar maksimum kartu */
}
@media (max-width: 992px) { .equipmentSwiper .swiper-slide { width: 45%; } }
@media (max-width: 768px) { .equipmentSwiper .swiper-slide { width: 80%; } }


.equipment-card {
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin-bottom: 1rem; /* Jarak bawah jika ada navigasi slider */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.equipment-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
}

.equipment-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.equipment-card-content {
    padding: 1rem 1.25rem;
    text-align: center;
}

.equipment-card h4 { /* Menggunakan h4 untuk judul equipment */
    font-size: 1rem;
    font-weight: 600;
    color: var(--primary-color);
    margin: 0;
}
.equipment-card h4 a {
    color: inherit; /* Warna link sama dengan teks */
    text-decoration: none;
}
.equipment-card h4 a:hover {
    text-decoration: underline;
}

/* Tombol Read More di bawah slider */
.equipment-section .text-center {
    margin-top: 1rem; /* Jarak dari slider ke tombol */
}
/*
|--------------------------------------------------------------------------
| Swiper Slider Specific Styles (Project & Equipment)
|--------------------------------------------------------------------------
*/

/* Wrapper untuk Project Slider jika menggunakan Flex Layout Intro+Grid */
.swiper-container-wrapper {
    overflow: hidden; /* Sembunyikan overflow slider */
    position: relative; /* Untuk tombol navigasi absolut */
    padding: 0 40px; /* Ruang untuk tombol navigasi di samping */
    margin: 0 -40px; /* Kompensasi padding */
}
@media (max-width: 768px) {
     .swiper-container-wrapper { padding: 0; margin: 0; } /* Hapus padding di mobile */
}


/* Project Slider */
.projectSwiper {
    width: 100%;
    overflow: visible; /* Biarkan slide sedikit keluar */
}
.projectSwiper .swiper-slide {
    width: 45%; /* Lebar slide (sesuaikan dengan slidesPerView di JS) */
    max-width: 400px; /* Lebar maksimum kartu */
    transition: transform 0.3s ease; /* Efek saat hover */
}
@media (min-width: 1024px) {
    .projectSwiper .swiper-slide { width: 38%; } /* Sesuaikan lebar di desktop */
}
.projectSwiper .swiper-slide:hover {
   transform: scale(1.03); /* Sedikit membesar saat hover */
}


/* Tombol Navigasi Slider Proyek */
.swiper-button-next.project-next,
.swiper-button-prev.project-prev {
    color: var(--primary-color); /* Warna tombol biru */
    background-color: rgba(255, 255, 255, 0.8); /* Latar putih transparan */
    border-radius: 50%;
    width: 40px;
    height: 40px;
    top: 50%; /* Tengah vertikal */
    transform: translateY(-50%);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.swiper-button-next.project-next::after,
.swiper-button-prev.project-prev::after {
    font-size: 1rem; /* Ukuran panah */
    font-weight: bold;
}
.swiper-button-prev.project-prev { left: 0px; } /* Posisi tombol prev */
.swiper-button-next.project-next { right: 0px; } /* Posisi tombol next */

@media (max-width: 768px) { /* Sembunyikan tombol di mobile */
    .swiper-button-next.project-next,
    .swiper-button-prev.project-prev { display: none; }
}


/* Equipment Slider Pagination */
.equipmentSwiper .swiper-pagination {
    position: static; /* Letakkan di bawah slider */
    margin-top: 1.5rem; /* Jarak dari slider */
}
.equipmentSwiper .swiper-pagination-bullet {
    background-color: var(--dark-gray); /* Warna titik */
    opacity: 0.5;
    transition: background-color 0.3s ease, opacity 0.3s ease;
}
.equipmentSwiper .swiper-pagination-bullet-active {
    background-color: var(--primary-color); /* Warna titik aktif */
    opacity: 1;
}

/* Fix lebar ikon kontak footer */
.footer-col address .contact-item i.fa-fw { /* Target ikon Font Awesome yg fixed-width */
     width: 1.25em; /* Sesuaikan lebar agar rata */
     text-align: center;
}
/* Pastikan transisi Swiper benar-benar linear */
/* Pastikan transisi Swiper benar-benar linear */
.partnerSwiper .swiper-wrapper,
.equipmentSwiper .swiper-wrapper { /* << Tambahkan .equipmentSwiper */
    transition-timing-function: linear !important;
}
/*
|--------------------------------------------------------------------------
| CTA Section Styles (v2 - Split Layout GTA Style)
|--------------------------------------------------------------------------
*/
.cta-section-split {
    background-color: #1a2533; /* Warna biru gelap */
    color: var(--white);
    padding: 0; /* Padding diatur oleh container */
}

.cta-split-layout {
    display: flex;
    align-items: center;
    gap: 3rem; /* Jarak antara teks dan gambar */
}

.cta-split-text {
    flex: 1;
    padding: 4rem 0; /* Padding vertikal */
}

.cta-split-text h2 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 2rem;
    position: relative;
    display: inline-block; /* Agar garis bawah sesuai teks */
    padding-bottom: 0.5rem;
}
/* Garis bawah judul CTA */
.cta-split-text h2::after {
     content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 4px;
    background-color: var(--primary-color);
    border-radius: 2px;
}


.cta-split-link {
    display: inline-flex; /* Agar ikon sejajar */
    align-items: center;
    background-color: var(--white);
    color: var(--primary-color);
    padding: 0.8rem 1.8rem;
    border-radius: 5px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}
.cta-split-link i { /* Styling ikon panah */
    margin-left: 0.75rem;
    transition: transform 0.3s ease;
}
.cta-split-link:hover {
    background-color: #e9ecef; /* Sedikit gelap saat hover */
    color: #014a93; /* Biru lebih gelap */
}
.cta-split-link:hover i {
    transform: translateX(5px); /* Gerakkan panah */
}

.cta-split-image {
    flex: 1;
    text-align: right; /* Posisikan gambar ke kanan */
    padding-right: 0; /* Hapus padding kanan default container */
    margin-right: -1rem; /* Biarkan gambar sedikit keluar container */
}

.cta-split-image img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: -10px 10px 30px rgba(0,0,0,0.2); /* Bayangan gambar */
}

/* Responsif CTA Split */
@media (max-width: 992px) {
    .cta-split-layout {
        flex-direction: column-reverse; /* Tumpuk, gambar di atas */
        gap: 2rem;
        text-align: center; /* Teks rata tengah */
    }
     .cta-split-text { padding: 3rem 0; }
     .cta-split-text h2 { display: inline-block; } /* Agar garis bawah tetap */
     .cta-split-text h2::after { left: 50%; transform: translateX(-50%); }
     .cta-split-link { margin: 0 auto; } /* Tombol rata tengah */
     .cta-split-image { text-align: center; margin-right: 0; padding-right: 1rem; }
     .cta-split-image img { max-width: 80%; } /* Kecilkan gambar sedikit */
}

/*
|--------------------------------------------------------------------------
| Equipment Page Enhancements
|--------------------------------------------------------------------------
*/

/* --- Halaman Daftar Equipment (equipment.php) --- */
.equipment-list-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2.5rem;
}
.equipment-list-card {
    background-color: var(--white);
    border: 1px solid var(--medium-gray);
    border-radius: 12px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.equipment-list-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 30px rgba(var(--primary-color-rgb), 0.12);
    border-color: var(--primary-color);
}
.equipment-list-card .service-card-image-wrapper {
    background-color: var(--light-gray); /* Latar belakang jika gambar transparan */
    aspect-ratio: 16 / 10;
    padding: 1rem; /* Beri jarak dari tepi */
    overflow: hidden;
}
.equipment-list-card .service-card-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* PENTING: Gambar tidak akan terpotong */
    transition: transform 0.4s ease;
}
.equipment-list-card:hover .service-card-image-wrapper img {
    transform: scale(1.05);
}
.equipment-list-card .service-card-content {
    /* Perbaikan: Menambahkan flex properties untuk rata tengah */
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center; /* Ini akan meratakan semua item ke tengah */
}

/* --- Halaman Detail Equipment (detail-equipment.php) --- */
.equipment-detail-section {
    background-color: var(--white);
}
.equipment-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr; /* Kolom gambar di kiri, teks di kanan */
    gap: 3rem;
    align-items: flex-start;
}
.equipment-main-image {
    position: sticky; /* Buat gambar "mengikuti" saat scroll */
    top: 120px; /* Jarak dari atas */
}
.equipment-main-image img {
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    background-color: var(--light-gray);
    padding: 1rem;
    border: 1px solid var(--medium-gray);
    width: 100%;
    height: auto;
    aspect-ratio: 4/3;
    object-fit: contain; /* Gambar utama juga tidak terpotong */
}
.equipment-title {
    font-size: 2.2rem;
    color: var(--primary-color);
    margin-bottom: 0.5rem;
}
.equipment-short-desc {
    font-size: 1.1rem;
    color: var(--dark-gray);
    margin-bottom: 2rem;
    font-style: italic;
}

/* Galeri Gambar di Halaman Detail */
.equipment-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 1rem;
}
.equipment-gallery-grid .certification-item a {
    background-color: var(--light-gray);
    padding: 0.5rem;
}
.equipment-gallery-grid .certification-item img {
    height: 120px; /* Samakan tinggi gambar galeri */
    object-fit: contain; /* Pastikan gambar galeri juga tidak terpotong */
}

/* Responsive untuk Halaman Detail */
@media (max-width: 992px) {
    .equipment-detail-grid {
        grid-template-columns: 1fr; /* Tumpuk di tablet */
    }
    .equipment-main-image {
        position: static; /* Hapus sticky di mobile */
    }
}

/*
|--------------------------------------------------------------------------
| Service Page Enhancements
|--------------------------------------------------------------------------
*/

/* --- Halaman Daftar Layanan --- */
.service-list-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.service-list-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 35px rgba(var(--primary-color-rgb), 0.15);
}
.service-list-card .service-card-image-wrapper {
    position: relative;
    overflow: hidden;
}
.service-list-card .service-card-image-wrapper img {
    transition: transform 0.4s ease;
}
.service-list-card:hover .service-card-image-wrapper img {
    transform: scale(1.08);
}
.service-list-card .service-card-icon {
    position: absolute;
    bottom: -28px; /* Posisi awal ikon */
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--primary-color);
    color: var(--white);
    border-radius: 50%;
    width: 56px; /* Ukuran ikon lebih besar */
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 4px solid var(--white);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: bottom 0.3s ease;
}
.service-list-card:hover .service-card-icon {
    bottom: -15px; /* Posisi ikon saat hover */
}
.service-list-card .service-card-icon svg {
    width: 28px;
    height: 28px;
}

/* --- Halaman Detail Layanan --- */
.service-detail-grid {
    grid-template-columns: 1fr 1.5fr; /* Gambar lebih kecil, teks lebih besar */
}

/*
|--------------------------------------------------------------------------
| Footer Interactivity Enhancements
|--------------------------------------------------------------------------
*/
.footer-contact-info .contact-item a {
    color: inherit; /* Ambil warna dari parent (.main-footer) */
    text-decoration: none;
    transition: color 0.3s ease;
}
.footer-contact-info .contact-item:hover a,
.footer-contact-info .contact-item:hover i {
    color: var(--white); /* Buat lebih terang saat di-hover */
}

/*
|--------------------------------------------------------------------------
| Page Specific Styles: Tentang Kami
|--------------------------------------------------------------------------
*/

/* --- Profile Section --- */
.profile-section {
    background-color: var(--white);
}
.profile-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}
.profile-text h2 {
    font-size: 2rem;
    color: var(--primary-color);
    margin-bottom: 1.5rem;
}
.profile-image img {
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    width: 100%;
}

/* --- Vision & Mission Section --- */
.vision-mission-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-top: 4rem;
}
.vision-box, .mission-box {
    padding: 2.5rem;
    border-radius: 12px;
    background-color: var(--white);
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.vision-box:hover, .mission-box:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 35px rgba(var(--primary-color-rgb), 0.15);
}
.vision-box h3, .mission-box h3 {
    font-size: 1.5rem;
    color: var(--primary-color);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--medium-gray);
    display: inline-block;
}
.vision-box .editable-content ul, .mission-box .editable-content ul {
    list-style-type: disc;
}

/* --- Commitment (HSE) Section --- */
.commitment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}
.commitment-text ul {
    list-style-type: '✓ ';
    padding-left: 1.5rem;
}
.commitment-text li {
    padding-left: 0.5rem;
    margin-bottom: 0.75rem;
}
.commitment-gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.commitment-gallery img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}
.commitment-gallery a:hover img {
    transform: scale(1.05);
}

/* --- Certification Section --- */
.certification-group {
    margin-bottom: 4rem;
}
.certification-group:last-child {
    margin-bottom: 0;
}
.group-title {
    text-align: center;
    margin-bottom: 1rem;
}
.group-title h3 {
    font-size: 1.8rem;
}
.group-description {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 2.5rem auto;
    color: var(--dark-gray);
}
.certification-grid {
    display: flex; /* Ubah dari grid ke flex */
    flex-wrap: wrap; /* Izinkan item pindah ke baris baru */
    justify-content: center; /* Ratakan item ke tengah secara horizontal */
    gap: 1.5rem;
}
.certification-item {
    text-align: center;
    flex-basis: 250px; /* Atur lebar dasar setiap item */
    max-width: 280px; /* Batasi lebar maksimum */
    flex-grow: 1; /* Izinkan item untuk membesar jika ada ruang */
}
.certification-item a {
    display: block;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.certification-item img {
    width: 100%;
    height: 350px;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.certification-item a:hover img {
    transform: scale(1.1);
}
.certification-item .caption {
    margin-top: 0.75rem;
    font-size: 0.9rem;
    color: var(--dark-gray);
}
