.checkbox label:after,
.radio label:after {
  content: '';
  display: table;
  clear: both; }

.checkbox .cr,
.radio .cr {
  position: relative;
  display: inline-block;
  border: 1px solid #a9a9a9;
  border-radius: .25em;
  width: 1.3em;
  height: 1.3em;
  float: left;
  margin-right: .5em; }

.radio .cr {
  border-radius: 50%; }

.checkbox .cr .cr-icon,
.radio .cr .cr-icon {
  position: absolute;
  font-size: .8em;
  line-height: 0;
  top: 50%;
  left: 20%; }

.radio .cr .cr-icon {
  margin-left: 0.04em; }

.checkbox label input[type="checkbox"],
.radio label input[type="radio"] {
  display: none; }

.checkbox label input[type="checkbox"] + .cr > .cr-icon,
.radio label input[type="radio"] + .cr > .cr-icon {
  -webkit-transform: scale(3) rotateZ(-20deg);
  transform: scale(3) rotateZ(-20deg);
  opacity: 0;
  -webkit-transition: all .3s ease-in;
  transition: all .3s ease-in; }

.checkbox label input[type="checkbox"]:checked + .cr > .cr-icon,
.radio label input[type="radio"]:checked + .cr > .cr-icon {
  -webkit-transform: scale(1) rotateZ(0deg);
  transform: scale(1) rotateZ(0deg);
  opacity: 1; }

.checkbox label input[type="checkbox"]:disabled + .cr,
.radio label input[type="radio"]:disabled + .cr {
  opacity: .5; }
