/* 網路商店：沿用首頁的色彩與字體 */
:root{
  --sun:#F6D85C; --sun-deep:#E9C23A; --olive:#8F8E07; --cocoa:#3C2424; --concrete:#ECEBE7; --white:#FFFFFF; --red:#E0473C; --line:#d8d4cc;
  --round:"Huninn","Noto Sans TC",system-ui,sans-serif; --body:"Noto Sans TC",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--concrete);color:var(--cocoa);font-family:var(--body);font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--cocoa);outline-offset:3px;border-radius:6px}
.wrap{width:min(1100px,100% - 40px);margin-inline:auto}
.wrap.narrow{width:min(720px,100% - 40px)}
h1,h2,h3,legend{font-family:var(--round);font-weight:400;line-height:1.3;margin:0}
p{margin:0 0 1em}
.btn{display:inline-block;font:inherit;font-family:var(--round);font-size:17px;text-decoration:none;padding:12px 24px;border-radius:99px;background:var(--cocoa);color:var(--white);border:0;cursor:pointer;text-align:center}
.btn.line{background:transparent;color:var(--cocoa);box-shadow:inset 0 0 0 2px var(--cocoa)}
.btn.small{font-size:15px;padding:8px 18px}
.btn:hover{filter:brightness(1.15)}
.btn:disabled{opacity:.5;cursor:wait}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.testbar{background:var(--cocoa);color:var(--sun);text-align:center;font-size:14px;padding:6px 12px}
.testbar.preview{background:var(--red);color:var(--white)}

/* 頂部 */
.top{position:sticky;top:0;z-index:10;background:var(--sun)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:14px}
.top .brand img{height:28px;width:auto}
.top nav{display:flex;gap:20px;align-items:center;font-family:var(--round)}
.top nav a{text-decoration:none}
.top nav a:hover{text-decoration:underline;text-underline-offset:5px}
.cart-link{background:var(--white);padding:4px 14px;border-radius:99px}
.cart-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--cocoa);color:var(--white);font-size:13px;margin-left:2px}
@media (max-width:520px){.top nav a:not(.cart-link):first-child{display:none}.top nav{gap:14px}}

/* 商店首屏 */
.shop-hero{background:var(--sun);padding:36px 0 48px}
.shop-hero h1{font-size:clamp(30px,5vw,44px);margin-bottom:10px}
.shop-hero p{max-width:32em;margin:0}

