/* ============================================================
   ICRAF Publications — tampilan daftar
   Seluruh aturan di-scope di bawah .ipub agar tidak bocor
   ke tema. Tidak memerlukan Bootstrap.
   ============================================================ */

.ipub {
  /* Warna */
  --ipub-ink: #16211b;
  --ipub-ink-2: #4e5f56;
  --ipub-ink-3: #7d8b83;
  --ipub-line: #e2e7e3;
  --ipub-line-strong: #ccd5ce;
  --ipub-surface: #ffffff;
  --ipub-tint: #f4f7f4;
  --ipub-canopy: #1f5b34;
  --ipub-canopy-deep: #163f25;
  --ipub-focus: #2f8a4d;

  /* Bentuk & jarak */
  --ipub-radius: 8px;
  --ipub-radius-cover: 4px;
  --ipub-gap: 24px;
  --ipub-cover-w: 104px;

  /* Tipografi */
  --ipub-display: "Literata", Georgia, "Times New Roman", serif;
  --ipub-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;

  font-family: var(--ipub-sans);
  color: var(--ipub-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Reset terarah — tema WordPress sering menata ul/li/img/input */
.ipub *,
.ipub *::before,
.ipub *::after {
  box-sizing: border-box;
}
.ipub ul,
.ipub ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ipub img {
  max-width: 100%;
  height: auto;
  display: block;
}
.ipub p {
  margin: 0;
}
.ipub input,
.ipub button {
  font: inherit;
  color: inherit;
}

.ipub .ipub-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ------------------------------------------------------------
   Toolbar: pencarian
   ------------------------------------------------------------ */

.ipub .ipub-toolbar {
  margin: 0 0 18px;
}

.ipub .ipub-field {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 560px;
  height: 52px;
  padding: 0 6px 0 16px;
  background: var(--ipub-surface);
  border: 1px solid var(--ipub-line-strong);
  border-radius: var(--ipub-radius);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.ipub .ipub-field:focus-within {
  border-color: var(--ipub-canopy);
  box-shadow: 0 0 0 3px rgba(31, 91, 52, 0.12);
}
.ipub .ipub-field__icon {
  flex: none;
  width: 18px;
  height: 18px;
  color: var(--ipub-ink-3);
}
.ipub .ipub-field__input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: none;
  font-size: 15px;
  letter-spacing: -0.005em;
}
.ipub .ipub-field__input::placeholder {
  color: var(--ipub-ink-3);
}
/* Hilangkan tombol silang bawaan Safari/Chrome pada type=search */
.ipub .ipub-field__input::-webkit-search-decoration,
.ipub .ipub-field__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.ipub .ipub-field__submit {
  flex: none;
  height: 40px;
  padding: 0 18px;
  border: 0;
  border-radius: 6px;
  background: var(--ipub-canopy);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: background-color 0.18s ease;
}
.ipub .ipub-field__submit:hover {
  background: var(--ipub-canopy-deep);
}

/* ------------------------------------------------------------
   Toolbar: chip kategori
   ------------------------------------------------------------ */

.ipub .ipub-chips {
  position: relative;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 10px;
  scrollbar-width: none;
  -ms-overflow-style: none;
  /* Isyarat "masih ada lagi" di tepi kanan */
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent);
}
.ipub .ipub-chips::-webkit-scrollbar {
  display: none;
}

.ipub .ipub-chip {
  flex: none;
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 14px;
  border-radius: var(--ipub-radius);
  background: var(--ipub-tint);
  color: var(--ipub-ink-2);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: -0.005em;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.16s ease, color 0.16s ease;
}
.ipub .ipub-chip:hover {
  background: var(--ipub-line);
  color: var(--ipub-ink);
  text-decoration: none;
}
.ipub .ipub-chip[aria-current="true"] {
  background: var(--ipub-canopy);
  color: #fff;
  font-weight: 600;
}

/* ------------------------------------------------------------
   Baris jumlah hasil
   ------------------------------------------------------------ */

.ipub .ipub-count {
  padding: 0 0 6px;
  font-size: 13px;
  color: var(--ipub-ink-3);
  letter-spacing: 0.005em;
}
.ipub .ipub-count strong {
  color: var(--ipub-ink);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------
   Daftar publikasi
   ------------------------------------------------------------ */

.ipub .ipub-list {
  border-top: 1px solid var(--ipub-line);
}

.ipub .ipub-item {
  display: grid;
  grid-template-columns: var(--ipub-cover-w) 1fr;
  gap: var(--ipub-gap);
  align-items: start;
  padding: 28px 0;
  border-bottom: 1px solid var(--ipub-line);
}

/* Sampul — elemen tanda tangan halaman ini.
   Lebar tetap, tinggi mengikuti rasio asli gambar, sehingga sampul
   lanskap maupun potret tampil utuh tanpa terpotong. Cincin dan
   bayangan menempel pada gambar, bukan pada kotaknya, agar tetap
   terbaca sebagai benda cetak apa pun bentuknya. */
.ipub .ipub-item__cover {
  display: block;
  width: 100%;
  text-decoration: none;
}

.ipub .ipub-item__sheet {
  position: relative;
  display: inline-block;
  max-width: 100%;
  /* Menahan sedikit ruang sebelum gambar termuat */
  min-height: 46px;
  line-height: 0;
  border-radius: var(--ipub-radius-cover);
  background: var(--ipub-tint);
  box-shadow: 0 1px 2px rgba(22, 33, 27, 0.1),
    0 10px 20px -12px rgba(22, 33, 27, 0.38);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ipub .ipub-item__sheet img {
  display: block;
  /* Tidak ada width/height tetap: rasio asli yang menentukan.
     max-height menjaga sampul yang sangat jangkung tetap wajar. */
  max-width: 100%;
  max-height: 190px;
  width: auto;
  height: auto;
  border-radius: inherit;
}

.ipub .ipub-item__sheet::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(22, 33, 27, 0.14);
  background: linear-gradient(
    90deg,
    rgba(22, 33, 27, 0.16) 0,
    rgba(22, 33, 27, 0.04) 3px,
    rgba(22, 33, 27, 0) 7px
  );
  pointer-events: none;
}

.ipub .ipub-item:hover .ipub-item__sheet {
  transform: translateY(-3px);
  box-shadow: 0 2px 4px rgba(22, 33, 27, 0.12),
    0 18px 28px -16px rgba(22, 33, 27, 0.45);
}

/* Sampul kosong tetap memakai rasio tetap sebagai penampung */
.ipub .ipub-item__cover--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: var(--ipub-radius-cover);
  background: var(--ipub-tint);
  box-shadow: inset 0 0 0 1px rgba(22, 33, 27, 0.12);
  color: var(--ipub-ink-3);
}
.ipub .ipub-item__cover--empty svg {
  width: 28px;
  height: 28px;
  opacity: 0.55;
}

.ipub .ipub-item__body {
  min-width: 0;
}

.ipub .ipub-item__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}
.ipub .ipub-item__type {
  color: var(--ipub-canopy);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  text-decoration: none;
}
.ipub .ipub-item__type:hover {
  color: var(--ipub-canopy-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ipub .ipub-item__dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--ipub-line-strong);
}
.ipub .ipub-item__year {
  font-size: 12.5px;
  color: var(--ipub-ink-3);
  font-variant-numeric: tabular-nums;
}

