/* DE Web Works - Main CSS */

/*------------------------------------*\
    #TABLE OF CONTENTS

    # Site Structure
    # Page Header
    # Page Content
    # Page Footer
    # Custom Media Queries
\*------------------------------------*/
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700);

html {
    font-size: 100%;
}

body {
    min-width: 87.5rem;
    max-width: 120rem;
    margin: 0 auto;
    box-sizing: border-box;
    font-size: 1.3125rem;
    font-family: 'Source Sans Pro', sans-serif;
    font-weight: 300;
    background-image: url("img/backgrounds/wood.jpg");
}

body *,
body *:before,
body *:after  {
    box-sizing: inherit;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6,
dt {
    margin: 0 0 1rem;
    line-height: 1.2;
    text-transform: uppercase;
    font-weight: 700;
    color: #526838;
}

h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
}

h2,
aside h1 {
    padding-bottom: 0.4em;
    margin-bottom: 1.375rem;
    font-size: 2rem;
    border-bottom: solid 3px #dddddd;
}

h2 small {
    text-transform:lowercase;
    font-size: 70%;
}

dt {
    text-transform: none;
}

dd {
    margin-bottom: 2rem;
}

p {
    margin: 0 0 1.25rem;
}

a,
input,
button {
    color: #526838;
    -webkit-transition: color 300ms ease, background 300ms ease;
    -o-transition: color 300ms ease, background 300ms ease;
    transition: color 300ms ease, background 300ms ease;
}

a {
    text-decoration: underline;
}

a:visited {
    color: #3f5328;
}

a:hover,
a:focus,
a:active {
    text-decoration: none;
    color: #aac88c;
}

img {
    max-width: 100%;
}

.bolder {
    font-weight: bolder;
}

.fine-print {
    font-size: 0.8em;
}

.em-upper {
    font-style: normal;
    text-transform: uppercase;
}

