/*! HTML5 Boilerplate v5.0 | MIT License | http://h5bp.com/ */

html {
    color: #000000;
    font-size: 1em;
    line-height: 1.4;
    font-family: 'Lato', sans-serif;
}

* {border-radius: 0 !important}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

textarea {
    resize: vertical;
}

.browserupgrade {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}
img {
    max-width: 100%;
    height: auto;
}


/* ==========================================================================
   Author's custom styles
   ========================================================================== */

.container, #content {
	padding:0 4%;
	margin:0 auto;
	max-width:1140px;
}
.site-title {
   height:120px;
   width:auto;
   line-height: 80px;
   margin:0 auto;
   margin-bottom:20px;
       padding-right: 30px;
}
header {
   background: url(img/pattern-original.png) no-repeat center center; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
   
   text-align:center;
   padding:20px 0 0;
}
header a {color:#000000;}
h1.page-title {
    color: #000000;
    font-size: 30px;
    margin: 0;
    padding: 30px 0;
}
.mobile-menu-icon, .mobile-close-icon {
   float:left !important;
   line-height: 80px !important;
   font-size:30px !important;
}
.mobile-search-icon {
   float:right !important;
   line-height: 80px !important;
   font-size:30px !important;
}
.main-navigation {display:none;}

/** MOBILE SLIDER **/
#slider ul {
   padding:0;margin:0;
}
#slider ul li {
   height:500px;
   position:relative;
   list-style:none;
   background: no-repeat top center; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
}
#slider ul li div {
   padding:20px 20px 0 20px;
   background-color: rgba(0,0,0,0.70);
   position:absolute;bottom:0;
   text-align:left;
   display:block;
}
#slider ul li div h2 {
   font-size:22px;
   line-height:30px;
   color:#ffffff;
   margin:0 0 20px 0;
}
#slider ul li div p {
   font-size:14px;
   line-height:22px;
   color:#ffffff;
   margin:0 0 20px 0;
}
#slider ul li div p span {
   font-size:13px;
   color:#D0D0D0;
}

/** HEADER CTA's **/
.header-cta-container {
   
}
.header-cta {
   text-align:left;
   padding:20px;
}
.header-cta h2 {
   font-size:22px;
   line-height:30px;
   color:#ffffff;
   margin:0 0 20px;
}
.header-cta a {
   color:#D0D0D0;
   text-decoration:none;
}
.purple-background {
   background-color:#65d8a6;
}
.blue-background {
   background-color:#656565;
}
.grey-background {
   background-color:#EBEBEB;
}

/** HOME INTRO **/

.home-intro {
   padding:20px 0;
}
.search-form {display:none;}

/** INTRO CTAs **/
.intro-cta {
   padding:20px;
   margin-bottom:40px;
   position: relative;
}
.intro-cta h2 {
   font-size:26px;
   line-height:30px;
   color:#ffffff;
   margin:0 0 20px;
}
.intro-cta p span {
   background-color: rgba(0,0,0,0.50);
   font-size:14px;
   line-height:22px;
   color:#ffffff;
   display:inline-block;
   margin:0 0 20px;
   padding:5px;
}
.intro-cta a {
   display:inline-block;
   color:#ffffff;
   text-decoration:none;
   padding:10px 20px;
   background-color:#FF0077;
   position: absolute;
   bottom: -20px;
   transition: all 0.5s ease;
}
.intro-cta a:hover {
   background-color:#000000;
}


/** TESTIMONIAL SLIDER **/
.testimonials {
   background-color:#2A324B;
   padding:20px 20px 0 20px;
     -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.1);
-moz-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.1);
box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.1);
}
.testimonial-slider {margin:0;padding:0;}
.testimonials h2 {
   font-size:26px;
   line-height:30px;
   color:#ffffff;
   margin:0 0 20px;
}
.testimonial-slider p {
   font-size:14px;
   line-height:22px;
   color:#ffffff;
   margin:0 0 20px;
}

