/* Konfigurasi Font & Warna Utama */
:root {
    --primary-color: #d47a35; /* Oranye sesuai gambar */
    --primary-hover: #b86526;
    --light-orange: #fdf2e9;
    --bg-light-gray: #fbfbfb;
    --bg-secondary-light: #e9ecef; /* Warna abu terang */
    --footer-bg: #f4ece4;
}

body {
    font-family: 'Plus Jakarta Sans', 'Segoe UI', Tahoma, sans-serif;
    background-color: var(--bg-light-gray);
    color: #333;
}

.navbar {
  position: sticky;
  top: 0;
  z-index: 1000;
}

.hero-image {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
    border-radius: 1.5rem;
}

/* Tipografi & Warna Custom */
.text-custom-primary { color: var(--primary-color) !important; }
.bg-custom-primary { background-color: var(--primary-color) !important; }
.bg-light-orange { background-color: var(--light-orange) !important; }
.bg-light-gray { background-color: var(--bg-light-gray) !important; }
.bg-tertiary { background-color: #f2f2f2 !important; }
.bg-secondary-light { background-color: var(--bg-secondary-light) !important; }
.bg-dark-orange { background-color: #a8581d !important; }
.footer-bg { background-color: var(--footer-bg) !important; }

.fw-extrabold { font-weight: 800; }
.letter-spacing-1 { letter-spacing: 1px; }
.line-height-tight { line-height: 1.1; }
.text-sm { font-size: 0.85rem; }

/* Buttons */
.btn-custom-primary {
    background-color: var(--primary-color) !important;
    color: #ffffff !important;
    border: none;
    transition: all 0.3s;
}
.btn-custom-primary:hover {
    background-color: var(--primary-hover) !important;
    color: #ffffff !important;
}
.icon-btn {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #f0f0f0;
}

/* Badge & Icons */
.organic-badge { bottom: -30px; left: -30px; min-width: 240px; z-index: 2; }
.icon-box { width: 45px; height: 45px; }
.icon-box-large { width: 60px; height: 60px; }
.cart-badge { font-size: 0.6rem; padding: 0.25em 0.5em; }

/* Ukuran Gambar */
.image-container-unggulan { height: 220px; width: 100%; }
.image-container-catalog { height: 240px; width: 100%; }
.about-img-small {
    height: 180px;
    width: 100%;
    object-fit: cover;
}

.about-img-large {
    height: 375px;
    width: 100%;
    object-fit: cover;
}

/* Misc */
.font-script {
    font-family: 'Brush Script MT', 'Comic Sans MS', cursive;
    font-size: 2.5rem;
    line-height: 1;
    transform: rotate(-5deg);
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}
.mt-n5 { margin-top: -3rem !important; }
.progress { background-color: #f1f1f1; border-radius: 4px; overflow: hidden; }

.card {
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.1) !important;
}

.payment-card {
    border: 2px solid transparent;
    background-color: #f8f9fa;
    transition: all 0.2s;
    cursor: pointer;
}
.btn-check:checked + .payment-card {
    border-color: var(--primary-color);
    background-color: #fff;
}
.btn-check:checked + .payment-card .check-icon {
    display: block !important;
    color: var(--primary-color);
}

.hover-shadow { transition: all 0.3s; } 
.hover-shadow:hover { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075); }

input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}
input[type="password"]::-webkit-contacts-auto-fill-button,
input[type="password"]::-webkit-credentials-auto-fill-button {
    visibility: hidden;
    display: none !important;
    pointer-events: none;
}

@media (max-width: 768px) {
    html {
        font-size: 85%; 
    }
    
    .p-4, .p-md-5, .p-5 {
        padding: 1.25rem !important;
    }
    
    .mb-4, .mb-5 {
        margin-bottom: 1.5rem !important;
    }
    
    img {
        max-width: 100%;
        height: auto;
    }

    .hero-image {
        max-height: 280px;
    }

    .about-img-small {
        height: 140px;
    }

    .about-img-large {
        height: 290px;
    }
}