/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Hide visually and from screen readers
 */

 .hidden,
 [hidden] {
   display: none !important;
 }
 
 /*
  * Hide only visually, but have it available for screen readers:
  * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
  *
  * 1. For long content, line feeds are not interpreted as spaces and small width
  *    causes content to wrap 1 word per line:
  *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
  */
 
 .visually-hidden {
   border: 0;
   clip: rect(0, 0, 0, 0);
   height: 1px;
   margin: -1px;
   overflow: hidden;
   padding: 0;
   position: absolute;
   white-space: nowrap;
   width: 1px;
   /* 1 */
 }
 
 /*
  * Extends the .visually-hidden class to allow the element
  * to be focusable when navigated to via the keyboard:
  * https://www.drupal.org/node/897638
  */
 
 .visually-hidden.focusable:active,
 .visually-hidden.focusable:focus {
   clip: auto;
   height: auto;
   margin: 0;
   overflow: visible;
   position: static;
   white-space: inherit;
   width: auto;
 }
 
 /*
  * Hide visually and from screen readers, but maintain layout
  */
 
 .invisible {
   visibility: hidden;
 }
 
 /*
  * Clearfix: contain floats
  *
  * 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: "";
   display: table;
 }
 
 .clearfix::after {
   clear: both;
 }
 
 
 
 
 /*
  * Vertical Centering
  */
 .center-vertical-wrap {
	 position: relative;
 }
 
 .center-vertical {
	 position: absolute;
	 top: 50%;
	 -webkit-transform: translateY(-50%);
		 -ms-transform: translateY(-50%);
			 transform: translateY(-50%);
 }
 
 /*
  * Aspect-Ratio-Aware Fluid Objects
  */
 
 .object-fluid {
	 height: 0;
	 position: relative;
 }
 
 a.object-fluid {
	 display: block;
 }
 
 .object-fluid--16x9 {
	 padding-bottom: 56.25%;
 }
 
 .object-fluid--4x3 {
	 padding-bottom: 75%;
 }

 .object-fluid--3x2 {
  padding-bottom: 66.666666666666667%;
 }
 
 .object-fluid--1x1 {
	 padding-bottom: 100%;
 }
 
 .object-fluid img,
 .object-fluid iframe,
 .object-fluid video,
 .object-fluid object {
	 height: 100%; 
	 left: 0;
	 position: absolute;
	 top: 0;
	 width: 100%;
 }
 
 /*
  * Image replacement
  */
 
 .ir {
	 background-color: transparent;
	 border: 0;
	 overflow: hidden;
	 /* IE 6/7 fallback */
	 *text-indent: -9999px;
 }
 
 .ir:before {
	 content: "";
	 display: block;
	 width: 0;
	 height: 150%;
 }
 