/* ====== TIPOGRAFI: skala ukuran, tinggi baris, dan lebar baris yang konsisten ======
   Skala: 12 / 13 / 14 / 15 / 16 / 17 / 20 / 24 / 32 / 52 px.
   Judul rapat (1.1–1.3), teks isi longgar (1.6), teks kecil 1.5. */
:root{
  --fs-2xs:.75rem;   /* 12px: label kecil, tag */
  --fs-xs:.8125rem;  /* 13px: catatan, pill, label form */
  --fs-sm:.875rem;   /* 14px: teks sekunder, deskripsi kartu */
  --fs-base:.9375rem;/* 15px: teks isi, tombol */
  --fs-md:1rem;      /* 16px: input, ringkasan FAQ */
  --fs-lg:1.0625rem; /* 17px: lead, judul kartu */
  --lh-tight:1.15; --lh-snug:1.3; --lh-body:1.6; --lh-small:1.5;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--body);font-size:var(--fs-base);line-height:var(--lh-body);font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-kerning:normal}
p,li,summary,label{text-wrap:pretty;overflow-wrap:break-word}

/* judul */
h1,h2,h3,h4{font-family:var(--head);text-wrap:balance}
h1{font-size:clamp(2rem,4.6vw,3.25rem);line-height:1.1;font-weight:800;letter-spacing:-.025em}
h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;font-weight:800;letter-spacing:-.015em}
h3{font-size:var(--fs-lg);line-height:var(--lh-snug);font-weight:700;letter-spacing:-.005em}
.eyebrow{font-size:var(--fs-2xs);line-height:1.2;font-weight:700;letter-spacing:.14em}
.page-head{gap:10px}
.page-head h2{max-width:24ch}
.page-head.center h2{max-width:none}
.lead{font-size:var(--fs-lg);line-height:1.65;max-width:58ch}
.hero .lead{margin-top:16px}

/* navigasi & tombol */
nav .nl,nav button.nl{font-size:var(--fs-sm);line-height:1.2;font-weight:600}
.sub a{font-size:var(--fs-sm);line-height:1.3;font-weight:600}
.sub a small{font-size:var(--fs-xs);line-height:1.4;margin-top:2px}
.cta{font-size:var(--fs-base);line-height:1.2;font-weight:700;letter-spacing:.005em}
.tab{font-size:var(--fs-sm);line-height:1.2}
.tab small{font-size:var(--fs-2xs)}
.opt{font-size:var(--fs-xs);line-height:1.25}
.chip{font-size:var(--fs-xs);line-height:1.3}
.ticker .tk-track span{font-size:var(--fs-2xs);line-height:1.2;letter-spacing:.2em}

/* kartu & isi */
.cat h3,.prog h3,.listcard h3,.lv h3,.step h3{font-size:var(--fs-lg);line-height:var(--lh-snug)}
.cat p,.step p,.lv p,.prog .desc,.band p,.card>p{font-size:var(--fs-sm);line-height:var(--lh-small)}
.cat .more{font-size:var(--fs-sm);line-height:1.3}
.step p,.lv p{margin-top:4px}
.prog .tag{font-size:.6875rem;line-height:1.2;letter-spacing:.08em;padding:5px 11px}
.agenote{font-size:var(--fs-sm);line-height:1.4}
.bul li{font-size:var(--fs-base);line-height:var(--lh-small)}
.bul li::before{margin-top:.55em}
.meta{font-size:var(--fs-sm);line-height:var(--lh-small);gap:6px}
.pill{font-size:var(--fs-2xs);line-height:1.3;padding:4px 10px}
.pool span{font-size:var(--fs-sm);line-height:1}
.avatar{font-size:1.25rem;line-height:1}
.lv .n{line-height:1}

/* harga: angka sejajar & mudah dibaca */
.total{font-variant-numeric:tabular-nums lining-nums}
.total .term{font-size:var(--fs-sm);line-height:1.35}
.total strong{font-size:1.5rem;line-height:1.1;font-weight:800;letter-spacing:-.01em}

/* FAQ */
summary{font-size:var(--fs-md);line-height:1.4;font-weight:700}
details p{font-size:var(--fs-base);line-height:var(--lh-body)}

/* formulir & dialog */
label{font-size:var(--fs-xs);line-height:1.3;font-weight:700}
input,select,textarea{font-size:var(--fs-md);line-height:1.4}
textarea{line-height:1.5}
.sum{font-size:var(--fs-sm);line-height:var(--lh-small)}
.sum b{font-size:var(--fs-md);line-height:1.3}
.note{font-size:var(--fs-xs);line-height:var(--lh-small)}
.sendbox small{font-size:var(--fs-xs);line-height:var(--lh-small)}

/* footer */
.foot h4{font-size:var(--fs-2xs);line-height:1.2;letter-spacing:.12em;margin-bottom:12px}
.foot a{font-size:var(--fs-sm);line-height:1.4}
.foot ul{gap:8px}
.copy{font-size:var(--fs-xs);line-height:1.5}
.wa-float{font-size:var(--fs-sm);line-height:1.2}

