It’s the vertical padding (padding-top or padding-bottom) that creates the aspect ratio and you don’t have any padding in that rule so the height is basically zero. Once you have set the correct amount of padding then you then need to set the width and height of the iframe to 100% to make it fill that area.
The amount of padding that you add is the trick to create the aspect ratio as percentage padding is based on the width of the containing block. For 16:9 aspect ratio the amount of top padding is 56.25%;