
/*
 * Alignment
 */

.text-right {
	text-align: right;
}

.text-left {
	text-align: left;
}

.text-center {
	text-align: center;
}

.text-justify {
	text-align: justify;
}



/*
 * Text
 */

.text-uppercase {
	text-transform: uppercase;
}

.text-lowercase {
	text-transform: lowercase;
}

.text-underline {
	text-decoration: underline;
}


/*
 * Spacing
 */

.no-wrap {
	white-space: nowrap;
}

.no-overflow {
	overflow: hidden;
}

.no-whitespace {
	font-size: 0;
}


/*
 * Float
 */

.float-right {
	float: right;
}

.float-left {
	float: left;
}


/*
 * 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;
}


/*
 * Position
 */

.position-relative { position: relative; }
.position-absolute { position: absolute; }
.position-fixed { position: fixed; }


/*
 * Display
 */

.block {
	display: block;
	width: 100%;
}

.inline {
	display: inline-block;
	vertical-align: baseline;
}

.inline-top {
	display: inline-block;
	vertical-align: top;
}

.inline-middle {
	display: inline-block;
	vertical-align: middle;
}

.inline-bottom {
	display: inline-block;
	vertical-align: text-bottom;
}



/*
 * Pointer
 */

.pointer {
	pointer-events: auto;
}

.no-pointer {
	pointer-events: none;
}



/*
 * Cursor
 */

.cursor-pointer {
	cursor: pointer;
}



/*
 * Selection
 */
/* Prevent element from being selectable */
.unselectable {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
}


/*
 * Hide visually and from screen readers:
 */

.hidden {
	display: none !important;
}



/*
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */
.well-designed,	/* this class name is used for honeypots */
.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:
 * https://www.drupal.org/node/897638
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
	clip: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	position: static;
	width: auto;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
	visibility: hidden;
}



/*
 * Selective Hide/Show
 *
 * Important!!! READ ME:
 * EACH of these helper classes are contained within their breakpoint.
 * EACH of these helper classes do not bleed across breakpoint.
 * If the element is shown by default, Then use ".hide-"
 * If the element is hidden by default, Then use ".show-"
 * 
 */
@media ( max-width: 639px ) {
	/* -- small -- */
	.hide-small { display: none !important; }
	.show-small-block { display: block !important; }
	.show-small-inline { display: inline !important; }
	.show-small-inline-block { display: inline !important; }
}
@media( min-width: 640px ) and ( max-width: 1039px ) {
	/* -- medium -- */
	.hide-medium { display: none !important; }
	.show-medium-block { display: block !important; }
	.show-medium-inline { display: inline !important; }
	.show-medium-inline-block { display: inline !important; }
}
@media( min-width: 1040px ) and ( max-width: 1479px ) {
	/* -- large -- */
	.hide-large { display: none !important; }
	.show-large-block { display: block !important; }
	.show-large-inline { display: inline !important; }
	.show-large-inline-block { display: inline !important; }
}
@media( min-width: 1480px ) {
	/* -- xlarge -- */
	.hide-xlarge { display: none !important; }
	.show-xlarge-block { display: block !important; }
	.show-xlarge-inline { display: inline !important; }
	.show-xlarge-inline-block { display: inline !important; }
}



/*
 * Form error handling
 */

.form-error {
	/*background-image: linear-gradient( to top, rgba( 255, 42, 46, 0.5 ), rgba( 255, 42, 46, 0.5 ) 5px, transparent 5px );*/
	border-right: 5px solid rgba( 255, 42, 46, 0.75 );
	border-bottom: 5px solid rgba( 255, 42, 46, 0.75 );
}

input[type="submit"].loading,
input[type="submit"].loading:hover,
input[type="submit"].loading:focus {
	color: #333332;
	background-color: transparent;
	background-image: url('/media/loadingbar.gif');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	pointer-events: none;
}

input[type="submit"].done,
input[type="submit"].done:hover,
input[type="submit"].done:focus {
	color: #1EAF59 !important;
	background-color: transparent !important;
	border-color: transparent !important;
	background-image: none;


/* -- End Helpers -- */
