/* =========================================================================
   PADU — Lembar gaya situs pemasaran pra-rilis (mobile-first)
   Token disalin dengan nilai yang sama persis dari prototipe/assets/padu.css,
   yang menurunkannya dari artefak/Padu-Brand-Board.html. Di luar salinan itu
   hanya ada dua perluasan milik situs yang disetujui Spec-Situs-Padu (skala
   display dan jarak antar-seksi). skrip/lint-situs.js menolak token lain.
   ========================================================================= */

:root{
  --blue:#2563EB;
  --blue-deep:#1E3A8C;
  --blue-soft:#EFF6FF;
  --blue-line-soft:#C6D6FF;
  --amber:#F59E0B;
  --amber-d:#B45309;
  --green-d:#047857;
  --green-soft:#ECFDF5;
  --green-line-soft:#A7F3D0;
  --ink:#0F172A;
  --slate:#475569;
  --muted:#5B6A7D;
  --surface:#F1F5F9;
  --line:#E2E8F0;
  --line2:#CBD5E1;
  --white:#FFFFFF;
  --warn-bg:#FFFBEB; --warn-line:#FCD34D; --warn-ink:#92400E;
  --danger-bg:#FEF2F2; --danger-line:#FECACA; --danger-ink:#991B1B;

  --radius:18px;
  --radius-md:14px;
  --radius-sm:10px;
  --radius-xs:6px;
  --radius-pill:999px;
  --radius-full:50%;
  --radius-appicon:22px;
  --shadow:0 10px 30px rgba(15,23,42,.08);
  --shadow-sm:0 4px 14px rgba(15,23,42,.06);
  --shadow-up:0 -8px 24px rgba(15,23,42,.10);
  --spring:cubic-bezier(.34,1.56,.64,1);

  --display:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ui:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  --s1:4px;   --s2:8px;   --s3:12px;  --s4:16px;
  --s5:20px;  --s6:24px;  --s7:32px;  --s8:40px;
  --nudge-1:2px; --nudge-2:3px;
  --pad:var(--s4);

  /* Perluasan situs 1 — skala display brand board (64/52/44/40/26/22/16px).
     Prototipe tak punya token ukuran judul besar karena layarnya satu HP; situs
     berhenti di 64px dan tidak naik ke ukuran referensi GrowthSync. */
  --skala-1:64px; --skala-2:52px; --skala-3:44px; --skala-4:40px;
  --skala-5:26px; --skala-6:22px; --skala-7:16px;
  /* Perluasan situs 2 — jarak antar-seksi, kelipatan dasar 16px yang sama dengan
     --s4. Skala spasi prototipe berhenti di 40px karena dirancang untuk layar HP. */
  --seksi-1:64px; --seksi-2:96px; --seksi-3:128px;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--seksi-1)}
html,body{margin:0;padding:0}
body{
  font-family:var(--ui);font-size:var(--skala-7);line-height:1.55;
  color:var(--ink);background:var(--white);
  -webkit-font-smoothing:antialiased;overflow-wrap:break-word;
}
img,svg{display:block;max-width:100%}
h1,h2,h3{font-family:var(--display);font-weight:800;color:var(--ink);margin:0;text-wrap:balance}
p,ul{margin:0}
ul{padding:0;list-style:none}
sup{font-size:11px;line-height:0}
a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--blue-deep)}

:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:var(--radius-xs)}

.lompat{
  position:absolute;left:var(--pad);top:var(--s2);z-index:20;
  display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s4);
  background:var(--white);color:var(--blue-deep);font-weight:700;
  border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);
  transform:translateY(-200%);
}
.lompat:focus{transform:none}

.wadah{width:100%;max-width:1120px;margin:0 auto;padding-inline:var(--pad)}
.utuh{white-space:nowrap}

/* --- Nav -------------------------------------------------------------- */
.nav{
  position:sticky;top:0;z-index:10;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-isi{display:flex;align-items:center;gap:var(--s4);min-height:var(--seksi-1)}
.merek{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;color:var(--ink);text-decoration:none}
.merek:hover{color:var(--ink)}
.merek img{width:32px;height:32px}
.wordmark{font-family:var(--display);font-weight:800;letter-spacing:-.03em;line-height:1;font-size:var(--skala-6)}

.chip{
  display:inline-flex;align-items:center;min-height:32px;padding:var(--s1) var(--s3);
  border-radius:var(--radius-pill);background:var(--blue-soft);border:1px solid var(--blue-line-soft);
  color:var(--blue-deep);font-size:14px;font-weight:700;line-height:1.3;
}
.nav .chip{margin-left:auto;white-space:nowrap}
/* Di HP tiga tautan pindah ke footer, tanpa menu hamburger. */
.nav-tautan{display:none}
.nav-tautan a{
  display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s3);
  border-radius:var(--radius-sm);color:var(--slate);font-weight:600;font-size:15px;text-decoration:none;
}
.nav-tautan a:hover{color:var(--ink)}

.sprite{position:absolute;width:0;height:0;overflow:hidden}

/* --- Hero ------------------------------------------------------------- */
.hero{padding:var(--s8) 0 var(--seksi-1)}
.hero-isi{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s8)}
.eyebrow{font-size:14px;font-weight:700;color:var(--blue-deep)}
.hero h1{margin-top:var(--s3);font-size:var(--skala-4);line-height:1.05;letter-spacing:-.03em}
.aksen{color:var(--blue)}
.penjelas{margin-top:var(--s4);color:var(--slate);max-width:36em}
.hero-aksi{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s5);margin-top:var(--s5)}
.lanjut{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;font-weight:700;text-decoration:none}
.lanjut:hover{text-decoration:underline}
.lanjut svg{width:18px;height:18px;flex:none}
.hero-visual{position:relative;width:324px;max-width:100%;margin:var(--s4) auto 0}

