/* Custom CSS untuk mempercantik tampilan dan menambahkan animasi */

/* --- Umum --- */
body {
    font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; /* Contoh font */
    color: #333;
    line-height: 1.6;
    background-color: #f8f8f8;
    opacity: 0; /* Untuk efek fade-in awal */
    transition: opacity 0.5s ease-in-out;
}

body.loaded {
    opacity: 1;
}

.uk-section {
    padding: 30px 0;
}

.uk-section-large {
    padding: 100px 0; /* Lebih besar untuk hero section */
}

.uk-container {
    max-width: 1200px; /* Lebar maksimum konten */
}

a {
    text-decoration: none;
    transition: color 0.3s ease-in-out;
}

/* --- Navbar --- */
.uk-navbar-container {
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.uk-navbar-transparent {
    background-color: rgba(255, 255, 255, 0.95); /* Sedikit transparan */
}

.uk-section-secondary {
    background-color: rgba(80, 80, 80, 0.95);
}

.uk-navbar-item.uk-logo {
    font-weight: bold;
    font-size: 1.8rem;
    color: #007bff; /* Warna logo */
    transition: color 0.3s ease;
}
.uk-navbar-item.uk-logo:hover {
    color: #0056b3;
}
.uk-navbar-item.uk-logo span {
    color: #333; /* Warna ikon dalam logo */
}

.uk-navbar-nav > li > a {
    font-weight: 500;
    text-transform: capitalize; /* Hilangkan uppercase default UIkit */
    color: #555;
    transition: color 0.3s ease, background-color 0.3s ease;
}

.uk-navbar-nav > li > a:hover,
.uk-navbar-nav > li.uk-active > a {
    color: #007bff;
    border-radius: 5px;
}

.uk-navbar-toggle {
    color: #333;
}
.uk-navbar-toggle:hover {
    color: #007bff;
}

/* --- Hero Section (Homepage) --- */
.hero-section {
    background-color: #007bff; /* Warna utama */
    background-image: linear-gradient(135deg, #007bff 0%, #0056b3 100%); /* Gradient */
    color: white;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1);
    position: relative;
    overflow: hidden; /* Untuk efek partikel atau overlay jika ada */
}

.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('data:image/svg+xml,%3Csvg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="%23ffffff" fill-opacity="0.05" fill-rule="evenodd"%3E%3Ccircle cx="30" cy="30" r="30"%3E%3C/circle%3E%3C/g%3E%3C/svg%3E'); /* Pola latar belakang ringan */
    background-repeat: repeat;
    opacity: 0.1;
}

.uk-heading-hero {
    font-size: 4rem;
    font-weight: 700;
    margin-bottom: 20px;
}
@media (max-width: 960px) {
    .uk-heading-hero {
        font-size: 3rem;
    }
}
@media (max-width: 640px) {
    .uk-heading-hero {
        font-size: 1.8rem;
    }
    .hero-section {
        padding: 1rem 1rem;
    }
}

.uk-text-lead {
    font-size: 1.5rem;
    font-weight: 300;
    margin-bottom: 30px;
}
@media (max-width: 640px) {
    .uk-text-lead {
        font-size: 1.2rem;
    }
}

/* --- Buttons --- */
.uk-button {
    border-radius: 25px; /* Tombol lebih bulat */
    font-weight: 500;
    text-transform: capitalize;
    padding: 3px 30px;
    transition: all 0.3s ease;
}

.uk-button-primary {
    background-color: #007bff;
    color: white;
    border: 1px solid #007bff;
}
.uk-button-primary:hover {
    background-color: #0056b3;
    border-color: #0056b3;
    box-shadow: 0 5px 15px rgba(0, 123, 255, 0.3);
}

.uk-button-secondary {
    background-color: #6c757d;
    color: white;
    border: 1px solid #6c757d;
}
.uk-button-secondary:hover {
    background-color: #5a6268;
    border-color: #5a6268;
    box-shadow: 0 5px 15px rgba(108, 117, 125, 0.3);
}

.uk-button-default {
    background-color: white;
    color: #007bff;
    border: 1px solid #007bff;
}
.uk-button-default:hover {
    background-color: #e6f2ff;
    color: #0056b3;
    border-color: #0056b3;
}

/* Tombol untuk admin (danger) */
.uk-button-danger {
    background-color: #dc3545;
    color: white;
    border: 1px solid #dc3545;
}
.uk-button-danger:hover {
    background-color: #c82333;
    border-color: #bd2130;
    box-shadow: 0 5px 15px rgba(220, 53, 69, 0.3);
}

/* --- Cards (Layanan, Proyek, Tools) --- */
.uk-card-default {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}

