/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}

/*! HTML5 Boilerplate v6.1.0 | MIT License | https://html5boilerplate.com/ */

/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

:root{
    --neuzeit: neuzeit-grotesk, sans-serif;
    --sofia: sofia-pro, sans-serif;
    --primary: #00528A;
    --secondary: #363636;
    --tertiary: #6AB8E6;
}

* {
    box-sizing:border-box;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
    -o-box-sizing:border-box;
}

html {
    color: #333;
    font-size: 1em;
    line-height: 1.7;
    font-family: var(--sofia);
    font-weight: 100;
    background-color: #FCFCFC;
}

body{
    padding-top: 129px;
    transition: all ease-in-out 0.3s;
    -moz-transition: all ease-in-out 0.3s;
    -webkit-transition: all ease-in-out 0.3s;
    -o-transition: all ease-in-out 0.3s;
    -ms-transition: all ease-in-out 0.3s;
}

.sticky-body{
    padding-top: 90px;
}

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 2em 0;
    padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
    resize: vertical;
}

section {
    width: 100%;
}

#mask {
    background-color: rgba(41, 47, 51, 0.9);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 120%;
    z-index: 40;
    display: none;
}

.content {
        margin: 0 auto;
        max-width: 1200px;
        width: 88%;
    }

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */

.browserupgrade {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}

/* ==========================================================================
   Typography
   ========================================================================== */

h1 {
    font-family: var(--neuzeit);
}

h2 {
    font-family: var(--neuzeit);
}

h3 {
    font-family: var(--neuzeit);
}

h4 {
    font-family: var(--neuzeit);
}

h5 {
    font-family: var(--neuzeit);
}

h6 {
    font-family: var(--neuzeit);
}

a{
    color: var(--primary);
    text-decoration: none;
}

.blue a{
    color: #fff;
}

p {
}

p a:hover {
    text-decoration: underline;
}

h2 a {
}

ul {}
ul li {}
ul li a {}

strong {}

img{
    max-width: 100%;
}

/*=== Buttons ===*/
/*=== Standard ===*/
.btn a, button.btn{
    cursor: pointer;
    text-transform: uppercase;
    color: var(--primary);
    font-weight: 400;
    text-decoration: none;
    display: inline-block;
    padding: 7px 30px;
    border: 1px solid var(--primary);
    margin-top: 20px;
    border-radius: 5px;
    overflow: hidden;
    background-color: transparent;
    position: relative;
    transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -moz-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -webkit-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -o-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -ms-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
}

    .btn a span, button.btn span{
        position: relative;
        z-index: 2;
    }

.btn a:before, button.btn:before{
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 0;
    z-index: 1;
    background-color: var(--primary);
    transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -moz-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -webkit-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -o-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
    -ms-transition: all cubic-bezier(0.4, 0, 1, 1) 0.5s;
}

.btn a:hover:before, button.btn:hover:before{
    width: 100%;
}

.btn a:hover, button.btn:hover{
    color: #fff;
    text-decoration: none;
}

/*=== White ===*/
.white-btn a, button.white-btn{
    color: #fff;
    border: 1px solid #fff;
}

.white-btn a:before, button.white-btn:before{
    background-color: #fff;
}

.white-btn a:hover, button.white-btn:hover{
    color: var(--primary);
}

/*=== Alt ===*/
.btn-alt a{
    background-color: var(--primary);
    color: #fff;
    margin-top: 0;
    line-height: 1.7;
    border: 0;
}

.btn-alt a:before{
    background-color: var(--tertiary);
}

/* ==========================================================================
   Flex Box Grid System
   ========================================================================== */

.grid {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}

.grid-cell {
    -webkit-box-flex: 1 1 auto;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
}

.grid--half>.grid-cell {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    flex: 0 0 50%;
}
.grid--third>.grid-cell {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.3333%;
    flex: 0 0 33.3333%;
}
.grid--quarter>.grid-cell {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    flex: 0 0 25%;
}

.grid--gutters {
    margin: -1em 0 1em -1em;
    margin-top: 0;
    margin-bottom: 0;
}

    .grid--gutters>.grid-cell {
        padding: 1em 0 0 1em;
    }

.gs-half {
    width: 50%!important;
}

.gs-third {
    width: 33.3333%!important;
}

.gs-third, .gs-twothirds {
    -webkit-box-flex: 0!important;
    -webkit-flex: none!important;
    flex: none!important;
}

