*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body{
  font-size: 1.125rem;
  line-height: 1.5;
  font-family:Arial, Helvetica, sans-serif;
  color: #475467;
}

img{
  border: 0;
  max-width:100%;
}

a{
  text-decoration: none;
  cursor:pointer;
  transition:.7s color, .7s background-color;
  color:#B5D137;
}
a:focus{
  outline: none;
}
a:hover{
  transition:.3s color, .3s background-color;
}



h2{
  color:#205930;
  font-weight:700;
  font-size: 45px;
  line-height: 55px;
  margin: 30px 0 15px 0;
}


h3{
  font-size: 25px;
  line-height: 1.5;
  margin: 30px 0 15px 0;
}


h4{
  font-size: 16px;
  font-weight: 600;
  margin: 30px 0 5px 0;
}

h2:first-child,h3:first-child, h4:first-child{
  margin-top:0;
}

p{
  margin-bottom: 15px;
}
p:last-child{
  margin-bottom:0;
}

ul, ol{
  margin: 0 0 15px 30px;
}

.bold{
  font-weight:700;
}

.large{
  font-size: 25px;
  line-height: 1.5;
  margin-bottom: 15px; 
}
.small{
  font-size: 16px;
  line-height: 24px;
}
.tiny{
  font-size: 14px; 
  line-height: 18px; 
}

.clear{ clear: both; }

.container{
  margin: 0 auto;
  width: 90%;
  max-width: 1200px;
  position:relative;
}
.container.narrow{
  max-width: 850px;
}

.flex{
  display:flex;
}
.flex.wrap{
  flex-wrap:wrap;
}
.flex.end{
  align-items:flex-end;
}
.flex.vert{
  align-items:center;
}

.flex .half{
  width: 47%;
  margin-right: 6%;
}
.flex .half:nth-child(2n+2){
  margin-right:0;
}

.flex .third{
  width: 30%;
  margin-right: 5%;
}
.flex .third:nth-child(3n+3){
  margin-right:0;
}
.flex .third-twothirds{
  width: 65%; 
}

.full{
  width:100%;
}

.flex .twothirds{
  width: 65%;
}
.flex .twothirds-third{
  width: 30%;
  margin-left: 5%;
}

.flex .quarter{
  width: 23%;
  margin-right: 2.6666666667%; 
}
.flex .quarter:nth-child(4n+4){
  margin-right:0;
}

.flex .auto{
  flex:auto;
  margin-right: 25px; 
}
.flex .auto:last-child{
  margin-right:0;
}

.flex.item-bottom-margin div:first-child{ 
  margin-bottom: 25px; 
}


.margined{
  margin: 100px auto;
}
.margined-small{
  margin: 20px 0;
}
.margined-med{
  margin: 40px 0;
}
.margined-med-auto{
  margin: 40px auto;
}


.topmargin{
  margin-top: 75px;
}
.bottommargin{
  margin-bottom: 75px;
}

.padded{
  padding: 50px;
}
.padded-small{
  padding: 20px; 
}
.vpadded{
  padding: 50px 0;
}

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

.relative{
  position:relative;
}


.float{
  float:right;
}



.button {
  display:inline-block;
  color:#FFF;
  padding: 15px 25px; 
  text-transform: uppercase;
  font-weight:bold;
  font-size: 16px; 
  line-height: 20px;
  transition:.3s padding; 
  text-align:center;
  transition:.3s padding; 
  border:0;
  cursor:pointer; 
}
.button:hover{
  padding: 15px 40px;
  transition:.3s padding; 
}

.button.round{
  border-radius: 10px; 
}
.button.block{
  width:100%;
  display:block;
}
.button.block:hover{
  padding: 15px 25px; 
}

.parallelogram{
  transform: skew(-20deg);
}

.skew-fix{
  display:inline-block;
  transform: skew(20deg);
}

