.checkbox01-input,
.radio02-input,
.radio01-input{
  display: none;
}
.radio04-parts,
.checkbox01-parts,
.radio03-parts,
.radio02-input + label,
.radio01-parts{
  padding-left: 20px;
  position:relative;
  margin-right: 20px;
  line-height:1;
}

.checkbox01-parts::before{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 15px;
  height: 15px;
  border: 1px solid #999;
  border-radius: 4px;
}

.radio02-input + label::before,
.radio01-parts::before{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 15px;
  height: 15px;
  border: 1px solid #999;
  border-radius: 50%;
}
.radio02-input:checked + label,
.radio01-input:checked + .radio01-parts{
  color: #009a9a;
}
.checkbox01-input:checked + .checkbox01-parts{
  color: #009a9a;
}
.checkbox01-input:checked + .checkbox01-parts::after{
  content: "";
  display: block;
  position: absolute;
  top: -5px;
  left: 5px;
  width: 7px;
  height: 14px;
  transform: rotate(40deg);
  border-bottom: 3px solid #009a9a;
  border-right: 3px solid #009a9a;
}
.radio02-input:checked + label::after,
.radio01-input:checked + .radio01-parts::after{
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: 3px;
  width: 11px;
  height: 11px;
  background: #009a9a;
  border-radius: 50%;
}
.radio03-input{
  display: none;
}
.radio03-parts::before{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 15px;
  height: 15px;
  border: 1px solid #999;
  border-radius: 50%;
  background: #ccc;
  box-shadow: 1px 1px 1px rgba(0,0,0,.3);
  display: block;
}
.radio03-parts::after{
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: 3px;
  width: 9px;
  height: 9px;
  border: 1px solid #999;
  border-radius: 50%;
  background: #b7414c;
  transition:.3s;
  display: block;
}
.radio03-parts{
  transition:.3s;
  color: #888;
}
.radio03-input:checked + .radio03-parts{
  color:#ff555e;
}
.radio03-input:checked + .radio03-parts::after{
  border: 1px solid #bbb;
  border-radius: 50%;
  box-shadow: 1px 1px 1px rgba(255,255,255,1),-3px -3px 3px #ff555e inset;
  background: #ffffff;
}
.radio04-input{
  display: none;
}
.radio04-parts{
transition:.4s;
}
.radio04-input:checked + .radio04-parts{
  color: rgba(100, 150, 1,1);
}
.radio04-parts::before{
  content: "";
  display: block;
  
  top: 1px;
  left: 1px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  z-index:-1;
  transform: scale(0,0);
  background: rgba(100, 150, 1,.3);
  position: absolute;
}
.radio04-parts::after{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: rgba(100, 150, 1,1);
  transition:.4s;
  transform: scale(0,0);
}

.radio04-input:checked + .radio04-parts::after{
  transform: scale(1,1);
  border-radius: 50%;
  background: rgb(100, 150, 1);
}
.radio04-input:checked + .radio04-parts:before {
  animation: pulsate .8s ease-out;  /* スピードなど */
}
@keyframes pulsate {
  0%   { transform: scale(0, 0); }
  50%  { opacity: 1; }
  100% { transform: scale(3.5, 3.5); opacity: 0.0; }
}
.checkbox04-input{
  display: none;
}
.checkbox04-parts{
  position: relative;
  padding: 15px 20px 15px 53px;
  padding: 15px 10px 15px 53px;
  transition:.3s;
  color: #444;
  border-radius: 8px;
  /*border: 1px solid rgb(169, 169, 169);*/
border: 1px solid #999;
background: #eee;
background: -webkit-linear-gradient(top, #fff 0%,#efebe1 100%);
background: linear-gradient(to bottom, #fff 0%,#efebe1 100%);
  display:inline-block;
  line-height:1;
  cursor:pointer;
}
.checkbox04-input:checked + .checkbox04-parts{
  background: #239442;
  color: #fff;
  /*border: 1px solid rgb(100, 150, 1);*/
  border: 1px solid #239442;
}
.checkbox04-parts::before{
  content: "";
  display: block;
  posi15px;
  left: 9px;
  width: 30px;
  height: 15px;
  border-radius: 15px;
  border: 1px solid #aaa;
  background: #fff;
  position: absolute;
}
.checkbox04-parts::after{
  content: "";
  display: block;
  position: absolute;
  top:17px;
  left: 11px;
  width: 13px;
  height: 13px;
  background: #aaa;
  border-radius: 50%;
  transition:.2s;
  display: block;
}
.checkbox04-input:checked + .checkbox04-parts::before {
  border: 1px solid rgb(100, 150, 1);
}
.checkbox04-input:checked + .checkbox04-parts::after {
  left: 26px;
  background: rgb(100, 150, 1);
}
.checkbox02-input:checked + .checkbox02-parts::after{
  width: 2px;
  height: 13px;

}
.checkbox02-input:checked + .checkbox02-parts{
  color: #0071bc;
}
.checkbox02-input{
  display: none;
}
.checkbox02-parts{
  padding-left: 30px;
  position: relative;
}
.checkbox02-parts::before{
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  top: 9px;
  left: 14px;
  background: #0071bc;
  transition:width .2s;
  transform: rotate(140deg);
}
.checkbox02-parts::after{
  content: "";
  position: absolute;
  width: 0;
  height: 0px;
  background: #0071bc;
  top: 4px;
  left: 20px;
  transition:width .2s .2s;
  transform: rotate(230deg);
}

.checkbox02-input:checked + .checkbox02-parts::before{
  width: 2px;
  height: 5px;

}
.checkbox02-input:checked + .checkbox02-parts::after{
  width: 2px;
  height: 13px;

}
.checkbox02-input:checked + .checkbox02-parts{
  color: #0071bc;
}
.checkbox03-input{
  display: none;
}
.checkbox03-parts{
  padding-left: 28px;
  position: relative;
  line-height:1;
}
.checkbox03-parts::before{
  content: "";
  position: absolute;
  width: 19px;
  height: 16px;
  top: -1px;
  left: 0px;
  background: #ccc;
  border-radius: 3px;
  border-bottom: 2px solid #aaa;
}
.checkbox03-parts::after{
  font-family: 'FontAwesome';
  content: "\f00c";
  font-weight: bold;
  position: absolute;
  left: 2px;
  top: -2px;
  color: #e21734;
  text-shadow:0 2px #999;
  transform: scale(0,0);
  display: block;
    font-size: 17px;
}

.checkbox03-input:checked + .checkbox03-parts::after{
  transform: scale(1,1);
  width: 2px;
  height: 5px;
  animation: baunce .3s;  /* スピードなど */
}
@keyframes baunce {
  0%   { transform: scale(1, 1); }
  50%   { transform: scale(1.3, 1.1); }
  100% { transform: scale(1, 1); }
}
.box{
padding:10px;
margin-bottom:10px;
border:2px solid #ccc;
}
.box label{
margin-right:10px;
display:inline-block;
margin-bottom:10px;
}
