/* Limited CSS reset */
/* See normalize.css */

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  font-size: 15px; /* Override size set by Bootstrap. This affects rules using "rem" units!!! */
}

body {
  font-size: 15px;
  color: #333;
  font-family: 'Raleway', sans-serif;
  font-weight: 500;
}

/* Layout styles ----------------------------------------------------------------*/
.clear {
  clear: both;
}

.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}

.halign-l {
  text-align: left;
}

.halign-r {
  text-align: right;
}

.halign-c {
  text-align: center;
}

.valign-t {
  vertical-align: top;
}

.valign-m {
  vertical-align: middle;
}

.valign-b {
  vertical-align: bottom;
}

.css-table {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.css-table-cell {
  display: table-cell;
}

.img-width-auto {
  max-width: 100%;
  width: auto;
  height: auto;
}

.pad-box {
  padding: 20px;
}

.constrain-1000w {
  max-width: 1030px;
  margin: 0 auto;
  position: relative;
}

.constrain-1920w {
  max-width: 1920px;
  margin: 0 auto;
}

figure.csc-textpic-image {
  margin: 0;
}

/* ----------------------------- */
/* Bootstrap full height columns */
/* ----------------------------- */
/* Full height Bootstrap row */
/* Requires the following HTML structure
            <div class="row">
               <div class="bs-row-full-height">
                <div class="col-xs-6 bs-col-full-height">
                  <div class="bs-col-inside">
                    Your content in here
                  </div>
                </div>
              </div>
            </div>
*/
.bs-row-full-height {
  display: table;
  width: 100%;
  height: 100%;
  table-layout: fixed;
}

/* Full height Bootstrap column */
.bs-col-full-height {
  display: table-cell;
  float: none;
  height: 100%;
}

/* Column internal container for full height Bootstrap column */
.bs-col-inside {
  margin-top: 1px;
  margin-bottom: 1px;
}

/* Header styles ----------------------------------------------------------------*/
header {
  top: 0;
  width: 100%;
  table-layout: fixed;
  z-index: 1000;
  margin-bottom: 40px;
  border-top: 15px solid #A9CF44;
}

header img {
  max-width: 100%;
}

.header-row1 {
  position: fixed;
  z-index: 2000;
  display: none;
}

.header__mobile-menu-bar {
  position: relative;
  background-color: #A9CF44;
  color: white;
  padding: 4px 15px 0;
}

.header__mobile-menu-bar .css-table-cell:last-child {
  text-align: right;
}

.header-row2 {
  padding: 32px 0 16px;
}

[class*="header-row2__col"] {
  display: inline-block;
}

.header-row2__col1,
.header-row2__col3 {
  width: calc((100% - 308px) / 2);
}

.header-row2__col1 {
  float: left;
}

.header-row2__col2 {
  width: 308px;
  float: left;
}

.header-row2__col3 {
  float: right;
}

.header__cta-newsletter,
.header__cta-phone {
  display: block;
  width: 100%;
  text-align: right;
  font-weight: 600;
}

.header__cta-phone--desktop {
  color: #1F3D83;
}

.header__cta-phone--mobile {
  display: none;
}

a.header__cta-phone--mobile,
a.header__cta-phone--mobile:visited,
a.header__cta-phone--mobile:hover,
a.header__cta-phone--mobile:focus,
a.header__cta-phone--mobile:active {
  color: #1F3D83;
  text-decoration: none;
}

.header-social-icon-link:not(:first-child) {
  margin-left: 7px;
}

.header-social-icon {
  width: 20px;
  height: auto;
}

.header-phone-num--desktop {
  margin-top: .5rem;
  color: #434747;
  font-weight: bold;
}

.header-phone-num--mobile {
  display: none;
}

.header-row3 {
  /*background-color: #A9CF44;*/
  text-align: center;
}

.nav--ucase {
  text-transform: uppercase;
}

#myModal.modal {
  top: 40px;
}

/* Content styles ---------------------------------------------------------------*/
#masthead {
  /*background-color: #A9CF44;*/
  padding: 0 20px;
}

#masthead h1,
#masthead h2 {
  font-size: 1.6rem;
  color: #A9CF44;
  font-weight: 300;
}

#masthead p {
  margin: 10px 0;
  color: #324081;
  font-size: 2.2em;
  font-weight: 300;
}

#site-body {
  overflow: hidden; /* prevent container collapse */
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: bold;
  margin-top: .5em;
  margin-bottom: .5em;
  color: #A9CF44;
}

h1,
h2,
h3 {
  font-size: 1.4rem;
}
/*
h3 {
  font-size: 1.2em;
}
*/

a,
a:visited,
a:hover,
a:active,
a:focus {
  color: #A9CF44;
  text-decoration: none;
}

a:hover,
a:active,
a:focus {
  text-decoration: underline;
}