.ipub .ipub-item__title {
  margin: 9px 0 0;
  font-family: var(--ipub-display);
  font-size: clamp(1.0625rem, 0.99rem + 0.35vw, 1.1875rem);
  font-weight: 600;
  line-height: 1.34;
  letter-spacing: -0.006em;
}
.ipub .ipub-item__title a {
  color: var(--ipub-ink);
  text-decoration: none;
}
.ipub .ipub-item__title a:hover {
  color: var(--ipub-canopy);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}

.ipub .ipub-item__authors {
  margin-top: 8px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ipub-ink-2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ------------------------------------------------------------
   Keadaan kosong
   ------------------------------------------------------------ */

.ipub .ipub-empty {
  padding: 64px 20px;
  text-align: center;
  border-top: 1px solid var(--ipub-line);
  border-bottom: 1px solid var(--ipub-line);
}
.ipub .ipub-empty__title {
  font-family: var(--ipub-display);
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0 0 8px;
}
.ipub .ipub-empty__text {
  font-size: 14px;
  color: var(--ipub-ink-2);
  line-height: 1.6;
  max-width: 42ch;
  margin: 0 auto;
}
.ipub .ipub-empty__action {
  display: inline-flex;
  align-items: center;
  height: 40px;
  margin-top: 20px;
  padding: 0 18px;
  border: 1px solid var(--ipub-line-strong);
  border-radius: var(--ipub-radius);
  color: var(--ipub-ink);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 0.16s ease, background-color 0.16s ease;
}
.ipub .ipub-empty__action:hover {
  background: var(--ipub-tint);
  border-color: var(--ipub-canopy);
  text-decoration: none;
}

/* ------------------------------------------------------------
   Paginasi
   ------------------------------------------------------------ */

.ipub .ipub-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 28px;
}

