@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap");

:root {
  --arial-family: "Arial";
  --palatino-family: "Palatino Linotype";
  --calibri-family: "Calibri";
  --noto-family: "Noto Sans", sans-serif;
  --segoe-family: "Segoe UI";
}
body {
  padding: 0;
  margin: 0;
  font-family: var(--arial-family);
  background-color: #fbfbfb;
}
a {
  text-decoration: none;
}
p {
  margin-bottom: 0;
  color: #070707;
  font-size: 20px;
  font-weight: normal;
  line-height: 30px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 0;
}
.txt-blue {
  color: #354998;
}
.txt-black {
  color: #070707;
}
.sub-heading {
  font-size: 36px;
  font-weight: 500;
  line-height: 40px;
}
.sub-heading-2 {
  font-size: 30px;
  font-weight: 500;
  line-height: 34px;
}
.font-segoe {
  font-family: var(--segoe-family);
}
.o-hidden {
  overflow: hidden;
}

/* header */
header {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
}
header .navbar-nav {
  margin-left: auto;
}
header .navbar {
  background-color: #354964;
  padding-top: 10px;
  padding-bottom: 10px;
}
header .logo {
  border-radius: 5px;
  margin-bottom: -127px;
}
header .nav-item {
  padding-left: 17px;
  padding-right: 17px;
}
header .nav-link {
  position: relative;
  overflow: hidden;
  color: #fff;
  font-size: 16px;
  font-weight: normal;
  line-height: 18px;
  padding-left: 0px !important;
  padding-right: 0px !important;
  letter-spacing: 0.2px;
}
header .tel {
  font-size: 18px;
  color: #fff;
  font-weight: normal;
  line-height: 21px;
  padding-left: 22px;
}
header .navbar-nav .nav-link:hover {
  color: #fff;
}
header .navbar-nav .nav-link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
  transform: translateX(-101%);
  transition: transform 0.3s ease;
}
header .navbar-nav .nav-link:hover::after {
  transform: translateX(0);
}
header .navbar-nav .nav-link:focus {
  color: #fff;
}
header.fixed {
  position: fixed;
  background: #354964;
  top: 0;
  width: 100%;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  animation: slideDown 0.8s ease;
  z-index: 99999;
}
@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

/* banner */
.bannerSec {
  background: url(../img/banner-bg.jpeg) no-repeat center/cover;
  padding-top: 278px;
  padding-bottom: 80px;
}
.bannerSec .heroBox {
  background-color: #3549649e;
  border: 1px solid #707070;
  padding: 72px 120px 72px 0;
  width: calc(100% - 40%);
}
.bannerSec h1 {
  color: #fff0f0;
  font-size: 45px;
  font-family: var(--palatino-family);
  line-height: 60px;
  font-weight: normal;
  margin-bottom: 24px;
}
.bannerSec p {
  font-size: 25px;
  font-weight: normal;
  line-height: 35px;
  color: #fff;
  margin-bottom: 24px;
}
.bannerSec h4 {
  font-size: 30px;
  font-weight: normal;
  line-height: 50px;
  color: #fff;
}
@media (min-width: 576px) {
  .bannerSec .heroBox {
    padding-left: calc((100vw - 516px) / 2) !important;
  }
}
@media (min-width: 768px) {
  .bannerSec .heroBox {
    padding-left: calc((100vw - 696px) / 2) !important;
  }
}
@media (min-width: 992px) {
  .bannerSec .heroBox {
    padding-left: calc((100vw - 936px) / 2) !important;
  }
}
@media (min-width: 1200px) {
  .bannerSec .heroBox {
    padding-left: calc((100vw - 1116px) / 2) !important;
  }
}
@media (min-width: 1400px) {
  .bannerSec .heroBox {
    padding-left: calc((100vw - 1296px) / 2) !important;
  }
}

/* top section */
.topSec {
  padding-top: 112px;
}

/* residential & commercial banner */
.resComBanner {
  background: url(../img/resComBanner.jpg) no-repeat center/cover;
  margin-top: 98px;
  border: 1px solid #707070;
}
.resComBanner .shadeBx {
  background-color: #3549649e;
  border: 1px solid #707070;
  padding-top: 82px;
  padding-bottom: 82px;
  padding-left: 84px;
}
@media (min-width: 576px) {
  .resComBanner .shadeBx {
    padding-right: calc((100vw - 516px) / 2) !important;
  }
}
@media (min-width: 768px) {
  .resComBanner .shadeBx {
    padding-right: calc((100vw - 696px) / 2) !important;
  }
}
@media (min-width: 992px) {
  .resComBanner .shadeBx {
    padding-right: calc((100vw - 936px) / 2) !important;
  }
}
@media (min-width: 1200px) {
  .resComBanner .shadeBx {
    padding-right: calc((100vw - 1116px) / 2) !important;
  }
}
@media (min-width: 1400px) {
  .resComBanner .shadeBx {
    padding-right: calc((100vw - 1296px) / 2) !important;
  }
}
.resComBanner .shadeBx h2 {
  font-size: 40px;
  line-height: 50px;
  font-weight: normal;
  font-style: italic;
  color: #fff;
  margin-bottom: 39px;
}
.resComBanner .shadeBx h4 {
  color: #fff;
  font-size: 30px;
  font-weight: normal;
  line-height: 40px;
}