/* App icon putih dari brand board, tempat mark merakit diri. Ia menutupi slot logo
   merchant di topbar mockup, tidak sampai ke nama outlet. */
.ikon-app{
  position:absolute;z-index:1;left:calc(-1 * var(--s2));top:calc(-1 * var(--s4));
  display:flex;align-items:center;justify-content:center;width:72px;height:72px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
}
.ikon-app svg{width:60%;height:60%}
.mark-rakit .pita{transform-box:view-box;transform-origin:50% 50%}
@media (prefers-reduced-motion:no-preference){
  .mark-rakit.siap .pita{opacity:0}
  .mark-rakit.merakit .pita{animation:pita-masuk .9s var(--spring) both}
  .mark-rakit.merakit .pita:nth-child(1){animation-delay:.12s}
  .mark-rakit.merakit .pita:nth-child(3){animation-delay:.24s}
  .mark-rakit.merakit .pita:nth-child(4){animation-delay:.36s}
  .mark-rakit.merakit .pita:nth-child(5){animation-delay:.52s}
}
@keyframes pita-masuk{from{opacity:0;scale:1.6;rotate:-40deg}}

.ket-mockup{margin-top:var(--s3);font-size:13px;color:var(--muted);text-align:center}

/* --- Mockup HP --------------------------------------------------------
   Bingkai mengikuti .device/.screen di brand board; bezel prototipe berwarna di luar
   palet. Isi layar memakai ukuran asli kasir prototipe, jadi teksnya tak turun di
   bawah lantai 11px. Hanya gambar: tak ada kontrol yang bisa difokus (C6).
   Semua layar setinggi sama, jadi HP tak berubah ukuran antar-seksi maupun antar-langkah;
   isi yang lebih panjang terpotong seperti daftar yang bisa digulir. 540px = tinggi isi
   layar terpanjang yang tidak berupa daftar (Modal Awal Laci). */
.hp{background:var(--ink);border-radius:26px;padding:var(--s3);box-shadow:var(--shadow)}
.hp-layar{
  display:flex;flex-direction:column;height:540px;
  overflow:hidden;border-radius:16px;background:var(--surface);
  color:var(--ink);line-height:1.5;user-select:none;
}
.hp-layar>*{flex:none}
.m-topbar{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--pad);background:var(--blue-deep);color:var(--white)}
.m-logo{
  display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;
  border-radius:var(--radius-full);background:var(--blue-soft);color:var(--blue-deep);
  font-family:var(--display);font-weight:800;font-size:12px;
}
.m-outlet{display:flex;flex-direction:column;flex:1;min-width:0}
.m-outlet-n{font-family:var(--display);font-weight:800;font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-outlet-s{font-size:11px;opacity:.72;letter-spacing:.04em;white-space:nowrap}
.m-ikon{
  display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;
  border-radius:var(--radius-md);background:rgba(255,255,255,.13);
}
.m-ikon svg{width:20px;height:20px}
.m-katbar{display:flex;gap:var(--s2);overflow:hidden;padding:var(--s2) var(--pad);background:var(--white);border-bottom:1px solid var(--line)}
.m-pil{
  display:flex;align-items:center;flex:none;min-height:48px;padding:var(--s2) var(--s4);
  border-radius:var(--radius-pill);background:var(--surface);color:var(--slate);border:1px solid var(--line);
  font-size:13.5px;font-weight:600;
}
.m-pil.on{background:var(--blue);color:var(--white);border-color:var(--blue)}
.m-cari{padding:var(--s2) var(--pad);background:var(--white);border-bottom:1px solid var(--line)}
.m-cari span{
  display:flex;align-items:center;height:44px;padding:0 var(--s4);
  border-radius:var(--radius-sm);border:1px solid var(--line2);background:var(--surface);color:var(--muted);font-size:15px;
}
/* Baris setinggi isi kartu: di wadah setinggi tetap, baris auto menyusut ke min-height kartu. */
.hp-layar>.m-grid{flex:1;min-height:0;overflow:hidden;grid-auto-rows:max-content}
.m-grid{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:var(--s2);padding:var(--s3) var(--pad)}
.m-prod{
  position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s2);
  min-height:92px;padding:var(--s3);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);
}
.m-prod.on{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.m-prod.on .m-nm{padding-right:26px}
.m-prod.habis{opacity:.5;background:var(--surface)}
.m-qty{
  position:absolute;top:var(--s2);right:var(--s2);display:flex;align-items:center;justify-content:center;
  min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-pill);
  background:var(--blue);color:var(--white);font-size:12px;font-weight:800;line-height:1;
}
.m-nm{font-size:14px;font-weight:600;line-height:1.3}
.m-hg{display:block;font-size:14px;font-weight:700;color:var(--blue-deep);font-variant-numeric:tabular-nums}
.m-mk{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.m-hb{
  align-self:flex-start;padding:var(--nudge-1) var(--s2);border-radius:var(--radius-xs);
  color:var(--danger-ink);background:var(--danger-bg);border:1px solid var(--danger-line);
  font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
}
.m-cartbar{
  display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--pad);
  background:var(--white);border-top:1px solid var(--line);box-shadow:var(--shadow-up);
}
.m-kiri{flex:1;min-width:0;padding:var(--s1) 0}
.m-jml{display:block;font-size:13px;font-weight:600;color:var(--slate)}
.m-tot{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}
.m-bayar{
  display:flex;align-items:center;justify-content:center;min-height:64px;padding:0 var(--s5);
  border-radius:var(--radius-md);background:var(--amber);color:var(--ink);font-weight:800;font-size:18px;
}

/* Layar alur kasir: kepala, badan, kaki — pola .lyr-kepala, .sp-pad, dan .sp-fkaki
   prototipe. */
