:root {
    --primary-blue: #0ea5e9;
    --primary-red: #EF4444;
    /* Ganti --bg-light dengan warna metalik pilihanmu */
    --bg-light: #F5F7FA; 
    --text-dark: #1e293b;
}


body {
    font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    color: var(--text-dark);
    /* Fallback color jika gradasi gagal diload */
    background-color: #fbfbfb; 
    /* Efek pantulan cahaya metalik (Gradient Diagonal) */
    background-image: linear-gradient(145deg, #ffffff 0%, #fbfbfb 60%, #f1f3f5 100%);
    overflow-x: hidden;
}

/* 2. Timpa semua elemen dengan class bg-white bawaan Bootstrap */
.bg-white {
    background-color: transparent !important; /* Hapus warna solidnya */
    background-image: linear-gradient(145deg, #ffffff 0%, #fbfbfb 100%) !important;
}


/* 3. Beri pantulan cahaya pada Card agar makin mirip metal */
.card {
    background-image: linear-gradient(145deg, #ffffff 0%, #fbfbfb 100%) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}

/* Loading Animation */
#loader {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: white; z-index: 9999;
    display: flex; justify-content: center; align-items: center;
    transition: opacity 0.5s ease;
}
.spinner {
    width: 50px; height: 50px;
    border: 5px solid var(--bg-light);
    border-top: 5px solid var(--primary-blue);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Efek 3D pada Navbar */
.navbar {
    transition: all 0.3s ease;
}

/* Membuat tulisan Kembar Jaya terlihat menonjol */
.navbar-brand span {
    color: #ffffff !important; /* Paksa warna putih */
    font-size: 1.2rem;
}

/* Memperbaiki Nav Link agar tidak kalah dengan background */
.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.9) !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
    padding: 0.5rem 1rem;
}

/* Efek saat menu di-hover */
.navbar-dark .navbar-nav .nav-link:hover {
    color: #ffffff !important;
    transform: translateY(-1px); /* Sedikit naik saat di-hover untuk efek 3D */
}

/* Styling khusus untuk tombol mobile agar tetap terlihat */
.navbar-toggler {
    border: none;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}


/* Efek Menu Aktif & Hover Premium */
.navbar-dark .navbar-nav .nav-link {
    position: relative;
    color: rgba(255, 255, 255, 0.8) !important;
    transition: all 0.3s ease;
}

/* Warna saat Hover & Aktif jadi Kuning Emas */
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active {
    color: #F8B449 !important; /* Warna kuning emas tombol WA kamu */
}

/* Membuat garis bawah dinamis */
.navbar-dark .navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 50%;
    background-color: #F8B449;
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

/* Garis muncul saat Hover */
.navbar-dark .navbar-nav .nav-link:hover::after {
    width: 70%;
}

/* Garis tetap muncul dan lebih lebar saat Aktif */
.navbar-dark .navbar-nav .nav-link.active::after {
    width: 80%;
}


/* --- OPTIMALISASI TABEL LAYANAN DI MOBILE --- */
@media (max-width: 767.98px) {
    /* 1. Perkecil ukuran font tapi tetap batas aman (terbaca) */
    .table td, .table th {
        font-size: 0.85rem !important; 
        padding: 10px 4px !important; /* Kurangi jarak kiri-kanan */
        vertical-align: middle;
    }

    /* 2. Kolom Harga jangan sampai patah ke bawah (turun baris) */
    .table td:nth-child(3) {
        white-space: nowrap; 
        font-size: 0.85rem !important;
    }

    /* 3. Tombol Booking dibikin lebih mini */
    .table .btn-order-custom {
        padding: 6px 10px !important;
        font-size: 0.8rem !important;
    }

    /* 4. TRIK RAHASIA: Sembunyikan teks "Order" di HP, sisakan Icon panah/WA saja */
    .table .btn-order-custom .text-order {
        display: none; 
    }
}





/* Hero Section */
.hero-section {
    background: linear-gradient(135deg, rgba(13,110,253,0.9) 0%, rgba(0,43,115,0.9) 100%), url('../images/hero-bg.jpg') center/cover;
    color: white; padding: 120px 0; min-height: 80vh; display: flex; align-items: center;
}
.btn-cta {
    background-color: var(--primary-red); color: white; padding: 12px 30px; border-radius: 50px; font-weight: bold; transition: all 0.3s; border: none;
}
.btn-cta:hover { background-color: #b02a37; color: white; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(220,53,69,0.3); }

/* Cards & Hover Effects */
.service-card {
    border: none; border-radius: 15px; transition: all 0.4s ease; background: white; box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}
.service-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(13,110,253,0.15); }
.icon-box { width: 60px; height: 60px; background: rgba(13,110,253,0.1); color: var(--primary-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; margin-bottom: 20px; }

/* GAYA UNTUK TOMBOL WHATSAPP (Asumsi bawaan kamu, pastikan bottom-nya di angka ini) */
.float-wa {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 30px; /* Jarak dari bawah */
    right: 30px;  /* Jarak dari kanan */
    background-color: #25d366;
    color: #FFF;
    border-radius: 50px;
    text-align: center;
    font-size: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
}

.float-wa:hover {
    background-color: #1ebe57;
    transform: scale(1.1);
    color: #fff;
}

/* GAYA UNTUK TOMBOL TELEPON BARU */
.float-call {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 100px; /* Jaraknya ditambah (30px + tinggi tombol WA 60px + jeda 10px) */
    right: 30px;   /* Harus sejajar sama WA */
    background-color: #0ea5e9; /* Warna biru profesional */
    color: #FFF;
    border-radius: 50px;
    text-align: center;
    font-size: 25px; /* Sedikit lebih kecil dari icon WA biar pas */
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
}

.float-call:hover {
    background-color: #0284c7;
    transform: scale(1.1);
    color: #fff;
}

/* Modifikasi Jarak untuk HP biar nggak mentok banget layar */
@media (max-width: 767.98px) {
    .float-wa { bottom: 20px; right: 20px; width: 55px; height: 55px; font-size: 28px; }
    .float-call { bottom: 85px; right: 20px; width: 55px; height: 55px; font-size: 22px; }
}

.testi-card {
        border-radius: 1.2rem;
        overflow: hidden;
        position: relative;
        /* Bingkai putih tipis biar elegan seperti frame foto */
        border: 4px solid #ffffff; 
        /* Outer Shadow: Bayangan luar yang lebih tegas biar melayang */
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15); 
        background-color: #fff;
        transition: all 0.4s ease;
    }
    
    /* Inner Shadow (Vignette): Bayangan gelap di tepi dalam gambar */
    .testi-card::after {
        content: '';
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        box-shadow: inset 0 0 35px rgba(0, 0, 0, 0.4); 
        border-radius: 0.9rem; /* Mengikuti lengkungan sudut dalam */
        pointer-events: none; /* Biar overlay ini gak menghalangi kursor */
        z-index: 1;
    }

    .img-testi {
        width: 100%;
        /* Paksa rasio 3:4 (Portrait) */
        aspect-ratio: 3/4; 
        object-fit: cover; 
        transition: transform 0.6s ease;
    }
    
    /* Efek saat card disentuh (Hover) */
    .testi-card:hover {
        transform: translateY(-8px); /* Card naik dikit */
        box-shadow: 0 25px 45px rgba(0, 0, 0, 0.25); /* Shadow luar makin pekat & lebar */
    }
    
    .testi-card:hover .img-testi {
        transform: scale(1.08); /* Gambar nge-zoom */
    }

    .testi-overlay {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        background: linear-gradient(to top, rgba(0,31,43,0.95), transparent);
        padding: 30px 20px 20px 20px; 
        color: white;
        opacity: 0; 
        transition: opacity 0.3s ease;
        z-index: 2; /* Harus di atas Inner Shadow */
    }
    
    @media (min-width: 992px) {
        .testi-card:hover .testi-overlay {
            opacity: 1;
        }
    }
    @media (max-width: 991.98px) {
        .testi-overlay {
            opacity: 1;
            padding: 30px 15px 15px 15px;
        }
    }