/* =========================
   GLOBAL HEADER OFFSET
========================= */
/* Desktop */
body {
   padding-top: 80px !important;
}

/* Mobile navbar lebih tinggi */
@media (max-width:768px) {
   body {
      padding-top: 130px !important;
   }
}

/* =========================
   TITLE
========================= */
.bp-section-title {
   font-size: 30px;
   font-weight: 700;
   text-align: center;
   margin: 20px 0 25px;
   color: #222;
}

/* =========================
   INFO AKSES
========================= */
.home-info-grid {
   max-width: 1400px;
   margin: 40px auto;
   padding: 0 30px;
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
}

/* card desktop */
.info-card {
   display: flex;
   align-items: center;
   gap: 18px;
   background: #ffffff;
   padding: 22px 28px;
   border-radius: 16px;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
   transition: .25s;
}

.info-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
}

/* icon */
.info-icon {
   width: 50px;
   height: 50px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: linear-gradient(135deg, #2563eb, #1d4ed8);
   color: white;
   border-radius: 12px;
   font-size: 22px;
}

/* text */
.info-title {
   font-size: 18px;
   font-weight: 700;
   color: #111827;
}

.info-desc {
   font-size: 14px;
   color: #6b7280;
   margin-top: 2px;
}

/* text container */
.info-text {
   display: flex;
   flex-direction: column;
}

/* =========================
   STATISTIK
========================= */
.stat-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
   padding: 20px 30px;
   max-width: 1400px;
   margin: auto;
}

.stat-card {
   background: #fff;
   border-radius: 12px;
   padding: 22px;
   text-align: center;
   box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
   transition: 0.25s;
}

.stat-card:hover {
   transform: translateY(-3px);
   box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
}

.stat-number {
   font-size: 34px;
   font-weight: 700;
   color: #2563eb;
}

.stat-label {
   font-size: 14px;
   color: #666;
   margin-top: 5px;
}

/* =========================
   FILTER
========================= */
.filter-box {
   max-width: 1400px;
   margin: 0 auto;
   padding: 10px 30px 20px;

   display: flex;
   justify-content: flex-start;
}

/* container filter */
.filter-group {
   display: flex;
   align-items: center;
   justify-content: flex-start;
   gap: 12px;
   flex-wrap: wrap;

   background: #ffffff;
   padding: 10px 14px;
   border-radius: 10px;

   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
   border: 1px solid #eee;
}

/* label */
.filter-group label {
   font-weight: 600;
   font-size: 14px;
   color: #333;
}

/* dropdown */
.filter-select {
   padding: 8px 12px;
   border-radius: 8px;
   border: 1px solid #d1d5db;
   font-size: 14px;
   background: #fff;
   cursor: pointer;

   transition: all .2s ease;
}

/* hover */
.filter-select:hover {
   border-color: #10b981;
}

/* focus */
.filter-select:focus {
   outline: none;
   border-color: #10b981;
   box-shadow: 0 0 0 2px rgba(16, 185, 129, .15);
}

/* =========================
   GRID BUKU
========================= */
.book-grid {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 28px;
   padding: 10px 30px 40px;
   max-width: 1400px;
   margin: auto;
}

/* =========================
   MOBILE LAYOUT
========================= */
@media (max-width:768px) {

   /* jarak dari navbar */
   body {
      padding-top: 120px;
   }

   /* INFO AKSES */
   @media (max-width:768px) {
      .home-info-grid {
         grid-template-columns: repeat(3, 1fr);
         gap: 12px;
         padding: 0 15px;
      }

      /* card mobile */
      .info-card {
         flex-direction: column;
         align-items: center;
         text-align: center;
         padding: 16px 10px;
         gap: 6px;
      }

      /* icon mobile */
      .info-icon {
         width: 40px;
         height: 40px;
         font-size: 18px;
         border-radius: 10px;
      }

      /* text mobile */
      .info-title {
         font-size: 14px;
      }

      .info-desc {
         font-size: 12px;
      }
   }

   /* STATISTIK */
   .stat-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 14px;
      padding: 10px 15px;
   }

   /* FILTER MOBILE */
   @media (max-width:768px) {
      .filter-box {
         padding: 10px 15px 20px;
      }
      .filter-group {
         display: flex;
         align-items: center;
         gap: 10px;
         flex-wrap: wrap;
         width: 100%;
      }

      /* sembunyikan label agar lebih ringkas */
      .filter-group label {
         display: none;
      }

      /* dropdown */
      .filter-select {
         flex: 1;
         min-width: 0;
         padding: 10px 12px;
         border-radius: 10px;
         font-size: 14px;
      }
   }

   /* GRID BUKU */
   .book-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 18px;
      padding: 10px 15px 30px;
   }

   /* COVER */
   .book-cover {
      height: 260px;
      object-fit: cover;
   }
}

/* =========================
   CARD BUKU
========================= */
.book-card {
   background: #fff;
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
   transition: 0.25s;
   text-decoration: none;
   display: flex;
   flex-direction: column;
}

.book-card:hover {
   transform: translateY(-6px);
   box-shadow: 0 8px 18px rgba(0, 0, 0, 0.15);
}

.book-cover {
   width: 100%;
   height: 330px;
   object-fit: cover;
   background: #f3f4f6;
}

.book-info {
   padding: 14px;
}

.book-title {
   font-size: 15px;
   font-weight: 700;
   color: #222;
   line-height: 1.3;
   margin-bottom: 6px;
   min-height: 42px;
   overflow: hidden;
}

