*, *::before, *::after { box-sizing: border-box; }
html {
    text-align: center; 
    color: #464646; 
    font: 1em/1.3 "Segoe UI", Segoe, Arial, sans-serif;
}
article, aside, footer, header, nav, section, figcaption, figure, main { display: block; }
audio, canvas, iframe, img, svg, video { vertical-align: middle; }
header, main, footer { float: left; width: 100%; }
html,
body {
    width: 100%;
    min-height: 100vh; 
    margin: 0;
    padding: 0;
    background: #F2F2ED;
}
main {
    min-height: calc(100vh - 280px);
    margin: 0;
    padding: 0 1.5rem;
	font-size: 1.2rem;
	line-height: 1.3rem;
}
h1 {
    float: left;
    margin: 0;
    padding-left: 1rem;
	font-size: 2.1rem;
}
h2 {
    color: #fff;
    background-color: #417081;
    padding: 1rem 0;
	font-size: 1.5rem;
    line-height: 1.2em;
}

/* ------ POSITIONING ------ */

.row {
    float: left;
    display: inline;
    width: 100%;
}

.flt-left {
    float: left;
}

.flt-right {
    float: right;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
}

.justify {
  justify-content: space-between;
}

.justify_2 {
  justify-content: space-around;
}

.marg {
    margin: 0;
}

.marg-t {
    margin-top: 0;
}

.marg-b {
    margin-bottom: 0;
}

.top-marg {
    margin-top: 2rem;
}
.bot-marg {
    margin-bottom: 2rem;
}

.pad-t {
    padding-top: 2rem;
}

.pad-b {
    padding-bottom: 1rem;
} 

.pad-r {
        padding-right: 2rem;
}

.pad-l {
    padding-left: 2rem;
}

.pad-r-sm {
    padding-right: 1rem;
}

.pad-l-sm {
    padding-left: 1rem;
}

.pad-t-sm {
    padding-top: .5rem;
}

.pad {
    padding: 0;
}

.hide {
    display: none;
}

/* ------ Nav ------ */

nav {
    float: right;
    width: 100%;
}
nav li{
    float: left;
    min-width: 25%;
    list-style-type: none;
}
nav ul li a{
    padding: 0.5em 0.85em;
    line-height: 1.8em;
    font-weight: bold;
    text-decoration: none;
    margin-right: 5px;
    display: block;
    white-space: nowrap;
    border: 1px solid rgb(255, 255, 255);
    color: rgb(255, 255, 255);
    background-color: rgb(65, 112, 129);
    transition-duration: .4s;
}
   
nav li a:link {
    background-color: rgb(65, 112, 129);
}
nav li a:visited { 
    background-color: rgb(65, 112, 129);
}
nav li a:hover {
    color: rgb(25, 13, 13);
    background-color: rgb(175, 196, 223) 
}
nav li a:focus { 
    color: rgb(255, 215, 0);   
}
nav ul li .active {
    background-color: rgb(0, 139, 182); 
}

/* ------ Header ------ */

header {
    width: 100%;
    color: #008bb6;
    margin-bottom: 1rem;
    padding-top: 1rem;
}
.logo {
    width: 100%;
}
.logoimg {
    float: left;
    width: 60px;
    margin-left: .5rem;
}
.strap {
    float: left;
    font-size: 1.125em;
    line-height: 1.4em;
    margin-left: 3.5em;
    font-weight: 600;
    color: rgb(72, 61, 139);
}
.remove_link {
    text-decoration: none;
}
header a {
    color: inherit;
}    
header a:hover {
    color: inherit;
}

/* ------ layout ------ */

.col,
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col-13,
.col-14,
.col-15,
.col-16,
.col-17,
.col-18,
.col-19,
.col-20,
.col-21 {
    float: left;
}
.col-1 {
    width: 100%;
}

/* ------ Main ------ */

aside {
    background-color: #fff;
}
img {
    max-height: 150px;
}
.york {
    max-width: 100%;
    max-height: 100%;
    border: solid 10px #fff;
}

