* {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
}

html {
    margin: var(--defaultPadding);
}

.font1 {
    font: var(--font0);
    color: var(--themeColour2);
    white-space: nowrap;
    width:inherit;
    vertical-align: baseline;
    line-height: normal;
}

.font2 {
    font: var(--font2);
    color: var(--themeColour2);
    white-space: nowrap;
    width: inherit;
    vertical-align: baseline;
    line-height: normal;
    letter-spacing:  20px;
    position: relative;
    align-self: center;
    left: calc(100% - width / 2px);
}

.menuFonts {
    font: var(--font1);
    color:var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 50px;
    text-align: center;
}

.callNowFont {
    font: var(--font1);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 38px;
    text-align: center;
}


.callNowFont:hover, .callNowButton:hover, .menuFonts:hover{
    color: var(--themeColour3);
    border-color: var(--themeColour3);
}


.homeLink, .homeLink:visited, .homeLink:hover, .homeLink:active {
    color: inherit;
    width: inherit;
    text-decoration: none;

}

.headerColumn1 {
    display: flex;
    align-items: center;
}

.businessName {
    position: relative;
    margin-left: 30px;
    /*Child positioning*/
    display: flex;
    align-items: center;

    font: var(--font0);
    color: var(--themeColour2);
    white-space: nowrap;
    width: inherit;
    vertical-align: baseline;
    line-height: normal;
}



.callNowButton {
    border: 1px solid var(--themeColour2);
    box-sizing: content-box;
    height: 38px;
    display: block;
    align-items: center;
    padding: 0px 25px 0px 25px;

    position: relative;
}

.callNowButtonLink {
    /*background-color: rgb(0, 255, 255); */
    text-decoration: none;
    height: 100%;
    display: inline-block;
    position: relative;
    padding: inherit;
    margin: 0px -25px 0px -25px;
}

.menuButtonLinks {
    /*background-color: rgb(0, 255, 0); */
    text-decoration: none;
    height: 100%;
    white-space: nowrap;
    display: inline-block;
    position: relative;
    padding: inherit;
    margin: inherit;
}





.navigationMenu > li {
    display: inline-block;
    white-space: nowrap;
    padding: 0px 14px 0px 14px;
}

.navigationMenu {
    height: 50px;
    width: 800px;
    display:flex;
    justify-content: flex-end;
    /* display: flex;
    align-items: center; */

    /*@if var(--defaultPadding) == 0 { */
    padding-right: 30px;
    
}

.mainMenu {
    position: absolute;
    right:0px;
    display: flex;
    justify-content: flex-end;
    align-items: center;    
    padding-top:30px;
    padding-right:30px;
    
}

.headerColumn2 {
    /*background-color: rgb(255,0,0); */
    position: absolute;
    right: 0px;
    height: inherit;

    /*Child positioning*/
}

.headerColumns {
    /*background-color: var(--themeColour1); */
    width: 100%;
    height: inherit;
    display: flex;
    flex-direction: row;
}

.header {
    background-color: var(--themeColour0);
    height: var(--headerHeight);
    width: calc(100% - var(--defaultPadding)*2);
    /*Self positioning*/
    position: fixed;
    left: var(--defaultPadding);
    top: var(--defaultPadding);
    /*Child positioning*/
    display: flex;
    z-index: 100;
}

                                                    /*First Grid*/
.mainBody {
    position: static;
    display: grid;
    height: auto;
    width: 100%;
    grid-template-rows: repeat(5, min-content) 1fr;
    grid-template-columns: 100%;

    padding-top: calc(var(--headerHeight));
    box-sizing: border-box;
}

.logoPanel {
    max-width: 50%;
    display: flex;
    justify-self: center;
    justify-content: center;
    margin-bottom: 60px;
    margin-top: 0px;
}
                    /*Second Grid*/


.logo {
    
    width:840px;
    max-width:100%;
    pointer-events: none;
}

.aboutPanel {
    background-color: var(--themeColour4);
    display: grid;
    grid-template-rows: 1.5px auto 1.5px 280px 1.5px auto 1.5px;
    grid-template-columns: 1.5px 1fr 1.5px 1fr 1.5px 1fr 1.5px 1fr 1.5px;
}