#site-body ul,
footer ul {
  list-style-type: none;
  padding-left: 0;
}

#site-body ul li,
footer ul li {
  list-style-position: inside
}

#site-body ul li:before,
footer ul li:before {
  content: '\2022';
  margin-right: 7px;
  font-size: 1.3em;
  line-height: 1.2em;
  color: #A9CF44;
}

footer ul li:before {
  color: #333;
}

#site-body img {
  max-width: 100%;
  height: auto;
}

ol {
  padding-left: 0;
}

ol > li {
  padding-bottom: 5px;
  list-style-position: inside;
}

hr {
  border-top: 1px solid #A9CF44;
}

#site-body .one-col-layout {
  padding: 15px 0 15px;
  text-align: center;
}

#site-body .one-col-layout p:first-child,
#site-body .one-col-layout h1:first-child,
#site-body .one-col-layout h2:first-child,
#site-body .one-col-layout h3:first-child,
#site-body .one-col-layout h4:first-child {
  margin-top: 0;
}

/* Footer styles ----------------------------------------------------------------*/
footer {
  margin-top: 25px;
  padding: 22px 0;
  background-color: #A9CF44;
  color: #333;
}

footer a,
footer a:visited,
footer a:hover,
footer a:focus,
footer a:active {
  color: #fff;
  text-decoration: none;
}

footer a:hover,
footer a:active,
footer a:focus {
  text-decoration: underline;
}

footer h1,
footer h2,
footer h3,
footer h4,
footer h5 {
  color: #fff;
}

footer h2 {
  font-size: 1.5rem;
}

footer h2,
footer h3 {
  font-weight: bold;
}

footer img {
  max-width: 100%;
  height: auto;
}

.footer__col2,
.footer__col3 {
  text-align: center;
}

.footer__col4 {
  text-align: right;
}

.footer__col1 h1:first-child,
.footer__col1 h2:first-child,
.footer__col1 h3:first-child,
.footer__col1 h4:first-child,
.footer__col1 h5:first-child,
.footer__col2 h1:first-child,
.footer__col2 h2:first-child,
.footer__col2 h3:first-child,
.footer__col2 h4:first-child,
.footer__col2 h5:first-child,
.footer__col3 h1:first-child,
.footer__col3 h2:first-child,
.footer__col3 h3:first-child,
.footer__col3 h4:first-child,
.footer__col3 h5:first-child,
.footer__col4 h1:first-child,
.footer__col4 h2:first-child,
.footer__col4 h3:first-child,
.footer__col4 h4:first-child,
.footer__col4 h5:first-child {
  margin-top: 0;
}

footer .social-media-link:first-of-type {
  margin-right: 25px;
}

footer .social-media-link .fa {
  font-size: 2.2em;
}


/* ------------------------ */
/* 6__Typo3 Overrides       */
/* ------------------------ */
/* This fixes issues caused by Typo3 fluid layouts for our top hero image */
#top-hero-wrap .ce-gallery,
#top-hero-wrap .ce-gallery .ce-column {
  float: none;
}

#top-hero-wrap .ce-gallery img {
  max-width: inherit;
  width: auto;
  height: 100%;
}

#top-hero-wrap .ce-intext.ce-right .ce-gallery {
  margin-left: 0;
  margin-bottom: 0;
}

#top-hero-wrap > div[id^="c"],
#top-hero-wrap .ce-textpic,
#top-hero-wrap .ce-gallery,
#top-hero-wrap .ce-outer,
#top-hero-wrap .ce-inner,
#top-hero-wrap .ce-row,
#top-hero-wrap .ce-column,
#top-hero-wrap .ce-media {
  height: 100%;
}

/* Typo3 overrides for correct image height in #top-hero-wrap once inside of a flexslider */
#top-hero-wrap .flexslider {
  margin-bottom: 0;
  border: none;
}

#top-hero-wrap > div {
  height: 100%;
}
#top-hero-wrap > div .tx-ws-flexslider {
  height: 100%;
}
#top-hero-wrap > div .tx-ws-flexslider .flexslider {
  height: 100%;
}
#top-hero-wrap > div .tx-ws-flexslider .flexslider ul.slides {
  height: 100%;
}

#top-hero-wrap > div .tx-ws-flexslider .flexslider ul.slides > li {
  height: 100%;
}

#top-hero-wrap > div .tx-ws-flexslider .flexslider ul.slides > li > div {
  height: 100%;
}

#top-hero-wrap > div .flexslider .slides img {
  width: inherit;
}


/* Typo3 overrides - fixes for IE 11 */
.ce-gallery,
.ce-column {
  max-width: 100%;
  /* width: 100% */ /* this is optional, but will allow the column to go full width in mobile view */
}

.ce-gallery img {
  max-width: 100%;
  height: auto;
}



