.catalog-page {
    --catalog-ink: var(--catalog-blue);
    --catalog-accent: var(--site-accent);
}

.catalog-panel { background: #fff; border: 1px solid var(--catalog-border); border-radius: 10px; padding: 1.25rem; box-shadow: 0 18px 50px rgba(24,34,48,.06); }
.search-wrap { position: relative; }
.search-wrap .fa-search { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: #8a929d; }
.catalog-input, .catalog-select { height: 52px; border: 1px solid var(--catalog-border); border-radius: 10px; background: #fff; }
.catalog-input { padding-left: 2.8rem; }
.catalog-input:focus, .catalog-select:focus { border-color: var(--catalog-accent); box-shadow: 0 0 0 .2rem rgba(0,101,218,.18); }
.catalog-search-btn { height: 52px; border-radius: 10px; padding-inline: 1.4rem; }
.catalog-summary { color: var(--catalog-muted); font-size: .9rem; }
.product-card { height: 100%; background: #fff; border: 1px solid var(--catalog-border); border-radius: 10px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.product-card:hover { transform: translateY(-6px); box-shadow: 0 20px 45px rgba(24,34,48,.12); }
.product-image-wrap { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--site-bg); }
.product-image { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.product-card:hover .product-image { transform: scale(1.045); }
.product-body { padding: 1.35rem 1.35rem 1.45rem; }
.product-tags { display: flex; gap: .4rem; flex-wrap: wrap; min-height: 24px; }
.product-tag { color: var(--site-accent); background: var(--site-tint); border-radius: 999px; padding: .25rem .55rem; font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.product-heading { color: var(--catalog-ink); font-size: 1.22rem; font-weight: 700; line-height: 1.25; }
.product-copy { color: var(--catalog-muted); font-size: .9rem; line-height: 1.65; }
.product-link { color: var(--catalog-ink); font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.product-link .fas { transition: transform .2s ease; }
.product-card:hover .product-link .fas { transform: translateX(4px); }
.empty-state { border: 1px dashed var(--site-border); border-radius: 10px; background: rgba(255,255,255,.65); padding: 5rem 1.5rem; }
.catalog-pagination .page-link { border: 0; border-radius: 8px !important; margin: 0 .2rem; color: var(--catalog-ink); min-width: 40px; text-align: center; }
.catalog-pagination .active .page-link { background: var(--catalog-ink); }
.catalog-results-loading { opacity: .55; pointer-events: none; transition: opacity .18s ease; }
.filter-toggle { border: 1px solid var(--catalog-border); border-radius: 10px; background: #fff; color: var(--catalog-ink); height: 52px; font-weight: 700; }
.filter-toggle[aria-expanded="true"] { border-color: var(--catalog-accent); background: var(--site-tint); }
.filter-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 .35rem; border-radius: 999px; background: var(--catalog-ink); color: #fff; font-size: .7rem; }
.advanced-filters { border-top: 1px solid var(--catalog-border); margin-top: 1rem; padding-top: 1.25rem; }
.filter-group-title { color: var(--catalog-ink); font-size: .76rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.filter-options { max-height: 190px; overflow: auto; padding-right: .35rem; }
.filter-check { border: 1px solid var(--catalog-border); border-radius: 9px; padding: .65rem .75rem; transition: .2s ease; }
.filter-check:has(input:checked) { border-color: var(--catalog-accent); background: var(--site-tint); }
.active-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.active-filter { display: inline-flex; align-items: center; gap: .45rem; padding: .42rem .7rem; border-radius: 999px; background: var(--site-tint); color: var(--catalog-ink); font-size: .76rem; font-weight: 700; }
.catalog-search-entry { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.catalog-search-entry .catalog-filter-heading { margin-bottom: 0; }
.catalog-tools-button { flex: 0 0 auto; cursor: pointer; }
.catalog-tools-button[aria-expanded="true"] { background: var(--catalog-blue); color: #fff; }
.catalog-tools { padding-top: 2rem; }

@media (max-width: 767.98px) {
    .catalog-panel { padding: 1rem; }
    .catalog-search-entry { align-items: stretch; flex-direction: column; }
    .catalog-tools-button { width: 100%; }
}
