/* DI-GENERATE oleh build/tokens.mjs — jangan diedit langsung. Ubah tokens.json lalu jalankan ulang.
   Gabungan: tokens.css + base.css + komponen.css + layout.css */

/* ── tokens.css ─────────────────────────────── */
/* DI-GENERATE oleh build/tokens.mjs — jangan diedit langsung. Ubah tokens.json lalu jalankan ulang. */
:root {
	/* Warna */
	--tax-forest: #043D3B;        /* kartu hero, permukaan gelap, footer */
	--tax-forest-700: #0A5450;    /* hover di atas forest */
	--tax-emerald: #009159;       /* AKSEN MEREK — isian dekoratif, ikon, dan teks display saja (4,04:1 = hanya lolos AA untuk teks besar). JANGAN untuk teks kecil atau latar tombol. */
	--tax-emerald-700: #00764A;   /* latar tombol & warna tautan — 5,69:1, lolos AA di ukuran teks apa pun */
	--tax-emerald-800: #005F39;   /* hover tombol & tautan — 7,79:1 */
	--tax-mint-400: #4ED9A4;      /* aksen di atas forest — 6,79:1. Emerald hanya 2,99:1 di sana, jangan dipakai. */
	--tax-mint-50: #E8F4EF;       /* permukaan bernada, kotak sorotan */
	--tax-ink: #1F1F1F;           /* judul, footer — 16,48:1 */
	--tax-ink-600: #4A4A4A;       /* teks isi — 8,86:1 */
	--tax-muted: #6E6E6E;         /* keterangan & teks pendukung — 5,10:1 di putih, 4,76:1 di surface */
	--tax-line: #E5E5E5;          /* border, pemisah — non-teks */
	--tax-surface: #F7F7F7;       /* kartu, pill, kutipan besar */
	--tax-bg: #FFFFFF;            /* latar halaman */
	--tax-di-forest-kuat: #FFFFFF; /* teks dan permukaan terang di atas forest. Sebelumnya ditulis #fff langsung di enam tempat — dijadikan token supaya aturan 'nol warna hard-coded' benar-benar berlaku, bukan berlaku sebagian */
	--tax-di-forest: #9FC7BE;     /* teks pendukung di atas forest — 6,56:1 */
	--tax-gelap-teks: #A8A8A8;    /* teks di atas footer #1F1F1F — 6,93:1 */
	--tax-gelap-redup: #8F8F8F;   /* teks pendukung di footer — 5,10:1. Jangan lebih gelap dari ini. */
	--tax-gelap-garis: #3A3A3A;   /* pemisah di footer — non-teks, tidak terikat ambang kontras teks */
	--tax-risk-tinggi: #C1121F;   /* titik & border badge Merah */
	--tax-risk-tinggi-bg: #FDECEE; /* latar badge Merah */
	--tax-risk-tinggi-teks: #A50E19; /* label badge Merah */
	--tax-risk-sedang: #D98A00;   /* titik & border badge Kuning — 2,77:1, JANGAN untuk teks */
	--tax-risk-sedang-bg: #FDF3E3; /* latar badge Kuning */
	--tax-risk-sedang-teks: #8A5600; /* label badge Kuning */
	--tax-risk-rendah: #009159;   /* titik & border badge Hijau */
	--tax-risk-rendah-bg: #E8F4EF; /* latar badge Hijau */
	--tax-risk-rendah-teks: #005F39; /* label badge Hijau */
	--tax-ink-900: #000000;       /* hover tombol ink saja. Bukan untuk teks — --tax-ink yang dipakai membaca */
	--tax-wa: #25D366;            /* WARNA MEREK PIHAK KETIGA, bukan bagian palet tax.co.id. Hanya untuk tombol WhatsApp, supaya tombolnya langsung dikenali. Jangan dipakai di tempat lain */
	--tax-wa-700: #1EBE5A;        /* hover tombol WhatsApp. Warna merek pihak ketiga */
	--tax-di-wa: #06301A;         /* teks di atas hijau WhatsApp, 9,1:1. Warna merek pihak ketiga */

	/* Radius */
	--tax-radius-sm: 8px;
	--tax-radius-md: 16px;
	--tax-radius-lg: 24px;
	--tax-radius-xl: 32px;
	--tax-radius-pill: 999px;

	/* Bayangan */
	--tax-shadow-sm: 0 1px 2px rgba(0,0,0,.04);
	--tax-shadow-md: 0 4px 16px rgba(0,0,0,.06);
	--tax-shadow-lg: 0 12px 40px rgba(4,61,59,.10);

	/* Spasi */
	--tax-space-10: 0.25rem;
	--tax-space-20: 0.5rem;
	--tax-space-30: 0.75rem;
	--tax-space-40: 1rem;
	--tax-space-50: 1.5rem;
	--tax-space-60: 2rem;
	--tax-space-70: 3rem;
	--tax-space-80: 4rem;
	--tax-space-90: 6rem;
	--tax-space-95: 8rem;

	/* Tipografi */
	--tax-font-judul: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--tax-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--tax-lh-ketat: 1.04;
	--tax-lh-judul: 1.18;
	--tax-lh-isi: 1.62;
	--tax-ls-display: -0.035em;
	--tax-ls-judul: -0.025em;
	--tax-ls-normal: 0;
	--tax-ls-caps: 0.1em;
	--tax-fs-xs: 0.8125rem;
	--tax-fs-sm: 0.9375rem;
	--tax-fs-base: clamp(1rem, calc(1rem + (0.0625) * ((100vw - 20rem) / 70)), 1.0625rem);
	--tax-fs-lead: clamp(1.0625rem, calc(1.0625rem + (0.125) * ((100vw - 20rem) / 70)), 1.1875rem);
	--tax-fs-tajuk-3: clamp(1.25rem, calc(1.25rem + (0.125) * ((100vw - 20rem) / 70)), 1.375rem);
	--tax-fs-tajuk-2: clamp(1.5rem, calc(1.5rem + (0.75) * ((100vw - 20rem) / 70)), 2.25rem);
	--tax-fs-tajuk-1: clamp(2rem, calc(2rem + (1.25) * ((100vw - 20rem) / 70)), 3.25rem);
	--tax-fs-display: clamp(2.5rem, calc(2.5rem + (1.75) * ((100vw - 20rem) / 70)), 4.25rem);

	/* Layout */
	--tax-w-konten: 760px;
	--tax-w-lebar: 1200px;
	--tax-pad-tepi: 1.5rem;
}

/* ── base.css ─────────────────────────────── */
/* Dasar: reset seperlunya, tipografi, dan keadaan fokus.
   Bukan reset total — WordPress dan block editor sudah menormalkan banyak hal,
   dan menimpanya dua kali hanya menambah berat. */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--tax-bg);
	color: var(--tax-ink-600);
	font-family: var(--tax-font);
	font-size: var(--tax-fs-base);
	line-height: var(--tax-lh-isi);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
	color: var(--tax-ink);
	font-family: var(--tax-font-judul);
	/* Inter Tight sudah sempit; 800 di ukuran display terbaca menggumpal.
	   700 memberi bobot yang sama tanpa menutup counter huruf. */
	font-weight: 700;
	line-height: var(--tax-lh-judul);
	letter-spacing: var(--tax-ls-judul);
	margin: 0 0 var(--tax-space-40);
	text-wrap: balance;                 /* mencegah satu kata yatim di baris terakhir judul */
}
h1 { font-size: var(--tax-fs-tajuk-1); line-height: var(--tax-lh-ketat); letter-spacing: var(--tax-ls-display); }
h2 { font-size: var(--tax-fs-tajuk-2); }
h3 { font-size: var(--tax-fs-tajuk-3); font-weight: 700; }
h4 { font-size: var(--tax-fs-lead); font-weight: 700; }

p { margin: 0 0 var(--tax-space-40); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

a { color: var(--tax-emerald-700); text-underline-offset: .18em; text-decoration-thickness: .07em; }
a:hover { color: var(--tax-emerald-800); text-decoration: none; }

/* Angka: tabular-nums wajib supaya kolom harga dan hasil kalkulator sejajar.
   Tanpa ini "Rp1.111.111" dan "Rp8.888.888" punya lebar berbeda.
   Angka tabular Inter termasuk yang paling rapi — salah satu alasan
   keluarga ini dipilih untuk situs penuh tabel harga dan kalkulator. */
.tax-angka, table, .tax-harga, output, [data-angka] {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
}

img, svg, video { max-width: 100%; height: auto; }

/* Fokus terlihat — bukan outline:none. Wajib untuk navigasi keyboard. */
:focus-visible {
	outline: 3px solid var(--tax-emerald-700);
	outline-offset: 2px;
	border-radius: var(--tax-radius-sm);
}

/* Lewati ke konten — dibaca screen reader, muncul saat di-Tab. */
.tax-lewati {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--tax-ink); color: var(--tax-di-forest-kuat); padding: var(--tax-space-30) var(--tax-space-50);
	border-radius: 0 0 var(--tax-radius-md) 0; font-weight: 600;
}
.tax-lewati:focus { left: 0; color: var(--tax-di-forest-kuat); }

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

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important; animation-iteration-count: 1 !important;
		transition-duration: .01ms !important; scroll-behavior: auto !important;
	}
}

/* ── komponen.css ─────────────────────────────── */
/* Ikon plus untuk akordeon, di-inline sebagai data URI: nol request tambahan.
   Ditaruh di sini, bukan di tokens.css, karena tokens.css di-generate
   dari tokens.json dan akan menimpa apa pun yang ditulis manual. */
