Чтобы ставший видимым
.faq__answer
не растягивал родительский элемент и, соответственно, не перемещал лежащие ниже
.faq__question
, надо задать ему
position: absolute
. И ещё
z-index
побольше, чем у
.faq__quest
, чтобы не прятался за ними.
Скрытие вопросов при открытии ответа - те, которые полностью перекрываются, их и так не будет видно, скрывать надо только один вопрос, тот, который частично перекрывается открытым ответом. Это такой, у которого верхняя граница меньше, а нижняя больше чем верхняя граница плюс высота открытого ответа - так что перебираем вопросы, расположенные после того, у которого открыли ответ, находим подходящий. Само скрытие можно реализовать через изменение прозрачности или переключение свойства
visibility
- так, чтобы элемент, будучи скрытым, продолжал занимать отведённое ему место.
https://jsfiddle.net/jsogh73b/