/* Фасетный фильтр каталога — компактная панель кнопок-групп. */
.catfilter { margin: 0 0 24px; }

/* hidden-элементы (поповеры, бейджи, строка активных) должны реально прятаться,
   несмотря на display у их классов ниже. */
.catfilter [hidden] { display: none !important; }

.catfilter__bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}

.catfilter__group { position: relative; }

.catfilter__btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 9px 14px; border: 1px solid #d7dde3; border-radius: 9px;
    background: #fff; cursor: pointer; font-size: 14px; line-height: 1;
    color: #333; transition: border-color .15s, color .15s;
}
.catfilter__btn:hover { border-color: #0772A0; }
.catfilter__btn[aria-expanded="true"] { border-color: #0772A0; }
.catfilter__group.has-active .catfilter__btn { border-color: #0772A0; color: #0772A0; font-weight: 600; }

.catfilter__badge {
    background: #0772A0; color: #fff; border-radius: 999px;
    font-size: 12px; min-width: 18px; height: 18px; padding: 0 5px;
    display: inline-flex; align-items: center; justify-content: center; font-weight: 700;
}
.catfilter__caret { font-size: 10px; color: #8a94a0; transition: transform .15s; }
.catfilter__btn[aria-expanded="true"] .catfilter__caret { transform: rotate(180deg); }

.catfilter__pop {
    position: absolute; top: calc(100% + 6px); left: 0; z-index: 50;
    background: #fff; border: 1px solid #d7dde3; border-radius: 10px;
    box-shadow: 0 10px 28px rgba(20, 30, 45, .14);
    padding: 8px; min-width: 210px; max-width: min(320px, calc(100vw - 32px));
    max-height: 300px; overflow: auto;
    display: flex; flex-direction: column; gap: 2px;
}
.catfilter__opt {
    display: flex; align-items: center; gap: 9px;
    padding: 7px 9px; border-radius: 7px; cursor: pointer;
    font-size: 14px; line-height: 1.2; white-space: nowrap;
}
.catfilter__opt:hover { background: #f2f6f9; }
.catfilter__opt input { margin: 0; width: 16px; height: 16px; accent-color: #0772A0; }

.catfilter__reset {
    background: none; border: 0; cursor: pointer;
    color: #0772A0; font-size: 14px; padding: 6px 8px; margin-left: 2px;
}
.catfilter__reset:hover { text-decoration: underline; }

.catfilter__active { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.catfilter__tag {
    display: inline-flex; align-items: center; gap: 7px;
    background: #eaf4fb; color: #0a5a80; border: 1px solid #cfe4f2;
    border-radius: 999px; padding: 4px 6px 4px 12px; font-size: 13px;
}
.catfilter__tag button {
    border: 0; background: none; cursor: pointer; color: #0a5a80;
    font-size: 16px; line-height: 1; padding: 0 4px; border-radius: 50%;
}
.catfilter__tag button:hover { background: #d6e8f5; }

.catfilter-empty { padding: 32px 0; text-align: center; color: #667; font-size: 16px; }
.product-list.catfilter-loading { opacity: .5; transition: opacity .15s; }

@media (max-width: 640px) {
    .catfilter__btn { flex: 1 1 auto; justify-content: space-between; }
    .catfilter__pop { left: 0; right: auto; min-width: 200px; }
}
