/* =========================================================
   Nihongo Deysuki — sistem gaya situs
   Warna & font mengikuti SPEC.md (Dari Nol ke Jepang)
   ========================================================= */

:root{
  --terakota:#A8563C;
  --terakota-muda:#B7684E;
  --terakota-gelap:#8C452F;
  --krem:#F6EEE5;
  --krem-tua:#EADFD1;
  --teks:#2E2622;
  --teks-lembut:#6B5B51;
  --putih:#FFFDFA;
  --radius:14px;
  --radius-besar:22px;
  --bayang:0 2px 10px rgba(46,38,34,.08);
  --bayang-naik:0 8px 26px rgba(46,38,34,.14);
  --lebar:640px;
  --font-id:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-jp:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;
}

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

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

body{
  margin:0;
  font-family:var(--font-id);
  font-size:17px;
  line-height:1.65;
  color:var(--teks);
  background:var(--krem);
  -webkit-font-smoothing:antialiased;
}

.jp{font-family:var(--font-jp)}

/* ---------- tata letak ---------- */
.wrap{
  width:100%;
  max-width:var(--lebar);
  margin:0 auto;
  padding:0 20px;
}
.wrap-sempit{max-width:560px}

section{padding:38px 0}
section.rapat{padding:24px 0}

/* ---------- tipografi ---------- */
h1,h2,h3{line-height:1.25;margin:0 0 14px;font-weight:800;letter-spacing:-.01em}
h1{font-size:clamp(27px,7vw,38px)}
h2{font-size:clamp(21px,5vw,27px)}
h3{font-size:19px;font-weight:700}
p{margin:0 0 15px}
a{color:var(--terakota);text-underline-offset:3px}
.lembut{color:var(--teks-lembut)}
.kecil{font-size:14.5px;line-height:1.55}
.mini{font-size:13px;line-height:1.5;color:var(--teks-lembut)}
.tengah{text-align:center}
strong{font-weight:800}

/* ---------- kepala halaman ---------- */
.kepala{
  background:var(--terakota);
  color:var(--krem);
  padding:26px 0 30px;
  position:relative;
  overflow:hidden;
}
.kepala::after{
  content:"あ";
  font-family:var(--font-jp);
  position:absolute;
  right:-22px;bottom:-56px;
  font-size:190px;line-height:1;
  color:rgba(246,238,229,.10);
  pointer-events:none;
}
.kepala h1{color:var(--krem);position:relative}
.kepala p{color:rgba(246,238,229,.9);position:relative;margin-bottom:0}
.merek{
  display:inline-block;
  font-size:12.5px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;
  color:rgba(246,238,229,.75);
  margin-bottom:12px;text-decoration:none;
}

/* ---------- kartu ---------- */
.kartu{
  background:var(--putih);
  border-radius:var(--radius-besar);
  padding:22px;
  box-shadow:var(--bayang);
  margin-bottom:16px;
}
.kartu-garis{
  background:transparent;
  border:1.5px solid var(--krem-tua);
  box-shadow:none;
}

/* ---------- tombol ---------- */
.tombol{
  display:block;width:100%;
  padding:15px 18px;
  font-family:var(--font-id);
  font-size:17px;font-weight:800;
  color:var(--krem);background:var(--terakota);
  border:none;border-radius:var(--radius);
  cursor:pointer;text-align:center;text-decoration:none;
  transition:transform .12s ease, background .12s ease;
}
.tombol:hover{background:var(--terakota-gelap)}
.tombol:active{transform:scale(.985)}
.tombol:disabled{opacity:.4;cursor:not-allowed}
.tombol-garis{
  background:transparent;color:var(--terakota);
  border:1.5px solid var(--terakota);
}
.tombol-garis:hover{background:rgba(168,86,60,.07)}
.tombol-kecil{
  display:inline-block;width:auto;
  padding:9px 16px;font-size:14.5px;
}