.m-ik{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.m-kepala{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--pad);background:var(--white);border-bottom:1px solid var(--line)}
.m-balik{display:flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;border-radius:var(--radius-md);background:var(--surface)}
.m-balik svg{width:20px;height:20px}
.m-judul{flex:1;font-family:var(--display);font-size:19px;font-weight:800;line-height:1.25}
.hp-layar>.m-badan{flex:1;min-height:0;overflow:hidden}
.m-badan{padding:var(--s4) var(--pad)}
.m-kaki{padding:var(--s3) var(--pad);background:var(--white);border-top:1px solid var(--line);box-shadow:var(--shadow-up)}
.m-btn{
  display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:56px;padding:0 var(--s5);
  border-radius:var(--radius-md);background:var(--blue);color:var(--white);font-weight:800;font-size:16px;
  line-height:1.3;text-align:center;text-wrap:balance;
}
.m-btn.netral{min-height:48px;margin-top:var(--s4);background:var(--surface);color:var(--ink);border:1px solid var(--line2);font-size:14px}
.m-btn svg{width:20px;height:20px;flex:none}

.m-ident{display:block;padding:var(--s3) var(--s4);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}
.m-ir{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--nudge-2) 0;font-size:13.5px}
.m-ir span{color:var(--muted)}
.m-ir b{font-weight:700}
.m-terima{display:block;margin-top:var(--s4);padding:var(--s3);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}
.m-lb{display:block;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.m-val{display:block;margin-top:var(--nudge-1);font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.3;font-variant-numeric:tabular-nums}
/* Ukuran sel denominasi untuk HP sempit di prototipe (≤360px): layar mockup selebar itu. */
.m-denom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s1);margin-top:var(--s3)}
.m-den{
  display:flex;align-items:center;justify-content:center;min-height:52px;padding:var(--s3) var(--nudge-1);
  background:var(--white);border:1px solid var(--line2);border-radius:var(--radius-sm);
  font-size:13px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums;
}
.m-den-ketik{background:var(--surface);border:2px dashed var(--line2);color:var(--slate);font-weight:800}

.m-ringkas{display:block;margin:var(--s3) var(--s3) 0;padding:var(--s4);border-radius:var(--radius-md);background:var(--blue-deep);color:var(--white)}
.m-ringkas .m-lb{font-size:11px;letter-spacing:.1em;color:var(--white);opacity:.7}
.m-ttl{display:block;margin-top:var(--nudge-1);font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.m-sek{display:block;margin-bottom:var(--s3);font-size:14px;font-weight:700;color:var(--slate)}
.m-metode{display:flex;flex-direction:column;gap:var(--s2)}
.m-mtd{display:flex;align-items:center;gap:var(--s3);min-height:64px;padding:var(--s3);background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius-md)}
.m-ic{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:var(--radius-md);background:var(--surface);color:var(--blue-deep)}
.m-ic svg{width:22px;height:22px}
.m-mtd.qris .m-ic{color:var(--amber-d)}
.m-mn{flex:1;min-width:0}
.m-mn b{display:block;font-size:15.5px;font-weight:700;line-height:1.4}
.m-mn span{display:block;margin-top:1px;font-size:13px;line-height:1.35;color:var(--slate)}

.m-pesan{
  display:block;margin-bottom:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--radius-md);
  background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);font-size:13px;font-weight:700;line-height:1.5;
}
.m-isian{
  display:flex;align-items:center;height:50px;margin-bottom:var(--s3);padding:0 14px;
  background:var(--white);border:1.5px solid var(--line2);border-radius:var(--radius-sm);color:var(--muted);font-size:16px;
}
/* Tanda stok dari .tag-warn prototipe. Di prototipe ia rata kanan; layar mockup lebih
   sempit dari HP asli, jadi ia turun ke bawah nama supaya nama tidak terlipat. */
.m-mn .m-tag-warn{
  display:inline-block;margin-top:var(--s1);padding:var(--s1) var(--s2);border-radius:var(--radius-pill);
  background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);font-size:13px;font-weight:800;letter-spacing:.01em;line-height:1.2;
}

.m-sukses{padding-top:var(--s5);text-align:center}
.m-cek{
  display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:var(--s2) auto 14px;
  border-radius:var(--radius-full);background:var(--green-d);color:var(--white);font-size:38px;font-weight:800;line-height:1;
}
.m-sukses-j{display:block;font-family:var(--display);font-size:24px;font-weight:800;line-height:1.2}
.m-sukses-s{display:block;margin:var(--s1) 0 18px;font-size:14px;color:var(--slate)}
.m-struk{display:block;padding:var(--s4);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);text-align:left;font-size:13px}
.m-sh{display:block;margin-bottom:var(--s3);padding-bottom:var(--s3);border-bottom:1px dashed var(--line2);text-align:center}
.m-sh b{display:block;font-family:var(--display);font-size:15px}
.m-sh span{display:block;margin-top:var(--nudge-1);color:var(--slate);line-height:1.4}
.m-sr{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--nudge-2) 0;font-variant-numeric:tabular-nums}
.m-st{display:block;margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--line2)}
.m-st .m-sr{font-weight:600}
.m-st .m-besar{padding-top:var(--s1);font-size:17px;font-weight:800;color:var(--green-d)}

/* Lembar modifier di atas layar kasir: pola .tirai + .lembar prototipe. Tirai digambar
   sebagai ::after layar; lembar duduk di atasnya dan isinya terpotong seperti daftar
   yang bisa digulir. */