:root { --tax-ikon-plus: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22%2F%3E%3C%2Fsvg%3E"); }

/* Komponen. Setiap komponen dipakai lebih dari sekali; yang hanya dipakai
   sekali tetap tinggal di pattern-nya masing-masing. */

/* ── Tombol ─────────────────────────────────────────────────────── */
.tax-btn,
a.tax-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	padding: .875rem 1.75rem;
	border: 1px solid transparent; border-radius: var(--tax-radius-pill);
	font: 600 var(--tax-fs-sm)/1.2 var(--tax-font);
	text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.tax-btn svg { width: 1.15em; height: 1.15em; flex: none; }

/* Selektor sengaja memakai dua kelas (0,2,0).
   theme.json memancarkan `:root :where(.wp-element-button){...}` dengan
   spesifisitas 0,1,0 — satu kelas saja akan kalah dan setiap tombol
   tampil hijau, termasuk yang seharusnya hitam. */
.tax-btn.tax-btn--utama       { background: var(--tax-emerald-700); color: var(--tax-di-forest-kuat); }
.tax-btn.tax-btn--utama:hover { background: var(--tax-emerald-800); color: var(--tax-di-forest-kuat); }

.tax-btn.tax-btn--ink         { background: var(--tax-ink); color: var(--tax-di-forest-kuat); }
.tax-btn.tax-btn--ink:hover   { background: var(--tax-ink-900); color: var(--tax-di-forest-kuat); }

.tax-btn.tax-btn--garis       { background: transparent; color: var(--tax-ink); border-color: var(--tax-line); }
.tax-btn.tax-btn--garis:hover { border-color: var(--tax-ink); color: var(--tax-ink); }

/* Hijau resmi WhatsApp. Sengaja tidak masuk token: ini warna merek
   pihak lain dan tidak boleh ikut berubah kalau palet kita berubah. */
.tax-btn.tax-btn--wa          { background: var(--tax-wa); color: var(--tax-di-wa); }
.tax-btn.tax-btn--wa:hover    { background: var(--tax-wa-700); color: var(--tax-di-wa); }

/* Di atas latar forest, emerald hanya 2,99:1 — jadi tombol dibalik jadi putih. */
.tax-di-gelap .tax-btn.tax-btn--utama { background: var(--tax-di-forest-kuat); color: var(--tax-forest); }
.tax-di-gelap .tax-btn.tax-btn--utama:hover { background: var(--tax-mint-400); color: var(--tax-forest); }
.tax-di-gelap .tax-btn.tax-btn--garis { color: var(--tax-di-forest-kuat); border-color: rgba(255,255,255,.35); }

/* ── Pill / tag ─────────────────────────────────────────────────── */
.tax-pill {
	display: inline-flex; align-items: center; gap: .45em;
	padding: .5rem 1rem; border: 1px solid var(--tax-line);
	border-radius: var(--tax-radius-pill);
	font-size: var(--tax-fs-sm); color: var(--tax-ink-600); text-decoration: none;
	background: var(--tax-bg);
}
a.tax-pill:hover { border-color: var(--tax-ink); color: var(--tax-ink); }
.tax-pill--isi { background: var(--tax-mint-50); border-color: transparent; color: var(--tax-forest); }

/* ── Kartu ──────────────────────────────────────────────────────── */
.tax-kartu {
	background: var(--tax-bg); border: 1px solid var(--tax-line);
	border-radius: var(--tax-radius-lg); padding: var(--tax-space-50);
}
.tax-kartu--surface { background: var(--tax-surface); border-color: transparent; }
.tax-kartu--gelap   { background: var(--tax-forest); border-color: transparent; color: var(--tax-di-forest-kuat); }
.tax-kartu--gelap h2, .tax-kartu--gelap h3 { color: var(--tax-di-forest-kuat); }

a.tax-kartu { display: block; text-decoration: none; color: inherit; transition: box-shadow .18s ease, border-color .18s ease; }
a.tax-kartu:hover { border-color: transparent; box-shadow: var(--tax-shadow-lg); }

.tax-kartu__ikon {
	width: 2.75rem; height: 2.75rem; display: grid; place-items: center;
	border-radius: var(--tax-radius-md); background: var(--tax-mint-50);
	color: var(--tax-forest); margin-bottom: var(--tax-space-40);
}
.tax-kartu__ikon svg { width: 1.5rem; height: 1.5rem; }

.tax-kartu__harga {
	display: block; margin-top: var(--tax-space-40);
	font-size: var(--tax-fs-sm); color: var(--tax-muted);
}
.tax-kartu__harga b { display: block; font-size: var(--tax-fs-tajuk-3); font-weight: 800; color: var(--tax-ink); letter-spacing: -.02em; }

/* ── Badge risiko — Peta Risiko Pajak ───────────────────────────── */
.tax-risiko {
	display: inline-flex; align-items: center; gap: .5em;
	padding: .3rem .7rem .3rem .55rem; border-radius: var(--tax-radius-pill);
	font-size: var(--tax-fs-xs); font-weight: 600; letter-spacing: .01em;
}
.tax-risiko::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.tax-risiko--tinggi { background: var(--tax-risk-tinggi-bg); color: var(--tax-risk-tinggi-teks); }
.tax-risiko--sedang { background: var(--tax-risk-sedang-bg); color: var(--tax-risk-sedang-teks); }
.tax-risiko--rendah { background: var(--tax-risk-rendah-bg); color: var(--tax-risk-rendah-teks); }

/* ── Bar kepercayaan ────────────────────────────────────────────── */
.tax-percaya {
	display: flex; flex-wrap: wrap; gap: var(--tax-space-30) var(--tax-space-60);
	list-style: none; margin: 0; padding: 0;
}
.tax-percaya li {
	display: flex; align-items: center; gap: .55rem;
	font-size: var(--tax-fs-sm); color: var(--tax-ink-600);
}
.tax-percaya svg { width: 1.15rem; height: 1.15rem; color: var(--tax-emerald-700); flex: none; }

/* ── Kutipan besar ──────────────────────────────────────────────── */
.tax-kutipan {
	position: relative; overflow: hidden;
	background: var(--tax-surface);
	/* Bentuk lozenge lebar seperti referensi, bukan kotak. Di layar sempit
	   radius sebesar itu memakan teks, jadi turun ke xl. */
	border-radius: 5rem;
	padding: var(--tax-space-80) var(--tax-space-90); text-align: center; margin: 0;
}
.tax-kutipan p {
	position: relative; max-width: 38ch; margin: 0 auto;
	font-size: var(--tax-fs-tajuk-3); font-style: italic;
	color: var(--tax-ink); line-height: 1.45;
}
/* Tanda kutip raksasa sebagai tekstur latar — sangat samar, dekoratif saja. */
.tax-kutipan::before {
	content: "\201D"; position: absolute; inset-inline-start: 50%; top: -.15em;
	transform: translateX(-50%);
	font-size: 16rem; line-height: 1; font-weight: 800;
	color: var(--tax-ink); opacity: .035; pointer-events: none;
}
@media (max-width: 640px) {
	.tax-kutipan { border-radius: var(--tax-radius-xl); padding: var(--tax-space-70) var(--tax-space-50); }
	.tax-kutipan::before { font-size: 9rem; }
}

/* ── Akordeon FAQ — pakai <details>, nol JavaScript ─────────────── */
.tax-faq { border-top: 1px solid var(--tax-line); }
.tax-faq details { border-bottom: 1px solid var(--tax-line); }
.tax-faq summary {
	display: flex; align-items: center; justify-content: space-between; gap: var(--tax-space-40);
	padding: var(--tax-space-50) 0; cursor: pointer; list-style: none;
	font-weight: 700; color: var(--tax-ink); font-size: var(--tax-fs-lead);
}
.tax-faq summary::-webkit-details-marker { display: none; }
.tax-faq summary::after {
	content: ""; flex: none; width: 1.5rem; height: 1.5rem;
	background: currentColor; transition: transform .18s ease;
	-webkit-mask: var(--tax-ikon-plus) center/contain no-repeat;
	        mask: var(--tax-ikon-plus) center/contain no-repeat;
}
.tax-faq details[open] summary::after { transform: rotate(45deg); }
.tax-faq details > div { padding-bottom: var(--tax-space-50); max-width: 68ch; }

/* ── Tabel harga ────────────────────────────────────────────────── */
.tax-tabel-bungkus { overflow-x: auto; border: 1px solid var(--tax-line); border-radius: var(--tax-radius-lg); }
.tax-tabel { width: 100%; border-collapse: collapse; font-size: var(--tax-fs-sm); }
.tax-tabel th, .tax-tabel td { padding: var(--tax-space-40) var(--tax-space-50); text-align: left; }
.tax-tabel thead th {
	background: var(--tax-surface); color: var(--tax-ink); font-weight: 700;
	font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase;
	white-space: nowrap;
}
.tax-tabel tbody tr + tr { border-top: 1px solid var(--tax-line); }
.tax-tabel td:last-child { text-align: right; font-weight: 700; color: var(--tax-ink); white-space: nowrap; }

/* ── Kolom form ─────────────────────────────────────────────────── */
.tax-kolom { display: flex; flex-direction: column; gap: .4rem; margin-bottom: var(--tax-space-40); }
.tax-kolom label { font-size: var(--tax-fs-sm); font-weight: 600; color: var(--tax-ink); }
.tax-kolom .bantuan { font-size: var(--tax-fs-xs); color: var(--tax-muted); }
.tax-kolom input, .tax-kolom select, .tax-kolom textarea {
	width: 100%; padding: .8rem 1rem;
	border: 1px solid var(--tax-line); border-radius: var(--tax-radius-md);
	background: var(--tax-bg); color: var(--tax-ink);
	font: 400 var(--tax-fs-base)/1.4 var(--tax-font);
}
.tax-kolom input::placeholder, .tax-kolom textarea::placeholder { color: var(--tax-muted); }
.tax-kolom input:focus, .tax-kolom select:focus, .tax-kolom textarea:focus {
	border-color: var(--tax-emerald-700); outline: 2px solid var(--tax-emerald-700); outline-offset: -1px;
}
.tax-kolom[data-galat] input, .tax-kolom[data-galat] select, .tax-kolom[data-galat] textarea {
	border-color: var(--tax-risk-tinggi);
}
.tax-galat { font-size: var(--tax-fs-xs); color: var(--tax-risk-tinggi-teks); font-weight: 600; }

/* ── Kotak dasar hukum ──────────────────────────────────────────── */
.tax-hukum {
	border-left: 3px solid var(--tax-emerald-700); background: var(--tax-mint-50);
	border-radius: 0 var(--tax-radius-md) var(--tax-radius-md) 0;
	padding: var(--tax-space-50); font-size: var(--tax-fs-sm);
}
.tax-hukum h3 { font-size: var(--tax-fs-xs); text-transform: uppercase; letter-spacing: var(--tax-ls-caps);
                color: var(--tax-emerald-800); margin-bottom: var(--tax-space-20); }

/* ── Peringatan tenggat ─────────────────────────────────────────── */
.tax-tenggat {
	display: flex; gap: var(--tax-space-40); align-items: flex-start;
	background: var(--tax-risk-tinggi-bg); border-radius: var(--tax-radius-md);
	padding: var(--tax-space-50); color: var(--tax-risk-tinggi-teks); font-size: var(--tax-fs-sm);
}
.tax-tenggat svg { width: 1.4rem; height: 1.4rem; flex: none; }
.tax-tenggat b { display: block; font-size: var(--tax-fs-base); }

/* ── Avatar inisial — dipakai sampai foto konsultan asli tersedia ─ */
.tax-avatar {
	width: 3rem; height: 3rem; border-radius: 50%; display: grid; place-items: center;
	background: var(--tax-mint-50); color: var(--tax-forest);
	font-weight: 800; font-size: var(--tax-fs-sm); letter-spacing: .02em; flex: none;
}
.tax-avatar--lg { width: 4.5rem; height: 4.5rem; font-size: var(--tax-fs-tajuk-3); }

/* ── Empty state ────────────────────────────────────────────────── */
.tax-kosong {
	text-align: center; padding: var(--tax-space-90) var(--tax-space-50);
	background: var(--tax-surface); border-radius: var(--tax-radius-lg);
}
.tax-kosong svg { width: 3rem; height: 3rem; color: var(--tax-muted); margin-bottom: var(--tax-space-40); }
.tax-kosong h3 { font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); }
.tax-kosong p { color: var(--tax-muted); max-width: 42ch; margin-inline: auto; font-size: var(--tax-fs-sm); }

/* ── Langkah bernomor ───────────────────────────────────────────── */
.tax-langkah {
	counter-reset: langkah; display: grid; gap: var(--tax-space-50);
	list-style: none; margin: 0; padding: 0;
}
.tax-langkah > li { counter-increment: langkah; display: flex; gap: var(--tax-space-40); }
.tax-langkah > li::before {
	content: counter(langkah); flex: none;
	width: 2.25rem; height: 2.25rem; border-radius: 50%;
	background: var(--tax-forest); color: var(--tax-di-forest-kuat);
	display: grid; place-items: center; font-weight: 800; font-size: var(--tax-fs-sm);
}

/* ── Banner momentum ────────────────────────────────────────────── */
.tax-momentum {
	display: flex; align-items: center; gap: var(--tax-space-40); flex-wrap: wrap;
	background: var(--tax-forest); color: var(--tax-di-forest-kuat); border-radius: var(--tax-radius-lg);
	padding: var(--tax-space-50) var(--tax-space-60); font-size: var(--tax-fs-sm);
}
.tax-momentum svg { width: 1.4rem; height: 1.4rem; color: var(--tax-mint-400); flex: none; }
.tax-momentum a { color: var(--tax-mint-400); font-weight: 600; }
.tax-momentum a:hover { color: var(--tax-di-forest-kuat); }

/* ── Ikon inline ────────────────────────────────────────────────── */
.tax-ikon { width: 1.25rem; height: 1.25rem; display: inline-block; vertical-align: -.2em; }

