/* ==========================================================================
   Wartana - stylesheet tunggal, tanpa dependency eksternal
   Urutan: token -> reset -> layout -> header -> kartu -> artikel -> footer
   ========================================================================== */

:root {
  --accent: #c8102e;
  --ink: #14171a;
  --ink-soft: #4a5157;
  --ink-mute: #767f87;
  --line: #e4e7ea;
  --bg: #ffffff;
  --bg-soft: #f6f7f9;
  --bg-dark: #10141a;
  --bg-blur: rgba(255, 255, 255, .82);
  --radius: 10px;
  --wrap: 1200px;
  --nav-h: 96px;                 /* tinggi navbar mengambang, diperbarui oleh JS */
  --shadow: 0 1px 2px rgba(16, 20, 26, .06), 0 8px 24px rgba(16, 20, 26, .06);
  --float: 0 6px 16px rgba(16, 20, 26, .10), 0 2px 6px rgba(16, 20, 26, .06);
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  color-scheme: light;
}

/*
  Tema gelap sengaja ditulis dua kali:
  - mengikuti preferensi sistem, KECUALI pembaca sudah memilih terang;
  - mengikuti pilihan manual pembaca, yang selalu menang atas keduanya.
  Penerapannya harus di sisi klien karena HTML disajikan dari page cache bersama.
*/
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink: #e9edf1;
    --ink-soft: #b3bcc5;
    --ink-mute: #8b959e;
    --line: #262c34;
    --bg: #0e1116;
    --bg-soft: #161b22;
    --bg-dark: #080b0f;
    --bg-blur: rgba(14, 17, 22, .82);
    --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);
    --float: 0 6px 18px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .35);
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --ink: #e9edf1;
  --ink-soft: #b3bcc5;
  --ink-mute: #8b959e;
  --line: #262c34;
  --bg: #0e1116;
  --bg-soft: #161b22;
  --bg-dark: #080b0f;
  --bg-blur: rgba(14, 17, 22, .82);
  --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);
  --float: 0 6px 18px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .35);
  color-scheme: dark;
}

/* ------------------------------------------------------------------ reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--bg);
  overflow-wrap: break-word;
}
img, picture, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent); }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; font-weight: 700; letter-spacing: -.015em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 4px; }

.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;
}
.skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--accent); color: #fff; padding: .6rem 1rem;
}
.skip:focus { left: 0; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 16px; }

/* ----------------------------------------------------------------- header */
.site-head { background: var(--bg); }

.topbar { background: var(--bg-soft); border-bottom: 1px solid var(--line); font-size: .8rem; }
.topbar-in { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 34px; }
.today { color: var(--ink-mute); }
.topbar-links { display: flex; gap: 1rem; }
.topbar-links a { color: var(--ink-soft); }

/* Desktop: logo + nama rata kiri, banner iklan sejajar di kanan. */
.masthead {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap; padding: 16px 16px 14px;
}
.brand { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.brand-logo { width: 60px; height: 60px; flex: none; }
.brand-lockup { display: grid; min-width: 0; }
.brand-name {
  font-size: clamp(1.5rem, 4vw, 2.3rem); font-weight: 800; letter-spacing: -.035em;
  color: var(--brand, var(--accent)); text-transform: uppercase; line-height: 1;
}
.brand-tag {
  font-size: .7rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-mute); margin-top: .3rem; font-weight: 600;
}

/* ------------------------------------------------------------- slot iklan */
/* flex: 0 1 auto + min-width:0 supaya banner ikut menyusut di layar sempit;
   tanpa itu banner 728 px memaksa halaman bisa digeser ke samping. */
/* flex: 0 1 auto + min-width:0 supaya banner ikut menyusut di layar sempit;
   tanpa itu banner 728 px memaksa halaman bisa digeser ke samping. */
.ad-slot { position: relative; flex: 0 1 auto; min-width: 0; max-width: 100%; text-align: center; line-height: 0; }
.ad-slot img { max-width: 100%; height: auto; border-radius: 6px; margin-inline: auto; }
.ad-header { width: 728px; max-width: 100%; }
/* Slot sidebar: persegi, mengisi lebar kolom samping. */
.ad-sidebar { width: 100%; }
.ad-sidebar img { width: 100%; border-radius: var(--radius); }
/* Penanda "Iklan" ditempel di pojok kanan atas banner, tidak lagi memakan
   baris sendiri di atasnya. */
.ad-label {
  position: absolute; top: 5px; right: 5px; z-index: 2;
  font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; line-height: 1.7;
  padding: 0 .45rem; border-radius: 4px;
  background: rgba(12, 15, 20, .55); color: #fff; backdrop-filter: blur(2px);
  pointer-events: none;
}

/* ------------------------------------------------------- navbar mengambang */
/*
  Wrapper sticky sengaja diletakkan di luar <header>: elemen sticky berhenti
  menempel begitu containing block-nya habis tergulung, jadi kalau navbar tetap
  berada di dalam header ia hanya menempel beberapa piksel lalu lepas.
*/
.navbar { position: sticky; top: 0; z-index: 40; }
.navbar-inner { transition: padding .2s ease; }

.mainnav { background: var(--bg); border-block: 1px solid var(--line); }
.mainnav-in { display: flex; align-items: center; gap: .5rem; min-height: 50px; }

.nav-brand {
  display: flex; align-items: center; flex: none; overflow: hidden;
  max-width: 0; opacity: 0; margin-right: 0;
  transition: max-width .28s ease, opacity .2s ease, margin-right .28s ease;
}
.nav-brand-mark {
  display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px;
  background: var(--accent); color: #fff; font-weight: 800; font-size: .82rem; letter-spacing: -.02em;
}
.navbar.is-stuck .nav-brand { max-width: 60px; opacity: 1; margin-right: .5rem; }
.nav-brand img { width: 34px; height: 34px; }
.nav-brand-text { display: none; }   /* hanya dipakai di layar kecil */

