/* Googlefont Link*/
@import url('https://fonts.googleapis.com/css2?family=Cantarell:wght@200;300;400;500;600;700&display=swap');
*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'Cantarell';
}

@font-face {
  font-family: 'Cantarell';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.googleapis.com/css2?family=Cantarell:wght@200;300;400;500;600;700&display=swap) format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

body  {
	font-size: 100%;
	background-color: #ffffff;
}

.home  {
	/* Location of the image */ background-image: url(portfolio/oakwood-pool.jpg);
	/* Background image is centered vertically and horizontally at all times */ background-position: center center;
	/* Background image doesn’t tile */ background-repeat: no-repeat;
	/* Background image is fixed in the viewport so that it doesn’t move when the content’s height is greater than the image’s height */ background-attachment: fixed;
	/* This is what makes the background image rescale based on the container’s size */ background-size: cover;
	/* Set a background color that will be displayed while the background image is loading */ background-color: #464646;
	height: 100vh;
}
@media only screen and (max-width:767px){.home {background-image:url(portfolio/oakwood-pool.jpg);}}

.pages  {
	background-color: #ffffff;
	height: 100vh;
}

.block-outer {
	border:0px solid red;
	height: 100%;
	position:relative;
	display: flex;
	justify-content: center;
	text-align:center;
	margin-top:-50px;
}
.block-inner {
	position:absolute;top:50%; width:100%; text-align:center;
	border:0px solid green; color:#dddddd;
}
.block-inner h1 {
    text-transform: uppercase;
    font-size: 2.5em;
    line-height: 50px;
    font-weight: 400;
    margin-top: 0px;
	text-shadow: 2px 2px 8px #000000;
	border:0px solid red;
}
.quote-home {
    font-size: 18px;
    line-height: 23px;
	letter-spacing: 2px;
    text-transform: none;
	background-color: rgba(000, 000, 000, 0.50);
	padding:4 10 4 10;
}
.sub-title {
    margin: 40px auto;
    font-size: 18px;
    line-height: 23px;
    text-transform: uppercase;
}
.block-outer-other {
	border:0px solid red;
	height: 100%;
	position:relative;
	/* display: flex; */
	justify-content: center;
	text-align:center;
	margin-top:-50px;
}
.body-content-block {
	width:100%;
	text-align:center;
	display: flex;
	justify-content: center;
	border:0px solid green;
	color:#3d3d3d;
	padding-bottom:20px;
	background-color: #fff;
	background-image: url(images/bg-overlay-grey.gifffff);
	background-repeat: repeat;
	background-attachment: fixed;
}
.content-block {
    max-width: 1250px;
    padding-left: 25px;
    padding-right: 25px;
    width: 100%;
	background-color: rgba(255, 255, 255, 1);
	border:0px solid orange;
	height:auto;
}
.content-block::after {
  content: "";
  display: table;
  clear: both;
}
.content-inner-block {
	border:0px solid grey;
	margin-top:15px;
	text-align:center;
}

h2 {
    font-weight: 400 !important;
	text-align:left;
	border:0px solid blue;
    font-size: 1.5em;
	text-transform: uppercase;
	margin-top:20px !important;
}

h3 {
	margin-top:12px !important;
}

.my-link-back a {
    font-weight: 400 !important;
    font-size: 1em !important;
	border-bottom:1px solid lightgrey;
	color:#3d3d3d;
	text-decoration: none;
}

.my-link-back a:hover {
	border-bottom:1px solid grey;
}

.page-heading {
    font-weight: 400 !important;
	text-align:left;
	border:0px solid blue;
    font-size: 1.5em !important;
	text-transform: uppercase;
	margin-top:25px !important;
	margin-left:15px;
	margin-right:15px;
	border-bottom:1px solid grey;
}

.portfolio-group {
    text-align: center;
    padding: 0;
    width: 100% !important;
	border:10px solid grey;
}

.footer {
	display: flex;
	justify-content: center;
	text-align:center;
	position:relative;
	width:100%;
	bottom: 0;
	padding:0 0 15 0;
	color:#3d3d3d;
	background: rgba(255, 255, 255, 1); /* background with opacity */
}
.footer-home {
	display: flex;
	justify-content: center;
	text-align:center;
	position:fixed;
	width:100%;
	bottom: 0;
	padding:7px;
	color:#bbbbbb;
	background: rgba(0, 0, 0, 0.5); /* background with opacity */
}
.footer a {
	color:#3d3d3d;
}