.servicePanel_image {
    background-color: var(--themeColour0);
    grid-area: 2 / 2 / span 1 / span 3;
    position: relative;
    justify-content: center;
   

}

.img1 {
    width: 840px;
    max-width: 100%;
    height: auto;
    display: block;
    position: relative;
    justify-self: center;
    align-self: center;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /*aspect-ratio: auto 200 / 700; */
}

.img2 {
    width: 93px;
    height: 70px;
    padding: 0 0 15px 0;
}

.servicePanel_info {
    background-color: var(--themeColour0);
    grid-area: 2 / 6 / span 1 / span 3;
    display: flex;
    justify-content: center;
    align-items: center;
    
}

.aboutPanel_infoGroup {
    background-color: var(--themeColour0);
    position: relative;
    display: flex;
    justify-content: center;
    align-content: center;
    height:auto;
    padding: 30px 0px 30px 0px;
}

.aboutUs_headerFont {
    font: var(--font3);
    color: var(--themeColour2);
}

.aboutUs_textFont {
    font: var(--font4);
    color: var(--themeColour2);
    max-width: 500px;
    word-wrap: break-word;
    line-height: 1.8em;
}

.skillsPanel1 {
    background-color: var(--themeColour0);
    grid-area: 4 / 2 / span 1 / span 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.skillsPanel2 {
    background-color: var(--themeColour0);
    grid-area: 4 / 4 / span 1 / span 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.skillsPanel3 {
    background-color: var(--themeColour0);
    grid-area: 4 / 6 / span 1 / span 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.skillsPanel4 {
    background-color: var(--themeColour0);
    grid-area: 4 / 8 / span 1 / span 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}



.service_textFont {
    font: var(--font4);
    color: var(--themeColour2);
    max-width: 500px;
    word-wrap: break-word;
    line-height: 1.8em;
    padding: 0 0 0 30px;
}

.aboutPanel_info {
    background-color: var(--themeColour0);
    grid-area: 6 / 2 / span 1 / span 3;
    display: flex;
    justify-content: center;
    align-items: center; /*This line keeps the about us paragraphs in the center of its box */
}

.aboutPanel_image {
    background-color: white;
    grid-area: 6 / 6 / span 1 / span 3;
    position: relative;

    justify-items: center;
    height: 100%;
    width: 100%;
}

.aboutPanel_imageBackground {
    display: block;
    position: relative;
    justify-items: center;
    height: 100%;
}





.galleryPanel {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    justify-items: center;
    align-content: center;
    align-items: center;
    text-align: center;
}

.galleryTitle {
    width: 100%;
    height: auto; 
}

.galleryLayout {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;

    --gapThickness: 2vw;
}

.galleryLayoutMasterRow {
    display: flex;

}

.galleryContainer {
    display: flex;
    flex-direction: column;
    gap: var(--gapThickness);
    padding-right: var(--gapThickness);
}

.galleryContainer .imageColumn50 {
    display: flex;
    flex-direction: column;
    gap: var(--gapThickness);
    flex: 50%;
}

@media only screen and (min-width: 768px) {
    .galleryContainer, .galleryLayout {
        flex-direction: row;
    }
}

.galleryLayoutColumn40 {
    flex: 40%;
    max-width: 40%;
    height: min-content;
}

.galleryLayoutColumn60 {
    display: flex;
    flex: 60%;
    max-width: 60%;
    height: inherit;
}

.galleryImage {
    position: relative;
    cursor: pointer;
    display: block;
    flex: 1 1 auto;
}



.img3 {
    width: calc(100% - (2 * var(--borderThickness)));
    height: calc(auto - (2 *var(--borderThickness)));
    opacity: 1;
    display: block;
    transition: top 0.2s ease 0s, left, width, height, opacity;
    backface-visibility: hidden;
    border: var(--borderThickness) solid var(--themeColour5);
    object-fit: cover;
}

.img4 {
    width: calc(100% - (2 * var(--borderThickness)));
    height: calc(auto - (2 *var(--borderThickness)));
    opacity: 1;
    display: block;
    transition: top 0.2s ease 0s, left, width, height, opacity;
    backface-visibility: hidden;
    border: var(--borderThickness) solid var(--themeColour5);
    object-fit: cover;
}

.img7 {
    width: calc(100% - (2 * var(--borderThickness)));
    height: calc(100% - (2 * var(--borderThickness)));
    opacity: 1;
    display: block;
    backface-visibility: hidden;
    border: var(--borderThickness) solid var(--themeColour5);
    object-fit: cover;
}

.galleryImage:hover .galleryOverlay {
    opacity: 0.5;
}

.galleryOverlay {
    transition: .2s ease;
    opacity: 0;
    width: calc(100% - (3 * var(--borderThickness)));
    height: calc(100% - (2 * var(--borderThickness)));
    /*height: calc(100% - 2vw);*/
    background-color: white;
    position: absolute;
    top: 0;
    left: 0;
    padding: var(--borderThickness);
    /*margin: 1vw 0px 1vw 0px;*/

    display: flex;
    align-items: center;
    justify-content: center;
    font: var(--font0);
    color: rgb(0,0,0);
}


.servicesButton {
    
    /*border: 1px solid var(--themeColour2); */
    box-sizing: content-box;
    height: 38px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 30px;
    
}

.servicesButtonLink {
    background-color: var(--themeColour4);
    text-decoration: none;
    height: 100%;
    width: 250px;
    display: inline-block;
    position: relative;
    margin: 0px -25px 0px -25px;
    padding: inherit;
}

.servicesButtonLink:hover {
    color: var(--themeColour0);
    background-color: var(--themeColour5);
}

.servicesButtonFont {
    font: var(--font1);
    color: var(--themeColour0);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 38px;
    text-align: center;
}

.viewAllButton {
    /*border: 1px solid var(--themeColour2); */
    box-sizing: content-box;
    height: 38px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 30px;
}


/* When you add this panel, make sure to update masterContentLayout
    to have a grid-template-rows: auto auto auto auto

.testimonialPanel {
    grid-area: 3 / 1 / span 1 / span 1;
}
*/


.contactPanel {
    /* change this to 4 / 1 / span 1 / span 1; when you add a Testimonial Panel*/
    grid-area: 3 / 1 / span 1 / span 1;
    display: grid;
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr 1fr;
    width: 100%;
}

.contactInformation {
    grid-area: 1 / 1 / span 1 / span 1;
    width:100%;
    display: block;
    position: relative;

    justify-content: start;
    margin-left: 15px;
}

.contactHeader {
    font: var(--font3);
    color: var(--themeColour2);
    white-space: nowrap;
    line-height: 38px;
    
    padding-bottom: 30px;
}

.contactRow {
    display: flex;
    flex-wrap: wrap;
    padding-bottom: 20px;
}

.contactCol10 {
    flex: 10%;
    max-width: 10%;
    display: flex;
    justify-content: center;     /* If this were justify-content: center it puts the child in the center
                                  horizontally. If we remove this line it hugs the childs max-content-width */
    align-content: center;     /*Flex wrap: no wrap prevents this from working */
}

.emailIcon {
    width: 45px;
    height: 30px;
}

.phoneIcon {
    width: 30px;
    height: 45px;
}

.facebookIcon {
    width: 40px;
    height: 40px;
}



.contactText {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 38px;
    letter-spacing: 2px;
}


.messageBoxLayout {
    grid-area: 1 / 2 / 1 span / 1 span;
    width: 500px;
    height:auto;

    justify-self: center;

    display: grid;
    grid-template-rows: 100px auto auto auto auto auto auto auto auto;
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 5px;
}

.messageTextInput {
    font: var(--font4);
    color: var(--themeColour2);
    letter-spacing: 2px;
    grid-area: 1 / 1 / span 1 / span 2;
    background-color: var(--themeColour0);
    border-bottom: 1px solid var(--themeColour3);
    resize: none;
    
}


.firstNameText {
    height: min-content;
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    letter-spacing: 2px;
    grid-area: 2 / 1 / span 1 / span 1;
    margin-top: 10px;
}

.lastNameText {
    height: min-content;
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    letter-spacing: 2px;
    grid-area: 2 / 2 / span 1 / span 1;
    margin-top: 10px;
}

.firstNameInput {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    line-height: 30px;
    letter-spacing: 2px;
    grid-area: 3 / 1 / span 1 / span 1;
    background-color: var(--themeColour0);
    border-bottom: 1px solid var(--themeColour3);
}

.lastNameInput {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    line-height: 30px;

    letter-spacing: 2px;
    grid-area: 3 / 2 / span 1 / span 1;
    background-color: var(--themeColour0);
    border-bottom: 1px solid var(--themeColour3);
}

.emailAddressText {
    height: min-content;
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    letter-spacing: 2px;
    grid-area: 4 / 1 / span 1 / span 1;
    margin-top: 10px;
}

.emailAddressInput {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 30px;
    letter-spacing: 2px;
    grid-area: 5 / 1 / span 1 / span 2;
    background-color: var(--themeColour0);
    border-bottom: 1px solid var(--themeColour3);
}

.phoneNumberText {
    height: min-content;
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    letter-spacing: 2px;
    grid-area: 6 / 1 / span 1 / span 1;
    margin-top: 10px;
}

.suburbText {
    height: min-content;
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    letter-spacing: 2px;
    grid-area: 6 / 2 / span 1 / span 1;
    margin-top:10px;
}

.phoneNumberInput {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    line-height: 30px;
    letter-spacing: 2px;
    grid-area: 7 / 1 / span 1 / span 1;
    background-color: var(--themeColour0);
    border-bottom: 1px solid var(--themeColour3);
}

.suburbInput {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    line-height: 30px;
    letter-spacing: 2px;
    grid-area: 7 / 2 / span 1 / span 1;
    background-color: var(--themeColour0);
    border-bottom: 1px solid var(--themeColour3);
}


.messageTextInput:focus, .lastNameInput:focus, .firstNameInput:focus, .emailAddressInput:focus, .phoneNumberInput:focus, .suburbInput:focus{
    border-bottom: 2px solid var(--themeColour2);
}

.emailAddressInput:invalid {
    border-bottom: 2px solid red;
}

.submitButton {
    box-sizing: content-box;
    height: 38px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 30px;
    grid-area: 8 / 1 / span 1 / span 2;
}

.submitButtonLink {
    background-color: var(--themeColour4);
    text-decoration: none;
    height: 100%;
    width: 250px;
    display: inline-block;
    position: relative;
    margin: 0px -25px 0px -25px;
    cursor:pointer!important;
}

.submitButtonLink:hover {
    color: var(--themeColour0);
    background-color: var(--themeColour5);
}



.legalInfo {
    grid-area: 1 / 3 / span 1 / span 1;
    justify-self: right;
    align-self: flex-start;
}

.nameText {
    font: var(--font4);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 38px;
    margin-bottom: -15px;
    letter-spacing: 2px;
}

.genericText {
    font: var(--font1);
    color: var(--themeColour2);
    white-space: nowrap;
    vertical-align: baseline;
    line-height: 38px;
    margin-bottom: -15px;
    letter-spacing: 2px;
}


.underConstruction {
    width: 100%;
    height: 1000px;
    display: flex;
    justify-self: center;
    align-self: center;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    align-content: space-between;
}

.hardHatImage {
    margin: 30px;
}



.masterContentLayout {
    background-color: var(--themeColour0);
    height: auto;
    padding: 0px 2vw 60px 2vw;
    display: grid;
    grid-template-rows: auto auto auto;
    grid-gap: 100px;
}


body {

    background-color: var(--themeColour0);
    --scrollbar-width: 0px;
    width: 100%;

}

@media screen and (max-width: 980px)  {

}

:root {
    --headerHeight: 120px; /*was 187*/
    --defaultPadding: 0px;
    --borderThickness: 1px;
    --transitionPadding: 30px;
    --minWidth: 980px;
    --themeColour0: rgba(38,38,38,1);
    --themeColour1: rgba(50,50,50,1);
    --themeColour2: rgba(255,255,255,1);
    --themeColour3: rgba(200,200,200,1);
    --themeColour4: rgba(154,138,120,1);
    --themeColour5: rgba(179,168,154,1);
    --font0: normal normal normal 25px/1.4em raleway-semibold, sans-serif;
    --font1: normal normal normal 14px/1.2em raleway, sans-serif;
    --font2: normal normal normal 25px/1.4em raleway, sans-serif;
    --font3: normal normal normal 40px/1.4em raleway-semibold, sans-serif;
    --font4: normal normal normal 16px/1.4em raleway, sans-serif;
    --font5: normal normal normal 40px/1.4em raleway, sans-serif;
}