/* ── Form ───────────────────────────────────────────────────────── */
.tax-form-bungkus {
	background: var(--tax-surface); border-radius: var(--tax-radius-lg);
	padding: clamp(1.5rem, 4vw, 2.5rem);
}
.tax-form-bungkus > h2 { margin-bottom: var(--tax-space-20); }
.tax-form-lead { color: var(--tax-muted); font-size: var(--tax-fs-sm); margin-bottom: var(--tax-space-50); max-width: 56ch; }

.tax-langkah-tanda {
	display: flex; align-items: baseline; gap: var(--tax-space-30);
	margin-bottom: var(--tax-space-40);
	font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase;
}
.tax-langkah-tanda b { color: var(--tax-emerald-800); font-weight: 700; }
.tax-langkah-tanda span { color: var(--tax-muted); }

.tax-form-kolom { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 0 var(--tax-space-40); }
.tax-form-kolom .tax-kolom--lebar { grid-column: 1 / -1; }
/* Cadangan untuk textarea yang dirender di luar tax_render_kolom(). */
.tax-form-kolom .tax-kolom:has(textarea) { grid-column: 1 / -1; }
.tax-opsional { color: var(--tax-muted); font-weight: 400; font-size: var(--tax-fs-xs); }

.tax-form-catatan { font-size: var(--tax-fs-xs); color: var(--tax-muted); margin: var(--tax-space-20) 0 0; max-width: 60ch; }
.tax-form-aksi { display: flex; flex-wrap: wrap; gap: var(--tax-space-30); margin-top: var(--tax-space-50); }

.tax-form-galat {
	background: var(--tax-risk-tinggi-bg); color: var(--tax-risk-tinggi-teks);
	border-radius: var(--tax-radius-md); padding: var(--tax-space-40);
	font-size: var(--tax-fs-sm); font-weight: 600; margin-bottom: var(--tax-space-40);
}

/* Honeypot. Disembunyikan lewat posisi, BUKAN display:none atau
   type=hidden — bot pengisi otomatis melewati keduanya, tapi tetap
   mengisi kolom teks yang secara teknis ada di halaman. */
.tax-jebakan {
	position: absolute; left: -9999px; top: 0;
	width: 1px; height: 1px; overflow: hidden;
}

/* ── Tombol WhatsApp mengambang ─────────────────────────────────── */
.tax-wa-ambang {
	position: fixed; inset-inline-end: 1.25rem; bottom: 1.25rem; z-index: 90;
	width: 3.5rem; height: 3.5rem; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--tax-wa); color: var(--tax-di-wa);
	box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.tax-wa-ambang svg { width: 1.75rem; height: 1.75rem; }
.is-gulir .tax-wa-ambang { opacity: 1; visibility: visible; transform: translateY(0); }
/* Di bawah 1024px bilah bawah sudah memuat tombol yang sama. */
@media (max-width: 1023px) { .tax-wa-ambang { display: none; } }

/* ── Halaman terima kasih ───────────────────────────────────────── */
.tax-tk__aksi { margin: var(--tax-space-50) 0; }
.tax-tk__ringkas {
	display: grid; gap: 0; margin: var(--tax-space-60) 0 0;
	border-top: 1px solid var(--tax-line);
}
.tax-tk__ringkas > div {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--tax-space-40);
	padding-block: var(--tax-space-30); border-bottom: 1px solid var(--tax-line);
}
.tax-tk__ringkas dt { color: var(--tax-muted); font-size: var(--tax-fs-sm); }
.tax-tk__ringkas dd { margin: 0; color: var(--tax-ink); font-size: var(--tax-fs-sm); }
@media (max-width: 600px) { .tax-tk__ringkas > div { grid-template-columns: 1fr; gap: .15rem; } }

/* Papan hitung mundur SP2DK. */
.tax-tenggat {
	border-radius: var(--tax-radius-md); padding: var(--tax-space-30) var(--tax-space-40);
	font-size: var(--tax-fs-sm); font-weight: 600; margin: 0 0 var(--tax-space-40);
}
.tax-tenggat--aman  { background: var(--tax-risk-rendah-bg);  color: var(--tax-risk-rendah-teks); }
.tax-tenggat--dekat { background: var(--tax-risk-sedang-bg);  color: var(--tax-risk-sedang-teks); }
.tax-tenggat--lewat { background: var(--tax-risk-tinggi-bg);  color: var(--tax-risk-tinggi-teks); }

/* ── Contoh laporan Peta Risiko ─────────────────────────────────── */
/* Dokumen, bukan kartu: garis tipis dan sudut kecil supaya terbaca
   sebagai berkas yang dicetak, bukan sebagai elemen antarmuka. */
.tax-laporan {
	border: 1px solid var(--tax-line); border-radius: var(--tax-radius-md);
	background: var(--tax-bg); box-shadow: var(--tax-shadow-lg);
	overflow: hidden; max-width: 46rem;
}
.tax-laporan__kop {
	display: flex; justify-content: space-between; align-items: flex-start; gap: var(--tax-space-40);
	padding: var(--tax-space-50); background: var(--tax-forest); color: var(--tax-di-forest-kuat);
}
.tax-laporan__kop > div:first-child { display: grid; gap: .15rem; }
.tax-laporan__jenis { font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-di-forest); }
.tax-laporan__kop b { font-family: var(--tax-font-judul); font-size: var(--tax-fs-tajuk-3); letter-spacing: var(--tax-ls-judul); }
.tax-laporan__meta { font-size: var(--tax-fs-xs); color: var(--tax-di-forest); }
.tax-laporan__cap { display: grid; justify-items: end; gap: var(--tax-space-20); text-align: end; }
.tax-laporan__merek { font-family: var(--tax-font-judul); font-weight: 800; font-size: var(--tax-fs-sm); }
.tax-laporan__merek span { color: var(--tax-mint-400); }
/* Kartu ini akan di-screenshot orang tanpa kalimat pengantarnya. Penanda
   "Contoh" harus ikut terbawa, atau laporan rekaan ini bisa beredar sebagai
   laporan sungguhan milik klien yang tidak ada. */
.tax-laporan__contoh {
	font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase;
	border: 1px solid var(--tax-gelap-garis); border-radius: var(--tax-radius-sm);
	padding: .15rem .5rem; color: var(--tax-di-forest);
}

.tax-laporan__temuan { list-style: none; margin: 0; padding: 0; }
.tax-laporan__temuan > li {
	display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--tax-space-40);
	padding: var(--tax-space-50); border-bottom: 1px solid var(--tax-line);
}
.tax-laporan__temuan .tax-risiko { align-self: start; justify-self: start; }
.tax-laporan__temuan b { display: block; color: var(--tax-ink); margin-bottom: var(--tax-space-20); }
.tax-laporan__temuan p { margin: 0; font-size: var(--tax-fs-sm); }
.tax-laporan__dasar {
	display: inline-block; margin-top: var(--tax-space-30);
	font-size: var(--tax-fs-xs); color: var(--tax-muted);
	border-top: 1px solid var(--tax-line); padding-top: var(--tax-space-20);
}

.tax-laporan__aksi { padding: var(--tax-space-50); background: var(--tax-surface); }
.tax-laporan__aksi > b { display: block; font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-emerald-800); margin-bottom: var(--tax-space-40); }
.tax-laporan__aksi ol { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tax-space-30); }
.tax-laporan__aksi li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--tax-space-40); font-size: var(--tax-fs-sm); }
.tax-laporan__aksi li span { color: var(--tax-muted); font-variant-numeric: tabular-nums; }
.tax-laporan__kaki { margin: 0; padding: var(--tax-space-40) var(--tax-space-50); font-size: var(--tax-fs-xs); color: var(--tax-muted); border-top: 1px solid var(--tax-line); }

@media (max-width: 600px) {
	.tax-laporan__temuan > li,
	.tax-laporan__aksi li { grid-template-columns: 1fr; gap: var(--tax-space-20); }
}

/* ── Situasi "untuk siapa" ──────────────────────────────────────── */
.tax-situasi { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--tax-space-50); }
.tax-situasi > div { display: grid; gap: var(--tax-space-20); align-content: start; }
.tax-situasi svg { width: 1.75rem; height: 1.75rem; color: var(--tax-emerald-700); }
.tax-situasi b { color: var(--tax-ink); }
.tax-situasi p { margin: 0; font-size: var(--tax-fs-sm); }

/* ── Daftar "bukan untuk Anda" dan variannya yang positif ───────── */
.tax-bukan { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--tax-line); }
.tax-bukan > li { padding-block: var(--tax-space-50); border-bottom: 1px solid var(--tax-line); }
.tax-bukan b { display: block; color: var(--tax-ink); margin-bottom: var(--tax-space-20); }
.tax-bukan p { margin: 0; font-size: var(--tax-fs-sm); max-width: 62ch; }

/* ── Kotak ketentuan sesi ───────────────────────────────────────── */
.tax-pembatas { background: var(--tax-surface); border-radius: var(--tax-radius-lg); padding: clamp(1.5rem, 4vw, 2.25rem); }
.tax-pembatas__judul { display: block; font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-muted); margin-bottom: var(--tax-space-50); }
.tax-pembatas ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tax-space-40); }
.tax-pembatas li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: var(--tax-space-40); align-items: start; }
.tax-pembatas svg { width: 1.25rem; height: 1.25rem; color: var(--tax-emerald-700); margin-top: .15rem; }
.tax-pembatas b { color: var(--tax-ink); }
.tax-pembatas span { font-size: var(--tax-fs-sm); }

/* ── Daftar harga ───────────────────────────────────────────────── */
.tax-harga-daftar { display: grid; gap: 0; margin: var(--tax-space-50) 0 0; border-top: 1px solid var(--tax-line); }
.tax-harga-daftar > div {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--tax-space-50);
	align-items: baseline; padding-block: var(--tax-space-40); border-bottom: 1px solid var(--tax-line);
}
.tax-harga-daftar dt { color: var(--tax-ink); }
.tax-harga-daftar dt span { display: block; margin-top: .2rem; font-size: var(--tax-fs-xs); color: var(--tax-muted); max-width: 52ch; }
.tax-harga-daftar dd { margin: 0; font-weight: 600; color: var(--tax-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
	.tax-harga-daftar > div { grid-template-columns: 1fr; gap: var(--tax-space-20); }
	.tax-harga-daftar dd { white-space: normal; }
}

/* ── Narasi /tentang ────────────────────────────────────────────── */
.tax-narasi p { font-size: var(--tax-fs-lead); max-width: 60ch; }
.tax-narasi p:first-child { color: var(--tax-ink); }
.tax-narasi p:last-child { margin-bottom: 0; }

/* ── Daftar persiapan sesi ──────────────────────────────────────── */
.tax-siapkan { list-style: none; margin: var(--tax-space-50) 0 0; padding: 0; display: grid; gap: var(--tax-space-50); }
.tax-siapkan li { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); gap: var(--tax-space-40); align-items: start; }
.tax-siapkan svg { width: 1.5rem; height: 1.5rem; color: var(--tax-emerald-700); }
.tax-siapkan b { display: block; color: var(--tax-ink); margin-bottom: var(--tax-space-10); }
.tax-siapkan p { margin: 0; font-size: var(--tax-fs-sm); }

/* Janji waktu balasan di kartu kanal kontak. */
.tax-kanal__janji { font-size: var(--tax-fs-xs); color: var(--tax-emerald-800); font-weight: 600; }

/* Laporan berdampingan dengan penjelasannya. Section ini sengaja TIDAK
   memakai irama "kepala di atas, isi di bawah" seperti section lain — di
   halaman sepanjang /konsultasi, empat section berturut-turut dengan kerangka
   sama persis terbaca seperti daftar, bukan seperti argumen. */
