/* basics */
:root {
    --text: #0f2545; /* var(--text); */
    --primary: #0f9480; /* var(--primary); */
    --secondary: #91d1c6; /* var(--secondary); */
  }


* {
    margin: 0;
    padding: 0
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-style: normal;
    color: var(--text);
    overflow-x: hidden;
    font-size: 18px;
    position: relative;
    line-height: 1.8;
}

@media (max-width: 576px) {
    body {
        font-size: 1rem;
    }
}

p {
    margin: 0;
    padding: 0;
    opacity: 0.7;
}

h1 span, h2 span, h3 span, h4 span, h5 span, h6 span{
    color: var(--secondary);

  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 180%;
  line-height: 0;
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  font-family: "Rubik", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Rubik", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.line {
    width: 48px;
    height: 0;
    border: 1px solid var(--secondary);
    margin: 28px 0px 30px 0px;
  }
  
section {
    padding-top: 120px;
    padding-bottom: 120px;
    position: relative;
}

/*
.container{
    max-width: 1249px;
}
*/

.bg-theme{
    background-color: var(--text);
    color: #fff;
}

.footer{
    background-image: linear-gradient(to right bottom, #0f9480, #3da391, #5cb2a3, #77c2b4, #91d1c6);
    color: #fff;
    padding-top: 120px;
    font-size: 16px;
}

.footer .footer-brand{
 color: #fff;
  letter-spacing: 0.5px;
  line-height: 10px !important;
  font-size: 20px;
  text-decoration: none;
  font-weight: bolder;
}

.footer .footer-brand b{
    color: var(--text);
}

.footer p {
    opacity: 1;
}

.footer .footer-links ul, ol {
    margin: 0;
  padding: 0;
  list-style-type: none;
  }

.footer .footer-links ul li a {
    color: #fff;
    line-height: 35px;
    transition: .3s ease-in-out;
    display: block;
    text-decoration: none;
  }

  .footer .footer-links ul li a:hover {
    color: #0f2545;
    padding-left: 10px;
  }

.footer .copyright-area {
    border-top: 2px solid rgba(255, 255, 255, .16);
    padding: 35px 0;
    margin-top: 35px;
}

.border.border-primary{
    border-color: var(--primary) !important;
}
/* END basics */

/* Customised */
.text-primary{
   color: var(--primary) !important;
}

.bg-primary {
    background-color: var(--primary) !important;
}

.btn-primary {
    display: inline-block;
    white-space: nowrap;
    vertical-align: middle;
    z-index: 5;
    transition: all .5s ease-in-out;
    position: relative;
    overflow: hidden;
    background-color:var(--text) !important;
    color: #fff;
    border: none;
}

.btn-primary::after {
    content: '';
    position: absolute;
    width: 0%;
    height: 0%;
    border-radius: 50%;
    /* background: rgba(0, 0, 0, .1); */
    background-color:var(--primary) !important;
    top: 50%;
    left: 50%;
    padding: 50%;
    z-index: -1;
    transition: all .3s ease-out 0s;
    transform: translate3d(-50%, -50%, 0) scale(0);
}

.btn-primary:hover::after {
    transform: translate3d(-50%, -50%, 0) scale(1.3);
}

.btn-primary.bg-dark::after {
    background-color:#fff !important;
}

.btn-primary.bg-dark:hover {
    color:var(--text);
}

a {
    color: var(--primary);
}

a:hover, a:focus {
    color:var(--text);
}

/* Customised nav bar */
.navbar-area {
    background-color: none;
    transition: background-color 300ms linear;
    -webkit-transition: background-color 300ms linear;
    -ms-transition: background-color 300ms linear;
    -o-transition: background-color 300ms linear;
    -ms-transition: background-color 300ms linear;
}
  
.sticky{
    background-color: #fff;
    -webkit-box-shadow: 0px 20px 50px 0px rgba(0, 0, 0, 0.05);
    box-shadow: 0px 20px 50px 0px rgba(0, 0, 0, 0.05);
}
  
.navbar{
    line-height: 60px;
    padding-left: 16px;
    padding-right: 16px;
}

.navbar ul li ul {
    line-height: 40px;
}

@media (max-width: 576px) {
    .navbar .navbar-collapse{
        line-height: 40px;
        background-color: #fff;
        margin-left: -28px;
        margin-right: -28px;
        padding-left: 28px;
        padding-right: 28px;
        padding-bottom: 24px;
    }
    .navbar.sticky .navbar-collapse {
        line-height: 40px;
        background-color: #fff;
        margin: 0px;
        padding: 0px;
        padding-bottom: 16px;
    } 
    .navbar .nav-link {
        color: var(--text);
    }
    .navbar ul li {
        width: 100%;
        border-top: 1px solid rgb(238, 238, 238);
    }
    .navbar ul li:last-child {
        width: 100%;
        border-top: 0px;
    }
    .navbar ul li ul li {
        width: 100%;
        border-top: 0px;
    }
    .navbar ul li ul {
        margin-bottom: 16px;
    }
    .navbar ul li .btn{
        width: 100%;
    }

    footer .navbar ul li {
        border-top: 0px;
    }

}

.nav-link {
    color: var(--text);
}

.navbar.sticky .nav-link, footer .navbar .nav-link {
    color: var(--text);
}

.nav-link:focus, .nav-link:hover, .nav-link.active {
    color: var(--primary)!important;
}

/* Customised nav bar brand */
.navbar .navbar-brand {
    color:var(--primary);
    font-weight: 500;
    letter-spacing: 0.5px;
    line-height: 18px;
    font-size: 20px;
}

.navbar .navbar-brand b{
    color:var(--text);
    display: block;
}

/*
.navbar.sticky .navbar-brand, footer .navbar .navbar-brand{
    color: var(--text);
}

.navbar-brand i, .navbar-brand svg {
    color: #fff;
}

.navbar.sticky .navbar-brand i, .navbar.sticky .navbar-brand svg, footer .navbar .navbar-brand i, footer .navbar .navbar-brand svg {
    color: var(--primary);
}
*/

/* Customised nav bar toggler*/
.navbar-toggler {
    padding: 0;
    border: 0px;
}

.navbar-toggler:focus {
    outline: none;
    box-shadow: none
}

.navbar .navbar-toggler .toggler-icon {
    width: 30px;
    height: 2px;
    background-color: var(--text);
    display: block;
    margin: 5px 0;
    position: relative;
    transition: all .3s ease-out 0s
}

.navbar.sticky .navbar-toggler .toggler-icon {
    background-color:var(--text);
}

.navbar-toggler.active .toggler-icon:nth-of-type(1) {
    transform: rotate(45deg);
    top: 7px
}

.navbar-toggler.active .toggler-icon:nth-of-type(2) {
    opacity: 0
}

.navbar-toggler.active .toggler-icon:nth-of-type(3) {
    transform: rotate(135deg);
    top: -7px
}

/* sections */
section#home h1 {
    font-size: 58px;
    margin: 0px;
}

