/* =========================================================
   Nomina — Daftar Isi (Table of Contents)
   ========================================================= */
.nomina-toc {
	--nomina-toc-accent: #1B5DAF;
	--nomina-toc-bg: #fff;
	--nomina-toc-head-bg: #f3f6fa;
	--nomina-toc-border: #e3e8ef;
	--nomina-toc-text: #1f2937;
	--nomina-toc-head-text: #111827;
	margin: 28px 0 32px;
	clear: both;
}
[data-theme=dark] .nomina-toc {
	--nomina-toc-bg: #081c34;
	--nomina-toc-head-bg: #0e2f58;
	--nomina-toc-border: #17406f;
	--nomina-toc-text: #e5ecf5;
	--nomina-toc-head-text: #fff;
}

.nomina-toc__box {
	background: var(--nomina-toc-bg);
	border: 1px solid var(--nomina-toc-border);
	border-radius: 10px;
	overflow: hidden;
}

/* Header / tombol buka-tutup */
.nomina-toc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 24px;
	background: var(--nomina-toc-head-bg);
	cursor: pointer;
	list-style: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}
.nomina-toc__head::-webkit-details-marker { display: none; }
.nomina-toc__head::marker { content: ""; }
.nomina-toc__box[open] > .nomina-toc__head {
	border-bottom: 1px solid var(--nomina-toc-border);
}
.nomina-toc__head:focus-visible {
	outline: 2px solid var(--nomina-toc-accent);
	outline-offset: -2px;
}
.nomina-toc__title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nomina-toc-head-text);
}
.nomina-toc__chevron {
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	margin-right: 4px;
	border-right: 2px solid var(--nomina-toc-head-text);
	border-bottom: 2px solid var(--nomina-toc-head-text);
	transform: translateY(-3px) rotate(45deg);      /* chevron bawah (tertutup) */
	transition: transform .2s ease;
}
.nomina-toc__box[open] .nomina-toc__chevron {
	transform: translateY(3px) rotate(-135deg);     /* chevron atas (terbuka) */
}

/* Isi daftar */
.nomina-toc__body {
	padding: 14px 24px 18px;
}
.nomina-toc ol.nomina-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: nomina-toc;
}
.nomina-toc ol.nomina-toc__list > li {
	position: relative;
	counter-increment: nomina-toc;
	margin: 0;
	padding: 6px 0 6px 42px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--nomina-toc-text);
}
.nomina-toc ol.nomina-toc__list > li::before {
	content: counters(nomina-toc, ".") ".";
	position: absolute;
	left: 0;
	top: 6px;
	min-width: 34px;
	font-weight: 600;
	color: var(--nomina-toc-accent);
	font-variant-numeric: tabular-nums;
}

/* Sub-poin (H3/H4) */
.nomina-toc ol.nomina-toc__sub {
	margin-top: 4px;
}
.nomina-toc ol.nomina-toc__sub > li {
	padding-left: 46px;
	font-size: 15px;
}
.nomina-toc ol.nomina-toc__sub > li::before {
	font-weight: 500;
}

/* Link — spesifisitas lebih tinggi dari .single-article-text a */
.single-article-text .nomina-toc a,
.nomina-toc a {
	color: var(--nomina-toc-text);
	text-decoration: none;
	border: 0;
	box-shadow: none;
	transition: color .15s ease;
}
.single-article-text .nomina-toc a:hover,
.single-article-text .nomina-toc a:focus,
.nomina-toc a:hover,
.nomina-toc a:focus {
	color: var(--nomina-toc-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}
[data-theme=dark] .single-article-text .nomina-toc a:hover,
[data-theme=dark] .nomina-toc a:hover {
	color: #fff;
}

/* Saat link diklik: scroll halus & heading tidak tertutup header sticky */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.nomina-toc__chevron { transition: none; }
}
.single-article-text h2[id],
.single-article-text h3[id],
.single-article-text h4[id] {
	scroll-margin-top: 100px;
}

@media (max-width: 600px) {
	.nomina-toc { margin: 22px 0 26px; }
	.nomina-toc__head { padding: 14px 16px; }
	.nomina-toc__title { font-size: 16px; }
	.nomina-toc__body { padding: 10px 16px 14px; }
	.nomina-toc ol.nomina-toc__list > li { font-size: 15px; padding-left: 34px; }
	.nomina-toc ol.nomina-toc__sub > li { padding-left: 40px; font-size: 14px; }
}

/* Mode gelap: terangkan warna nomor agar tetap kontras */
[data-theme=dark] .nomina-toc ol.nomina-toc__list > li::before {
	color: #8fb8ff;
	color: color-mix(in srgb, var(--nomina-toc-accent) 50%, #ffffff);
}

/* Netralkan gaya list bawaan tema (#single-content ol / #page-content ol)
   yang memakai selector ID sehingga nomor tidak dobel. */
#single-content .nomina-toc ol,
#page-content .nomina-toc ol,
.nomina-toc ol.nomina-toc__list {
	list-style: none !important;
	margin: 0;
	padding: 0;
}
#single-content .nomina-toc ol.nomina-toc__sub,
#page-content .nomina-toc ol.nomina-toc__sub {
	margin-top: 4px;
}
#single-content .nomina-toc li,
#page-content .nomina-toc li,
.nomina-toc ol.nomina-toc__list > li {
	list-style: none !important;
	margin-bottom: 0;
}
.nomina-toc li::marker {
	content: "";
	font-size: 0;
}