.tax-laporan-seksi { display: grid; gap: var(--tax-space-70); align-items: start; }
.tax-laporan-seksi__teks > :last-child { margin-bottom: 0; }
.tax-laporan-seksi__teks h2 { margin-bottom: var(--tax-space-40); }
@media (min-width: 1024px) {
	.tax-laporan-seksi { grid-template-columns: minmax(0, 1fr) minmax(0, 34rem); gap: var(--tax-space-80); }
	.tax-laporan-seksi__teks { position: sticky; top: 6rem; }
}

/* Label baris tabel adalah <th scope="row">, bukan <td>: tanpa itu pembaca
   layar menyebut angkanya tanpa menyebut baris mana. Bobotnya di skor
   Lighthouse nol, jadi lolos begitu saja kalau hanya melihat angka akhir. */
.tax-tabel tbody th { font-weight: 600; color: var(--tax-ink); }

/* ── Alat interaktif ────────────────────────────────────────────── */
.tax-alat { background: var(--tax-surface); border-radius: var(--tax-radius-lg); padding: clamp(1.5rem, 4vw, 2.25rem); }
.tax-alat__batas {
	display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: var(--tax-space-30);
	align-items: start; margin-bottom: var(--tax-space-50);
	font-size: var(--tax-fs-sm); color: var(--tax-ink-600);
	border-bottom: 1px solid var(--tax-line); padding-bottom: var(--tax-space-40);
}
.tax-alat__batas svg { width: 1.25rem; height: 1.25rem; color: var(--tax-risk-sedang-teks); margin-top: .15rem; }
.tax-alat__isi input { font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.tax-alat__hasil { display: block; margin-top: var(--tax-space-40); }
.tax-alat__hasil > b { display: block; margin-bottom: var(--tax-space-30); color: var(--tax-ink); }
.tax-alat__hasil--ok > b { color: var(--tax-risk-rendah-teks); }
.tax-alat__hasil--galat > b { color: var(--tax-risk-sedang-teks); }
.tax-alat__hasil dl { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--tax-line); }
.tax-alat__hasil > dl > div {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr); gap: var(--tax-space-40);
	padding-block: var(--tax-space-30); border-bottom: 1px solid var(--tax-line); font-size: var(--tax-fs-sm);
}
.tax-alat__hasil dt { color: var(--tax-muted); }
.tax-alat__hasil dd { margin: 0; color: var(--tax-ink); }
.tax-alat__hasil code {
	font-variant-numeric: tabular-nums; letter-spacing: .04em;
	background: var(--tax-bg); border: 1px solid var(--tax-line);
	border-radius: var(--tax-radius-sm); padding: .1rem .4rem;
}
@media (max-width: 600px) { .tax-alat__hasil > dl > div { grid-template-columns: 1fr; gap: .15rem; } }

/* ── Kaki halaman panduan ───────────────────────────────────────── */
.tax-panduan-kaki { border-top: 1px solid var(--tax-line); }
.tax-panduan-kaki__ajak {
	display: grid; gap: var(--tax-space-50); align-items: center;
	background: var(--tax-mint-50); border-radius: var(--tax-radius-lg);
	padding: clamp(1.5rem, 4vw, 2.25rem); margin-bottom: var(--tax-space-70);
}
.tax-panduan-kaki__ajak b { display: block; color: var(--tax-forest); margin-bottom: var(--tax-space-20); }
.tax-panduan-kaki__ajak p { margin: 0; font-size: var(--tax-fs-sm); max-width: 60ch; }
.tax-panduan-kaki__tombol { display: flex; flex-wrap: wrap; gap: var(--tax-space-30); }
@media (min-width: 900px) { .tax-panduan-kaki__ajak { grid-template-columns: minmax(0, 1fr) auto; } }

.tax-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--tax-space-40); }
.tax-grid-3 .tax-kartu { display: grid; gap: var(--tax-space-20); align-content: start; text-decoration: none; }
.tax-grid-3 .tax-kartu b { color: var(--tax-ink); }
.tax-grid-3 .tax-kartu span { font-size: var(--tax-fs-sm); color: var(--tax-muted); }

/* Kotak "kalau macet di langkah ini" di dalam panduan. */
.tax-macet {
	background: var(--tax-risk-sedang-bg); border-radius: var(--tax-radius-md);
	padding: var(--tax-space-40) var(--tax-space-50); margin-block: var(--tax-space-50);
	font-size: var(--tax-fs-sm); color: var(--tax-risk-sedang-teks);
}
/* Hanya <b> pertama yang jadi judul kotak. Sebelum dibatasi begini, tiap
   penebalan di dalam kalimat ikut jadi blok dan memecah satu kalimat jadi
   tiga baris terpisah. */
.tax-macet > b:first-child { display: block; margin-bottom: var(--tax-space-20); }

/* Daftar "yang Anda terima": deliverable, bukan aktivitas. */
.tax-terima { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tax-space-40); }
.tax-terima > li { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: var(--tax-space-30); align-items: start; }
.tax-terima svg { width: 1.25rem; height: 1.25rem; color: var(--tax-emerald-700); margin-top: .2rem; }
.tax-terima b { color: var(--tax-ink); }

/* Isi langkah bernomor: judul di atas, penjelasan di bawahnya. */
.tax-langkah > li > div { display: grid; gap: var(--tax-space-10); }
.tax-langkah > li b { color: var(--tax-ink); }
.tax-langkah > li span { color: var(--tax-muted); font-size: var(--tax-fs-sm); }

/* Tautan ke satu alat, dipakai dari halaman layanan dan segmen. */
.tax-alat-tautan {
	display: grid; grid-template-columns: 2rem minmax(0, 1fr) 1.25rem; gap: var(--tax-space-40);
	align-items: center; text-decoration: none;
	background: var(--tax-surface); border-radius: var(--tax-radius-lg);
	padding: var(--tax-space-50); transition: background .18s ease;
}
.tax-alat-tautan:hover { background: var(--tax-mint-50); }
.tax-alat-tautan > svg:first-child { width: 2rem; height: 2rem; color: var(--tax-emerald-700); }
.tax-alat-tautan > svg:last-child { width: 1.25rem; height: 1.25rem; color: var(--tax-muted); }
.tax-alat-tautan div { display: grid; gap: .15rem; }
.tax-alat-tautan b { color: var(--tax-ink); }
.tax-alat-tautan span { color: var(--tax-muted); font-size: var(--tax-fs-sm); }
.tax-grid-3--ikon .tax-kartu svg { width: 1.75rem; height: 1.75rem; color: var(--tax-emerald-700); }
.tax-grid-3--ikon .tax-kartu em { font-style: normal; }

/* ── Kalkulator ─────────────────────────────────────────────────── */
.tax-alat__kolom { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 0 var(--tax-space-40); }
.tax-kolom__bantuan { display: block; margin-top: .2rem; font-size: var(--tax-fs-xs); color: var(--tax-muted); max-width: 46ch; }
.tax-alat__label { display: block; font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-muted); }
.tax-alat__angka {
	display: block; margin-block: var(--tax-space-20) var(--tax-space-30);
	font-family: var(--tax-font-judul); font-size: var(--tax-fs-tajuk-1);
	letter-spacing: var(--tax-ls-judul); font-variant-numeric: tabular-nums;
}
.tax-alat__hasil--ok .tax-alat__angka { color: var(--tax-emerald-800); }
.tax-alat__hasil--sedang .tax-alat__angka { color: var(--tax-risk-sedang-teks); }
.tax-alat__hasil--galat .tax-alat__angka { color: var(--tax-risk-tinggi-teks); }
.tax-alat__hasil p { margin: 0; font-size: var(--tax-fs-sm); color: var(--tax-ink-600); max-width: 62ch; }

