/* Gift shop. Rides on style.css + home.css (day/after-hours variables, .btn, .stamp). */
.shop-page main{padding-bottom:3rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.shop-hero{padding-block:2.4rem 1rem;position:relative}
.shop-hero h1{font-size:clamp(2.4rem,9vw,4.6rem);text-transform:uppercase;margin:.1em 0 .2em}
.shop-hero .lede,.pdp-buy .lede{font-family:var(--type);font-size:1.15rem;max-width:36rem}
.shop-lights{position:absolute;right:1.1rem;top:1.2rem;font-family:var(--type);background:transparent;border:2px solid var(--ink);color:var(--ink);border-radius:2rem;padding:.35rem .9rem;cursor:pointer;min-height:2.5rem}
.shop-lights[aria-pressed="true"]::after{content:" · after hours"}
.soon{margin:1.4rem 0;padding:1rem 1.1rem;border:2px dashed var(--ink);max-width:36rem;background:rgba(127,127,127,.07)}
.soon p{margin:.6rem 0 0}
.notify{margin-top:.8rem}
.notify label{display:block;font-family:var(--type);font-size:.95rem;margin-bottom:.4rem}
.notify-row{display:flex;gap:.5rem;flex-wrap:wrap}
.notify input[type=email]{flex:1 1 14rem;min-width:0;padding:.7rem .8rem;font-size:1rem;border:2px solid var(--ink);background:var(--bg);color:var(--ink);border-radius:.2rem}
.notify .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.notify-msg{min-height:1.4em;font-family:var(--type);font-size:.9rem;margin:.4rem 0 0}
.pgrid{list-style:none;margin:1.5rem 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1.2rem}
.pcard a{display:block;text-decoration:none;color:var(--ink);border:3px solid var(--ink);background:var(--bg-2);box-shadow:4px 4px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.pcard a:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.pimg{display:block;aspect-ratio:1;overflow:hidden;background:#f6f1e6}
.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.pname{display:block;font-family:var(--tag);font-size:1.25rem;padding:.7rem .8rem 0;text-transform:uppercase}
.pprice{display:block;font-family:var(--type);padding:.1rem .8rem .8rem;color:var(--blood)}
.ship-note{max-width:40rem}
.crumbs{font-family:var(--type);font-size:.9rem;padding-top:1.2rem}
.crumbs a{color:var(--blood)}
.pdp{display:grid;gap:1.6rem;padding-block:1rem 1.5rem}
@media (min-width:52rem){.pdp{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.4rem;align-items:start}.pdp-media{position:sticky;top:5rem}}
.pdp-main{border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:#f6f1e6;aspect-ratio:1}
.pdp-main img{width:100%;height:100%;object-fit:cover;display:block}
.mock-note{font-size:.8rem;margin-top:.8rem}
.pdp-buy h1{font-size:clamp(2.2rem,7vw,3.4rem);text-transform:uppercase;margin:.1em 0 .2em}
.pdp-price{font-family:var(--tag);font-size:1.8rem;margin:.6rem 0}
.pdp-price span{font-family:var(--type);font-size:.95rem;color:var(--muted)}
.opt{border:0;padding:0;margin:1.1rem 0}
.opt legend{font-family:var(--type);letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;padding:0;margin-bottom:.5rem}
.dthumbs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.dthumb{display:block;cursor:pointer;position:relative}
.dthumb input,.sz input,.sw input{position:absolute;opacity:0;width:1px;height:1px}
.dthumb img{width:100%;aspect-ratio:1;object-fit:cover;display:block;border:3px solid transparent;outline:2px solid var(--line);background:#f6f1e6}
.dthumb span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dthumb input:checked+img{border-color:var(--blood);outline-color:var(--ink)}
.dthumb input:focus-visible+img{outline:3px solid var(--museum);outline-offset:2px}
.sizes,.swatches{display:flex;flex-wrap:wrap;gap:.5rem}
.sz,.sw{position:relative;cursor:pointer}
.sz span,.sw span{display:inline-block;min-width:3rem;text-align:center;padding:.55rem .9rem;border:2px solid var(--ink);font-family:var(--type);background:var(--bg);color:var(--ink)}
.sz input:checked+span,.sw input:checked+span{background:var(--ink);color:var(--bg)}
.sz input:focus-visible+span,.sw input:focus-visible+span{outline:3px solid var(--museum);outline-offset:2px}
.buy-row{display:flex;gap:1rem;align-items:center;margin-top:1.4rem;flex-wrap:wrap}
.buy-row .btn{min-width:11rem}
.added{font-family:var(--type);color:var(--museum)}
.soon-inline{font-family:var(--type);margin:1rem 0 .4rem}
.soon-inline .stamp{margin-right:.5rem}
.pdp-copy{padding-block:1rem}
.pdp-copy .soon{margin-block:1.6rem}
.cart-fab{position:fixed;right:1rem;bottom:1rem;z-index:40;font-family:var(--tag);text-transform:uppercase;background:var(--ink);color:var(--bg);border:0;border-radius:2rem;padding:.7rem 1.2rem;cursor:pointer;box-shadow:3px 3px 0 var(--blood);min-height:2.75rem}
.cart-fab b{display:inline-block;min-width:1.4em;text-align:center;background:var(--blood);color:#fff;border-radius:1em;padding:0 .35em;margin-left:.3rem}
.cart-scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90}
.cart{position:fixed;top:0;right:0;bottom:0;width:min(26rem,100vw);z-index:100;background:var(--bg);color:var(--ink);border-left:3px solid var(--ink);display:flex;flex-direction:column;box-shadow:-8px 0 0 rgba(0,0,0,.25);overflow:auto}
.cart[hidden],.cart-scrim[hidden]{display:none}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.1rem;border-bottom:2px solid var(--ink)}
.cart-head h2{margin:0;font-size:1.6rem}
.cart-x{font-size:2rem;line-height:1;background:none;border:0;color:var(--ink);cursor:pointer;min-width:2.75rem;min-height:2.75rem}
.cart-list{list-style:none;margin:0;padding:0 1.1rem}
.cart-empty{padding:1rem 1.1rem;font-family:var(--type);margin:0}
.cart-line{display:grid;grid-template-columns:4rem 1fr auto;gap:.8rem;align-items:start;padding:.9rem 0;border-bottom:1px dashed var(--line)}
.cart-line img{width:4rem;height:4rem;object-fit:cover;border:2px solid var(--ink);background:#f6f1e6}
.cart-line .meta{display:block;font-size:.8rem}
.cart-line .lp{font-family:var(--tag)}
.qty{display:flex;gap:.3rem;align-items:center;margin-top:.4rem}
.qty button{min-width:2.2rem;min-height:2.2rem;border:2px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-size:1.1rem}
.qty .rm{margin-left:.4rem;border:0;text-decoration:underline;font-size:.8rem}
.qty output{min-width:1.6rem;text-align:center;font-family:var(--type)}
.cart-foot{padding:1rem 1.1rem 2rem;margin-top:auto;border-top:2px solid var(--ink)}
.cart-total{display:flex;justify-content:space-between;font-family:var(--tag);font-size:1.3rem;margin:0 0 .5rem}
.cart-foot .btn[disabled]{opacity:.55;cursor:not-allowed;width:100%}
body.cart-on{overflow:hidden}
@media (prefers-reduced-motion:reduce){.pcard a,.pcard a:hover{transition:none}}
@media (max-width:46rem){.shop-lights{position:static;margin-top:.6rem}.shop-hero{padding-bottom:.4rem}}
.soon-inline .stamp{display:block;width:max-content;margin:0 0 .7rem .3rem}
