input[type="checkbox"],
input[type="radio"] {

	&.white {

		&.custom-checkbox + label,
		&.custom-radio + label {
			color: @white;

			&:before {
				border-color: @white;
			}
		}

		&.custom-checkbox:checked + label,
		&.custom-radio:checked + label {
		
			&:after {
				background-color: @white;
			}
		}
	}

	&.reverse {

		&.custom-checkbox + label,
		&.custom-radio + label {
			display: block;
			padding-left: 0;
			padding-right: 45px;

			&:before {
				left: auto;
				right: 0;
			}

			&:after {
				left: auto;
				right: 12px;
			}
		}

		&.custom-checkbox:checked + label,
		&.custom-radio:checked + label {
		
			&:after {
				left: auto;
				right: 3px;
			}
		}
	}

	&.custom-toggle,
	&.custom-checkbox,
	&.custom-radio {
		position: absolute;
		z-index: -1;
		left: -100px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		height: 1px;
		width: 1px;
		margin: -1px;
		padding: 0;
		border: 0;
	}

	&.custom-toggle + label {
		.box-sizing();
		.font-size(10);
		font-weight: 500;
		position: relative;
		text-transform: uppercase;
		border: 2px solid @black;
		color: @white;
		background-color: @black;
		height: 36px;
		width: 96px;
		display: inline-block;
		letter-spacing: 1.5px;
		padding: 0 8px;
		line-height: 32px;
		font-family: @suiss-int-mono;
		cursor: pointer;

		&:before {
			.transition(left, 150ms, ease-out);
			content: "";
			width: 20px;
			height: 20px;
			position: absolute;
			left: 4px;
			top: 50%;
			margin-top: -10px;
			background-color: @white;
		}

		span {

			&:first-child {
				float: right;
			}

			&:last-child {
				float: left;
				display: none;
			}
		}
	}

	&.custom-checkbox + label,
	&.custom-radio + label {
		.font-size(24);
		font-weight: 500;
		line-height: 24px;
		text-transform: none;
		position: relative;
		padding-left: 45px;
		display: inline-block;
		background-repeat: no-repeat;
		background-position: 0 0;
		vertical-align: middle;
		cursor: pointer;
		color: @black;
		letter-spacing: 0px;

		&:before {
			.box-sizing();
			content: "";
			position: absolute;
			left: 0;
			top: 0;
			width: 24px;
			height: 24px;
			border: 3px solid @black;
		}

		&:after {
			.box-sizing();
			.transition(all, 150ms, ease-out);
			left: 12px;
			top: 12px;
			width: 0px;
			height: 0px;
			background-color: @black;
			content: "";
			position: absolute;
		}

	}

	&.custom-checkbox:disabled + label,
	&.custom-radio:disabled + label {
		.opacity(0.15);
	}

	&.custom-toggle:checked + label {
		color: @black;
		background-color: transparent;

		&:before {
			left: ~"calc(100% - 24px)";
			background-color: @black;
		}

		span {

			&:first-child {
				display: none;
			}

			&:last-child {
				display: block;
			}
		}
	}


	&.custom-checkbox:checked + label,
	&.custom-radio:checked + label {
	
		&:after {
			top: 3px;
			left: 3px;
			width: 18px;
			height: 18px;
			background-color: @black;
		}
	}

	&.custom-checkbox + label + small,
	&.custom-radio + label + small {
		.font-size(14);
		padding-left: 45px;
		display: block;
		letter-spacing: 0.5px;
	}
}

input[type=radio] {

	&.custom-radio + label {

		&:before {
			.rounded-corners(50%);
		}
	}

	&.custom-radio:checked + label {
	
		&:after {
			.rounded-corners(50%);
		}
	}
}

.custom-checkbox-info {
	.font-size(14);
	line-height: 18px;
	letter-spacing: 0.5px;
	padding-left: 45px;
	display: block;
}