@media only screen and (max-width: 991px) {
    section#home h1 {
        font-size: 42px;
        margin: 0px;
    }
  }


section#home h2 {
    font-weight: 300;
    font-size: 28px;
    font-family: 'Roboto', sans-serif;
    margin: 30px 0px;
}

/* section about us*/
/* circular animation */
.bulls-eye {
      width: 1200px;
      height: 800px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: absolute; 
      top: -380px; 
      left: -580px; 
      z-index: -1;
      opacity: 0.5;
    }
 
.circle {
  border-radius: 50%;
  background-color: #0f9480;
  width: 300px;
  height: 300px;
  position: absolute;
  opacity: 0;
  animation: scaleIn 5s infinite cubic-bezier(.36, .11, .89, .32);
}
 
    .item {
      z-index: 100;
      padding: 5px;
      background-color: #fff;
      border-radius: 50%;
      width: 200px;
      height: 200px;
    }
 
    .item img {
      width: 300px;
    }

    @keyframes scaleIn {
  from {
    transform: scale(.5, .5);
    opacity: .5;
  }
  to {
    transform: scale(2.5, 2.5);
    opacity: 0;
  }
}   

/* dot :: after */

.dot {
    position: relative;
}
.dot::after { 
    background-color: var(--secondary);
    background: rgb(145,209,198);
    background: linear-gradient(135deg, rgba(145,209,198,1) 0%, rgba(214,234,230,1) 100%); 
    height: 400px; 
    width: 400px; 
    content: "";
    position: absolute;
    bottom: -100px;
    right: -200px;
    position: absolute;
    z-index: -1;  /* to be below the parent element */
    border-radius: 50%;
    opacity: 0.5;
  } 

 .shadow-afterr{
    -webkit-box-shadow:0px 25px 20px -20px rgba(0,0,0,0.45);
    box-shadow: 0px 25px 20px -20px rgba(0,0,0,0.45); 
    position: relative;
    min-height: 60px;
    margin-top: -60px;
    z-index: 99 !important;
 }