.nav-kanal { display: flex; align-items: center; gap: .1rem; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; }
.nav-kanal::-webkit-scrollbar { display: none; }
.nav-kanal a {
  padding: .8rem .7rem; font-size: .86rem; font-weight: 600; white-space: nowrap;
  color: var(--ink-soft); border-bottom: 3px solid transparent;
}
.nav-kanal a:hover, .nav-kanal a.is-active {
  color: var(--cat, var(--accent)); border-bottom-color: var(--cat, var(--accent));
}

/* Kolom pencarian: pendek, duduk di dalam menu */
.nav-search { position: relative; flex: none; width: 190px; }
.nav-search input {
  width: 100%; padding: .4rem 2.1rem .4rem .8rem; font-size: .82rem;
  border: 1px solid var(--line); border-radius: 999px;
  background: var(--bg-soft); color: var(--ink);
}
.nav-search input:focus { outline: none; border-color: var(--accent); background: var(--bg); }
.nav-search button {
  position: absolute; right: 2px; top: 50%; transform: translateY(-50%);
  border: 0; background: transparent; color: var(--ink-mute);
  padding: .3rem .5rem; display: grid; place-items: center;
}

.search-results {
  position: absolute; z-index: 60; top: calc(100% + 8px); right: 0; width: 340px; max-width: 78vw;
  background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--float); overflow: hidden; max-height: 70vh; overflow-y: auto;
}
.search-results a {
  display: grid; grid-template-columns: 64px 1fr; gap: .7rem;
  padding: .6rem .8rem; border-bottom: 1px solid var(--line);
}
.search-results a:last-child { border-bottom: 0; }
.search-results a:hover { background: var(--bg-soft); }
.search-results img { border-radius: 6px; aspect-ratio: 16/9; object-fit: cover; }
.search-results strong { display: block; font-size: .87rem; font-weight: 600; line-height: 1.35; }
.search-results small { color: var(--ink-mute); font-size: .75rem; }
.search-results .sr-empty { padding: .8rem; color: var(--ink-mute); font-size: .85rem; }

/* ----------------------------------------------------- tombol gelap/terang */
.theme-toggle {
  flex: none; display: grid; place-items: center; width: 34px; height: 34px;
  border: 1px solid var(--line); border-radius: 50%;
  background: var(--bg-soft); color: var(--ink-soft);
}
.theme-toggle:hover { border-color: var(--accent); color: var(--accent); }
.theme-toggle svg { grid-area: 1 / 1; transition: opacity .2s ease, transform .3s ease; }
.theme-toggle .icon-moon { opacity: 0; transform: rotate(-45deg) scale(.6); }
.theme-toggle[aria-pressed="true"] .icon-sun { opacity: 0; transform: rotate(45deg) scale(.6); }
.theme-toggle[aria-pressed="true"] .icon-moon { opacity: 1; transform: none; }

.nav-toggle { display: none; flex: none; border: 1px solid var(--line); background: var(--bg-soft); border-radius: 8px; padding: .45rem .55rem; }
.nav-toggle span { display: block; width: 18px; height: 2px; background: var(--ink); margin: 4px 0; border-radius: 2px; }

/* ----------------------------------------------------------- running text */
.breaking { background: var(--ticker, var(--accent)); color: #fff; font-size: .85rem; }
.breaking-in { display: flex; align-items: center; gap: .8rem; min-height: 36px; }
.breaking-viewport { flex: 1; min-width: 0; overflow: hidden; }
.breaking-tag {
  background: rgba(255, 255, 255, .18); padding: .15rem .6rem; border-radius: 999px;
  font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; flex: none;
}
/* Jarak dan durasi dihitung JS dari lebar isi sebenarnya, supaya kecepatannya
   tetap sama (px per detik) berapa pun jumlah headline-nya. Nilai di sini
   hanya cadangan bila JS mati. */
.breaking-list {
  display: flex; gap: 2.5rem; list-style: none; white-space: nowrap;
  animation: ticker var(--ticker-dur, 14s) linear infinite;
  will-change: transform;
}
.breaking-list a { color: #fff; }
.breaking:hover .breaking-list { animation-play-state: paused; }
@keyframes ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-1 * var(--ticker-x, 60%))); }
}
@media (prefers-reduced-motion: reduce) {
  .breaking-list { animation: none; overflow-x: auto; }
  html { scroll-behavior: auto; }
}

/* -------------------------------------------- tampilan saat mengambang ---- */
/*
  Saat mengambang, menu dan running text menyatu jadi satu kartu tanpa jarak:
  jarak luar dipegang .navbar, bayangan dipegang .navbar-inner, dan sudut
  membulat dibagi ke masing-masing anak (atas untuk menu, bawah untuk ticker).
  Bayangan sengaja tidak memakai overflow:hidden supaya dropdown saran
  pencarian tidak ikut terpotong.
*/
/* Saat mengambang, menu dan running text menempel penuh ke tepi atas, kiri,
   dan kanan layar - tanpa jarak dan tanpa sudut membulat. Bayangan tetap
   dipakai supaya batas dengan konten di bawahnya tetap terbaca. */
.navbar.is-stuck { padding: 0; }
.navbar.is-stuck .navbar-inner {
  max-width: none; margin-inline: 0; border-radius: 0;
  box-shadow: var(--float);
}
.navbar.is-stuck .mainnav {
  border-radius: 0; border-inline: 0; border-top: 0;
  background: var(--bg-blur);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  backdrop-filter: saturate(180%) blur(12px);
}
.navbar.is-stuck .mainnav-in { min-height: 46px; }
.navbar.is-stuck .breaking { border-radius: 0; }
.navbar.is-stuck .nav-kanal a { padding-block: .7rem; }

/* ----------------------------------------------------------------- layout */
main { padding: 24px 0 48px; }
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.main-col { min-width: 0; }

.section-title {
  font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em;
  border-bottom: 2px solid var(--line); padding-bottom: .5rem; margin: 2rem 0 1.2rem;
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  position: relative;
}
.section-title::before {
  content: ""; position: absolute; bottom: -2px; left: 0; width: 64px; height: 2px;
  background: var(--cat, var(--accent));
}
.section-more { font-size: .78rem; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--accent); }