.ipub .ipub-page-list {
  display: flex;
  align-items: center;
  gap: 4px;
}

.ipub .ipub-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 6px;
  border: 1px solid transparent;
  border-radius: var(--ipub-radius);
  color: var(--ipub-ink-2);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  transition: background-color 0.16s ease, color 0.16s ease,
    border-color 0.16s ease;
}
.ipub .ipub-page:hover {
  background: var(--ipub-tint);
  color: var(--ipub-ink);
  text-decoration: none;
}
.ipub .ipub-page[aria-current="page"] {
  background: var(--ipub-canopy);
  border-color: var(--ipub-canopy);
  color: #fff;
  font-weight: 600;
}
.ipub .ipub-page--nav {
  padding: 0 16px;
  border-color: var(--ipub-line-strong);
  font-weight: 500;
}
.ipub .ipub-page--nav:hover {
  border-color: var(--ipub-canopy);
}
/* Penahan tempat agar tombol Berikutnya tetap rata kanan
   ketika Sebelumnya tidak ada */
.ipub .ipub-page--ghost {
  visibility: hidden;
  pointer-events: none;
}
.ipub .ipub-page-gap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 40px;
  color: var(--ipub-ink-3);
}

.ipub .ipub-page-status {
  display: none;
  font-size: 13.5px;
  color: var(--ipub-ink-3);
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------
   Fokus keyboard
   ------------------------------------------------------------ */

.ipub a:focus-visible,
.ipub button:focus-visible,
.ipub input:focus-visible {
  outline: 2px solid var(--ipub-focus);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ------------------------------------------------------------
   Ponsel
   ------------------------------------------------------------ */

@media (max-width: 640px) {
  .ipub {
    --ipub-cover-w: 76px;
    --ipub-gap: 16px;
  }
  .ipub .ipub-field {
    height: 48px;
    padding-left: 14px;
  }
  .ipub .ipub-field__submit {
    height: 36px;
    padding: 0 14px;
  }
  .ipub .ipub-item {
    padding: 22px 0;
  }
  .ipub .ipub-item__title {
    margin-top: 7px;
  }
  .ipub .ipub-page-list {
    display: none;
  }
  .ipub .ipub-page-status {
    display: inline-flex;
  }
  .ipub .ipub-page--nav {
    padding: 0 12px;
    font-size: 13.5px;
  }
}

/* ------------------------------------------------------------
   Hormati preferensi gerak
   ------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
  .ipub *,
  .ipub *::before,
  .ipub *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
  .ipub .ipub-item:hover .ipub-item__cover {
    transform: none;
  }
}

/* ============================================================
   HALAMAN DETAIL PUBLIKASI
   Memakai token warna dan tipografi yang sama dengan daftar.
   ============================================================ */

/* ------------------------------------------------------------
   Tautan kembali
   ------------------------------------------------------------ */

.ipub .ipub-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 28px;
  color: var(--ipub-ink-2);
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.16s ease;
}
.ipub .ipub-back:hover {
  color: var(--ipub-canopy);
  text-decoration: none;
}
.ipub .ipub-back svg {
  width: 15px;
  height: 15px;
  transition: transform 0.16s ease;
}
.ipub .ipub-back:hover svg {
  transform: translateX(-2px);
}

/* ------------------------------------------------------------
   Kerangka dua kolom
   ------------------------------------------------------------ */

.ipub .ipub-detail {
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  gap: 56px;
  align-items: start;
}

/* Tidak menempel, dengan alasan yang sama seperti kolom filter:
   header tema WordPress sudah menempati bagian atas layar. */
.ipub .ipub-rail {
  position: static;
}

/* ------------------------------------------------------------
   Sampul — perlakuan sama dengan daftar, ukuran lebih besar.
   Tinggi mengikuti rasio asli agar sampul lanskap tidak terpotong.
   ------------------------------------------------------------ */

.ipub .ipub-detail__cover {
  display: block;
  width: 100%;
}

.ipub .ipub-detail__sheet {
  position: relative;
  display: inline-block;
  max-width: 100%;
  min-height: 80px;
  line-height: 0;
  border-radius: var(--ipub-radius-cover);
  background: var(--ipub-tint);
  box-shadow: 0 1px 2px rgba(22, 33, 27, 0.1),
    0 16px 32px -18px rgba(22, 33, 27, 0.45);
}

.ipub .ipub-detail__sheet img {
  display: block;
  max-width: 100%;
  max-height: 420px;
  width: auto;
  height: auto;
  border-radius: inherit;
}

.ipub .ipub-detail__sheet::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(22, 33, 27, 0.14);
  background: linear-gradient(
    90deg,
    rgba(22, 33, 27, 0.18) 0,
    rgba(22, 33, 27, 0.05) 5px,
    rgba(22, 33, 27, 0) 11px
  );
  pointer-events: none;
}