.hp-layar.m-berlembar{position:relative}
.m-berlembar::after{content:'';position:absolute;inset:0;background:rgba(15,23,42,.45)}
.m-lembar{
  position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;flex-direction:column;max-height:88%;
  background:var(--white);border-radius:var(--radius) var(--radius) 0 0;box-shadow:var(--shadow-up);
}
.m-lembar>*{flex:none}
.m-pegangan{width:38px;height:4px;margin:var(--s2) auto var(--nudge-1);border-radius:var(--radius-pill);background:var(--line2)}
.m-lembar-kepala{display:flex;align-items:flex-start;gap:var(--s2);padding:var(--s2) var(--pad) var(--s3);border-bottom:1px solid var(--line)}
.m-lembar-judul{flex:1;font-family:var(--display);font-size:20px;font-weight:800;line-height:1.25}
.m-tutupx{
  display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;margin-top:calc((25px - 44px) / 2);
  border-radius:var(--radius-md);background:var(--surface);color:var(--slate);
}
.m-tutupx svg{width:20px;height:20px}
.m-lembar>.m-lembar-isi{flex:1;min-height:0;overflow:hidden}
.m-lembar-isi{padding:var(--s1) var(--pad) var(--s3)}
.m-grup{display:block;padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.m-gh{display:flex;align-items:center;gap:var(--s2);margin-bottom:9px}
.m-gn{font-size:14.5px;font-weight:700}
.m-tanda{padding:var(--nudge-2) var(--s2);border-radius:var(--radius-xs);font-size:13px;font-weight:700}
.m-tanda.wajib{background:var(--blue-soft);color:var(--blue-deep);border:1px solid var(--blue-line-soft)}
.m-tanda.opsional{background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.m-opsi{display:flex;flex-direction:column;gap:var(--s2)}
.m-opt{
  display:flex;align-items:center;gap:var(--s3);min-height:52px;padding:var(--s3);
  background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius-sm);
}
.m-opt.on{border-color:var(--blue);background:var(--blue-soft)}
.m-kotak{display:flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:var(--radius-full);border:2px solid var(--line2)}
.m-opt.on .m-kotak{border-color:var(--blue);background:var(--blue)}
.m-opt.on .m-kotak::after{content:'';width:9px;height:9px;border-radius:var(--radius-full);background:var(--white)}
.m-on-nm{flex:1;font-size:15px;font-weight:500}
.m-on-hg{font-size:13px;font-weight:700;color:var(--slate);white-space:nowrap;font-variant-numeric:tabular-nums}
.m-lembar-kaki{padding:var(--s3) var(--pad);border-top:1px solid var(--line);background:var(--white)}

/* Metode terpilih + kotak QR: pola .terpilih-bar dan .qbox prototipe. Kodenya pola
   dekoratif berbenih tanpa pola timing maupun info format, jadi tak bisa dipindai. */
.m-terpilih{
  display:flex;align-items:center;gap:var(--s3);min-height:60px;padding:var(--s3) 14px;
  border-radius:var(--radius-md);background:var(--blue-soft);border:1.5px solid var(--blue);
}
.m-terpilih.qris{background:var(--warn-bg);border-color:var(--amber)}
.m-terpilih .m-ic{background:var(--white)}
.m-terpilih.qris .m-ic{color:var(--amber-d)}
.m-ganti{
  display:flex;align-items:center;flex:none;min-height:44px;padding:0 var(--s4);border-radius:var(--radius-pill);
  border:1.5px solid var(--blue);background:var(--white);color:var(--blue);font-size:13px;font-weight:800;
}
.m-terpilih.qris .m-ganti{color:var(--amber-d);border-color:var(--amber)}
.m-qbox{display:block;margin-top:var(--s3);padding:var(--s4);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);text-align:center}
/* Prototipe: QR 190px di kotak selebar ±328px. Kotak mockup ±236px, jadi QR ikut ke
   proporsi yang sama: 135px = 27 satuan × 5px, modul tetap tajam. */
.m-qr{width:135px;height:135px;margin:0 auto;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}
.m-qr path{fill:var(--ink)}
.m-qnom{display:block;margin-top:var(--s3);font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.3;font-variant-numeric:tabular-nums}
.m-qtunggu{display:flex;align-items:center;justify-content:center;gap:var(--s2);margin-top:10px;font-size:13px;color:var(--slate)}
.m-titik{flex:none;width:8px;height:8px;border-radius:var(--radius-full);background:var(--amber)}
@media (prefers-reduced-motion:no-preference){
  .m-titik{animation:denyut 1s ease-in-out infinite}
}
@keyframes denyut{0%,100%{opacity:.5}50%{opacity:1}}

/* Entri gabungan metode + kaki terkunci: pola .sp-entri dan .sp-fkaki prototipe. Tombol
   hapus entri tak digambar: layar mockup lebih sempit dari HP asli. */
