/* ===========================================================
   LONTAR Theme: Carpe
   Gaya editorial serif — dua huruf serif, palet nyaris
   hitam-putih, dan halaman lapang tanpa hiasan.

   Nilai warna dan lebar diambil dari Kustomisasi Theme lewat
   variabel yang ditimpa di <head>; aturan di bawah tidak perlu
   disentuh saat pemilik situs mengganti warna.
   =========================================================== */

:root {
    --tinta: #222222;          /* teks utama dan tautan */
    --redup: #7b7b7c;          /* tanggal, ringkasan, hover */
    --garis: #b2b2be;          /* garis bawah judul dan pemisah */
    --lembut: #eff7ff;         /* latar kotak lembut dan submenu */
    --baca: #ff0000;           /* tautan "Selengkapnya" */
    --latar: #ffffff;
    --lebar: 1500px;

    --serif-judul: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --serif-isi: 'Crimson Text', Georgia, 'Times New Roman', serif;
}

*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, h4, h5, h6, p, figure, ul, ol, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--serif-isi);
    font-size: 17px;
    line-height: 1.6;
    color: var(--tinta);
    background: var(--latar);
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--tinta); text-decoration: none; }
a:hover, a:focus { color: var(--redup); }

h1, h2, h3, h4, h5, h6 { font-family: var(--serif-judul); font-weight: 600; line-height: 1.2; }
h1 { font-size: 60px; }
h2 { font-size: 30px; }
h3 { font-size: 25px; }
h4 { font-size: 22px; }

.container { max-width: var(--lebar); margin: 0 auto; padding-left: 40px; padding-right: 40px; }

/* Tautan lompat untuk pembaca layar dan pengguna papan ketik */
.skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 100;
    background: var(--tinta); color: var(--latar); padding: 10px 16px;
}
.skip-link:focus { left: 0; color: var(--latar); }

/* ===================== HEADER ===================== */
.site-header { background: var(--latar); }
.inside-header {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 16px; padding-top: 24px; padding-bottom: 24px;
}
.site-logo img { width: 110px; }
.site-title { font-family: var(--serif-judul); font-size: 34px; line-height: 1.1; }
.site-tagline { font-size: 14px; color: var(--redup); margin-top: 4px; }

.menu-toggle {
    display: none; background: none; border: 0; cursor: pointer;
    font-family: var(--serif-isi); font-size: 17px; color: var(--redup);
    align-items: center; gap: 8px; padding: 6px 0;
}
.menu-toggle svg { width: 20px; height: 20px; fill: currentColor; }

