/* === Responsive Global CSS === */

/* Background Website */
body.bg-site {
  position: relative;
  min-height: 100vh;
}

body.bg-site::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-attachment: fixed;
  background-size: cover;
  background-image: var(--bg-image);
  z-index: -1; /* Letakkan di belakang semua konten */
}

/* Efek Shadow Halus */
.shadow-soft {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Hover efek untuk card */
.card.shadow-soft:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

/* Carousel image */
#mainCarousel img {
  border-radius: 10px;
}

/* Carousel animasi smooth */
.carousel-item {
  transition: transform 0.8s ease-in-out, opacity 0.8s ease-in-out;
}

/* Tablet dan HP */
@media (max-width: 768px) {
  /* Navbar */
  .navbar-brand img {
    height: 30px !important;
  }
  .navbar-nav .nav-link {
    font-size: 14px;
    padding: 6px 8px;
  }

  /* Container */
  .container {
    padding-left: 10px;
    padding-right: 10px;
  }

  /* Card Produk */
  .card img {
    height: 180px !important;
    object-fit: cover;
  }
  .card-title {
    font-size: 1rem;
  }

  /* Heading */
  h2, h3, h4 {
    font-size: 1.2rem;
  }
}

/* HP Kecil */
@media (max-width: 480px) {
  .navbar-brand img {
    height: 25px !important;
  }
  h2, h3, h4 {
    font-size: 1rem;
  }
  .btn {
    font-size: 0.85rem;
    padding: 6px 10px;
  }
}

/* ==== Mobile Friendly Styling untuk index.php ==== */
@media (max-width: 768px) {
  body.home-page h2 {
    font-size: 1.4rem;
    text-align: center;
  }

  body.home-page .carousel img {
    border-radius: 6px;
    max-height: 200px;
    object-fit: cover;
  }

  body.home-page .card img {
    height: 120px !important;
  }

  body.home-page .card .card-body h5,
  body.home-page .card .card-body h6 {
    font-size: 0.95rem;
  }

  body.home-page .btn {
    font-size: 0.8rem;
    padding: 6px 8px;
  }

  body.home-page .container {
    padding-left: 8px;
    padding-right: 8px;
  }
}

@media (max-width: 480px) {
  body.home-page h2 {
    font-size: 1.2rem;
  }

  body.home-page .card img {
    height: 100px !important;
  }

  body.home-page .btn {
    font-size: 0.75rem;
    padding: 5px 8px;
  }
}

/* ==== Styling khusus tombol Login/Daftar di navbar ==== */
@media (max-width: 768px) {
  .navbar-nav .btn {
    padding: 6px 10px;
    font-size: 0.85rem;
  }

  .navbar-nav .btn + .btn {
    margin-left: 6px;
  }
}

