:root {
    --secondary: #00c7e9;
    --primary: #590090;
    --light: #e9e9c7;
    --dark-secondary: #003759;
    --dark-primary: #2f004d;
    --bg-color: #fff;

    --grey-0: #e9e9e9;
    --grey-1: #909090;
    --grey-2: #595959;
    font-size: 14pt;
}


@font-face {
    font-family: "Cinzel-Black";
    src: url('fonts/Cinzel-Black.otf');
    src: url('fonts/Cinzel-Black.eot') format('embedded-opentype'),
         url('fonts/Cinzel-Black.woff2') format('woff2'),
         url('fonts/Cinzel-Black.ttf') format('truetype')
}

@font-face {
    font-family: "Cinzel-Bold";
    src: url('fonts/Cinzel-Bold.otf');
    src: url('fonts/Cinzel-Bold.eot') format('embedded-opentype'),
         url('fonts/Cinzel-Bold.woff2') format('woff2'),
         url('fonts/Cinzel-Bold.ttf') format('truetype')
}

@font-face {
    font-family: "Cinzel-Regular";
    src: url('fonts/Cinzel-Regular.otf');
    src: url('fonts/Cinzel-Regular.eot') format('embedded-opentype'),
         url('fonts/Cinzel-Regular.woff2') format('woff2'),
         url('fonts/Cinzel-Regular.ttf') format('truetype')
}

@font-face {
    font-family: "Muli-Regular";
    src: url('fonts/Muli-Regular.otf');
    src: url('fonts/Muli-Regular.eot') format('embedded-opentype'),
         url('fonts/Muli-Regular.woff2') format('woff2'),
         url('fonts/Muli-Regular.ttf') format('truetype')
}

@font-face {
    font-family: "Muli-Light";
    src: url('fonts/Muli-Light.otf');
    src: url('fonts/Muli-Light.eot') format('embedded-opentype'),
         url('fonts/Muli-Light.woff2') format('woff2'),
         url('fonts/Muli-Light.ttf') format('truetype')
}

* {
}

body {
    margin: 0rem;
    background-color: var(--bg-color);
    font-size: 13pt;
    font-family: "Muli-Regular";
    padding-bottom: 1.5rem;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Cinzel-Bold";
}

h1 {
    font-size: 2.5rem;
}

h2 {
    /*font-size: 28pt;*/
    font-size: 1.5rem;
}

h3 {
    font-size: 1.35rem;
}

h4 {
    font-size: 1.2rem;
}

h5 {
    font-size: 1rem;
}

main {
    margin: 0rem;
    padding: 0rem;
    background-color: #fff;
}

.page-header {
    position: relative;
    border-bottom: 1px solid black;
    margin-bottom: 1rem;
    padding-bottom: .5em;
    background-color: var(--bg-color);
    color: #000;
    display: flex;
    flex-flow: column;

    & h1 {
        display: inline-block;
        vertical-align: bottom;
        font-size: 28pt;
        margin: 1rem 1rem -.45rem;
        text-align: left;

        & .sub-header {
            font-size: 24pt;
            display: none;
        }
    }

    & .brand {
        position: absolute;
        align-self: end;
        margin-right: 1rem;

    }
}
#logo {
    width: 6.2rem;
}

nav {
    display: flex;
    flex-flow: column wrap;
    margin: 0px;
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: var(--bg-color);

    & a, & a:visited {
        flex: 1 100%;
        color: #000;
        padding: .5rem 2rem;
        text-align: center;
        margin: .25rem 0rem;
    }
    & a:hover, a:focus {
        color: #fff;
        background-color: var(--primary);
    }
}

footer {
    text-align: center;
    padding: .5rem;
    background-color: var(--dark-primary);
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    color: var(--secondary);
    display: flex;
    flex-wrap: wrap;

    & a {
        font-weight: bold;
        margin: .25rem;
    }
    & a:hover, a:focus {
        color: var(--primary);
        background-color: #fff;
    }
    & > span {
        margin: 0rem .5rem;
    }

}

