/* !H5BP HELPER CLASSES */
/* -------------------------------------------*/

/*
 * Image replacement
 */

.ir {
	display: block;
	background-color: transparent;
	border: 0;
	overflow: hidden;
	}
	
.lt-ie8 .ir {
	*text-indent: -29999px;
	}

.ir:before {
	content: "";
	display: block;
	width: 0;
	height: 100%;
	}

/*
 * Hide from both screenreaders and browsers: h5bp.com/u
 */

.hidden {
	display: none !important;
	visibility: hidden;
	}

/*
 * Hide only visually, but have it available for screenreaders: h5bp.com/v
 */

.visuallyhidden {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	}

/*
 * 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 {
	clip: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	position: static;
	width: auto;
	}

/*
 * Hide visually and from screenreaders, but maintain layout
 */

.invisible {
	visibility: hidden;
	}

/*
 * Clearfix: contain floats
 *
 * 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 receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *	  `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
	content: " "; /* 1 */
	display: table; /* 2 */
	}

.clearfix:after {
	clear: both;
	}

/*
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */

.lt-ie8 .clearfix {
	zoom: 1;
	}
	
/* Cross-fade rollover */

.roll {
	position: relative;
	display: block;
	overflow: hidden;
	outline: none !important;
	}
.roll img,
.roll .ir,
.roll .ir-h {
	display: block;
	-webkit-transition: opacity 0.5s ease-out; 
	   -moz-transition: opacity 0.5s ease-out; 
	    -ms-transition: opacity 0.5s ease-out; 
	     -o-transition: opacity 0.5s ease-out; 
	        transition: opacity 0.5s ease-out;
	        }
.roll:hover img,
.roll:focus img,
.roll.active img,
.roll:hover .ir,
.roll:focus .ir,
.roll.active .ir,
.roll .ir-h {
	opacity: 0;
	}
.no-opacity .roll:hover img,
.no-opacity .roll:focus img,
.no-opacity .roll.active img,
.no-opacity .roll:hover .ir,
.no-opacity .roll:focus .ir,
.no-opacity .roll.active .ir,
.no-opacity .roll .ir-h {
	display: none;
	}
.roll:hover .ir-h,
.roll:focus .ir-h,
.roll.active .ir-h {
	opacity: 1;
	}
.no-opacity .roll:hover .ir-h,
.no-opacity .roll:focus .ir-h,
.no-opacity .roll.active .ir-h {
	display: block;
	}
.roll .ir,
.roll .ir-h {
	position: absolute;
	left: 0;
	top: 0;
	}
.roll.disabled {
	opacity: 0.6;
	cursor: default !important;
	}
.no-opacity .roll.disabled {
	display: block;
	}
.roll.disabled img,
.roll.disabled .ir {
	opacity: 1;
	}
.no-opacity .roll.disabled img,
.no-opacity .roll.disabled .ir {
	display: block;
	}
.roll.disabled .ir-h {
	opacity: 0;
	}
.no-opacity .roll.disabled .ir-h {
	display: none;
	}