.gs-twothirds {
    width: 66.6667%!important;
}

.gs-quarter {
    width: 25%!important;
}

.gs-quarter, .gs-threequarters {
    -webkit-box-flex: 0!important;
    -webkit-flex: none!important;
    flex: none!important;
}

.gs-threequarters {
    width: 75%!important;
}

.gs-1{
    width: 8.333333%!important;
}

.gs-2{
    width: 16.6666667%!important;
}

.gs-3{
    width: 25%!important;
}

.gs-4{
    width: 33.333333%!important;
}

.gs-5{
    width: 41.6666667%!important;
}

.gs-6{
    width: 50%!important;
}

.gs-7{
    width: 58.333333%!important;
}

.gs-8{
    width: 66.6666667%!important;
}

.gs-9{
    width: 75%!important;
}

.gs-10{
    width: 83.333333%!important;
}

.gs-11{
    width: 91.6666667%!important;
}

.gs-12{
    width: 100%!important;
}

.demo {
    background-color: rgba(0,0,0,0.2);
    text-align: center;
}

.afs{
    align-items: flex-start!important;
    -moz-align-items: flex-start!important;
    -webkit-align-items: flex-start!important;
    -o-align-items: flex-start!important;
    -ms-align-items: flex-start!important;
}

.success-response{
    padding: 30px;
    text-align: center;
    margin-bottom: 2em;
    color: #3c763d;
    background-color: #dff0d8;
    border-color: #d6e9c6;
}

.fail-response{
    padding: 30px;
    text-align: center;
    margin-bottom: 2em;
    color: #a94442;
    background-color: #f2dede;
    border-color: #ebccd1;
}

    .fail-response h2, .fail-response p, .success-response h2, .success-response p{
        margin: 0!important;
    }

/* ==========================================================================
   Contact form standard code
   ========================================================================== */

#contact_form {
    background-color: #F9F9F9;
    padding: 1em 1.8em;
    border: 1px solid #DDD;
}

.formRow {
    display: block;
    margin: 1em 0;
}

.formRow label {
    display: block;
    font-size: 0.9em;
    font-weight: 600;
    margin: 0 0 5px 0;
    color: #FFF;
}

.formRow input {
    display: block;
    width: 100%;
    margin: 10px 0;
    border: 1px solid #DDD;;
    padding: 6px;
    height: 37px;
    font-size: 0.9em;
}

.formRow textarea {
    display: block;
    width: 100%;
    margin: 10px 0;
    border: 1px solid #DDD;
    padding: 6px;
    height: 214px;
    font-size: 0.9em;
}

.formRow button {
    display: block;
    background-color: #333;
    color: #FFF;
    font-weight: 600;
    font-size: 0.9em;
    text-align: center;
    border: none;
    width: 100%;
    padding: 13px 10px 15px;
    margin: 24px 0 0;
    transition: all 0.3s ease 0s;
}

    .formRow button:hover {
        background-color: #000;
    }

/* ==========================================================================
   Author's custom styles
   ========================================================================== */

/*========== All Pages ==========*/
.mob-menu{
    position: fixed;
    top: 100vh;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    background: #fff;
    display: flex;
    display: -moz-flex;
    display: -webkit-flex;
    display: -o-flex;
    display: -ms-flex;
    justify-content: center;
    -moz-justify-content: center;
    -webkit-justify-content: center;
    -o-justify-content: center;
    -ms-justify-content: center;
    align-items: center;
    -moz-align-items: center;
    -webkit-align-items: center;
    -o-align-items: center;
    -ms-align-items: center;
    text-align: center;
    padding: 2em 0;
    overflow-y: auto;
    opacity: 0;
    transition: all ease-in-out 0.6s;
    -moz-transition: all ease-in-out 0.6s;
    -webkit-transition: all ease-in-out 0.6s;
    -o-transition: all ease-in-out 0.6s;
    -ms-transition: all ease-in-out 0.6s;
}

    .menu-close{
        position: absolute;
        top: 20px;
        right: 20px;
        width: 20px;
        cursor: pointer;
    }

    .mob-menu ul{
        list-style: none;
        padding: 0;
        margin: 0;
    }

        .mob-menu li a{
            color: var(--secondary);
            text-transform: uppercase;
            text-decoration: none;
            padding: 5px 0;
            margin: 10px 0;
            font-size: 1.2em;
            display: block;
            font-weight: bold;
        }

        .mob-menu .btn-alt a{
            display: inline-block;
            padding: 5px 25px;
            color: #fff;
        }

            .mob-logo{
                width: 100px;
                margin-bottom: 30px;
            }

