.page-hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%);padding:4rem 2rem 3rem;color:var(--white)}.page-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem}.page-hero h1{font-family:Noto Sans SC,sans-serif;font-weight:900;font-size:42px;margin-bottom:.75rem}.page-hero .gold{color:var(--gold)}.page-hero p{color:#ffffffa6;font-size:15px;line-height:1.7;max-width:560px}.toolbar{display:flex;gap:1rem;padding:1.5rem 2rem;background:var(--white);border-bottom:1px solid var(--border);flex-wrap:wrap}.search-wrap{position:relative;flex:1;min-width:240px;max-width:480px}.search-wrap i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:18px}.search-wrap input{width:100%;padding:12px 16px 12px 44px;border:1.5px solid var(--border);font-size:14px;background:var(--surface);font-family:inherit;transition:all .2s}.search-wrap input:focus{outline:none;border-color:var(--gold);background:var(--white);box-shadow:0 0 0 3px #c9930a1f}.sort-wrap{display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);padding:0 14px}.sort-wrap i{color:var(--gold);font-size:18px}.sort-wrap select{border:none;background:none;font-size:13px;font-weight:600;color:var(--dark);font-family:inherit;cursor:pointer;padding:12px 4px}.sort-wrap select:focus{outline:none}.cat-filters{display:flex;gap:8px;padding:1.25rem 2rem;flex-wrap:wrap;background:var(--surface)}.cat-chip{background:var(--white);border:1px solid var(--border);padding:9px 16px;font-size:13px;font-weight:600;color:var(--dark);cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px;transition:all .2s}.cat-chip:hover{border-color:var(--gold)}.cat-chip.active{background:var(--dark);color:var(--white);border-color:var(--dark)}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;list-style:none}.catalog-card{background:var(--white);border:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:8px;transition:all .3s;box-shadow:var(--shadow-sm)}.catalog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:#c9930a66}.catalog-img{font-size:52px;text-align:center;padding:1rem 0;background:linear-gradient(135deg,var(--surface),#f0ebe4);margin-bottom:4px}.catalog-img-photo{width:100%;height:120px;object-fit:cover;display:block}.catalog-name{font-size:14px;font-weight:700;color:var(--dark);line-height:1.4;min-height:2.8em}.catalog-name-secondary{font-size:12px;font-weight:400;color:var(--muted);line-height:1.4;margin-top:3px}.catalog-status{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.catalog-stock{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px}.catalog-stock.in-stock{background:#27ae601f;color:var(--success)}.catalog-stock.out-stock{background:#c0392b1a;color:var(--red)}.catalog-format{font-size:11px;font-weight:700;color:var(--dark);text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;background:var(--surface);border:1px solid var(--border)}.catalog-footer{display:flex;align-items:center;justify-content:flex-end;margin-top:auto;padding-top:10px;border-top:1px dashed var(--border)}.catalog-sku{margin-right:auto;font-family:Courier New,monospace;font-size:11px;color:#888}.catalog-btn{background:linear-gradient(135deg,var(--red),var(--red-light));color:var(--white);border:none;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}.catalog-btn:hover{transform:scale(1.12);box-shadow:0 6px 14px #c0392b4d}.empty-msg{text-align:center;color:var(--muted);font-size:15px;padding:3rem 1rem}@media(max-width:600px){.page-hero{padding:3rem 1.25rem 2rem}.page-hero h1{font-size:30px}.toolbar{padding:1rem}.search-wrap{min-width:100%}.sort-wrap{width:100%;justify-content:space-between}.cat-filters{padding:1rem}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
