.hide {
  display: none;
}
@import url("https://fonts.googleapis.com/css?family=Cardo:400,700");
html {
  font-size: 16px;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  line-height: 1.5;
  font-weight: 400;
  font-size: 1rem;
}
a[href] {
  color: #2d6727;
  text-decoration: underline;
}
@media screen and (max-width: 768px) {
  .glyphicon.huge-icon {
    font-size: 25vw;
  }
}
@media screen and (min-width: 769px) {
  .glyphicon.huge-icon {
    font-size: 200px;
  }
}
html {
  height: 100%;
}
body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: 100%;
}
.stripe {
  position: relative;
}
.stripe-content {
  box-sizing: border-box;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .stripe-content {
    padding-right: 25px;
    padding-left: 25px;
  }
}
@media screen and (min-width: 769px) {
  .stripe-content {
    padding-right: 50px;
    padding-left: 50px;
  }
}
.site-header,
.site-footer {
  flex-shrink: 0;
}
main {
  flex: 1;
  flex-shrink: 0;
}
.site-header {
  background-color: #fff;
  border-bottom: 7px solid #2d6727;
  color: #222;
}
.site-header-content {
  display: flex;
}
@media screen and (max-width: 768px) {
  .site-header-content {
    flex-direction: column;
    align-items: stretch;
    padding-top: 10px;
    padding-bottom: 10px;
  }
}
@media screen and (min-width: 769px) {
  .site-header-content {
    flex-direction: row;
    align-items: center;
    padding-top: 20px;
    padding-bottom: 20px;
  }
}
.site-header-content a[href] {
  text-decoration: none !important;
}
.site-header-content h1 {
  margin: 10px 0;
  flex-shrink: 0;
  font-size: 38px;
  font-weight: 500;
}
.site-header-content h1 a {
  color: inherit !important;
}
@media screen and (max-width: 768px) {
  .site-header-content h1 {
    text-align: center;
  }
}
.primary-nav {
  width: 100%;
}
.primary-nav ul {
  list-style-type: none;
  margin: unset;
  padding: unset;
  display: flex;
  align-items: center;
  min-height: 60px;
}
@media screen and (max-width: 768px) {
  .primary-nav ul {
    flex-direction: row;
    justify-content: center;
  }
}
@media screen and (min-width: 769px) {
  .primary-nav ul {
    flex-direction: row;
    justify-content: flex-end;
  }
}
.primary-nav li {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
.primary-nav li + li {
  margin-left: 20px;
}
.primary-nav a[href] {
  border-bottom: 3px solid;
  color: #478241;
  display: block;
  padding: 10px;
  padding-top: 5px;
}
.primary-nav a[href]:not(.active) {
  border-bottom-color: transparent;
}
.site-footer {
  color: #222;
}
.site-footer-content {
  display: flex;
  padding-top: 40px;
  padding-bottom: 20px;
  border-top: 1px solid #ddd;
}
@media screen and (max-width: 768px) {
  .site-footer-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}
@media screen and (min-width: 769px) {
  .site-footer-content {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
}
.site-footer-content .tpb-symbol {
  margin: -20px;
  margin-right: -40px;
}
@media screen and (max-width: 768px) {
  .site-footer-content .tpb-symbol {
    margin-top: 10px;
    max-height: 200px;
  }
}
@media screen and (min-width: 769px) {
  .site-footer-content .tpb-symbol {
    max-height: 120px;
  }
}
.main-hero {
  position: relative;
  width: 100%;
  height: 100%;
}
.main-hero .background {
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}
.main-hero .background,
.main-hero .background .layer {
  position: absolute;
  min-height: 100%;
  min-width: 100%;
}
.main-hero .background .layer-1 {
  filter: sepia(20%);
}
.main-hero .background .layer-2 {
  width: 100%;
  height: 100%;
  box-shadow: inset 0 0 30vw 10vw rgba(0,0,0,0.5);
}
.content--hero {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  position: relative;
  z-index: 1;
  padding-top: 50px;
  padding-bottom: 50px;
}
.content--hero .hero {
  background: rgba(71,130,65,0.85);
  color: #fff;
  font-size: 150%;
  padding: 40px;
}
@media screen and (max-width: 768px) {
  .content--hero .hero {
    width: 100%;
  }
}
@media screen and (min-width: 769px) {
  .content--hero .hero {
    width: 60%;
  }
}
.main-intro {
  font-size: 120%;
  padding-top: 50px;
  padding-bottom: 50px;
}
.main-intro .tpb-symbol-paragraph {
  text-align: center;
  margin: 0 auto;
  max-width: 400px;
}
.main-intro .tpb-symbol {
  max-width: 100%;
  margin-right: -20%;
}
.page--services .stripe-content {
  padding-top: 50px;
  padding-bottom: 50px;
}
.content--services .tpb-symbol {
  max-width: 200px;
  float: right;
  margin-right: -35px;
  margin-top: -20px;
}
.content--contact {
  padding-top: 50px;
  padding-bottom: 50px;
}
.content--contact hr {
  margin: 50px auto;
}
@media screen and (min-width: 769px) {
  .content--contact hr {
    max-width: 75%;
  }
}
.contact-form {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.contact-form label {
  margin-top: 0.25em;
  font-weight: 600;
}
.contact-form label > span {
  display: block;
  margin-bottom: 0.1em;
}
.contact-form label,
.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  font-weight: normal;
}
.contact-form input.touched:invalid,
.contact-form select.touched:invalid,
.contact-form textarea.touched:invalid {
  border-color: #f00;
  color: #8c1515;
}
.contact-form .g-recaptcha {
  margin-top: 0.25em;
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
}
.contact-form .submission {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin: 20px 0;
  width: 100%;
}
.contact-form .submission > .submit-button {
  margin-top: 20px;
}
.contact-form .submission-notice {
  text-align: right;
  width: 100%;
}
.form-error {
  color: #8c1515;
  font-size: 125%;
}
.content--received {
  padding-top: 50px;
  padding-bottom: 50px;
}
.content--received p {
  text-align: center;
  font-size: 120%;
}
.content--received .sent-icon {
  margin: 50px;
  color: #478241;
}
.content--received .output {
  margin-top: 50px;
  word-wrap: break-word;
  min-height: 200px;
}
.page--error .error-icon {
  margin: 80px 0 50px;
  opacity: 0.75;
}
.page--error h2,
.page--error p {
  text-align: center;
}
.page--error p {
  font-size: 120%;
}
.btn-green {
  background-color: #478241;
  border-color: #478241;
  color: #fff;
}
a.btn-green:hover,
.btn.btn-green:hover {
  color: #fff;
}
.btn-xlg {
  font-size: 150%;
  padding: 10px 20px;
}
.link-paragraph {
  font-size: 150%;
  padding-top: 30px;
  text-align: center;
}
.large-link {
  color: #478241;
}
