/* Shop shelf: reuse the clubhouse's typography, paper and window frames. */
.shop-page .shop-hero { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:24px; max-width:none; padding-block:30px; }
.shop-hero .shop-eyebrow { color:var(--lavender); font-size:1.4rem; line-height:1.35; margin-bottom:12px; }
.shop-hero .shop-heading { font-size:clamp(2.8rem,5.2vw,4.7rem); line-height:1.1; letter-spacing:-.02em; }
.shop-hero .shop-intro { margin-top:14px; font-size:.9rem; color:#d7ccdf; }
.shop-creator-note { display:flex; align-items:center; gap:16px; max-width:340px; padding:14px 16px; position:relative; background:var(--paper); color:var(--ink); border:2px solid #100b18; border-radius:10px; box-shadow:4px 5px 0 #100b18; transform:rotate(1deg); }
.shop-creator-note::before { content:''; position:absolute; top:-10px; left:43%; width:66px; height:20px; background:#c4acebcc; transform:rotate(-5deg); }
.shop-creator-note img { width:65px; height:75px; flex:0 0 65px; object-fit:contain; }
.shop-hero .shop-creator-note .hand { font-size:1.35rem; line-height:1.35; color:var(--ink); margin:0; }
.shop-catalog-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid #fff1d425; padding-bottom:20px; margin-bottom:24px; }
.shop-catalog-controls .collection-nav { display:flex; width:auto; flex:1 1 auto; flex-direction:row; padding:0; gap:8px; }
.shop-catalog-controls .collection-nav a { min-height:44px; padding:7px 15px; border:1px solid #c4aceb77; border-radius:8px; font-size:.8rem; }
.shop-catalog-controls .collection-nav a[aria-current] { order:-1; background:var(--paper); color:var(--ink); border-color:var(--paper); }
.shop-catalog-controls .collection-nav a:hover { background:var(--lavender); color:var(--ink); }
.shop-catalog-cart { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; padding:8px 17px; min-height:44px; background:var(--orange); color:var(--ink); border:2px solid #100b18; border-radius:9px; box-shadow:3px 3px 0 #100b18; font-size:.85rem; }
.shop-catalog-cart:hover { background:var(--paper); }
.shop-catalog-cart [data-cart-count] { background:var(--paper); color:var(--ink); }
.shop-page .product-grid { grid-template-columns:minmax(0,1fr); gap:24px; padding-bottom:44px; }
.shop-page .product-card { border-width:2px; border-radius:12px; box-shadow:4px 5px 0 #100b18; }
.shop-page .product-card:hover { transform:translateY(-3px); box-shadow:5px 8px 0 #100b18; }
.product-card .product-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 16px; background:#e8d6f7; border-bottom:2px solid var(--ink); }
.product-card .product-card-heading h2 { font:700 1rem/1.45 'Quicksand',sans-serif; overflow-wrap:anywhere; }
.product-card-heading > span { flex-shrink:0; }
.product-card:nth-child(2) .product-card-heading { background:#e5ecce; }
.product-card:nth-child(3) .product-card-heading { background:#ffdcc0; }
.product-card .product-image-wrap { aspect-ratio:1.18; flex-shrink:0; background:#f6ebde; border-bottom:1px solid #211c2b25; }
.product-card:nth-child(2) .product-image-wrap { background:#eef0e5; }
.product-card:nth-child(3) .product-image-wrap { background:#f5e8de; }
.product-card .product-image-wrap img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:18px; }
.product-card .product-card-body { flex:1; flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:17px 18px; }
.product-card .product-price { margin:0; font:700 1rem/1.4 'Quicksand',sans-serif; }
.product-card-hint { display:inline-flex; align-items:center; gap:8px; font-size:.75rem; }
.product-card-hint span { display:inline-grid; place-items:center; width:25px; height:25px; border:1px solid #211c2b40; border-radius:50%; }
.product-card > a:focus-visible { outline:3px dashed #713bad; outline-offset:-7px; }
.shop-catalog-cart:focus-visible { outline:3px dashed var(--paper); outline-offset:5px; }
@media (min-width: 720px) {
  .shop-page .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-card .product-card-heading { min-height:77px; padding:13px 18px; }
}
@media (min-width: 900px) {
  .shop-page .shop-hero { grid-template-columns:minmax(0,1fr) 310px; gap:32px; padding-block:44px 38px; }
  .shop-creator-note img { width:82px; height:92px; flex-basis:82px; }
}
@media (min-width: 1050px) { .shop-page .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width: 1900px) {
  .shop-page .shop-hero { grid-template-columns:minmax(0,1fr) 390px; }
  .shop-creator-note { max-width:none; }
  .product-card .product-card-heading { min-height:5rem; }
  .product-card .product-card-body { padding:1.1rem; }
}
@media (max-width: 480px) {
  .shop-hero .shop-heading { font-size:2.85rem; }
  .shop-hero .shop-eyebrow { font-size:1.2rem; }
  .shop-creator-note { max-width:none; }
  .shop-catalog-controls .collection-nav a { font-size:.75rem; padding-inline:11px; }
  .shop-catalog-cart { padding-inline:12px; font-size:.78rem; }
}
@media (prefers-reduced-motion: reduce) {
  .shop-page .product-card { transition:none; }
  .shop-page .product-card:hover { transform:none; }
}
@media print {
  .shop-catalog-controls,.shop-creator-note { display:none; }
  .shop-page .product-grid { display:block; }
}
