Можно пытаться влезть в css дочернего компонента, но это так себе практика. Просто добавь инпут например @Input direction: "row" | "column" = "row"
И уже внутри компонента в зависимости от выбранного направления меняй стили
Погугли про layout trashing ещё, ну и вообще можешь про стадии отрисовки страницы почитать reflow repaint все дела. У тебя в функции forecastDetails не правильно работа с домом ведется