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

body{
  font-size: 16px;
  line-height: 24px;
  font-family: 'Roboto', sans-serif;
}

.roboto{
  font-family: 'Roboto', sans-serif;
}
.pt{
  font-family: 'PT Sans Narrow', sans-serif;
  font-weight: 400; 
}
.thin{
  font-weight: 100; 
  font-size: 25px; 
  line-height: 35px; 
}


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

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

}




h2{
  font-size: 40px;
  line-height: 45px;
  font-weight: 300; 
  color: #024460;
  margin-bottom: 20px; 
}




h3{
  font-family: 'Roboto', sans-serif;
  color: #024460; 
  font-size: 30px; 
  line-height: 32px; 
  font-weight:300;
  margin: 0 0 20px 0;
}


h4{
  font-family: 'PT Sans Narrow', sans-serif;
  font-weight: 400; 
  font-size: 38px; 
  line-height: 38px; 
  position:relative;
  margin-bottom: 20px; 
}
h4.small{
  font-family: 'Roboto', sans-serif;
  font-size: 20px; 
  font-weight: 700;
  font-style:italic; 
}
h4.has-half-bg{
  padding: 0 40px 5px 10px; 
  display: inline-block; 
}
  
h4 .half-bg{
  display:block;
  position:absolute;
  bottom:0;
  left:0;
  width:100%; 
  height: 50%;
  background-color: #05617B;  
  z-index: 1; 
}
h4 .text{
  position:relative;
  z-index: 2; 
}


h5{
  font-family: 'PT Sans Narrow', sans-serif;
  font-weight: 400; 
  font-size: 28px; 
  line-height: 32px;
  margin-bottom: 20px; 
}


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;
}

.large{
  font-size: 23px;
  line-height: 32px;
}
.small{
  font-size: 14px;
  line-height: 20px;
}


.light{
  font-weight:300;
}
.semi{
  font-weight: 600;
}

.clear{ clear: both; }

.container{
  margin: 0 auto;
  width: 96%;
  max-width: 1500px;
  position:relative;
}
.container.wide{
  max-width: 96%; 
}
.container.med{
  max-width: 1200px; 
}

.container.narrow{
  max-width: 700px;
}

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

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

.flex .third{
  width: 32%;
  margin-right: 2%;
}
.flex .third:nth-child(3n+3){
  margin-right:0;
}

.flex .third.nomargin{
  width: calc(100% / 3); 
  margin-right: 0; 
}

.flex .side{
  width: 40%; 
}
.flex .main{
  width: 60%;
  padding-left: 50px; 
}


.margined{
  margin: 75px auto;
}
.margined-small{
  margin: 20px auto;
}

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

.padded{
  padding: 75px;
}
.vpadded{
  padding: 75px 0;
}

.padded-small{
  padding: 30px; 
}

.toppad{
  padding-top: 40px; 
}


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


.button{
  display: inline-block;
  border-radius: 7px;
  background-color:#BF2607;
  color:#FFF;
  padding: 5px 25px;
  text-transform:uppercase; 
  font-family: 'Roboto', sans-serif;
  font-size: 16px; 
  font-weight: 300; 
}
.button:hover{
  color:#FFF;
}
.button.buttonmargin{
  margin: 0 10px 10px 0;
}
.inline{
  display:inline;
}
.inlineblock{
  display:inline-block;
}
.block{
  display:block;
}
.block-img{
  display: block;
  width:100%;
}

.relative{
  position:relative; 
}

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



.nav{
  border-bottom: 22px solid #05617B;
  background-color:#FFF; 
  text-align:right; 
  padding: 20px 0;
}
.nav a{
  display:inline-block;
  color: #05617B; 
  font-size: 20px; 
  margin-left: 30px; 
}
.nav a.current{
  opacity: .6; 
}
.nav a.download{
  background-color: #BF2607;
  color:#FFF; 
  border-radius: 7px; 
  padding: 5px 20px; 
  text-transform:uppercase;
  font-weight:300; 
  font-size: 16px; 
}

h1{
  display:inline-block; 
  position:absolute; 
  top: -80px; 
  left:0;
  z-index: 1; 
  background-color: #024460;
  color:#FFF; 
  font-weight: 400; 
  font-size: 64px; 
  line-height: 70px; 
  padding: 10px 25px; 
}

h1 .name{
  display: block;
  font-size: 40px;
  line-height: 45px; 
  font-weight:300; 
}

.hero{
  position:relative;
}
.hero .mobile-hero{
  display:none;
}

.hero .container{
  height: calc(100vh - 200px); 
}
.hero-text{
  display:inline-block; 
  position:absolute; 
  bottom: -20px; 
  left:0;
  background-color: #024460;
  color:#FFF; 
  font-weight: 100; 
  font-size: 48px; 
  line-height: 60px; 
  padding: 10px 25px; 
  max-width: 700px; 
}