.ipub .ipub-detail__cover--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: var(--ipub-radius-cover);
  background: var(--ipub-tint);
  box-shadow: inset 0 0 0 1px rgba(22, 33, 27, 0.12);
  color: var(--ipub-ink-3);
}
.ipub .ipub-detail__cover--empty svg {
  width: 40px;
  height: 40px;
  opacity: 0.5;
}

/* ------------------------------------------------------------
   Tombol unduh utama
   ------------------------------------------------------------ */

.ipub .ipub-download {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  margin-top: 20px;
  padding: 14px 16px;
  border-radius: var(--ipub-radius);
  background: var(--ipub-canopy);
  color: #fff;
  text-decoration: none;
  transition: background-color 0.18s ease, transform 0.18s ease;
}
.ipub .ipub-download:hover {
  background: var(--ipub-canopy-deep);
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}
.ipub .ipub-download svg {
  flex: none;
  width: 19px;
  height: 19px;
}
.ipub .ipub-download__label {
  display: block;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.ipub .ipub-download__note {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------
   Kepala dokumen
   ------------------------------------------------------------ */

.ipub .ipub-doc__eyebrow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 12px;
}
.ipub .ipub-doc__type {
  color: var(--ipub-canopy);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  text-decoration: none;
}
.ipub .ipub-doc__type:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ipub .ipub-doc__dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--ipub-line-strong);
}
.ipub .ipub-doc__year {
  font-size: 12.5px;
  color: var(--ipub-ink-3);
  font-variant-numeric: tabular-nums;
}

.ipub .ipub-doc__title {
  margin: 0;
  font-family: var(--ipub-display);
  font-size: clamp(1.5rem, 1.22rem + 1.25vw, 2.125rem);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.014em;
  color: var(--ipub-ink);
  max-width: 26ch;
}

.ipub .ipub-doc__authors {
  margin-top: 14px;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ipub-ink-2);
  max-width: 62ch;
}

/* ------------------------------------------------------------
   Bagian isi
   ------------------------------------------------------------ */

.ipub .ipub-section {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--ipub-line);
}
.ipub .ipub-section__title {
  margin: 0 0 16px;
  font-family: var(--ipub-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ipub-ink-3);
}

/* Abstrak dibatasi lebarnya agar tetap nyaman dibaca */
.ipub .ipub-abstract {
  max-width: 68ch;
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--ipub-ink);
}
.ipub .ipub-abstract p {
  margin: 0 0 1em;
}
.ipub .ipub-abstract p:last-child {
  margin-bottom: 0;
}

/* ------------------------------------------------------------
   Tabel metadata sebagai definition list
   ------------------------------------------------------------ */

.ipub .ipub-meta {
  display: grid;
  grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
  gap: 0;
  margin: 0;
  max-width: 68ch;
}
.ipub .ipub-meta dt,
.ipub .ipub-meta dd {
  margin: 0;
  padding: 11px 0;
  border-top: 1px solid var(--ipub-line);
  font-size: 14px;
  line-height: 1.55;
}
.ipub .ipub-meta dt:first-of-type,
.ipub .ipub-meta dt:first-of-type + dd {
  border-top: 0;
  padding-top: 0;
}
.ipub .ipub-meta dt {
  color: var(--ipub-ink-3);
  padding-right: 20px;
}
.ipub .ipub-meta dd {
  color: var(--ipub-ink);
}

/* ------------------------------------------------------------
   Daftar berkas
   ------------------------------------------------------------ */

