/* Cart button, slide-in cart panel and cart contents (.cv = any cart view). Loaded by the home page and store pages. */
:root{--cv-ink:#141412;--cv-soft:#5b574c;--cv-pine:#3F4021;--cv-line:#d9d3c3;--cv-white:#fffdf7;--cv-paper:#F2F0EA;--cv-card:#E8E3D6;--cv-good:#4c6a1f;--cv-bad:#b3261e}
/* cart button (home nav + store nav) */
.cartbtn{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:999px;border:0;background:var(--cv-paper);color:var(--cv-ink);cursor:pointer}
.cartbtn:focus-visible{outline:3px solid #c9d48f;outline-offset:2px}
.cartbtn svg{width:20px;height:20px}
.cartbtn .n{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--cv-pine);color:#fff;font:600 12px/20px "Satoshi",system-ui,sans-serif;text-align:center}
.cartbtn .n[hidden]{display:none}

/* cart panel */
.cpanel{position:fixed;inset:0;z-index:90;display:flex;justify-content:flex-end;visibility:hidden;font-family:"Satoshi",system-ui,sans-serif;color:var(--cv-ink)}
.cpanel.open{visibility:visible}
.cpanel .scrim{position:absolute;inset:0;background:rgba(20,20,18,.45);opacity:0;transition:opacity .25s}
.cpanel.open .scrim{opacity:1}
.cpanel .sheet{position:relative;width:min(440px,100%);height:100%;background:var(--cv-white);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:-20px 0 60px rgba(20,20,18,.15)}
.cpanel.open .sheet{transform:none}
.cpanel header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px;border-bottom:1px solid var(--cv-line)}
.cpanel header h2{font-size:24px;font-weight:500;margin:0}
.cpanel .x{width:40px;height:40px;border-radius:99px;border:0;background:var(--cv-paper);cursor:pointer;font-size:20px;color:var(--cv-ink)}
.cpanel .body{flex:1;overflow:auto;padding:16px 20px}
.cpanel footer{padding:16px 20px calc(20px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--cv-line);display:grid;gap:10px}
@media (prefers-reduced-motion:reduce){.cpanel .sheet,.cpanel .scrim{transition:none}}

/* cart contents (panel + /cart page share this markup) */
.cv .line{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;align-items:center;padding:6px 0 16px}
.cv .line img{width:84px;height:84px;border-radius:16px;object-fit:cover;background:var(--cv-card)}
.cv .line h3{font-size:18px;font-weight:500;margin:0 0 2px}
.cv .line .meta{font-size:14px;color:var(--cv-soft)}
.cv .line .ctl{display:flex;align-items:center;gap:12px;margin-top:8px}
.cv .qty{display:inline-flex;align-items:center;border-radius:99px;box-shadow:inset 0 0 0 1.5px var(--cv-line)}
.cv .qty button{width:38px;height:38px;border:0;background:none;font:500 20px "Satoshi",system-ui,sans-serif;color:var(--cv-ink);cursor:pointer;border-radius:99px}
.cv .qty button:disabled{opacity:.3;cursor:default}
.cv .qty output{min-width:26px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
.cv .rm{border:0;background:none;color:var(--cv-soft);font:14px "Satoshi",system-ui,sans-serif;text-decoration:underline;cursor:pointer;padding:4px}
.cv .code{display:grid;gap:6px;margin-top:6px}
.cv .code label{font-size:14px;color:var(--cv-soft)}
.cv .code .row{display:flex;gap:8px}
.cv .code input{flex:1;min-width:0;height:46px;border-radius:12px;border:1.5px solid var(--cv-line);background:var(--cv-white);padding:0 14px;font:16px "Satoshi",system-ui,sans-serif;text-transform:uppercase;color:var(--cv-ink)}
.cv .code input:focus-visible{outline:0;border-color:var(--cv-pine)}
.cv .code .apply{height:46px;padding:0 18px;border-radius:12px;border:1.5px solid var(--cv-pine);background:var(--cv-white);color:var(--cv-pine);font:500 15px "Satoshi",system-ui,sans-serif;cursor:pointer}
.cv .code .msg{font-size:14px}
.cv .code .msg.ok{color:var(--cv-good);font-weight:600}
.cv .code .msg.bad{color:var(--cv-bad)}
.cv .sum{display:grid;gap:6px;font-size:16px;font-variant-numeric:tabular-nums}
.cv .sum div{display:flex;justify-content:space-between;gap:12px}
.cv .sum .free{color:var(--cv-good);font-weight:600}
.cv .sum .tot{font-size:20px;font-weight:600;padding-top:8px;border-top:1px solid var(--cv-line);margin-top:4px}
.cv .sum s{color:var(--cv-soft);font-weight:400;margin-right:6px}
.cv .note{font-size:14px;color:var(--cv-soft);text-align:center}
.cv .empty{text-align:center;padding:40px 0;display:grid;gap:16px;justify-items:center}
.cv .empty p{margin:0;color:var(--cv-soft)}

.cv .btn.block{width:100%}
.cpanel .btn{display:inline-flex;align-items:center;justify-content:center;background:var(--cv-pine);color:#fff;text-decoration:none;font:500 17px "Satoshi",system-ui,sans-serif;border-radius:999px;padding:14px 30px;border:0;cursor:pointer}
.cpanel *{box-sizing:border-box}
[hidden]{display:none!important}
