/* Storefront enhancements: chips, filter pills, quick view, mobile sheet. */
.gnp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* --- toolbar ------------------------------------------------------- */
.gnp-tools{margin:0 0 16px}
.gnp-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.gnp-chip{font:13px/1 inherit;font-family:inherit;padding:9px 13px;border-radius:999px;cursor:pointer;
  background:#fff;border:1px solid var(--line);color:var(--ink);display:inline-flex;align-items:center;gap:7px;
  transition:background .15s,border-color .15s,color .15s}
.gnp-chip span{font-size:11px;color:var(--mut)}
.gnp-chip:hover{border-color:var(--navy)}
.gnp-chip.on{background:var(--navy);border-color:var(--navy);color:#fff4e2}
.gnp-chip.on span{color:#e8c79a}
.gnp-pills{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.gnp-pills[hidden]{display:none}
.gnp-pill{font:12px/1 inherit;font-family:inherit;padding:7px 10px;border-radius:7px;cursor:pointer;
  background:#f6ecdd;border:1px solid #e6d3b8;color:var(--ink);display:inline-flex;align-items:center;gap:8px}
.gnp-pill span{color:var(--mut);font-size:14px}
.gnp-pill:hover{border-color:var(--navy)}
.gnp-pill-clear{background:none;border-style:dashed;color:var(--mut)}
.gnp-share{margin-left:auto;font:12.5px/1 inherit;font-family:inherit;background:none;border:0;cursor:pointer;
  color:var(--navy);text-decoration:underline;text-underline-offset:3px;padding:8px 0}
.gnp-filters-btn{display:none}
.gnp-filters-done{display:none}

/* --- tiles --------------------------------------------------------- */
.card{cursor:pointer}
.card:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.ph{background:linear-gradient(100deg,#f7efe3 30%,#fdf8f0 50%,#f7efe3 70%) #f7efe3;background-size:300% 100%;
  animation:gnpShimmer 1.4s linear infinite}
.ph.ready{animation:none;background:#fff}
.ph img{opacity:0;transition:opacity .25s ease}
.ph.ready img{opacity:1}
@keyframes gnpShimmer{from{background-position:100% 0}to{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.ph{animation:none}.ph img{transition:none;opacity:1}}

/* --- quick view ---------------------------------------------------- */
.gnp-qv{position:fixed;inset:0;z-index:90;background:rgba(36,10,20,.62);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:16px}
.gnp-qv[hidden]{display:none}
.gnp-qv-box{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;width:min(860px,100%);
  max-height:calc(100vh - 32px);overflow:auto;background:#fffaf2;border:1px solid var(--line);
  border-radius:18px;box-shadow:0 30px 80px rgba(36,10,20,.45)}
.gnp-qv-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:0;
  background:#f3e6d6;font-size:20px;line-height:1;cursor:pointer;color:var(--ink);z-index:1}
.gnp-qv-img{background:#fff;display:flex;align-items:center;justify-content:center;padding:18px;
  border-right:1px solid var(--line);min-height:280px}
.gnp-qv-img img{max-width:100%;max-height:420px;object-fit:contain}
.gnp-qv-info{padding:26px 26px 22px;display:flex;flex-direction:column;gap:10px}
.gnp-qv-brand{margin:0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.gnp-qv-info h2{margin:0;font:400 25px/1.25 Georgia,serif;letter-spacing:-.02em}
.gnp-qv-desc{margin:0;font-size:13.5px;color:var(--mut);line-height:1.6}
.gnp-qv-price{margin:4px 0 0}
.gnp-qv-price b{font-size:26px;color:var(--navy)}
.gnp-qv-price span{font-size:12px;color:var(--mut);margin-left:6px}
.gnp-qv-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:6px 0 0;font-size:13px}
.gnp-qv-meta dt{color:var(--mut)}
.gnp-qv-meta dd{margin:0}
.gnp-qv-actions{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.gnp-qty{display:flex;align-items:center;border:1px solid #dcc9b3;border-radius:9px;background:#fff;overflow:hidden}
.gnp-qty button{width:38px;height:42px;border:0;background:none;font-size:18px;cursor:pointer;color:var(--ink)}
.gnp-qty button:hover{background:#f6ecdd}
.gnp-qty input{width:64px;height:42px;border:0;border-left:1px solid #eee2d2;border-right:1px solid #eee2d2;
  text-align:center;font:15px inherit;font-family:inherit}
.gnp-qv-add{flex:1;min-width:170px;height:42px;border:1px solid var(--navy);border-radius:9px;cursor:pointer;
  background:var(--navy);color:#fff4e2;font:700 14px/1 inherit;font-family:inherit}
.gnp-qv-add.on{background:#fff;color:var(--navy)}
.gnp-qv-note{margin:2px 0 0;font-size:11.5px;color:var(--mut);line-height:1.6}

/* --- phones: filters as a sheet ------------------------------------ */
@media(max-width:820px){
  .gnp-filters-btn{display:inline-flex;align-items:center;gap:8px;font:13px/1 inherit;font-family:inherit;
    padding:10px 14px;border-radius:999px;background:var(--navy);color:#fff4e2;border:0;cursor:pointer}
  .gnp-filters-btn span:not(:empty){background:#f4cd8c;color:#4d1729;border-radius:999px;
    min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
  .wrap aside{position:fixed;left:0;right:0;top:auto;bottom:0;z-index:70;max-height:82vh;overflow:auto;
    border-radius:18px 18px 0 0;transform:translateY(102%);transition:transform .25s ease;
    box-shadow:0 -12px 40px rgba(36,10,20,.3);padding-bottom:78px}
  body.gnp-filters-open .wrap aside{transform:none}
  body.gnp-filters-open:after{content:'';position:fixed;inset:0;z-index:69;background:rgba(36,10,20,.45)}
  .gnp-filters-done{display:block;position:sticky;bottom:0;width:100%;margin-top:16px;padding:13px;
    border:0;border-radius:10px;background:var(--navy);color:#fff4e2;font:700 14px/1 inherit;font-family:inherit;cursor:pointer}
  .gnp-share{margin-left:0}
  .gnp-qv-box{grid-template-columns:1fr}
  .gnp-qv-img{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding:14px}
  .gnp-qv-img img{max-height:38vh}
  .gnp-qv-info{padding:20px}
  .gnp-qv-info h2{font-size:21px}
}