/* section circle images */
section.bg .container .row{
    height: 632px !important;
}

.bg{
    background-image: url(../img/bg.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 1024px;
    /* z-index: -1; */
}

@media only screen and (max-width: 992px) {
    .bg{
        background-size: 200%;
        min-height: 624px;
    }
}

@media only screen and (max-width: 768px) {
    section.bg .container .row{
        height: 100% !important;
        padding-top: 200px;
        background-position: right 30% top 0%;
    }

    .bg {
        background-size: 200%;
        min-height: 100%;
    }

  }

.bg-1{
    background-image: url(../img/header/bg-1.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
    /* z-index: -1; */
}

.bg-2{
    background-image: url(../img/header/bg-2.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
    /* z-index: -1; */
}

@media only screen and (max-width: 992px) {
    .bg-2{
        background-size: 200%;
    }
}

@media only screen and (max-width: 768px) {
    .bg-2{
        background-size: 930px 308px;
        min-height: 100%;
        padding-top: 310px;
        background-position: right 72% top 0%;
    }
}

.bg-3{
    background-image: url(../img/header/bg-3.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
    /* z-index: -1; */
}   

@media only screen and (max-width: 992px) {
    .bg-3{
        background-size: 200%;
    }
}

@media only screen and (max-width: 768px) {
    .bg-3{
        background-size: 930px 308px;
        min-height: 100%;
        padding-top: 310px;
        background-position: left 72% top 0%;
    }
}

.bg-4{
    background-image: url(../img/header/bg-4.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
}  

@media only screen and (max-width: 992px) {
    .bg-4{
        background-size: 200%;
    }
}

@media only screen and (max-width: 768px) {
    .bg-4{
        background-size: 930px 308px;
        min-height: 100%;
        padding-top: 310px;
        background-position: left 72% top 0%;
    }
}

.bg-5{
    background-image: url(../img/header/bg-5.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
    /* z-index: -1; */
}  

@media only screen and (max-width: 992px) {
    .bg-5{
        background-size: 200%;
    }
}

@media only screen and (max-width: 768px) {
    .bg-5{
        background-size: 930px 308px;
        min-height: 100%;
        padding-top: 310px;
        background-position: right 72% top 0%;
    }
}

.bg-6{
    background-image: url(../img/header/bg-6.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
    /* z-index: -1; */
}  

@media only screen and (max-width: 992px) {
    .bg-6{
        background-size: 200%;
    }
}

@media only screen and (max-width: 768px) {
    .bg-6{
        background-size: 930px 308px;
        min-height: 100%;
        padding-top: 310px;
        background-position: left 72% top 0%;
    }
}

.bg-7{
    background-image: url(../img/header/bg-7.png);
    background-repeat: no-repeat;
    background-position: right 50% top 0%;
    min-height: 824px;
    /* z-index: -1; */
} 

@media only screen and (max-width: 992px) {
    .bg-7{
        background-size: 200%;
    }
}

@media only screen and (max-width: 768px) {
    .bg-7{
        background-size: 930px 308px;
        min-height: 100%;
        padding-top: 310px;
        background-position: right 72% top 0%;
        padding-bottom:0px
    }
}

.targetdiv{

}
.bg-pos-fixed{
    background-attachment: fixed;
}

@media only screen and (max-width: 768px) {
    .bg-pos-fixed{
        background-attachment:unset;
    }
}

.bg-pos-reset{
    background-attachment: scroll !important;
}

/* section logo partners*/
section.partner{
    background: rgb(15,148,128);
    background: linear-gradient(135deg, rgba(15,148,128,1) 0%, rgba(214,234,230,1) 100%); z-index: -1;
}

  .logo-wrapper{
    background-color: rgba(255, 255, 255, 0.4);
    border-radius: .25rem;
    transition: all 0.2s ease;
    cursor: pointer;
  }

  .logo-wrapper:hover{
    transform: scale(1.1);
    background-color: rgba(255, 255, 255, 0.7);
  }

/* Contact */

.card {
    background-color: #ffffff;
  border: 1px solid #eaedf0;
  -webkit-box-shadow: 0px 40px 60px rgba(236,234,240,0.5);
  box-shadow: 0px 40px 60px rgba(236,234,240,0.5);
  -webkit-box-shadow: 0 20px 40px rgba(0,0,0,.175) !important;
  box-shadow: 0 20px 40px rgba(0,0,0,.175) !important;
}

/* card */
/*card hover */
.card {
    border: 1px solid #eaedf0;
    /*
        -webkit-box-shadow: 0px 40px 60px rgba(236,234,240,0.5);
        box-shadow: 0px 40px 60px rgba(236,234,240,0.5);
        border-radius: 8px;
        */
}
.card.card-hover{
    -webkit-transition: all .4s ease;
    transition: all .4s ease;
}
  
.card.card-hover:hover {
    box-shadow: 0 10px 50px -5px rgba(51,71,91,0.12);
    transform: translateY(-5px);
}

/* card portfolio hover */
.portfolio-item-wrapper{position:relative;z-index:2;}
      
.portfolio-item-wrapper .portfolio-overlay{position:absolute;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);z-index:5;opacity:0;visibility:hidden;-webkit-transition:all .4s ease-in-out;transition:all .4s ease-in-out}

.portfolio-item-wrapper:hover .portfolio-overlay{opacity:1;visibility:visible}

.portfolio-item-wrapper .card{position:relative}

.portfolio-item-wrapper .card::before{position:absolute;content:"";left:0;top:0;background:linear-gradient(45deg,#0f9480,#91d1c6);height:100%;width:100%;z-index:5;opacity:0;visibility:hidden;-webkit-transition:all .4s ease-in-out;transition:all .4s ease-in-out}

.portfolio-item-wrapper:hover .card::before{opacity:.9;visibility:visible}

/*
.portfolio-item-wrapper .card img{width:100%;-webkit-transition:all .4s ease;transition:all .4s ease;-moz-transition:all .4s ease;-webkit-transform:scale(1.1);transform:scale(1.1)}

.portfolio-item-wrapper:hover .card img{-webkit-transform:scale(1);transform:scale(1)}
*/

/* team */
.single-team .card-body{
    background: var(--primary);
    overflow: hidden;
    position: relative;
}

.single-team:hover .card-body img {
    opacity:0.30;
}

.single-team:hover .card-body .social {
    opacity: 1;
    visibility: visible;
    bottom: 10%;
}

.single-team .card-body .social {
    position: absolute;
    bottom: -50px;
    padding: 0 32px;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
    width: 100%;
    left: 0;
    list-style: none;
}

ul.social li{
    height: 35px;
    width: 35px;
    text-align: center;
    display: inline-block;
    background: #fff;
    line-height: 37px;
    text-align: center;
    border-radius: 5px;
    margin: 0px 6px;
}

/* 50% full img grid */
.bg-img{
    background-image: url("../img/bg-img.jpg");
    background-repeat: no-repeat;
}

.bg-right{
    background-position:100% center;
    background-size:50%;
}

.bg-left{
    background-position:0% center;
    background-size:50%;
}

@media only screen and (max-width: 768px) {
    .bg-md {
        background-image: none;
    }
  }

/* Form validation */
.form-floating > label {
    top: -4px;
  }

form .error, form .form-control.error:focus{
    background: #f8dbda;
    border:1px solid #e67a74;
}

/* Form scroll offset */ 
form input, form textarea{
    scroll-margin: 160px;      
}    

/* google maps */
.responsive-map{
    background-color:var(--primary);
    height: 100%;
 }
 
.responsive-map iframe{
    width: 100%;
    height: 544px;
    margin: 0;
    margin-bottom: 0px;
    padding: 0;
    border: 1px solid #ced4da;
    margin-bottom: -8px;
}

embed, iframe, object {
    max-width: 100%;
}

.responsive-map iframe.map-style{
    filter:grayscale(0.32) saturate(2.4) opacity(0.8)
}

.overlay {
    position: relative;
    width: 100%;
    height: 500px;
    top: 0px;
    margin-bottom: -500px;
    z-index: 1;
}
/* END Customised */

/* ############################################### */

/* preloader */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    display: table;
    height: 100%;
    width: 100%;
    background: #fff;
    z-index: 99999
}

.preloader .loader {
    display: table-cell;
    vertical-align: middle;
    text-align: center
}

.preloader .loader .spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 64px;
    margin-left: -32px;
    z-index: 18;
    pointer-events: none
}

.preloader .loader .spinner .spinner-container {
    pointer-events: none;
    position: absolute;
    width: 100%;
    padding-bottom: 100%;
    top: 50%;
    left: 50%;
    margin-top: -50%;
    margin-left: -50%;
    animation: spinner-linspin 1568.2353ms linear infinite
}

.preloader .loader .spinner .spinner-container .spinner-rotator {
    position: absolute;
    width: 100%;
    height: 100%;
    animation: spinner-easespin 5332ms cubic-bezier(.4, 0, .2, 1) infinite both
}

.preloader .loader .spinner .spinner-container .spinner-rotator .spinner-left {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    overflow: hidden;
    right: 50%
}

.preloader .loader .spinner .spinner-container .spinner-rotator .spinner-right {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    left: 50%
}

.preloader .loader .spinner-circle {
    box-sizing: border-box;
    position: absolute;
    width: 200%;
    height: 100%;
    border-style: solid;
    border-color: var(--primary) var(--primary) #ddd;
    border-radius: 50%;
    border-width: 6px
}

.preloader .loader .spinner-left .spinner-circle {
    left: 0;
    right: -100%;
    border-right-color: #ddd;
    animation: spinner-left-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both
}

.preloader .loader .spinner-right .spinner-circle {
    left: -100%;
    right: 0;
    border-left-color: #ddd;
    animation: right-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both
}

@keyframes spinner-linspin {
    to {
        transform: rotate(360deg)
    }
}

@keyframes spinner-easespin {
    12.5% {
        transform: rotate(135deg)
    }

    25% {
        transform: rotate(270deg)
    }

    37.5% {
        transform: rotate(405deg)
    }

    50% {
        transform: rotate(540deg)
    }

    62.5% {
        transform: rotate(675deg)
    }

    75% {
        transform: rotate(810deg)
    }

    87.5% {
        transform: rotate(945deg)
    }

    to {
        transform: rotate(1080deg)
    }
}

@keyframes spinner-left-spin {
    0% {
        transform: rotate(130deg)
    }

    50% {
        transform: rotate(-5deg)
    }

    to {
        transform: rotate(130deg)
    }
}

@keyframes right-spin {
    0% {
        transform: rotate(-130deg)
    }

    50% {
        transform: rotate(5deg)
    }

    to {
        transform: rotate(-130deg)
    }
}
/* END preloader */

/* To the TOP btn */
.scroll-top-wrapper {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 9;
}
/* 
body.modal-open .scroll-top-wrapper {
    right: 45px;
}
*/
.scroll-top {
    width: 50px;
    height: 50px;
    line-height: 50px;
    background: var(--primary);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 15px;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
    color: #fff !important;
    cursor: pointer;
     -webkit-transition: all .3s ease-out 0s;
    transition: all .3s ease-out 0s;
}

.scroll-top:hover {
    -webkit-box-shadow: 0 1rem 3rem rgba(35, 38, 45, .15) !important;
    box-shadow: 0 1rem 3rem rgba(35, 38, 45, .15) !important;
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
    background-color: #081828
}
/* END To the TOP btn */

/* Mouse event */

/*Ripple*/
.cursor {
    position: absolute;
    height: 20px;
    width: 20px;
    border-radius: 50%;
    transform: translateX(-50%) translateY(-50%);
  }
  .cursor:nth-child(1) {
    background-color: #0f9480;
    z-index: 1;
  }
  .cursor:nth-child(2) {
    background-color: #0f2545;
  }
  
  /*Ripple*/
  .ripple {
      width: 10px;
      height: 10px;
      opacity: 0;
      transform: scale(0);
      background: rgba(22, 131, 109, 0.5);
      border-radius: 50%;
      position: fixed;
    }
    
    /*Animate Function*/
    .animate {
      animation: ripple-mo 1s cubic-bezier(0, 0, 0.2, 1);
    }
    @keyframes ripple-mo {
      0% {
        transform: scale(0);
        opacity: 1;
      }
      100% {
        transform: scale(10);
        opacity: 0;
      }
    }