/* =========================================================
   JSN -- iklan in-content yang ditempatkan sendiri.

   Menggantikan v1, yang lahir 2026-08-23 hanya untuk memberi
   jarak putih di sekitar unit AdSense Auto Ads. Auto Ads
   dimatikan dari dashboard pada 2026-09-01 setelah terukur
   menaruh 11 unit dalam satu artikel; penempatan sekarang
   ditentukan inc/ads.php.

   v1 TIDAK diganti dan tidak dihapus. Ia masih dimuat oleh
   inc/enqueue.php dan masih memegang jarak aman untuk
   .google-auto-placed, yang kembali berguna kalau Auto Ads suatu
   saat dinyalakan lagi. Berkas ini hanya menambah gaya untuk unit
   yang kita tempatkan sendiri -- tidak ada aturan yang tumpang
   tindih di antara keduanya.

   YANG TIDAK BOLEH ADA DI FILE INI, sama seperti v1:
   `max-height`, `overflow`, `transform`, `opacity`, atau
   `display:none` pada unit yang TERISI. Memotong, menyusutkan,
   atau menyembunyikan sebagian iklan melanggar kebijakan
   penempatan AdSense dan berisiko pembatasan akun. Menambah
   jarak putih tidak melanggar apa pun. Satu-satunya display:none
   di bawah menyasar unit yang Google sendiri tandai `unfilled`
   -- itu bukan iklan, itu kotak kosong.

   Nama berversi (-v2) karena LiteSpeed di situs ini membuang
   ?ver= dari HTML akhir, sehingga nama file baru adalah
   satu-satunya cache-bust yang terbukti bekerja. Saat isi
   berubah, naikkan ke -v3 dan perbarui inc/ads.php.
   ========================================================= */

/* ---------- unit yang kita tempatkan sendiri ---------- */

.jsn-article-body .jsn-ad {
	display: block;
	clear: both;
	margin: var(--space-7) 0;

	/* Ruang dipesan sebelum iklan datang, supaya teks di bawahnya tidak
	   melompat saat unit termuat. Sengaja sedang saja: cukup untuk
	   menahan pergeseran, tidak sampai menjadi jurang putih kalau
	   ternyata tidak ada iklan yang mengisi. */
	min-height: 132px;

	/* Iklan responsif bisa mencoba melebar melampaui kolom artikel di
	   layar sempit. Ini yang menahannya. */
	max-width: 100%;
	overflow-x: clip;
}

.jsn-article-body .jsn-ad-label {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted, #767676);

	/* Rata kiri mengikuti teks artikel, bukan di tengah: label ini
	   keterangan, bukan judul bagian. */
	text-align: left;
}

.jsn-article-body .jsn-ad-unit {
	display: block;
	width: 100%;
	max-width: 100%;
}

/* Paragraf tepat setelah unit tidak perlu menambah jarak lagi --
   margin-bottom di atas sudah menyediakannya, dan menumpuk keduanya
   menghasilkan lubang putih yang terbaca seperti artikel sudah
   selesai padahal belum. Perilaku ini diwarisi dari v1. */
.jsn-article-body .jsn-ad + p {
	margin-top: 0;
}

/* ---------- gagal dengan tenang ---------- */

/* Google menandai unit yang tidak mendapat iklan dengan
   data-ad-status="unfilled". Menyembunyikan wadahnya saat itu terjadi
   bukan menyembunyikan iklan -- tidak ada iklan di sana. Tanpa aturan
   ini, pembaca dengan pemblokir iklan atau di daerah tanpa isian
   melihat kotak kosong 132px di tengah artikel. */
.jsn-article-body .jsn-ad:has(> .jsn-ad-unit[data-ad-status="unfilled"]) {
	display: none;
}

/* Cadangan untuk peramban tanpa :has() -- unit tetap ada, tapi tidak
   memesan tinggi apa pun sehingga tidak meninggalkan lubang. */
@supports not selector(:has(*)) {
	.jsn-article-body .jsn-ad {
		min-height: 0;
	}
}

/* ---------- layar kecil ---------- */

@media (max-width: 480px) {
	.jsn-article-body .jsn-ad {
		margin: var(--space-6) 0;
		/* Sedikit lebih rendah: di ponsel, ruang pesanan yang terlalu
		   tinggi memakan proporsi layar yang jauh lebih besar. */
		min-height: 116px;
	}
}
