For me, it's a good job! The solution is slightly larger, and the share button has different colors than in the design, but I think you can be satisfied, especially after all your hard work. It’s great to hear you overcame your struggles. I have some advice for you.
You can replace this code:
padding: 20px;
padding-bottom: 8px;
with
padding: 20px 20px 8px 20px;
Now, you have all the padding in one line. Of course, when you want padding on only one side, it's good to use properties like padding-top, but when you need padding on multiple sides, it's better to use this shorthand.
Regarding Flexbox:
Regarding to FlexBox,
flex-direction: row;
row is the default value, so you don’t have to specify it in the selectors.
Good work, and good luck with the next challenge!