a { color: #42006e; }
a:active, a:hover, a:focus { color: #42006e; }
.err-text {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    text-align: center; 
    padding: 8px; 
}
.wrap {
    width: 75%;
    margin-left: auto;
    margin-right: auto;
}
.button {
    background-color: #008bb6;
    border-radius: 10px;
    color: white;
    padding: .5rem .8rem;
    text-decoration: none;
    transition-duration: .6s;
    transition-property: background;
}
.button:hover {
    background-color: #417081;
    color: #fff;
    border-bottom: solid 5px #008bb6;
}
.grid {
    overflow: hidden;
    width: 100%;
    margin: 0 auto 20px auto;
    list-style: none;
	padding: 0;
}
.grid li {
    position: relative;
    width: 100%;
    min-height: 230px;
    padding: 0 0.5em 0.5em 0;
    background-color: #fff;
    margin-bottom: .5rem;
    color: rebeccapurple;
}
.grid li:first-child {
    color: #fff;
    text-align: center;
    margin-bottom: .5rem;
    background-color: rgb(96, 125, 103);
    padding: 1em;
    width: 100%;
    min-height: 50px;
}
.grid li img {
    background: #fff;
    margin: .5rem .5rem 0;
    padding-top: 1rem;
}
    .grid li:hover {
        color: #fff;
    }
    .li a p {
        text-align: center;
    }

.grid li a {
    color: #fff;
    text-decoration: none;
}
    
    .overlay {
	color: #fff;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0; 
	left: 0;
	padding-left: 20px;
	padding-right: 20px;
    text-align: center;
	background: rgba(0,0,0, .65);
}
    .overlay {
  opacity: 0;
  transition-property: opacity;
  transition-duration: .5s;
}
  
.overlay:hover {
  opacity: 1;
}
    
    .overlay a p {
        max-width: 78%;
        text-align: center;
        padding: 0 2rem;
        margin-left: auto;
        margin-right: auto;
    }

/* ----- Form Fields ----- */

form {
    max-width: 600px; 
    min-width: 60%;
    margin: 10px auto;
    padding: 10px 20px;
    background: rgb(255, 255, 255);
    border-radius: 8px;
    text-align: left;
    border: solid 2px #417081;
}

input,
textarea,
select {
    cursor: pointer;
    border: none;
    font-family: inherit;
    font-size: 16px;
    height: auto;
    margin: 0;
    outline: 0;
    padding: 15px;
    color: rgb(105, 108, 113);
    background-color: ghostwhite;
    box-shadow: 1px 2px 1px rgba(0,0,0,0.08) inset;
    margin-bottom: 30px;
}

input[type="text"],
input[type="email"],
textarea {
    width: 100%;
}

input[type="checkbox"] {
    margin: 0 4px 8px 0;
}

select {
    padding: 6px;
    height: 32px;
    border-radius: 2px;
}

form button {
    cursor: pointer;
    padding: 19px 39px 18px 39px;
    color: rgb(255, 255, 255);
    background-color: rgb(65, 112, 129);
    font-size: .875em;
    font-weight: 600;
    text-align: center;
    font-style: normal;
    border-radius: 5px;
    width: 100%;
    border: 1px solid rgb(65, 112, 129);
    border-width: 1px 1px 3px;
    box-shadow: 0 -2px 0 rgba(65, 112, 129, .6) inset;
    margin-bottom: 10px;
    transition-duration: .8s;
}

form button:hover {
    background-color: #008bb6;
}

fieldset {
    margin-bottom: 30px;
    border: none;
}

legend {
    color: rgb(104, 142, 163);
    font-size: 1.2em;
    font-weight: 600;
    margin-bottom: 10px;
}

label {
    color: rgb(26, 40, 55);
    display: block;
    margin-bottom: 8px;
}

/* ------ Footer ------ */

footer {
    color: #fff; 
    background-color: rgb(119, 136, 153);
    padding: 0 1rem 0;
    margin-top: 2rem;
	max-height: 280px;
    font-weight: 600;
}
footer a {
    color: #fff;    
}
footer p {
    margin-bottom: 0;
	font-size: 1rem;
}
.jdbadge {
    max-width: 120px;
    height: 60px;
    margin: 0 auto 0;
    padding: .5rem 0;
}

/*------------------ Media Queries -----------------------*/

@media all and (min-width: 500px) {

    header {
        margin-left: 3rem;
    }
        .row {
        float: left;
        width: 100%;
        padding: 0;
        flex-wrap: wrap;
    }
    nav li{
        float: left;
        min-width: 20%;
    }

    .grid li .title {
        width: 100%;
    }
    .grid li {
        width: 100%;
    }
}
@media all and (min-width: 620px) {
            .logoimg {
    float: left;
        min-width: 100px;
        padding-top: 1rem;
    }
        h1 {
        float: left;
        margin: 0;
        padding-left: 1rem;
        font-size: 3.5rem;
    }
        .grid li {
        float: left;
        width: 49.5%;
        margin-right: 4px;
    }
    .grid li:nth-of-type(odd) {
        margin-right: 0;
    }
    .grid li:last-of-type {
        margin-right: 0;
    }

}
    @media all and (min-width: 720px) {

   .logo {
        width: 100%;
        max-width: 600px;
    }
    nav {
        width: 50%;
        margin-left: auto;
        margin-right: auto;
    } 
        nav li {
            max-width: 30%;
        } 
        
    .grid li {
        width: 49%;
    }
    .grid li:nth-of-type(odd) {
        margin-right: 4px;
    }
    .grid li:last-of-type {
        margin-right: 4px;
    }

}
@media all and (min-width: 960px) {
          aside {
    margin: 5rem 0 0 1rem;
}
   .col-2 {
        width: 95%;
    }
    
    .col-3 {
        width: 90%;
    }

    .col-4 {
        width: 85%;
    }

    .col-5 {
        width: 80%;
    }

    .col-6 {
        width: 75%;
    } 
    
    .col-7 {
        width: 70%;
    }   
    
    .col-8 {
        width: 65%;
    }    
    
    .col-9 {
        width: 60%;
    }
    
    .col-10 {
        width: 55%;
    }
    
    .col-11 {
        width: 50%;
    }
    
    .col-12 {
        width: 45%;
    } 
    
    .col-13 {
        width: 40%;
    }

    .col-14 {
        width: 35%;
    }

    .col-15 {
        width: 30%;
    }
    
    .col-16 {
        width: 25%;
    } 
    
    .col-17 {
        width: 20%;
    }
    
    .col-18 {
        width: 15%;
    }
    
    .col-19 {
        width: 10%;
    }    
    
    .col-20 {
        width: 5%;
    }
    
    .col-21 {
        width: 49%;
    }

    .grid li {
        width: 32.8%;
        margin-right: .3rem;
    }
    .grid li:nth-of-type(even) {
        margin-right: .3rem;
    }
    .overlay {
        display: flex;   
        text-align: center;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
}   

/*------------------ FLEXBOX -----------------------*/

@supports (display: flex) {
    
    body {
        display: flex;
        flex-direction: column;
    }
    main {
        min-height: calc(100vh - 280px);
    }
    .row {
       display: flex;
       flex-wrap: wrap;
       flex-direction: column;
    }
    header {
        display: flex;
        flex-direction: column;
        flex-flow: wrap;
    }
       .logo {
        width: 100%;
        max-width: 600px;
    }
    nav {
        width: 100%;
    }
    .overlay a p {
        max-width: 100%;
    }
    .grid li {
            display: flex;
            flex-direction: column;
            background: #fff;
            width: 100%;
        }
        
    @media all and (min-width: 500px) {
        
        .row {
            display: flex;
            flex-direction: row;
            padding: 0 1.25rem;
        } 
        .grid {
            display: flex;
            flex-wrap: wrap;
        }
        }
    @media all and (min-width: 620px) {
        
        .grid li {
        width: 49%;
        margin-right: 5px;
    }

}
    
    @media all and (min-width: 960px) {
    nav {
        width: 50%;
        margin-left: auto;
        margin-right: auto;
    }
        .grid li {
            width: 32.8%
        }
    }
}

 /*------------------ CSS GRIDS -----------------------*/   

@supports (display: grid) {
    
    header {
        grid-area: header;
    } 
    nav {
        grid-area: nav;
    }
    main {
        grid-area: main;
    } 
    section {
        grid-area: section;
    } 
    article {
        grid-area: article;
    } 
    aside {
        grid-area: aside;
    } 
    footer {
        grid-area: footer;
    }
    .grid {
        grid-area: ul;
    }
    .logo {
        grid-area: logo;
    }
    body {
        display: grid;
        min-height: 100vh;
        grid-template-areas: "header" "header" "main" "footer";
        grid-template-columns: 100%;
    } 
    .grid {
        display: grid;
        min-width: 100%;
        grid-gap: 15px;
        padding: 0;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .overlay a p {
        max-width: 100%;
    }
    @media all and (min-width: 500px) { 
        body {
            grid-template-areas: "header header" "main" "footer";
        }
           
        .grid {
            grid-template-columns: repeat(2, 1fr);
            grid-template-rows: 1fr;
        }
        .grid li {
            padding: 0;
            display: block;
            background: #fff;
            float: none;
            width: auto;
        }
        .grid li:first-child {
            grid-column: 1 / 3;
            grid-row: 50px;
        }
    }
    @media all and (min-width: 960px) {        
        .grid {
            grid-template-columns: repeat(3, 1fr);
            grid-template-rows: 1fr;
        }
        .grid li {
            padding: 0;
            display: block;
            background: #fff;
            float: none;
            width: auto;
        }
        .grid li:first-child {
            grid-column: 1 / 4;
        }
    }
}