* {
    box-sizing:border-box;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
}

a:active, a:link, a:visited {
    color:#FFFFFF;
    text-decoration:none;
}

a:hover {
    color:#06cff0;
    text-decoration: underline;
}

html, body {
    margin:0px;
    padding:0px;
    font-family: 'Raleway', sans-serif;
    color:#FFFFFF;
    background-color:#33343f;
    overflow-x:hidden;
    font-size: 1rem;
}

.success {
    border: 2px solid #4B9043;
    background-color: #4BB543;
}

.banner {
    position: absolute;
    color: #000000;
    text-align: center;
    width: 80%;
    max-height: 66px;
    border-radius: 8px;
    padding: 20px 0;
    font-size: 22px;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
}

.failed {
    border: 2px solid #9C0021;
    background-color: #CC1200;
}

.header {
    width:100%;
    height:120px;
    position:fixed;
    z-index:1000;
    top:0px;
    background-color:#33343f;
    box-shadow:0px 6px 6px #232323;
    transition:0.4s linear;
}

.nav-icon:hover {
    opacity:0;
}

.content {
    margin-top:120px;
    min-height: 80vh;
}

.welcome-page, .welcome-page-spacer  {
    width:100%;
    height:calc(100vh - 120px);
    position:fixed;
    top:20px;
    z-index:0;
}

.welcome-page-spacer {
    position:relative;
}

.welcome-page h1 {
    font-size:8.45rem;
    letter-spacing:-10px;
    padding:50px;
    text-align:center;
    margin-bottom:0px;
    position: relative;
    padding-bottom:25px;
    text-shadow: 2px 2px 8px #000;
    z-index: 2;
}

.welcome-page .testimonials {
    width:90%;
    min-height: 100px;
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    text-shadow: 2px 2px 8px #000;
}

.testimonial {
    display:none;
    position:absolute;
    width:100%;
    opacity:0;
}

.testimonial p {
    font-family:lato-light;
    font-style:italic;
    font-size:20px;
}

.tst_name {
    color:#ffffff;
    float:left;
    display:inline;
    font-size:32px;
    padding: 10px 0;
}

p.tst_date {
    color:#989891;
    font-family:lato-thick;
    font-weight:100;
    font-size:12px;
    display:inline;
    float:right;
}

.welcome-page p {
    text-align:center;
    margin:0px auto;
    display:block;
}

.about-fph-container {
    background-color:#33343f;
    width:100%;
    z-index:1;
    position:relative;
    box-shadow:0px -6px 6px #232323;
    padding:40px;
}

.about-fph {
    margin:0px auto;
    max-width:1300px;
    width:100%;
}

.about-fph p {
    text-align:center;
    margin:40px auto;
    display:block;
    font-weight:200;
    font-size:18px;
    min-width:210px;
}

.about-fph .about-img-container {
    margin:35px;
    float:right;
    width:630px;
}

.about-fph .about-img-container .about-img {
    box-shadow:3px 3px 7px #121212;
    max-width:100%;
    height:auto;
}

.home-page-services-wrapper {
    width:100%;
    background-color:#33343f;
    z-index:1;
    position:relative;
}

.home-page-services {
    max-width:1300px;
    margin:0px auto;
    height:auto;
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:row;
}

.service-container {
    flex-basis:0;
    flex-grow:1;
    padding:20px;
}

.service-container h2, .about-fph h2, .content h2 {
    font-size:34px;
    color:#02ce02;
    font-weight:400;
    letter-spacing:-2px;
    text-align:center;
}

.service-container p {
    font-weight:200;
    font-size:18px;
    text-align:justify;
}

.carousel-wrapper {
    width: 100%;
    height:auto;
    position:relative;
    z-index:1;
    background-color:#33343f;
}

.carousel {
    max-width: 1350px;
    margin: auto;
    padding: 0 30px;
}
.carousel .card {
    margin: 20px 0;
    border-radius: 10px;
    box-shadow: 0px 4px 9px rgba(0,0,0,0.2);
    position:relative;
    z-index:1;
}