/* ---------- pilihan kuis ---------- */
.pilihan{
  display:block;width:100%;text-align:left;
  font-family:var(--font-id);font-size:16.5px;line-height:1.45;
  font-weight:700;color:var(--teks);
  background:var(--putih);
  border:1.5px solid var(--krem-tua);
  border-radius:var(--radius);
  padding:14px 16px;margin-bottom:10px;
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease, transform .12s ease;
}
.pilihan:hover{border-color:var(--terakota-muda);background:#fff}
.pilihan:active{transform:scale(.99)}
.pilihan .catatan{
  display:block;font-weight:600;font-size:14px;
  color:var(--teks-lembut);margin-top:3px;
}

/* ---------- progress ---------- */
.progress-rel{
  height:6px;background:var(--krem-tua);
  border-radius:99px;overflow:hidden;margin-bottom:8px;
}
.progress-isi{
  height:100%;width:0%;
  background:var(--terakota);
  border-radius:99px;
  transition:width .25s ease;
}

/* ---------- lencana ---------- */
.lencana{
  display:inline-block;
  font-size:12px;font-weight:800;
  letter-spacing:.09em;text-transform:uppercase;
  color:var(--terakota);
  background:rgba(168,86,60,.10);
  padding:5px 11px;border-radius:99px;
  margin-bottom:12px;
}

/* ---------- daftar ---------- */
ul.cek{list-style:none;padding:0;margin:0 0 16px}
ul.cek li{
  position:relative;padding-left:26px;margin-bottom:9px;
}
ul.cek li::before{
  content:"";position:absolute;left:4px;top:.62em;
  width:8px;height:8px;border-radius:99px;background:var(--terakota-muda);
}

/* ---------- tabel ringkas ---------- */
.baris{
  display:flex;gap:12px;
  padding:11px 0;
  border-bottom:1px solid var(--krem-tua);
}
.baris:last-child{border-bottom:none}
.baris dt{
  flex:0 0 40%;font-weight:800;font-size:14.5px;margin:0;
}
.baris dd{flex:1;margin:0;font-size:15px}

/* ---------- kotak peringatan ---------- */
.kotak-catat{
  background:rgba(168,86,60,.07);
  border-left:4px solid var(--terakota-muda);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:14px 16px;margin:0 0 16px;
}
.kotak-catat p:last-child{margin-bottom:0}

/* ---------- slot form (hanya tampil kalau belum diisi) ---------- */
.slot-form{
  border:2px dashed var(--terakota-muda);
  border-radius:var(--radius);
  padding:20px;text-align:center;
  background:rgba(183,104,78,.06);
}
.slot-form code{
  font-size:13px;background:rgba(46,38,34,.07);
  padding:2px 6px;border-radius:5px;
}
iframe.form{
  width:100%;border:none;border-radius:var(--radius);
  background:var(--putih);
  min-height:720px;display:block;
}

/* ---------- sampul mini ---------- */
.sampul{
  width:150px;aspect-ratio:1/1.414;
  margin:0 auto 18px;
  background:var(--terakota);
  border-radius:8px;
  box-shadow:var(--bayang-naik);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  color:var(--krem);text-align:center;
  padding:14px;overflow:hidden;position:relative;
}
.sampul .aksara{
  font-family:var(--font-jp);font-size:62px;line-height:1;
  opacity:.28;position:absolute;top:14px;
}
.sampul .judul{
  position:relative;font-size:15px;font-weight:800;
  line-height:1.2;margin-top:34px;
}
.sampul .sub{position:relative;font-size:10.5px;opacity:.85;margin-top:6px}
.sampul img{width:100%;height:100%;object-fit:cover;border-radius:8px}

/* ---------- kaki ---------- */
.kaki{
  background:var(--teks);color:rgba(246,238,229,.72);
  padding:28px 0;margin-top:20px;font-size:14px;
}
.kaki a{color:var(--krem);text-decoration:none;font-weight:700}
.kaki p{margin-bottom:8px}

/* ---------- animasi ---------- */
.muncul{animation:muncul .28s ease}
@keyframes muncul{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ---------- utilitas ---------- */
.sembunyi{display:none!important}
.jarak-atas{margin-top:22px}