/*=== Header ===*/
header{
    padding: 20px 0;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 5;
    -webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
    -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
    box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
    transition: all ease-in-out 0.3s;
    -moz-transition: all ease-in-out 0.3s;
    -webkit-transition: all ease-in-out 0.3s;
    -o-transition: all ease-in-out 0.3s;
    -ms-transition: all ease-in-out 0.3s;
}

    header .content{
        display: flex;
        display: -moz-flex;
        display: -webkit-flex;
        display: -o-flex;
        display: -ms-flex;
        justify-content: space-between;
        -moz-justify-content: space-between;
        -webkit-justify-content: space-between;
        -o-justify-content: space-between;
        -ms-justify-content: space-between;
        align-items: center;
        -moz-align-items: center;
        -webkit-align-items: center;
        -o-align-items: center;
        -ms-align-items: center;
    }

        header .logo{
            height: 89px;
            transition: all ease-in-out 0.3s;
            -moz-transition: all ease-in-out 0.3s;
            -webkit-transition: all ease-in-out 0.3s;
            -o-transition: all ease-in-out 0.3s;
            -ms-transition: all ease-in-out 0.3s;
        }

        .sticky-header .logo{
            height: 50px;
        }

        nav ul{
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            display: -moz-flex;
            display: -webkit-flex;
            display: -o-flex;
            display: -ms-flex;
            align-items: center;
            -moz-align-items: center;
            -webkit-align-items: center;
            -o-align-items: center;
            -ms-align-items: center;
        }

            nav li{
                display: inline-block;
                margin-left: 50px;
                position: relative;
                padding: 20px 0;
            }

            nav li:first-of-type{
                margin-left: 0;
            }

            nav li.btn-alt{
                line-height: 1;
            }

                nav li a{
                    color: var(--secondary);
                    text-decoration: none;
                    font-weight: bold;
                    text-transform: uppercase;
                }

                .subnav{
                    position: absolute;
                    width: 300px;
                    left: -10000px;
                    top: 100%;
                    background-color: #fff;
                    padding: 15px;
                    display: block;
                    -webkit-box-shadow: 0px 5px 5px 0px rgba(0,0,0,0.25);
                    -moz-box-shadow: 0px 5px 5px 0px rgba(0,0,0,0.25);
                    box-shadow: 0px 5px 5px 0px rgba(0,0,0,0.25);
                }

                nav li:hover .subnav{
                    left: -15px;
                }

                    .subnav li{
                        display: block;
                        margin-left: 0;
                        margin: 10px 0;
                        padding: 0;
                    }

                    .subnav li:first-of-type{
                        margin-top: 0;
                    }

                    .subnav li:last-of-type{
                        margin-bottom: 0;
                    }

        .menu-btn{
            display: none;
            width: 35px;
            cursor: pointer;
        }

/*=== Hero ===*/
.hero{
    height: 590px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    display: -moz-flex;
    display: -webkit-flex;
    display: -o-flex;
    display: -ms-flex;
    align-items: center;
    -moz-align-items: center;
    -webkit-align-items: center;
    -o-align-items: center;
    -ms-align-items: center;
}

    .hero:before{
        display: block;
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1;
        background-color: rgba(8, 8, 8, 0.55);
    }

    .hero .content{
        position: relative;
        z-index: 1;
        color: #fff;
    }

        .hero h1{
            line-height: 1.2;
            text-transform: uppercase;
            font-size: 3em;
            margin: 0 0 10px;
            max-width: 450px;
        }

        .home-hero h1{
            max-width: 900px;
        }

        .hero p{
            margin: 0;
            max-width: 600px;
        }

/*=== Intro ===*/
.intro{
    padding: 7em 0 8em;
}

.home-intro{
    padding: 12em 0 8em;
}