.card-overlay {
    width:100%;
    height:100%;
    position:absolute;
    z-index:4;
    background-color:rgba(22,22,22,0.6);
    opacity:0;
}

.clear-fix {
    clear:both;
}

.home-page-contact {
    width:100%;
    height:auto;
    background-color:#33343f;
    z-index:1;
    position:relative;
}

.contact-content-left {
    width:40%;
    float:left;
    height:100%;
    padding-top:80px;
}

.contact-content-left h2, .contact-content-left p {
    top:70px;
    display:block;
    margin:0px auto;
    text-align:center;
    font-size:62px;
    line-height:140px;
    letter-spacing:-4px;
}

.contact-content-left p {
    letter-spacing:0px;
    line-height:34px;
    font-size:18px;
}

.contact-content-right {
    width:60%;
    float:right;
    height:100%;
}

.contact-content-right form {
    width:80%;
    height:100%;
    margin:0px auto;
    padding:40px;
}

.contact-form-input-container {
    width:50%;
    float:left;
    padding:20px 12px;
}

.contact-content-right form label {
    font-size:16px;
    display:block;
    padding:0px 0px 12px 6px;
}

.contact-content-right form input, .contact-content-right form textarea {
    border:none;
    font-family: 'Raleway';
    border-bottom:2px solid #FFFFFF;
    background-color:transparent;
    color:#FFFFFF;
    font-size:16px;
    width:100%;
    padding-left:15px;
    box-sizing:border-box;
    transition:0.3s linear;
    padding:12px 0px 12px 15px;
    resize:none;
}


.contact-content-right form input:focus, .contact-content-right form textarea:focus {
    border:none;
    outline:none;
    border-bottom:2px solid green;
}

.contact-content-right form input[type='button']:hover {
    background-color:#FFFFFF;
    color:#33343f;
    cursor:pointer;
}

.footer-wrapper {
    background-color:#33343f;
    width: 100%;
    position: relative;
    z-index: 1;
}

.footer {
    position:relative;
    z-index:1;
    max-width:1300px;
    margin:0px auto;
    padding-bottom:30px;
}

.footer img {
    width:160px;
    margin:0 2.5%;
    position:relative;
    display:inline-block;

}

.footer .social-media-container {
    float:right;
    width:30%;
    padding:100px 0;
    padding:20px;
    text-align:center;
    line-height:28px;
}

.footer .contact-footer-container {
    background-image:url('../images/webImages/map.png');
    background-repeat:no-repeat;
    height:100%;
    width:35%;
    background-size:cover;
    float:left;
}
.footer .contact-footer-container-overlay {
    width:100%;
    height:100%;
    padding:30px;
    background-color:rgba(22, 22 ,22, 0.45);
}

.footer .contact-footer-container .contact-footer-container-overlay p {
    color:#FFFFFF;
}

.footer {
    background-color:#33343f;
}

.logo-container {
  height:100%;
  overflow:hidden;
  top:0px;
  position:relative;
  float:left;
}

.logo-img {
  height:100%;
}

nav {
  padding:5px 20px;
  padding-top:30px;
}

ul {
  list-style-type: none;
  margin:0px auto;
  padding:0px;
  padding-top:10px;
}

.icon-wrapper {
  position:relative;
}

.nav-item-img-wrapper {
  float:left;
  width:48px;
  height:24px;
  margin:0px 4px;
  position:relative;
  top:-8px;
}

.nav-icon-hover {
  width:100%;
  position:absolute;
}

.nav-icon {
  width:100%;
  position:absolute;
  transition:0.3s linear;
}

.menu-icon {
  width:32px;
}

.toggle {
    padding:0px !important;
}

.menu li {
  font-size: 16px;
  padding: 15px 5px;
  white-space: nowrap;
    background:#33343f;
}

