:root{--emerald:#0F1F1B;--emerald-deep:#0A1714;--gold:#B89A5E;--gold-soft:#CDB17E;--gold-deep:#9A7E45;--ivory:#FAF7F0;--ivory-warm:#FBF9F4;--beige-soft:#EFE9DE;--charcoal:#5A5654;--ink:#1E1B17;--line:rgba(30,27,23,.13);--line-gold:rgba(184,154,94,.32);--pos:#3E7A5E;--neg:#B0604A;--serif:"Playfair Display",Georgia,serif;--sans:"Lato","Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip;overscroll-behavior:none;overscroll-behavior-x:none}
/* Di ponsel halaman ini sempat bisa DIGESER ke samping saat digulir. Dua sebab:
   pantulan elastis di ujung gulir, dan gerak menyamping yang ditangkap dokumen.
   Keduanya dimatikan; hanya tabel batu yang tetap boleh digeser mendatar. */
body{overflow-x:hidden;overflow-x:clip;overscroll-behavior:none;overscroll-behavior-x:none;touch-action:pan-y pinch-zoom;max-width:100%}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15}
a{color:var(--gold-deep);text-decoration:none}a:hover{color:var(--emerald)}
img{max-width:100%;display:block}
[hidden]{display:none!important}
.wrap{max-width:660px;margin:0 auto;padding:0 16px}

.top{background:var(--emerald);color:var(--ivory);border-bottom:2px solid var(--gold-deep)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:14px}
.top .wm{font-family:var(--serif);font-size:18px;letter-spacing:.3em;color:var(--gold-soft)}
.top .wm:hover{color:#fff}
.top a.back{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-soft);border:1px solid rgba(205,177,126,.42);border-radius:99px;padding:9px 16px;min-height:40px}
.top a.back:hover{background:var(--gold);border-color:var(--gold);color:var(--emerald-deep)}

.hero{background:var(--emerald);color:var(--ivory);padding:24px 0 30px}
.hero .eyebrow{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft)}
.hero h1{font-size:30px;color:#fff;margin:11px 0 12px;text-wrap:pretty}
@media(max-width:430px){.hero h1{font-size:25px}}
.hero p{font-size:14.5px;color:rgba(250,247,240,.72);max-width:44ch;text-wrap:pretty}

main{padding:26px 0 60px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:18px;box-shadow:0 1px 3px rgba(15,31,27,.05)}
.card>h3{font-size:17px;color:var(--emerald);padding:15px 18px;border-bottom:1px solid var(--line);background:var(--ivory-warm);display:flex;align-items:center;gap:9px}
.card>h3::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none}
.cb{padding:16px 18px}