.tax-alat__rinci { margin-top: var(--tax-space-40); }
.tax-alat__rinci summary { cursor: pointer; font-size: var(--tax-fs-sm); color: var(--tax-emerald-800); font-weight: 600; }
.tax-alat__rinci dl { display: grid; gap: 0; margin: var(--tax-space-40) 0 0; border-top: 1px solid var(--tax-line); }
.tax-alat__rinci > dl > div {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--tax-space-40);
	padding-block: var(--tax-space-30); border-bottom: 1px solid var(--tax-line); font-size: var(--tax-fs-sm);
}
.tax-alat__rinci dt { color: var(--tax-muted); }
.tax-alat__rinci dd { margin: 0; color: var(--tax-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tax-alat__nojs { font-size: var(--tax-fs-sm); color: var(--tax-muted); margin: var(--tax-space-40) 0 0; }
.tax-alat [data-wa-hasil] { margin-top: var(--tax-space-50); }
.tax-tinjau { margin-top: 0; }
@media (max-width: 600px) { .tax-alat__rinci > dl > div { grid-template-columns: 1fr; gap: .15rem; } .tax-alat__rinci dd { white-space: normal; } }

/* Penanda identitas yang belum diisi. Sengaja mencolok: yang tidak terlihat
   akan lolos ke produksi, dan halaman legal tanpa nama badan usaha justru
   melemahkan posisi hukum yang ingin dibangunnya. */
.tax-penanda {
	background: var(--tax-risk-sedang-bg); color: var(--tax-risk-sedang-teks);
	border: 1px dashed var(--tax-risk-sedang); border-radius: var(--tax-radius-sm);
	padding: .1rem .4rem; font-size: var(--tax-fs-xs); font-weight: 700;
	letter-spacing: var(--tax-ls-caps);
}

/* ── Identitas penyelenggara, di /kontak ────────────────────────── */
.tax-identitas {
	border: 1px solid var(--tax-line); border-radius: var(--tax-radius-lg);
	padding: var(--tax-space-50); margin-block-start: var(--tax-space-60);
	font-size: var(--tax-fs-sm); color: var(--tax-ink-600);
}
.tax-identitas h2 { font-size: var(--tax-fs-tajuk-3); margin: 0 0 var(--tax-space-40); }
.tax-identitas p { margin: 0 0 var(--tax-space-30); }
.tax-identitas b { color: var(--tax-ink); }
.tax-identitas__catatan { color: var(--tax-muted); margin-bottom: 0; }

/* ── layout.css ─────────────────────────────── */
/* Layout: kerangka halaman, header, navigasi, footer.
   Komponen isi ada di komponen.css; berkas ini hanya soal struktur. */

/* ── Kerangka halaman ───────────────────────────────────────────── */
/* 100vh lebih dulu: peramban tanpa dvh membuang seluruh deklarasinya, dan
   tanpa cadangan ini min-height hilang sama sekali sehingga footer naik
   ke tengah layar di halaman yang isinya pendek. */
.tax-situs { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.tax-isi   { flex: 1; }

.tax-wrap {
	width: 100%; max-width: var(--tax-w-lebar);
	margin-inline: auto; padding-inline: var(--tax-pad-tepi);
}
.tax-wrap--sempit { max-width: var(--tax-w-konten); }
/* Lebar isi halaman CPT: lebih lega dari kolom baca (760) tapi tidak selebar
   hub (1200), supaya barisnya tidak terlalu jauh. */
.tax-wrap--isi { max-width: 1000px; }

/* Wrap di dalam wrap tidak menambah batas apa pun: yang di luar sudah
   membatasi. Tanpa aturan ini paddingnya berlipat, dan isi halaman bergeser
   24px dari judulnya — persis yang terjadi di 34 halaman CPT saat perakit
   mulai membungkus blok yang tidak berpembungkus, sementara templatenya sudah
   membungkus lebih dulu. */
.tax-wrap .tax-wrap { max-width: none; padding-inline: 0; }

.tax-seksi { padding-block: clamp(2.25rem, 4.5vw, 3.75rem); }
.tax-seksi--rapat { padding-block: clamp(2rem, 4vw, 3rem); }

/* ── Logo ───────────────────────────────────────────────────────── */
.tax-logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; }
.tax-logo__mark { width: 2rem; height: 2rem; flex: none; }
.tax-logo__teks {
	font-size: 1.2rem; font-weight: 800; letter-spacing: -.055em;
	color: var(--tax-ink); line-height: 1; white-space: nowrap;
}
.tax-logo__teks span { color: var(--tax-emerald); }
.tax-logo--gelap .tax-logo__teks { color: var(--tax-di-forest-kuat); }
.tax-logo--gelap .tax-logo__teks span { color: var(--tax-mint-400); }

/* ── Header ─────────────────────────────────────────────────────── */
.tax-header {
	position: sticky; top: 0; z-index: 100;
	background: var(--tax-bg);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease, box-shadow .2s ease;
}
/* Garis bawah baru muncul setelah di-scroll — header terasa menyatu dengan
   hero saat di puncak halaman, lalu memisahkan diri saat konten lewat. */
.tax-header.is-lengket { border-bottom-color: var(--tax-line); box-shadow: var(--tax-shadow-sm); }

.tax-header__isi {
	position: relative;   /* konteks penjangkaran untuk panel berkelompok */
	display: flex; align-items: center; gap: var(--tax-space-50);
	min-height: 72px;
}
/* Selektor sengaja memakai induknya. WordPress memancarkan
   `.is-layout-flex > :is(*, div){margin:0}` — spesifisitas 0,1,1, yang
   mengalahkan kelas tunggal 0,1,0 dan diam-diam membatalkan auto-margin.
   Tombol Konsultasi lalu menempel di nav, bukan terdorong ke kanan.
   Gejalanya tidak melempar error apa pun; hanya terlihat di layar. */
.tax-header__isi > .tax-header__aksi {
	margin-inline-start: auto;
	display: flex; align-items: center; gap: var(--tax-space-30);
}

/* ── Navigasi desktop ───────────────────────────────────────────── */
.tax-nav__daftar {
	display: flex; align-items: center; gap: var(--tax-space-20);
	list-style: none; margin: 0; padding: 0;
}
.tax-nav__item { position: relative; display: flex; align-items: center; }

.tax-nav__tautan {
	display: inline-block; padding: .5rem .35rem .5rem .6rem;
	font-size: var(--tax-fs-sm); font-weight: 500;
	color: var(--tax-ink-600); text-decoration: none; border-radius: var(--tax-radius-sm);
}
.tax-nav__tautan:hover { color: var(--tax-ink); }
.tax-nav__item.is-aktif > .tax-nav__tautan { color: var(--tax-ink); font-weight: 600; }

.tax-nav__pemicu {
	display: grid; place-items: center;
	width: 1.75rem; height: 1.75rem; margin-inline-start: -.1rem; margin-inline-end: .15rem;
	padding: 0; border: 0; background: none; cursor: pointer;
	color: var(--tax-muted); border-radius: var(--tax-radius-sm);
}
.tax-nav__pemicu svg { transition: transform .18s ease; }
.tax-nav__item[data-buka="1"] .tax-nav__pemicu svg { transform: rotate(180deg); }

/* ── Panel dropdown ─────────────────────────────────────────────── */
.tax-panel {
	position: absolute; top: calc(100% + .5rem); inset-inline-start: -.6rem;
	min-width: 22rem; padding: var(--tax-space-30);
	background: var(--tax-bg); border: 1px solid var(--tax-line);
	border-radius: var(--tax-radius-lg); box-shadow: var(--tax-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(-6px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
/* CSS lebih dulu: hover dan focus-within membuka panel bahkan kalau
   JavaScript gagal dimuat. JS hanya menambah sentuh dan tombol Escape. */
.tax-nav__item--punya-anak:hover > .tax-panel,
.tax-nav__item--punya-anak:focus-within > .tax-panel,
.tax-nav__item[data-buka="1"] > .tax-panel {
	opacity: 1; visibility: visible; transform: translateY(0);
}
/* Escape menutup panel sementara fokus TETAP di pemicunya — pola menu button
   yang benar. Aturan ini harus mengalahkan :focus-within di atas, karena
   fokus yang masih di dalam itulah yang membuat panel bertahan terbuka.
   Empat kelas melawan tiga. Penandanya dicabut nav.js saat fokus keluar. */
.tax-nav__item--punya-anak[data-tutup="1"] > .tax-panel,
.tax-nav__item--grup[data-tutup="1"] > .tax-panel--grup {
	opacity: 0; visibility: hidden; transform: translateY(-6px);
}

.tax-panel__daftar { list-style: none; margin: 0; padding: 0; }
.tax-panel__daftar a {
	display: flex; gap: var(--tax-space-30); align-items: flex-start;
	padding: .7rem .8rem; border-radius: var(--tax-radius-md);
	text-decoration: none; color: var(--tax-ink);
}
.tax-panel__daftar a:hover { background: var(--tax-surface); }
.tax-panel__ikon { width: 1.25rem; height: 1.25rem; flex: none; margin-top: .15rem; color: var(--tax-emerald-700); }
.tax-panel__daftar b { display: block; font-size: var(--tax-fs-sm); font-weight: 600; }
.tax-panel__daftar em {
	display: block; font-style: normal; font-size: var(--tax-fs-xs);
	color: var(--tax-muted); margin-top: .1rem;
}

/* Panel berkelompok lebarnya 46rem — terlalu lebar untuk dijangkarkan ke
   item nav yang posisinya di tengah header. Item dibuat `static` supaya
   panelnya menjangkar ke `.tax-header__isi` dan bisa dipusatkan di sana. */
.tax-nav__item--grup { position: static; }

.tax-panel--grup {
	min-width: min(46rem, calc(100vw - 3rem));
	inset-inline-start: 50%;
	transform: translateX(-50%) translateY(-6px);
	max-height: min(70vh, 34rem); overflow-y: auto;
	padding: var(--tax-space-40);
}
.tax-nav__item--grup:hover > .tax-panel--grup,
.tax-nav__item--grup:focus-within > .tax-panel--grup,
.tax-nav__item--grup[data-buka="1"] > .tax-panel--grup {
	transform: translateX(-50%) translateY(0);
}
.tax-panel__grup {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--tax-space-40) var(--tax-space-50);
	align-items: start;
}
.tax-panel__kolom { break-inside: avoid; }
.tax-panel__kolom ul { list-style: none; margin: 0; padding: 0; }
.tax-panel__kolom a {
	display: block; padding: .4rem .6rem; border-radius: var(--tax-radius-sm);
	font-size: var(--tax-fs-sm); color: var(--tax-ink-600); text-decoration: none;
}
.tax-panel__kolom a:hover { background: var(--tax-surface); color: var(--tax-ink); }
.tax-panel__judul {
	margin: 0 0 .3rem; padding-inline: .6rem;
	font-size: var(--tax-fs-xs); font-weight: 700; letter-spacing: var(--tax-ls-caps);
	text-transform: uppercase; color: var(--tax-emerald-700);
}
.tax-panel__semua {
	display: flex; align-items: center; gap: .4rem;
	margin-top: var(--tax-space-20); padding: .7rem .8rem;
	border-top: 1px solid var(--tax-line);
	font-size: var(--tax-fs-sm); font-weight: 600;
	color: var(--tax-emerald-700); text-decoration: none;
}
.tax-panel__panah { width: 1rem; height: 1rem; transition: transform .15s ease; }
.tax-panel__semua:hover .tax-panel__panah { transform: translateX(3px); }

/* ── Hamburger & drawer ─────────────────────────────────────────── */
.tax-hamburger {
	display: none; width: 2.75rem; height: 2.75rem;
	align-items: center; justify-content: center;
	border: 1px solid var(--tax-line); border-radius: var(--tax-radius-md);
	background: none; cursor: pointer; color: var(--tax-ink);
}
.tax-hamburger svg { width: 1.4rem; height: 1.4rem; }
.tax-hamburger .tutup { display: none; }
.tax-hamburger[aria-expanded="true"] .buka { display: none; }
.tax-hamburger[aria-expanded="true"] .tutup { display: block; }

.tax-bilah-bawah { display: none; }

@media (max-width: 1023px) {
	.tax-hamburger { display: inline-flex; }

	/* Drawer memakai posisi fixed dan menutupi layar penuh; header tetap
	   terlihat supaya tombol tutup selalu di tempat yang sama. */
	.tax-nav {
		position: fixed; inset: 72px 0 0; z-index: 99;
		background: var(--tax-bg); overflow-y: auto;
		padding: var(--tax-space-50) var(--tax-pad-tepi) 7rem;
		transform: translateX(100%); transition: transform .22s ease;
		visibility: hidden;
	}
	.tax-situs.is-drawer-buka .tax-nav { transform: translateX(0); visibility: visible; }
	.tax-situs.is-drawer-buka { overflow: hidden; }

	.tax-nav__daftar { flex-direction: column; align-items: stretch; gap: 0; }
	.tax-nav__item { flex-wrap: wrap; border-bottom: 1px solid var(--tax-line); }
	.tax-nav__tautan { flex: 1; padding: 1rem .2rem; font-size: var(--tax-fs-lead); font-weight: 600; color: var(--tax-ink); }
	.tax-nav__pemicu { width: 2.75rem; height: 2.75rem; margin: 0; }

	/* Di drawer, panel jadi bagian dari alur — bukan melayang. */
	.tax-nav__item--grup { position: relative; }
	.tax-panel,
	.tax-panel--grup,
	.tax-nav__item--grup[data-buka="1"] > .tax-panel--grup {
		position: static; opacity: 1; visibility: visible; transform: none;
		width: 100%; min-width: 0; max-height: none; overflow: visible;
		border: 0; box-shadow: none; padding: 0 0 var(--tax-space-40);
		display: none;
	}
	.tax-panel__grup { grid-template-columns: 1fr; }
	.tax-nav__item[data-buka="1"] > .tax-panel { display: block; }
	.tax-nav__item--punya-anak:hover > .tax-panel { display: none; }
	.tax-nav__item--punya-anak[data-buka="1"]:hover > .tax-panel { display: block; }

	.tax-header__aksi .tax-btn--ink { display: none; } /* pindah ke bilah bawah */

	/* Bilah bawah lengket: dua aksi terpenting selalu dalam jangkauan jempol. */
	.tax-bilah-bawah {
		position: fixed; inset-inline: 0; bottom: 0; z-index: 101;
		display: grid; grid-template-columns: 1fr 1fr; gap: var(--tax-space-30);
		padding: var(--tax-space-30) var(--tax-pad-tepi);
		padding-bottom: calc(var(--tax-space-30) + env(safe-area-inset-bottom));
		background: var(--tax-bg); border-top: 1px solid var(--tax-line);
	}
	.tax-bilah-bawah .tax-btn { width: 100%; }
	.tax-situs { padding-bottom: 5rem; } /* ruang supaya bilah tidak menutupi footer */
}

/* ── Breadcrumb ─────────────────────────────────────────────────── */
.tax-breadcrumb ol {
	display: flex; flex-wrap: wrap; align-items: center; gap: .4rem;
	list-style: none; margin: 0; padding: 0;
	font-size: var(--tax-fs-xs); color: var(--tax-muted);
}
.tax-breadcrumb li + li::before { content: "/"; margin-inline-end: .4rem; color: var(--tax-line); }
.tax-breadcrumb a { color: var(--tax-muted); text-decoration: none; }
.tax-breadcrumb a:hover { color: var(--tax-ink); text-decoration: underline; }
.tax-breadcrumb [aria-current] { color: var(--tax-ink-600); }

/* ── Grid kartu ─────────────────────────────────────────────────── */
.tax-grid { display: grid; gap: var(--tax-space-40); }
.tax-grid--1 { grid-template-columns: 1fr; }
.tax-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tax-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tax-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) {
	.tax-grid--3, .tax-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.tax-grid--2, .tax-grid--3, .tax-grid--4 { grid-template-columns: 1fr; }
}

.tax-grup-alat + .tax-grup-alat { margin-top: var(--tax-space-70); }
.tax-grup-alat > h2 { font-size: var(--tax-fs-tajuk-3); margin-bottom: var(--tax-space-40); }
.tax-kartu--alat h3 { font-size: var(--tax-fs-base); }

.tax-kartu--alat .tax-kartu__aksi {
	display: inline-flex; align-items: center; gap: .35rem;
	margin-top: var(--tax-space-40);
	font-size: var(--tax-fs-sm); font-weight: 600; color: var(--tax-emerald-700);
}
.tax-kartu--alat .tax-kartu__aksi svg { width: 1rem; height: 1rem; transition: transform .15s ease; }
.tax-kartu--alat:hover .tax-kartu__aksi svg { transform: translateX(3px); }

/* ── Kartu testimoni & konsultan ────────────────────────────────── */
.tax-testi { margin: 0; display: flex; flex-direction: column; gap: var(--tax-space-40); }
.tax-testi__rating { color: var(--tax-risk-sedang-teks); letter-spacing: .1em; font-size: var(--tax-fs-sm); }
.tax-testi blockquote { margin: 0; color: var(--tax-ink-600); font-size: var(--tax-fs-sm); }
.tax-testi figcaption { display: flex; align-items: center; gap: .7rem; margin-top: auto; }
.tax-testi figcaption b { display: block; font-size: var(--tax-fs-sm); color: var(--tax-ink); }
.tax-testi figcaption em { font-style: normal; font-size: var(--tax-fs-xs); color: var(--tax-muted); }

.tax-konsultan { text-align: center; }
.tax-konsultan__foto { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; margin-inline: auto; }
.tax-konsultan .tax-avatar { margin-inline: auto; }
.tax-konsultan h3 { margin: var(--tax-space-40) 0 var(--tax-space-20); font-size: var(--tax-fs-lead); }

/* ── Catatan halaman yang belum ditulis ─────────────────────────── */
.tax-catatan-draf {
	display: flex; gap: var(--tax-space-30); align-items: center;
	margin-bottom: var(--tax-space-50); padding: var(--tax-space-40) var(--tax-space-50);
	background: var(--tax-risk-sedang-bg); color: var(--tax-risk-sedang-teks);
	border-radius: var(--tax-radius-md); font-size: var(--tax-fs-sm);
}
.tax-catatan-draf svg { width: 1.3rem; height: 1.3rem; flex: none; }

/* ── Footer ─────────────────────────────────────────────────────── */
.tax-footer {
	background: var(--tax-ink); color: var(--tax-gelap-teks);
	padding-block: clamp(3rem, 6vw, 4.5rem) var(--tax-space-60);
	font-size: var(--tax-fs-sm);
}
.tax-footer__atas {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr);
	gap: var(--tax-space-70); align-items: start;
	padding-bottom: var(--tax-space-70); border-bottom: 1px solid var(--tax-gelap-garis);
}
@media (max-width: 900px) { .tax-footer__atas { grid-template-columns: 1fr; } }

.tax-footer__merek p { margin: var(--tax-space-40) 0 0; max-width: 32ch; color: var(--tax-gelap-redup); }

.tax-footer__tautan { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: var(--tax-space-50); }
.tax-footer__judul {
	margin: 0 0 var(--tax-space-30); color: var(--tax-di-forest-kuat);
	font-size: var(--tax-fs-xs); font-weight: 700;
	letter-spacing: var(--tax-ls-caps); text-transform: uppercase;
}
.tax-footer__kolom ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.tax-footer__kolom a { color: var(--tax-gelap-teks); text-decoration: none; }
.tax-footer__kolom a:hover { color: var(--tax-di-forest-kuat); text-decoration: underline; }

.tax-footer__bawah {
	display: flex; flex-wrap: wrap; gap: var(--tax-space-30) var(--tax-space-50);
	justify-content: space-between; padding-top: var(--tax-space-50);
	font-size: var(--tax-fs-xs); color: var(--tax-gelap-redup);
}
.tax-footer__bawah a { color: var(--tax-gelap-teks); }

/* ── Hero halaman CPT ───────────────────────────────────────────── */
.tax-hero-cpt { max-width: 42rem; padding-top: var(--tax-space-50); }
.tax-eyebrow {
	margin: 0 0 var(--tax-space-20);
	font-size: var(--tax-fs-xs); font-weight: 700;
	letter-spacing: var(--tax-ls-caps); text-transform: uppercase;
	color: var(--tax-emerald-700);
}
.tax-lead { font-size: var(--tax-fs-lead); color: var(--tax-muted); max-width: 46ch; }
.tax-hero-cpt__harga {
	display: inline-block; margin: 0 0 var(--tax-space-50);
	padding: .45rem 1rem; border-radius: var(--tax-radius-pill);
	background: var(--tax-mint-50); color: var(--tax-forest);
	font-weight: 700; font-size: var(--tax-fs-sm);
	font-variant-numeric: tabular-nums;
}
.tax-hero-cpt__aksi { display: flex; flex-wrap: wrap; gap: var(--tax-space-30); margin-top: var(--tax-space-50); }

/* Hero CPT berfoto: teks kiri, foto kanan.

   Pembungkusnya TETAP tax-wrap--sempit supaya h1 sejajar persis dengan isi
   di bawahnya (pernah meleset 220px di 12 halaman, Phase 8). Fotonya yang
   menjulur ke kanan sejauh selisih wrap lebar dan wrap sempit, jadi teks
   tinggal di kolom baca dan foto memakai ruang yang memang kosong di sisi
   kanan. Di viewport yang lebih sempit dari wrap lebar, juluran mengecil
   sendiri sampai nol. */
.tax-hero-cpt--foto {
	/* Hero dua kolom: teks kiri, foto kanan. Default mengisi wrap-nya
	   (dipakai hero halaman hub yang wrap-nya lebar). */
	max-width: none;
	width: 100%;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 26rem);
	gap: clamp(2rem, 4vw, 3.5rem); align-items: center;
}
/* Di dalam kolom baca sempit (halaman CPT: layanan/alat/segmen/panduan/
   istilah, dan halaman ber-'sempit'), teks hero sejajar dengan breadcrumb
   dan isi, sementara fotonya menjulur ke kanan sampai tepi lebar. Julur nol
   di layar sempit, jadi tidak pernah meluber. */
.tax-wrap--sempit .tax-hero-cpt--foto {
	--tax-julur-kanan: max(0px, (min(100vw, var(--tax-w-lebar)) - var(--tax-w-konten)) / 2);
	width: calc(100% + var(--tax-julur-kanan));
}
.tax-hero-cpt--foto .tax-hero-cpt__teks { max-width: 42rem; }
.tax-hero-cpt__foto {
	border-radius: var(--tax-radius-xl); overflow: hidden;
	aspect-ratio: 5 / 4; background: var(--tax-surface);
	box-shadow: var(--tax-shadow-lg);
}
.tax-hero-cpt__foto picture, .tax-hero-cpt__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) {
	.tax-hero-cpt--foto { grid-template-columns: 1fr; width: 100%; }
	.tax-hero-cpt__foto { aspect-ratio: 16 / 10; }
}

