.hero{padding:48px 24px 32px;max-width:1100px;margin:0 auto}
h1{font-family:'Instrument Sans',sans-serif;font-size:clamp(28px,5vw,52px);font-weight:600;line-height:1.1;margin-bottom:14px}
.subtitle{color:#94969d;font-size:16px;line-height:1.6;max-width:580px;margin-bottom:32px}
/* search */
.search-wrap{max-width:1100px;margin:0 auto;padding:0 24px 40px}
.search-box{position:relative;display:flex;align-items:center}
.search-icon{position:absolute;left:16px;width:18px;height:18px;color:#666;pointer-events:none;flex-shrink:0}
#prodSearch{width:100%;background:#111;border:1px solid rgba(255,255,255,.1);border-radius:14px;color:#fff;font-family:'Inter Tight',sans-serif;font-size:16px;padding:14px 44px 14px 46px;outline:none;transition:border-color .15s;-webkit-appearance:none;appearance:none}
#prodSearch::placeholder{color:#555}
#prodSearch:focus{border-color:rgba(255,255,255,.25)}
#prodSearch::-webkit-search-cancel-button{display:none}
.search-clear{position:absolute;right:14px;background:none;border:none;color:#555;font-size:16px;cursor:pointer;padding:4px 6px;line-height:1;display:none}
.search-clear.visible{display:block}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#111;border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow-y:auto;overflow-x:hidden;max-height:400px;z-index:200;box-shadow:0 16px 40px rgba(0,0,0,.7);display:none;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.search-results::-webkit-scrollbar{width:4px}
.search-results::-webkit-scrollbar-track{background:transparent}
.search-results::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
.search-results.open{display:block}
.search-result{display:flex;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;color:#fff;border-bottom:1px solid rgba(255,255,255,.05);transition:background .1s}
.search-result:last-child{border-bottom:none}
.search-result:hover,.search-result.focused{background:#1a1a1a}
.search-result img{width:44px;height:44px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#222}
.search-result-info{flex:1;min-width:0}
.search-result-title{font-family:'Inter Tight',sans-serif;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.search-result-meta{font-family:'Instrument Sans',sans-serif;font-size:12px;color:#666;margin:2px 0 0}
.search-result-price{font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:600;color:#fff;flex-shrink:0;margin-left:8px}
.search-no-results{padding:16px 14px;font-family:'Instrument Sans',sans-serif;font-size:14px;color:#555;text-align:center}
@media(max-width:480px){.search-wrap{padding:0 12px 28px}}
/* category cards */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;max-width:1100px;margin:0 auto;padding:0 24px 40px}
@media(max-width:480px){.cat-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:0 12px 24px}}
.cat-card{background:#18181a;border-radius:0;overflow:hidden;transition:transform .15s,background .15s;display:block}
.cat-card:hover{transform:translateY(-3px);background:#1d1d20}
.cat-card img,.cat-noimg{width:100%;aspect-ratio:16/7;object-fit:cover;background:#242428;display:block}
.cat-card-body{padding:16px}
.cat-name{font-family:'Instrument Sans',sans-serif;font-size:16px;font-weight:600;margin-bottom:4px}
.cat-count{font-size:13px;color:#94969d}
/* hub-specific: listing-top is standalone (outside hero), needs centering */
.listing-top{max-width:1100px;margin-right:auto;margin-left:auto;padding:0 24px}
.section-heading{font-family:'Instrument Sans',sans-serif;font-size:clamp(18px,2.5vw,24px);font-weight:600;margin:0 0 4px;padding:0}