.m-entri{
  display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s2);padding:var(--s3);
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);
}
.m-entri .m-ic{border-radius:var(--radius-sm);background:var(--blue-soft)}
.m-en{flex:1;min-width:0}
.m-en b{display:block;font-size:14.5px;font-weight:700}
.m-en small{display:block;margin-top:1px;font-size:13px;font-weight:500;line-height:1.4;color:var(--slate)}
.m-ev{font-size:15.5px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.m-fkaki{display:flex;flex-direction:column;gap:var(--s2)}
.m-finfo{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);font-size:13px;font-weight:600;color:var(--slate)}
.m-finfo b{font-size:19px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.m-finfo .ok{color:var(--green-d)}
.m-finfo .kur{color:var(--warn-ink)}
.m-btn.bayar{min-height:64px;background:var(--amber);color:var(--ink);font-size:18px}

/* Daftar pesanan terbuka: pola .pes-seksi dan .pes prototipe. Tipe pesanan dibawa bentuk
   ikon (kantong vs kendaraan), bukan warna. Di prototipe harga punya kolom sendiri setinggi
   baris; layar mockup (264–300px) lebih sempit dari HP tersempit, jadi harga hanya berbagi
   baris dengan nama dan tanda turun ke barisnya sendiri. */
.m-badan.m-rapat{padding-top:var(--s2)}
.m-pseksi{display:flex;align-items:center;gap:var(--s2);min-height:44px;margin:var(--s4) 0 var(--s2);padding:var(--s2) 0}
.m-pseksi-j{font-family:var(--display);font-size:15px;font-weight:800}
.m-pseksi-n{margin-right:auto;font-size:12px;font-weight:600;color:var(--muted)}
.m-chev{position:relative;flex:none;width:16px;height:16px}
.m-chev::before{
  content:'';position:absolute;top:8px;left:3px;width:8px;height:8px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-135deg);
}
.m-pes{
  display:flex;align-items:center;gap:var(--s3);min-height:72px;margin-bottom:var(--s2);padding:var(--s3) var(--s4);
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);
}
.m-pes-ic{
  display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;
  border-radius:var(--radius-md);background:var(--surface);color:var(--blue-deep);
}
.m-pes-ic svg{width:24px;height:24px}
.m-pn{flex:1;min-width:0}
.m-pn>span{display:block;margin-top:var(--nudge-2);font-size:13px;line-height:1.4;color:var(--slate)}
.m-pn>.m-pes-atas{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2);margin-top:0;color:var(--ink)}
.m-pes-atas b{min-width:0;font-size:17px;font-weight:800;line-height:1.25;letter-spacing:-.01em}
.m-pv{flex:none;font-size:13px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.m-pn>.m-pes-waktu{margin-top:1px;font-weight:600}
.m-pn>.m-pes-tag{
  display:table;margin-top:var(--s1);padding:var(--nudge-2) 6px;border-radius:var(--radius-xs);
  background:var(--surface);color:var(--slate);border:1px solid var(--line2);font-size:11px;font-weight:800;letter-spacing:.06em;line-height:1.5;
}
.m-pn>.m-pes-tag.lunas{background:var(--green-soft);color:var(--green-d);border-color:var(--green-line-soft)}

/* Kartu selisih + baris uang: pola .kas-selisih dan .uang prototipe. Arah selisih tetap
   dinyatakan lewat kata, bukan warna saja. */
.m-selisih{display:block;padding:var(--s4);border:1px solid;border-radius:var(--radius-md)}
.m-selisih.nol{background:var(--green-soft);border-color:var(--green-line-soft);color:var(--green-d)}
.m-selisih.kurang{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}
.m-selisih .m-lb{color:inherit}
.m-sval{display:block;margin-top:var(--nudge-1);font-size:38px;font-weight:800;letter-spacing:-.025em;line-height:1.1;font-variant-numeric:tabular-nums}
.m-skt{display:block;margin-top:var(--s1);font-size:13px;font-weight:600}
.m-uang{display:block;margin-bottom:10px;font-size:13.5px;color:var(--slate)}
.m-uang-jarak{margin-top:var(--s4)}
.m-ur{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--nudge-1) 0;font-variant-numeric:tabular-nums}
/* 19px seperti prototipe mulai viewport 360px. Di bawahnya layar mockup tinggal ±264px dan
   "Kas seharusnya" + Rp1.080.000 tak muat sebaris walau labelnya sudah terlipat. */
.m-utotal{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);font-size:17px;font-weight:800;color:var(--ink)}
@media (min-width:360px){
  .m-utotal{font-size:19px}
}
.m-isian-lb{display:block;margin-top:var(--s3);font-size:13px;font-weight:700;color:var(--slate)}
.m-isian-lb .m-tanda{margin-left:var(--s1)}
.m-isian.terisi{margin:var(--s2) 0 0;color:var(--ink)}
.m-det-ket{display:block;margin-top:var(--s2);font-size:13px;color:var(--slate)}

/* --- Untuk siapa ------------------------------------------------------- */
.untuk{border-block:1px solid var(--line)}
.untuk p{padding-block:var(--s6);text-align:center;color:var(--slate);text-wrap:balance}
.untuk span{color:var(--ink);font-weight:600}

/* --- Seksi ------------------------------------------------------------ */
.seksi{padding-block:var(--seksi-1)}
.kepala-seksi{max-width:40em}
.kepala-seksi h2{margin-top:var(--s3);font-size:var(--skala-5);line-height:1.15;letter-spacing:-.02em}
.kepala-seksi h2:first-child{margin-top:0}

/* --- Cara kerja --------------------------------------------------------
   Dasar (HP, dan desktop tanpa skrip): empat kartu, tiap kartu membawa layarnya sendiri
   yang mengintip dari tepi bawah kartu. Desktop dengan skrip (.hidup): kartu melebur,
   keempat HP menumpuk di satu sel grid yang sticky, dan hanya HP langkah aktif yang
   tampil. Gulir tetap gulir browser; skrip hanya menandai langkah aktif. */