.book-author {
   font-size: 13px;
   color: #555;
}

/* =========================
   PAGINATION
========================= */
.bp-pagination {
   display: flex;
   justify-content: center;
   gap: 10px;
   padding-bottom: 40px;
   flex-wrap: wrap;
}

.bp-pagination a,
.bp-pagination span {
   padding: 8px 12px;
   border-radius: 8px;
   text-decoration: none;
   background: #e5e7eb;
   font-weight: 600;
   color: #333;
   transition: 0.2s;
}

.bp-pagination a:hover {
   background: #d1d5db;
}

.bp-pagination .active {
   background: #0ea5a4;
   color: #fff;
}


/* =================================
   DETAIL TEMPLATE
================================= */
:root {
   --accent-green: #10b981;
   --accent-blue: #1e73be;
   --card-bg: #ffffff;
   --muted: #6b7280;
   --surface: #f8fafc;
   --radius: 12px;
}

/* ====== TAMBAHKAN FONT DI BODY ====== */
body,
html {
   font-family: 'Inter', sans-serif !important;
   letter-spacing: 0.1px;
   color: #0f172a;
}

/* page container */
.detail-wrap {
   max-width: 1100px;
   margin: 26px auto;
   padding: 18px;
}

/* top grid: left metadata, right cover */
.detail-grid {
   display: grid;
   grid-template-columns: 1fr 340px;
   gap: 26px;
   align-items: start;
}

/* Responsive collapse */
@media (max-width:980px) {
   .detail-grid {
      grid-template-columns: 1fr;
   }
}

/* cover card */
.cover-card {
   background: var(--card-bg);
   border-radius: var(--radius);
   box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
   overflow: hidden;
   padding: 20px;
   text-align: center;
}

.cover-img {
   width: 100%;
   height: 480px;
   max-height: 64vh;
   object-fit: cover;
   border-radius: 6px;
   display: block;
   margin: 0 auto 18px auto;
   background: linear-gradient(180deg, #fff, #f3f4f6);
}

/* big action button */
.cta-btn {
   display: inline-block;
   width: 86%;
   text-align: center;
   padding: 12px 18px;
   border-radius: 10px;
   font-weight: 700;
   color: #fff;
   background: linear-gradient(90deg, var(--accent-green), var(--accent-blue));
   text-decoration: none;
   box-shadow: 0 6px 18px rgba(14, 165, 164, 0.12);
}

/* small meta badges under title */
.meta-badges {
   display: flex;
   gap: 10px;
   flex-wrap: wrap;
   margin: 10px 0 18px 0;
}

.badge {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   background: #f1f5f9;
   color: var(--muted);
   padding: 8px 10px;
   border-radius: 999px;
   font-size: 13px;
   box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.02);
}

/* title & authors */
.title-row h1 {
   margin: 0 0 10px 0;
   font-size: 24px;
   color: #0f172a;
   line-height: 1.2;
}

.title-row .authors {
   color: var(--muted);
   font-size: 14px;
   margin-bottom: 6px;
}

/* info table */
.info-grid {
   margin-top: 18px;
   background: var(--card-bg);
   padding: 18px;
   border-radius: 10px;
   box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
}

.info-grid dl {
   display: grid;
   grid-template-columns: 170px 1fr;
   gap: 8px 12px;
   margin: 0;
}

.info-grid dt {
   color: var(--muted);
   font-weight: 600;
   font-size: 13px;
   padding-top: 6px;
}

.info-grid dd {
   margin: 0;
   font-size: 14px;
   color: #0f172a;
   padding-top: 6px;
}

/* description / synopsis */
.section {
   margin-top: 22px;
   background: var(--card-bg);
   padding: 18px;
   border-radius: 10px;
   box-shadow: 0 6px 18px rgba(15, 23, 42, 0.03);
}

.section h3 {
   margin: 0 0 12px 0;
   color: #0f172a;
}

.section p {
   color: #374151;
   line-height: 1.6;
}

/* lampiran grid */
.lampiran-grid {
   display: flex;
   gap: 12px;
   flex-wrap: wrap;
   margin-top: 12px;
}

.lampiran-card {
   background: #f8fafc;
   padding: 10px 12px;
   border-radius: 8px;
   display: flex;
   gap: 10px;
   align-items: center;
}

.lampiran-card .title {
   font-size: 13px;
   color: #0f172a;
}

.lampiran-btn {
   padding: 8px 12px;
   border-radius: 8px;
   background: linear-gradient(90deg, var(--accent-blue), var(--accent-green));
   color: #fff;
   text-decoration: none;
   font-weight: 700;
}

/* small utilities */
.row {
   display: flex;
   gap: 12px;
   align-items: center;
   flex-wrap: wrap;
}

.kv {
   color: var(--muted);
   font-size: 13px;
}

/* bookmark/share */
.top-actions {
   margin-top: 14px;
   display: flex;
   gap: 10px;
   align-items: center;
}

.action-btn {
   padding: 8px 10px;
   border-radius: 8px;
   background: #f1f5f9;
   border: none;
   cursor: pointer;
   color: var(--muted);
   font-weight: 700;
}

/* comments area keep existing look (we output showComment) */
.comments-section {
   margin-top: 22px;
}

/* small device tweak cover height */
@media (max-width:480px) {
   .cover-img {
      height: 360px;
   }

   .cta-btn {
      width: 100%;
   }
}