
/*Radio Check*/

label.radio, label.radio_text {
	position      : relative;
	cursor        : pointer;
	display       : inline-block;
	overflow      : hidden;
	box-sizing    : border-box;
	padding-top: 10px;
}
label.radio {
	width         : 18px;
	border        : 1px solid #bfbfbf;
	border-radius : 100%;
}
label.radio_text {
	min-height   : calc(18px + 5px);
	margin-right : calc(18px + 5px);
	padding-left : calc(18px + 5px);
	line-height  : calc(18px + 5px);
}


/** before after **/
label.radio:before, label.radio_text:before, label.checkbox_text:before,
label.checkbox:after, label.radio_text:after, label.checkbox_text:after{
	content  : '';
	position : absolute;
	box-sizing : border-box;
}
label.radio:before, label.radio_text:before{
	border-radius    : 100%;
}
label.radio:before, label.checkbox:after{
	top              : 5px;
	bottom           : 0px;
	left             : 0px;
	right            : 0px;
	margin           : auto;
}

label.radio_text:before, label.radio_text:after{
	top              : 5px;
	bottom           : 0px;
	margin-top       : auto;
	margin-bottom    : auto;
}
label.radio:before {
	display          : block;
	width            : 12px;
	height           : 12px;
	z-index          : 1;
	background-color : #e50038;
}
label.radio_text:before {
	width         : 20px;
	height        : 20px;
	border        : 2px solid #bfbfbf;
	left          : 0px;
	z-index       : 3;

}

label.radio_text:after {
	width            : 12px;
	height           : 12px;
	border-radius    : 100%;
	left             : calc(((20px/2) - (12px) / 2));
	background-color : #e50038;
	z-index          : 1;
	
}

/** input **/
label.radio input[type="radio"], label.radio_text input[type="radio"], label.checkbox input[type="checkbox"], label.checkbox_text input[type="checkbox"]{
	-moz-appearance: none;
	-webkit-appearance: none;
	position   : absolute;
	z-index    : 2;
	margin     : 0px;
	width      : 20px;
	height     : 20px;
	box-sizing    : border-box;
	outline       : none;
 
}
label.radio input[type="radio"], label.radio_text input[type="radio"]{
	left       : calc(18px * -1);
	width      : 18px;
	height     : 18px;
	top           : 0px;
	bottom        : 0px;
	margin-top    : auto;
	margin-bottom : auto;
	border-radius : 100%;
	
}

label.radio input[type="radio"] {
	display    : block;
	box-shadow : 18px 0px #FFF;
}
label.radio_text input[type="radio"] {
	box-shadow : 18px 0px #FFF;
	
}

/** checked forcus */
label.checkbox_text input[type="checkbox"]:checked,
label.checkbox input[type="checkbox"]:checked,
label.radio_text input[type="radio"]:checked,
label.radio input[type="radio"]:checked{
	box-shadow : none;
}
label.radio_text input[type="radio"]:focus,
label.radio input[type="radio"]:focus{
	opacity: 0.2;
	
}



label.checkbox_text input[type="checkbox"]:focus {
	box-shadow : 20px 0px #EEE;
}


label.radio_text input[type="radio"]:focus {
	box-shadow : 18px 0px #FFF;

}
label.radio input[type="radio"]:focus {
	box-shadow : 18px 0px #FFF;
}

.radio_text:hover {
  color: #e50038;
}


/*CheckBox */
label.checkbox {
	cursor     : pointer;
	width      : 20px;
	height     : 20px;
	border     : 1px solid #B3B3B3;
	background : #fff;
	overflow   : hidden;
	position   : relative;
	display    : inline-block;
	box-sizing : border-box;
}
label.checkbox input[type="checkbox"] {
	-moz-appearance: none;
	-webkit-appearance: none;
	margin     : 0;
	padding    : 0;
	position   : absolute;
	left       : 20px;
	width      : 20px;
	height     : 20px;
	left       : -40px;
	box-shadow : 39px 0px #FFF;
	z-index    : 2;
}
label.checkbox input[type="checkbox"]:checked {
	box-shadow : none;
}
label.checkbox input[type="checkbox"]:checked:focus {
	box-shadow : 39px 0px #666;
	opacity    : 0.1;
}
label.checkbox input[type="checkbox"]:focus {
	box-shadow : 39px 0px #EEE;
}
label.checkbox:after {
	content           : '';
	position          : absolute;
	top               : 40%;
	left              : 5px;
	display           : block;
	margin-top        : -8px;
	width             : 8px;
	height            : 12px;
	border-right      : 3px solid #e50038;
	border-bottom     : 3px solid #e50038;
	transform         : rotate(45deg);
	-webkit-transform : rotate(45deg);
	-moz-transform    : rotate(45deg);
	z-index           : 1;
}

/*CheckBoxとText */
label.checkbox_text {
	cursor       : pointer;
	position     : relative;
	padding-left : 25px;
	margin-right : 20px;
	overflow     : hidden;
	position     : relative;
	padding-left : 25px;
	display      : inline-block;
	box-sizing   : border-box;
}
label.checkbox_text:before {
	content  : '';
	position : absolute;
	width    : 20px;
	height   : 20px;
	left     : 0px;
	top      : 0;
	border   : 1px solid #B3B3B3;
	z-index  : 3;
}
label.checkbox_text:after {
	content           : '';
	position          : absolute;
	top               : 40%;
	left              : 6px;
	display           : block;
	margin-top        : -8px;
	width             : 8px;
	height            : 12px;
	border-right      : 3px solid #e50038;
	border-bottom     : 3px solid #e50038;
	transform         : rotate(45deg);
	-webkit-transform : rotate(45deg);
	-moz-transform    : rotate(45deg);
	z-index           : 1;
}
label.checkbox_text input[type="checkbox"] {
	-moz-appearance: none;
	-webkit-appearance: none;
	position   : absolute;
	left       : -40px;
	width      : 20px;
	height     : 20px;
	display    : block;
	box-shadow : 41px 0px #FFF;
	z-index    : 2;
	margin     : 0px;
	padding    : 0px;
}
label.checkbox_text input[type="checkbox"]:checked {
	box-shadow : none;
}
label.checkbox_text input[type="checkbox"]:checked:focus {
	box-shadow : 40px 0px #666;
	opacity    : 0.1;
}
label.checkbox_text input[type="checkbox"]:focus {
	box-shadow : 41px 0px #EEE;
}