.cara-kerja{background:var(--surface)}
.ck{display:grid;gap:var(--s4);margin-top:var(--s7)}
.ck-kartu{display:flex;flex-direction:column;overflow:hidden;padding:var(--s6) var(--s5) 0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.ck-no{font-size:14px;font-weight:700;color:var(--blue-deep)}
.ck-teks h3{margin-top:var(--s2);font-size:var(--skala-6);line-height:1.25;letter-spacing:-.01em}
.ck-teks h3~p{margin-top:var(--s2);color:var(--slate)}
.ck-teks .ck-catatan{margin-top:var(--s3);color:var(--blue-deep);font-size:14px}
/* Tinggi intip: cukup untuk isi kunci tiap layar (baris denominasi pertama, kartu QRIS).
   HP menempel di dasar kartu, jadi tetap terpotong tepi bawah walau kartu di sebelahnya
   lebih tinggi. Lebar minimal 286px = HP tersempit yang memuat dua baris pertama papan
   denominasi prototipe; di layar di bawah 360px HP melebar ke tepi kartu, tetap di tengah. */
.ck-teks{margin-bottom:var(--s5)}
.ck-hp{
  display:flex;flex-direction:column;align-self:center;width:max(100%, 286px);max-width:324px;height:420px;
  margin:auto 0 0;overflow:hidden;
}
.ck-hp .hp{flex:none}
.ck-hp .ket-mockup{order:-1;margin:0 0 var(--s3)}

/* --- Proposisi -------------------------------------------------------- */
.proposisi{display:grid;gap:var(--s6);margin-top:var(--seksi-1);padding-top:var(--s7);border-top:1px solid var(--line2)}
.proposisi h3{font-size:var(--skala-6);line-height:1.25;letter-spacing:-.01em}
.proposisi p{margin-top:var(--s2);color:var(--slate)}

/* --- Lihat langsung ----------------------------------------------------
   Dasar (dan semua lebar tanpa skrip): keenam panel bertumpuk, tiap panel teks lalu HP,
   dan daftar tab tetap tersembunyi. Dengan skrip (.hidup) hanya panel aktif yang tampil:
   chip geser di HP dan tablet, daftar tegak di desktop. */
.sit{display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--seksi-1);margin-top:var(--s7)}
.sit.hidup{row-gap:var(--s6)}
/* Padding blok memberi ruang cincin fokus: gulir mendatar ikut memotong arah tegak. */
.sit-tab{
  display:flex;gap:var(--s2);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;
  margin-inline:calc(-1 * var(--pad));padding:var(--s2) var(--pad);scroll-padding-inline:var(--pad);
}
.sit-tab [role="tab"]{
  display:inline-flex;align-items:center;flex:none;min-height:44px;padding:var(--s2) var(--s4);scroll-snap-align:start;
  border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--slate);
  font:inherit;font-size:15px;font-weight:600;line-height:1.3;white-space:nowrap;cursor:pointer;
}
.sit-tab [role="tab"]:hover{border-color:var(--line2);color:var(--ink)}
.sit-tab [aria-selected="true"],.sit-tab [aria-selected="true"]:hover{background:var(--blue);border-color:var(--blue);color:var(--white)}
.sit-tab [role="tab"]:focus-visible{border-radius:var(--radius-pill)}
.sit-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5)}
.sit-panel:focus-visible{outline-offset:var(--s2)}
.sit-teks h3{font-size:var(--skala-6);line-height:1.25;letter-spacing:-.01em}
.sit-teks p{margin-top:var(--s2);color:var(--slate)}
.sit-teks .pesan{margin-top:var(--s3);font-size:14px}
.sit-hp{width:100%;max-width:324px;margin:0 auto}
@media (prefers-reduced-motion:no-preference){
  .sit.hidup .sit-panel{animation:panel-masuk .25s ease both}
}
@keyframes panel-masuk{from{opacity:0}}

/* --- Back-office ------------------------------------------------------- */
.bo{background:var(--surface)}
.bo-chip{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.bo-visual{margin:var(--s7) 0 0}
/* Bingkai browser berisi kanvas back-office bersidebar navy (varian A "Bingkai Aplikasi").
   Di HP sidebar melipat jadi pita atas, seperti back-office di layar sempit. */
.peramban{overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);user-select:none}
.pr-bilah{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);background:var(--surface);border-bottom:1px solid var(--line)}
.pr-titik{flex:none;width:10px;height:10px;border-radius:var(--radius-full);background:var(--line2)}
.pr-alamat{
  flex:1;max-width:320px;margin-left:var(--s2);padding:var(--s1) var(--s3);border-radius:var(--radius-pill);
  background:var(--white);border:1px solid var(--line);font-size:12px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pr-layar{
  display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:540px;
  overflow:hidden;background:var(--surface);color:var(--ink);line-height:1.5;
}
.b-samping{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);background:var(--blue-deep);color:var(--white)}
.b-merek{display:flex;align-items:center;gap:var(--s2);margin-right:auto}
.b-ikon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--white)}
.b-ikon img{width:20px;height:20px}
.b-wm{font-family:var(--display);font-size:20px;font-weight:800;letter-spacing:-.03em;line-height:1}
.b-nav{display:none}
.b-kanvas{display:flex;flex-direction:column;gap:var(--s4);min-height:0;padding:var(--s4)}
.b-kepala{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3)}
.b-judul{font-family:var(--display);font-size:22px;font-weight:800;line-height:1.25}
.b-periode{display:flex;gap:var(--s1);padding:var(--s1);border-radius:var(--radius-pill);background:var(--white);border:1px solid var(--line)}
.b-periode span{padding:var(--s1) var(--s3);border-radius:var(--radius-pill);font-size:13px;font-weight:600;color:var(--slate)}
.b-periode .on{background:var(--blue);color:var(--white)}
.b-kisi{display:grid;gap:var(--s4)}
.b-kartu{display:block;padding:var(--s4);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}
.b-kartu-j{display:block;margin-bottom:var(--s3);font-family:var(--display);font-size:15px;font-weight:800}
.b-angka{display:block;margin-top:var(--nudge-1);font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}
.b-delta{display:flex;align-items:center;gap:var(--s1);margin-top:var(--s1);font-size:13px;font-weight:700;color:var(--green-d)}
.b-delta svg{width:16px;height:16px;flex:none}
.b-tiga{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
.b-tiga>span{display:flex;flex-direction:column;justify-content:space-between}
.b-tiga b{display:block;margin-top:var(--nudge-1);font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.b-grafik{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s2);margin-top:var(--s4)}
.b-hari{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--s1);height:112px;
  font-size:11px;font-weight:600;color:var(--muted);
}
.b-batang{width:100%;max-width:32px;border-radius:var(--radius-xs) var(--radius-xs) 0 0;background:var(--blue)}
.b-hari:nth-child(1) .b-batang{height:52px}
.b-hari:nth-child(2) .b-batang{height:48px}
.b-hari:nth-child(3) .b-batang{height:56px}
.b-hari:nth-child(4) .b-batang{height:60px}
.b-hari:nth-child(5) .b-batang{height:76px}
.b-hari:nth-child(6) .b-batang{height:88px}
.b-hari:nth-child(7) .b-batang{height:80px}
.b-baris{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0;border-top:1px solid var(--line);font-size:14px}
.b-baris b{font-weight:700;font-variant-numeric:tabular-nums}
.b-baris-kepala{padding-top:0;border-top:0}

