/* Catalogue/search only: shared cards retain their behavior on other pages. */
.catalog-search-shell { max-width: 1760px; padding-inline: clamp(16px, 2.5vw, 40px); width: 100%; }
.catalog-layout { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); margin: 0; }
.catalog-layout > * { min-width: 0; padding: 0; }
.catalog-filter-panel { background: var(--surface, #fff); border: 1px solid var(--line, #dbe5de); border-radius: 16px; scroll-margin-top: 140px; }
.catalog-filter-panel > summary { color: var(--brand, #165d40); cursor: pointer; font-size: 1rem; font-weight: 700; padding: 16px 20px; }
.catalog-filter-panel .card-body { padding: 0 20px 20px; }
.catalog-filter-panel label { font-size: .9rem; font-weight: 600; }
.catalog-filter-panel input, .catalog-filter-panel select { min-height: 44px; min-width: 0; width: 100%; }
.catalog-filter-panel .form-check-input { min-height: 1em; width: 1em; }
.catalog-toolbar { display: grid; gap: 20px; padding: 24px; }
.catalog-toolbar h1 { font-size: clamp(1.6rem, 2.4vw, 2rem); margin: 0; overflow-wrap: anywhere; }
.catalog-query { color: var(--muted, #63706a); margin: 8px 0 0; overflow-wrap: anywhere; }
.catalog-search-form { display: flex; gap: 8px; }
.catalog-search-form input { flex: 1 1 0; min-width: 0; min-height: 48px; }
.catalog-search-form button { flex-shrink: 0; }
.catalog-controls { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; }
.catalog-sort-form { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; max-width: 100%; }
.catalog-sort-form select { flex: 1 1 180px; min-width: 0; width: auto; }
.catalog-sort-form .btn, .catalog-sort-form select { min-height: 44px; }
.catalog-product-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr)); }
.catalog-product-grid > .product-card { margin: 0 !important; min-width: 0; padding: 0; width: 100%; }
.catalog-product-grid .card { margin-bottom: 0; }
.catalog-product-grid .card-body { min-width: 0; }
.catalog-product-grid .card-title, .catalog-product-grid .article-number-selectable { overflow-wrap: anywhere; }
.catalog-product-grid .card-body > .mt-auto > .d-flex { flex-wrap: wrap; gap: 8px; }
.catalog-results .pagination { flex-wrap: wrap; gap: 4px; }
.catalog-results .pagination-info-row, .catalog-results .pagination-container { flex-wrap: wrap; gap: 16px; }
.catalog-results .pagination-per-page { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.catalog-results .pagination-goto { margin-left: 0 !important; max-width: 100%; }
.catalog-results .page-link { align-items: center; display: flex; justify-content: center; min-height: 44px; min-width: 40px; }
.catalog-view :focus-visible { outline: 3px solid #c18c27; outline-offset: 3px; }
@media (min-width: 1200px) {
    .catalog-layout { grid-template-columns: 260px minmax(0, 1fr); }
    .catalog-filters { align-self: start; position: sticky; top: 140px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    /* The catalogue search remains visible below; keep account actions in view. */
    .catalog-view .main-navbar .search-wrapper { display: none !important; }
}
@media (max-width: 599px) {
    .catalog-view .main-navbar .navbar-brand { font-size: 1.1rem; margin-right: .5rem !important; }
    .catalog-view .main-navbar .btn.d-lg-none { min-height: 44px; min-width: 44px; padding: .5rem; }
    .catalog-view .main-navbar .navbar-toggler { min-height: 44px; padding: 6px; }
    .catalog-toolbar { padding: 16px; }
    .catalog-sort-form { width: 100%; }
    .catalog-sort-form label { width: 100%; }
    .catalog-filter-panel input, .catalog-filter-panel select { font-size: 16px; }
}