/* https://make.wordpress.org/accessibility/2015/02/09/hiding-text-for-screen-readers-with-wordpress-core/ */
nav h1,
.header-logo-text,
.hidden-label,
.screen-reader-text {
    clip: rect(1px 1px 1px 1px);
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: polygon(0px 0px, 0px 0px,0px 0px, 0px 0px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}


/*------------------------------------*\
    #TABLES
\*------------------------------------*/
table {
    margin-bottom: 1.5rem;
    line-height: 1.24;
    color: #3f5328;
}

thead > tr {
    background-color: #aac88c;
}

tbody > tr {
    background-color: #bdc7b3;
}

tbody > tr:nth-child(even) {
    background-color: #d5ddcd;
}

th {
    padding: 1.5rem 2.5rem;
    font-size: 1.19em;
    font-weight: 600;
    text-align: left;
}

td {
    padding: 0.5rem 2.5rem;
}


/*------------------------------------*\
    #FORMS
\*------------------------------------*/
form {
    background-color: #FFF;
    border: solid 1px #dddddd;
}

.form-row-field {
    margin-bottom: 2rem;
}

label {
    cursor: pointer;
}

input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea {
    width: 100%;
    padding: 0.4em;
    border: solid 1px #C0C0C0;
    box-shadow: inset 0 0 3px 1px rgba(0, 0, 0, 0.2);
}

input:focus {
    box-shadow: none;
}

textarea {
    resize: vertical;
}

button,
input[type="submit"],
input[type="reset"] {
    padding: 0.5em 1.2em;
    color: #FFF;
    background-color: #526838;
    border: none;
}

button:hover,
button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus {
    background-color: #3D4D2A;
}

button:active,
input[type="submit"]:active,
input[type="reset"]:active {
    background-color: #2E3A20;
}


/*------------------------------------*\
    #PAGE HEADER
\*------------------------------------*/
.page-header {
    position: relative;
    z-index: 2;
}

.page-header a {
    text-decoration: none;
    color: inherit;
}

.page-header h1 {
    color: inherit;
}

.header-chrome {
    width: 100%;
    background-color: #050100;
    color: #aec98f;
    font-size: 1.6875rem;
}

.page-header-home .header-chrome {
    position: absolute;
    z-index: 1;
    background-color: rgba(47, 37, 28, 0.8);
}

.page-header.coming-soon .header-chrome {
    color: #FFF;
}

.header-info {
    display: table;
    width: 100%;
    padding: 0.3em 4em;
    font-weight: normal;
    text-align: right;
}

.page-header-home .header-info {
    padding: 0.37em 4.25em 0.26em;
}

.page-header.coming-soon .header-info {
    text-align: center;
}

.header-info-section {
    display: table-cell;
    vertical-align: middle;
}

.header-info-section.info-logo {
    text-align: left;
}

.header-info-section.info-phone {
}

.page-header-home .header-phone {
    position: static;
}

.header-phone:before {
    content: url("img/icons/phone.png");
    display: inline-block;
    margin-right: 0.37em;
    vertical-align: middle;
}

.page-banner {
    position: relative;
    max-width: 87.5rem;
    margin: 0 auto;
}

.page-header-home .header-logo {
    position: absolute;
    top: 40.36%;
    left: 0;
    padding: 0.625em 3.375em 1.625em 9.125em;
    font-size: 1rem;
    background-color: rgba(0, 0, 0, 0.8);
}

.header-tagline {
    position: absolute;
    bottom: 24.06%;
    right: 0;
    padding: 0.8em 2.33em 0.8em 1.11em;
    font-size: 2.8125rem;
    font-weight: 2.8125rem;
    text-transform: uppercase;
    color: #FFF;
    background-color: rgba(82, 104, 56, 0.8);
}

.header-image {
    display: block;
    width: 100%;
}

    /*------------------------------------*\
        #MAIN NAVIGATION
    \*------------------------------------*/
    .main-nav {
        padding: 0 2rem;
        font-family: 'Myriad Pro', 'Source Sans Pro', sans-serif;
        font-size: 1.4375rem;
        font-weight: 300;
        text-align: center;
        color: #FFF;
        background-color: #526838;
        box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.38);
    }

    .main-nav-level {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .main-nav a {
        display: block;
        padding: 0.96em 1.39em;
    }

    .main-nav a:hover,
    .main-nav a:focus {
        background-color: rgba(0, 0, 0, 0.3);
    }

    .main-nav a:active {
        background-color: rgba(0, 0, 0, 0.5);
    }

    .main-nav-level-1 {
        display: table;
        margin: 0 auto;
    }

    .main-nav-level-1 > li {
        display: table-cell;
    }

    .main-nav .has-dropdown {
        position: relative;
    }

    .main-nav .has-dropdown > a {
        padding-right: 2.09em;
    }
    

    .main-nav .has-dropdown > a[href="#"] {
        cursor: default;
    }

    .main-nav .has-dropdown > a:after {
        content: "";
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%) rotate(45deg);
        -ms-transform: translateY(-50%) rotate(45deg);
        -o-transform: translateY(-50%) rotate(45deg);
        transform: translateY(-50%) rotate(45deg);
        width: 0.52em;
        height: 0.52em;
        margin-left: 0.6em;
        border: solid 0.13em;
        border-top: none;
        border-left: none;
    }

    .main-nav .has-dropdown:hover > .main-nav-level,
    .main-nav .has-dropdown:focus > .main-nav-level,
    .main-nav .has-dropdown:active > .main-nav-level {
        display: block;
    }

    .main-nav-level .main-nav-level {
        display: none;
        position: absolute;
        z-index: -1;
        min-width: 100%;
        text-align: left;
    }

    .main-nav-level-2 {
        top: 100%;
        left: 0;
        background-color: #6a814e;
    }

    .main-nav-level-2 li {
        display: block;
    }

    .main-nav-level-2 a {
        padding: 1rem;
        font-size: 0.78em;
    }


/*------------------------------------*\
    #PAGE CONTENT
\*------------------------------------*/
.page-body {
    line-height: 1.47;
}

.content {
    position: relative;
    width: 77.625rem;
    margin: 0 auto;
    padding: 4.125rem 1.375rem 5.5rem;
    background-color: #FFF;
}

.gallery-page .content {
    background-color: #929292;
}

.page-body-home .content {
    padding-top: 0.5rem;
}