.ipub .ipub-files {
  display: grid;
  gap: 8px;
  max-width: 68ch;
}
.ipub .ipub-file {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid var(--ipub-line);
  border-radius: var(--ipub-radius);
  color: var(--ipub-ink);
  text-decoration: none;
  transition: border-color 0.16s ease, background-color 0.16s ease;
}
.ipub .ipub-file:hover {
  border-color: var(--ipub-canopy);
  background: var(--ipub-tint);
  color: var(--ipub-ink);
  text-decoration: none;
}
.ipub .ipub-file__icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 6px;
  background: var(--ipub-tint);
  color: var(--ipub-canopy);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.ipub .ipub-file:hover .ipub-file__icon {
  background: #fff;
}
.ipub .ipub-file__body {
  flex: 1 1 auto;
  min-width: 0;
}
.ipub .ipub-file__name {
  display: block;
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: -0.005em;
}
.ipub .ipub-file__note {
  display: block;
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--ipub-ink-3);
  font-variant-numeric: tabular-nums;
}
.ipub .ipub-file__arrow {
  flex: none;
  width: 17px;
  height: 17px;
  color: var(--ipub-ink-3);
  transition: transform 0.16s ease, color 0.16s ease;
}
.ipub .ipub-file:hover .ipub-file__arrow {
  color: var(--ipub-canopy);
  transform: translateY(2px);
}

/* ------------------------------------------------------------
   Sitasi
   ------------------------------------------------------------ */

.ipub .ipub-cite {
  max-width: 68ch;
}
.ipub .ipub-cite__text {
  padding: 16px 18px;
  border: 1px solid var(--ipub-line);
  border-left: 3px solid var(--ipub-canopy);
  border-radius: var(--ipub-radius);
  background: var(--ipub-tint);
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--ipub-ink);
}
.ipub .ipub-cite__copy {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  height: 38px;
  padding: 0 16px;
  border: 1px solid var(--ipub-line-strong);
  border-radius: var(--ipub-radius);
  background: none;
  color: var(--ipub-ink);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.16s ease, background-color 0.16s ease,
    color 0.16s ease;
}
.ipub .ipub-cite__copy:hover {
  border-color: var(--ipub-canopy);
  background: var(--ipub-tint);
}
.ipub .ipub-cite__copy svg {
  width: 15px;
  height: 15px;
}
.ipub .ipub-cite__copy.is-copied {
  border-color: var(--ipub-canopy);
  background: var(--ipub-canopy);
  color: #fff;
}

/* ------------------------------------------------------------
   Tablet dan ponsel
   ------------------------------------------------------------ */

@media (max-width: 900px) {
  .ipub .ipub-detail {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 36px;
  }
}

@media (max-width: 640px) {
  .ipub .ipub-detail {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .ipub .ipub-rail {
    position: static;
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
  }
  .ipub .ipub-download {
    margin-top: 0;
  }
  .ipub .ipub-doc__title {
    max-width: none;
  }
  .ipub .ipub-section {
    margin-top: 32px;
    padding-top: 26px;
  }
  .ipub .ipub-meta {
    grid-template-columns: minmax(0, 1fr);
  }
  .ipub .ipub-meta dt {
    padding-bottom: 0;
    border-top: 1px solid var(--ipub-line);
  }
  .ipub .ipub-meta dd {
    padding-top: 3px;
    border-top: 0;
  }
  .ipub .ipub-meta dt:first-of-type + dd {
    padding-top: 3px;
  }
  .ipub .ipub-abstract {
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ipub .ipub-download:hover,
  .ipub .ipub-file:hover .ipub-file__arrow,
  .ipub .ipub-back:hover svg {
    transform: none;
  }
}

/* ------------------------------------------------------------
   Kata kunci
   ------------------------------------------------------------ */

.ipub .ipub-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  max-width: 68ch;
}
.ipub .ipub-tag {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border-radius: var(--ipub-radius);
  background: var(--ipub-tint);
  color: var(--ipub-ink-2);
  font-size: 13px;
  text-decoration: none;
  transition: background-color 0.16s ease, color 0.16s ease;
}
.ipub .ipub-tag:hover {
  background: var(--ipub-canopy);
  color: #fff;
  text-decoration: none;
}

/* ============================================================
   TATA LETAK SIDEBAR — kolom filter di kiri, hasil di kanan
   ============================================================ */

.ipub .ipub-layout {
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr);
  gap: 44px;
  align-items: start;
}

