.checkbox-custom, 
.radio-custom 
{
    opacity: 0;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
	filter: alpha(opacity=0);
    position: absolute;   
}

.checkbox-custom, 
.checkbox-custom-label, 
.radio-custom, 
.radio-custom-label 
{
    display: inline-block;
    vertical-align: middle;
    margin: 5px;
    cursor: pointer;
}

.checkbox-custom-label,
.radio-custom-label 
{
    position: relative;
}

.checkbox-custom + .checkbox-custom-label:before,
.radio-custom + .radio-custom-label:before 
{
    content: '';
    background: #fff;
    border: 2px solid #909090;
    display: inline-block;
    vertical-align: middle;
    width: 20px;
    height: 20px;
    padding: 2px;
    margin-right: 10px;
    text-align: center;
}

.checkbox_grid_table .checkbox-custom + .checkbox-custom-label:before,
.rating_grid_table .radio-custom + .radio-custom-label:before 
{
	margin-right: 0px;	/* removes the margin for radio buttons & checkboxes on grids. This centers the button */
}

.checkbox-custom:checked + .checkbox-custom-label:before
{
    background: #909090;
    box-shadow: inset 0px 0px 0px 4px #fff;
}

.radio-custom + .radio-custom-label:before
{
    border-radius: 50%;
}

.radio-custom:checked + .radio-custom-label:before
{
    background: #909090;
    box-shadow: inset 0px 0px 0px 4px #fff;
}


.checkbox-custom:focus + .checkbox-custom-label,
.radio-custom:focus + .radio-custom-label
{
	outline: 1px solid #909090; /* focus style */
}

.checkbox_grid_table .checkbox_td .radio-custom-label:before
{
	margin-right: 0px;
}