/* Mobile menu */
.menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  max-width:60%;
}

.menu-icon {
  order: 0;
}

.item.button {
  order: 1;
}

.item {
  width: 100%;
  text-align: center;
  order: 3;
  display: none;
}

.item.active {
  display: block;
}

.toggle {
  margin:6px auto;
}

/* Navbar Toggle */
.menu-icon {
  cursor:pointer;
}


/*############################### GALLERY STYLES ################################*/
.gallery {
    max-width:1300px;
    display:flex;
    flex-wrap:wrap;
    justify-content:space-around;
    margin:10px auto;
}

.img_container_tile {
    width:calc(1300px / 5.5);
    height:calc(1300px / 5.5);
    margin:10px 0px;
    flex-basis:1;
    position:relative;
    overflow:hidden;
    cursor:pointer;
}


.img_container > img {
    width:150%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition:width 0.6s, border 0.6s;
    border:2px solid transparent;
}

#overlay {
    opacity:0;
    display:none;
    position:fixed;
    z-index:100000;
    background-color:rgba(22, 22, 22, 0.7);
    width:100vw;
    height:100vh;
}

#close {
    background-color:rgb(22, 22, 22, 1);
    color:#FFFFFF;
    position:absolute;
    right:60px;
    top:20px;
    cursor:pointer;
    border:4px solid #02ce02;
    padding:40px 50px;
    font-size:32px;
    border-radius:100%;
    z-index:1000;
}

.lightbox_image_wrapper {
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%, -50%);
}

#previous, #next {
    cursor:pointer;
    margin:0px 10px;
    padding:90px 23px;
    background-color:rgba(22, 22, 22, 0.7);
    font-size:32px;
    color:#FFFFFF;
    position:absolute;
    top:50%;
    left:-0%;
    transform:translate(-125%, -50%);
}

#next {
    left:100%;
    transform:translate(0, -50%);
}

#next:hover, #previous:hover {
    background-color:rgba(22, 22, 22, 1);
}

#image_holder {
    position:relative;
    border:10px solid black;
    height:auto;
}

.lightbox_image {
    position:relative;
    height:600px;
    margin:0px auto;
}

#masonry-effect {
    max-width: 1200px;
    margin: 0px auto;
}
.mason-item {
    padding: 10px 20px;
    margin: 0px 0px 10px;
}
.tst_heading {
    width: 100%;
}
.tst_name {}
.tst_date {}
.tst_message {
    display:block;
    font-weight:200;
    font-size:18px;
}

.fb-page {
    left: 50%;
    transform: translateX(-50%);
}


.image_mason {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 55vw;
    height: inherit;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    background-color: #33343f;
    z-index: 1;
}

.image_mason_overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    transform: translateY(45px);
    box-shadow: inset 0px 0px 180px 180px rgba(51, 52, 63, 1);
}

.item > img {
    width: 100%;
    height: 100%;
}

.img_one {
    grid-column: 1/2;
    grid-row: 1/2;
}
.img_two {
    grid-column: 2/3;
    grid-row: 1/2;
}
.img_three {
    grid-column: 3/5;
    grid-row: 1/3;
}
.img_four {
    grid-column: 5/7;
    grid-row: 1/3;
}
.img_five {
    grid-column: 7/8;
    grid-row: 1/2;
}
.img_six {
    grid-column: 1/3;
    grid-row: 2/4;
}
.img_seven {
    grid-column: 7/8;
    grid-row: 2/3;
}
.img_eight {
    grid-column: 3/4;
    grid-row: 3/4;
}
.img_nine {
    grid-column: 3/4;
    grid-row: 4/5;
}
.img_ten {
    grid-column: 4/6;
    grid-row: 3/5;
}
.img_eleven {
    grid-column: 6/8;
    grid-row: 3/5;
}
.img_twelve {
    grid-column: 1/3;
    grid-row: 4/5;
}
