Basic case: treat margins as 0.
When resolving stretch treat both block margins as 0 because the parent is
not a BFC and has no top or bottom content edge (i.e. border + padding = 0).
But cyan's margins will not actually collapse through its IFC-siblings so
there is overflow:
Parent has non-zero bottom border, so only top margin is treated as 0:
Parent has non-zero top padding so only bottom margin is treated as 0:
Account for the margins when parent establishes a BFC.