/* ============================================================================
   STORE — "MARKETPLACE PADAT" (store.mutqinin.id)
   Bahasa visual: putih/abu terang, grid rapat, harga menonjol, badge diskon.
   Berbeda tegas dari course (editorial serif) & safar (gelap sinematik).
   ============================================================================ */
:root{
  --bg:#F4F5F7; --card:#FFFFFF; --line:#E6E8EC; --line-2:#D5D9DF;
  --ink:#101418; --ink-2:#4A525C; --muted:#8A93A0;
  --shop:#007A3D; --shop-2:#00612F; --shop-bg:#E8F5EC;
  --price:#D93A00; --hot:#FFF0E6; --star:#F5A623;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --sh:0 1px 2px rgba(16,20,24,.06),0 1px 6px rgba(16,20,24,.05);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.mw{width:min(1200px,100% - 28px);margin-inline:auto}
/* header toko */
.utility{background:var(--shop);color:#fff;font-size:12px}
.utility .mw{display:flex;justify-content:space-between;gap:12px;padding:7px 0}
.head{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.head-in{display:flex;align-items:center;gap:14px;padding:12px 0}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:17px;letter-spacing:-.01em;flex:0 0 auto}
.logo .box{width:34px;height:34px;border-radius:9px;background:var(--shop);color:#fff;display:grid;place-items:center;font-size:15px}
.search{flex:1;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:10px 14px;min-width:0}
.search input{border:0;background:transparent;font:inherit;font-size:15px;outline:none;width:100%;min-width:0}
.search span{color:var(--muted);font-size:14px}
.hicon{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2);padding:8px 10px;border-radius:9px;position:relative}
.hicon:hover{background:var(--bg);color:var(--shop)}
.dot{position:absolute;top:2px;right:2px;background:var(--price);color:#fff;font-size:10px;font-weight:800;border-radius:999px;padding:1px 5px}
.catbar{background:var(--card);border-bottom:1px solid var(--line);overflow-x:auto}
.catbar .mw{display:flex;gap:8px;padding:10px 0;white-space:nowrap}
.cat{padding:7px 13px;border:1px solid var(--line-2);border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-2);background:#fff}
.cat.on{background:var(--shop-bg);border-color:var(--shop);color:var(--shop-2)}
.wrap{padding:20px 0 40px}
.crumb{font-size:12.5px;color:var(--muted);margin-bottom:14px}
.crumb a:hover{color:var(--shop)}
.banner{border-radius:14px;background:linear-gradient(120deg,#007A3D,#00A052);color:#fff;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.banner h1{margin:0;font-size:clamp(20px,3.4vw,28px);letter-spacing:-.02em;line-height:1.2}
.banner p{margin:8px 0 0;font-size:14px;color:rgba(255,255,255,.88)}
.banner .cta{background:#fff;color:var(--shop-2);font-weight:800;font-size:14px;padding:11px 18px;border-radius:10px;white-space:nowrap}
.sec-title{display:flex;justify-content:space-between;align-items:baseline;margin:6px 0 12px}
.sec-title h2{margin:0;font-size:19px;letter-spacing:-.01em}
.sec-title a{font-size:13.5px;font-weight:700;color:var(--shop)}
/* grid produk */
.pgrid{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
@media(min-width:680px){.pgrid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.pgrid{grid-template-columns:repeat(5,1fr)}}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .15s ease}
.pcard:hover{box-shadow:var(--sh);transform:translateY(-2px)}
.pcover{aspect-ratio:1/1;display:grid;place-items:center;font-weight:800;font-size:26px;color:#fff;position:relative}
.pcover .tag{position:absolute;top:8px;left:8px;background:var(--price);color:#fff;font-size:11px;font-weight:800;border-radius:6px;padding:3px 7px}
.pbody{padding:10px 11px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.ptitle{font-size:13.5px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.pprice{color:var(--price);font-weight:800;font-size:15.5px}
.pprice s{color:var(--muted);font-weight:500;font-size:12.5px;margin-left:6px}
.pmeta{font-size:11.5px;color:var(--muted);display:flex;justify-content:space-between;gap:6px}
.pbtn{margin-top:auto;border:1px solid var(--shop);color:var(--shop-2);background:#fff;border-radius:9px;font-weight:700;font-size:12.5px;padding:8px 10px;text-align:center}
.pbtn:hover{background:var(--shop);color:#fff}
.grid2{display:grid;gap:18px}
@media(min-width:900px){.grid2{grid-template-columns:1.6fr .9fr;align-items:start}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.panel h3{margin:0 0 12px;font-size:15px}
.row{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:8px 0;border-bottom:1px dashed var(--line)}
.row:last-child{border-bottom:0}
.row.total{font-weight:800;font-size:16px;border-top:2px solid var(--line-2);border-bottom:0;margin-top:4px;padding-top:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:800;font-size:14.5px;padding:13px 20px;border-radius:11px;border:1px solid transparent;cursor:pointer;transition:filter .15s ease}
.btn.buy{background:var(--shop);color:#fff}
.btn.buy:hover{filter:brightness(1.08)}
.btn.alt{background:var(--hot);color:var(--price);border-color:#FFD9C2}
.btn.line{background:#fff;border-color:var(--line-2);color:var(--ink-2)}
.btn.block{width:100%}
.detail{display:grid;gap:18px}
@media(min-width:900px){.detail{grid-template-columns:1fr 1fr;align-items:start}}
.hero-img{border-radius:14px;aspect-ratio:4/3;display:grid;place-items:center;color:#fff;font-weight:800;font-size:44px;background:linear-gradient(140deg,#00612F,#00A052)}
.thumbs{display:flex;gap:8px;margin-top:10px}
.thumbs i{width:58px;height:58px;border-radius:9px;border:1px solid var(--line-2);background:linear-gradient(140deg,#DDEBE2,#BDDCC9);display:grid;place-items:center;font-style:normal;font-size:12px;color:var(--shop-2);font-weight:700}
.buybox .big{font-size:26px;font-weight:800;color:var(--price)}
.stars{color:var(--star);font-size:13px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
.qty button{border:0;background:#fff;font:inherit;font-size:16px;padding:7px 12px;cursor:pointer}
.qty span{padding:7px 12px;font-weight:700;border-inline:1px solid var(--line-2)}
.tabsrow{display:flex;gap:16px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}
.tabsrow a{padding:10px 0;font-size:13.5px;font-weight:700;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent}
.tabsrow a.on{color:var(--shop-2);border-color:var(--shop)}
.checkout-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.cstep{font-size:12.5px;font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 13px}
.cstep.on{background:var(--shop);border-color:var(--shop);color:#fff}
.field{margin-bottom:12px}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.inp{width:100%;font:inherit;font-size:15.5px;padding:11px 13px;border:1px solid var(--line-2);border-radius:10px;background:#fff;outline:none}
.inp:focus{border-color:var(--shop);box-shadow:0 0 0 3px rgba(0,122,61,.14)}
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line-2);border-radius:11px;padding:12px;background:#fff;margin-bottom:8px}
.opt.on{border-color:var(--shop);background:var(--shop-bg)}
.opt b{display:block;font-size:14px}
.opt small{color:var(--muted);font-size:12.5px}
.mini{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.mini .cv{width:52px;height:52px;border-radius:9px;background:linear-gradient(140deg,#DDEBE2,#BDDCC9);display:grid;place-items:center;font-weight:800;color:var(--shop-2);flex:0 0 auto}
.foot{background:#fff;border-top:1px solid var(--line);padding:26px 0 40px;margin-top:10px}
.foot-grid{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:760px){.foot-grid{grid-template-columns:2fr 1fr 1fr}}
.foot h4{font-size:12.5px;margin:0 0 10px}
.foot a{display:block;font-size:13.5px;color:var(--ink-2);padding:3px 0}
.foot a:hover{color:var(--shop)}
.tiny{font-size:12px;color:var(--muted)}
.bar-mobile{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:10px 14px;display:flex;gap:10px;z-index:60;box-shadow:0 -4px 14px rgba(0,0,0,.05)}
.bar-mobile .btn{flex:1}
@media(min-width:760px){.bar-mobile{display:none}.has-bar{padding-bottom:0}}
.has-bar{padding-bottom:74px}
@media(max-width:760px){.hide-m{display:none!important}}

/* ============================================================================
   #318 DESKTOP — koreksi tata letak layar lebar (audit live 2026-09-11)
   Temuan: wadah 1200px OK, tetapi tidak ada aturan eksplisit ≥1024 dan
   gutter mobile (28px) tetap dipakai di desktop.
   ============================================================================ */
@media(min-width:1024px){
  .mw{width:min(1240px,100% - 72px)}
  .head-in{padding:14px 0}
  .pgrid{gap:18px}
  .detail{gap:40px}
  .grid2{gap:36px}
  .sec{padding:64px 0}
  .foot-grid{grid-template-columns:2fr 1fr 1fr;gap:30px}
  .lrow{grid-template-columns:120px 1fr auto}
}
@media(min-width:760px) and (max-width:1023px){
  .foot-grid{grid-template-columns:1fr 1fr}
}

/* ============================================================================
   #320 KOMPOSISI DESKTOP (disetujui owner 2026-09-11)
   Blok >=1024px: hero lebih ringkas, rel judul seksi, panel berdampingan.
   Mobile (<=760px) tidak diubah. Pratinjau: _skin-lp-2026/preview-320/
   ============================================================================ */
/* ============================================================================
   USULAN KOMPOSISI DESKTOP — store.mutqinin.id/reseller/   (#320 · pratinjau)
   Hanya tata letak. Teks/angka tidak diubah. Mobile (<=760) tidak disentuh.
   Sasaran: banner + panel berdampingan, katalog lebih padat, gutter desktop lega.
   ============================================================================ */
@media(min-width:1024px){
  .wrap{padding-top:18px}

  /* --- banner: teks kiri, aksi kanan (satu baris rapi) --- */
  .banner{padding:26px 30px;border-radius:16px;align-items:center;gap:28px}
  .banner h1{font-size:clamp(22px,2vw,30px);max-width:44ch}
  .banner p{font-size:14.5px;max-width:56ch}
  .banner .cta{padding:12px 20px}

  /* --- panel utama: kiri daftar alasan, kanan ringkasan (2 kolom seimbang) --- */
  .grid2{grid-template-columns:1.35fr .65fr;gap:22px;align-items:start}
  .panel{padding:20px}
  .panel h3{font-size:16px;margin-bottom:14px}
  .mini{padding:12px 0}
  .mini .cv{width:46px;height:46px}

  /* --- katalog: kartu lebih padat, judul seksi lebih tegas --- */
  .sec-title{margin:18px 0 14px}
  .sec-title h2{font-size:21px}
  .pgrid{gap:14px}
  .pcard{border-radius:14px}
  .pcard .ph{height:170px}

  /* --- blok penutup & footer --- */
  .foot{margin-top:18px;padding:34px 0 48px}
  .lrow{grid-template-columns:150px 1fr auto;gap:20px}
}