/* unggah */
.drop{border:1px dashed var(--line-gold);border-radius:13px;background:var(--ivory-warm);overflow:hidden}
.drop.drag{border-color:var(--gold);background:#fff}
.drop.on{border-style:solid;background:#fff}
.drop.on .zp{display:none}
.drop .zb{min-height:150px;display:flex;align-items:center;justify-content:center;padding:8px;cursor:pointer}
.drop img{width:100%;max-height:320px;object-fit:contain;background:#fff;border-radius:8px}
.zp{text-align:center;color:var(--charcoal);font-size:13px;line-height:1.5;padding:22px 18px}
.zp b{display:block;font-family:var(--serif);font-size:30px;color:var(--gold);margin-bottom:10px;line-height:1}
.zp i{display:block;font-style:normal;font-size:11.5px;color:var(--gold-deep);margin-top:7px}
/* Dua aksi berdampingan. Tombol kamera disembunyikan sampai js/kh-app.js
   memastikan perangkatnya memang punya jalur kamera — di desktop atribut
   `capture` diabaikan dan cuma membuka file picker kedua yang membingungkan.
   Warna & border tombolnya TIDAK diatur di sini: css/cek-harga-motion.css dimuat
   setelah file ini dan sudah memiliki tampilan tombol — varian kamera/galeri
   ikut tinggal di sana supaya hanya ada satu sumber kebenaran. */
.drop .za{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.drop .za label{flex:1;margin:0;border-radius:9px;font-size:13.5px;font-weight:700;padding:12px 6px;min-height:48px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.drop .za label svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.drop .za label[hidden]{display:none}
.drop .za .za-short{display:none}
/* Dengan tombol kamera barisnya terbagi dua, dan label panjang tidak muat di
   lebar ponsel mana pun — jadi pemendekannya TIDAK diikat ke breakpoint.
   `.has-cam` hanya ada di perangkat sentuh, jadi desktop tetap pakai label
   panjang selebar penuh. */
.drop .za.has-cam .za-pick .za-long{display:none}
.drop .za.has-cam .za-pick .za-short{display:inline}
@media (max-width:380px){
  .drop .za label{font-size:13px;padding:12px 4px}
}

.go{margin-top:14px;width:100%;appearance:none;border:none;border-radius:12px;background:var(--emerald);color:var(--gold-soft);font-family:var(--sans);font-size:16px;font-weight:700;padding:16px;min-height:56px;cursor:pointer;letter-spacing:.02em}
.go:hover:not(:disabled){background:var(--emerald-deep);color:#fff}
.go:disabled{opacity:.4;cursor:default}
.quota{font-size:11.5px;color:var(--charcoal);margin-top:11px;text-align:center}
.fine{font-size:11.5px;color:var(--charcoal);line-height:1.6;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}

/* status */
.kh-stage{margin-top:14px;border-radius:11px;padding:13px 15px;font-size:13.5px;line-height:1.55;background:var(--beige-soft);border:1px solid var(--line);color:var(--charcoal)}
.kh-stage.kh-err{background:#FBF1ED;border-color:rgba(176,96,74,.3);color:#8a4130}
.kh-stage.kh-err b{color:#7a3527}
.kh-stage a{text-decoration:underline}
.kh-spin{display:inline-block;width:13px;height:13px;margin-right:9px;vertical-align:-1px;border:2px solid var(--line-gold);border-top-color:var(--gold-deep);border-radius:50%;animation:kspin .8s linear infinite}
@keyframes kspin{to{transform:rotate(360deg)}}

/* ---------- hasil ---------- */
.kh-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 1px 3px rgba(15,31,27,.05)}
/* Emas untuk TEKS kecil di latar terang. --gold-deep (#9A7E45) hanya 3,9:1 di
   atas ivory — cukup untuk garis dan bingkai, tidak untuk huruf 9,5px. */
.kh-eyebrow{font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#856B36}
.kh-head{display:grid;grid-template-columns:132px 1fr;gap:16px;padding:18px;background:var(--ivory-warm);border-bottom:1px solid var(--line)}
@media(max-width:460px){.kh-head{grid-template-columns:96px 1fr;gap:13px;padding:15px}}
.kh-shot img{width:100%;border-radius:10px;border:1px solid var(--line);background:#fff;aspect-ratio:1;object-fit:cover}
.kh-title h2{font-size:23px;color:var(--emerald);margin:7px 0 9px;text-wrap:pretty}
@media(max-width:460px){.kh-title h2{font-size:19px}}
.kh-notes{font-size:13px;color:var(--charcoal);line-height:1.55;margin-top:10px;text-wrap:pretty}
.kh-conf{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--charcoal)}
.kh-conf::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.kh-conf.kh-hi::before{background:var(--pos)}
.kh-conf.kh-lo::before{background:var(--neg)}
.kh-conf.kh-wm::before{background:#C2762F}
/* Meter 4 batang: keterbacaan foto terbaca sebagai TINGKAT, bukan nilai. */
.kh-tier{display:inline-flex;align-items:center;gap:2px;margin-left:3px}
.kh-tier i{width:11px;height:3px;border-radius:2px;background:rgba(15,31,27,.13)}
.kh-conf.kh-hi .kh-tier i.on{background:var(--pos)}
.kh-conf.kh-md .kh-tier i.on{background:var(--gold)}
.kh-conf.kh-wm .kh-tier i.on{background:#C2762F}
.kh-conf.kh-lo .kh-tier i.on{background:var(--neg)}
.kh-tnote{font-size:12px;color:var(--charcoal);line-height:1.55;margin:7px 0 0;max-width:54ch;text-wrap:pretty}

.kh-sec{padding:18px}
.kh-sec+.kh-sec{border-top:1px solid var(--line)}
.kh-sec>h3{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#856B36;font-family:var(--sans);padding-bottom:11px;border-bottom:1px solid var(--line-gold);margin-bottom:4px}
.kh-sublabel{font-family:var(--serif);font-size:15px;color:var(--emerald);margin:18px 0 2px}
.kh-sec>.kh-sublabel:first-of-type{margin-top:14px}

.kh-dl{display:grid}
.kh-r{display:grid;grid-template-columns:136px 1fr;gap:0 14px;border-top:1px solid var(--line)}
.kh-dl>.kh-r:first-child{border-top:none}
@media(max-width:430px){.kh-r{grid-template-columns:112px 1fr;gap:0 10px}}
.kh-r dt{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--charcoal);padding:10px 0;align-self:center}
.kh-r dd{font-size:14.5px;color:var(--ink);padding:10px 0;font-variant-numeric:tabular-nums}
.kh-r dd em{font-style:normal;font-size:11.5px;color:var(--charcoal)}

.kh-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:auto;overscroll-behavior-x:contain}
.kh-t{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px}
.kh-t th{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#856B36;text-align:right;padding:9px 0 9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.kh-t th:first-child{text-align:left;padding-left:0}
.kh-t td{padding:10px 0 10px 10px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}
.kh-t td:first-child{text-align:left;padding-left:0;white-space:normal}
.kh-t td i{display:block;font-style:normal;font-size:11.5px;color:var(--charcoal)}
.kh-t tfoot td{border-bottom:none;font-weight:700;color:var(--emerald);border-top:1px solid var(--gold-deep)}
.kh-none,.kh-gem{font-size:13.5px;color:var(--charcoal);margin-top:12px}
.kh-gem b{color:var(--emerald)}

/* rumah mode */
.kh-brand{margin:0;padding:18px;background:var(--beige-soft);border-bottom:1px solid var(--line)}
.kh-brand h4{font-size:20px;color:var(--emerald);margin:7px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;text-wrap:pretty}
.kh-brand h4 .kh-conf{font-size:9.5px}
.kh-brand p{font-size:13.5px;color:var(--charcoal);line-height:1.55;margin-top:7px;text-wrap:pretty}
.kh-brand .kh-retail{font-size:14.5px;color:var(--ink);margin-top:11px}
.kh-brand .kh-retail b{color:var(--emerald);font-variant-numeric:tabular-nums}
.kh-brand .kh-cues b{color:var(--emerald)}
.kh-ip{font-size:12px;color:var(--charcoal);border-top:1px solid var(--line-gold);padding-top:10px;margin-top:13px}
.kh-ip b{color:var(--emerald)}

/* harga */
.kh-price{background:linear-gradient(168deg,var(--emerald),var(--emerald-deep));color:var(--ivory);padding:24px 20px 20px;text-align:center}
.kh-price .kh-eyebrow{color:var(--gold-soft);letter-spacing:.22em}
.kh-plabel{display:none}
/* Satu angka saja: titik awal harga (lihat bigPrice di kh-app.js). Rentang
   penuh dulu memakan dua baris di ponsel dan angka keduanya terbaca seperti
   harga tersendiri. */
.kh-big{font-family:var(--serif);font-size:clamp(28px,8.4vw,42px);color:#fff;line-height:1.14;margin:12px 0 9px;font-variant-numeric:tabular-nums}
.kh-big .v{font-weight:inherit;white-space:nowrap;display:block}
.kh-from{display:block;font-family:var(--sans);font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,247,240,.52);margin-bottom:8px}
/* Pilihan yang mengubah harga: chip pil selebar isinya, DI BAWAH angka, dengan
   dampak harganya menempel. Dua batang penuh selebar kartu dulu berdiri di atas
   angka dan merebut urutan bacanya. Persennya dihitung terhadap pilihan yang
   SEDANG aktif — pertanyaannya selalu "kalau saya pindah, jadi berapa". */
/* column-gap jauh lebih besar dari row-gap: yang di antara kedua kelompok hanya
   column-gap, jadi jaraknya sendiri yang memisahkan Emas dari Berlian saat
   keduanya sebaris. Sebelumnya 9px lawan 7px \u2014 selisih yang tidak terlihat
   mata, dan "BERLIAN" terbaca menempel pada chip terakhir kelompok emas. */
.kh-pick{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 30px;margin-top:14px}
/* Label dan chip-nya satu kelompok: kalau barisnya pecah, ia pecah DI ANTARA
   kelompok — tidak pernah meninggalkan "Berlian" sendirian di ujung baris.
   Tanpa garis pemisah: label kapitalnya sendiri sudah memisahkan kedua
   kelompok, dan garis apa pun akan menggantung di awal baris begitu barisnya
   pecah — CSS tidak bisa tahu kapan itu terjadi. */
.kh-pgrp{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px}
/* Alpha label kecil dijaga ≥.52 — di bawah itu rasio kontrasnya turun ke bawah
   4.5:1 pada latar zamrud, dan huruf 9,5px tidak dapat pengecualian teks besar.
   Sejak garis pemisah dihapus, label inilah satu-satunya penanda apa yang
   dikendalikan tiap kelompok chip. */
.kh-pl{font-family:var(--sans);font-size:9.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:rgba(250,247,240,.52);margin-right:1px}
.kh-chip{appearance:none;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(205,177,126,.4);background:transparent;color:rgba(250,247,240,.72);font-family:var(--sans);font-size:12.5px;font-weight:700;line-height:1.2;border-radius:99px;padding:9px 15px;min-height:44px;cursor:pointer}
.kh-chip i{font-style:normal;font-size:11px;color:var(--gold-soft)}
.kh-chip:hover{color:#fff;border-color:var(--gold-soft)}
.kh-chip.on{background:var(--gold);border-color:var(--gold);color:var(--emerald-deep)}
.kh-chip.on i{color:rgba(10,23,20,.6)}
/* ---------- gerbang kontak ----------
   Angka bertopeng dikaburkan sedikit supaya jelas ada sesuatu di baliknya,
   bukan sekadar bidang kosong. */
/* Hanya DIGIT-nya yang dikaburkan. Dulu seluruh baris ikut kabur, dan label
   "Mulai dari" jadi noda tak terbaca yang tampak seperti kesalahan render. */
.kh-mask{display:inline-block;opacity:.6;filter:blur(4px);user-select:none;pointer-events:none}
.kh-gate{max-width:400px;margin:18px auto 0;text-align:center}
.kh-gtag{display:inline-block;font-family:var(--sans);font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--emerald-deep);background:var(--gold-soft);border-radius:99px;padding:6px 14px;margin-bottom:14px}
.kh-gate h4{font-family:var(--serif);font-size:21px;font-weight:500;color:#fff;margin:0 0 7px}
.kh-gsub{font-size:12.5px;line-height:1.6;color:rgba(250,247,240,.58);margin:0 auto 15px;max-width:38ch;text-wrap:pretty}
.kh-gform{display:grid;gap:9px}
.kh-gate input{width:100%;box-sizing:border-box;font-family:var(--sans);font-size:15px;padding:14px 15px;min-height:52px;border:1px solid rgba(205,177,126,.34);border-radius:11px;background:rgba(250,247,240,.06);color:#fff}
.kh-gate input::placeholder{color:rgba(250,247,240,.38)}
.kh-gate input:focus{outline:none;border-color:var(--gold-soft);background:rgba(250,247,240,.1)}
.kh-ghp{position:absolute!important;left:-9999px;width:1px!important;height:1px;opacity:0}
.kh-gbtn{appearance:none;border:0;width:100%;font-family:var(--sans);font-size:15.5px;font-weight:700;color:var(--emerald-deep);background:var(--gold);border-radius:11px;padding:15px;min-height:54px;cursor:pointer;margin-top:2px}
.kh-gbtn:hover:not(:disabled){background:var(--gold-soft)}
.kh-gbtn:disabled{opacity:.65;cursor:default}
.kh-gerr{font-size:12.5px;color:#F0B8A8;margin:9px 0 0;min-height:1px;line-height:1.5}
.kh-gfine{font-size:11px;line-height:1.6;color:rgba(250,247,240,.36);margin:12px auto 0;max-width:40ch;text-wrap:pretty}
/* Kode diskon dirayakan, bukan sekadar dicatat: pengunjung baru saja
   memenangkannya dengan memberi nomornya. Pelat emas terang di atas zamrud —
   satu-satunya bidang terang di dalam pelat harga. */
.kh-vch{display:block;text-align:center;margin:18px auto 0;max-width:430px;padding:15px 18px;background:linear-gradient(150deg,rgba(205,177,126,.19),rgba(184,154,94,.09));border:1px solid rgba(205,177,126,.5);border-radius:13px}
.kh-vhd{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--serif);font-size:16px;color:#fff;margin-bottom:3px}
.kh-vhd svg{width:17px;height:17px;flex:none;color:var(--gold-soft)}
.kh-vsub{font-size:11.5px;line-height:1.5;color:rgba(250,247,240,.6);margin-bottom:11px}
.kh-vcode{display:inline-flex;flex-direction:column;align-items:center;gap:3px;padding:10px 20px;border:1px dashed rgba(205,177,126,.55);border-radius:10px;background:rgba(0,0,0,.18)}
.kh-vcode b{font-family:var(--sans);font-size:19px;font-weight:800;color:var(--gold-soft);letter-spacing:.12em;font-variant-numeric:tabular-nums;white-space:nowrap}
.kh-vcode span{font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(250,247,240,.55);white-space:nowrap}
/* ---------- simpan kartu ---------- */
.kh-srow{display:grid;grid-template-columns:1.6fr 1fr;gap:9px;padding:14px 18px;background:var(--ivory-warm);border-top:1px solid var(--line)}
@media(max-width:400px){.kh-srow{grid-template-columns:1fr}}
.kh-srow button{appearance:none;border-radius:11px;font-family:var(--sans);font-weight:700;font-size:14px;min-height:50px;padding:13px 12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.25}
.kh-srow button:disabled{opacity:.6;cursor:default}
.kh-sq{border:1px solid var(--gold-deep);background:var(--emerald);color:var(--ivory)}
.kh-sq:hover:not(:disabled){background:var(--emerald-deep)}
.kh-sq svg{width:18px;height:18px;flex:none;stroke-linecap:round;stroke-linejoin:round}
.kh-sfull{border:1px solid var(--line);background:#fff;color:var(--charcoal);font-weight:400;font-size:13.5px}
.kh-sfull:hover:not(:disabled){border-color:var(--gold-deep);color:var(--emerald)}
/* Pengumuman untuk pembaca layar. Harga berubah tanpa halaman berpindah saat
   chip ditekan; tanpa daerah hidup ini perubahannya sama sekali tidak terdengar.
   Ia hidup DI LUAR #khOut karena isi kartu diganti utuh tiap gambar ulang —
   daerah hidup yang ikut diganti tidak pernah dibacakan. */
.kh-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Berat emas dinyatakan di luar pelat gelap: ia bukan harga, tapi ia yang
   paling sering ditanyakan balik saat konsultasi. Sepasang perhiasan dapat dua
   kolom bernama, bukan satu penjumlahan yang tidak menyebut apa-apa. */
.kh-gram{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px 22px;padding:13px 18px;background:var(--ivory-warm);border-top:1px solid var(--line)}
.kh-gi{display:flex;align-items:baseline;gap:7px}
.kh-gi i{font-style:normal;font-size:11px;color:var(--charcoal)}
.kh-gi b{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--emerald)}
.kh-gm{font-size:11px;color:var(--charcoal)}
/* ---------- ajakan konsultasi di dalam pelat ---------- */
.kh-pcta{margin-top:17px;padding-top:16px;border-top:1px solid rgba(205,177,126,.2)}
/* ---------- rincian & catatan ----------
   Satu lipatan tenang di bawah garis rambut, bukan tiga pil berjajar: pil-pil
   itu terbaca setara dengan pilihan emas di atasnya, padahal ini catatan kaki. */
.kh-notes2{margin:18px auto 0;max-width:430px;border-top:1px solid rgba(205,177,126,.2);padding-top:6px}
.kh-notes2>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;font-family:var(--sans);font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(250,247,240,.52)}
.kh-notes2>summary::-webkit-details-marker{display:none}
.kh-notes2>summary::after{content:"";width:6px;height:6px;border-right:1.4px solid var(--gold-soft);border-bottom:1.4px solid var(--gold-soft);transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.kh-notes2[open]>summary::after{transform:translateY(1px) rotate(225deg)}
.kh-notes2>summary:hover{color:#fff}
.kh-nl{text-align:left;padding:4px 2px 10px}
.kh-nr{display:grid;grid-template-columns:104px 1fr;gap:14px;padding:9px 0}
.kh-nr+.kh-nr{border-top:1px solid rgba(205,177,126,.13)}
.kh-nr dt{font-family:var(--sans);font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);padding-top:3px}
.kh-nr dd{font-size:12.5px;line-height:1.6;color:rgba(250,247,240,.66);text-wrap:pretty}
.kh-nr dd b{color:#F0D2A8;font-weight:700}
@media(max-width:430px){.kh-nr{grid-template-columns:1fr;gap:3px}}
.kh-warn{margin:16px auto 0;max-width:40ch;font-size:12px;color:#F0D2A8;background:rgba(0,0,0,.24);border-radius:9px;padding:10px 14px;line-height:1.55;text-wrap:pretty}
/* Batu warna & mutiara DI LUAR harga. Bukan catatan kaki — ia mengubah arti
   angka di atasnya, jadi ia tidak pernah ikut terlipat. Satu baris ringkas
   dengan garis emas, tepat di bawah angka; penjelasan panjangnya di dalam
   lipatan "Rincian & catatan harga". */
.kh-excl{display:inline-block;margin:11px auto 0;font-size:12px;color:#F3DFC0;background:rgba(0,0,0,.3);border:1px solid rgba(205,177,126,.42);border-radius:99px;padding:8px 16px;line-height:1.5;text-wrap:pretty}
.kh-excl b{color:#fff;font-weight:700}
.kh-fine{margin:14px auto 0;max-width:44ch;font-size:11.5px;color:rgba(250,247,240,.5);line-height:1.6;text-wrap:balance}
/* Sisa keterangan dilipat: yang perlu dibaca sebelum menghubungi kami tetap
   terlihat, yang perlu dibaca sebelum memesan tinggal satu ketukan. */
.kh-note{margin-top:14px;padding-top:12px;border-top:1px solid rgba(205,177,126,.18)}
.kh-note>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft);min-height:34px;padding:0 2px}
.kh-note>summary::-webkit-details-marker{display:none}
.kh-note>summary::after{content:"\25BE";font-size:9px;opacity:.7}
.kh-note[open]>summary::after{content:"\25B4"}
.kh-note>summary:hover{color:#fff}
.kh-note p{max-width:44ch;margin:4px auto 2px;font-size:11.5px;color:rgba(250,247,240,.5);line-height:1.65;text-align:left;text-wrap:pretty}

.kh-unsure{font-size:12.5px;color:var(--charcoal);line-height:1.6;padding:14px 18px;background:var(--ivory-warm);border-bottom:1px solid var(--line)}
.kh-unsure b{color:var(--emerald)}

/* Panduan foto ulang — hanya muncul saat model menyebut pembacaannya "rendah".
   Diletakkan tepat di bawah judul supaya keraguan dan cara memperbaikinya ada
   di satu tempat, bukan terpisah jauh. */
.kh-coach{padding:18px;background:#FBF2ED;border-bottom:1px solid rgba(176,96,74,.2)}
.kh-coach .kh-eyebrow{color:#A8563F}
.kh-clead{font-size:13.5px;color:#8a4130;line-height:1.6;margin-top:8px;text-wrap:pretty}
.kh-clead b{color:#6f2f21}
.kh-ctitle{font-size:12.5px;font-weight:700;color:var(--emerald);margin-top:15px}
.kh-clist{list-style:none;margin:9px 0 0;padding:0;display:grid;gap:9px}
.kh-clist li{position:relative;padding-left:20px;font-size:13.5px;color:var(--charcoal);line-height:1.55;text-wrap:pretty}
.kh-clist li::before{content:"";position:absolute;left:3px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.kh-cbtn{margin-top:17px;width:100%;appearance:none;border:1px solid var(--gold-deep);background:#fff;color:var(--gold-deep);border-radius:11px;font-family:var(--sans);font-size:14.5px;font-weight:700;padding:13px;min-height:48px;cursor:pointer}
.kh-cbtn:hover{background:var(--beige-soft);color:var(--emerald)}

.kh-cta{display:grid;gap:10px;padding:18px}
.kh-cta a,.kh-cta button{appearance:none;border:none;border-radius:12px;font-family:var(--sans);font-size:15.5px;font-weight:700;padding:16px;min-height:54px;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;gap:9px}
/* Zamrud yang benar-benar HIJAU. --emerald (#0F1F1B) hampir hitam dan sama
   dengan pelatnya sendiri, jadi tombolnya lenyap jadi bidang gelap bergaris. */
.kh-wa{display:flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;font-family:var(--sans);font-size:15.5px;font-weight:700;padding:16px;min-height:56px;text-align:center;text-decoration:none;border:0;background:#12684C;color:#EBD9B4;box-shadow:inset 0 0 0 1.5px var(--gold)}
.kh-wa:hover{background:#0E5940;color:#F3E6C9}
.kh-wa svg{width:19px;height:19px;flex:none}
.kh-save{background:#fff;border:1px solid var(--gold-deep)!important;color:var(--gold-deep)}
.kh-save:hover:not(:disabled){background:var(--beige-soft)}
.kh-save:disabled{opacity:.6;cursor:default}
.kh-again{background:#fff;border:1px solid var(--line)!important;color:var(--charcoal);font-size:14px;font-weight:400}
.kh-again:hover{border-color:var(--gold-deep)!important;color:var(--emerald)}

footer{background:var(--emerald);color:rgba(250,247,240,.55);padding:30px 0 calc(30px + env(safe-area-inset-bottom));font-size:12.5px;text-align:center;line-height:1.8}
footer a{color:var(--gold-soft)}
footer a:hover{color:#fff}