/* Figur tengah isi: keterangan di bawah foto lebar. */
.tax-foto-lebar figcaption {
	padding: var(--tax-space-30) var(--tax-space-20) 0;
	font-size: var(--tax-fs-xs); color: var(--tax-muted);
}

/* Ringkasan 30 detik: jawaban langsung di atas lipatan untuk yang tidak
   membaca seluruhnya, dan kalimat yang paling mungkin dikutip AI Overview. */
/* Halaman CPT memakai lebar penuh 1200 supaya lega — kotak, tabel, daftar
   isi, dan foto memanfaatkannya. Prosa (paragraf dan daftar biasa) tetap
   dijaga pada lebar baca yang nyaman supaya barisnya tidak terlalu panjang. */
.entry-content .wp-block-paragraph:not(.tax-lead),
.entry-content > .wp-block-list,
.entry-content .wp-block-list:not([class*="tax-"]) { max-width: 70ch; }

.tax-ringkasan {
	border-left: 3px solid var(--tax-emerald-700);
	background: var(--tax-surface); border-radius: 0 var(--tax-radius-lg) var(--tax-radius-lg) 0;
	padding: var(--tax-space-50) var(--tax-space-60); margin-block: var(--tax-space-50);
}
.tax-ringkasan > b { display: block; margin-bottom: var(--tax-space-30); font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-emerald-700); }
.tax-ringkasan ul { margin: 0; padding-left: 1.1rem; }
.tax-ringkasan li + li { margin-top: var(--tax-space-20); }

/* Daftar isi halaman panjang, dirender dari h2 yang benar-benar ada. */
.tax-daftar-isi {
	border: 1px solid var(--tax-line); border-radius: var(--tax-radius-lg);
	padding: var(--tax-space-40) var(--tax-space-50); margin-block: var(--tax-space-50);
	font-size: var(--tax-fs-sm);
}
.tax-daftar-isi > b { display: block; margin-bottom: var(--tax-space-30); color: var(--tax-ink); }
.tax-daftar-isi ol { margin: 0; padding-left: 1.25rem; columns: 2; column-gap: var(--tax-space-60); }
.tax-daftar-isi li { break-inside: avoid; margin-bottom: var(--tax-space-20); }
.tax-daftar-isi a { color: var(--tax-ink-600); text-decoration: none; }
.tax-daftar-isi a:hover { color: var(--tax-emerald-800); text-decoration: underline; }
@media (max-width: 640px) { .tax-daftar-isi ol { columns: 1; } }

/* Contoh kasus berangka: markup rincian kalkulator plus satu paragraf narasi. */
.tax-kasus > p { margin: var(--tax-space-20) 0 var(--tax-space-40); color: var(--tax-ink-600); font-size: var(--tax-fs-sm); }
/* Kotak kasus meminjam markup .tax-alat__rinci, yang dd-nya nowrap karena
   berisi angka. Di sini dd-nya kalimat: boleh membungkus, dan kolom
   istilahnya dibatasi supaya barisnya tidak melebar keluar bingkai. */
.tax-kasus > dl > div { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); align-items: start; }
.tax-kasus dd { white-space: normal; }
.tax-kasus dt { font-weight: 600; color: var(--tax-ink); }
@media (max-width: 600px) { .tax-kasus > dl > div { grid-template-columns: 1fr; } }

/* Perbandingan dua kolom: salah/benar, sebelum/sesudah. Kolom kanan yang
   ditonjolkan karena itu yang ingin diingat pembaca. */
.tax-banding { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tax-space-40); margin-block: var(--tax-space-50); }
.tax-banding__kolom { border: 1px solid var(--tax-line); border-radius: var(--tax-radius-lg); padding: var(--tax-space-50); }
.tax-banding__kolom > b { display: block; margin-bottom: var(--tax-space-30); font-size: var(--tax-fs-xs); letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-muted); }
.tax-banding__kolom--kanan { border-color: var(--tax-emerald-700); background: var(--tax-mint-50); }
.tax-banding__kolom--kanan > b { color: var(--tax-emerald-800); }
.tax-banding ul { margin: 0; padding-left: 1.1rem; font-size: var(--tax-fs-sm); }
.tax-banding li + li { margin-top: var(--tax-space-20); }
@media (max-width: 700px) { .tax-banding { grid-template-columns: 1fr; } }

/* Tangkapan layar di panduan: bingkai tipis supaya layar putih tidak lebur
   ke latar putih, dan keterangan sumbernya selalu ada. */