/* about us banner */
.aboutUsBanner {
  background: url(../img/about-us-bg.jpeg) no-repeat center/cover;
  margin-top: 98px;
  border: 1px solid #707070;
}
.aboutUsBanner .shadeBx {
  background-color: #1e5185b0;
  border: 1px solid #707070;
  padding-top: 82px;
  padding-bottom: 82px;
  padding-right: 26px;
}
@media (min-width: 576px) {
  .aboutUsBanner .shadeBx {
    padding-left: calc((100vw - 516px) / 2) !important;
  }
}
@media (min-width: 768px) {
  .aboutUsBanner .shadeBx {
    padding-left: calc((100vw - 696px) / 2) !important;
  }
}
@media (min-width: 992px) {
  .aboutUsBanner .shadeBx {
    padding-left: calc((100vw - 936px) / 2) !important;
  }
}
@media (min-width: 1200px) {
  .aboutUsBanner .shadeBx {
    padding-left: calc((100vw - 1116px) / 2) !important;
  }
}
@media (min-width: 1400px) {
  .aboutUsBanner .shadeBx {
    padding-left: calc((100vw - 1296px) / 2) !important;
  }
}
.aboutUsBanner .shadeBx h2 {
  font-size: 40px;
  line-height: 50px;
  font-weight: normal;
  font-style: italic;
  color: #fff;
  margin-bottom: 39px;
}
.aboutUsBanner .shadeBx h4 {
  color: #fff;
  font-size: 30px;
  font-weight: normal;
  line-height: 40px;
}

/* content section */
.contentSec {
  margin-top: 100px;
}
.contentSec .contentBox {
  max-width: 88%;
  margin: auto;
}
.contentSec .name {
  font-size: 20px;
  font-weight: 500;
  line-height: 30px;
  color: #070707;
  text-align: center;
  display: block;
}
.contentSec .hover figure {
  background: #354964;
  position: relative;
  border-radius: 5px;
  border: 1px solid #707070;
  box-shadow: 0 3px 6px 0px #00000029;
  margin-bottom: 9px;
}
.contentSec .hover figure img {
  height: 153px;
  width: 100%;
  object-fit: cover;
  opacity: 1;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
.contentSec .hover figure:hover img {
  opacity: 0.8;
}
.contentSec .hover figure::before {
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 2;
  display: block;
  content: "";
  width: 50%;
  height: 100%;
  background: -webkit-linear-gradient(
    left,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.3) 100%
  );
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.3) 100%
  );
  -webkit-transform: skewX(-25deg);
  transform: skewX(-25deg);
}
.contentSec .hover figure:hover::before {
  -webkit-animation: shine 0.75s;
  animation: shine 0.75s;
}
@-webkit-keyframes shine {
  100% {
    left: 125%;
  }
}
@keyframes shine {
  100% {
    left: 125%;
  }
}

/* contact us banner */
.contactUsBanner {
  padding-top: 46px;
  padding-bottom: 253px;
  background: url(../img/contact-us-bg.jpg) no-repeat center/cover;
  margin-top: 100px;
  border: 1px solid #707070;
}
.contactUsBanner h2 {
  font-size: 40px;
  line-height: 50px;
  font-weight: normal;
  font-style: italic;
  color: #fff;
  margin-bottom: 5px;
}
.contactUsBanner h4 {
  color: #fff;
  font-size: 30px;
  font-weight: normal;
  line-height: 40px;
}

/* contact us section  */
.contactUsSec {
  margin-top: 82px;
  margin-bottom: 110px;
}
.contactUsSec p {
  font-size: 16px;
  line-height: 20px;
}
.contactUsSec .formBox {
  max-width: 481px;
}
.contactUsSec .formBox input,
.contactUsSec .formBox textarea {
  border: 2px solid #3e3e3e;
  font-family: var(--noto-family);
  font-weight: 600;
  font-size: 16px;
  line-height: 22px;
  color: #3e3e3e;
  border-radius: 0;
  padding-top: 11px;
  padding-bottom: 11px;
  box-shadow: unset;
}
.contactUsSec .formBox .btn {
  border-radius: 5px;
  background-color: #6b8cb8;
  border: 0.5px solid #706f6ffc;
  font-weight: 400;
  font-size: 16px;
  line-height: 18px;
  color: #fff;
  padding: 10px 46.8px;
}
.contactUsSec .formBox .btn:hover {
  background-color: #354964;
}
.contactUsSec h3 {
  font-size: 24px;
  line-height: 30px;
  font-weight: 500;
  color: #354998;
}
.contactUsSec .mapCol p {
  font-weight: 500;
}
.contactUsSec .mapCol p a {
  color: #070707;
}
.contactUsSec .mapCol iframe {
  border: 1px solid #707070;
  border-radius: 9px;
  box-shadow: 0px 3px 6px 0px #00000029;
  max-width: 475px;
  width: 100%;
}

/* footer */
footer {
  background-color: #354964;
  border: 1px solid #707070;
  padding-top: 28px;
  padding-bottom: 28px;
}
footer .sub-heading-2 {
  font-family: var(--calibri-family);
}

#scroll-to-top {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: #354964;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 40px;
  cursor: pointer;
  z-index: 9999;
}