.darkgreen{  background-color: #305834;}
.lightgreen{  background-color: #BAD054;}
.light{ background-color: #F4F7F4; }

.text-darkgreen{  color: #305834;}
.text-lightgreen{  color: #BAD054;}
.text-white{ color:#FFF; } 
.text-black{ color:#000; } 


.inline{
  display:inline;
}
.inlineblock{
  display:inline-block;
}
.block{
  display:block;
}
.block-img{
  display:block;
  width: 100%;
}
.bordered-img{
  border-bottom: 7px solid #B5D137;
}

.bgcover{
  background-size:cover;
  background-position: center center;
}


.headerspace{
  height: 100px; 
}

.header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height: 100px;
  z-index: 10;
  background-color:#FFF; 
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
}
.header .container{
  height: 100px;
}
.header h1{
  width:100px;
}

.header nav{
  align-items:flex-end;
  margin-left: auto;
  white-space: nowrap; 
}

.header nav a{
  display: inline-block;
  padding: 10px 15px; 
  color: #205930;
  font-weight:700;
  font-size: 17px;
  margin-left: 5px; 
}
.header nav a img{
  width: 10px; 
  vertical-align:middle; 
}

.header nav a.current{
  color: #B5D137;
}

.header nav a.contact{
  background-color:#205930;
  color:#FFF; 
}
.header nav a.contact.current{
  background-color:#B5D137;
}

.header nav .subnav{
  position:absolute;
  z-index:10;
  top:100%;
  left:10px;
  box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
  border: 1px solid #CCC; 
  border-radius: 10px; 
  background-color:#FFF;  
  display:none;
}

.header nav .has-subnav:hover .subnav{
  display:block;

}
.header nav .subnav a{
  font-size: 14px; 
  padding: 5px 10px; 
}


.hero{
  height: 55vh;
  min-height: 500px; 
}

.hero .hero-shape{
  position:absolute;
  top:0;
  left:0;
  width: 70%;
  height: 100%;
  transform: skew(-30deg);
  background-color:rgba(32, 89, 48, .8); 
  mix-blend-mode: multiply;
}

.hero.standard{
  height: 320px;
  min-height: 320px; 
}
.hero.standard .hero-shape{
  left: 5%; 
  width: 65%; 
}

.hero .hero-text{
  color:#FFF; 
  font-size: 44px; 
  line-height: 50px; 
  font-weight: 700;
  position:relative;
  z-index: 1; 
  width: 40%;
  margin-left: 25%;
  height: 100%; 
  max-width: 600px; 
}

.icon{
  height: 40px;
}


.bgright{
  position:absolute;
  top:0;
  right:0;
  width: 60%;
  height: 100%; 
}

.light-shape{
  clip-path: polygon(0 0, 100% 0%, 75% 100%, 0% 100%);
  width: 70%; 
  background-color:#F4F7F4;
  padding: 100px 0;
}

.light-shape .light-shape-inside{
  width: 60%; 
  margin-left:auto;
  margin-right: 15vw; 
  position:relative;
  max-width: 700px; 
}

.foot-logo{
  width: 100px; 
}

.copy{
  opacity: .6; 
}

.foot-nav{
  columns:2;
  column-gap: 25px; 
}
.foot-nav a{
  display:block;
  color:#FFF; 
  margin-bottom: 15px; 
}

.restrict{
  max-width: 800px; 
}

.gone{ display:none; }
.here{ display:block; }


.link-item{
  display:block;
  border-left: 4px solid #F2F4F7; 
  transition:.5s border;   
  color: #475467;
  padding: 20px; 
}

.link-item:hover{
  border-left: 4px solid #205930;
}
.link-item.active{
  border-left: 4px solid #B5D137;
  transition:.5s border; 
}



.subscribe .subscribe-input{
  width: 100%;
  background:none;
  border:none; 
  background-color:#FFF;
  border-radius: 50px; 
  padding: 0 15px; 
  height: 60px; 
  border: 1px solid #E0E7E2; 
  transition:.3s border; 
  font-size: 1.125rem;
  line-height: 1.5;
  font-family:Arial, Helvetica, sans-serif;    
}
.subscribe .subscribe-input:focus{
  border: 2px solid #205930;
  outline: none;
  transition:.3s border; 
}

.subscribe .subscribe-button{
  position:absolute;
  top: 10px;
  right: 10px; 
  background-color:#205930;
  color:#FFF; 
  font-size: 1.125rem;
  line-height: 1.5;
  font-family:Arial, Helvetica, sans-serif;  
  border:0;
  border-radius: 20px; 
  height: 40px; 
  padding: 0 40px; 
  cursor:pointer;
  transition:.7s background-color;
}
.subscribe .subscribe-button:hover{
  background-color: #B5D137;
  transition:.3s background-color;
}


.socials a{
  margin-right: 15px; 
}
.socials img{
  width: 24px; 
  opacity: .4;
  transition:.3s opacity; 
}
.socials a:hover img{
  opacity: .6;
  transition:.3s opacity; 
}

.angle{
  position:absolute;
  top:-2px;
  left:-2px;
  width: 60px; 
  transition:.3s width;
} 


.label{
  display:block; 
  font-size: .875rem; 
  margin: 20px 0 5px 0;
}

.input{
  display:block;
  width:100%; 
  border: 1px solid #E0E7E2; 
  transition:.3s border; 
  font-size: 1rem;
  line-height: 1.5;
  font-family:Arial, Helvetica, sans-serif;   
  padding: 10px;  
  border-radius: 5px; 
}  
.input:focus{
  border: 1px solid #205930;
  outline: none;
  transition:.3s border; 
}

.fade-in {
    opacity: 0;
    animation: fadeIn 0.7s forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}


.hidden { display: none; }
.visible { display: block; } 


.modal{
  position:fixed;
  z-index: 30; 
  top:0;
  left:0;
  width:100%;
  height: 100%;
  background-color:rgba(32, 89, 48, .6); 
}
.modal .modal-close{
  position:absolute;
  top:0;
  right:10px;
  font-size: 25px; 
  color:#205930;
}

.modal .modal-inner{
  background-color:#FFF;
  box-shadow: 0 0 10px #000; 
  border-radius: 5px; 
  z-index: 40; 
  padding: 30px; 
  width: 80%;
  max-width: 500px; 
  margin: 0 auto; 
  position:relative;
  z-index: 40; 
}

.download-terms{
  font-size: 12px; 
  line-height: 1.3;
}