.tax-layar { margin: var(--tax-space-40) 0 var(--tax-space-50); }
.tax-layar img { display: block; width: 100%; height: auto; border: 1px solid var(--tax-line); border-radius: var(--tax-radius-md); }
.tax-layar figcaption { padding-top: var(--tax-space-20); font-size: var(--tax-fs-xs); color: var(--tax-muted); }

/* ── Meta artikel ───────────────────────────────────────────────── */
.tax-meta-artikel {
	margin-bottom: var(--tax-space-50);
	font-size: var(--tax-fs-xs); color: var(--tax-muted);
}

/* Judul halaman punya jarak bawah yang konsisten di semua template. */
.tax-isi > .tax-wrap > .wp-block-post-title { margin-block: var(--tax-space-40) var(--tax-space-50); }

/* ══ Pattern ═══════════════════════════════════════════════════════ */

/* Kepala section: eyebrow + judul + lead. Dipakai hampir semua pattern. */
.tax-kepala { max-width: 44rem; margin-bottom: var(--tax-space-70); }
.tax-kepala--tengah { margin-inline: auto; text-align: center; }
.tax-kepala > :last-child { margin-bottom: 0; }

/* ── Hero beranda ───────────────────────────────────────────────── */
.tax-hero {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem); align-items: center;
	/* Batas atas 3.5rem: lebih dari itu isi hero mengambang di tengah
	   viewport dan terbaca sebagai kesalahan tata letak, bukan ruang sengaja. */
	padding-block: clamp(1.5rem, 3vw, 3.5rem) clamp(2rem, 4vw, 3.5rem);
}
@media (max-width: 900px) { .tax-hero { grid-template-columns: 1fr; } }

.tax-hero h1 { font-size: var(--tax-fs-display); margin-bottom: var(--tax-space-40); }
.tax-hero h1 em { font-style: normal; color: var(--tax-emerald); }
.tax-hero__aksi { display: flex; flex-wrap: wrap; gap: var(--tax-space-30); margin-block: var(--tax-space-50); }
/* ── Komposit hero: foto + kartu Peta Risiko ─────────────────────
   Kartu ditumpuk sebagai DOM, bukan digambar ke dalam gambar. Teksnya
   tetap bisa dipilih dan dibaca screen reader, dan tidak perlu aset
   kedua untuk layar retina. */
.tax-hero__gambar {
	position: relative;
	justify-self: end; width: 100%; max-width: 34rem;
	padding-bottom: 3.5rem;          /* ruang untuk kartu yang menjorok keluar */
}
.tax-hero__foto {
	border-radius: var(--tax-radius-xl); overflow: hidden;
	background: var(--tax-forest); aspect-ratio: 7 / 6;
	box-shadow: var(--tax-shadow-lg);
}
.tax-hero__foto picture, .tax-hero__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }

.tax-hero__kartu {
	position: absolute; inset-inline-start: -1.5rem; bottom: 0; z-index: 2;
	width: min(21rem, 82%);
	background: var(--tax-bg); border-radius: var(--tax-radius-lg);
	box-shadow: 0 16px 44px rgba(4, 61, 59, .22);
	padding: var(--tax-space-40);
}
.tax-hero__kartu-label {
	margin: 0 0 .2rem; font-size: 10px; font-weight: 700;
	letter-spacing: var(--tax-ls-caps); text-transform: uppercase; color: var(--tax-muted);
}
.tax-hero__kartu-judul {
	margin: 0 0 var(--tax-space-30); padding-bottom: var(--tax-space-30);
	border-bottom: 1px solid var(--tax-line);
	font-size: var(--tax-fs-sm); font-weight: 800; color: var(--tax-ink);
	letter-spacing: -.01em;
}
.tax-hero__kartu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.tax-hero__kartu li { display: flex; align-items: center; gap: .5rem; }
.tax-hero__titik { width: .5rem; height: .5rem; border-radius: 50%; flex: none; }
.tax-hero__titik--tinggi { background: var(--tax-risk-tinggi); }
.tax-hero__titik--sedang { background: var(--tax-risk-sedang); }
.tax-hero__titik--rendah { background: var(--tax-risk-rendah); }
.tax-hero__temuan {
	flex: 1; min-width: 0; font-size: 12px; font-weight: 600; color: var(--tax-ink);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tax-hero__kartu .tax-risiko { flex: none; font-size: 10px; padding: .2rem .5rem .2rem .4rem; }

.tax-hero__pil {
	/* Di kanan-ATAS foto. Sebelumnya di kanan-bawah dan menutupi badge
	   risiko pada kartu Peta Risiko yang menjorok dari kiri. */
	position: absolute; inset-inline-end: .9rem; top: .9rem; z-index: 3;
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--tax-emerald-700); color: var(--tax-di-forest-kuat);
	font-size: var(--tax-fs-xs); font-weight: 700;
	padding: .6rem 1.05rem; border-radius: var(--tax-radius-pill);
	box-shadow: 0 8px 24px rgba(0, 118, 74, .35);
}
.tax-hero__pil svg { width: 1rem; height: 1rem; }

@media (max-width: 560px) {
	/* Di layar sempit kartu berhenti menjorok — kalau tidak, ia keluar
	   viewport dan memicu scroll horizontal. */
	.tax-hero__kartu { inset-inline-start: 0; width: 100%; }
	.tax-hero__pil { inset-inline-end: .5rem; top: .5rem; }
}
/* Di layar sempit gambar TIDAK dinaikkan ke atas: mendorong judul ke bawah
   lipatan dan membuat elemen LCP jadi gambar, bukan teks. */
@media (max-width: 900px) {
	.tax-hero__gambar { justify-self: stretch; max-width: 30rem; margin-inline: auto; }
}

/* Baris pill tag di bawah hero */
.tax-pill-baris { display: flex; flex-wrap: wrap; gap: var(--tax-space-20); }

/* ── Dukungan markup beranda kustom ──────────────────────────────────
 * Beranda (versi suntingan tangan) memakai sejumlah kelas warisan yang
 * belum pernah punya CSS: akibatnya ikon-ikonnya tampil seukuran penuh
 * dan daftarnya bernomor. Aturan di bawah hanya MENYEDIAKAN gaya yang
 * markup itu harapkan supaya rendernya benar — isi dan struktur beranda
 * tidak diubah. Kelas ini hanya dipakai di beranda (dan /style-guide).
 */
.tax-ikon-baris {
	width: 1.25rem; height: 1.25rem; flex: none;
	display: inline-block; vertical-align: -0.22em;
	margin-right: var(--tax-space-20);
	color: var(--tax-emerald-700);
}

/* Strip "Paling sering dicari" — pill berikon dalam satu baris */
.tax-strip-cepat ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--tax-space-20); }
.tax-strip-cepat li { margin: 0; }
.tax-strip-cepat li a { display: inline-flex; align-items: center; padding: var(--tax-space-20) var(--tax-space-30); background: var(--tax-surface); border: 1px solid var(--tax-line); border-radius: var(--tax-radius-pill); text-decoration: none; color: inherit; transition: border-color .15s ease; }
.tax-strip-cepat li a:hover { border-color: var(--tax-emerald); }
.tax-strip-cepat li a b { font-weight: 600; font-size: var(--tax-fs-sm); }
.tax-strip-cepat li a em { display: none; }

/* Tiga kartu "Orang datang ke sini biasanya karena satu dari tiga ini" */
.tax-masalah-lembar { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tax-space-40); grid-template-columns: 1fr; }
.tax-masalah-lembar > li { margin: 0; }
.tax-masalah-lembar a { display: block; height: 100%; padding: var(--tax-space-40); background: var(--tax-surface); border: 1px solid var(--tax-line); border-radius: var(--tax-radius-lg); text-decoration: none; color: inherit; transition: border-color .15s ease; }
.tax-masalah-lembar a:hover { border-color: var(--tax-emerald); }
.tax-masalah-lembar h3 { margin: 0 0 var(--tax-space-20); font-size: var(--tax-fs-lead); display: flex; align-items: center; }
.tax-masalah-lembar p { margin: 0; color: var(--tax-muted); font-size: var(--tax-fs-sm); }
@media (min-width: 720px) { .tax-masalah-lembar { grid-template-columns: repeat(3, 1fr); } }

/* Pilar "Kenapa tax.co.id" — versi daftar definisi (dl) */
.tax-pilar__baris dt { font-weight: 700; font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); display: flex; align-items: center; }
.tax-pilar__baris dd { margin: 0; }
.tax-pilar__baris dd p { color: var(--tax-muted); font-size: var(--tax-fs-sm); margin: 0 0 var(--tax-space-20); }
.tax-pilar__baris dd em { color: var(--tax-emerald-700); }

/* ── Masalah -> solusi ──────────────────────────────────────────── */
.tax-masalah h3 { font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); }
.tax-masalah p  { color: var(--tax-muted); font-size: var(--tax-fs-sm); margin: 0; }

/* ── Sesi Diagnosa: 5 poin ──────────────────────────────────────── */
.tax-diagnosa {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: var(--tax-space-50); list-style: none; margin: 0; padding: 0;
	counter-reset: poin;
}
.tax-diagnosa > li { counter-increment: poin; }
.tax-diagnosa > li::before {
	content: counter(poin, decimal-leading-zero);
	display: block; margin-bottom: var(--tax-space-30);
	font-size: var(--tax-fs-tajuk-3); font-weight: 800;
	color: var(--tax-emerald); font-variant-numeric: tabular-nums;
}
.tax-diagnosa b { display: block; color: var(--tax-ink); margin-bottom: var(--tax-space-20); }
.tax-diagnosa span { color: var(--tax-muted); font-size: var(--tax-fs-sm); }

/* ── Kotak jaminan ──────────────────────────────────────────────── */
.tax-jaminan {
	display: flex; gap: var(--tax-space-50); align-items: center; flex-wrap: wrap;
	background: var(--tax-mint-50); border-radius: var(--tax-radius-lg);
	padding: var(--tax-space-60);
}
.tax-jaminan svg { width: 2.75rem; height: 2.75rem; color: var(--tax-emerald-700); flex: none; }
.tax-jaminan__isi { flex: 1; min-width: 16rem; }
.tax-jaminan b { display: block; color: var(--tax-forest); font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); }
.tax-jaminan p { margin: 0; color: var(--tax-ink-600); font-size: var(--tax-fs-sm); }

/* ── Stat grid ──────────────────────────────────────────────────── */
.tax-stat { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--tax-space-50); }
.tax-stat > div { border-top: 3px solid var(--tax-emerald); padding-top: var(--tax-space-40); }
.tax-stat b {
	display: block; font-size: var(--tax-fs-tajuk-2); font-weight: 800;
	letter-spacing: var(--tax-ls-judul); color: var(--tax-ink);
	font-variant-numeric: tabular-nums; line-height: 1.1;
}
.tax-stat span { display: block; margin-top: var(--tax-space-20); color: var(--tax-muted); font-size: var(--tax-fs-sm); }

/* ── CTA penutup ────────────────────────────────────────────────── */
.tax-cta {
	background: var(--tax-forest); border-radius: var(--tax-radius-xl);
	padding: clamp(2.5rem, 6vw, 4.5rem); text-align: center; color: var(--tax-di-forest-kuat);
}
.tax-cta h2 { color: var(--tax-di-forest-kuat); max-width: 24ch; margin-inline: auto; }
.tax-cta p { color: var(--tax-di-forest); max-width: 46ch; margin-inline: auto; }
.tax-cta__aksi { display: flex; flex-wrap: wrap; gap: var(--tax-space-30); justify-content: center; margin-top: var(--tax-space-50); }

/* ── Tabel perbandingan ─────────────────────────────────────────── */
.tax-tabel td:first-child { font-weight: 600; color: var(--tax-ink); }
.tax-tabel--banding td:last-child { text-align: left; font-weight: 400; color: var(--tax-ink-600); white-space: normal; }
.tax-tabel--banding th:first-child { width: 30%; }
.tax-tabel .ya  { color: var(--tax-emerald-800); font-weight: 700; }
.tax-tabel .tdk { color: var(--tax-muted); }