/* ---------- NAV ------- */
nav{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 50px;
  background: rgba(255, 255, 255, 1.0);
  box-shadow: 0 1px 15px rgba(0, 0, 0, 0.15);
  z-index: 99;
}
.nav-other {
	position: relative !important;
}
nav .navbar{
  height: 100%;
  max-width: 1250px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: auto;
  /*background: red;*/
  padding: 0 45px;
}
.logo {
	border:0px solid red;
	display: flex;
    align-items:center;
}
.navbar .logo a{
  font-size: 26px;
  color: #3d3d3d;
  text-decoration: none;
  font-weight: 800;
  text-transform: uppercase;
}
.logo-sml{
  font-size: 15px;
  color: #000;
  text-decoration: none;
  font-weight: 600;
  text-transform: uppercase;
}
nav .navbar .nav-links{
  line-height: 54px;
  height: 100%;
}
nav .navbar .links{
  display: flex;
}
nav .navbar .links li{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  padding: 0 14px;
}
nav .navbar .links li a{
  height: 100%;
  text-decoration: none;
  white-space: nowrap;
  color: #3d3d3d;  /* xxxxxxxxxxxxxxxxxxx  NAV LINKS colors */
  font-size: 15px;
  font-weight: 600;
}
nav .navbar .links li a:hover{
  color: #ff5704;
}

nav .navbar .links li a.highlight {
  height: 100%;
  text-decoration: none;
  white-space: nowrap;
  color: #ff5704;  /* xxxxxxxxxxxxxxxxxxx  NAV LINKS colors */
  font-size: 15px;
  font-weight: 600;
}


.links li:hover .htmlcss-arrow,
.links li:hover .js-arrow{
  transform: rotate(180deg);
  }