/* ===================== NAVIGASI ===================== */
.main-navigation { border-top: 1px solid var(--garis); border-bottom: 1px solid var(--garis); }
.inside-navigation { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.main-nav { display: flex; flex-wrap: wrap; align-items: center; }
.main-nav li { position: relative; }
.main-nav a { display: block; padding: 14px 20px; font-size: 17px; color: var(--redup); }
.main-nav > li:first-child > a { padding-left: 0; }
.main-nav a:hover, .main-nav li.current > a { color: var(--tinta); }

/* Submenu: dibuka saat tetikus di atas induknya maupun saat fokus papan ketik */
.main-nav .sub-menu {
    position: absolute; top: 100%; left: 0; min-width: 220px; z-index: 20;
    background: var(--lembut); padding: 6px 0; display: none;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu { display: block; }
.main-nav .sub-menu a { padding: 10px 20px; }

.menu-bar-items { display: flex; align-items: center; gap: 6px; }
.search-toggle {
    background: none; border: 0; cursor: pointer; color: var(--redup);
    padding: 12px 0 12px 16px; line-height: 0;
}
.search-toggle:hover { color: var(--tinta); }
.search-toggle svg { width: 18px; height: 18px; fill: currentColor; }

/* Panel pencarian: tersembunyi sampai tombol kaca pembesar ditekan */
.search-panel { display: none; border-bottom: 1px solid var(--garis); }
.search-panel.is-open { display: block; }
.search-panel form { display: flex; align-items: center; gap: 12px; padding: 18px 0; }
.search-panel input {
    flex: 1; border: 0; background: transparent; font-family: var(--serif-isi);
    font-size: 22px; color: var(--tinta); padding: 6px 0;
}
.search-panel input:focus { outline: none; }
.search-panel button {
    background: none; border: 0; cursor: pointer; font-family: var(--serif-isi);
    font-size: 14px; letter-spacing: .15em; font-weight: 600; color: var(--baca);
}

/* ===================== KERANGKA ISI ===================== */
.page-hero {
    max-width: var(--lebar); margin: 0 auto;
    padding: 100px 40px; display: flex; flex-direction: column; align-items: center;
}
.page-hero h1 { width: 70%; text-align: center; }
.page-hero .page-hero__lead { width: 70%; text-align: center; color: var(--redup); margin-top: 24px; }

.site-content { padding-top: 40px; padding-bottom: 100px; }
.site-content--berkolom { display: grid; grid-template-columns: 3fr 1fr; column-gap: 60px; }
.site-main { min-width: 0; }

/* ===================== BARIS KETERANGAN ===================== */
.entry-meta { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1em; row-gap: 4px; font-size: 14px; }
.entry-meta__cat { display: inline-flex; align-items: center; column-gap: .5em; }
.entry-meta__cat svg { width: 1em; height: 1em; fill: currentColor; }
.entry-meta__date, .entry-meta__author { color: var(--redup); }

/* ===================== KARTU ===================== */
.post-card { padding: 30px 0; }
.post-card__title { margin-top: 20px; margin-bottom: 30px; padding-bottom: 10px; border-bottom: 1px solid var(--garis); }
.post-card__excerpt { color: var(--redup); font-size: 14px; margin-bottom: 20px; }
.post-card__thumb { margin-top: 20px; }

/* Tautan baca: satu-satunya warna mencolok di seluruh halaman */
.read-more {
    display: inline-flex; font-size: 14px; font-weight: 600;
    letter-spacing: .15em; color: var(--baca);
}
.read-more:hover { color: var(--baca); opacity: .75; }

/* Daftar tiga kolom untuk arsip */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 60px; }

/* Daftar satu kolom untuk halaman depan dan varian "daftar" */
.post-list { display: flex; flex-direction: column; row-gap: 60px; }
.post-list .post-card { padding: 0; }

/* Tulisan teratas di halaman depan: judul lebih besar, ringkasan lebih panjang */
.post-card--utama .post-card__title { font-size: 30px; }

/* ===================== ARTIKEL ===================== */
.entry-content { font-size: 19px; }
.entry-content > * + * { margin-top: 1.5em; }
.entry-content h2, .entry-content h3, .entry-content h4 { margin-top: 1.8em; }
.entry-content blockquote {
    border-left: 3px solid var(--garis); padding-left: 24px;
    font-style: italic; color: var(--redup);
}
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content ul li { list-style: disc; }
.entry-content ol li { list-style: decimal; }
.entry-content li + li { margin-top: .4em; }
.entry-content img { margin-left: auto; margin-right: auto; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }

.featured-image { margin-bottom: 40px; }

.entry-tags { margin-top: 60px; display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px; }
.entry-tags a { color: var(--redup); }
.entry-tags a:hover { color: var(--tinta); }

.entry-share { margin-top: 30px; display: flex; align-items: center; gap: 14px; font-size: 14px; color: var(--redup); }
.entry-share a { color: var(--redup); line-height: 0; }
.entry-share a:hover { color: var(--tinta); }
.entry-share svg { width: 16px; height: 16px; fill: currentColor; }

.author-box { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--garis); display: flex; gap: 24px; }
.author-box img { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; }
.author-box .role { font-size: 14px; color: var(--redup); }
.author-box p { margin-top: 10px; color: var(--redup); }

.post-nav { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--garis); display: flex; justify-content: space-between; gap: 30px; }
.post-nav span { display: block; font-size: 14px; letter-spacing: .15em; color: var(--redup); margin-bottom: 6px; }
.post-nav .nav-next { text-align: right; margin-left: auto; }

.related-posts { margin-top: 80px; }
.related-posts > h2 { margin-bottom: 30px; padding-bottom: 10px; border-bottom: 1px solid var(--garis); }

/* ===================== KOMENTAR ===================== */
.comments-area { margin-top: 80px; }
.comments-area > h2 { margin-bottom: 30px; padding-bottom: 10px; border-bottom: 1px solid var(--garis); }
.comment { padding: 24px 0; border-bottom: 1px solid var(--garis); }
.comment--balasan { margin-left: 60px; }
.comment__head { display: flex; align-items: baseline; gap: 12px; }
.comment__name { font-family: var(--serif-judul); font-size: 22px; }
.comment__date { font-size: 14px; color: var(--redup); }
.comment__body { margin-top: 10px; }

.comment-form { margin-top: 40px; }
.comment-form h3 { margin-bottom: 20px; }
.comment-form .baris { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.comment-form input, .comment-form textarea {
    width: 100%; border: 1px solid var(--garis); background: var(--latar);
    font-family: var(--serif-isi); font-size: 17px; color: var(--tinta); padding: 12px 14px;
}
.comment-form textarea { min-height: 160px; margin-top: 20px; resize: vertical; }
.comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: var(--tinta); }
.comment-form button {
    margin-top: 20px; background: var(--tinta); color: var(--latar); border: 0; cursor: pointer;
    font-family: var(--serif-isi); font-size: 14px; letter-spacing: .15em; font-weight: 600;
    padding: 14px 28px;
}
.comment-form button:hover { background: var(--redup); }
.comment-form .error { color: var(--baca); font-size: 14px; margin-top: 6px; }
.notice { font-size: 14px; color: var(--redup); }