.breadcrumb { font-size: .8rem; color: var(--ink-mute); padding: 12px 0 4px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; }
.breadcrumb li + li::before { content: "/"; margin-right: .35rem; color: var(--line); }
.breadcrumb a { color: var(--ink-soft); }

/* ------------------------------------------------------------------ kartu */
.card { display: flex; flex-direction: column; gap: .6rem; min-width: 0; }
.card-media { position: relative; display: block; border-radius: var(--radius); overflow: hidden; background: var(--bg-soft); }
.card-media img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; transition: transform .35s ease; }
.card-media:hover img { transform: scale(1.04); }
.card-cat {
  position: absolute; left: 10px; bottom: 10px;
  background: var(--cat, var(--accent)); color: #fff;
  font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  padding: .2rem .55rem; border-radius: 4px;
}
.card-title { margin: 0; font-size: 1.02rem; line-height: 1.35; }
.card-title a { background-image: linear-gradient(var(--accent), var(--accent)); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .25s; }
.card-title a:hover { background-size: 100% 1px; }
.card-excerpt { color: var(--ink-soft); font-size: .9rem; margin: 0; }
.card-meta { font-size: .76rem; color: var(--ink-mute); margin: 0; display: flex; gap: .4rem; flex-wrap: wrap; }
.card-kicker { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--accent); }

.hero-block { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 28px; margin: 20px 0 8px; }

/* --------------------------------------------------------- slider hero --- */
.hero-slider { position: relative; min-width: 0; overflow: hidden; }
.hero-track { display: flex; transition: transform .5s cubic-bezier(.4, 0, .2, 1); }
.hero-slide { flex: 0 0 100%; min-width: 0; }
@media (prefers-reduced-motion: reduce) { .hero-track { transition: none; } }

/*
  Lapisan kontrol dibuat setinggi gambar saja (16:9 = 56.25% dari lebar),
  supaya panah dan titik navigasi jatuh di atas foto, bukan di atas judul.
*/
.hero-controls {
  /* aspect-ratio, bukan height:56.25%. Persentase tinggi pada elemen absolut
     dihitung dari TINGGI induk (gambar + judul + ringkasan), bukan lebarnya,
     sehingga titik navigasi jatuh menimpa judul. */
  position: absolute; inset: 0 0 auto 0; aspect-ratio: 16 / 9;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 10px; pointer-events: none;
}
.hero-arrow {
  pointer-events: auto; display: grid; place-items: center;
  width: 38px; height: 38px; border-radius: 50%; border: 0;
  background: rgba(12, 15, 20, .45); color: #fff;
  opacity: 0; transition: opacity .2s ease, background .2s ease;
}
.hero-slider:hover .hero-arrow, .hero-arrow:focus-visible { opacity: 1; }
.hero-arrow:hover { background: rgba(12, 15, 20, .72); }

.hero-dots {
  pointer-events: auto; position: absolute; bottom: 12px; right: 12px;
  display: flex; gap: 6px;
}
.hero-dots button {
  width: 22px; height: 16px; padding: 0; border: 0; background: none; display: grid; place-items: center;
}
.hero-dots button span {
  display: block; width: 100%; height: 4px; border-radius: 2px;
  background: rgba(255, 255, 255, .55); transition: background .2s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}