/* Kolom filter sengaja TIDAK menempel saat menggulir: header tema
   WordPress ikut menempel di atas, dan keduanya saling bertabrakan. */
.ipub .ipub-filters {
  position: static;
}

.ipub .ipub-results {
  min-width: 0;
}

/* ------------------------------------------------------------
   Kelompok kendali
   ------------------------------------------------------------ */

.ipub .ipub-field-group {
  margin-bottom: 22px;
}
.ipub .ipub-field-group:last-child {
  margin-bottom: 0;
}

.ipub .ipub-label {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ipub-ink-3);
}

/* ------------------------------------------------------------
   Kotak pencarian di sidebar
   ------------------------------------------------------------ */

.ipub .ipub-search {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 6px 0 12px;
  background: var(--ipub-surface);
  border: 1px solid var(--ipub-line-strong);
  border-radius: var(--ipub-radius);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.ipub .ipub-search:focus-within {
  border-color: var(--ipub-canopy);
  box-shadow: 0 0 0 3px rgba(31, 91, 52, 0.12);
}
.ipub .ipub-search__icon {
  flex: none;
  width: 17px;
  height: 17px;
  color: var(--ipub-ink-3);
}
.ipub .ipub-search__input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: none;
  font-size: 14.5px;
  letter-spacing: -0.005em;
}
.ipub .ipub-search__input::placeholder {
  color: var(--ipub-ink-3);
}
.ipub .ipub-search__input::-webkit-search-decoration,
.ipub .ipub-search__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}
.ipub .ipub-search__submit {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 6px;
  background: var(--ipub-canopy);
  color: #fff;
  cursor: pointer;
  transition: background-color 0.18s ease;
}
.ipub .ipub-search__submit:hover {
  background: var(--ipub-canopy-deep);
}
.ipub .ipub-search__submit svg {
  width: 15px;
  height: 15px;
}

/* ------------------------------------------------------------
   Dropdown
   ------------------------------------------------------------ */

.ipub .ipub-select {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 38px 0 12px;
  border: 1px solid var(--ipub-line-strong);
  border-radius: var(--ipub-radius);
  background-color: var(--ipub-surface);
  color: var(--ipub-ink);
  font-size: 14.5px;
  line-height: 1.4;
  letter-spacing: -0.005em;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  /* Chevron digambar lewat CSS agar tampil sama di semua peramban */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237d8b83' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.ipub .ipub-select:hover {
  border-color: var(--ipub-ink-3);
}
.ipub .ipub-select:focus {
  outline: 0;
  border-color: var(--ipub-canopy);
  box-shadow: 0 0 0 3px rgba(31, 91, 52, 0.12);
}
/* Nilai aktif ditandai agar terlihat sekilas mana yang sedang menyaring */
.ipub .ipub-select.is-active {
  border-color: var(--ipub-canopy);
  background-color: var(--ipub-tint);
  font-weight: 500;
}

/* Tombol terapkan, hanya tampil bila JavaScript mati */
.ipub .ipub-apply {
  display: none;
  width: 100%;
  height: 40px;
  margin-top: 14px;
  border: 0;
  border-radius: var(--ipub-radius);
  background: var(--ipub-canopy);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.ipub .ipub-apply:hover {
  background: var(--ipub-canopy-deep);
}
.no-js .ipub .ipub-apply,
.ipub .ipub-filters:not([data-ipub-auto]) .ipub-apply {
  display: block;
}

/* ------------------------------------------------------------
   Tautan hapus filter
   ------------------------------------------------------------ */

.ipub .ipub-reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--ipub-line);
  width: 100%;
  color: var(--ipub-ink-2);
  font-size: 13.5px;
  text-decoration: none;
  transition: color 0.16s ease;
}
.ipub .ipub-reset:hover {
  color: var(--ipub-canopy);
  text-decoration: none;
}
.ipub .ipub-reset svg {
  width: 14px;
  height: 14px;
}

/* ------------------------------------------------------------
   Ponsel dan tablet
   ------------------------------------------------------------ */