/* --- Pita navy --------------------------------------------------------- */
.pita-masalah{background:var(--blue-deep);color:var(--white)}
.pita-masalah p{
  padding-block:var(--seksi-1);font-family:var(--display);font-weight:800;font-size:var(--skala-5);
  line-height:1.2;letter-spacing:-.02em;text-align:center;text-wrap:balance;
}

/* --- Harga -------------------------------------------------------------
   Kartu Padu Plus ditandai seperti pilihan aktif di kasir (.m-prod.on). Slot harganya setinggi
   angka Rp0: saat rilis teks "diumumkan" di sana diganti angka, dan isi kedua kartu tetap sejajar. */
.harga .kepala-seksi{max-width:none}
.harga h2 span{display:block}
.paket{display:grid;gap:var(--s4);margin-top:var(--s7)}
.paket-kartu{padding:var(--s6) var(--s5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.paket-kartu.plus{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue),var(--shadow)}
.paket-kartu h3{font-size:var(--skala-6);line-height:1.25;letter-spacing:-.01em}
.paket-harga{
  display:flex;align-items:flex-end;min-height:calc(var(--skala-4) * 1.15);margin-top:var(--s2);
  font-size:var(--skala-4);font-weight:800;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.plus .paket-harga{font-size:var(--skala-6);line-height:1.3;letter-spacing:-.01em;color:var(--blue-deep)}
.paket-jual{margin-top:var(--s2);color:var(--slate);font-weight:600}
.paket-isi{display:grid;gap:var(--s3);margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line)}
.paket-isi li{display:flex;align-items:flex-start;gap:var(--s3)}
.paket-isi b{font-weight:700}
.ik-cek{
  flex:none;width:20px;height:20px;margin-top:var(--nudge-1);
  fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.paket-catatan{display:grid;gap:var(--s2);max-width:48em;margin-top:var(--s5);font-size:14px;color:var(--slate)}

/* --- Tanya jawab -------------------------------------------------------
   <details> bawaan, tanpa skrip: jawaban tertutup tetap ada di HTML. Kartu dan summary sepola
   .struk-lipat prototipe, chevron sepola .chev prototipe. */
.tj{background:var(--surface)}
.tj-daftar{display:grid;gap:var(--s3);margin-top:var(--s7)}
.tj-butir{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}
.tj-butir summary{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:56px;padding:var(--s4) var(--s5);
  font-family:var(--display);font-weight:700;line-height:1.35;list-style:none;cursor:pointer;
}
.tj-butir summary::-webkit-details-marker{display:none}
.tj-butir summary::marker{content:''}
.tj-butir summary:hover{color:var(--blue-deep)}
.tj-butir summary:focus-visible{border-radius:var(--radius-md)}
.tj-butir p{padding:0 var(--s5) var(--s5);color:var(--slate)}
.chev{position:relative;flex:none;width:16px;height:16px;color:var(--muted)}
.chev::before{
  content:'';position:absolute;top:5px;left:3px;width:8px;height:8px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .16s ease;
}
[open] > summary .chev::before{top:8px;transform:rotate(-135deg)}

/* --- Ajakan penutup ---------------------------------------------------- */
.ajakan{text-align:center}
.ajakan .kepala-seksi{margin-inline:auto}
.ajakan-teks{margin-top:var(--s3);color:var(--slate)}
/* Ukuran mengikuti .btn.primer prototipe. Hover wajib menimpa warna teks: hover tautan
   global (biru-deep) akan menghilangkan teks di latar biru. */
.tombol{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:56px;margin-top:var(--s6);padding:0 var(--s7);
  border-radius:var(--radius-md);background:var(--blue);color:var(--white);font-weight:800;font-size:16px;line-height:1.3;text-decoration:none;
}
.tombol:hover{background:var(--blue-deep);color:var(--white)}
.tombol:active{transform:scale(.98)}
.tombol:focus-visible{border-radius:var(--radius-md)}

/* --- Halaman dokumen (hukum) ----------------------------------------- */
.dokumen{max-width:720px;padding-top:var(--s8);padding-bottom:var(--seksi-1)}
.dokumen h1{font-size:var(--skala-5);line-height:1.15;letter-spacing:-.02em}
.dokumen h2{margin-top:var(--s7);font-size:var(--skala-6);line-height:1.2;letter-spacing:-.02em}
.dokumen p,.dokumen li{color:var(--slate)}
.dokumen p{margin-top:var(--s3)}
.dokumen ol,.dokumen .daftar{margin:var(--s3) 0 0;padding-left:var(--s6)}
.dokumen .daftar{list-style:disc}
.dokumen li+li{margin-top:var(--s2)}
.dokumen strong{color:var(--ink)}

.pesan{border-radius:var(--radius-md);padding:var(--s3) var(--s4);line-height:1.5}
.pesan.info{background:var(--blue-soft);border:1px solid var(--blue-line-soft);color:var(--blue-deep)}
.dokumen .pesan{margin-top:var(--s5);color:var(--blue-deep)}

/* --- Footer ----------------------------------------------------------- */
.kaki{background:var(--ink);color:var(--blue-line-soft);padding-top:var(--seksi-1);overflow:hidden}
.kaki :focus-visible{outline-color:var(--white)}
.kaki-atas{display:grid;gap:var(--s7)}
.kaki .merek,.kaki .merek:hover{color:var(--white)}
.kaki .merek img{width:40px;height:40px}
.kaki-tagline{margin-top:var(--s3);font-family:var(--display);font-weight:600;color:var(--blue-line-soft)}
.kaki-judul{font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--white)}
.kaki ul{margin-top:var(--s2)}
.kaki li{display:flex;align-items:center;min-height:44px}
.kaki a{color:var(--white);text-decoration:none}
.kaki li a{display:flex;align-items:center;flex:1;min-height:44px}
.kaki a:hover{text-decoration:underline}
.kaki a[aria-current="page"]{text-decoration:underline}
.kaki-hak{margin-top:var(--s8);padding-top:var(--s4);border-top:1px solid var(--blue-deep);font-size:14px}
.kaki-wordmark{
  margin:var(--s6) 0 -.2em;font-family:var(--display);font-weight:800;letter-spacing:-.05em;
  line-height:.8;font-size:38vw;color:var(--blue-deep);user-select:none;
}

@media (min-width:720px){
  .wadah{padding-inline:var(--s6)}
  .nav-tautan{display:flex;gap:var(--s2);margin-left:auto}
  .nav .chip{margin-left:var(--s2)}
  .dokumen{padding-top:var(--seksi-1)}
  .hero{padding:var(--seksi-1) 0 var(--seksi-2)}
  .hero h1{font-size:var(--skala-2)}
  .ikon-app{left:calc(-1 * var(--s7));top:calc(-1 * var(--s6));width:96px;height:96px;border-radius:var(--radius-appicon)}
  .seksi{padding-block:var(--seksi-2)}
  .kepala-seksi h2{font-size:var(--skala-4)}
  .ck{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proposisi{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--s7)}
  .sit-tab{margin-inline:calc(-1 * var(--s6));padding-inline:var(--s6);scroll-padding-inline:var(--s6)}
  .sit-panel{grid-template-columns:minmax(0,1fr) 324px;column-gap:var(--s8);align-items:center}
  .sit-hp{margin:0}
  .pr-layar{grid-template-columns:184px minmax(0,1fr);grid-template-rows:none;height:470px}
  .b-samping{flex-direction:column;align-items:stretch;gap:var(--s1);padding:var(--s4) var(--s3)}
  .b-merek{margin:0 0 var(--s4);padding:0 var(--s2)}
  .b-menu{display:none}
  .b-nav{
    display:flex;align-items:center;min-height:40px;padding:0 var(--s3);border-radius:var(--radius-sm);
    font-size:14px;font-weight:600;color:var(--blue-line-soft);
  }
  .b-nav.on{background:rgba(255,255,255,.13);color:var(--white)}
  .b-kanvas{padding:var(--s6)}
  .b-kartu{padding:var(--s4) var(--s5)}
  .pita-masalah p{padding-block:var(--seksi-2);font-size:var(--skala-4)}
  .paket{grid-template-columns:repeat(2,minmax(0,1fr))}
  .paket-kartu{padding:var(--s7) var(--s6)}
  .dokumen h1{font-size:var(--skala-4)}
  .kaki-atas{grid-template-columns:2fr 1fr 1fr 1fr}
}
@media (min-width:1080px){
  .hero-isi{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--seksi-2)}
  .hero-visual{margin:0 0 0 var(--s7)}
  .hero h1{font-size:var(--skala-1)}
  .kepala-seksi h2{font-size:var(--skala-3)}
  .proposisi h3{font-size:var(--skala-5)}
  .sit.hidup{grid-template-columns:minmax(0,280px) minmax(0,1fr);column-gap:var(--seksi-1);align-items:center}
  .sit.hidup .sit-panel{grid-column:2;grid-row:1}
  .sit-tab{flex-direction:column;overflow:visible;margin:0;padding:0}
  .sit-tab [role="tab"]{
    min-height:56px;padding:var(--s3) var(--s4);white-space:normal;text-align:left;
    border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);
  }
  .sit-tab [aria-selected="true"],.sit-tab [aria-selected="true"]:hover{background:var(--blue-soft);border-color:var(--blue);color:var(--blue-deep);font-weight:700}
  .sit-tab [role="tab"]:focus-visible{border-radius:var(--radius-sm)}
  .sit-teks h3{font-size:var(--skala-5)}
  .b-kisi{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}
  .pita-masalah p{font-size:var(--skala-2)}
  .tj-wadah{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);column-gap:var(--seksi-1);align-items:start}
  .tj-daftar{margin-top:0}
  .kaki-wordmark{font-size:420px}
}
/* HP sticky hanya di desktop yang cukup tinggi untuk memuat HP utuh di bawah nav, dan hanya
   bila skrip menandai langkah (.hidup). HP + keterangan ±596px, dipusatkan di ruang di bawah
   nav setinggi --seksi-1. align-self start wajib: aturan dasar menaruh HP di tengah kartu,
   dan di bentang empat baris itu menjatuhkannya ke bawah layar. */
@media (min-width:1080px) and (min-height:660px){
  .ck.hidup{grid-template-columns:minmax(0,1fr) 324px;column-gap:var(--seksi-2);row-gap:0;align-items:start}
  .ck.hidup .ck-kartu{display:contents}
  .ck.hidup .ck-teks{
    grid-column:1;display:flex;flex-direction:column;justify-content:center;min-height:70vh;
    max-width:34em;margin:0;padding-left:var(--s7);border-left:2px solid var(--line2);
  }
  .ck.hidup .ck-teks h3{font-size:var(--skala-5)}
  .ck.hidup .aktif .ck-teks{border-left-color:var(--blue)}
  .ck.hidup .ck-hp{
    grid-column:2;grid-row:1 / span 4;align-self:start;position:sticky;top:max(var(--seksi-1), calc(50vh - 266px));
    height:auto;margin:0;overflow:visible;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;
  }
  .ck.hidup .aktif .ck-hp{opacity:1;visibility:visible}
  .ck.hidup .ck-hp .ket-mockup{order:0;margin:var(--s3) 0 0}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