.blue{
    position: relative;
    color: #fff;
}

    .blue .bg{
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        background-image: url(/img/water-bg.jpg);
        background-size: cover;
        background-position: center;
        width: 97%;
    } 

    .blue-right .bg{
        left: 3%;
    }

    .blue-left .bg{
        right: 3%;
    }

    .bg:before{
        display: block;
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1;
        background-color: rgba(18, 54, 101, 0.94);
    }

    .blue .content{
        position: relative;
        z-index: 2;
    }

        .offer-banner{
            position: relative;
            background: #08548c;
            padding-top: 5px;
            padding-bottom: 8px;
        }

        .hover-banner{
            position: relative;
            background: rgba(255,255,255,0.9);
            margin-top: -16.5em;
            overflow: hidden;
            margin-bottom: 4em;
        }

            .hover-border{
                position: relative;
            }

            .hover-border:after{
                display: block;
                content: "";
                position: absolute;
                right: 5px;
                top: 20px;
                bottom: 20px;
                width: 1px;
                background-color: #D1D1D1;
            }

            .hover-banner .gs-6{
                padding: 20px;
            }

                .hover-banner img{
                    width: 100%;
                    height: 100%;
                    -webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
                    -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
                    box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
                    object-fit: cover;
                    -moz-object-fit: cover;
                    -webkit-object-fit: cover;
                    -o-object-fit: cover;
                    -ms-object-fit: cover;
                }

                .hover-banner .gs-7{
                    padding: 20px 0;
                    display: flex;
                    display: -moz-flex;
                    display: -webkit-flex;
                    display: -o-flex;
                    display: -ms-flex;
                    align-items: center;
                    -moz-align-items: center;
                    -webkit-align-items: center;
                    -o-align-items: center;
                    -ms-align-items: center;
                }

                    .hover-banner h4{
                        color: var(--primary);
                        margin: 0 0 10px;
                        padding-left: 15px;
                        font-size: 1.3em;
                        line-height: 1.2;
                    }

                    .hover-banner p{
                        color: #888888;
                        padding-left: 15px;
                        margin-top: 0;
                    }

        .intro .content > .grid{
            align-items: center;
            -moz-align-items: center;
            -webkit-align-items: center;
            -o-align-items: center;
            -ms-align-items: center;
        }

            .image{
                height: 0;
                width: 100%;
                padding-bottom: 70%;
                background-size: cover;
                background-position: center;
            }

            .intro-text{
                padding-right: 1em;
            }

            .home-intro .intro-text{
                padding-left: 1em;
                padding-right: 0;
            }

                .intro-text h2{
                    margin: 0;
                }

                .intro p:last-of-type{
                    margin-bottom: 0;
                }

/*=== Logos ===*/
.logos{
    margin: 3em 0;
    text-align: center;
}

/*=== FW Grid ===*/
.fw-grid{
    margin: 4em 0;
}

    .fw-grid img{
        width: 100%;
        height: 100%;
        position: relative;
        z-index: 3;
        object-fit: cover;
        -moz-object-fit: cover;
        -webkit-object-fit: cover;
        -o-object-fit: cover;
        -ms-object-fit: cover;
        object-position: left;
        -moz-object-position: left;
        -webkit-object-position: left;
        -o-object-position: left;
        -ms-object-position: left;
    }

    .fw-text{
        display: flex;
        display: -moz-flex;
        display: -webkit-flex;
        display: -o-flex;
        display: -ms-flex;
        align-items: center;
        -moz-align-items: center;
        -webkit-align-items: center;
        -o-align-items: center;
        -ms-align-items: center;
    }

        .fw-text .content{
            padding: 4em 0;
            max-width: 700px;
        }

        .blue .fw-text .content{
            padding: 4em 0 4em 3vw;
        }

            .fw-text h3{
                color: var(--tertiary);
                text-transform: uppercase;
                font-weight: 400;
                margin-bottom: 0;
            }

            .blue .fw-text h3, .blue .fw-text h2{
                color: #fff;
            }

            .fw-text h2{
                margin: 10px 0 0;
                line-height: 1.4;
                color: var(--primary);
                font-size: 1.7em;
            }

/*=== Banner ===*/
.banner{
    overflow: hidden;
    padding: 5em 0;
    text-align: center;
}

    .banner p{
        max-width: 800px;
        margin: 1em auto;
    }

    .banner p:last-of-type{
        margin-bottom: 0;
    }