.testimonial-slider p span {
   background-color: rgba(0,0,0,0.50);
   display:inline-block;
   padding:5px;
}
.testimonials-footer {border-left:20px solid #ffffff;height:20px;display:block;background-color:#C0C0C0;}


/** HOME PAGE LOGO SLIDER **/
.bx-wrapper {
   -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    border: none;
   margin:0;
   background-color: transparent;
}
.logo-slider {
   padding:20px 0;
}
.logo-slider h2 {
   font-size: 26px;
    line-height: 30px;
    color: #000000;
    margin: 0 0 20px 20px;
}

/** HOME PAGE LATEST NEWS TEST **/
.latest-news {
   padding:20px 0;
}
.latest-news h2 {
   font-size: 26px;
    line-height: 30px;
    color: #000000;
    margin: 0 0 20px 20px;
}

.latest-news ul {
   padding:0;margin:0;
}
.latest-news li {
   height:300px;
   position:relative;
   list-style:none;
   background: no-repeat center center; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
   margin-bottom:40px;
}
.latest-news div {
   padding:20px;
   background-color:#2A324B;
   position:absolute;bottom:0;
   text-align:left;
}
.latest-news div h2 {
   font-size:22px;
   line-height:30px;
   margin:0 0 20px 0;
}
.latest-news div h2 a {
   color:#ffffff;
   text-decoration:none;
   transition: all 0.5s ease;
}
.latest-news div h2 a:hover {
   color:#000000;
}
.latest-news div p {
   font-size:14px;
   line-height:22px;
   color:#ffffff;
   margin:0 0 20px 0;
}
.latest-news div p span {
   font-size:13px;
   color:#D0D0D0;
}

.latest-news .read-more {
   display:inline-block;
   color:#ffffff;
   text-decoration:none;
   padding:10px 20px;
   background-color:#FF0077;
   position: absolute;
   bottom: -20px;
   transition: all 0.5s ease;
}
.latest-news .read-more:hover {
   background-color:#000000;
}

/** NEWSLETTER **/
.newsletter {padding:20px 0;}
.newsletter-left {
   background: url(img/pattern-navy-min.png) no-repeat center center; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
   padding:40px 20px;
}
.newsletter-left h2 {
   font-size:26px;
   line-height:30px;
   color:#ffffff;
   margin:0 0 20px 0;
}
.newsletter-left p {
   font-size:14px;
   line-height:22px;
   color:#ffffff;
   margin:0 0 20px 0;
}
.newsletter-left input {
   padding:10px 2%;
   background-color:#ffffff;
   border:none;
   width:96%;
   display:block;
   font-weight:normal;
   font-size:14px;
   line-height:20px;
   height:30px;
   margin:0 0 20px;
}
.newsletter-left button {
    display: inline-block;
    color: #ffffff;
    text-decoration: none;
    padding: 10px 20px;
    background-color: #FF0077;
   border:none;
   font-size: 1em;
    line-height: 1.4;
   transition: all 0.5s ease;
}
.newsletter-left button:hover {
   background-color:#000000;
}
.newsletter-right {display:none;} 

.hs-form label {
color: #ffffff;
}
body .hs-button.primary,
body input[type="submit"],
body input[type="button"] {
 display: inline-block;
    color: #ffffff;
    text-decoration: none;
    padding: 10px 20px;
    background-color: #FF0077;
   	border:none;
   	font-size: 1em;
    line-height: 1.4;
   	transition: all 0.5s ease;
	width: 150px;
	height: 50px;
   }

body .hs-button.primary:hover,
body input[type="submit"]:hover,
body input[type="button"]:hover {
 display: inline-block;
    color: #ffffff;
    text-decoration: none;
    padding: 10px 20px;
    background-color: #000000;
   	border:none;
   	font-size: 1em;
    line-height: 1.4;
   	transition: all 0.5s ease;
	width: 150px;
	height: 50px;
   }

body .hs-button.primary:focus,
body input[type="submit"]:focus,
body input[type="button"]:focus {
 display: inline-block;
    color: #ffffff;
    text-decoration: none;
    padding: 10px 20px;
    background-color: #FF0077;
   	border:none;
   	font-size: 1em;
    line-height: 1.4;
   	transition: all 0.5s ease;
	width: 150px;
	height: 50px;
   }

footer {
   padding:20px 0 0;
   background-color:#242424;
}
.footer-navigation {margin-bottom: 40px;}
.footer-navigation ul {
      padding:0;list-style:none;
}
.footer-navigation ul li {
   padding-bottom:10px;
}
.footer-navigation ul li a {
   display:block;
   padding:10px 0;
   color:#ffffff;
   font-weight:900;
   text-decoration:none;
   font-size:18px;
   transition: all 0.5s ease;
}
.footer-navigation ul li a:hover {color:#FF0077}
.footer-navigation ul ul {
      padding:0;list-style:none;
}
.footer-navigation ul li ul li {padding-bottom:0;width:100%;}
.footer-navigation ul li ul li a {
   font-weight:normal;
   padding:5px 0;
   border:none;
   font-size:14px;
}

/** MOBILE MENU **/
.mobile-navigation {
   background-color:#222222;
   padding-top:20px;
   text-align:center;
   position: absolute;
   width: 100%;
   z-index:2147483640;
   
   display:none;
}
.mobile-navigation a {
   color:#ffffff;
}
.mobile-navigation ul {
   padding:0;margin:0;list-style:none;
}
.mobile-navigation ul a {
   padding:10px;
   display:block;
   color:#ffffff;
   text-decoration:none;
   border-bottom:1px solid #141414;
   font-weight:900;
   background-color:#141414;
   text-align:left;
}
.mobile-navigation ul ul a {
   font-weight:400;
   font-size:13px;
   background-color:#222222;
   padding:10px 20px;
   text-align:left;
}
.mobile-navigation ul a:hover {
   background-color:#FF0077;
}

.sub-footer {
   background-color:#ffffff;
   padding:10px 0 30px 0;
}
.sub-footer p {
   margin:0 0 20px;
   color:#000000;
}
.sub-footer a {
   color:#ff0077;
}

.footer-left {float:left;}

.footer-center-upper {
  font-size: 18px;
  text-align: left;

}

.footer-center-lower {
  font-size: 12px;
  text-align: left;
}

.footer-right {
   float:right;
   font-size: 26px;
    line-height: 1px;
}
.footer-right a {margin-left:10px;}

/** NEWS STYLES **/
.post-details {padding: 20px 0;border-top: 1px solid #d4d4d4;border-bottom: 1px solid #d4d4d4;margin-bottom:20px;background-color: #ffffff}
.post-details .date, .postedby {text-transform:uppercase;font-weight:700;font-size:14px;}

.blog-copy {max-width:800px;}
.blog-feature {max-width:900px;margin-bottom:30px;}
.blog-feature img {padding:0;max-width:100%;height:auto;width: 100%;margin-top: 20px;}
.loop article {padding-bottom:20px;}

/** PAGE STYLES **/
.page article {padding-bottom:30px;}
.page .post-details .container {max-width:auto;}
.page-template-template-course .page {background-color: #f2f2f2;}
.page-template-template-qualifications .page {background-color: #f2f2f2;}

.page-id-630 .page, .page-id-1027 .page {background-color: #f2f2f2;}


/** FONTS **/
article {
   font-size:15px;
   line-height:28px;
}
article h1 {padding: 0 0 30px 0;}
article h2 {
   color:#656565;
   padding: 0 0 30px 0;
   margin:0;
   font-size:24px;
   line-height:36px;
}
article p {
   padding:0 0 30px;
   margin:0;
   font-size:15px;
   line-height:28px;
}
article ul {padding:0 0 30px 20px;margin:0;}
article li {
   font-size:15px;
   line-height:28px;
}
.main-content a {color:#FF0077;text-decoration:none;}
.main-content a:hover {color:#000000;text-decoration:underline;}
blockquote {
       font-style: italic;
    border-left: 6px solid #2D879D;    color: #656565;
    padding-left: 20px;
   margin:20px 0;
}

/** TABLE STYLES **/
table {
   margin:30px 0;
   width:100%;
   border-collapse: collapse;
}
table th, thead td {
   background-color:#222222;
   color:#ffffff;
   padding:5px;
   text-align:left;
}
table td {
   padding:5px;
   text-align:left;
   font-size:15px;
   line-height:28px;
}
table tr:nth-child(odd) {background-color: #f8f8f8;}
.enroller-field-holder .ui-btn.ui-btn-active.ui-btn-icon-right {
    padding-right: 3em !important;
}



.ax-list-page .ax-course-title {text-align:center;}
#course_list td, #course_list td h2 {text-align:left !important;}
#course_list .ax-course-title {
   color: #656565;
    padding: 0 0 20px;
    margin: 0;
    font-size: 24px;
    line-height: 30px;
}
#course_list .ax-course-title a {
    color: #FF0077;
    text-decoration: none;
}
#course_list .ax-course-title a:hover {
    color: #000000;
    text-decoration: underline;
}
.button  {
   display: inline-block;
    padding: 10px 20px;
    color: #ffffff !important;
    background-color: #FF0077;
   margin:20px 0 0;
   font-weight:bold;
   transition: all 0.5s ease;
}
.ax-course-button .button {margin:0;}
.enquire-button .button {margin: 0;width:100%;text-align:center;padding:10px 0;}
.button:hover {
   background-color:#000000;
   text-decoration:none !important;
   color:#ffffff;
}
.screen-reader-text {display:none !important;}
.elementor-widget-accordion {
    margin-bottom: 30px;
}
.elementor-accordion-item .active {
   color:#ffffff;
   background-color:#FF0077;
}
.elementor-accordion-content, .elementor-accordion-title {background-color: #ffffff;}
.ax-course-introduction p {display:block !important;}
.page-template-template-coursedetail .elementor-column-wrap {padding:0 !important;}

.ax-course-introduction h2, .ax-course-introduction p {padding:0 0 15px 0}
.ax-course-introduction ul {padding:0 0 15px 30px}

div.ax-course-instance-list table {
    margin-left: 4% !important;
    margin-right: 4% !important;
    width: 92% !important;
}

/** SEARCH FORM **/
   .search-form {display:block;padding-bottom:40px;min-height: 52px;}
.home form.search-form {padding-bottom: 0px;}
   .search-form input[type="search"] {
      padding:10px 2%;
      background-color:#ffffff;
      border: 1px solid #d4d4d4;
      width: 65%;
      float:left;
      display:block;
      font-weight:bold;
      font-size:20px;
      line-height:20px;
      height:30px;
      margin:0;
      -webkit-appearance: none;
      border-radius:0;
   }
   .search-form input[type="submit"] {
      width:30%;
      float:left;
      display:block;
      border: 1px solid #FF0077;
      background-color:#FF0077;
      margin:0;
      color:#ffffff;
      font-weight:bold;
      font-size:20px;
      line-height:20px;
      height:52px;
      padding:10px 0;
      transition: all 0.5s ease;
      -webkit-appearance: none;
      border-radius:0;
   }
   .search-form input[type="submit"]:hover {background-color: #000000;}
   .search-form a {
      margin:10px 0 0 2%;
      display: block;
      font-size:13px;
      color:#000000;
      text-decoration:none;
   }
   .search-form a:hover {text-decoration: underline;}
.container.pageination {
    padding: 30px 0;
    text-align: center;
}
.wp-paginate.wpp-modern-grey a, .wp-paginate.wpp-modern-grey .current {
    border-radius: 0 !important;
    padding: 10px 15px !important;
}
.wp-paginate.wpp-modern-grey a:hover {
    background: #2d879d !important;
    color: #ffffff !important;
   border: 1px solid #2d879d !important;
}
.singlepost-navigation {
   padding: 20px 0;
    border-top: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2; 
   margin-top:30px;
}
.singlepost-navigation span, .singlepost-navigation span a {
   text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
}
.category-list {
   margin:0;padding:40px 0 20px;list-style:none;
}
.category-list li {
   display:inline-block;margin:0 10px 20px 0;
}
.category-list a {
   line-height:30px; 
      height:30px;
background-color: #EBEBEB;
   padding: 10px 15px;
   border-radius:20px;
   text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
   text-decoration:none;
   color:#242424;
      
}
.category-list a:hover {
   background-color: #FF0077;color:#ffffff;
}
.category-list .current-cat a {
background-color: #2D879D;color:#ffffff;
}
   .loop article .post-details {padding: 10px 0;}
.loop article h2 {padding:20px 0;}

/** ELEMENTOR STYLES **/

.elementor-tab-title.elementor-tab-desktop-title.active, .elementor-tab-content.elementor-clearfix {background-color:#ffffff;}
.page-id-8 .elementor-widget-tabs .elementor-tab-content {padding:0}
.elementor-toggle .elementor-toggle-content {
    padding: 20px !important;
    border: 1px solid #d4d4d4;
    display: none;
    background-color: #ffffff;
}
.elementor-toggle .elementor-toggle-title {color:#ffffff;background-color: #2D879D;}
.elementor-toggle .active {background-color:#FF0077;}

/** FORMS **/

.ginput_container input, .ginput_container textarea {border: 1px solid #d4d4d4;background-color: #ffffff;padding: 10px !important;}
.gform_footer input[type=submit] {border: none !important}


/** PAGE TEMPLATES **/

.narrow .page-copy {max-width: 800px;}


/** COURSE PAGE **/

.course-filter {display:none;border-top:1px solid #d4d4d4;}
.ax-course-list-record {padding:20px;margin:0 !important;border:1px solid #d4d4d4;border-bottom:none;}
.ax-course-list {border-bottom:1px solid #d4d4d4;}
.ax-course-list-record:nth-child(odd) {background-color:#ffffff;}
.page-template-template-course .search-form {margin-top:40px;}
.course-filter h4 {margin:15px 0;}
.courses .ax-course-name, .courses .ax-course-list-description {margin:0 0 20px;}

/** WHITE PAPER PAGE **/

.whitepaper .button {margin:0;width:100%;text-align:center;}

/* ==========================================================================
   Media Queries
   ========================================================================== */

@media only screen and (min-width: 480px) {



} @media only screen and (min-width: 768px) {

   .site-title {
      float:left;
      width:250px;
      height:auto;
   }
   h1.page-title {
       color: #000000;
       font-size: 50px;
       margin: 0;
       padding: 40px 0 60px;
   }
   .mobile-menu-icon {
      display:none !important;
   }
   .mobile-search-icon {
      display:none !important;
   }
   /** NAVIGATION **/
   .main-navigation {
      display:block;
   }
   .mobile-navigation {
      display:none !important ;
   }
   .main-navigation ul {
      padding:15px 0 0 0;margin:0 0 0 200px;list-style:none;
   }
   .main-navigation ul li {
      float:left;
      width:23%;
      display:block;
      text-align:left;
      border-bottom: 3px solid #000000;
      margin-left:5%;
      position: relative;
   }
   .main-navigation ul li:nth-of-type(1n+4) {border:none;}
   .main-navigation ul li a {
      display:block;
      padding:10px 0;
      color:#000000;
      font-weight:900;
      text-decoration:none;
      font-size:18px;
      transition: all 0.5s ease;
   }
   .main-navigation ul li a:hover {color:#2A324B;}
   .main-navigation ul li ul.sub-menu { 
     display: none; /* hides sub-menu */
     opacity: 0;
     position: absolute;
     top: 100%;
     left: 0;
     width: 100%;
     /* transform: translateY(2em); */
     z-index: 10;
     /* transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;*/
    
     padding: 0 !important;
     margin: 0 !important;
     background-color: #000000;
   }
   .main-navigation ul li ul.sub-menu li {
      width:100%;
      margin:0;padding:0;border:none;
   }
   .main-navigation ul li ul.sub-menu li a {color:#ffffff;padding:5px;font-size:15px;font-weight:400;}
   .main-navigation ul li ul.sub-menu li a:hover {background-color:#FF0077;}
   .main-navigation ul li:hover .sub-menu {
     display: block; /* shows sub-menu */
     opacity: 1;
     /* transform: translateY(0%);
     transition-delay: 0s, 0s, 0.3s; /* this removes the transition delay so the menu will be visible while the other styles transition */
   }
   
   /** SLIDER **/
    #slider ul li {
      height:400px;
   }
   .header-cta {
      height:160px;
      float:left;
      width: calc(50% - 40px);
   }
   .postedby {float:right;}
   
   
   /** INTRO CTAs **/
   .intro-cta {
      width: calc(50% - 40px);
      float:left;
   }
   .intro-cta h2 {
      font-size:40px;
      line-height:40px;
   }
   
   /** TESTIMONIALS **/
   .testimonials {padding:40px 20px 20px 20px;}
   .testimonials h2 {
      font-size:40px;
      line-height:40px;
      float:left;
   }
   .testimonials .bx-wrapper {
      float:right;
      width:60%;
   }
   
   /** LOGO SLIDER **/
   .logo-slider {
      padding:50px 0;
   }
   .logo-slider h2 {
      font-size: 40px;
      line-height: 40px;
   }
   
   /* HOME PAGE NEWS **/
   .latest-news {
      padding:50px 0;
   }
   .latest-news-item {
      margin-bottom:30px;
   }
   .latest-news h2 {
      font-size: 40px;
      line-height: 40px;
   }
   .latest-news li {
      height:400px;
      float:left;
      width:33.3333%;
   }
   .latest-news div {
      margin-right:40px;
   }
   
   table th, table td {
      padding:10px;
   }
   table .button {padding:5px 10px}
   .rightlink {float:right;}
   
   
   .loop article {width:48%;margin:30px 4% 20px 0;float:left;}
   .loop article:nth-child(even) {margin-right:0;}
   /*
   .loop article .blog-feature img {margin-top:0;}
   */
   
   /** COURSE PAGE **/

   .course-filter {display:block;width:20%;float:left;
    border-right: 1px solid #cccccc;
    margin-right: -1px !important;
   }
   .courses {
      float: left;
      width: 79%;
   }
   
   div.ax-course-instance-list table {
       margin-left: auto !important;
       margin-right: auto !important;
       width: 100% !important;
   }
   
   

   
	

} @media only screen and (min-width: 1024px) {
   header {
      padding-top:20px;
   }
   /** SLIDER **/
   #slider {
      width:70%;
      float:left;
      margin-top:20px;
   }
   /** HEADER CTA's **/
   .header-cta-container {
      width:30%;
      float:left;
      margin-top:40px;
   }
   .header-cta {
      width:auto;
      float:none;
   }
   /** HOME INTRO **/
   .home-intro {
      padding:50px 0;
   }
   
   .newsletter {
      position: relative;
      padding: 50px 0;
   }
   .newsletter-left {
      position: absolute;
      width: 50%;
      z-index:2;
      float:left;
      
      -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.1);
-moz-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.1);
box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.1);
   }
   .newsletter-left h2 {
      font-size:40px;
      line-height:40px;
   }
   .newsletter-left p {
      max-width:60%;
   }
   .newsletter-right {
      float:right;
      background-position: top center; 
      background-repeat: no-repeat;
      -webkit-background-size: cover;
      -moz-background-size: cover;
      -o-background-size: cover;
      background-size: cover;
      width:55%;
      display:block;
      margin-top:40px;
   } 
   
   .footer-navigation ul li {
      padding:0;list-style:none;
      float:left;width:25%;
   }
   .footer-navigation ul li ul li {width:100%;}
   


}

/* ==========================================================================
   Helper classes
   ========================================================================== */

.hidden {
    display: none !important;
    visibility: hidden;
}

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

.invisible {
    visibility: hidden;
}

.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}
* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

/* ==========================================================================
   Print styles
   ========================================================================== */

@media print {
    *,
    *:before,
    *:after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }

    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}