I have a golden rule what I use in most of my projects it's quite easy and simple.
most of the browsers has 16px by standart, so I define my body and html 100% so the calculation can be easy.
sample:
//Golden Rule:
//100% = 16px browsers default
//21px ÷ 16px = 1.5em
html,
body {
width: 100%;
height: 100%;
min-height: 100%;
color:#565a5c;
font: normal normal 100%/1.5em "MyriadPro", "FontAwesome";
padding-top: 50px;
padding-bottom: 20px;
}
more sample:
h1 {
font-size: 2em; /* 32px ÷ 16px */
line-height: 1.3125em; /* 42px ÷ 32px */
margin-bottom: .5em; /* 16px ÷ 32px */
}
h2 {
font-weight: 400;
font-size: 1.75em; /* 28px ÷ 16px */
line-height: 1.285714286em; /* 36px ÷ 28px */
color: $hc;
margin-bottom: .785714286em; /* 22px ÷ 28px */
}
30px will be = 1.875em
I hope this helped you.