This might depend on the email client that you are sending the email to, but the first two things I would try are:
1.Make the font-size important:
mail.setHtmlBody('<p style="font-family:Calibri;font-size:11px !important;">'+body+'</p>' );
2.Use the (deprecated) font tag:
mail.setHtmlBody('<font face="Calibri" size="3">'+body+'</font>');
Note that with the <font>
tag, you won't be able to pick 11px
for the font size. If the difference between 11 and 12 px is too much, this option might not give you enough control to be useful.
Two other things that might be worth trying:
3.Use a span tag instead of a p:
mail.setHtmlBody('<span style="font-family:Calibri;font-size:11px;">'+body+'</span>');
4.Use internal instead of inline styling:
mail.setHtmlBody('<style>.myStyle{font-family:Calibri;font-size: 11px;}</style><span class="myStyle" >'+body+'</span>');