/*=== Footer ===*/
footer{
    padding: 20px 0;
    background-color: #fff;
    margin-top: 3em;
}

    .foot-flex{
        display: flex;
        display: -moz-flex;
        display: -webkit-flex;
        display: -o-flex;
        display: -ms-flex;
        justify-content: space-between;
        -moz-justify-content: space-between;
        -webkit-justify-content: space-between;
        -o-justify-content: space-between;
        -ms-justify-content: space-between;
        align-items: center;
        -moz-align-items: center;
        -webkit-align-items: center;
        -o-align-items: center;
        -ms-align-items: center;
    }

    footer p{
        font-size: 0.8em;
        text-align: center;
        margin-bottom: 0;
    }

/*========== Inner Pages ==========*/
/*=== Team ===*/
.team{
    text-align: center;
    padding: 3em 0;
}

    .team h2{
        font-size: 1.7em;
        color: var(--primary);
    }

    .team .gs-3 > div{
        padding: 0 20px;
    }

        .team img{
            border-radius: 100%;
            margin-bottom: 1.5em;
        }

        .team h4{
            margin: 0;
            font-size: 1.6em;
            color: var(--primary);
        }

        .team h5{
            margin: 0;
            text-transform: uppercase;
            font-weight: 400;
            color: var(--tertiary);
            font-size: 1em;
        }

/*========== Services Grid ==========*/
.services-grid{
    padding: 4em 0;
}

    .services-grid h2{
        text-align: center;
        margin: 10px 0 0;
        line-height: 1.4;
        color: var(--primary);
        font-size: 2em;
    }

    .services-grid h3{
        color: var(--primary);
        margin-bottom: 0;
        font-size: 1.3em;
    }

    .services-grid .btn a{
        margin-top: 0;
    }

/*========== Get A Quote ==========*/
.quote-form-container{
    padding-top: 3em;
}

    .step{
        padding: 30px;
        background: #fff;
        -webkit-box-shadow: 0px 0px 5px 0px rgb(0, 0, 0, 0.15);
        -moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.15);
        box-shadow: 0px 0px 5px 0px rgb(0, 0, 0, 0.15);
        margin-bottom: 2em;
    }

        .step h2{
            margin-top: 2em;
            color: #0A76C5;
            font-size: 2em;
        }

        .step h2:first-of-type{
            margin-top: 0;
        }

            .quote-form .grid .grid--gutters{
                margin-bottom: 1em;
                margin-top: -1em;
                align-items: center;
                -moz-align-items: center;
                -webkit-align-items: center;
                -ms-align-items: center;
                -o-align-items: center;
            }

            .extras > .grid{
                flex-wrap: nowrap;
                -moz-flex-wrap: nowrap;
                -webkit-flex-wrap: nowrap;
                -o-flex-wrap: nowrap;
                -ms-flex-wrap: nowrap;
            }

                .quote-form h4{
                    margin: 0;
                    color: #4B4B4B;
                }

                .quote-form .flex h4{
                    margin-top: 3px;
                }

                .quote-form input:not([type="checkbox"]), .quote-form select{
                    padding: 4px 11px;
                    height: 43px;
                    font-size: 0.86em;
                    width: 100%;
                    background-color: rgba(119, 126, 118, 0.08);
                    max-width: 400px;
                    border-radius: 2px;
                    border: 1px solid rgba(0,0,0,0.2);
                    color: #3e3c3c;
                }

                .quote-form input[type="checkbox"]{
                    width: 18px;
                    min-width: 18px;
                    height: 18px;
                    min-height: 18px;
                    margin-right: 15px;
                }

                .quote-form input[type="radio"]{
                    width: 18px;
                    min-width: 18px;
                    height: 18px;
                    min-height: 18px;
                    margin-right: 25px;
                    margin-left: 10px;
                }

                .flex input[type="radio"]:last-of-type{
                    margin-right: 0;
                }

                .quote-form textarea{
                    padding: 11px;
                    font-size: 0.86em;
                    width: 100%;
                    background-color: rgba(119, 126, 118, 0.08);
                    border-radius: 2px;
                    border: 1px solid rgba(0,0,0,0.2);
                    color: #3e3c3c;
                    height: 200px;
                }

        .step .flex{
            display: flex;
            display: -moz-flex;
            display: -webkit-flex;
            display: -o-flex;
            display: -ms-flex;
            align-items: center;
            -moz-align-items: center;
            -webkit-align-items: center;
            -ms-align-items: center;
            -o-align-items: center;
        }

            .extras .gs-4{
                min-width: 150px;
                max-width: 150px;
            }

                .extras .gs-4 p{
                    color: #0A76C5;
                    font-weight: 400;
                }

            .extras hr{
                margin: 1em 0;
            }

    .form-grid > .gs-3{
        max-width: 350px;
        min-width: 350px;
    }

    .form-grid aside{
        background-color: #0A76C5;
        -webkit-box-shadow: 0px 0px 5px 0px rgb(0, 0, 0, 0.15);
        -moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.15);
        box-shadow: 0px 0px 5px 0px rgb(0, 0, 0, 0.15);
        overflow: hidden;
    }

    .inner-wrapper-sticky{
        left: auto!important;
        top: 0;
    }

        .aside-text{
            padding: 30px;
        }

            .aside-text h2{
                font-size: 1.75em;
                color: #fff;
                line-height: 1.4;
                border-bottom: 1px solid #fff;
                padding-bottom: 0.5em;
            }

        .quote-box{
            background: #123A6D;
            color: #fff;
            padding: 25px;
            margin-bottom: 2em;
        }

            .quote-box > div{
                margin: 1.5em 0;
            }

            .quote-box p{
                margin: 0;
                text-align: center;
                font-size: 2.5em;
                font-size: 1.8em;
                font-weight: 300;
                line-height: 1;
                padding-bottom: 10px;
            }

