/*	=
	-	Non-sematnic helper classes.
	======================================================================== */
	/*
	 * Image replacement
	 */
	.ir {
		background-color: transparent;
		text-shadow: none;
		border: 0;
		color: transparent;
		font: 0/0;
	}

	/*
	 * Hide from both screenreaders and browsers: h5bp.com/u
	 */
	.hidden {
		visibility: hidden;
		display: none !important;
	}

	/*
	 * Hide only visually, but have it available for screenreaders: h5bp.com/v
	 */
	.visuallyhidden {
		position: absolute;
		overflow: hidden;
		padding: 0;
		margin: -1px;
		height: 1px;
		border: 0;
		width: 1px;
		clip: rect(0 0 0 0);
	}

	/*
	 * Extends the .visuallyhidden class to allow the element to be
	 * focusable when navigated to via the keyboard: h5bp.com/p
	 */
	.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
		overflow: visible;
		position: static;
		height: auto;
		margin: 0;
		width: auto;
		clip: auto;
	}

	/*
	 * Hide visually and from screenreaders, but maintain layout.
	 */
	.invisible {
		visibility: hidden;
	}

	/*
	 * Clearfix by Nicolas Gallagher
	 * http://nicolasgallagher.com/micro-clearfix-hack/
	 *
	 * For modern browsers
	 *
	 * 1. The space content is one way to avoid an Opera bug when the
	 * contenteditable attribute is included anywhere else in the document.
	 * Otherwise it causes space to appear at the top and bottom of elements
	 * that are clearfixed.
	 *
	 * 2. The use of `table` rather than `block` is only necessary if using
	 * `:before` to contain the top-margins of child elements.
	 */
	.cf:before, .cf:after {
		display: table; /* 2 */
		content: " "; /* 1 */
	}
	
	.cf:after {
		clear: both;
	}

	/**
	 * For IE 6/7 only
	 * Include this rule to trigger hasLayout and contain floats.
	 */
	.lt-ie8 .cf {
		zoom: 1;
	}