input[type='checkbox'],
input[type='radio'] {
	display: none;
}
input[type='checkbox']+label,
input[type='radio']+label {
	padding-left: 1.5em;
	position: relative;
	cursor: pointer;
}

input[type='checkbox']+label:before,
input[type='radio']+label:before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	margin-top: -.5em;
	width: 1em;
	height: 1em;
	border: 1px solid #bbb;
	border-radius: 3px;
	background-color: #999;
}
input[type='checkbox']+label:hover:before,
input[type='radio']+label:hover:before {
	border: 1px solid #007acc; 
}

/* ---------------- Radio ---------------- */
input[type='radio']+label:before {
	border-radius: 50%;
}
input[type='radio']:checked+label:before {
	background-color: #000;
	box-shadow: inset 0 0 0 3px #999;
}

/* ---------------- Checkbox ---------------- */
input[type='checkbox']+label:after {
	content: '';
	position: absolute;
	left: .1em;
	top: 50%;
	margin-top: -.7em;
	color: #000;
	font-size: 1.3em;
}
input[type='checkbox']:checked+label:after {
	content: '\2714';
}