*, *::before, *::after {
    box-sizing: border-box; 
}
html {
    margin: 0;
    padding: 0;
}
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Segoe, Helvetica, Arial, sans-serif;
    font-size: 1.1rem;
    line-height: 1.5;
    min-height: 100vh; 
    text-align: center; 
    color: rgb(70, 70, 70);
    margin: 0;
    padding: 0;
}
article, aside, footer, header, nav, section, figcaption, figure, main {
    display: block; 
}
audio, canvas, iframe, img, svg, video { 
    vertical-align: middle;
}
img {display: block;max-width: 100%;height: auto;}
main,
.main_sitemap,
.main2 {
    float: left;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    min-height: calc(100vh - 280px);
    margin: 0;
    padding: 0 1.5rem;
}
.main_sitemap,
.main2 {
    flex-direction: column;
    flex-wrap: nowrap;
}
header {
    float: left;
    min-width: 100%;
    color: rgb(255, 255, 237);
    background-color: rgb(80, 116, 138);
    border-bottom: solid rgb(107, 162, 185) 3px;
    border-top: solid rgb(107, 162, 185) 3px;
    padding: .5rem 0;
}
.logo {
    float: left;
    width: 100%;
}
.logo img {
    display: inline-block;
    border: 0;
}
nav {
    float: left;
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    margin-top: .5rem;
}
nav ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    justify-content: space-around;
    margin: 0;
    padding: 0;
}
nav li {
    float: left;
    list-style: none;
    display: flex;
	flex: 1 1 50%;
	justify-content: center;
	padding: .2rem;
}
nav a {
    font-size: 1.2rem;
    padding: .5rem;
    text-decoration: none;
    color: rgb(80, 116, 138);
    background-color: rgb(255, 255, 237);
    border: solid 2px rgb(255, 253, 237);
    border-radius: 10px;
}
nav a:link {
    color: rgb(80, 116, 138);
    background-color: rgb(255, 255, 237);
}
nav a:hover {
    background-color: rgb(107, 162, 185);
    color: rgb(255, 253, 237);
    text-decoration: none;
    transition: all 0.6s ease-in-out;
}
nav a:focus {
    color: rgb(255, 253, 237);
}
nav a:active {
    color: rgb(255, 253, 237);
}
nav li .active {
    background-color: rgb(80, 116, 138);
    color: rgb(255, 253, 237);
    border: solid 2px rgb(255, 253, 237);
}
h1, h2, h3, h4 {
    color: rgb(0, 78, 74);
    text-wrap: balance;
}
h1 {
    width: 100%;
    font-size: 2rem;
    line-height: 1.2;
    margin-block: 1rem;
}
h2 {
    font-size: 1.5rem;
    font-weight: 600;
    padding: .5rem 1rem;
    margin: 0;
}
h3 {font-size: 1.3rem;font-weight: 600;}
h4 {font-size: 1.2rem;font-weight: 500;}
.heading_light {color: rgb(255,255,255);}
.heading_bg {
    color: rgb(255, 255, 237);
    width: 100%;
    text-align: center;
    padding: .5rem;
    background-color: rgb(102, 153, 153);
}
header img {
    background-color: rgb(255, 255, 237);
    padding: .6rem .8rem;
    border-radius: 10px;
    margin: .3rem 0;
}
.focus {
    float: left;
    width: 100%;
}
.focus_content {
    width: 80%; 
    margin: 0 auto;
    padding-bottom: .5rem;
    font-size: 1.3rem;
}
.focus_content h4 {
    margin: .5rem;
}
a {
    color: rgb(30, 76, 118);
    max-width: 100%;
    text-decoration: underline;
    word-wrap: break-word;
}
a:active, a:hover, a:focus {
    color: rgb(65, 105, 225);
	text-decoration: none;
}
p {
    margin-block-start: .5rem;
    margin-block-end: .5rem;
    word-break: break-word;
}
li {
    list-style: none;
}

p, li, figcaption {max-width: 75ch; text-wrap: pretty;}