/* ── Grid pilar nilai ───────────────────────────────────────────── */
.tax-pilar { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--tax-space-60); }
.tax-pilar h3 { font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); }
.tax-pilar p { color: var(--tax-muted); font-size: var(--tax-fs-sm); margin: 0 0 var(--tax-space-30); }
.tax-pilar em {
	font-style: italic; color: var(--tax-forest); font-size: var(--tax-fs-sm);
	display: block; padding-top: var(--tax-space-30); border-top: 1px solid var(--tax-line);
}


/* Header lengket setinggi 72px menutupi judul saat halaman melompat ke
   anchor. scroll-margin memberi ruang supaya judulnya tetap terlihat. */
:where(h1, h2, h3, [id]) { scroll-margin-top: 5.5rem; }

/* Hero: kolom teks sedikit lebih lebar, dan judul diturunkan dari skala
   display. Pada kolom selebar ~570px, 68px membuat judul pecah jadi
   enam baris. */
.tax-hero { grid-template-columns: minmax(0, 1.22fr) minmax(0, 0.78fr); }
.tax-hero h1 { font-size: clamp(2.25rem, 1.5rem + 2.8vw, 3.75rem); max-width: 15ch; }
@media (max-width: 900px) { .tax-hero { grid-template-columns: 1fr; } }

.tax-sumber { font-size: var(--tax-fs-xs); color: var(--tax-muted); margin-top: var(--tax-space-50); }

/* ── Style guide ────────────────────────────────────────────────── */
.tax-sg h2 { margin-top: var(--tax-space-90); padding-top: var(--tax-space-60); border-top: 1px solid var(--tax-line); }
.tax-sg h2:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.tax-sg__swatch { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: var(--tax-space-30); }
.tax-sg__sw { border: 1px solid var(--tax-line); border-radius: var(--tax-radius-md); padding: var(--tax-space-30); font-size: var(--tax-fs-xs); }
.tax-sg__chip { height: 3.25rem; border-radius: var(--tax-radius-sm); display: flex; align-items: flex-end;
	padding: .35rem .5rem; font-size: 11px; font-weight: 600; margin-bottom: .5rem; font-variant-numeric: tabular-nums; }
.tax-sg__sw b { display: block; color: var(--tax-ink); font-size: var(--tax-fs-sm); }
.tax-sg__sw code, .tax-sg code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; color: var(--tax-emerald-800); }
.tax-sg__sw p { color: var(--tax-muted); margin: .35rem 0 0; line-height: 1.45; font-size: 11px; }
.tax-sg__rasio { color: var(--tax-emerald-800); font-weight: 600; }
.tax-sg__ikon { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: var(--tax-space-30); }
.tax-sg__ikon > div { display: flex; flex-direction: column; align-items: center; gap: .45rem; padding: var(--tax-space-30) .25rem;
	border: 1px solid var(--tax-line); border-radius: var(--tax-radius-md); color: var(--tax-forest); }
.tax-sg__ikon svg { width: 1.5rem; height: 1.5rem; }
.tax-sg__ikon code { font-size: 10px; color: var(--tax-muted); text-align: center; word-break: break-all; }
.tax-sg__tipo { display: grid; grid-template-columns: 8rem 1fr; gap: var(--tax-space-50);
	align-items: baseline; padding-block: var(--tax-space-40); border-top: 1px solid var(--tax-line); }
.tax-sg__pola { border: 1px solid var(--tax-line); border-radius: var(--tax-radius-lg); overflow: hidden; margin-bottom: var(--tax-space-60); }
.tax-sg__pola > header { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: baseline;
	padding: var(--tax-space-30) var(--tax-space-40); background: var(--tax-surface); border-bottom: 1px solid var(--tax-line); }
.tax-sg__pola > header b { font-size: var(--tax-fs-sm); }
.tax-sg__pola > header span { font-size: 11px; color: var(--tax-muted); }
.tax-sg__pola > div { padding: var(--tax-space-30); }
/* Pattern di dalam katalog dikecilkan supaya banyak yang muat tanpa scroll. */
.tax-sg__pola .tax-seksi { padding-block: var(--tax-space-50); }
.tax-sg__pola .tax-wrap { padding-inline: 0; }

/* ── Foto lebar section ─────────────────────────────────────────── */
.tax-foto-lebar { margin: 0; border-radius: var(--tax-radius-xl); overflow: hidden; background: var(--tax-surface); }
.tax-foto-lebar picture, .tax-foto-lebar img { display: block; width: 100%; height: auto; }
.tax-poin-foto b { display: block; color: var(--tax-ink); font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); }
.tax-poin-foto p { margin: 0; color: var(--tax-muted); font-size: var(--tax-fs-sm); }

/* ── Strip pencarian cepat (di bawah hero) ──────────────────────── */
.tax-strip-cepat {
	display: flex; align-items: center; gap: var(--tax-space-50);
	flex-wrap: wrap; padding-block: var(--tax-space-50);
	border-top: 1px solid var(--tax-line);
}
.tax-strip-cepat > span {
	font-size: var(--tax-fs-xs); color: var(--tax-muted);
	white-space: nowrap; flex: none;
}

/* ── Susunan asimetris masalah → solusi ─────────────────────────── */
.tax-masalah-susun {
	display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: var(--tax-space-40);
}
.tax-masalah-susun__sisa { display: grid; gap: var(--tax-space-40); }
@media (max-width: 860px) {
	.tax-masalah-susun { grid-template-columns: 1fr; }
}
.tax-masalah--utama { display: flex; flex-direction: column; height: 100%; }
.tax-masalah--utama h3 { font-size: var(--tax-fs-tajuk-3); }
.tax-masalah--utama p { color: var(--tax-di-forest); }
.tax-masalah--utama .tax-kartu__ikon { background: rgba(255,255,255,.1); color: var(--tax-mint-400); }
.tax-masalah__aksi { margin-top: auto; padding-top: var(--tax-space-50); color: var(--tax-mint-400); }
.tax-masalah__aksi svg { width: 1.4rem; height: 1.4rem; transition: transform .16s ease; }
.tax-masalah--utama:hover .tax-masalah__aksi svg { transform: translateX(4px); }

/* ── Baris poin inline (bukan kartu) ────────────────────────────── */
.tax-poin-baris {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	margin-top: var(--tax-space-60);
	border-top: 1px solid var(--tax-line);
}
.tax-poin-baris__item {
	display: flex; gap: var(--tax-space-30); align-items: flex-start;
	padding: var(--tax-space-50) var(--tax-space-50) var(--tax-space-50) 0;
	border-inline-start: 1px solid var(--tax-line);
	padding-inline-start: var(--tax-space-50);
}
.tax-poin-baris__item:first-child { border-inline-start: 0; padding-inline-start: 0; }
@media (max-width: 700px) {
	.tax-poin-baris__item { border-inline-start: 0; padding-inline-start: 0; border-top: 1px solid var(--tax-line); }
	.tax-poin-baris__item:first-child { border-top: 0; }
}
.tax-poin-baris__item svg { width: 1.4rem; height: 1.4rem; color: var(--tax-emerald-700); flex: none; margin-top: .15rem; }
.tax-poin-baris__item b { display: block; color: var(--tax-ink); margin-bottom: .25rem; }
.tax-poin-baris__item p { margin: 0; color: var(--tax-muted); font-size: var(--tax-fs-sm); }

/* ── Artikel editorial: satu besar, sisanya ringkas ─────────────── */
/* Daftar seluruh artikel di hub /artikel (blok tax/daftar-artikel). */
.tax-daftar-artikel {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--tax-space-50); margin: 0 0 var(--tax-space-60);
}
@media (max-width: 1023px) { .tax-daftar-artikel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .tax-daftar-artikel { grid-template-columns: 1fr; } }
.tax-daftar-artikel__kartu > a {
	display: flex; flex-direction: column; gap: var(--tax-space-30); height: 100%;
	color: var(--tax-ink); text-decoration: none;
}
.tax-daftar-artikel__foto { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--tax-radius-md); }
.tax-daftar-artikel__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tax-daftar-artikel__kartu h3 { font-size: var(--tax-fs-lead); margin: 0; }
.tax-daftar-artikel__kartu p { margin: 0; color: var(--tax-ink-600); font-size: var(--tax-fs-sm); }
.tax-daftar-artikel__kartu time { font-size: var(--tax-fs-xs); color: var(--tax-muted); margin-top: auto; }
.tax-daftar-artikel__kartu > a:hover h3 { color: var(--tax-emerald-800); }
.tax-paginasi ul { display: flex; flex-wrap: wrap; gap: var(--tax-space-20); list-style: none; margin: 0; padding: 0; }
.tax-paginasi a, .tax-paginasi span { display: inline-block; padding: 0.5rem 0.9rem; border: 1px solid var(--tax-line); border-radius: var(--tax-radius-pill); text-decoration: none; color: var(--tax-ink); }
.tax-paginasi .current { background: var(--tax-forest); color: var(--tax-bg); border-color: var(--tax-forest); }

.tax-artikel-editorial {
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: var(--tax-space-60); list-style: none; margin: 0; padding: 0;
	align-items: start;
}
@media (max-width: 860px) { .tax-artikel-editorial { grid-template-columns: 1fr; gap: var(--tax-space-50); } }

/* Artikel pertama: gambar tampil, judul besar. */
.tax-artikel-editorial > li:first-child { grid-row: span 2; }
.tax-artikel-editorial > li:first-child .wp-block-post-title { font-size: var(--tax-fs-tajuk-2); }

/* Sisanya: tanpa gambar, jadi daftar ringkas. */
.tax-artikel-editorial > li:not(:first-child) .wp-block-post-featured-image { display: none; }
.tax-artikel-editorial > li:not(:first-child) {
	padding-bottom: var(--tax-space-40); border-bottom: 1px solid var(--tax-line);
}
.tax-artikel-editorial > li:not(:first-child) .wp-block-post-title { font-size: var(--tax-fs-lead); }
.tax-artikel-editorial .wp-block-post-date { font-size: var(--tax-fs-xs); color: var(--tax-muted); }
.tax-artikel-editorial .wp-block-post-title a { color: var(--tax-ink); text-decoration: none; }
.tax-artikel-editorial .wp-block-post-title a:hover { color: var(--tax-emerald-800); }

/* ── Ilustrasi spot ─────────────────────────────────────────────── */
.tax-ilustrasi { width: 100%; height: 100%; display: block; }
.tax-kartu__ilus {
	width: 4.5rem; height: 4.5rem; margin-bottom: var(--tax-space-40);
}
.tax-kartu--gelap .tax-ilustrasi { filter: brightness(0) invert(1); opacity: .92; }

/* ── Kartu berfoto ──────────────────────────────────────────────── */
.tax-kartu--foto { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.tax-kartu__foto { position: relative; aspect-ratio: 16 / 10; background: var(--tax-surface); }
.tax-kartu__foto picture, .tax-kartu__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tax-kartu__isi { padding: var(--tax-space-50); display: flex; flex-direction: column; flex: 1; }
.tax-kartu--foto h3 { font-size: var(--tax-fs-lead); margin-bottom: var(--tax-space-20); }
.tax-kartu--foto p { color: var(--tax-muted); font-size: var(--tax-fs-sm); margin: 0; }
.tax-kartu--foto .tax-kartu__harga { margin-top: auto; padding-top: var(--tax-space-40); }
/* Sedikit zoom saat hover: gerakan pada gambar, bukan pada kartunya,
   supaya tidak memicu perhitungan tata letak. */
.tax-kartu--foto img { transition: transform .35s ease; }
.tax-kartu--foto:hover img { transform: scale(1.04); }