.container {
    width: 100%;
    overflow-x: hidden;
}

.copyright, .important-links {
    font-size: 10pt;
    align-self: flex-end;
    padding: 2px;
}

a, a:visited {
    color: var(--secondary);
}
a, a:visited, a:hover {
    text-decoration: none;

    & em {
        font-style: normal;
        text-decoration: underline;
    }
}
.info-content a {
    color: var(--primary);
}
.alert-warning {
    margin: 1rem;
    padding: 1em;
    text-align: center;
    background-color: var(--light);
}

.hero {
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: #ccffcc;

    & h2 {
        width: 14em;
        margin-left: 2rem;
    }
    & p {
        width: 18em;
        margin-left: 2rem;
    }
}

ul.simple {
    & li {
        list-style: none;
    }

    & li.spacer {
        min-height: 1rem;
        height: 1rem;
    }

    & li.section-head {
        font-size: 16pt;
    }
}

.section-head {
    text-align: center;
}

.gallery {
    justify-content: space-around;
    &.centered {
        justify-content: center !important;
    }
}

.gallery, .contact-list {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.contact-list {
    justify-content: center;
}

.content-flow {
    display: flex;
    flex-direction: column;

    & * {
        flex: 0 1 50%;
        align-self:center;
    }
}

.contact-card, .reference-card, .service-card {
    border-radius: .5rem;
    padding-bottom: .75rem;
}

.service-card {
    flex: 0 0 90%;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;

    & .feature {
        flex: 0 1 90%;
        padding: 1rem;
        box-sizing: border-box
    }

    & .highlight {
        flex: 0 1 90%;
        box-sizing: border-box
    }
}
.service-card .highlight {
    display: flex;
}
.feature, .highlight {
    & p {
        height: 8em;
        padding-bottom: 1em;
    }
    & h3 {
        min-height: 1em;
    }
}

.highlight .before, .highlight .after {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    width: 50%;
}

.before {
    background-image: url('/lib/img/main_placeholder_sm-before.svg');
}
.after {
    background-image: url('/lib/img/main_placeholder_sm-after.svg');
}

.service-card:nth-child(even) div {
    box-shadow: .25rem .25rem .75rem var(--primary);
}

.service-card:nth-child(odd) div {
    box-shadow: .25rem .25rem .75rem var(--secondary);
}

.contact-card {
    background-color: var(--primary);
    color: #fff;
    padding-bottom: .75rem;
    flex: 0 1 80%;
    text-align: center;
    margin-bottom: 1.25rem;
    & a {
        padding: 0rem;
        margin: 0rem;
        color: #fff;
    }
}

a.contact-card:hover, .contact-card:focus {
    background-color: var(--secondary);
    color: #000;
     & a {
         color: var(--dark-secondary);
     }
}

.content-card {
    flex: 0 1 90%;
}

.reference-card {
    background-color: var(--secondary);
    color: #fff;
    padding: 2rem;
    flex: 0 1 90%;
    margin-bottom: 2.5rem;
}

ul.reference-card {
    padding-left: 2.75rem;
    list-style: disclosure-open;
    box-sizing: border-box;
}

h3.bi::before {
    display: none !important;
}

.info-content {
    margin: 1em 1em 1.5em 1em;
}

.map {
    max-width: 80%;
}

#contactForm {
    display: grid;
    grid-rows: 1.5em 1.5em 10em;
    grid-gap: 1em;
    width: 90%;
    align-self: center;
}

input, textarea {
    padding: .5em;
    border-radius: .25rem;
    border: 1px solid var(--primary);
}