.maincontent {
    max-width: 100%;
    margin: 0 auto 2rem auto;
    text-align: left;
}
.txtpanel {
    float: left;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    flex-flow: wrap;
    width: 90%;
    margin: .5rem 0;
    padding: 0 .8rem;
    text-align: left;
    word-wrap: break-word;
}
.jas {
    background: none;
    border: none;
    color: rgb(80, 116, 138);
    text-align: left;
}
.swim {
    float: left;
    width: 100%;
    margin-block: 1rem;
    align-self: center;
    justify-self: center;
}
.swim p {
    font-size: 1.2rem;
    padding: .5rem;
    width: 100%;
    margin: 0 auto;
    color:rgb(65, 112, 129);
}
.swim span {
    font-weight: 500;
}
.swim a {
    color: rgb(65, 112, 129);
    font-weight: 500;
}
.swim a:hover {
    color: rgb(65, 105, 225);
	text-decoration: none;
}
.err-text {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    text-align: center; 
    padding: 8px; 
}
.optionpanl {
    flex: auto;
    width: 100%;
    margin: 1rem 0 0 0;
    list-style: none;
    padding: 0;
}
.optionpanl li {
    float: left;
    width: 100%;
    min-height: 230px;
    margin: .5rem 0;
    padding-bottom: .5rem;
    background-color: rgb(240, 239, 236);
    box-shadow: 8px 6px 13px rgba(0,0,0,0.2); 
}
.optionpanl li:hover {
    box-shadow: 0px 1px 6px rgba(0,0,0,0.2); 
}
.design_bg h3 {
    background-color: rgb(139, 102, 139);
}
.hosting_bg h3 {
    background-color: rgb(0, 128, 128);
}
.webdev_bg h3 {
    background-color: rgb(83, 86, 117);
}
.optionpanl h3 {
    margin-block: 0;
	padding: 1rem;
}
.title {
    float: left;
    color: rgb(255, 255, 255);
    text-align: center;
    background-color: rgb(65, 112, 129);
    width: 100%;
    min-height: 30px;
}
.gallery {
    height: 8rem;
    width: auto;
    margin-block-start: 1rem;
    margin-block-end: .5rem;
}
.gallery img {
    display: inline-block;
    max-height: 130px;
    width: auto;
    text-decoration: none;
    border: 0;
}
.optionpanl li a p {
    margin-block: 0;
    margin-inline: .5rem;
    text-align: center;
}
.optionpanl li a {
    text-decoration: none;
}
.optionpanl li a p:hover, .optionpanl li p a:hover {
    text-decoration: underline;
}
.hi_light {
    font-size: 1.2rem;
    color: rgb(0, 123, 196);
    padding: 1rem;
    text-align: center;
    box-shadow: 0 3px 13px -3px rgb(0, 123, 196);
    margin: 1rem;
}
.hi_light p {
    font-size: 1.2rem;
    color: rgb(0, 123, 196);
    margin: 0 .5rem;
    text-align: center;
}
/* ------ Features Page ------ */
.feature_content {
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    margin-block-end: 1rem;
}
.feature_content_nav {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    padding: 0 0 1rem;
}
.feature_area {
    display: flex;
    flex-wrap: wrap;
    border-bottom: solid 13px;
    justify-content: center;
    align-items: center;
    width: 100%;
}
.feature_area a {
    font-size: 1.6em;
    font-weight: 500;
    color: inherit;
    padding: .5rem 0;
    text-decoration: none;
    word-wrap: normal;
    width: 100%;
    height: auto;
}
.feature_area a:hover {
    text-decoration: underline;
}
.feature_panel {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    width: 100%;
    margin-block-start: 1rem;
}
.feature_panel_title {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    background: url(minstercms_watermark.svg) no-repeat bottom right;
    order: -1;
}
.feature_panel_title h2 {
    font-size: 2em;
}
.feature_panel_text {
    width: 100%;
    text-align: left;
    padding: 1rem;
    background-color: rgb(240, 239, 236);
}
.core_border {
    color: rgb(139, 102, 139);
}
.headless_border {
    color: rgb(54, 100, 139);
}
.static_border {
    color: rgb(112,117,157);
}
.core_bg {
    background-color: rgb(139, 102, 139);
}
.headless_bg {
    background-color: rgb(54, 100, 139);
}
.static_bg {
    background-color: rgb(112,117,157);
}

/* ------ Forms ------ */
form {
    max-width: 600px;
    min-width: 60%;
    margin: 10px auto;
    padding: 10px 20px;
    background: rgb(31, 47, 68);
    border-radius: 8px;
    text-align: left;
    box-shadow: 8px 6px 13px rgba(0,0,0,0.2);
}

input,
textarea,
select {
    cursor: pointer;
    border: none;
    font-family: inherit;
    font-size: 16px;
    height: auto;
    outline: 0;
    padding: 15px;
    background-color: rgb(242, 242, 237);
    color: rgb(105, 108, 113);
    box-shadow: 0 1px 0 rgba(0,0,0,0.03) inset;
    margin: 0 0 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;
}

button {
    float: right;
  cursor: pointer;
  padding: 19px 39px 18px 39px;
  color: rgb(255, 253, 237);
  background-color: rgb(80, 116, 138);
  font-size: 1.1em;
  font-weight: 600;
  text-align: center;
  font-style: normal;
  border-radius: 5px;
  width: 40%;
  border: 1px solid rgb(107, 162, 185);
  border-width: 1px 1px 3px;
  box-shadow: 0 -2px 1px rgb(107, 162, 185) inset;
  margin-bottom: 10px;
}
button:hover {
    color: rgb(102, 51, 153);
    background-color: rgb(255, 253, 237);
}
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(255, 255, 255);
  display: block;
  margin-bottom: 8px;
}
label.light {
  font-weight: 300;
  display: inline;
}
.number {
  background-color: rgb(228, 69, 125);
  color: rgb(255, 255, 255);
  height: 30px;
  width: 30px;
  display: inline-block;
  font-size: 0.8em;
  margin-right: 4px;
  line-height: 30px;
  text-align: center;
  text-shadow: 0 1px 0 rgba(255,255,255,0.2);
  border-radius: 100%;
}
.error {
	color: rgb(255, 164, 164);
}