.uk-card-hover:hover {
    transform: translateY(-8px); /* Efek melayang */
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

.uk-card-body {
    padding: 30px;
}

.uk-card-title {
    font-weight: 600;
    margin-bottom: 15px;
}

.uk-card .uk-icon {
    color: #007bff; /* Warna ikon di dalam kartu */
}

/* --- Project Cards --- */
.uk-card-media-top {
    overflow: hidden;
}
.uk-card-media-top img {
    object-fit: cover;
    width: 100%;
    height: 100%; /* Pastikan mengisi cover container */
    transition: transform 0.4s ease-out;
}
.uk-card-hover:hover .uk-card-media-top img {
    transform: scale(1.08); /* Efek zoom saat hover */
}

.uk-label-success {
    background-color: #28a745; /* Hijau */
    color: white;
    font-size: 0.75rem;
    padding: 5px 10px;
    border-radius: 3px;
    margin-right: 5px;
    margin-bottom: 5px;
    display: inline-block;
}

.uk-card-footer {
    padding-top: 20px;
    border-top: 1px solid #eee;
    background-color: #fcfcfc;
}

.uk-card-footer a.uk-button-text {
    color: #007bff;
    font-weight: 500;
}
.uk-card-footer a.uk-button-text:hover {
    color: #0056b3;
    text-decoration: underline;
}

/* --- Forms --- */
.uk-form-stacked .uk-form-label {
    font-weight: 600;
    color: #555;
    margin-bottom: 8px;
}

.uk-input,
.uk-textarea {
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px 15px;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.uk-input:focus,
.uk-textarea:focus {
    border-color: #007bff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    outline: none;
}

/* File input styling */
[uk-form-custom] > input[type="text"] {
    cursor: pointer;
}


/* --- List Styles (About, Tools, Contact) --- */
.uk-list-bullet li,
.uk-list-disc li {
    margin-bottom: 10px;
    line-height: 1.5;
}

.uk-list-bullet li::before {
    content: "\2022"; /* Custom bullet */
    color: #007bff;
    font-weight: bold;
    display: inline-block;
    width: 1em;
    margin-left: -1em;
}

.uk-list-large li {
    font-size: 1.1rem;
}

.uk-list-divider > li:not(:first-child) {
    padding-top: 15px;
    border-top: 1px solid #eee;
}


/* --- Footer --- */
footer {
    padding: 40px 0;
    background-color: #333;
    color: white;
}

footer .uk-subnav a {
    color: #bbb;
    transition: color 0.3s ease;
}

footer .uk-subnav a:hover {
    color: white;
}

footer .uk-subnav a [uk-icon] {
    width: 25px;
    height: 25px;
}

footer p {
    color: #aaa;
    font-size: 0.9em;
    margin-top: 20px;
}

/* --- Admin Specifics --- */
.uk-table {
    border-collapse: collapse;
    width: 100%;
}
.uk-table th {
    background-color: #e9ecef;
    color: #495057;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.9em;
    padding: 12px 15px;
    text-align: left;
    border-bottom: 2px solid #dee2e6;
}
.uk-table td {
    padding: 10px 15px;
    vertical-align: middle;
    border-bottom: 1px solid #dee2e6;
}
.uk-table-striped tbody tr:nth-of-type(odd) {
    background-color: #f8f9fa;
}
.uk-table-hover tbody tr:hover {
    background-color: #f2f2f2;
}
.uk-overflow-auto {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    overflow-x: auto; /* Untuk tabel responsif */
}
@media (max-width: 640px) {
    .uk-overflow-auto table {
        min-width: 600px; /* Minimal lebar tabel pada mobile */
    }
}


/* --- Animasi Dasar (gunakan dengan kelas di HTML) --- */

/* Fade In */
.animate-fade-in {
    opacity: 0;
    animation: fadeIn 0.8s ease-out forwards;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Fade In Up */
.animate-fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.8s ease-out forwards;
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Slide In Left */
.animate-slide-in-left {
    opacity: 0;
    transform: translateX(-50px);
    animation: slideInLeft 0.8s ease-out forwards;
}

@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-50px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Slide In Right */
.animate-slide-in-right {
    opacity: 0;
    transform: translateX(50px);
    animation: slideInRight 0.8s ease-out forwards;
}

@keyframes slideInRight {
    from { opacity: 0; transform: translateX(50px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Scale Up (untuk hover button/card) */
.scale-up {
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.scale-up:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
}

/* Delay Animasi (gunakan pada elemen yang ingin di-delay) */
.delay-0-1s { animation-delay: 0.1s; }
.delay-0-2s { animation-delay: 0.2s; }
.delay-0-3s { animation-delay: 0.3s; }
.delay-0-4s { animation-delay: 0.4s; }
.delay-0-5s { animation-delay: 0.5s; }
.delay-0-6s { animation-delay: 0.6s; }

/* Tambahan: Pastikan animasi tidak langsung aktif saat loading (akan dihandle oleh JS) */
.animate-fade-in, .animate-fade-in-up, .animate-slide-in-left, .animate-slide-in-right {
    animation-play-state: paused;
}
.animated { /* Class yang akan ditambahkan oleh JS */
    animation-play-state: running;
}