:root{
  /* โทนส้มสว่าง ตามสีโลโก้ (#fd8213) · ปุ่มใช้ส้มเข้มขึ้นนิดเพื่อให้ตัวหนังสือขาวอ่านออก */
  --bg:#fffaf5; --card:#fff; --ink:#1f1a17; --muted:#6b635c; --line:#f3e3d3;
  --brand:#f26b0f; --brand-ink:#fff; --brand-soft:#fff1e3; --brand-bright:#fd8213;
  --warn:#c2410c; --ok:#067647;
  --r:10px; --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding-inline:16px}
.muted{color:var(--muted)}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--card);border-bottom:3px solid var(--brand-bright)}
.bar{display:flex;gap:16px;align-items:center;padding-block:12px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:2px;text-decoration:none;font-weight:800;font-size:22px;letter-spacing:-.5px}
.logo .mark{background:var(--brand);color:#fff;border-radius:6px;padding:0 5px}
.logo b{color:var(--brand);font-weight:800}
.logo img{height:48px;width:auto;display:block}
@media (max-width:560px){.logo img{height:36px}}
.search{flex:1;display:flex;min-width:240px}
.search input{flex:1;min-width:0;border:2px solid var(--brand);border-right:0;border-radius:var(--r) 0 0 var(--r);padding:10px 14px;font-size:15px;outline:none}
.search button{border:0;background:var(--brand);color:var(--brand-ink);font-weight:600;padding:0 20px;border-radius:0 var(--r) var(--r) 0;cursor:pointer}
.search button:hover{background:#e05e06}
.cart-link{text-decoration:none;font-weight:600;display:flex;align-items:center;gap:6px;margin-left:auto}
.img-btn{display:flex;align-items:center;gap:6px;border:2px solid var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600;font-size:14px;border-radius:var(--r);padding:8px 12px;cursor:pointer;white-space:nowrap}
.img-btn:hover{background:#ffe3c7}
@media (max-width:560px){.img-btn span{display:none}.img-btn{padding:8px 10px}}

/* image search dialog */
.img-dlg{border:0;border-radius:14px;padding:0;width:min(520px,calc(100vw - 32px));box-shadow:0 20px 50px rgba(0,0,0,.25)}
.img-dlg::backdrop{background:rgba(31,26,23,.45)}
.img-dlg-in{padding:18px}
.img-dlg-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.img-dlg-head h2{font-size:18px;margin:0}
.x-btn{border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--muted)}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:220px;border:2px dashed var(--brand-bright);border-radius:12px;background:var(--brand-soft);text-align:center;padding:16px;cursor:pointer}
.drop.over{background:#ffe3c7}
.drop img{max-height:260px;width:auto;border-radius:8px}
.img-dlg-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.img-q{display:flex;align-items:center;gap:12px}
.img-q img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:2px solid var(--brand-bright)}
.badge{background:var(--brand);color:#fff;border-radius:999px;font-size:12px;padding:0 7px}

/* home */
.hero{padding-block:40px 24px;background:linear-gradient(180deg,#fff1e3,rgba(255,241,227,0));margin-inline:-16px;padding-inline:16px;border-radius:0 0 16px 16px}
.hero h1{font-size:clamp(26px,4vw,40px);line-height:1.15;margin:0 0 8px;letter-spacing:-.5px}
.hero p{margin:0;color:var(--muted);font-size:17px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 8px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;cursor:pointer;font-size:14px}
.chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.usp{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:24px 0}
.usp div{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brand-bright);border-radius:var(--r);padding:16px}
.usp b{display:block;margin-bottom:2px}

/* grid */
.results-head{display:flex;justify-content:space-between;align-items:baseline;margin:20px 0 12px;gap:8px;flex-wrap:wrap}
.results-head h2{font-size:18px;margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
@media (max-width:560px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.card .price{font-size:15px}}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);text-decoration:none;overflow:hidden;display:flex;flex-direction:column}
.card .img{aspect-ratio:1;background:#eef0f3}
.card .img img{width:100%;height:100%;object-fit:cover}
.card .body{padding:10px;display:flex;flex-direction:column;gap:4px;flex:1}
.card .t{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em}
.price{font-weight:700;font-size:17px;color:var(--brand)}
.meta{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}
.moq{font-size:12px;color:var(--warn)}
.pager{display:flex;justify-content:center;gap:8px;margin:24px 0}
.btn{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:9px 16px;cursor:pointer;font-weight:600;font-size:14px}
.btn:disabled{opacity:.45;cursor:default}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover:not(:disabled){background:#e05e06}

/* product */
.crumb{margin:16px 0;font-size:14px}
.pd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:20px}
@media (max-width:820px){.pd{grid-template-columns:1fr;padding:14px}}
.gallery .main{aspect-ratio:1;background:#eef0f3;border-radius:8px;overflow:hidden}
.gallery .main img,.gallery .main video{width:100%;height:100%;object-fit:contain}
.thumbs{display:flex;gap:6px;margin-top:8px;overflow-x:auto}
.thumbs button{border:2px solid transparent;padding:0;border-radius:6px;overflow:hidden;width:56px;height:56px;flex:none;cursor:pointer;background:#eef0f3}
.thumbs button.on{border-color:var(--brand)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.pd h1{font-size:20px;line-height:1.35;margin:0 0 12px}
.tiers{display:flex;gap:8px;flex-wrap:wrap;background:var(--brand-soft);border-radius:8px;padding:12px;margin-bottom:14px}
.tiers div{min-width:90px}
.tiers .p{font-size:20px;font-weight:700;color:var(--brand)}
.tiers .q{font-size:12px;color:var(--muted)}
.opt{margin:12px 0}
.opt .lbl{font-size:13px;color:var(--muted);margin-bottom:6px}
.opt .vals{display:flex;flex-wrap:wrap;gap:6px}
.opt .v{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px;max-width:100%;text-align:left}
.opt .v img{width:28px;height:28px;object-fit:cover;border-radius:4px}
.opt .v.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.opt .v:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.buy{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.qty{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.qty button{border:0;background:#f2f4f7;width:36px;font-size:18px;cursor:pointer}
.qty input{width:64px;border:0;text-align:center;font-size:15px}
.note{font-size:13px;color:var(--muted);margin-top:8px}
.warn{color:var(--warn)}
.okc{color:var(--ok)}
.section{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;margin-top:16px}
.section h2{font-size:17px;margin:0 0 12px}
.specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 20px;font-size:14px}
.specs div{display:flex;gap:8px;border-bottom:1px dashed var(--line);padding:4px 0}
.specs span{color:var(--muted);min-width:110px}
.details img{margin:0 auto;max-width:790px;width:100%}

/* cart */
.cart-row{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.cart-row img{width:72px;height:72px;object-fit:cover;border-radius:6px}
.cart-row .x{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;text-decoration:underline}

.empty,.err{text-align:center;padding:48px 16px;color:var(--muted)}
.skel{background:linear-gradient(90deg,#eceef1,#f6f7f9,#eceef1);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:var(--r);aspect-ratio:.72}
@keyframes sk{to{background-position:-200% 0}}

.foot{border-top:1px solid var(--line);margin-top:48px;padding-block:24px;font-size:13px;background:var(--card)}
.foot p{margin:4px 0}
