/* ===========================================================
   ShopForMe — the shop (mobile-first marketplace layout)
   Card and grid basics live in site.css; this file adds the
   storefront chrome and turns the picks rail into a real grid.
   =========================================================== */

/* ---------------- search bar ---------------- */
.shopbar{background:var(--sand);border-bottom:1px solid var(--line);padding:12px 0}
.searchform{display:flex;min-width:0}
.searchform input{
  flex:1;min-width:0;height:48px;padding:0 15px;background:var(--paper);
  border:1px solid var(--line-2);border-right:0;
  border-radius:var(--r-sm) 0 0 var(--r-sm);font-size:1rem;
}
.searchform input:focus{outline:none;border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.searchform button{
  height:48px;padding:0 16px;border:0;border-radius:0 var(--r-sm) var(--r-sm) 0;
  background:var(--orange);color:#fff;font-weight:700;cursor:pointer;flex:none;
  display:flex;align-items:center;gap:7px;
}
.searchform button:hover{background:var(--orange-ink)}
.searchform button svg{width:19px;height:19px}
.searchform button span{display:none}
@media (min-width:560px){ .searchform button{padding:0 22px} .searchform button span{display:inline} }

/* ---------------- category rail ---------------- */
.rail{background:var(--paper);border-bottom:1px solid var(--line)}
.rail-in{
  display:flex;gap:0;overflow-x:auto;scrollbar-width:none;
  margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);
}
.rail-in::-webkit-scrollbar{display:none}
.rail a{
  flex:none;padding:14px 14px;font-size:.92rem;color:var(--ink-2);white-space:nowrap;
  border-bottom:3px solid transparent;
}
.rail a:first-child{padding-left:0}
.rail a:hover{color:var(--ink)}
.rail a.on{color:var(--ink);font-weight:700;border-bottom-color:var(--orange)}

/* ---------------- layout ---------------- */
.shop-main{background:var(--paper);padding:14px 0 80px}
.crumbs{font-size:.85rem;color:var(--ink-3);padding:2px 0 12px}
.crumbs a:hover{color:var(--orange)}
.crumbs span{margin:0 7px;color:var(--ink-4)}

.note-strip{
  background:var(--sand);border:1px solid var(--line);border-radius:var(--r);
  padding:14px 16px;margin-bottom:16px;
}
.note-strip p{font-size:.92rem;color:var(--ink-2);max-width:78ch;line-height:1.5}
.note-strip strong{color:var(--ink)}
.note-strip a{color:var(--orange);font-weight:700}

.shop-grid{display:block}
@media (min-width:960px){
  .shop-grid{display:grid;grid-template-columns:224px minmax(0,1fr);gap:24px;align-items:start}
}

/* ---------------- filter panels ---------------- */
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.panel + .panel{margin-top:14px}
.panel h3{
  font-weight:700;font-size:.9rem;padding:13px 15px;border-bottom:1px solid var(--line);
}
.panel .pbody{padding:13px 15px}
.side{display:none}
.side.open{display:block;margin-bottom:18px}
@media (min-width:960px){
  .side{display:block;position:sticky;top:92px}
  .side.open{margin-bottom:0}
}
.side ul li a{display:flex;justify-content:space-between;gap:8px;padding:8px 0;font-size:.92rem;color:var(--ink-2)}
.side ul li a:hover{color:var(--orange)}
.side ul li a.on{color:var(--orange);font-weight:700}
.side ul li .n{color:var(--ink-4);font-size:.83rem}
.pricerow{display:flex;gap:8px;align-items:center}
.pricerow input{
  width:100%;min-height:44px;padding:10px 11px;border:1px solid var(--line-2);
  border-radius:var(--r-sm);font-size:.92rem;
}
.check{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:.92rem;color:var(--ink-2);cursor:pointer}
.check{min-height:44px}
.check input{width:20px;height:20px;accent-color:var(--orange)}