@media (min-width: 576px) {
    .page-header h1 {
        margin: 1rem 2rem -.45rem;
        font-size: 32pt;
    }
    #logo { width: 7rem; }
    nav {
        flex-flow: row nowrap;
        & a {
            margin: 0rem;
            padding: .25rem 2rem;
        }
    }
    footer {
        justify-content: space-between;

        & > span {
            margin: 0rem 1rem;
        }
        & a {
            margin: 1rem;
        }
    }
    h2 { font-size: 2rem; }
    h3 { font-size: 1.5rem; }
    h4 { font-size: 1.2rem; }
    h5 { font-size: 1rem; }

    .important-links, .copyright { font-size: 12pt; }

    h3.bi::before {
        padding: .5rem;
        display: inline-block !important;

    }
    .info-content {
        margin: 0em 2em 2em 2em;
    }

    .feature, .highlight {
        & p {
            height: 5em;
        }
    }
}
@media (min-width: 786px) {
    h3.bi::before {
        padding: 1rem;
    }
    .page-header h1  {
        text-align: left;
        & .sub-header {
            display: inline;
        }
    }
    .hero {
        height: 576px;
        & h2, & p {
            margin-left: 5rem;
        }
        & p {
            font-size: 18pt;
            font-family: "Muli-Light";
        }
    }

    .important-links, .copyright { font-size: 13pt; }

    #contactForm {
        width: 75%;
    }
}
@media (min-width: 992px) {
    body {
        font-size: 1rem;
    }
    .important-links, .copyright { font-size: 1rem; }
    .page-header h1 {
        text-align: center;
    }
    .hero {
        & h2, & p {
            margin-left: 8rem;
        }
        & h2 {
            font-size: 34pt;
        }
        & p {
            font-size: 20pt;
            font-family: "Muli-Regular" !important;
        }
    }

    .info-content {
        margin: 0em 5em 2em 5em;
    }

    nav a {
        font-size: 17pt;
    }

    .service-card {
        flex-wrap: nowrap;
        flex: 0 1 45%;

        & .feature {
            flex: 0 1 90%;
            padding: 1rem;
            box-sizing: border-box
        }

        & .highlight {
            flex: 0 1 50%;
            box-sizing: border-box
        }
    }

    .content-card {
        flex: 0 1 50%
    }

    .reference-card {
        background-color: var(--secondary);
        color: #fff;
        flex: 0 1 30%;
    }

    .contact-card, .content-card, .reference-card {
        flex: 0 1 40%;
        margin-bottom: 5rem;
    }

    #contactForm {
        width: 60%;
    }
}

@media (min-width: 1260px) {
    .hero {

        & h2, & p {
            margin-left: 10rem;
        }
        & h2 {
            font-size: 36pt;
        }
        & p {
            font-size: 22pt;
        }
    }

    .info-content {
        margin: 0em 8em 2em 8em;
    }

    .servie-card {
        flex: 0 0 45%
    }

    .feature p {
        padding: 0rem 1.5rem .5rem;
    }

    .contact-card, .content-card, .reference-card {
        flex: 0 1 25%;
    }
    #contactForm {
        width: 50%;
    }
}

@media (min-width: 1500px) {
    .feature p {
        height: 4em;
    }
}

.print-only { display: none; }

@media print {
    body { font-size: 10pt; }
    h2 { font-size: 18pt; }
    h3 { font-size: 15pt; }
    h4 { font-size: 12pt; }
    h5 { font-size: 10pt; }
    footer { display: none; }
    .page-header h1 { font-size: 28pt; line-hight: normal; }
    .page-header h1 .sub-header { font-size: 24pt; }
    .print-only { display: block !important; }
    .print-none { display: none !important; }
    .contact-list { gap: 1rem; }
    .contact-list p { font-size: 15pt; }
    .contact-list h3 { display: none; }
    .contact-card { color: #000; background-color: #fff; }
    .content-card { flex: 0 1 40%; align-self: center }
    .reference-card { flex: 0 1 45%; color: #000; background-color: #fff; }
    .service-card:nth-child(even) div { box-shadow: .25rem .25rem .75rem var(--grey-2); }
    .service-card:nth-child(odd) div { box-shadow: .25rem .25rem .75rem var(--grey-1); }
    .hero { background: none; height: unset; }
}