/* 商品 */
.products{padding:56px 0 24px}
.products .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.product{background:var(--white);border-radius:24px;overflow:hidden;display:flex;flex-direction:column}
.product figure{margin:0;aspect-ratio:1;background:var(--sun-deep)}
.product figure img{width:100%;height:100%;object-fit:cover}
.product .body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.product h2{font-size:24px;margin-bottom:4px}
.product .spec{font-size:14px;opacity:.65;margin:2px 0 10px}
.product .tagline{font-family:var(--round);font-size:17px;margin-bottom:8px;line-height:1.5}
.product p{font-size:16px}
.product details{font-size:14px;margin:0 0 16px;border-top:1px dashed var(--line);padding-top:10px}
.product summary{cursor:pointer;font-family:var(--round)}
.product dl{margin:8px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.product dt{opacity:.65}
.product dd{margin:0}
.buy{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.price{font-family:var(--round);font-size:26px;margin-right:auto}
.qty{display:flex;align-items:center;border:2px solid var(--cocoa);border-radius:99px;overflow:hidden}
.qty button{font:inherit;font-size:20px;width:38px;height:40px;border:0;background:none;cursor:pointer;color:var(--cocoa)}
.qty input{width:40px;border:0;text-align:center;font:inherit;font-family:var(--round);font-size:18px;background:none;color:var(--cocoa);-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.buy .add{flex:1 1 100%}
.buy .add:disabled{background:#cfc8bd;color:var(--cocoa);opacity:1;cursor:not-allowed}
.product .desc{font-size:15px}
.variants{border:0;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.variant{position:relative}
.variant input{position:absolute;opacity:0}
.variant span{display:block;border:2px solid var(--line);border-radius:12px;padding:6px 10px;font-family:var(--round);font-size:15px;line-height:1.35;cursor:pointer}
.variant small{display:block;font-family:var(--body);font-size:12px;opacity:.7}
.variant input:checked+span{border-color:var(--cocoa);background:#FFF8D6}
.variant input:focus-visible+span{outline:3px solid var(--cocoa);outline-offset:2px}
.variant.pending span{border-style:dashed}
.variant.pending small{color:var(--red);opacity:1}
.picks{margin:0 0 14px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.picks p{grid-column:1/-1;font-family:var(--round);font-size:15px;margin:0}
.picks label{font-size:13px}
.picks select{display:block;width:100%;font:inherit;font-size:15px;padding:8px 10px;border:2px solid var(--line);border-radius:10px;background:var(--white);color:var(--cocoa);margin-top:2px}
.picks select.bad{border-color:var(--red)}
.status-line{font-size:14px;margin:8px 0 0;min-height:1em}
.status-line.low{color:var(--red)}
.bulk{padding:8px 0 24px}
.bulk .wrap{background:var(--cocoa);color:var(--concrete);border-radius:24px;padding:28px 32px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}
.bulk h2{font-size:26px;color:var(--sun);margin-bottom:6px}
.bulk p{margin:0;max-width:34em}
.bulk .cta{display:flex;flex-wrap:wrap;gap:10px}
.bulk .btn{background:var(--sun);color:var(--cocoa)}
.bulk .btn.line{background:transparent;color:var(--concrete);box-shadow:inset 0 0 0 2px var(--concrete)}
.pinfo{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0}
.pinfo dt{font-family:var(--round);opacity:.65;white-space:nowrap}
.pinfo dd{margin:0}
.addons{margin:12px 0 0}
.addon-pick{display:flex;gap:8px;align-items:center;font-size:15px;cursor:pointer}
.addon-pick input{width:18px;height:18px;accent-color:var(--cocoa)}
.soldout{font-family:var(--round);color:var(--red)}
.low{color:var(--red);font-size:14px;margin:8px 0 0}
@media (max-width:900px){.products .wrap{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.products .wrap{grid-template-columns:1fr}.product figure{aspect-ratio:4/3}.bulk .wrap{padding:24px 20px}}

/* 運費、退換貨 */
.ship-info{padding:32px 0 80px}
.ship-info .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.info-card{background:var(--white);border-radius:20px;padding:24px 26px;font-size:15px}
.info-card h2{font-size:22px;margin-bottom:12px}
.fees{list-style:none;margin:0 0 10px;padding:0}
.fees li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line)}
.fees b{font-weight:400;font-family:var(--round)}
.free{color:var(--olive);font-family:var(--round)}
@media (max-width:820px){.ship-info .wrap{grid-template-columns:1fr}}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--cocoa);color:var(--white);padding:12px 20px;border-radius:99px;font-family:var(--round);box-shadow:0 10px 30px -10px rgba(0,0,0,.5);z-index:20;display:flex;gap:14px;align-items:center;white-space:nowrap}
.toast a{color:var(--sun)}

/* 結帳 */
.checkout{padding:40px 0 80px}
.checkout h1{font-size:clamp(30px,4.4vw,40px);margin-bottom:24px}
.empty{background:var(--white);border-radius:20px;padding:40px;text-align:center}
.co-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:32px;align-items:start}
.co-cart{background:var(--white);border-radius:24px;padding:24px 26px;position:sticky;top:80px}
.lines{list-style:none;margin:0;padding:0}
.lines li{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line)}
.lines.static li{grid-template-columns:1fr auto}
.lines img{width:64px;height:64px;border-radius:14px;object-fit:cover}
.lines span{font-family:var(--round);font-size:18px;line-height:1.4}
.lines small{display:block;font-family:var(--body);font-size:13px;opacity:.65}
.lines .right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.lines .qty button{width:30px;height:32px;font-size:17px}
.lines .qty input{width:32px;font-size:16px}
.lines .remove{font:inherit;font-size:13px;background:none;border:0;color:var(--cocoa);opacity:.65;text-decoration:underline;cursor:pointer;padding:0}
.sum{display:grid;grid-template-columns:1fr auto;margin:16px 0 0;gap:4px 0}
.sum dt{padding-right:12px}
.sum dd{margin:0;text-align:right;font-family:var(--round)}
.sum .total{font-family:var(--round);font-size:22px;padding-top:8px;border-top:2px solid var(--cocoa);margin-top:6px}
.free-hint{font-size:14px;color:var(--olive);margin:10px 0 0}
.co-form fieldset{border:0;background:var(--white);border-radius:24px;padding:22px 26px 10px;margin:0 0 18px}
.co-form legend{float:left;width:100%;font-size:22px;margin-bottom:12px}
.co-form label{display:block;font-size:15px;margin-bottom:14px;clear:both}
.co-form label small{display:block;font-size:13px;opacity:.65}
.co-form input:not([type=radio]):not([type=checkbox]),.co-form textarea{display:block;width:100%;font:inherit;font-size:17px;padding:10px 14px;margin-top:4px;border:2px solid var(--line);border-radius:12px;background:var(--white);color:var(--cocoa)}
.co-form input:focus,.co-form textarea:focus{border-color:var(--cocoa);outline:0}
.co-form .bad{border-color:var(--red)!important}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;clear:both}
.choices.invoice{grid-template-columns:1fr 1fr}
.choice{margin:0!important;position:relative}
.choice input{position:absolute;opacity:0}
.choice span{display:block;border:2px solid var(--line);border-radius:14px;padding:10px 12px;font-family:var(--round);font-size:16px;line-height:1.35;cursor:pointer;height:100%}
.choice small{display:block;font-family:var(--body);font-size:13px;opacity:.7}
.choice input:checked+span{border-color:var(--cocoa);background:#FFF8D6}
.choice input:focus-visible+span{outline:3px solid var(--cocoa);outline-offset:2px}
.cvs-box{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--concrete);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.cvs-box .store{margin:0;font-size:15px}
.no-invoice{background:var(--white);border-radius:24px;padding:16px 26px;margin:0 0 18px;font-size:15px}
.agree a{text-decoration:underline}
.lookup{display:grid;gap:14px;max-width:420px}
.lookup label{display:block;font-size:15px}
.lookup input{display:block;width:100%;font:inherit;font-size:17px;padding:10px 14px;margin-top:4px;border:2px solid var(--line);border-radius:12px;background:var(--white);color:var(--cocoa)}
.lookup input:focus{border-color:var(--cocoa);outline:0}
.lookup .err{margin:0}
.agree{display:flex!important;gap:10px;align-items:flex-start;font-size:14px!important;line-height:1.6}
.agree input{margin-top:5px;width:18px;height:18px;flex:none;accent-color:var(--cocoa)}
.err{background:#FDE7E5;color:#9E2A21;border-radius:12px;padding:10px 14px;font-size:15px}
.pay{width:100%;font-size:20px;padding:15px}
.secure{font-size:13px;opacity:.65;text-align:center;margin-top:10px}
@media (max-width:860px){.co-grid{grid-template-columns:1fr}.co-cart{position:static}}
@media (max-width:480px){.choices{grid-template-columns:1fr}.choices.invoice{grid-template-columns:1fr 1fr}.co-form fieldset{padding:20px 18px 6px}}

/* 訂單頁 */
.order-view{padding:48px 0 80px}
.order-view h1{font-size:clamp(22px,4vw,34px);margin:8px 0 16px;overflow-wrap:anywhere}
.order-view .info-card{margin:20px 0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0 0 28px}
.kv dt{font-family:var(--round);opacity:.65}
.kv dd{margin:0}
.badge{display:inline-block;font-family:var(--round);font-size:14px;padding:3px 12px;border-radius:99px;background:var(--white);margin:0}
.s-paid,.s-completed{background:#DDEFD8}.s-shipped{background:#D8E6F5}.s-pending{background:#FFF1BF}.s-cancelled,.s-failed{background:#F5DCDA}

footer{background:var(--cocoa);color:var(--concrete);padding:32px 0;font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center}
footer img{height:30px;width:auto}
footer .legal p{margin:0;opacity:.85}

/* 隱私權政策 */
.policy{padding:48px 0 80px}
.policy h1{font-size:clamp(28px,4.4vw,38px);margin-bottom:4px}
.policy .updated{font-size:14px;opacity:.65}
.policy h2{font-size:22px;margin:32px 0 10px}
.policy ul{padding-left:1.3em;margin:0 0 1em}
.policy li{margin-bottom:6px}
.policy b{font-weight:500}
footer .legal a{color:inherit}
