:root { --color-primary: #7D4F31; --color-secondary: #e7dfb9; --color-bg-dark: #B8860B; --color-bg-primary: #ffd400; --color-bg-secondary: #fffbe9; --color-bg-calm: #f1e8d0; --color-bg-white: #fff; --color-dark: #101010; --color-light: #555; }
body { font-family: 'Poppins', 'Segoe UI', sans-serif; margin: 0; background-color: #f8f9fa; color: #343a40; padding-top: 75px; }
a { text-decoration: none; color: var(--color-primary); } a:hover { text-decoration:; color: var(--color-bg-dark); }
.container { width: 90%; max-width: 1200px; margin: 0 auto; }

/* =================================
   2. HEADER & NAVIGASI (VERSI SIMPEL)
   ================================= */
/* HEADER (NAVBAR) */
.navbar { background-color: #fff; padding: 15px 0; position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.navbar-container { display: flex; justify-content: space-between; align-items: center; }
.navbar-brand { font-size: 1.6em; font-weight: 700; color: #007bff; text-decoration: none; display: flex; align-items: center; }
.navbar-logo-image { max-height: 38px; width: auto; }

/* Navigasi Desktop */
.navbar-nav-desktop { display: flex; gap: 30px; }
.navbar-nav-desktop a { text-decoration: none; color: var(--color-dark); font-weight: 500; transition: color 0.2s ease; }
.navbar-nav-desktop a:hover { }

/* Tombol Aksi Desktop */
.navbar-actions-desktop { display: flex; gap: 10px; }
.btn { padding: 8px 20px; border-radius: 50px; font-weight: 500; text-decoration: none; transition: all 0.2s ease; border: 2px solid transparent; }
.btn-primary { background-color: #007bff; color: #fff; border-color: #007bff; }
.btn-outline { border-color: #007bff; color: #007bff; }
.btn:hover { opacity: 0.8; }

/* Tombol Hamburger & Menu Mobile */
.navbar-toggler { display: none; }
.mobile-nav { position: fixed; top: 50px; left: 0; width: 100%; background-color: #fff; max-height: 0; overflow: hidden; transition: max-height 0.4s ease-out; z-index: 1000; box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.mobile-nav.open { max-height: 500px; }
.mobile-nav a { display: block; padding: 15px 5%; text-decoration: none; color: #333; font-weight: 500; border-bottom: 1px solid #f0f0f0; }
.mobile-nav hr { display: none; }

/* =================================
   3. FITUR PENCARIAN (VERSI SIMPEL)
   ================================= */
.search-section { padding: 40px 0; background-color: #f1e8d0; text-align: center; position: sticky; top: 60px; z-index: 999; box-shadow: 0 4px 6px rgba(0,0,0,0.05); }
.search-section h3 { margin-top: 0; margin-bottom: 20px; font-weight:400; }
.search-box-container { max-width: 600px; margin: 0 auto; position: relative; }
.search-box-container .search-input { width: 100%; height: 50px; border-radius: 50px; border: 1px solid var(--color-bg-dark); padding: 0 60px 0 20px; box-sizing: border-box; font-size: 1em; }
.search-box-container .search-button { position: absolute; right: 5px; top: 5px; bottom: 5px; width: 100px; border: none; background-color: #7d4f31; color: white; border-radius: 50px; cursor: pointer; font-size: 1em; font-weight: bold; }

.btn { padding: 8px 20px; border-radius: 50px; font-weight: 400; text-decoration: none; transition: all 0.3s ease; border: 2px solid transparent; }
.btn-primary { background-color: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.btn-outline { border-color: var(--color-primary); color: var(--color-primary); }
.btn-outline:hover { color: red; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); color: var(--color-bg-calm); }

/* Fitur Pencarian */
.search-container { display: flex; align-items: center; }
.search-form { width: 0; opacity: 0; visibility: hidden; transition: width 0.3s ease, opacity 0.2s; }
.search-input { height: 38px; border: 2px solid var(--color-primary); border-radius: 20px; padding: 0 15px; width: 100%; box-sizing: border-box; }
.search-toggle { background: none; border: none; font-size: 1.2em; cursor: pointer; color: var(--color-primary); padding: 0 10px; }
.search-container.active .search-form { width: 200px; opacity: 1; visibility: visible; }

/* =================================
   3. KONTEN UTAMA HALAMAN
   ================================= */

/* Hero Section */
.hero { background: var(--color-bg-calm); color: var(--color-bg-calm); text-align: center; padding: 100px 20px; }
.hero h1 { font-size: 3em; color: var(--color-bg-primary); max-width: 600px; margin: 1rem auto; }
.hero p { font-size: 1.2em; max-width: 700px; margin: 0 auto; }

/* Section Umum */
.content-section { padding: 60px 0; }
.content-section h2 { text-align: center; margin-bottom: 50px; }

/* Section Info Dinamis (Kiri-Kanan) */
.info-section { padding: 60px 0; background-color: #f8f9fa; }
.info-section:nth-of-type(odd) { background-color: #fff; }
.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.layout-gambar-kiri .info-image { grid-area: 1 / 1 / 2 / 2; }
.layout-gambar-kiri .info-text { grid-area: 1 / 2 / 2 / 3; }
.layout-gambar-kanan .info-image { grid-area: 1 / 2 / 2 / 3; }
.layout-gambar-kanan .info-text { grid-area: 1 / 1 / 2 / 2; }
.info-image img { width: 100%; height: 500px; object-fit: cover; border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); }
.info-text h2 { font-size: 2.2em; margin-top: 0; text-align: left; color: var(--color-primary); font-weight: 600; }
.info-text h2::after { margin: 10px 0 0; }

/* Bar Kategori */
.kategori-bar { font-size: .895rem; display: flex; flex-wrap: nowrap; gap: 10px; padding-bottom: 20px; margin-bottom: 30px; border-bottom: 1px solid var(--color-bg-calm); overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kategori-bar::-webkit-scrollbar { display: none; }
.kategori-bar { -ms-overflow-style: none; scrollbar-width: none; }
.kategori-bar a { display: inline-block; padding: 10px 20px; text-decoration: none; border: 1px solid var(--color-bg-calm); border-radius: 50px; white-space: nowrap; transition: all 0.2s ease; font-weight: 500; }
.kategori-bar a:hover { border: 1px solid var(--color-bg-dark); }
.kategori-bar a.active { border: 1px solid var(--color-primary); }

/* Grid Produk */
.produk-grid-publik { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 30px; }
.produk-card-publik { background-color: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.08); transition: all 0.3s ease; display: flex; flex-direction: column; }
.produk-card-publik:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.12); }
.produk-card-publik img { width: 100%; height: 220px; object-fit: cover; }
.produk-card-publik .card-body { padding: 20px; display: flex; flex-direction: column; flex-grow: 1; }
.produk-card-publik h3 { margin: 0 0 10px 0; font-size: 1em; height: max-content; overflow: hidden; font-weight: 600; color: var(--color-dark); }
.produk-card-publik .harga { font-size: 1.3em; font-weight: 600; margin: 0; margin: 5px 0; padding: 5px 0; border-top: 1px solid var(--color-bg-calm); border-bottom: 1px solid var(--color-bg-calm); }
.card-link-title { text-decoration: none; flex-grow: 1; color: var(--color-dark); }
.no-produk { grid-column: 1 / -1; text-align: center; font-size: 1.2em; padding: 40px 0; }
.toko-info-footer { padding-top: 10px; margin-top: auto; }
.toko-info-footer .toko-link { display: flex; align-items: center; text-decoration: none; transition: color 0.2s; }
.toko-info-footer .toko-link:hover { }
.toko-info-footer .logo-toko-kecil { width: 24px; height: 24px; border-radius: 50%; margin-right: 8px; object-fit: cover; background: var(--color-bg-dark); padding: 5px; }

/* Paginasi */
.paginasi-container { display: flex; justify-content: center; margin-top: 50px; }
.paginasi { display: flex; list-style-type: none; padding: 0; margin: 0; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.paginasi .page-item { }
.paginasi .page-link { display: block; padding: 12px 18px; text-decoration: none; color: #ffd400; background-color: #fff; border: 1px solid #dee2e6; border-left: none; transition: background-color 0.2s; }
.paginasi .page-item:first-child .page-link { border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-left: 1px solid #dee2e6; }
.paginasi .page-item:last-child .page-link { border-top-right-radius: 5px; border-bottom-right-radius: 5px; }
.paginasi .page-item:hover .page-link { background-color: #e9ecef; }
.paginasi .page-item.active .page-link { background-color: #ffd400; color: #fff; border-color: #ffd400; z-index: 2; position: relative; }

/* Testimoni Section */
.testimoni-section { padding: 60px 0; background-color: #fff; }
.testimoni-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; }
.testimoni-card { background: #f8f9fa; padding: 30px; border-radius: 10px; border-left: 5px solid var(--color-bg-dark); }
.testimoni-card .isi-testi { font-style: italic; color: #555; margin-top: 0; margin-bottom: 25px; position: relative; }
.testimoni-card .isi-testi::before { content: '\201C'; font-family: 'Playfair Display', serif; font-size: 4em; color: #007bff20; position: absolute; top: -20px; left: -20px; }
.pemberi-info { display: flex; align-items: center; }
.pemberi-info img { width: 50px; height: 50px; border-radius: 50%; margin-right: 15px; object-fit: cover; }
.pemberi-info div { display: flex; flex-direction: column; }
.pemberi-info strong { font-weight: 600; }
.pemberi-info span { font-size: 0.9em; color: #777; }

/* Partner Section */
.partner-section { padding: 40px 0; background-color: #e9ecef; }
.partner-title { text-align: center; color: #6c757d; font-weight: 500; margin-bottom: 30px; }
.partner-logos { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 40px; }
.partner-logos img { max-height: 150px; max-width: 150px; filter: grayscale(100%); opacity: 0.7; transition: all 0.3s ease; }
.partner-logos a:hover img, .partner-logos img:hover { filter: grayscale(0%); opacity: 1; transform: scale(1.1); }

/* =================================
   4. FOOTER
   ================================= */
.footer { background-color: var(--color-bg-calm); text-align: center; padding: 30px 0; margin-top: 40px; font-size: 1rem; }
.footer-links { margin-bottom: 15px; }
.footer-links a { text-decoration: none; margin: 0 10px; transition: color 0.2s; }
.footer-links a:hover { }

/* =================================
   5. RESPONSIVE DESIGN (MEDIA QUERIES)
   ================================= */
@media (max-width: 992px) { .navbar-nav-desktop, .navbar-actions-desktop { display: none; } .navbar-toggler { display: block; background: none; border: none; font-size: 1.5em; cursor: pointer; color: var(--color-primary);}} 
@media (max-width: 768px) { body { padding-top: 5px; font-size: 100%; } .navbar-logo-image { max-height: 30px; } .navbar { padding: 10px 0; } .search-section { top: 40px; } /* Perilaku Search Bar di Mobile Saat Aktif */ .search-container.active .search-form { width: calc(100vw - 40px); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1002; } /* Sembunyikan semuanya KECUALI container pencarian */ .navbar.search-active .navbar-brand, .navbar.search-active .navbar-toggler, .navbar.search-active .navbar-actions { display: none; } /* Pastikan container pencarian mengambil semua ruang */ .navbar.search-active .navbar-right { flex-grow: 1; } .navbar.search-active .search-container { width: 100%; position: static; } /* Animasi fade-in */ @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } /* Penyesuaian layout lain untuk mobile */ .hero h1 { font-size: 2.2em; } .content-section h2 { font-size: 2em; } .info-grid { grid-template-columns: 1fr; } .layout-gambar-kiri .info-image, .layout-gambar-kanan .info-image { grid-area: 1 / 1 / 2 / 2; } .layout-gambar-kiri .info-text, .layout-gambar-kanan .info-text { grid-area: 2 / 1 / 3 / 2; text-align: center; } .info-text h2 { text-align: center; } .info-text h2::after { margin: 10px auto 0; } }