@media (max-width: 480px) {
  /* Stack tombol di layar sangat kecil */
  .navbar-nav.ms-auto {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .navbar-nav.ms-auto .btn {
    width: 100%;
    margin-bottom: 6px;
    font-size: 0.8rem;
    padding: 8px;
  }

  .navbar-nav.ms-auto .btn:last-child {
    margin-bottom: 0;
  }
}

/* === Tombol Login & Daftar Bersebelahan di Mobile === */
@media (max-width: 768px) {
  .navbar-nav.ms-auto .nav-item.d-flex {
    justify-content: center;
    margin-top: 10px;
  }

  .navbar-nav.ms-auto .btn {
    flex: 1;
    font-size: 0.9rem;
    padding: 6px 10px;
  }
}

/* ===== Navbar polish ===== */
.navbar.sticky-top { box-shadow: 0 2px 10px rgba(0,0,0,.05); }

.navbar .nav-link {
  font-weight: 500;
  padding: .5rem .75rem;
}
.navbar .nav-link:hover { color: #0d6efd; }

.navbar .dropdown-menu {
  border-radius: .5rem;
  box-shadow: 0 12px 24px rgba(0,0,0,.08);
  border: 1px solid rgba(0,0,0,.06);
}

.navbar .dropdown-item { padding: .5rem .75rem; }
.navbar .dropdown-item.active,
.navbar .dropdown-item:active { background: #0d6efd; color:#fff; }

.navbar .cart-link { position: relative; display: inline-flex; align-items: center; gap: .35rem; }
.navbar .cart-link .badge {
  position: absolute;
  top: -6px; left: 14px;
  transform: translate(-50%, -50%);
}

/* compact spacing on smaller screens */
@media (max-width: 992px) {
  .navbar .navbar-nav .nav-link { padding: .45rem .6rem; }
  .navbar .dropdown-menu { min-width: 220px; }
}

/* Make right-side items wrap nicely on mobile */
@media (max-width: 576px) {
  .navbar .navbar-nav.ms-auto { gap: .25rem; }
}

/* ==== Navbar, spacing & delimiter ==== */
:root{
  --nav-text: #5a5f6a;
  --nav-text-hover: #111827;
  --nav-divider: rgba(0,0,0,.12);
}

.navbar.bg-white {
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}

/* ukuran & warna link */
.navbar .nav-link{
  padding: .75rem 1rem;
  font-weight: 500;
  color: var(--nav-text);
}
.navbar .nav-link:hover,
.navbar .nav-link:focus{
  color: var(--nav-text-hover);
}

/* tombol kecil biar konsisten dengan nav-link */
.navbar .btn.btn-sm{
  padding: .45rem .75rem;
  border-radius: .5rem;
  font-weight: 600;
}

/* garis pemisah antar item – aktif untuk ul.nav-delimited  */
.navbar .nav-delimited > .nav-item + .nav-item { position: relative; }
.navbar .nav-delimited > .nav-item + .nav-item::before{
  content:"";
  position:absolute;
  left:-.5rem;             /* jarak garis dari awal item */
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:18px;
  background: var(--nav-divider);
}

/* keranjang badge rapi */
.navbar .nav-cart .badge{
  transform: translate(-35%,-35%);
  font-size: .65rem;
  padding: .25rem .35rem;
}

/* biar tidak tumpah di mobile – menu bisa discroll horizontal */
@media (max-width: 991.98px){
  .navbar .navbar-collapse{ overflow-x:auto; }
  /* hilangkan garis pemisah di mobile */
  .navbar .nav-delimited > .nav-item + .nav-item::before{ display:none; }
  .navbar .nav-link{ padding: .6rem .75rem; }
}

.navbar .nav-link.active{ color:#0d6efd; font-weight:600; }

/* ===== Stacked table khusus halaman payment (mobile) ===== */
body.payment-page .stacked-table thead { display: table-header-group; } /* default desktop */

@media (max-width: 576px) {
  body.payment-page .stacked-table thead { display: none; }

  body.payment-page .stacked-table tbody tr{
    display: block;
    margin-bottom: .75rem;
    border: 1px solid #dee2e6;
    border-radius: .5rem;
    background: #fff;
    overflow: hidden;
  }

  body.payment-page .stacked-table tbody td{
    display: grid;
    grid-template-columns: 120px 1fr; /* label | value */
    gap: .5rem;
    padding: .6rem .75rem;
    border: 0 !important;
    border-top: 1px solid #f1f3f5 !important;
  }
  body.payment-page .stacked-table tbody td:first-child{
    border-top: 0 !important;
  }
  body.payment-page .stacked-table tbody td::before{
    content: attr(data-label);
    font-weight: 600;
    color: #6c757d;
  }

  /* util */
  body.payment-page .stacked-table .num { text-align: right; }
  body.payment-page .stacked-table .nowrap { white-space: nowrap; }
}

/* ==== Grid Kategori – perapian mobile ==== */
@media (max-width: 576px) {
  /* Kecilkan jarak antar kolom/baris khusus grid kategori */
  .category-row {
    --bs-gutter-x: .5rem;   /* default 1.5rem → jadi 0.5rem */
    --bs-gutter-y: .5rem;   /* vertikal juga diperkecil */
  }

  /* Rapikan kartu kategori */
  .category-card {
    border-radius: 10px;
  }
  .category-card .card-img-top {
    height: 120px !important;   /* seragam agar grid tidak “lompat-lompat” */
    object-fit: cover;
  }
  .category-card .card-body {
    padding: .5rem .5rem .65rem;
  }
  .category-card .btn {
    font-size: .8rem;
    padding: .4rem .55rem;
  }
}

/* Layar sangat kecil (≤360–400px)—opsional, makin kompak */
@media (max-width: 400px) {
  .category-row {
    --bs-gutter-x: .4rem;
    --bs-gutter-y: .45rem;
  }
  .category-card .card-img-top {
    height: 110px !important;
  }
}

/* ==== Categories grid (mobile tidy) ==== */
.categories-grid .card { border-radius: 10px; }
.categories-grid .cat-thumb {
  height: 150px;
  object-fit: cover;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

/* Clamp judul 2 baris agar tinggi kartu seragam */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.2;
}

/* Mobile: kecilkan tinggi gambar & padding supaya rapat */
@media (max-width: 576px) {
  .categories-grid { row-gap: .5rem; }
  .categories-grid .cat-thumb { height: 120px; }
  .categories-grid .card-body { padding: .6rem .75rem !important; }
  .categories-grid .card-title { font-size: .95rem; margin-bottom: .35rem; }
  .categories-grid .btn.btn-sm { padding: .4rem .6rem; font-size: .85rem; }
}

/* Header kategori: rapikan form di mobile */
@media (max-width: 576px) {
  .categories-header form { width: 100%; margin-top: .25rem; }
  .categories-header .input-group { width: 100%; }
  .categories-header .form-control { font-size: .95rem; padding: .5rem .75rem; }
  .categories-header .btn { font-size: .9rem; padding: .5rem .75rem; }
}

/* ===== Vendor page ===== */

/* Header vendor: di desktop sejajar, di mobile ditumpuk */
.vendor-header { /* sudah d-flex dari HTML */ }
@media (max-width: 576.98px){
  .vendor-header { flex-direction: column; align-items: flex-start; }
}

/* Bungkus logo: cegah overflow */
.vendor-logo-wrap{
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 4px;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;              /* penting agar tidak “keluar kotak” */
}

/* Gambar logo: lebar mengikuti rasio, tinggi dibatasi */
.vendor-logo-img{
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 72px;              /* desktop */
  object-fit: contain;           /* jaga rasio; bisa memanjang */
}

/* Mobile: logo sedikit lebih pendek & berada di atas nama (diatur di .vendor-header) */
@media (max-width: 576.98px){
  .vendor-logo-img{ max-height: 56px; }
  .vendor-logo-wrap{ margin-bottom: .5rem; }
}

/* Override rule global `.card img` di mobile agar TIDAK mengenai logo vendor */
@media (max-width: 768px){
  .card .vendor-logo-img{
    height: auto !important;
    max-height: 56px !important;
    object-fit: contain !important;
  }
}

@media (min-width: 992px){
  .navbar .nav-link { font-size: .9rem; }
}

/* ===== Separator menu desktop: beri jarak & geser ke tengah ===== */
@media (min-width: 992px){
  /* atur jarak antar item kiri/kanan */
  .navbar .nav-delimited { 
    --nav-gap: 1.25rem;      /* ubah angka ini kalau mau lebih renggang */
    gap: var(--nav-gap);
  }

  /* garis separator berada di tengah jarak (setengah dari gap) */
  .navbar .nav-delimited > .nav-item + .nav-item::before{
    left: calc(-0.5 * var(--nav-gap));
    height: 16px;
    background: rgba(0,0,0,.12);
  }
}

/* pastikan separator tetap hilang di mobile */
@media (max-width: 991.98px){
  .navbar .nav-delimited > .nav-item + .nav-item::before{ display:none; }
}

/* === Responsive fix: Vendor Report filter === */
@media (max-width: 768px) {
  .vendor-report-filter {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  .vendor-report-filter > div {
    width: 100% !important;
  }

  .vendor-report-filter .btn {
    width: 100% !important;
  }

  /* tulisan kecil di bawah form */
  .vendor-report-note {
    margin-top: 4px;
    font-size: 12px;
    color: #6c757d;
  }
}

/* === Vendor Report header & filter: rapikan mobile === */
@media (max-width: 768px) {
  /* header (judul + form) jadi vertikal */
  .vendor-report-head {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .5rem;
  }
  .vendor-report-head .vr-title {
    margin-right: 0 !important;
  }

  /* form full width, field & tombol ditumpuk rapi */
  .vendor-report-filter {
    width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .5rem !important;
  }

  .vendor-report-filter .vr-field {
    width: 100% !important;
  }

  .vendor-report-filter .vr-actions {
    width: 100% !important;
    flex-direction: column !important;
    gap: .5rem !important;
  }

  .vendor-report-filter .vr-actions .btn {
    width: 100% !important;   /* tombol full width */
  }

  .vendor-report-note {
    font-size: 12px;
    color: #6c757d;
    margin-top: .25rem;
  }
}

/* === Vendor Report: desktop layout fix === */
@media (min-width: 992px) {
  /* header: judul kiri, form kanan, jangan wrap */
  .vendor-report-head {
    flex-wrap: nowrap !important;
    align-items: flex-end !important;
    gap: 1rem;
  }

  /* biar judul “ambil” sisa ruang kiri, form tetap nempel kanan */
  .vendor-report-head .vr-title {
    flex: 1 1 auto !important;
    min-width: 0;
  }

  /* form disusun mendatar, tidak wrap */
  .vendor-report-filter {
    flex: 0 0 auto !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    gap: .75rem !important;
    white-space: nowrap;            /* cegah tombol lompat baris */
  }

  .vendor-report-filter .vr-field {
    flex: 0 0 auto !important;
  }

  /* tombol tetap sejajar, tidak kolom di desktop */
  .vendor-report-filter .vr-actions {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    gap: .5rem !important;
  }

  /* tombol jangan full width di desktop */
  .vendor-report-filter .vr-actions .btn {
    width: auto !important;
  }
