/* Store-only layout: the shared site keeps its scroll and paintings. */
.shop-hero { min-height: 0; }
.shop-hero .wrap { padding-top: 68px; padding-bottom: 56px; }
.shop-hero h1 { font-size: clamp(34px, 4.5vw, 54px); max-width: 18em; margin: 16px 0 20px; }
.shop-hero .lede { max-width: 38em; margin-bottom: 0; font-size: 16px; }
.shop-hero .seal-hold { opacity: .25; }
.shop-section { padding-top: 32px; }
.shop-section h2 { font-size: clamp(30px, 3.5vw, 38px); margin-bottom: 14px; }
.shop-section .shop-note { margin-bottom: 28px; font-size: 14px; max-width: none; }
.shop-browser { margin-bottom: 32px; scroll-margin-top: 84px; }
.shop-search label { display: block; color: var(--paper-dim); font-size: 13px; margin-bottom: 8px; }
.shop-search-field { display: flex; align-items: center; gap: 12px; padding: 0 16px; background: var(--ink-2); border: 1px solid var(--line-2); border-radius: 3px; }
.shop-search-field:focus-within { border-color: var(--gold); }
.shop-search-field svg { flex-shrink: 0; color: var(--gold); }
.shop-search-field input { min-width: 0; flex: 1; padding: 16px 0; border: 0; outline: none; background: transparent; color: var(--paper); font: 400 16px var(--body); }
.shop-search-field input::placeholder { color: var(--muted); }
.shop-search-field input::-webkit-search-cancel-button { display: none; }
.shop-search-field button { background: none; border: 0; color: var(--gold); font: 500 13px var(--body); padding: 12px 0; cursor: pointer; }
.shop-categories { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 12px; }
.shop-categories button { display: inline-flex; gap: 9px; align-items: center; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: 3px; color: var(--paper-dim); background: transparent; font: 500 13px var(--body); cursor: pointer; }
.shop-categories button:hover { border-color: var(--line-gold); }
.shop-categories button[aria-pressed="true"] { color: var(--gold-soft); border-color: var(--gold); background: rgba(216, 189, 132, .09); }
.shop-categories .category-count { font-size: 11px; opacity: .65; font-variant-numeric: tabular-nums; }
.shop-results { font-size: 13px; color: var(--muted); margin: 0; }
.shop-groups { display: grid; gap: 40px; }
.shop-group-heading { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
.shop-group-heading h3 { margin: 0; font-size: 24px; }
.shop-group-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.shop-group .shelf { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.shop-group .good { padding: 24px; gap: 12px; height: 100%; }
.shop-group .good h4 { font: 500 22px/1.35 var(--display); margin: 0; }
.shop-group .good .tag { font-size: 10px; }
.shop-group .good .price { font-size: 28px; }
.shop-group .good .held:empty { display: none; }
.shop-group .good .item-description { font-size: 14px; color: var(--paper-dim); margin: 0; }
.shop-group .pack-limit, .shop-group .favor-odds-link { display: block; margin-top: 10px; font-size: 12px; color: var(--gold); }
.shop-group .item-details { font-size: 13px; color: var(--muted); }
.shop-group .item-details summary { cursor: pointer; padding: 4px 0; color: var(--gold); }
.shop-group .item-details p { margin: 10px 0 0; font-size: 13px; }
.shop-group .item-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: auto; }
.shop-group .item-actions .btn { padding: 11px 14px; font-size: 12px; min-height: 44px; }
.shop-group .good .gift .btn { text-align: left; justify-content: flex-start; font-size: 12px; }
.shop-empty { text-align: center; border: 1px dashed var(--line-2); padding: 48px 20px; }
.shop-empty h3 { margin-top: 0; }
.shop-empty p { color: var(--muted); }
#favor-odds { scroll-margin-top: 64px; }
@media (max-width: 900px) { .shop-group .shelf { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .shop-hero .wrap { padding-top: 40px; padding-bottom: 36px; }
  .shop-section { padding-top: 24px; }
  .shop-group .shelf { grid-template-columns: minmax(0, 1fr); }
  .shop-group-heading { display: block; }
  .shop-group-heading p { margin-top: 6px; }
  .shop-categories button { padding: 10px 12px; font-size: 12px; }
}

/* Private Worlds: which world a purchase is for. */
.buying-for { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 13px; color: var(--muted); }
.buying-for span { font: 600 10.5px/1 var(--body); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.buying-for select { height: 32px; padding: 0 10px; background: rgba(236, 230, 214, .04); color: var(--paper); border: 0;
                     box-shadow: inset 0 0 0 1px var(--line-2); font: 400 14px var(--body); }

/* A private world's own store (world_shop.py), above the Heavenbound shelf when a world is chosen. */
.world-store { margin: 8px 0 64px; padding: 28px 28px 22px; box-shadow: inset 0 0 0 1px var(--line-gold);
               background: linear-gradient(180deg, rgba(216, 189, 132, .05), rgba(216, 189, 132, .01)); }
.world-store h2 { margin-top: 6px; }
.ws-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 18px 0 14px; }
.ws-item { display: grid; gap: 8px; align-content: start; padding: 18px; box-shadow: inset 0 0 0 1px var(--line-2); background: var(--ink); }
.ws-item .kind { font: 600 10px/1 var(--body); letter-spacing: .2em; text-transform: uppercase; color: var(--jade); }
.ws-item b { font: 500 19px/1.25 var(--display); color: var(--paper); }
.ws-item p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.ws-item .prices { color: var(--paper-dim); font-size: 13.5px; }
.ws-item .btn { justify-self: start; margin-top: 4px; }
.ws-note { color: var(--muted); font-size: 13px; margin: 0; }

/* rounded throughout (Rank, 2026-10-14) */
.shop-search-field, .world-store, .ws-item { border-radius: var(--round-sm); }
.world-store { border-radius: var(--round); }
.shop-categories button { border-radius: 999px; }