@media (max-width: 900px) {
  .ipub .ipub-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  /* Di ponsel filter berubah jadi panel di atas hasil, sehingga
     pengunjung melihatnya sebelum daftar. */
  .ipub .ipub-filters {
    padding: 18px;
    border: 1px solid var(--ipub-line);
    border-radius: var(--ipub-radius);
    background: var(--ipub-tint);
  }

  /* Dropdown berdampingan agar tidak memakan tinggi layar */
  .ipub .ipub-filters__row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
  .ipub .ipub-filters__row .ipub-field-group {
    margin-bottom: 0;
  }
  .ipub .ipub-search {
    background: var(--ipub-surface);
  }
  .ipub .ipub-field-group {
    margin-bottom: 16px;
  }
  .ipub .ipub-reset {
    margin-top: 14px;
    padding-top: 14px;
  }
}

@media (max-width: 640px) {
  .ipub .ipub-filters__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .ipub .ipub-filters__row {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ------------------------------------------------------------
   Combobox — pengganti dropdown untuk daftar panjang.
   <select> aslinya disembunyikan oleh JavaScript; tanpa JS
   .ipub-combo tidak pernah dibuat dan select tetap tampil.
   ------------------------------------------------------------ */

.ipub .ipub-combo {
  position: relative;
}

.ipub .ipub-combo__native {
  display: none;
}

.ipub .ipub-combo__input {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 34px 0 12px;
  border: 1px solid var(--ipub-line-strong);
  border-radius: var(--ipub-radius);
  background-color: var(--ipub-surface);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237d8b83' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  background-size: 16px 16px;
  color: var(--ipub-ink);
  font-size: 14.5px;
  letter-spacing: -0.005em;
  cursor: text;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.ipub .ipub-combo__input::placeholder {
  color: var(--ipub-ink-3);
}
.ipub .ipub-combo__input:hover {
  border-color: var(--ipub-ink-3);
}
.ipub .ipub-combo__input:focus {
  outline: 0;
  border-color: var(--ipub-canopy);
  box-shadow: 0 0 0 3px rgba(31, 91, 52, 0.12);
}

/* Sedang menyaring: tepi hijau, dan chevron diganti tombol kosongkan */
.ipub .ipub-combo.has-value .ipub-combo__input {
  border-color: var(--ipub-canopy);
  background-color: var(--ipub-tint);
  background-image: none;
  font-weight: 500;
}

.ipub .ipub-combo.is-open .ipub-combo__input {
  border-color: var(--ipub-canopy);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.ipub .ipub-combo__clear {
  display: none;
  position: absolute;
  top: 50%;
  right: 7px;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: none;
  color: var(--ipub-ink-3);
  cursor: pointer;
  transition: background-color 0.16s ease, color 0.16s ease;
}
.ipub .ipub-combo.has-value .ipub-combo__clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ipub .ipub-combo__clear:hover {
  background: rgba(22, 33, 27, 0.08);
  color: var(--ipub-ink);
}
.ipub .ipub-combo__clear svg {
  width: 14px;
  height: 14px;
}

/* ---------- Daftar pilihan ---------- */

.ipub .ipub-combo__list {
  display: none;
  position: absolute;
  z-index: 60;
  top: calc(100% - 1px);
  left: 0;
  right: 0;
  max-height: 264px;
  margin: 0;
  padding: 6px;
  overflow-y: auto;
  overscroll-behavior: contain;
  list-style: none;
  background: var(--ipub-surface);
  border: 1px solid var(--ipub-canopy);
  border-top-color: var(--ipub-line);
  border-radius: 0 0 var(--ipub-radius) var(--ipub-radius);
  box-shadow: 0 14px 28px -14px rgba(22, 33, 27, 0.35);
}
.ipub .ipub-combo.is-open .ipub-combo__list {
  display: block;
}

.ipub .ipub-combo__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.35;
  color: var(--ipub-ink);
  cursor: pointer;
}
.ipub .ipub-combo__option.is-active {
  background: var(--ipub-tint);
}
.ipub .ipub-combo__option[aria-selected="true"] {
  color: var(--ipub-canopy);
  font-weight: 600;
}
.ipub .ipub-combo__count {
  flex: none;
  color: var(--ipub-ink-3);
  font-size: 12.5px;
  font-variant-numeric: tabular-nums;
}
.ipub .ipub-combo__option.is-active .ipub-combo__count {
  color: var(--ipub-ink-2);
}

.ipub .ipub-combo__empty {
  padding: 12px 10px;
  color: var(--ipub-ink-3);
  font-size: 13.5px;
}

/* Panel filter di ponsel tidak boleh memotong daftar yang mengambang */
@media (max-width: 900px) {
  .ipub .ipub-filters {
    overflow: visible;
  }
}