.page-body-home .content:before {
    content: "";
    position: absolute;
    z-index: 2;
    bottom: 100%;
    left: 0;
    width: 100%;
    height: 2rem;
    background-color: inherit;
}

.page-body-home .page-heading {
    text-align: center;
}

.content-intro {
    margin-bottom: 5.5rem;
    padding: 0 3.375rem;
}


/*------------------------------------*\
    #CALLOUTS
\*------------------------------------*/
.callout-container {
    margin-top: 5.5rem;
}

.callout-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 1rem;
    line-height: 1;
}

.callout-list:before,
.callout-list:after {
    content: "";
    display: table;
}

.callout-list:after {
    clear: both;
}

.callout-item {
    width: 30%;
    width: calc((100% - 2.01rem * 2) / 3);
    float: left;
    margin-right: 2rem;    
}

.callout-item:last-of-type {
    margin-right: 0;
}

.callout-link {
    position: relative;
    display: block;
    min-height: 515px;
    text-decoration: none;
    color: #000;    
}

.callout-link:hover {
    text-decoration: none;
    color: #000;
}

.callout-heading {
    position: absolute;
    /*bottom: 10.3%;*/
    top: 38%;
    left: 15px;
    min-width: 16rem;
    margin: 0;
    padding: 0.4em;
    font-size: 1.875em;
    font-weight: 600;
    text-transform: uppercase;
    color: #FFF;
    background-color: #000;
    border-bottom: solid 4px #73934e;
}

.callout-image {
    padding: 15px;
    background-color: #240b02;
    box-shadow: 0 0 5px 0 #000,
        inset 0 0 5px #222;
}

.callout-image img {
    display: block;
    width: 100%;
    box-shadow: 0 0 5px 5px #000;
}

.callout-description {
    margin-top: 1.25rem;
    font-size: 1.125em;
    line-height: 1;
}

.callout-description > p:last-of-type {
    margin-bottom: 0;
}


/*------------------------------------*\
    #PRICES
\*------------------------------------*/
.price-table {
    width: 100%;
    margin-bottom: 5.5rem;
}

.price-table th:nth-of-type(n+2),
.price-table td:nth-of-type(n+2) {
    text-align: right;
}

.price-fish-container {
    margin-bottom: 5.5rem;
}

.price-table.has-fine-print {
    margin-bottom: 1rem;
}


/*------------------------------------*\
    #SERVICES
\*------------------------------------*/
.services-intro-image {
    float: right;
    width: 12.5rem;
    margin: 0 0 1.25rem 1rem;
}

.services-master-list {
    display: table;
    width: 100%;
    margin-top: 0;
    padding: 0;
    list-style: none;
}

.services-master-list:before,
.services-master-list:after {

}

.services-master-list:after {
}

.services-master-item {
    display: table-cell;
    padding-right: 2rem;
}

.services-master-item:last-of-type {
    padding-right: 0;
}

.services-category-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.services-list-heading {
    margin-bottom: 1rem;
    font-size: 1.25rem;
}


/*------------------------------------*\
    #FAQs
\*------------------------------------*/
.faq-list dt a {
    text-decoration: none;
}

html.no-js .faq-list dt a {
    pointer-events: none;
}

html.js .faq-list dt a:before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-top: -4px;
    margin-right: 10px;
    border: solid 3px;
    border-top: none;
    border-left: none;
    -webkit-transform: rotateZ(45deg);
    -ms-transform: rotateZ(45deg);
    -o-transform: rotateZ(45deg);
    transform: rotateZ(45deg);
    -webkit-transition: -webkit-transform 400ms ease;
    -o-transition: -o-transform 400ms ease;
    transition: transform 400ms ease;
}

html.js .faq-list dt.expanded a:before {
    -webkit-transform: rotateX(-180deg) rotateZ(45deg);
    -ms-transform: rotateX(-180deg) rotateZ(45deg);
    -o-transform: rotateX(-180deg) rotateZ(45deg);
    transform: rotateX(-180deg) rotateZ(45deg);
}

html.js dd {
    display: none;
}

html.js dd.expanded {
    display: block;
}