nav .navbar .links li .arrow{
  /* background: red; */
  height: 100%;
  width: 22px;
  line-height: 54px;
  text-align: center;
  display: inline-block;
  color: #000;
  transition: all 0.3s ease;
}
nav .navbar .links li .sub-menu{
  position: absolute;
  top: 60px;
  left: 0;
  line-height: 40px;
  background: #3E8DA8;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  border-radius: 0 0 4px 4px;
  display: none;
  z-index: 2;
}
nav .navbar .links li:hover .htmlCss-sub-menu,
nav .navbar .links li:hover .js-sub-menu{
  display: block;
}
.navbar .links li .sub-menu li{
  padding: 0 22px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.navbar .links li .sub-menu a{
  color: #fff;
  font-size: 15px;
  font-weight: 500;
}
.navbar .links li .sub-menu .more-arrow{
  line-height: 40px;
}
.navbar .links li .htmlCss-more-sub-menu{
  /* line-height: 40px; */
}
.navbar .links li .sub-menu .more-sub-menu{
  position: absolute;
  top: 0;
  left: 100%;
  border-radius: 0 4px 4px 4px;
  z-index: 1;
  display: none;
}
.links li .sub-menu .more:hover .more-sub-menu{
  display: block;
}
.navbar .search-box{
  position: relative;
  height: 40px;
  width: 40px;
  display:none; /* hidden because if totally removed then small menu doesn't work and my back is too sore to bother trying to find out why */
}
.navbar .search-box i{
  position: absolute;
  height: 100%;
  width: 100%;
  line-height: 40px;
  text-align: center;
  font-size: 22px;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}
.navbar .search-box .input-box{
  position: absolute;
  right: calc(100% - 40px);
  top: 80px;
  height: 60px;
  width: 300px;
  background: #3E8DA8;
  border-radius: 6px;
  opacity: 0;
  pointer-events: none;
  transition: all 0.4s ease;
}
.navbar.showInput .search-box .input-box{
  top: 65px;
  opacity: 1;
  pointer-events: auto;
  background: #3E8DA8;
}
.search-box .input-box::before{
  content: '';
  position: absolute;
  height: 20px;
  width: 20px;
  background: #3E8DA8;
  right: 10px;
  top: -6px;
  transform: rotate(45deg);
}
.search-box .input-box input{
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 4px;
  transform: translate(-50%, -50%);
  height: 35px;
  width: 280px;
  outline: none;
  padding: 0 15px;
  font-size: 16px;
  border: none;
}
.navbar .nav-links .sidebar-logo{
  display: none;
}
.navbar .bx-menu{
  display: none;
}
@media (max-width:920px) {
  nav .navbar{
    max-width: 100%;
    padding: 0 25px;
  }

  nav .navbar .logo a{
    font-size: 27px;
  }
  nav .navbar .links li{
    padding: 0 10px;
    white-space: nowrap;
  }
  nav .navbar .links li a{
    font-size: 15px;
  }
}
@media (max-width:800px){
  nav{
    /* position: relative; */
  }
  .navbar .bx-menu{
    display: block;
  }
  nav .navbar .nav-links{
    position: fixed;
    top: 0;
    left: -100%;
    display: block;
    max-width: 270px;
    width: 100%;
    background:  #fff;
    line-height: 40px;
    padding: 20px;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    transition: all 0.5s ease;
    z-index: 1000;
  }
  .navbar .nav-links .sidebar-logo{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .sidebar-logo .logo-name{
    font-size: 25px;
    color: #3d3d3d;
  }
    .sidebar-logo  i,
    .navbar .bx-menu{
      font-size: 25px;
      color: #3d3d3d;
    }
  nav .navbar .links{
    display: block;
    margin-top: 20px;
  }
  nav .navbar .links li .arrow{
    line-height: 40px;
  }
nav .navbar .links li{
    display: block;
  }
nav .navbar .links li .sub-menu{
  position: relative;
  top: 0;
  box-shadow: none;
  display: none;
}
nav .navbar .links li .sub-menu li{
  border-bottom: none;

}
.navbar .links li .sub-menu .more-sub-menu{
  display: none;
  position: relative;
  left: 0;
}
.navbar .links li .sub-menu .more-sub-menu li{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.links li:hover .htmlcss-arrow,
.links li:hover .js-arrow{
  transform: rotate(0deg);
  }
  .navbar .links li .sub-menu .more-sub-menu{
    display: none;
  }
  .navbar .links li .sub-menu .more span{
    /* background: red; */
    display: flex;
    align-items: center;
    /* justify-content: space-between; */
  }

  .links li .sub-menu .more:hover .more-sub-menu{
    display: none;
  }
  nav .navbar .links li:hover .htmlCss-sub-menu,
  nav .navbar .links li:hover .js-sub-menu{
    display: none;
  }
.navbar .nav-links.show1 .links .htmlCss-sub-menu,
  .navbar .nav-links.show3 .links .js-sub-menu,
  .navbar .nav-links.show2 .links .more .more-sub-menu{
      display: block;
    }
    .navbar .nav-links.show1 .links .htmlcss-arrow,
    .navbar .nav-links.show3 .links .js-arrow{
        transform: rotate(180deg);
}
    .navbar .nav-links.show2 .links .more-arrow{
      transform: rotate(90deg);
    }
}
@media (max-width:370px){
  nav .navbar .nav-links{
  max-width: 100%;
}
}



/* XXXXXXXXXXXXXXXXXXX start of the single image item block */
.item-row {
	margin:10px 15px;
}

/* Create two columns that float next to each other */
.item-column1 {
	float: left;
	width: 70%;
	padding: 0px;
	text-align:left;
	/*height: 300px;  Should be removed. Only for demonstration */
	border:0px solid orange;
}
.item-column1-c {
	float: left;
	width: 70%;
	padding: 0px;
	text-align:center;
}
.item-column2 {
	float: left;
	width: 30%;
	padding: 0px 15px;
	text-align:left;
	background-color:#fff;
	/*height: 300px;  Should be removed. Only for demonstration */
}
.item-column2 h2 {
	font-weight: 500 !important;
	text-align:left;
	border:0px solid purple;
	font-size: 1.5em;
	text-transform: uppercase;
	margin-top:0px !important;
}
.item-column2 h3 {
	font-weight: 500 !important;
	margin-bottom:15px !important;
}
.item-column2 p {
	margin-bottom:20px;
}

.item-column2 a {
	color:#3d3d3d;
}

.item-column1 p {
	margin-bottom:15px;
}

/* width 100% makes image fit the div no matter what size div is */
.item-image img {
	width: 100%;
	margin-top:5px;
	margin-bottom:15px;
}

.about-image img {
	width: 100%;
	margin-top:5px;
	margin-bottom:30px;
}

.mission-image img {
	width: 100%;
	margin-top:5px;
	margin-bottom:30px;
}

/* Clear floats after the columns */
.item-row:after {
	content: "";
	display: table;
	clear: both;
}

/* Responsive layout - makes the two columns stack on top of each other instead of next to each other */
@media screen and (max-width: 720px) {
.item-column1 {
	width: 100%;
}
.item-column2 {
	width: 100%;
	padding:0px;
}
}



/* compare slider from https://www.codehim.com/html5-css3/html-css-image-comparison-slider */

.c-compare {
	--h: 12;
	--m: 0rem 0;
	--w: 16;
	--thumb-bgc: rgba(255, 255, 255, 0.75);
	--thumb-bgc-focus: rgba(255, 255, 255, 0.75);
	--thumb-w: 1px;

	margin: var(--m);
	position: relative;
}
.c-compare::after {
  content: "";
  display: block;
  padding-bottom: calc((var(--h) / var(--w)) * 100%);
}
.c-compare__left,
.c-compare__right {
  height: 100%;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.c-compare__left {
  clip-path: polygon(0% 0%, var(--value) 0%, var(--value) 100%, 0% 100%);
}
.c-compare__right {
  clip-path: polygon(100% 0%, var(--value) 0%, var(--value) 100%, 100% 100%);
}
.c-compare__range {
  background-color: transparent;
  box-sizing: border-box;
  font-family: inherit;
  height: 100%;
  margin: 0;
  outline: none;
  position: absolute;
  top: 0;
  width: 100%;
}
.c-compare__range::-moz-range-thumb {
  background-color: var(--thumb-bgc);
  cursor: ew-resize;
  height: 100%;
  width: var(--thumb-w);
}
.c-compare__range::-webkit-slider-thumb {
  background-color: var(--thumb-bgc);
  cursor: ew-resize;
  height: 100%;
  width: var(--thumb-w);
}
.c-compare__range:focus::-webkit-slider-thumb {
  background-color: var(--thumb-bgc-focus);
  /* box-shadow: 0 0 0 3px var(--thumb-bgc);  pixel removed this to get rid of that awful border */
}
.c-compare__range:focus::-moz-range-thumb {
  background-color: var(--thumb-bgc-focus);
  box-shadow: 0 0 0 3px var(--thumb-bgc);
}
.c-compare__range::-moz-range-track {
  background: transparent;
  background-size: 100%;
  box-sizing: border-box;
}
.c-compare__range::-webkit-slider-runnable-track {
  background: transparent;
  background-size: 100%;
  box-sizing: border-box;
  height: 100%;
}
.c-compare__range,
.c-compare__range::-webkit-slider-runnable-track,
.c-compare__range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
}

/* for contact form page */
form { margin: 0 0 20px }
.wrapcontact { margin-left:5%; border:0px solid pink; }
.done { display: none }
.smoothborder { border: 1px solid #CCC !important }
.ctextarea {width:90%;}
label { color: #4d4d4d; cursor: pointer; display: block; font-weight: 500; margin-bottom: 3px; }
label.right { float: none; text-align: right; }
label.inline { line-height: 32px; margin: 0 0 12px 0; }




/* START PORTFOLIO GALLERY BLOCK  */
.gallery {
-webkit-column-count:4; /* split it into 5 columns */
-webkit-column-gap:20px; /* give it a 5px gap between columns */
-moz-column-count:4;
-moz-column-gap:20px;
column-count:4;
column-gap:20px;
margin-top:15px;
margin-left:15px;
margin-right:15px;
}
.gallery img {
width: 100% !important;
height: auto !important;
margin-bottom:0px; /* to match column gap */
}
@media (max-width: 2000px) {
   .gallery {
    -moz-column-count:    3;
    -webkit-column-count: 3;
    column-count:         3;
   }
}
@media (max-width: 1200px) {
   .gallery {
    -moz-column-count:    3;
    -webkit-column-count: 3;
    column-count:         3;
   }
}
@media (max-width: 1000px) {
   .gallery {
    -moz-column-count:    2;
    -webkit-column-count: 2;
    column-count:         2;
   }
}
@media (max-width: 800px) {
   .gallery {
    -moz-column-count:    2;
    -webkit-column-count: 2;
    column-count:         2;
   }
}
@media (max-width: 640px) {
   .gallery {
    -moz-column-count:    1;
    -webkit-column-count: 1;
    column-count:         1;
   }
}

.gallery a {
	display: block;
	overflow: hidden;
	cursor:pointer;
}

.img__wrap {
	border-bottom:20px solid white;
position:relative;
}

.img-description-layer
{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  visibility: hidden;
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;

  /* transition effect. not necessary */
  transition: opacity .2s, visibility .2s;
}

.img__wrap:hover .img-description-layer {
  visibility: visible;
  opacity: 1;
cursor:pointer;
}

.img-description {
  transition: .4s;
  transform: translateY(1em);
  text-transform: capitalize;
}

.img__wrap:hover .img-description {
  transform: translateY(0);
}
/* END PORTFOLIO GALLERY BLOCK  */

