html, body {
    width:100%;
    min-width:500px;
    font-family: 'Open Sans', sans-serif;
    font-size:14px;
    font-weight:400;
    color:#231f20;
}

a {color:#0c89d1;}
a.active,
a:hover {color:#2f2e8c; text-decoration:none;}

h1, .h1 {font-size:2.5rem; font-weight:normal;}
h2, .h2 {font-size:2rem; font-weight:normal;}
h3, .h3 {font-size:2.250rem; font-weight:normal;}
h4, .h4 {font-size:1.33rem; font-weight:normal;}

@media (min-width: 992px) {
    html, body {font-size:18px;}
}

/** bootstrap override **/
.container {width:95%;} /*max-width:1522px; min-width:692px;*/
.container--narrow {max-width:1000px;}

.btn-primary {background-color:#a400a8; border:none;}
.btn-primary:hover {background-color:#820489;}

@media (min-width: 992px) {
    .container {width:80%;}
}

/** General **/
.bg-blue {color:#fff; background-color:#0c89d1;}
.bg-lblue {background-color:rgba(237,245,255,1)}
.bg-lblue-fade {background: linear-gradient(0deg, rgba(237,245,255,1) 5%, rgba(255,255,255,1) 100%);}

.bg-before-lblue {position:relative;}
.bg-before-lblue::before {content:''; width:200vw; height:100%; display:block; position:absolute; top:0; left:-50vw; background-color:rgba(237,245,255,1); z-index:-1;}

.text-blue {color:#0c89d1;}

.med-text {font-size:3.33rem;}
.big-text {font-size:6rem; color:#0c89d1;}

.styled-list li {margin-bottom:1.25rem; padding-left:3em; position:relative; list-style-type:none; font-size:0.889rem;}
.styled-list li::before {content:"—"; position:absolute; left:0;}

.unstyled-list {padding:0; list-style-type:none;}
.unstyled-list li {margin-bottom:2rem;}

.contact-cta a::before,
.contact-cta a::after {content:''; height:1px; width:100%; margin:0.25rem 0; display:block; background: linear-gradient(90deg, rgba(110,147,186,1) 40%, rgba(226,234,241,1) 100%);}

hr {width:100%; height:1px; margin:2rem 0; background: linear-gradient(90deg, rgba(110,147,186,1) 40%, rgba(226,234,241,1) 100%); border:none;}

.product-box {margin-bottom:2rem; background-color:#fff; border:2px solid #cad7e6; border-top-left-radius:20px; overflow:hidden;}
.product-box > div {padding:3rem 2rem; text-align:center; border-width:4px 0 0 4px; border-style:solid; border-color:#9ebbde; border-top-left-radius:20px;}
.product-box a, .product-box a:hover {color:#231f20;}
.product-box p {margin-top:1em;}
.product-box__image {width:100%; max-width:200px; height:90px; margin:0 auto; display:flex; justify-content:center; align-items:center;}
.product-box__image a {display:block; widht:100%; height:100%;}
.product-box__image img {max-width:100%; max-height:100%;}
.product-boxes > div:nth-child(odd) .product-box {background: linear-gradient(130deg, rgba(215,233,255,1) 20%, rgba(255,255,255,1) 40%);}

.product-box .product-box__desc {opacity:0; height:0; font-size:0.778rem; transition:all 1s;}
.product-box > div:hover .product-box__desc {opacity:1; height:100%;}

.tab {position:relative; background: linear-gradient(90deg, rgba(145,173,202,1) 40%, rgba(217,231,240,1) 100%); border-top-left-radius: 12px; overflow:hidden; z-index:3;}
.tab > div {height:100%; margin:2px 0 0 2px; padding:0.5em 2em; position:relative; display:flex; align-items:center; background: linear-gradient(130deg, rgba(215,233,255,1) 20%, rgba(255,255,255,1) 40%); border-top-left-radius: 10px;}
.tabs > .tab:nth-child(even) > div,
.tab.tab--alt > div {background: linear-gradient(300deg, rgba(220,248,255,1) 20%, rgba(255,255,255,1) 40%);}
.tab p {margin:0; font-weight:600;}

.tab--flex {width:45%;}
.tab--flex + p {width:45%;}

@media (min-width: 992px) {
    .tab--flex {width:100%;}
    .tab--flex + p {width:100%;}

    .bg-lg-lblue-fade {background: linear-gradient(0deg, rgba(237,245,255,1) 5%, rgba(255,255,255,1) 100%);}
    .bg-before-lblue::before {background-color:transparent;}
}

/** header **/
header {margin-bottom:0.5rem; padding:1rem 0;}
header .menu-wrapper {width:300px; height:100%; position:fixed; top:0; right:-300px; background:#fff; transition:right 0.3s ease; overflow-y:scroll; z-index:99;}
header .menu-wrapper.active {right:0;}
header ul {padding:0; list-style-type:none;}
header nav ul {border-top:1px solid #bcbec0;}
header nav ul li {margin:1rem 0; padding:1rem 0 2rem; position:relative; border-bottom:1px solid #bcbec0;}
header nav a {font-size:1.15rem; color:#231f20; font-weight:600;}
header nav a.active {color:#0c89d1;}

header nav ul li ul {display:none;}

header .header-social ul {display:flex; justify-content:end;}
header .header-social a {font-size:2rem; color:#009fc9;}

header .header-menu-toggle {font-size:2.75rem;}

body.mobile-menu-active {overflow-y:hidden;}
body.mobile-menu-active main::before {content:''; width:100%; height:200%; position:absolute; background-color: rgba(0, 0, 5, 0.55); z-index:98;}

@media (min-width: 992px) {
    header .menu-wrapper {display:block; width:auto; height:auto; position:static; top:auto; left:auto; background:transparent; overflow:visible;}
    header nav a {font-size:1rem;}
    header nav ul {display:flex; justify-content:space-around; justify-content:start; margin:0; border:none;}
    header nav ul li {margin-right:1.5rem; padding:0; border:none;}
    header nav ul li.last {margin-right:0;}

    header ul li:hover ul {display:block; padding:0.5rem; position:absolute; background-color:#edf5ff;}
    header ul li ul li {margin:0; padding-right:2rem;}
    header ul li ul li:not(:last-child)::after {content:''; height:1px; width:120%; margin:0.25rem 0; display:block; background: linear-gradient(90deg, rgba(110,147,186,1) 40%, rgba(226,234,241,1) 100%);}
    header ul li ul a {font-size:0.778rem; font-weight:400; white-space:nowrap;}

    header .header-social ul {padding-top:0;}
    header .header-social a {font-size:1rem;}

    body.mobile-menu-active {overflow:visible;}
    body.mobile-menu-active main::before {display:none;}
}

@media (min-width: 1200px) {
    header nav ul li {margin-right:0;}
    header .header-social a {font-size:1.75rem;}
}

/** Banners **/
.banner { position:relative; padding-top:2.75rem; overflow:hidden;}
.banner::before {content:''; width:100%; height:100%; display:block; position:absolute; top:0; left:0; background: linear-gradient(180deg, rgba(237,245,255,1) 5%, rgba(255,255,255,0) 30%);}
.banner--overlay::before {z-index:2;}
.banner h1 {position:relative; z-index:3;}

.banner__tabs .tabs {display:flex; justify-content:space-between; flex-wrap:wrap;}
.banner__tabs .tab {width:50%; margin-bottom:1rem;}
.banner__tabs .tab > div {height:100%;}

.banner__slider {position:absolute; display:flex; height:100%; align-items:center;}
.banner__slider .carousel {max-width:100%;} /*width:562px;*/

@media (min-width: 992px) {
    .banner__tabs {height:100%; position:absolute; top:0; right:0; display:flex; align-items:center;}
    .banner__tabs .tabs {display:block; max-width:290px;}
    .banner__tabs .tab {width:auto;}
}

/** product/services page **/
.product h3 {margin-bottom:1em;}
.product .product-box {margin-bottom:0; font-weight:600;}
.product__desc {height:100%; display:flex; flex-direction:column; justify-content:space-between;}
.product__desc h3 a, .product__desc h3 a:hover {color:#231f20;}
.product__price {margin-bottom:2rem; display:block; font-size:0.778rem;}
.product__price span {display:block; font-size:1.33rem; color:#0c89d1}


/** footer **/
footer {font-size:0.778rem;}
footer .footer-nav {margin:0; padding:0; list-style-type:none;}
footer .footer-nav li {line-height:1.75em;}
footer .footer-nav a {color:#231f20;}
footer .footer-nav a:hover {color:#a400a8; text-decoration:none;}

footer .footer-copyright {font-size:0.750rem;}