.faq-address {
    margin: 1.3125rem 2.5rem;
    font-weight: bold;
}


/*------------------------------------*\
    #CONTACT
\*------------------------------------*/
.contact-layout:before,
.contact-layout:after {
    content: "";
    display: table;
}

.contact-layout:after {
    clear: both;
}

.contact-map-container {
    position: relative;
    width: 100%;
}

html.no-js .contact-map-container {
    display: none;
}

/* cover map to prevent accidentally zooming when scrolling page */
.contact-map-container:before {
    content: "";
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.contact-map-container.interactive:before {
    content: normal;
}
/* end cover map */

.contact-map {
    display: block;
    width: 100%;
    height: 28.125rem;
    background-color: #E9E5DC;
}

.contact-info {
    float: left;
    max-width: 50%;
    padding-right: 1rem;
    margin-bottom: 1.75rem;
}

.contact-form {
    float: right;
    max-width: 50%;
    width: 34rem;
    margin-top: -13rem;
    padding: 2rem;
}


    /*------------------------------------*\
        #RECAPTCAH
    \*------------------------------------*/
    .recaptcha_widget {
    }

    .recaptcha_image {
        width: auto !important;
        height: auto !important;
        margin-bottom: 1rem;
        border: solid 1px #FFF;
    }


    .recaptcha_image img {
        width: 100%;
    }

    .recaptcha_widget.recaptcha_is_showing_audio .recaptcha_image {
        border: none;
    }

    .recaptcha_image br:nth-of-type(1) {
        display: none;
    }

    .recaptcha_widget input {
        margin: 0;
    }

    .recaptcha_widget a {
        font-size: 0.75em;
    }

    .recaptcha_widget a:hover,
    .recaptcha_widget a:focus {
        text-decoration: none;
    }


/*------------------------------------*\
    #GALLERIES
\*------------------------------------*/
.gallery {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gallery:before,
.gallery:after {
    content: "";
    display: table;
}

.gallery:after {
    clear: both;
}

.gallery-item {
    float: left;
    width: 18%;
    width: calc((100% - 1.51rem * 4) / 5);
    margin-right: 1.5rem;
}

.gallery-item:nth-of-type(5n) {
    margin-right: 0;
}

.gallery-item:nth-of-type(n+6) {
    margin-top: 1.5rem;
}

.gallery-link,
.gallery-thumb {
    display: block;
}

.gallery-link {
    /*border: solid 1px #222;*/
    padding: 15px;
    background-color: #240b02;
    box-shadow: 0 0 5px 0 #000,
        inset 0 0 5px #222;
}

.gallery-link:hover {    
    /*
    box-shadow: 0 0 5px 0 #555;
    transition: all 0.3s
    */
}

.gallery-link img {
    display: block;
    width: 100%;
    box-shadow: 0 0 5px 5px #000;
}

/*------------------------------------*\
    #PAGE FOOTER
\*------------------------------------*/
.page-footer {
    padding: 2rem 1rem 1rem;
    font-size: 1.25rem;
    font-weight: normal;
    text-transform: uppercase;
    text-align: center;
    background-color: #240b02;
    color: #FFF;
}

.page-footer a {
    color: inherit;
    text-decoration: none;
}

.footer-contact {
    display: inline-block;
}

.footer-line {
    display: block;
    margin-bottom: 0;
}

.footer-company {
    font-weight: 600;
}

.footer-facebook {
    display: inline-block;
    width: 2.5rem;
    margin-top: 0.5rem;
}

#fancybox-wrap, #fancybox-wrap * {
    box-sizing: content-box;
}

/*------------------------------------*\
    #MEDIA QUERIES
\*------------------------------------*/
/* Mobile only: max-width 736px */
@media only screen and (max-width: 46em) { }

/* Tablet and up: min-width 737px */
@media only screen and (min-width: 46.0625em) { }

/* Tablet only: min-width 737px and max-width 1024px */
@media only screen and (min-width: 46.0625em) and (max-width: 64em) { }

/* Tablet and down: max-width 1024px */
@media only screen and (max-width: 64em) { }

/* Large and up: min-width 1025px */
@media only screen and (min-width: 64.0625em) { }