1. Совсем банальный: вешайте класс на родительский блок.
2. Через :has
.catalog__info:has(.catalog-filter.active) .catalog__wrapper {
margin-bottom: 50px;
}
.catalog__info:has(.catalog-filter.active) .catalog__btn {
display: none;
}
3. Самый интересный: с помощью кастомных свойств.
.catalog-filter {
--open-btn-display: block;
--margin: 0;
}
.catalog-filter.active {
--open-btn-display: none;
--margin: 50px;
}
.catalog__wrapper {
margin-bottom: var(--margin);
}
.catalog__btn {
display: var(--open-btn-display);
}
p.s. Зачем вам две кнопки, если они в одном месте в разметке, я не придумала. Меняете текст и стили и всё. Тогда уж логичнее закрывающую засунуть внутрь всего открываемого блока, тогда и не нужно с ней отдельных манипуляций.