/* ---------------- toolbar ---------------- */
.toolbar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;
  padding-bottom:12px;border-bottom:1px solid var(--line);
}
.toolbar .count{font-size:.9rem;color:var(--ink-3)}
.toolbar .count strong{color:var(--ink)}
.toolbar .spacer{margin-left:auto}
.toolbar select,.filter-btn{
  min-height:42px;padding:8px 12px;font-size:.9rem;border:1px solid var(--line-2);
  border-radius:var(--r-sm);background-color:var(--paper);cursor:pointer;
}
.toolbar select{padding-right:36px}
.filter-btn:hover{border-color:var(--ink)}
.filter-btn[aria-expanded=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (min-width:960px){ .filter-btn{display:none} }

/* ---------------- the shop grid is a grid, not the homepage rail ---------------- */
#grid.pgrid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  overflow:visible;margin-inline:0;padding:0;
}
#grid.pgrid > .card{width:auto}
@media (min-width:620px){ #grid.pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px} }
@media (min-width:1100px){ #grid.pgrid{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* ---------------- empty state & pagination ---------------- */
.empty{
  grid-column:1/-1;background:var(--sand);border:1px solid var(--line);
  border-radius:var(--r);padding:40px 22px;text-align:center;
}
.empty .h3{margin-bottom:6px}
.pager{display:flex;gap:6px;justify-content:center;margin-top:24px;flex-wrap:wrap}
.pager button{
  min-width:42px;min-height:42px;padding:0 12px;background:var(--paper);
  border:1px solid var(--line-2);border-radius:var(--r-sm);cursor:pointer;font-size:.92rem;
}
.pager button:hover{border-color:var(--ink)}
.pager button.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}

/* ---------------- request tray ---------------- */
.tray{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:90;
  background:var(--ink);color:#fff;border-radius:var(--r);
  display:flex;align-items:center;gap:12px;padding:11px 13px;
  transform:translateY(160%);opacity:0;visibility:hidden;pointer-events:none;
  transition:transform .2s cubic-bezier(.2,.8,.3,1), opacity .18s ease, visibility 0s linear .2s;
  box-shadow:0 12px 30px -12px rgba(0,0,0,.5);
}
.tray.show{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.tray .n{
  background:var(--orange);color:#fff;font-weight:700;
  min-width:26px;height:26px;display:grid;place-items:center;border-radius:100px;padding:0 8px;font-size:.85rem;flex:none;
}
.tray p{font-size:.9rem;flex:1;min-width:0}
.tray .clear{background:none;border:0;color:#8f96a3;font-size:.85rem;cursor:pointer;
             text-decoration:underline;flex:none;padding:10px 6px;min-height:44px}
.tray .clear:hover{color:#fff}
.tray .btn{flex:none}
@media (min-width:620px){
  .tray{left:auto;right:20px;bottom:20px;max-width:440px;padding:12px 16px}
  .tray p{flex:none}
}

/* the toast must clear the request tray when both are on screen */
.tray.show ~ .toast{bottom:86px}
@media (min-width:620px){ .tray.show ~ .toast{bottom:22px} }

/* ---------------- product detail ---------------- */
.pdp{display:grid;gap:20px;margin-top:6px}
.pdp .hero-img{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  aspect-ratio:1;max-height:520px;overflow:hidden;padding:14px;
}
.pdp .hero-img img{width:100%;height:100%;object-fit:contain}
.pdp .hero-img.cover{padding:0}
.pdp .hero-img.cover img{object-fit:cover}
.pdp .price-lg{font-weight:900;font-size:1.9rem;letter-spacing:-.03em;line-height:1}
.pdp .price-lg .was{font-size:1rem;font-weight:400}
.pdp .spec{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.pdp .spec dl{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:.92rem}
.pdp .spec dt{font-weight:500;color:var(--ink-3)}
.pdp .actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.pdp .actions .btn{width:100%}
@media (min-width:560px){
  .pdp .actions{flex-direction:row}
  .pdp .actions .btn{width:auto;min-width:190px}
}
@media (min-width:860px){
  .pdp{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:start}
}
.sec-title{font-weight:700;letter-spacing:-.02em;font-size:1.2rem;margin:34px 0 14px}