/* ===================== SIDEBAR & WIDGET ===================== */
.sidebar { display: flex; flex-direction: column; row-gap: 60px; padding-left: 40px; border-left: 1px solid var(--garis); }
.widget-title { margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid var(--garis); font-size: 22px; }
.widget ul li { padding: 6px 0; }
.widget .cat-list a { display: flex; justify-content: space-between; gap: 12px; }
.widget .cat-list .n { color: var(--redup); font-size: 14px; }

/* Markup widget bawaan LONTAR (dipakai semua area @hook dan sidebar) */
.w-posts__item { display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--garis); }
.w-posts__item:last-child { border-bottom: 0; }
.w-posts__thumb { width: 72px; height: 72px; object-fit: cover; flex-shrink: 0; }
.w-posts__info { min-width: 0; }
.w-posts__title { font-family: var(--serif-judul); font-size: 20px; line-height: 1.25; }
.w-posts__date, .w-posts__excerpt { font-size: 14px; color: var(--redup); }
.w-posts__more { font-size: 14px; letter-spacing: .15em; font-weight: 600; color: var(--baca); }
.w-categories__item { padding: 6px 0; }
.w-categories__link { display: flex; justify-content: space-between; gap: 12px; }
.w-categories__count { color: var(--redup); font-size: 14px; }
.w-menu__item { padding: 6px 0; }
.w-tags { display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px; }
.w-tags__item { color: var(--redup); }
.w-search__wrap { display: flex; gap: 10px; }
.w-search__input {
    flex: 1; border: 1px solid var(--garis); background: var(--latar);
    font-family: var(--serif-isi); font-size: 17px; color: var(--tinta); padding: 10px 12px;
}
.w-search__input:focus { outline: none; border-color: var(--tinta); }
.w-search__btn {
    border: 0; background: var(--tinta); color: var(--latar); cursor: pointer;
    font-family: var(--serif-isi); font-size: 14px; letter-spacing: .1em; padding: 10px 18px;
}
.w-search__btn:hover { background: var(--redup); }
.w-image__img { width: 100%; }
.w-empty { font-size: 14px; color: var(--redup); }

/* Titik sisip di luar sidebar tampil selebar isi, bukan sebagai kolom */
.hook-area { max-width: var(--lebar); margin: 0 auto; padding: 0 40px; }
.hook-area .widget + .widget { margin-top: 40px; }

/* ===================== PAGINASI ===================== */
.pagination { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--garis); display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.pagination a { padding: 8px 14px; color: var(--redup); border: 1px solid transparent; }
.pagination a:hover { color: var(--tinta); }
.pagination a.current { color: var(--tinta); border-color: var(--garis); }
.pagination a.gap { pointer-events: none; }

/* ===================== FOOTER ===================== */
.site-footer { border-top: 1px solid var(--garis); padding: 60px 0; }
.footer-inner { display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.footer-logo img { width: 90px; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; font-size: 17px; }
.footer-nav a { color: var(--redup); }
.footer-nav a:hover { color: var(--tinta); }
.footer-copy { font-size: 14px; color: var(--redup); }

/* ===================== 404 & KOSONG ===================== */
.error-page { text-align: center; padding: 100px 0; }
.error-page .kode { font-family: var(--serif-judul); font-size: 120px; line-height: 1; color: var(--garis); }
.kosong { color: var(--redup); }

/* ===================== TANGGAP LAYAR ===================== */
@media (max-width: 1024px) {
    h1 { font-size: 43px; }
    h2 { font-size: 25px; }
    .site-content--berkolom { grid-template-columns: 1fr; row-gap: 60px; }
    .sidebar { padding-left: 0; border-left: 0; }
    .post-grid { grid-template-columns: repeat(2, 1fr); column-gap: 40px; }
    .page-hero { padding: 60px 30px; }
    .page-hero h1, .page-hero .page-hero__lead { width: 100%; }
}

@media (max-width: 768px) {
    h1 { font-size: 38px; }
    .container, .hook-area { padding-left: 30px; padding-right: 30px; }
    .post-grid { grid-template-columns: 1fr; }
    .comment-form .baris { grid-template-columns: 1fr; }
    .comment--balasan { margin-left: 24px; }

    /* Sidebar arsip naik ke atas isi — kebiasaan situs aslinya, supaya
       daftar topik terlihat lebih dulu di layar kecil */
    .site-content--arsip .sidebar { order: -1; }

    .menu-toggle { display: inline-flex; }
    .inside-navigation { display: block; }
    .main-nav { display: none; flex-direction: column; align-items: stretch; }
    .main-nav.is-open { display: flex; }
    .main-nav a { padding: 12px 0; border-bottom: 1px solid var(--garis); }
    .main-nav > li:last-child > a { border-bottom: 0; }
    .main-nav .sub-menu { position: static; display: block; background: transparent; padding-left: 16px; }
    .menu-bar-items { justify-content: flex-end; }
    .search-toggle { padding-left: 0; }
    .post-nav { flex-direction: column; }
    .post-nav .nav-next { text-align: left; margin-left: 0; }
}
