
/* -- Container utama navbar: transparan dengan blur dan shadow -- */
.custom-navbar {
  background-color: rgba(0, 0, 0, 0.65);  /* Warna hitam transparan */
  backdrop-filter: blur(8px);            /* Efek blur di belakang navbar */
  font-weight: 500;                      /* Semi-bold text */
  font-size: 0.95rem;                    /* Ukuran font navbar */
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  z-index: 1030;                         /* Supaya navbar selalu di atas */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);  /* Bayangan lembut */
  transition: background-color 0.3s ease;   /* Animasi smooth saat berubah */
}

/* -- Link dalam navbar: putih dan besar spasi -- */
.custom-navbar .nav-link {
  color: #ffffff !important;            /* Warna putih */
  padding: 0.5rem 1.5rem;               /* Jarak atas-bawah dan kiri-kanan */
  letter-spacing: 0.3px;                /* Spasi antar huruf */
  transition: color 0.2s ease-in-out;   /* Efek hover lembut */
}

/* -- Efek hover pada link navbar -- */
.custom-navbar .nav-link:hover {
  color: #11c56b !important;            /* Warna hijau saat dihover */
}

/* -- Jarak antar menu navbar (horizontal spacing antar <li>) -- */
.custom-navbar .navbar-nav {
  gap: 0.3rem;
}

/* -- Logo dalam navbar: ukuran tinggi dikunci supaya sejajar dengan menu -- */
.navbar-brand img {
  height: 42px;                         /* Tinggi logo */
  max-height: 100%;                     /* Tidak melebihi batas */
}

/* -- Responsif untuk layar kecil (mobile) -- */
@media (max-width: 576px) {
  .custom-navbar {
    font-size: 0.88rem;                 /* Font lebih kecil di mobile */
    padding: 0.3rem 1rem;               /* Padding lebih ramping */
  }
}

/* == HERO SECTION STYLE == */

.hero-banner {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-align: center;
}

.hero-banner .overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.4);
  z-index: 1;
}

.hero-banner .container {
  position: relative;
  z-index: 2;
  transform: translateY(15px);
}

.hero-banner h1 {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 0.5rem;
}

.hero-banner p {
  font-size: 1.2rem;
  color: #e0e0e0;
}

/* Responsive tweaks */
@media (max-width: 576px) {
  .hero-banner {
    height: 260px;
  }

  .hero-banner h1 {
    font-size: 1.5rem;
  }

  .hero-banner p {
    font-size: 0.9rem;
  }
}

/* ================================
   KATEGORI GRID SECTION

/* -- Container utama section kategori -- */
.kategori-section {
  background-color: #ffffff; /* Warna latar belakang abu muda */
  padding: 50px 0 10px 0;           /* Spasi atas dan bawah */
}

/* -- Judul section kategori -- */
.kategori-section h2 {
  font-size: 2rem;
  font-weight: 700;
  color: #222;
  margin-bottom: 0.5rem;
}

.kategori-section p {
  font-size: 1rem;
  color: #666;
}


/* -- Kartu kategori (box kecil di grid) -- */
.category-link-box {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  transition: all 0.3s ease;
  height: 100%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.04); /* Bayangan halus */
}

/* -- Efek saat hover box kategori -- */
.category-link-box:hover {
  background-color: #f0fff8;
  border-color: #11c56b;
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.06); /* Bayangan lebih dalam */
}

/* -- Nama kategori di dalam box -- */
.category-name {
  font-size: 1rem;
  font-weight: 600;
  color: #333;
  transition: color 0.3s ease;
  margin: 0;
}

/* -- Warna teks berubah saat hover -- */
.category-link-box:hover .category-name {
  color: #11c56b;
}

/* -- Responsive tweak: font lebih kecil di mobile -- */
@media (max-width: 576px) {
  .kategori-section h2 {
    font-size: 1.5rem;
  }
  .kategori-section p {
    font-size: 0.95rem;
  }
  .category-link-box {
    padding: 16px;
  }
}
/* === SEARCH BAR FULL-WIDTH MODERN === */
.search-bar {
  margin-bottom: 2rem;
}

.search-bar .input-group {
  width: 100%;
  max-width: 100%; /* Full-width ke container */
  border: 1px solid #11c56b;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

/* Ikon kiri */
.search-bar .input-group-text {
  background-color: #fff;
  color: #11c56b;
  border: none;
  font-size: 1.1rem;
  padding-left: 1.2rem;
  padding-right: 1rem;
  border-right: 1px solid #e0e0e0;
}

/* Input text */
.search-bar .form-control {
  border: none;
  padding: 0.75rem 1.2rem;
  font-size: 1rem;
  color: #333;
}

/* Fokus */
.search-bar .form-control:focus {
  outline: none;
  box-shadow: none;
}

/* Responsive tweak */
@media (max-width: 576px) {
  .search-bar .form-control {
    font-size: 0.95rem;
    padding: 0.6rem 1rem;
  }
  .search-bar .input-group-text {
    font-size: 1rem;
    padding-left: 1rem;
    padding-right: 0.9rem;
  }
}

.product-card {
  background-color: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
}

.product-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: 16px 16px 0 0; /* hanya atas yang rounded */
  display: block;
}