.quote_vat{
    font-size: .5em;
}

.company_details{
    display: none;
}

.error_label {
    color: #f91818;
    font-weight: bold;
}

.success_label {
    color: #64ab64;
    font-weight: bold;
}

.offer-price{
    background: #168ec9;
    color: #fff;
    text-transform: uppercase;
    font-size: .75em;
    border-radius: 3px;
    padding: 5px;       
}

.offer-box {
    background-color: #183c6c; 
    padding: 0.2em 15px 0.2em 15px;
}

/*===================== Responsive Styling =========================*/
@media only screen and (max-width: 1215px) {

    /*========== Get a Quote Page ==========*/
    /*=== Grid ===*/
    .form-grid > .grid-cell{
        width: 100%!important;
    }

    #sidebar{
        max-width: 100%;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 10;
        padding: 0;
    }

        .form-grid aside{
            display: flex;
            display: -moz-flex;
            display: -webkit-flex;
            display: -o-flex;
            display: -ms-flex;
            justify-content: space-between;
            -moz-justify-content: space-between;
            -webkit-justify-content: space-between;
            -o-justify-content: space-between;
            -ms-justify-content: space-between;
        }

            .aside-text{
                display: flex;
                display: -moz-flex;
                display: -webkit-flex;
                display: -o-flex;
                display: -ms-flex;
                align-items: center;
                -moz-align-items: center;
                -webkit-align-items: center;
                -o-align-items: center;
                -ms-align-items: center;
            }

                .aside-text h2{
                    margin: 0;
                    padding: 0;
                    border-bottom: 0;
                    font-size: 1.3em;
                    font-weight: 400;
                }

                    .aside-text h2 br{
                        display: none;
                    }

            .quote-box{
                margin-bottom: 0;
                display: flex;
                display: -moz-flex;
                display: -webkit-flex;
                display: -o-flex;
                display: -ms-flex;
                align-items: center;
                -moz-align-items: center;
                -webkit-align-items: center;
                -o-align-items: center;
                -ms-align-items: center;
            }

                .quote-box p{
                    padding-bottom: 0;
                    font-size: 1.75em;
                }

    .quote-footer{
        padding-bottom: 100px;
    }

}

@media only screen and (max-width: 1100px) {

    /*========== Home Page ==========*/
    /*=== Intro ===*/
    .intro:not(.home-intro){
        padding: 4em 0 6em;
    }

    /*========== Inner Pages ==========*/
    /*=== Team ===*/
    .team .gs-3{
        width: 50%!important;
    }

}

@media only screen and (max-width: 1000px) {

    .services-grid .gs-4{
        width: 100%!important;
    }

}