.hero .credit{
  position:absolute;
  right: 10px;
  bottom: 10px;
  color:#FFF; 
  max-width: 350px; 
  font-size: 13px; 
  line-height: 18px; 
  text-shadow: 0 0 3px #000; 
}

.blue{
  background-color:#024460; 
  color:#FFF; 
}
.text-blue{
  color:#024460;
}
.lightblue{
  background-color:#05617B;
  color:#FFF; 
}

.blue a, .lightblue a{
  color:#FFF; 
}

.grey{
  background-color: #F6F6F6; 
}


.link{
  display:block; 
  aspect-ratio: 16/9; 
  position:relative; 
}
.link .link-title{
  position:absolute;
  left:0;
  bottom:0;
  width:100%; 
  padding: 20px 50px 20px 20px; 
  background-color: rgba(2,68,96,.7); 
  color:#FFF; 
  font-size: 20px; 
  transition:.3s opacity, .3s padding; 
}
.link .link-title .arrow{
  position:absolute;
  right:10px;
  bottom: calc(50% - 10px); 
  height: 20px; 
  opacity: .6;
  transition:.3s opacity, .3s height; 
}
.link:hover .link-title{
  opacity: .9;
  padding: 30px 50px 30px 20px; 
  transition:.3s opacity, .3s padding; 
}
.link:hover .link-title .arrow{
  opacity: 1;
  height: 30px; 
  transition:.3s opacity, .3s height; 
}


.riseup{
  position:absolute;
  right:0; 
  top: -60px; 
}

.foot-nav a{
  margin: 0 15px; 
}

.copy{
  font-size: 12px; 
}

.foot-book{
  max-width: 200px; 
}


.header{
  background-position: center right; 
  background-repeat: no-repeat; 
  background-size: auto 100%; 
  padding: 100px 0 50px 0;
}

.header h2{
  font-family: 'PT Sans Narrow', sans-serif;
  font-weight:400;
  font-size: 64px; 
  line-height: 70px;
  color:#FFF;
}


.filter{
  padding:10px 10px 10px 0;
}
.filter p{
  width: calc(100% - 30px);
  margin:0;
}
.filter span{
  width: 30px; 
}
.filter img{
  vertical-align:middle; 
}

.filter.current{
  font-weight: 700; 
  border-bottom: 1px solid #CCC; 
}

.filter .arrow{
  opacity: .5; 
  transition:.3s opacity; 
}
.filter:hover .arrow, .filter.current .arrow{
  opacity: 1; 
  transition:.3s opacity; 
}

.button.tag{
  border: 1px solid #024460; 
  background-color:#F6F6F6; 
  color:#024460;
  margin-right: 15px; 
  margin-bottom: 15px; 
  transition:.3s background-color, .3s color; 
}
.button.tag:hover{
  background-color:#9EBEC7;
  transition:.3s background-color, .3s color; 
}

.button.tag.active{
  background-color:#024460; 
  color:#FFF; 
}


.tags{
  border-bottom:1px solid #707070; 
  padding-bottom: 5px; 
  margin-bottom: 15px; 
} 

.tags a{
  text-transform:uppercase;
  margin-right: 15px; 
}

.shadow{
  box-shadow: 0 10px 10px #ddd; 
}

.resource{
  display:block; 
  padding: 20px; 
  transition:.3s background-color, .3s box-shadow;
}
.resource .arrow{
  float:right;
  height: 30px; 
  opacity: .6;
  transition:.3s opacity, .3s height; 
  margin: 0 0 10px 15px; 
}
.resource:hover{
  background-color: #F6F6F6; 
  box-shadow: 0 10px 10px #ddd; 
  transition:.3s background-color, .3s box-shadow;
}
.resource:hover .arrow{
  opacity: 1;
  transition:.3s opacity, .3s height; 
}

.restrict{
  max-width: 1000px; 
}

.space{
  height: 50px; 
}

.pagination a, .pagination span{
  display: inline-block;
  border-radius: 100%; 
  background-color:#05617B;
  color:#FFF; 
  width: 30px;
  height: 30px;
  line-height:30px; 
  text-align:center;  
  margin: 0 5px; 
}


.pagination span{
  background-color:#ccc;
}

.thumbnail{
  display:block; 
  aspect-ratio: 16/9;
}

.clear{
  float:right;
  opacity: .5;
}
.clear:hover{
  opacity: 1;
}

.search{
  background-color:#f1f1f1;
  padding: 20px 0;
}

.search-input{
  width:100%;
  background-color:#FFF;
  border:0;
  padding: 15px; 
  font-size: 20px; 
}
.search p{
  margin: 10px 0 0 0;
}
.search .search-back{
  float:right;
  margin: 10px 0 0 0;
}

.input{
  display:block;
  width:100%;
  background-color:#FFF;
  border:0;
  padding: 10px;
}