.product-card .card-body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.product-card .card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #222;
  margin-bottom: 0.25rem;
  line-height: 1.4;
  min-height: 2.8em; /* set agar muat 2 baris */
}

.product-card .card-text {
  font-size: 0.875rem;
  color: #555;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2; /* versi standar, walau belum semua browser support */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 0.75rem;
  flex-grow: 1;
}


.product-card .price {
  font-size: 1rem;
  font-weight: 600;
  color: #11c56b;
  margin-top: 0.25rem;
}

.product-card .btn-outline-success {
  font-size: 0.875rem;
  padding: 6px 16px;
  border-radius: 6px; /* lebih tegas, tidak terlalu bulat */
  font-weight: 600;
  border: 1.5px solid #11c56b;
  color: #11c56b;
  background-color: transparent;
  transition: all 0.25s ease-in-out;
  box-shadow: none;
  margin-top: 0.25rem;
}

.product-card .btn-outline-success:hover {
  background-color: #11c56b;
  color: #fff;
  border-color: #11c56b;
}

/* Wrapper Custom Pagination */
.custom-pagination .pagination {
  gap: 6px;
}

/* Default page item */
.custom-pagination .page-item .page-link {
  color: #11c56b;
  border: 1px solid #dcdcdc;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 0.9rem;
  font-weight: 500;
  transition: all 0.2s ease;
  background-color: #fff;
}

/* Hover style */
.custom-pagination .page-item .page-link:hover {
  background-color: #11c56b;
  color: #fff;
  border-color: #11c56b;
}

/* Aktif */
.custom-pagination .page-item.active .page-link {
  background-color: #11c56b;
  color: #fff;
  border-color: #11c56b;
  font-weight: 600;
}

/* Fokus (optional accessibility) */
.custom-pagination .page-link:focus {
  box-shadow: none;
}

.section-heading {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center; /* ini yang bikin teks di tengah vertikal */
  height:220px; /* bisa disesuaikan */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 16px;
  overflow: hidden;
  text-align: center;
}

.bg-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.45));
  z-index: 1;
}

.section-heading .content {
  position: relative;
  z-index: 2;
  padding: 0 20px;
}

.section-heading h2 {
  font-size: 2.25rem;
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 0.5rem;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

.section-subtitle {
  font-size: 1.1rem;
  color: #e0e0e0;
  opacity: 0.9;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* FOOTER */

.site-footer {
  background-color: #1e1e1e;
  color: #a0a0a0;
  padding: 60px 0;
}

.site-footer .footer-logo img {
  max-height: 40px;
  margin-bottom: 20px;
}

.site-footer h5 {
  font-weight: 600;
  color: #fff;
  margin-bottom: 15px;
}

.site-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer ul li a {
  color: #a0a0a0;
  text-decoration: none;
  line-height: 2;
  transition: color 0.3s ease;
}

.site-footer ul li a:hover {
  color: #fff;
}

.site-footer .social-icons a {
  color: #a0a0a0;
  font-size: 1.2rem;
  margin-right: 15px;
  transition: color 0.3s ease;
}

.site-footer .social-icons a:hover {
  color: #fff;
}

.site-footer .footer-bottom {
  border-top: 1px solid #333;
  padding-top: 30px;
  margin-top: 30px;
  text-align: center;
  font-size: 0.9rem;
}

html {
  scroll-behavior: smooth;
}

.kategori-section {
  padding: 60px 0;
  background-color: #f8f9fa;
}

.kategori-title {
  font-size: 2rem;
  font-weight: 600;
  color: #333;
}

.section-divider {
  width: 60px;
  height: 4px;
  background-color: #198754;
  margin: 10px auto 30px;
  border-radius: 2px;
}

/* Tombol kategori mirip kartu tipis */
.kategori-btn {
  background-color: rgba(255, 255, 255, 0.95); /* putih tipis */
  color: #212529; /* teks default hitam */
  border: 1px solid #dee2e6;
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 0.95rem;
  font-weight: 500;
  width: 100%;
  transition: all 0.3s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transform: scale(1);
}

/* Hover: zoom & warna teks berubah */
.kategori-btn:hover,
.kategori-btn.active {
  color: #198754;
  transform: scale(1.05); /* efek zoom */
  background-color: #ffffff;
  box-shadow: 0 8px 16px rgba(25, 135, 84, 0.1);
}

/* Responsive */
@media (max-width: 576px) {
  .kategori-btn {
    font-size: 0.85rem;
    padding: 12px 14px;
  }
}

