/* Shop, pop-up, product pages, cart and menu. Uses the shared theme variables. */
.shero{min-height:min(60vh,560px)}
.shero--small{min-height:min(40vh,380px)}
.shero .phero-inner h1 span{display:inline}

/* ---------- product grid ---------- */
.pgrid{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.pgrid[hidden],.pcard[hidden]{display:none}
.pcard a{display:block;color:rgb(var(--fg-rgb));text-decoration:none;background:var(--card);border:1px solid rgba(var(--fg-rgb),.14);transition:transform .3s,border-color .3s,box-shadow .3s;height:100%}
.pcard a:hover{transform:translateY(-6px);border-color:var(--fire);box-shadow:0 24px 50px rgba(232,56,13,.2)}
.pimg{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:#000}
.pimg img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.pcard a:hover .pimg img{transform:scale(1.06)}
.pbadge{position:absolute;left:12px;top:12px;padding:.35em .8em;background:#000;color:#fff;font:700 11px var(--font);letter-spacing:.14em;text-transform:uppercase}
.pcard.is-sold .pimg img{filter:grayscale(.85) brightness(.7)}
.pinfo{display:block;padding:16px 18px 20px}
.pinfo b{display:block;font:700 1.05rem/1.25 var(--display);text-transform:uppercase;letter-spacing:.03em}
.pprice{display:block;margin-top:8px;color:var(--acc-text);font-weight:700}

/* ---------- pop-up info ---------- */
.popinfo{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.popinfo h2{margin:6px 0 14px;font:700 clamp(2rem,4.4vw,3.4rem)/1.05 var(--display);text-transform:uppercase}
.popinfo h2 small{display:block;margin-top:6px;font-size:.5em;color:var(--acc-text)}
.popinfo p{margin:0 0 14px}
.popinfo .addr a{color:inherit;font-weight:700;text-decoration:underline}
.popnote{padding:22px 24px;border:2px solid var(--fire);background:rgba(232,56,13,.1);font-size:1.02rem;line-height:1.6}
.popnote a{color:var(--acc-text);font-weight:700}
@media (max-width:820px){.popinfo{grid-template-columns:1fr}}

/* ---------- product page ---------- */
.crumbs{margin:0 0 22px;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(var(--fg-rgb),.6)}
.crumbs a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.crumbs span{margin:0 8px}
.pdp{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(24px,4vw,64px);align-items:start}
.gmain{aspect-ratio:1/1;background:#000;overflow:hidden;border:1px solid rgba(var(--fg-rgb),.14)}
.gmain img{width:100%;height:100%;object-fit:cover}
.thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.thumb{width:76px;height:76px;padding:0;border:2px solid rgba(var(--fg-rgb),.25);background:#000;cursor:pointer;overflow:hidden;opacity:.75;transition:.2s}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb:hover,.thumb.is-on{opacity:1;border-color:var(--fire)}
.pinfo2 h1{margin:0 0 10px;font:700 clamp(1.9rem,3.8vw,3rem)/1.05 var(--display);text-transform:uppercase;letter-spacing:.01em}
.pdp-price{margin:0 0 18px;font:700 1.7rem var(--font);color:var(--acc-text)}
.pdesc p{margin:0 0 12px;line-height:1.65;color:rgba(var(--fg-rgb),.85)}
.optset{margin:20px 0 0}
.optset .q{margin:0 0 10px;font:700 12px var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--acc-text)}
.optset .q i{font-style:normal;color:rgba(var(--fg-rgb),.85);letter-spacing:.04em;text-transform:none;font-weight:400}
.seg label.is-out span{text-decoration:line-through;opacity:.5}
.stock{min-height:1.4em;margin:14px 0 0;font-weight:700;font-size:.95rem}
.stock.out{color:#e0564a}
.buy{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:18px}
.qty{display:inline-flex;border:2px solid rgb(var(--fg-rgb))}
.qty button{width:44px;background:none;border:0;color:inherit;font:700 1.3rem var(--font);cursor:pointer}
.qty button:hover{background:rgba(var(--fg-rgb),.1)}
.qty input{width:56px;text-align:center;border:0;border-inline:2px solid rgb(var(--fg-rgb));background:transparent;color:inherit;font:700 1.05rem var(--font);padding:.7em 0;-moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.buy .btn-fire{border:0;cursor:pointer;font-family:var(--font)}
.buy .btn-fire[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.6);transform:none;box-shadow:none}
@media (max-width:820px){.pdp{grid-template-columns:1fr}}

/* ---------- floating cart + toast ---------- */
.cartfab{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;align-items:center;gap:10px;padding:12px 20px;background:linear-gradient(180deg,var(--fire-hot),var(--fire));color:#fff;border:2px solid var(--ember);border-radius:var(--pill);font:800 13px var(--font);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.cartfab[hidden]{display:none}
.cartfab b{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:99px;background:#fff;color:#000;font-size:12px}
.toast{position:fixed;left:50%;bottom:24px;z-index:95;transform:translate(-50%,30px);opacity:0;pointer-events:none;padding:14px 22px;background:#111;color:#fff;border:2px solid var(--ember);font-weight:700;box-shadow:0 14px 40px rgba(0,0,0,.5);transition:.3s}
.toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast a{color:var(--ember);margin-left:12px}
@media (max-width:520px){.cartfab{right:10px;bottom:10px}.toast{width:calc(100% - 32px);text-align:center}}

/* ---------- cart ---------- */
.citems{list-style:none;margin:6px 0 0;padding:0}
.citem{display:grid;grid-template-columns:84px 1fr auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid rgba(var(--fg-rgb),.15)}
.citem:last-child{border:0}
.citem img{width:84px;height:84px;object-fit:cover;background:#000}
.citem h4{margin:0 0 4px;font:700 1.05rem/1.2 var(--display);text-transform:uppercase}
.citem h4 a{color:inherit;text-decoration:none}
.citem .cvar{margin:0 0 8px;font-size:.9rem;color:rgba(var(--fg-rgb),.65)}
.citem .qty{transform:scale(.85);transform-origin:left}
.citem .cline{text-align:right;font-weight:700}
.citem .crem{display:block;margin-top:8px;background:none;border:0;color:var(--acc-text);font:700 12px var(--font);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:underline}
.sum-row{display:flex;justify-content:space-between;gap:12px;margin:0 0 10px;font-size:1rem}
.sum-row.total{margin-top:14px;padding-top:14px;border-top:1px solid rgba(var(--fg-rgb),.2);font:700 1.5rem var(--font)}
.sum-fine{margin:14px 0 0;font-size:.85rem;line-height:1.5;color:rgba(var(--fg-rgb),.62)}
.ship-fields{margin-top:6px}
.ship-fields[hidden]{display:none}
@media (max-width:520px){.citem{grid-template-columns:64px 1fr}.citem img{width:64px;height:64px}.citem .cline{grid-column:1/-1;text-align:left;display:flex;justify-content:space-between}}

/* ---------- menu ---------- */
.mjump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px}
.mjump a{padding:.55em 1.1em;border:2px solid rgba(var(--fg-rgb),.3);border-radius:var(--pill);color:inherit;text-decoration:none;font:700 12px var(--font);letter-spacing:.14em;text-transform:uppercase;transition:.2s}
.mjump a:hover{border-color:var(--fire);background:var(--fire);color:#fff}
.mcols{columns:2 420px;column-gap:clamp(28px,5vw,72px)}
.mblock{break-inside:avoid;margin:0 0 38px;scroll-margin-top:110px}
.mblock h3{margin:0 0 6px;padding-bottom:10px;border-bottom:3px solid var(--fire);font:700 clamp(1.5rem,2.6vw,2rem) var(--display);text-transform:uppercase;letter-spacing:.03em}
.mblock h4{margin:20px 0 6px;font:700 12px var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--acc-text)}
.mnote{margin:10px 0 0;font-size:.92rem;font-style:italic;color:rgba(var(--fg-rgb),.65)}
.mrows{list-style:none;margin:12px 0 0;padding:0}
.mrows li{display:flex;align-items:baseline;gap:8px;padding:7px 0}
.mn b{font-weight:700}
.mn em{display:block;margin-top:2px;font-style:normal;font-size:.9rem;color:rgba(var(--fg-rgb),.65)}
.mdots{flex:1;min-width:16px;border-bottom:2px dotted rgba(var(--fg-rgb),.3);transform:translateY(-4px)}
.mp{font-weight:700;white-space:nowrap}
.mfine{margin-top:6px}
.mcta{display:flex;flex-wrap:wrap;gap:24px;align-items:center;margin-top:30px}
@media (max-width:640px){.mcols{columns:1}}

/* product pages have no hero, so clear the fixed header */
.pdp-sec{padding-top:clamp(130px,15vw,170px)!important}
