.cfb-listing-grid { display: grid; gap: 20px; }
.cfb-listing-grid__items { display: grid; gap: inherit; }
.cfb-listing-grid__item { position: relative; }
.cfb-listing-grid__loader { text-align: center; padding: 20px; }
.cfb-filter { margin-bottom: 16px; }
.cfb-filter__label { display: block; font-weight: 600; margin-bottom: 6px; }
.cfb-filter__options label { display: inline-block; margin-right: 12px; margin-bottom: 6px; }
.cfb-filter__select { width: 100%; max-width: 100%; box-sizing: border-box; }
.cfb-filter__search-input { width: 100%; max-width: 100%; box-sizing: border-box; }
.cfb-filter__range-wrap input { box-sizing: border-box; }
.cfb-filter-apply { border: none; cursor: pointer; }
.cfb-filter__range-wrap { display: flex; gap: 10px; align-items: center; }
.cfb-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.cfb-active-filters__item { background: #f0f0f1; padding: 4px 10px; border-radius: 3px; font-size: 13px; }
.cfb-active-filters__remove { margin-left: 6px; cursor: pointer; border: 0; background: transparent; }
.cfb-ajax-search--mode-listing .cfb-ajax-search__results-area { display: none !important; }
.cfb-ajax-search { position: relative; }
.cfb-ajax-search__form { position: relative; }
.cfb-ajax-search__fields-holder { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.cfb-ajax-search__field-wrapper { position: relative; flex: 1 1 180px; display: flex; align-items: center; }
.cfb-ajax-search__field-icon { position: absolute; left: 10px; z-index: 1; pointer-events: none; opacity: .65; }
.cfb-ajax-search__field-wrapper:has(.cfb-ajax-search__field-icon) .cfb-ajax-search__input { padding-left: 36px; }
.cfb-ajax-search__input { width: 100%; max-width: 100%; box-sizing: border-box; }
.cfb-ajax-search__categories-select { min-width: 140px; box-sizing: border-box; }
.cfb-ajax-search__submit { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; border: 1px solid #ddd; background: #f6f7f7; padding: 8px 14px; }
.cfb-ajax-search__spinner { display: none; position: absolute; right: 10px; width: 16px; height: 16px; border: 2px solid #ccc; border-top-color: #2271b1; border-radius: 50%; animation: cfb-spin .7s linear infinite; }
.cfb-ajax-search__spinner.is-active { display: block; }
@keyframes cfb-spin { to { transform: rotate(360deg); } }
.cfb-ajax-search__results-area { position: absolute; z-index: 100; top: calc(100% + 4px); left: 0; width: 100%; display: none; }
.cfb-ajax-search--has-results .cfb-ajax-search__results-area { display: block; }
.cfb-ajax-search__results-header,
.cfb-ajax-search__results-footer { background: #fff; border: 1px solid #ddd; border-bottom: none; padding: 8px 12px; font-size: 13px; }
.cfb-ajax-search__results-footer { border-top: none; border-bottom: 1px solid #ddd; }
.cfb-ajax-search__results-count { font-weight: 600; }
.cfb-ajax-search__full-results { display: inline-block; text-decoration: none; color: #2271b1; font-weight: 600; }
.cfb-search-results { background: #fff; border: 1px solid #ddd; width: 100%; max-width: 100%; max-height: 320px; overflow: auto; box-shadow: 0 4px 12px rgba(0,0,0,.1); display: grid; grid-template-columns: 1fr; gap: 0; }
.cfb-ajax-search--cols-2 .cfb-search-results { grid-template-columns: repeat(2, 1fr); }
.cfb-ajax-search--cols-3 .cfb-search-results { grid-template-columns: repeat(3, 1fr); }
.cfb-ajax-search--cols-4 .cfb-search-results { grid-template-columns: repeat(4, 1fr); }
.cfb-search-results__item { display: flex; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #eee; text-decoration: none; color: inherit; align-items: flex-start; }
.cfb-search-results__item:hover { background: #f6f7f7; }
.cfb-search-results__item-thumb { width: 48px; height: 48px; object-fit: cover; flex-shrink: 0; border-radius: 2px; }
.cfb-search-results__item-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cfb-search-results__item-title { font-weight: 600; line-height: 1.3; }
.cfb-search-results__item-content { font-size: 13px; color: #646970; line-height: 1.4; }
.cfb-search-results__item-price { font-size: 13px; font-weight: 600; }
.cfb-search-results__item-rating .star-rating { float: none; margin: 0; }
.cfb-search-results__highlight { background: #fff3bf; padding: 0 2px; }
.cfb-ajax-search__message { padding: 12px; text-align: center; color: #646970; font-size: 13px; }
.cfb-pagination { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
.cfb-pagination__link { padding: 6px 12px; border: 1px solid #ddd; text-decoration: none; }
.cfb-pagination__link.is-active { background: #2271b1; color: #fff; border-color: #2271b1; }