.hero-dots button.is-active span { background: #fff; }
.hero-dots button:hover span { background: rgba(255, 255, 255, .85); }
.card-hero .card-title { font-size: 2rem; letter-spacing: -.02em; }
.card-hero .card-excerpt { font-size: 1rem; }
.hero-side { display: grid; gap: 1rem; align-content: start; }
.card-compact { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: .8rem; align-items: start; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.card-compact:last-child { border-bottom: 0; padding-bottom: 0; }
.card-compact .card-title { font-size: .92rem; }
.card-compact .card-media { border-radius: 8px; }
/* Kartu ringkas memakai gambar persegi. */
.card-compact .card-media img,
.card-compact .ph { aspect-ratio: 1; }
.card-compact .ph svg { width: 40%; }

.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
/*
  Blok kanal: kedua kolom selalu sama tinggi supaya tidak ada ruang kosong.
  - Kolom kanan lebih pendek: jarak antar-kartu ringkas melebar merata.
  - Kolom kiri lebih pendek: gambar kartu utama memanjang mengisi sisa tinggi
    (dipotong rapi dengan object-fit), minimal tetap 16:9.
*/
.kanal-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.kanal-side { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; min-width: 0; }
.kanal-grid > .card-feature .card-media { flex: 1 0 auto; aspect-ratio: 16 / 9; }
.kanal-grid > .card-feature .card-media img,
.kanal-grid > .card-feature .card-media .ph {
  position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover;
}

.list { display: grid; gap: 24px; }
.card-list { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.card-list:last-child { border-bottom: 0; }
.card-list .card-title { font-size: 1.25rem; }

.empty {
  padding: 2rem; background: var(--bg-soft); border: 1px dashed var(--line);
  border-radius: var(--radius); color: var(--ink-soft); text-align: center;
}

/* -------------------------------------------------------------- paginasi */
.pagination { display: flex; flex-wrap: wrap; gap: .35rem; margin: 2.5rem 0 0; }
.pg {
  min-width: 40px; padding: .5rem .75rem; text-align: center;
  border: 1px solid var(--line); border-radius: 8px; font-size: .88rem; font-weight: 600;
  color: var(--ink-soft);
}
.pg:hover { border-color: var(--accent); color: var(--accent); }
.pg.is-current { background: var(--accent); border-color: var(--accent); color: #fff; }
.pg-gap { border: 0; }

/* ---------------------------------------------------------------- sidebar */
.sidebar { display: grid; gap: 28px; position: sticky; top: calc(var(--nav-h) + 16px); }
.widget { border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: var(--bg); }
.widget-title {
  font-size: .82rem; text-transform: uppercase; letter-spacing: .07em;
  margin: 0 0 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--line);
}
.rank-list { list-style: none; display: grid; gap: .75rem; }
.rank-list li {
  display: grid; grid-template-columns: 26px 1fr; gap: .6rem; align-items: start;
  font-size: .88rem; line-height: 1.4; padding-bottom: .75rem; border-bottom: 1px solid var(--line);
}
.rank-list a { font-weight: 700; }
.rank-list li:last-child { padding-bottom: 0; border-bottom: 0; }
.rank-num { font-size: 1.2rem; font-weight: 800; color: var(--accent); opacity: .35; line-height: 1.15; }
.tag-cloud { display: flex; flex-wrap: wrap; gap: .4rem; }
.tag-cloud a {
  font-size: .78rem; padding: .3rem .7rem; border: 1px solid var(--line);
  border-radius: 999px; color: var(--ink-soft); background: var(--bg-soft);
}
.tag-cloud a:hover { border-color: var(--accent); color: var(--accent); }
.tag-cloud small { color: var(--ink-mute); }
.widget-cta { background: var(--bg-soft); font-size: .88rem; }

.btn {
  display: inline-block; padding: .6rem 1.2rem; border-radius: 8px;
  background: var(--accent); color: #fff; border: 1px solid var(--accent);
  font-weight: 600; font-size: .9rem;
}
.btn:hover { color: #fff; filter: brightness(1.08); }
.btn-outline { background: transparent; color: var(--accent); }
.btn-outline:hover { background: var(--accent); color: #fff; }

/* ---------------------------------------------------------------- artikel */
.archive-head { padding: 12px 0 24px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.archive-head h1 { font-size: 2rem; position: relative; padding-left: 14px; }
.archive-head h1::before {
  content: ""; position: absolute; left: 0; top: .15em; bottom: .15em;
  width: 5px; border-radius: 3px; background: var(--cat, var(--accent));
}
.archive-count { font-size: .82rem; color: var(--ink-mute); margin: 0; }
.author-head { display: flex; gap: 20px; align-items: flex-start; }
.avatar { border-radius: 50%; object-fit: cover; }
.avatar-lg { width: 96px; height: 96px; }
.year-filter { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 24px; }
.year-filter a { font-size: .82rem; padding: .35rem .8rem; border: 1px solid var(--line); border-radius: 999px; }
.year-filter a.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }

.post-head { padding: 8px 0 16px; }
.post-cat {
  display: inline-block; background: var(--cat, var(--accent)); color: #fff;
  font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  padding: .25rem .7rem; border-radius: 4px; margin-bottom: .9rem;
}
.post-cat:hover { color: #fff; filter: brightness(1.1); }
.post-title { font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: -.025em; }
.post-lead { font-size: 1.1rem; color: var(--ink-soft); line-height: 1.55; }
.post-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem;
  font-size: .82rem; color: var(--ink-mute);
  padding: .6rem 0; border-block: 1px solid var(--line);
}
.post-meta .byline a { font-weight: 600; color: var(--ink); }

.post-figure { margin: 20px 0; }
.post-figure img { width: 100%; border-radius: var(--radius); aspect-ratio: 16/9; object-fit: cover; }
.post-figure figcaption { font-size: .8rem; color: var(--ink-mute); padding-top: .5rem; border-bottom: 1px solid var(--line); padding-bottom: .7rem; }

.share { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 18px 0; }
.share-label { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-mute); margin-right: .3rem; }

/* Tombol berbentuk lambang aplikasi, memakai warna merek masing-masing. */
.share-btn {
  display: grid; place-items: center; width: 36px; height: 36px; padding: 0;
  border: 0; border-radius: 50%; color: #fff; cursor: pointer;
  transition: transform .15s ease, filter .15s ease;
}
.share-btn:hover { transform: translateY(-2px); filter: brightness(1.1); }
.share-btn svg { display: block; }
.share-wa { background: #25d366; }
.share-fb { background: #1877f2; }
.share-x  { background: #0f1419; }
.share-tg { background: #26a5e4; }
.share-salin { background: var(--bg-soft); color: var(--ink-soft); border: 1px solid var(--line); }
.share-salin:hover { color: var(--accent); border-color: var(--accent); }
.share-salin.is-tersalin { background: #1a7f4b; border-color: #1a7f4b; color: #fff; }

/* Hitam pekat tenggelam di tema gelap; naikkan sedikit agar tetap terbaca. */
:root[data-theme="dark"] .share-x { background: #2a3038; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .share-x { background: #2a3038; }
}

/* Versi ringkas: menempel di ujung kanan baris metadata artikel. */
.share-compact { margin: 0 0 0 auto; gap: .35rem; }
.share-compact .share-btn { width: 30px; height: 30px; }
.share-compact .share-btn svg { width: 15px; height: 15px; }

.post-body { font-size: 1.08rem; line-height: 1.8; }
/* Huruf awal besar hanya untuk paragraf tulisan biasa: kotak catatan redaksi
   (.lead-note) tidak ikut, dan seluruhnya bisa dimatikan di Customizer. */
.drop-cap .post-body > p:first-of-type:not(.lead-note)::first-letter {
  float: left; font-family: var(--serif); font-size: 3.4rem; line-height: .82;
  padding: .1rem .55rem .1rem 0; color: var(--accent); font-weight: 700;
}
.post-body h2 { font-size: 1.5rem; margin-top: 2rem; scroll-margin-top: calc(var(--nav-h) + 16px); }
.post-body h3 { font-size: 1.22rem; margin-top: 1.6rem; scroll-margin-top: calc(var(--nav-h) + 16px); }
.post-body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.post-body ul, .post-body ol { margin: 0 0 1.2em; padding-left: 1.4rem; }
.post-body li { margin-bottom: .4em; }
.post-body img { border-radius: var(--radius); margin: 1.4rem 0; width: 100%; }
.post-body figure { margin: 1.4rem 0; }
.post-body figcaption { font-size: .82rem; color: var(--ink-mute); text-align: center; }
/* Kutipan narasumber tampil sama dengan paragraf lain: tanpa garis, miring, atau
   huruf serif. Berlaku untuk blok Kutipan editor blok maupun tombol kutipan editor klasik. */
.post-body blockquote,
.post-body .wp-block-quote {
  margin: 0 0 1em; padding: 0; border: 0;
  font: inherit; color: inherit; font-style: normal;
}
.post-body blockquote p:last-child { margin-bottom: 0; }
.post-body blockquote cite { display: block; font-style: normal; font-size: .9em; color: var(--ink-mute); }
.post-body table { width: 100%; border-collapse: collapse; margin: 1.4rem 0; font-size: .93rem; }
.post-body th, .post-body td { border: 1px solid var(--line); padding: .55rem .7rem; text-align: left; }
.post-body th { background: var(--bg-soft); }
.post-body pre { background: var(--bg-soft); padding: 1rem; border-radius: 8px; overflow-x: auto; font-size: .88rem; }
.post-body hr { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }

.post-tags { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: 1.8rem 0; font-size: .82rem; }
.post-tags > span { font-weight: 700; color: var(--ink-mute); text-transform: uppercase; letter-spacing: .05em; font-size: .75rem; }
.post-tags a { padding: .28rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--bg-soft); }
.post-tags a:hover { border-color: var(--accent); color: var(--accent); }

.author-box { margin: 2rem 0; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-soft); }
.author-box h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-mute); }
.author-in { display: flex; gap: 16px; }
.author-in .avatar { width: 72px; height: 72px; flex: none; }
.author-name { font-size: 1.05rem; font-weight: 700; margin: 0; }
.author-role { font-size: .78rem; color: var(--ink-mute); margin: 0 0 .5rem; }

.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 2rem 0; }
.post-nav-item { border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; display: grid; gap: .3rem; }
.post-nav-item:hover { border-color: var(--accent); }
.post-nav-item span { font-size: .74rem; color: var(--ink-mute); text-transform: uppercase; letter-spacing: .05em; }
.post-nav-item strong { font-size: .92rem; line-height: 1.35; font-weight: 600; }
.post-nav-next { text-align: right; }

/* Judul di blok Berita Terkait diperkecil: perannya pelengkap, tidak boleh
   bersaing dengan judul artikel yang sedang dibaca. */
.related .card-title { font-size: .9rem; line-height: 1.4; }
.related .card-meta { font-size: .72rem; }

.static-page { max-width: 760px; margin: 0 auto; padding-bottom: 2rem; }
.static-page h1 { font-size: clamp(1.7rem, 3.5vw, 2.3rem); }
.page-updated { font-size: .8rem; color: var(--ink-mute); border-bottom: 1px solid var(--line); padding-bottom: 1rem; }

.error-page { max-width: 720px; margin: 0 auto; text-align: center; padding: 40px 0; }
.error-code { font-size: 5rem; font-weight: 800; color: var(--accent); line-height: 1; margin: 0; opacity: .25; }
.error-page .search-big { justify-content: center; }
.error-page .related { text-align: left; }

.search-big { display: flex; gap: .5rem; max-width: 520px; margin: 1rem 0; }
.search-big input {
  flex: 1; padding: .65rem 1rem; border: 1px solid var(--line);
  border-radius: 8px; background: var(--bg-soft); color: var(--ink); font-size: .95rem;
}

.flash { padding: .8rem 1rem; border-radius: 8px; margin: 1rem 0; font-size: .9rem; }
.flash-success { background: #e7f6ec; color: #1d6b38; border: 1px solid #bfe4cd; }
.flash-error { background: #fdecec; color: #a01c1c; border: 1px solid #f5c6c6; }

/* ----------------------------------------------------------------- footer */
/* Latar memakai warna aksen situs, digelapkan otomatis oleh readable_bg()
   bila kontrasnya dengan teks putih belum memenuhi WCAG AA. */
.site-foot { background: var(--foot, var(--bg-dark)); color: rgba(255, 255, 255, .88); margin-top: 48px; padding: 40px 0 20px; font-size: .9rem; }
.foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; align-items: start; }
.foot-brand { font-size: 1.3rem; font-weight: 800; color: #fff; text-transform: uppercase; letter-spacing: -.02em; margin-bottom: .5rem; }
.site-foot a { color: rgba(255, 255, 255, .88); }
.site-foot a:hover { color: #fff; text-decoration: underline; }
.foot-col h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: #fff; margin-bottom: .9rem; }
.foot-col ul { list-style: none; display: grid; gap: .5rem; }
.foot-social { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; font-size: .85rem; }
.foot-contact a { text-decoration: underline; }
.foot-bottom {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem;
  border-top: 1px solid rgba(255, 255, 255, .22); margin-top: 32px; padding-top: 18px;
  font-size: .8rem; color: rgba(255, 255, 255, .78);
}
.foot-bottom p { margin: 0; }

/* Gambar pilihan pengguna di bawah kontak redaksi. Tinggi dibatasi supaya
   gambar besar tidak membuat footer memanjang; proporsi tetap terjaga. */
.foot-image { margin-top: 1.2rem; }
.foot-image a { display: inline-block; }
.foot-image a:hover { text-decoration: none; opacity: .9; }
.foot-image-img { display: block; width: auto; max-width: min(100%, 320px); max-height: 160px; height: auto; object-fit: contain; }
.foot-bottom-links { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }

.to-top {
  position: fixed; right: 18px; bottom: 18px; z-index: 40;
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line);
  background: var(--bg); color: var(--ink); box-shadow: var(--shadow); font-size: 1.1rem;
}

/* ------------------------------------------------------------ responsive */
@media (max-width: 1024px) {
  .nav-search { width: 150px; }
  .layout { grid-template-columns: 1fr; gap: 32px; }
  .sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-block { grid-template-columns: 1fr; }
  .card-hero .card-title { font-size: 1.6rem; }
}

@media (max-width: 760px) {

  /*
    Di layar kecil hanya daftar kanal yang dilipat. Logo, pencarian, tombol
    tema, dan hamburger tetap terlihat karena navbar ini satu-satunya jalan
    navigasi begitu masthead tergulung ke atas.
  */
  /* Header mobile hanya untuk banner iklan; identitas situs sudah dibawa
     navbar yang selalu terlihat. Tanpa iklan, header ikut disembunyikan. */
  .masthead { justify-content: center; padding: 10px 16px; }
  .masthead .brand { display: none; }
  .masthead-noad { display: none; }
  .ad-label { text-align: center; }

  .nav-toggle { display: block; order: 4; }
  /*
    Masthead mobile berisi banner iklan, jadi nama situs dibawa navbar.
    Selektor .navbar.is-stuck ikut ditulis ulang di sini: versi di luar media
    query membatasi lebar logo ke 60 px, dan karena spesifisitasnya lebih
    tinggi ia akan memotong nama situs begitu menu mengambang.
  */
  .nav-brand,
  .navbar.is-stuck .nav-brand {
    max-width: none; opacity: 1; margin-right: .5rem; gap: .5rem;
    flex: 0 1 auto; min-width: 0; overflow: hidden;
  }
  .nav-brand-text { display: grid; min-width: 0; }
  .nav-brand-name {
    font-size: 1.22rem; font-weight: 800; letter-spacing: -.03em; line-height: 1;
    color: var(--brand, var(--accent)); text-transform: uppercase; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
  }
  .nav-brand-tag {
    font-size: .58rem; letter-spacing: .08em; text-transform: uppercase;
    color: var(--ink-mute); margin-top: .05rem; line-height: 1.1; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
  }
  /* Tombol tema dan hamburger dikelompokkan di kanan supaya baris navbar
     tidak menyisakan ruang kosong di tengah. */
  .theme-toggle { order: 3; margin-left: auto; }

  /* Pencarian ikut masuk laci menu, tidak lagi menempel di baris navbar. */
  .nav-search { display: none; }
  .navbar.is-menu-open .nav-search {
    display: block; order: 5; flex: 0 0 100%; width: auto; margin-top: 10px;
  }
  .search-results { width: auto; left: 0; right: 0; max-width: none; }

  .nav-kanal {
    order: 6; flex: 0 0 100%; flex-direction: column; align-items: stretch;
    max-height: 0; overflow: hidden; transition: max-height .25s ease;
  }
  .navbar.is-menu-open .nav-kanal { max-height: 60vh; overflow-y: auto; }
  .nav-kanal a {
    border-bottom: 1px solid var(--line); border-left: 3px solid transparent;
    padding: .7rem .6rem;
  }
  .nav-kanal a.is-active { border-bottom-color: var(--line); border-left-color: var(--cat, var(--accent)); }
  .mainnav-in { flex-wrap: wrap; padding-block: 8px; }


  .topbar-links { display: none; }
  .grid, .grid-4, .kanal-grid, .sidebar { grid-template-columns: 1fr; }
  .kanal-side { gap: .9rem; margin-top: .2rem; }

  /*
    Gambar slider dibuat menyentuh tepi layar dengan menembus padding .wrap
    (16 px kiri-kanan). Teks judul diberi padding sendiri supaya tetap sejajar
    dengan konten lain di bawahnya.
  */
  .hero-slider { margin-inline: -16px; }
  .hero-slider .card-media,
  .hero-slider .card-media img { border-radius: 0; }
  .hero-slider .card-body { padding-inline: 16px; }
  .hero-slider .card-cat { left: 16px; }
  .hero-controls { padding-inline: 4px; }
  .hero-dots { right: 16px; }
  .card-list { grid-template-columns: 1fr; gap: .8rem; }
  .card-list .card-title { font-size: 1.1rem; }
  /* Di layar sempit tombol bagikan atas disembunyikan: baris metadata jadi
     lega, dan pembaca tetap punya tombol bagikan lengkap di bawah artikel. */
  .share-compact { display: none; }
  .post-nav { grid-template-columns: 1fr; }
  .post-nav-next { text-align: left; }
  /* Kanal dan Informasi berdampingan supaya footer tidak memanjang. */
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 24px 20px; }
  .foot-about { grid-column: 1 / -1; }
  /* Ruang untuk tombol "ke atas" yang mengambang di sudut kanan bawah. */
  .foot-bottom { padding-bottom: 46px; }
  .author-head { flex-direction: column; }
  .post-body { font-size: 1.02rem; }
  .drop-cap .post-body > p:first-of-type:not(.lead-note)::first-letter { font-size: 2.8rem; }
}

@media print {
  .site-head, .site-foot, .sidebar, .share, .post-nav, .related, .to-top, .breadcrumb { display: none !important; }
  .layout { grid-template-columns: 1fr; }
  body { font-size: 12pt; color: #000; background: #fff; }
}

/* Kartu kompak tanpa gambar: teks memakai seluruh lebar, bukan kolom thumbnail */
.card-compact.card-noimg { grid-template-columns: 1fr; }

/* ------------------------------------------------------------ placeholder */
/* Dipakai saat artikel belum punya gambar. Berbasis token supaya ikut
   berubah pada tampilan gelap, termasuk yang dipilih manual pembaca. */
.ph {
  display: grid; place-items: center;
  aspect-ratio: 16 / 9; width: 100%;
  background: var(--bg-soft);
  border: 1px dashed var(--line);
  color: var(--ink-mute);
  border-radius: inherit;
}
.ph svg { width: 34%; max-width: 76px; height: auto; opacity: .5; }
.card-compact .ph svg { width: 46%; }

/* --------------------------------------------------------- penanda isian */
/* Dipakai di halaman statis untuk menandai data yang harus diisi redaksi
   (nama, alamat, badan hukum) - sengaja mencolok agar tidak terlewat. */
.perlu-diisi {
  background: #fff3cd; color: #7a5a00; padding: .08em .45em;
  border-radius: 4px; font-style: normal; font-size: .92em; font-weight: 600;
}
:root[data-theme="dark"] .perlu-diisi { background: #3a2f0b; color: #f0d78a; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .perlu-diisi { background: #3a2f0b; color: #f0d78a; }
}
.post-body .lead-note {
  background: var(--bg-soft); border-left: 4px solid var(--accent);
  padding: .9rem 1.1rem; border-radius: 0 8px 8px 0; margin: 0 0 1.6rem;
  font-size: .95rem; color: var(--ink-soft);
}

/* ------------------------------------------------------------- peta situs */
.sitemap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-bottom: 8px; }
.sitemap-list { list-style: none; display: grid; gap: .5rem; font-size: .92rem; }
.sitemap-list li { display: flex; justify-content: space-between; gap: .8rem; align-items: baseline; }
.sitemap-list li > a { border-left: 3px solid var(--cat, transparent); padding-left: .5rem; }
.sitemap-list li > span { font-size: .78rem; color: var(--ink-mute); flex: none; }
.sitemap-articles { list-style: none; display: grid; gap: .1rem; }
.sitemap-articles li {
  display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
  padding: .6rem 0; border-bottom: 1px solid var(--line); font-size: .95rem;
}
.sitemap-articles time { font-size: .78rem; color: var(--ink-mute); flex: none; }
@media (max-width: 600px) {
  .sitemap-articles li { flex-direction: column; gap: .2rem; }
}
.year-filter { align-items: center; margin-bottom: 12px; }
.filter-label {
  font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  color: var(--ink-mute); margin-right: .2rem;
}
.share-salin.is-gagal { background: #c62828; border-color: #c62828; color: #fff; }

/* ------------------------------------------------ ajakan berlangganan push */
.push-ajak {
  position: fixed; z-index: 80; left: 16px; bottom: 16px; width: min(380px, calc(100vw - 32px));
  display: grid; grid-template-columns: auto 1fr; gap: .8rem 1rem;
  padding: 16px 18px; border-radius: 14px;
  background: var(--bg); border: 1px solid var(--line); box-shadow: var(--float);
  opacity: 0; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease;
}
.push-ajak.is-tampil { opacity: 1; transform: none; }
.push-ikon {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
  background: var(--accent); color: #fff; flex: none;
}
.push-judul { margin: 0 0 .2rem; font-weight: 700; font-size: .98rem; }
.push-teks { margin: 0; font-size: .85rem; color: var(--ink-soft); line-height: 1.45; }
.push-status { margin: .5rem 0 0; font-size: .82rem; color: var(--ink-mute); }
.push-status-ok { color: #1a7f4b; font-weight: 600; }
.push-status-gagal { color: #c62828; font-weight: 600; }
.push-aksi { grid-column: 1 / -1; display: flex; gap: .5rem; }
.btn-push-ya, .btn-push-tidak {
  flex: 1; padding: .55rem .9rem; border-radius: 8px; font-size: .87rem; font-weight: 600;
  border: 1px solid var(--accent); cursor: pointer;
}
.btn-push-ya { background: var(--accent); color: #fff; }
.btn-push-ya:hover { filter: brightness(1.08); }
.btn-push-tidak { background: transparent; color: var(--ink-soft); border-color: var(--line); }
.btn-push-tidak:hover { border-color: var(--ink-mute); }
.push-tutup {
  position: absolute; top: 6px; right: 8px; border: 0; background: none;
  color: var(--ink-mute); font-size: 1.3rem; line-height: 1; padding: .2rem .4rem; cursor: pointer;
}
.push-tutup:hover { color: var(--ink); }
@media (max-width: 480px) {
  .push-ajak { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 14px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .push-ajak { transition: none; }
}

/* ------------------------------------------- kaki artikel: sumber & bagikan */
/* Sumber di kiri, tombol bagikan didorong ke kanan pada baris yang sama. */
.post-kaki {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .8rem 1.2rem;
  margin: 20px 0; padding-top: 16px; border-top: 1px solid var(--line);
}
.post-kaki .share { margin: 0; }
.post-sumber { margin: 0; display: grid; gap: .15rem; font-size: .84rem; min-width: 0; }
.post-sumber > span {
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .09em; color: var(--ink-mute);
}
.post-sumber > a, .post-sumber > strong {
  font-weight: 600; color: var(--ink); word-break: break-word;
}
.post-sumber > a:hover { color: var(--accent); text-decoration: underline; }
.post-sumber-sendiri > strong { color: var(--accent); }

@media (max-width: 560px) {
  .post-kaki { flex-direction: column; align-items: flex-start; }
  .post-kaki .share { width: 100%; }
}

/* ==========================================================================
   Tambahan khusus WordPress: konten editor blok, komentar, kelas bawaan inti
   ========================================================================== */

/* Nama situs menjadi <h1> di beranda; tampilannya harus sama dengan <span>. */
h1.brand-name { margin: 0; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  clip: auto; width: auto; height: auto; margin: 0; z-index: 100;
  left: 8px; top: 8px; padding: .6rem 1rem; background: var(--bg); color: var(--ink);
}

/* Slot iklan di tengah tulisan */
.ad-article { margin: 1.8rem auto; }
.post-body .ad-article img { margin: 0 auto; width: auto; }

/* Perataan dan keterangan gambar dari editor */
.alignleft  { float: left; margin: .4rem 1.4rem 1rem 0; max-width: 50%; }
.alignright { float: right; margin: .4rem 0 1rem 1.4rem; max-width: 50%; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide, .alignfull { width: 100%; }
.wp-caption { max-width: 100%; }
.wp-caption-text,
.wp-element-caption,
.blocks-gallery-caption { font-size: .82rem; color: var(--ink-mute); text-align: center; margin-top: .4rem; }
.post-body .alignleft img, .post-body .alignright img { margin: 0; }

/* Editor klasik menyisipkan <img class="size-medium wp-image-N"> langsung di
   paragraf, kadang dibungkus [caption]. Gambar seperti ini memakai ukuran
   aslinya (dibatasi lebar kolom), bukan dipaksa 100% seperti gambar besar. */
.post-body img[class*="wp-image-"] { width: auto; max-width: 100%; }
.post-body img.alignleft, .post-body img.alignright { margin-top: .4rem; margin-bottom: 1rem; }
.post-body img.aligncenter { margin-inline: auto; }
.post-body .wp-caption { margin: 1.4rem 0; }
.post-body .wp-caption.aligncenter { margin-inline: auto; }
.post-body .wp-caption.alignleft, .post-body .wp-caption.alignright { margin-top: .4rem; }
.post-body .wp-caption img { margin: 0; width: 100%; }
.post-body .wp-block-image { margin: 1.4rem 0; }
.post-body .wp-block-image img { margin: 0; }
.post-body .wp-block-gallery img { margin: 0; }
.post-body iframe, .post-body video, .post-body .wp-block-embed { max-width: 100%; }
.post-body .wp-block-embed { margin: 1.4rem 0; }
.post-body .wp-block-pullquote { border-block: 4px solid var(--accent); padding: 1.2rem 0; text-align: center; }
.post-body .wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; }
.post-body .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }
.post-body .wp-block-button__link { background: var(--accent); color: #fff; text-decoration: none; border-radius: 8px; }
.post-body .has-drop-cap:not(:focus)::first-letter { color: var(--accent); }
.post-body::after { content: ""; display: table; clear: both; }

/* Sisipan "Baca Juga" di sela paragraf */
.post-body .baca-juga {
  display: grid; gap: .15rem; margin: 0 0 1.4em; padding: .7rem 1rem;
  border-left: 4px solid var(--accent); background: var(--bg-soft);
  border-radius: 0 8px 8px 0; line-height: 1.4;
}
.post-body .baca-juga-label {
  font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--accent);
}
.post-body .baca-juga-link { font-size: .98rem; font-weight: 700; color: var(--ink); text-decoration: none; }
.post-body .baca-juga-link:hover { color: var(--accent); text-decoration: underline; }

/* Paginasi dalam artikel (blok "Page Break") */
.post-page-numbers { display: inline-block; }
.post-page-numbers.current .pg { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Avatar dari get_avatar() */
.author-in img.avatar { width: 72px; height: 72px; flex: none; }
.author-head img.avatar { width: 96px; height: 96px; flex: none; }

/* Menu dari Tampilan > Menu di bilah atas */
.topbar-links a:hover { color: var(--accent); }

/* ------------------------------------------------------------- komentar */
.comments { margin-top: 2.5rem; }
.comment-list { list-style: none; display: grid; gap: 1.2rem; margin-bottom: 2rem; }
.comment-list .children { list-style: none; padding-left: 1.6rem; margin-top: 1.2rem; display: grid; gap: 1.2rem; border-left: 2px solid var(--line); }
.comment-body { padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); font-size: .93rem; }
.comment-author { display: flex; align-items: center; gap: .6rem; font-weight: 700; }
.comment-author img.avatar { width: 36px; height: 36px; }
.comment-author .says { display: none; }
.comment-metadata { font-size: .76rem; color: var(--ink-mute); margin: .2rem 0 .6rem; }
.comment-metadata a { color: var(--ink-mute); }
.reply { font-size: .8rem; font-weight: 600; }
.reply a { color: var(--accent); }
.comment-respond { margin-top: 1rem; }
.comment-form { display: grid; gap: .8rem; }
.comment-form p { margin: 0; }
.comment-form label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: .25rem; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%; padding: .6rem .8rem; font: inherit; font-size: .95rem;
  border: 1px solid var(--line); border-radius: 8px; background: var(--bg-soft); color: var(--ink);
}
.comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: var(--accent); background: var(--bg); }
.comment-form-cookies-consent { display: flex; gap: .5rem; align-items: flex-start; font-size: .82rem; }
.comment-form-cookies-consent label { font-weight: 400; margin: 0; }
.comment-notes, .logged-in-as { font-size: .82rem; color: var(--ink-mute); }
#cancel-comment-reply-link { font-size: .78rem; margin-left: .6rem; text-transform: none; letter-spacing: 0; }

/* Paginasi komentar memakai markup inti WordPress */
.comments .navigation .nav-links { display: flex; gap: .35rem; flex-wrap: wrap; }
.comments .page-numbers { min-width: 40px; padding: .4rem .7rem; border: 1px solid var(--line); border-radius: 8px; text-align: center; font-size: .85rem; }
.comments .page-numbers.current { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Widget bawaan WordPress di sidebar */
.widget ul { list-style: none; display: grid; gap: .5rem; font-size: .9rem; }
.widget select, .widget input[type="search"] {
  width: 100%; padding: .5rem .7rem; border: 1px solid var(--line); border-radius: 8px;
  background: var(--bg-soft); color: var(--ink); font: inherit; font-size: .88rem;
}
.widget .wp-block-search__inside-wrapper { display: flex; gap: .4rem; }
.widget .wp-block-search__button { background: var(--accent); color: #fff; border: 0; border-radius: 8px; padding: .5rem .9rem; }

/* Bilah admin WordPress menutupi navbar mengambang saat login */
.admin-bar .navbar { top: 32px; }
@media (max-width: 782px) { .admin-bar .navbar { top: 46px; } }
@media (max-width: 600px) { .admin-bar .navbar { top: 0; } }

@media (max-width: 760px) {
  .alignleft, .alignright { float: none; max-width: 100%; margin: 1rem 0; }

  /*
    Pada baris yang boleh membungkus, flex menaruh item berdasarkan lebar isinya
    SEBELUM menyusutkannya - nama situs yang panjang mendorong hamburger ke baris
    kedua alih-alih terpotong dengan elipsis. Basis 0 membuat logo hanya mengisi
    sisa ruang di samping tombol tema dan hamburger.
  */
  .nav-brand,
  .navbar.is-stuck .nav-brand { flex: 1 1 0; }
}