@media only screen and (max-width: 900px) {

    /*========== All Pages ==========*/
    /*=== Header ===*/
    header nav ul{
        display: none;
    }

    .menu-btn{
        display: block;
    }

    /*=== Intro ===*/
    .intro:not(.home-intro) {
        padding: 2 0 6em;
    }

    .home-intro{
        padding: 12em 0 4em;
    }

        .intro .content > .grid .gs-5, .intro .content > .grid .gs-7{
            width: 100%!important;
        }

            .home-intro .intro-text{
                padding-left: 0;
            }

            .intro-text{
                padding-right: 0;
                padding-top: 20px;
            }

    /*=== FW Grid ===*/
    .fw-grid{
        margin: 4em 0 2em;
    }

        .fw-grid .gs-half, .fw-grid .gs-6{
            width: 100%!important;
        }

            .fw-grid.blue-right img{
                width: 97%;
                float: right;
            }

            .fw-grid.blue-left img{
                width: 97%;
                float: left;
            }

        .fw-text .content{
            max-width: 100%;
            padding: 3em 0 2em;
        }

    /*=== Footer ===*/
    .foot-flex{
        display: block;
        text-align: center;
    }

        footer nav{
            margin: 30px 0;
            font-size: 0.9em;
        }

            footer nav ul{
                display: block;
            }

                footer nav li{
                    display: block;
                    margin-left: 0;
                    margin: 10px 0;
                }

    /*========== Home Page ==========*/
    /*=== Hover Banner ===*/
    .hover-banner{
        margin-bottom: 2em;
    }

        .hover-banner .gs-6{
            width: 100%!important;
        }

        .hover-border:after{
            width: auto;
            bottom: 0;
            top: auto;
            left: 20px;
            right: 20px;
            height: 1px;
        }

    /*========== Inner Pages ==========*/
    /*=== Team ===*/
    .team{
        padding: 0;
    }

}

@media only screen and (max-width: 768px) {}

@media only screen and (max-width: 667px) {}

@media only screen and (max-width: 600px) {

    .blue .bg{
        width: 100%;
    }

    .blue-right .bg, .blue-left .bg{
        left: 0;
        right: 0;
    }

        .fw-grid.blue-right img, .fw-grid.blue-left img{
            width: 100%;
        }

    /*========== Inner Pages ==========*/
    /*=== Team ===*/
    .team .gs-3{
        width: 100%!important;
    }

        .team .gs-3 > div{
            padding: 0;
        }

    /*========== Quote Page ==========*/
    /*=== Form ===*/
    .quote-form .grid .grid--gutters{
        display: block;
    }

        .quote-form .grid .grid--gutters .grid-cell{
            width: 100%!important;
        }

            .quote-form input:not([type="checkbox"]), .quote-form select{
                max-width: 100%;
            }

            .extras .gs-4{
                padding-top: 0;
            }

                .extras .gs-4 p{
                    margin-top: 0;
                }

    /*=== Aside ===*/
    .aside-text{
        display: none;
    }

    .quote-box{
        width: 100%;
        justify-content: center;
        -moz-justify-content: center;
        -webkit-justify-content: center;
        -o-justify-content: center;
        -ms-justify-content: center;
    }

    .offer-box {
        background-color: #183c6c; 
        padding: 0.2em 15px 0.2em 15px;
        width: 400px;
    }

}

@media only screen and (max-height: 500px) {

    /*=== Mob Menu ===*/
    .mob-menu{
        display: block;
    }

}

@media only screen and (max-width: 450px) {

    .hover-banner .gs-5, .hover-banner .gs-7{
        width: 100%!important;
        padding-bottom: 0;
    }

        .hover-banner h4, .hover-banner p{
            padding-left: 0;
        }

}

@media only screen and (max-width: 375px) {}

@media only screen and (max-width: 320px) {}


/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Hide visually and from screen readers
 */

.hidden {
    display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap; /* 1 */
}

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
    white-space: inherit;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
    visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.clearfix:after {
    clear: both;
}

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
    /* Style adjustments for viewports that meet the condition */
}

@media print,
       (-webkit-min-device-pixel-ratio: 1.25),
       (min-resolution: 1.25dppx),
       (min-resolution: 120dpi) {
    /* Style adjustments for high resolution devices */
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
    *,
    *:before,
    *:after {
        background: transparent !important;
        color: #000 !important; /* Black prints faster */
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */

    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }

    pre {
        white-space: pre-wrap !important;
    }
    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}


/* ==========================================================================
   MEDIA QUERIES
   ========================================================================== */

   @media only screen and (max-width : 1000px) {}
   @media only screen and (max-width : 768px) {}
   @media only screen and (max-width : 660px) {}
   @media only screen and (max-width : 460px) {}
   @media only screen and (max-width : 380px) {}