/* Bootstrap Overrides ----------------------- */
.btn-primary {
  color: #fff;
  background-color: #A9CF44;
  border-color: #93b53c;
}

.btn-primary:hover {
  color: #fff;
  background-color: #93b53c;
  border-color: #7a9732;
}

.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #7a9732;
  border-color: #6c862c;
}

.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #7a9732;
  border-color: #6c862c;
}

.btn-primary:active:hover, .btn-primary.active:hover, .open > .dropdown-toggle.btn-primary:hover, .btn-primary:active:focus, .btn-primary.active:focus, .open > .dropdown-toggle.btn-primary:focus, .btn-primary:active.focus, .btn-primary.active.focus, .open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #6c862c;
  border-color: #5a6f24
}

a.btn,
a.btn:visited,
a.btn:hover,
a.btn:active,
a.btn:focus {
  color: #fff;
  white-space: pre-wrap;
}

/* ------------------------------------------------------------
 * Media Queries ----------------------------------------------
 * ------------------------------------------------------------*/
@media only screen and (min-width: 481px) {
  .flex-row {
    display: flex;
    flex-wrap: wrap;
  }

  .flex-row > [class*='col-'] {
    display: flex;
    flex-direction: column;
  }

  .flex-row.row:after,
  .flex-row.row:before {
    display: flex;
  }
}

@media all and (max-width: 1920px) {
  .constrain-1920w {
    width: 100%;
  }
}

/* Large Devices, Wide Screens (Bootstrap col-lg-*) */
@media only screen and (max-width: 1200px) {
}

@media all and (max-width: 1020px) {
  header {
    border-top: none;
  }

  .header__cta-phone--desktop {
    display: none;
  }

  .header__cta-phone--mobile {
    display: block;
  }

  #site-body .one-col-layout {
    padding: 15px 15px 0;
  }

  #masthead {
    padding-left: 15px;
    padding-right: 15px;
  }

  .header-row1 {
    display: block;
  }

  .header-row2 {
    padding-top: 65px;
  }

  .header-row2__col3 {
    padding-right: 15px;
  }
}

@media all and (max-width: 1000px) {
  .constrain-1000w {
    width: 100%;
  }
}

/* Medium Devices, Desktops (Bootstrap col-md-*) */
@media only screen and (max-width: 992px) {
  .footer__col2 {
    text-align: right;
  }

  .footer__col3 {
    text-align: left;
  }
}

@media all and (max-width: 920px) {
  header {
    margin-bottom: 15px;
  }

  #masthead p {
    font-size: 1.7em;
  }
}

@media all and (max-width: 840px) {
  .header-row2__col1 {
    display: none;
  }

  .header-row2__col2,
  .header-row2__col3 {
    display: block;
    width: 100%;
    float: none;
    text-align: center;
  }

  .header-row2__col2 {
     margin-bottom: 20px;
  }

  .header-row2__col3 {
    margin-bottom: 15px;
    padding-left: 15px;
  }

  .header__cta-newsletter {
    display: table-cell;
    width: 55%;
  }

  .header__cta-phone {
    display: table-cell;
    width: 45%;
  }

  .header__cta-newsletter {
    text-align: left;
  }
}

/* Small Devices, Tablets (Bootstrap col-sm-*) */
@media only screen and (max-width: 768px) {
  .header-phone-num--desktop {
    display: none;
  }

  .header-phone-num--mobile {
    display: block;
    margin-top: 2px;
  }

  .header-phone-num--mobile,
  .header-phone-num--mobile:visited,
  .header-phone-num--mobile:hover,
  .header-phone-num--mobile:focus,
  .header-phone-num--mobile:active {
    color: #434747;
    font-weight: bold;
    text-decoration: none;
  }

  footer .bs-col-full-height {
    display: block;
  }

  [class*="footer__col"] {
    text-align: center;
  }

  .footer__col2,
  .footer__col3,
  .footer__col4 {
    margin-top: 15px;
  }
}

@media all and (max-width: 700px) {
  body {
    font-size: 95%;
  }
}

@media all and (max-width: 530px) {
  .header-phone-num--mobile {
    margin-top: 12px;
  }

  #masthead p {
    font-size: 1.4em;
  }
}

/* Extra Small Devices, Phones (Bootstrap col-xs-*) */
@media only screen and (max-width: 480px) {
}

@media all and (max-width: 400px) {
  #site-body {
    font-size: .9em;
  }

  .footer-logo {
    max-width: 290px;
  }
}

@media all and (max-width: 380px) {
  #header-logo {
    width: 200px;
    height: auto;
  }

  .header__cta,
  .header__cta-newsletter,
  .header__cta-phone {
    display: block;
    width: 100%;
    text-align: center;
  }

  .header__cta-phone {
    margin: 10px 0 5px;
  }
}

/* Custom, iPhone Retina */
@media only screen and (max-width: 320px) {
}