.site_lnks {
    display: flex;
    flex-flow: wrap;
    width: 100%;
    justify-content: center;
}

.site_lnks div {
    display: flex;
    width: 90%;
    color: rgb(255, 255, 255);
    background: rgb(54, 100, 139);
    margin: .5rem .2rem;
    justify-content: center;
}

.site_lnks a {
    display: flex;
    width: 100%;
    color: rgb(255, 255, 255); 
    text-decoration: none;
    font-size: 1.3rem;
    justify-content: center;
    align-items: center;
    padding: 1rem;
}

.site_lnks a:hover {
	background: rgb(32, 178, 170);
}

footer {
    display: inline-block;
    width: 100%;
    color: rgb(255, 255, 237);
    background-color: rgb(80, 116, 138);
    margin-block-start: 1rem;
    border-top: solid rgb(107, 162, 185) 3px;
    padding: 0 .5rem;
}
footer a, footer a:active, footer a:hover, footer a:focus {
    color: rgb(240, 248, 255);
    text-decoration: none;
    position: relative;
}
footer a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: rgb(80, 116, 138);
  visibility: hidden;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transition: all 0.4s ease-in-out 0s;
  transition: all 0.4s ease-in-out 0s;
}

footer a:hover:before {
  visibility: visible;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
  background-color: aliceblue;
}
footer p {
    margin-bottom: 0;
    font-size: 1.1rem;
    font-weight: 500;
    max-width: 100%;
}
.social_link,
.foot_nav,
.contact {
float: left; 
width: 100%;
}
.jas_bar {
  float: left;
  width: 100%;
  background-color: rgb(65, 112, 129);
  margin-block-start: .5rem;
}
.jas_bar img {
    display: inline-block;
    max-width: 125px;
    margin-block: 1rem
}
@media all and (min-width: 415px) {
nav li { flex: 1 1 25%;}
}
@media all and (min-width: 658px) {
    
    .txtpanel {
        max-width: 50%;
        margin: 2rem 0;
        padding: 0 .8rem;
    }
    .site_lnks {
        justify-content: space-around;
    }
    .site_lnks div {
        width: 45%;
    }
}
@media all and (min-width: 768px) {
    .maincontent {
        max-width: 60%;
        align-self: center;
    }
    .optionpanl li {
        width: 50%;
        padding: 0 0 .5rem 0;
    }
}
@media all and (min-width: 830px) {
    .logo {
        width: 50%;
    }
    nav {
        width: 50%;
        margin-top: 0;
    }
}
@media all and (min-width: 960px) {

    .optionpanl li {
        width: 33.33333%;
    }
        
    .focus_content {
        width: 40%;
    }
} 
/*------------------ FLEXBOX -----------------------*/

    body {
        display: flex;
        flex-direction: column;
    }
    .row {
       display: flex;
       flex-wrap: wrap;
       flex-direction: column;
    }
    header {
        display: flex;
        flex-direction: column;
        flex-flow: wrap;
    }
    .optionpanl {
        display: flex;
        flex-direction: column;
        justify-content: space-between
    }
    .optionpanl li {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    footer {
        display: flex;
        flex-direction: column;
    }
    .social_link,
    .foot_nav,
    .contact { 
        width: 100%;
    }
    .jas_bar {
        width: 100%;
    } 

@media all and (min-width: 658px) {

    .optionpanl {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
    }
    .optionpanl li {
        width: 47%;
    }
    footer {
        display: flex;
        flex-direction: row;
        flex-flow: wrap;
    }
    .social_link,
    .foot_nav { 
        width: 50%;
    }
    .social_link {
        order: -1;
    }
    .contact {
        width: 100%;
        order: -1;
    }
} 

    @media all and (min-width: 768px) {
        
        .row {
            display: flex;
            flex-direction: row;
            padding: 0 1.25rem;
        }
        .feature_content_nav {
            flex-direction: row;
        }
        .feature_area {
            width: 25%;
        } 
        .feature_panel {
            flex-direction: row;
        }
        .feature_panel_title {
            width: 30%;
            order: 0;
        }
        .feature_panel_title h2 {
            transform: skewY(-10deg);
        }
        .feature_panel_text {
            width: 70%;
        }
    }
    
    @media all and (min-width: 960px) {
        
        nav {
            width: 50%;
            margin-left: auto;
            margin-right: auto;
        }
        .optionpanl {
            margin-left: auto;
            margin-right: auto;
        }
        .optionpanl li {
            width: 31.333%;
        }
        .social_link,
        .foot_nav { 
            width: 33.333%;
        }
        .contact { 
            width: 33.333%;
            order: -1;
        } 
       .social_link {
          order: -2;
      }
}