/******************************
    ---- Table Of Index ----

    00 - Global css
    01 - Header css
    02 - Banner css
    03 - Introduction css
    04 - Services css
    05 - Meet Our Experts css
    06 - My References css
    07 - Patients Reviews start css
    08 - Prices css
    09 - GetTouch css
    10 - Footer css
    11 - Back to top css
    12 - Appoinment Modal css
    13 - Preloader css
    
******************************/


/*----------------------------------------*/
/*  00 - Global css
/*----------------------------------------*/
:root {
    --primary_color: #004f41;
    --secondary_color: #a7d5bd;
    --topbg: #f1f7ef;
    --btncolor: #9bd6d2;
    --headtext: #00441f;
    --ptextvolor: #054b4a;
    --white: #FFF;
    --black: #000;
    --footerbg: #d5ffe9;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    overflow-x: hidden;
    scroll-behavior: smooth;
    font-family: "Montserrat", serif;
}


/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Montserrat", serif;
}

p {
    font-family: "Open Sans", serif;
}

/* pre defined padding and margin and gap*/
.gap10 {
    gap: 10px;
}

.gap20 {
    gap: 20px;
}

.gap40 {
    gap: 40px;
}

.padding20 {
    padding: 20px;
}

.padding40 {
    padding: 40px;
}

.mt80 {
    margin-top: 80px;
}

.mt60 {
    margin-top: 60px;
}

.mb80 {
    margin-bottom: 80px;
}

.mb60 {
    margin-bottom: 60px;
}

.pt80 {
    padding-top: 80px;
}

.pt60 {
    padding-top: 60px;
}

.pb80 {
    padding-bottom: 80px;
}

.pb60 {
    padding-bottom: 60px;
}

.text-decoration-None {
    text-decoration: none;
}

/* Buttons */
.primarybtn {
    font-size: 16px;
    font-weight: 500;
    color: var(--black);
    background: var(--btncolor);
    display: inline-flex;
    align-items: center;
    padding: 14px 40px;
    border-radius: 30px;
    border: none;
    position: relative;
    cursor: pointer;
    transition: .3s;
    z-index: 1;
    overflow: hidden;
    text-decoration: none !important;
    gap: 10px;
}

.primarybtn::after,
.primarybtn::before {
    content: '';
    width: 51%;
    height: 0;
    background: var(--primary_color);
    border-radius: 30px 0 0 30px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: .3s;
}

.primarybtn::after {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0;
    border-radius: 0 30px 30px 0;
}

.primarybtn:hover {
    color: var(--white);
}

.primarybtn:hover::after,
.primarybtn:hover::before {
    height: 100% !important;

}

.ThemeBtn {
    text-align: center;
    display: flex;
    align-items: center;
}

.secondarybtn {
    position: relative;
    display: inline-block;
    height: 50px;
    width: 100%;
    line-height: 0;
    padding: 0;
    border-radius: 50px;
    background: var(--topbg);
    border: 2px solid var(--secondary_color);
    transition: .5s;
}

.secondarybtn:hover {
    background-color: var(--primary_color);
}

.secondarybtn:hover span.btnCircle {
    left: 100%;
    margin-left: -45px;
    background-color: #fdfdfd;
    color: var(--primary_color);
}

.secondarybtn:hover span.btnTitle {
    left: 40px;
    opacity: 0;
}

.secondarybtn:hover span.btnTitle-hover {
    opacity: 1;
    left: 6%;
}

.secondarybtn span.btnCircle {
    display: block;
    background-color: var(--primary_color);
    color: #fff;
    position: absolute;
    float: left;
    margin: 3px;
    line-height: 42px;
    height: 40px;
    width: 40px;
    top: 0;
    left: 0;
    transition: .5s;
    border-radius: 50%;
}

.secondarybtn span.btnTitle,
.secondarybtn span.btnTitle-hover {
    position: absolute;
    left: 20%;
    text-align: center;
    margin: 0 auto;
    font-size: 16px;
    font-weight: 600;
    color: var(--primary_color);
    transition: .5s;
}

.secondarybtn span.btnTitle-hover {
    left: 20%;
    opacity: 0;
}

.secondarybtn span.btnTitle-hover {
    color: #fff;
}

/* Main Heading */
.heading h2 {
    color: var(--primary_color);
    font-weight: 600;
    font-size: 36px;
}


/*----------------------------------------*/
/*  01 - Header css
/*----------------------------------------*/

/* top bar start */
.topbg {
    background-color: var(--topbg);
    padding: 5px;
    border-bottom: 1px solid #c1c1c1;
}

.topemail a {
    display: flex;
    gap: 10px;
    align-items: center;
    color: var(--primary_color);
    text-decoration: none;
}

/* top bar end */

/* Nav start */
.headerbg {
    background-color: var(--topbg);
    padding: 10px;
}

.nav-link {
    font-size: 16px;
    font-weight: bold;
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link.show {
    color: var(--headtext);
}

.modal-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    padding: var(--bs-modal-header-padding);
    border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
    border-top-left-radius: var(--bs-modal-inner-border-radius);
    border-top-right-radius: var(--bs-modal-inner-border-radius);
    justify-content: space-between;
}

.sticky-header {
    position: fixed !important;
    top: 0;
    width: 100%;
    z-index: 1000;
    animation: slideDown 0.35s ease-out;
    box-shadow: 0 0 4px rgb(0 0 0 / 10%), 0 4px 8px rgb(0 0 0 / 15%);
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
    }

    to {
        transform: translateY(0);
    }
}

.ICNmob {
    display: none !important;
    font-size: 25px;
    color: var(--primary_color);
}

/* Nav end */


/*----------------------------------------*/
/*  02 - banner css
/*----------------------------------------*/
.banner {
    background-image: url(../img/banner2.jpg);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 80px;
}

.banner h1 {
    font-weight: 600;
}

.HappySmile {
    color: #00b4ff;
    font-size: 50px;
    font-weight: 700;
}

#cursor {
    display: inline-block;
    font-weight: 400;
    animation: blink 0.7s step-end infinite;
}

@keyframes blink {
    50% {
        opacity: 0;
    }
}
/* banner end */


/*----------------------------------------*/
/*  03 - Introduction  css
/*----------------------------------------*/

.introduction {
    margin-top: 80px;
    background-image: url(../img/whatwedobg.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.introduction h3 {
    font-weight: 600;
    margin-bottom: 7px;
}

.introBox {
    position: relative;
}

.introImg {
    position: relative;
    z-index: 2;
    left: 9px;
    animation: bounceIntroImg 3s infinite ease-in-out;
}

.introLayer {
    position: absolute;
    top: 4%;
    left: -4%;
    animation: slideIntroLayer 4s infinite ease-in-out;
}

.introDots {
    position: absolute;
    bottom: -8%;
    left: -19%;
    animation: pulseIntroDots 5s infinite ease-in-out;
}

@keyframes bounceIntroImg {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

@keyframes slideIntroLayer {
    0% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(15px);
    }

    100% {
        transform: translateX(0);
    }
}

@keyframes pulseIntroDots {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
    }
}

/* Introduction end */


/*----------------------------------------*/
/*  04 - services css
/*----------------------------------------*/
.service {
    margin-top: 5%;
}

.servicecontainer h1 {
    text-align: center;
    margin: 50px auto;
    color: var(--primary_color);
}

.servicecontainer .services-section {
    display: flex;
    justify-content: space-between;
    margin-top: 6%;
}

.servicecontainer .services-section .card {
    width: 350px;
    text-align: center;
    position: relative;
    cursor: pointer;
    background: #fff;
    margin: 0 6px;
    border-radius: 20px;
    z-index: 10;
    transition: transform 0.8s;
    padding: 10px;
}

.services-section .card .icon {
    width: 150px;
    height: 150px;
    background: #fff;
    align-items: center;
    justify-content: center;
    display: flex;
    font-size: 80px;
    border-radius: 50%;
    color: #9bd6d2;
    border: 10px solid #9bd6d2;
    margin: -75px auto 0;
    transition: transform 1s;
}

.services-section .card h2 {
    height: 35px;
    width: 89%;
    text-align: center;
    font-size: 18px;
    text-transform: uppercase;
    margin: 40px auto;
    position: relative;
    background: #fff;
    line-height: 35px;
}

.services-section .card h2:after {
    content: '';
    width: 40px;
    height: 30px;
    background: linear-gradient(to right, #fff, #9bd6d2);
    position: absolute;
    right: -5px;
    top: -5px;
    z-index: -1;
}

.services-section .card h2:before {
    content: '';
    width: 40px;
    height: 30px;
    background: linear-gradient(to right, #9bd6d2, #fff);
    position: absolute;
    left: -5px;
    bottom: -5px;
    z-index: -1;
}

.services-section .card:hover {
    transform: translateY(-20px);
}

.services-section .card:hover .icon {
    transform: rotate(360deg);
}

/* services end */


/*----------------------------------------*/
/*  05 - Meet Our Experts css
/*----------------------------------------*/
.single-team {
    padding-bottom: 70px;
    position: relative;
    z-index: 1;
    overflow: hidden;
    box-shadow: rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;
    border-radius: 20px;
}

.team-img {
    position: relative;
    z-index: 5;
    overflow: hidden;
}

.team-img img {
    width: 100%;
    transition: 0.3s;
}

.single-team:hover .team-img img {
    transform: scale(1.1);
}

.team-content {
    height: 80px;
    width: 100%;
    position: absolute;
    text-align: center;
    overflow: hidden;
    bottom: 0;
    transition: all 0.4s;
    background: #114c51;
    z-index: 5;
}

.single-team:hover .team-content {
    height: 150px;
}

.team-info {
    padding: 10px 20px 5px 20px;
    transition: all 0.5s;
}

.single-team:hover .team-content {
    background: #114c51;
}

.single-team .team-content .team-info h3 {
    text-transform: uppercase;
    color: var(--white);
    font-size: 20px;
    margin: 5px;
}
.team-info p {
    margin-top: 0;
    color: var(--white);
}

.single-team-text p {
    margin-top: 5px;
}

.team-text {
    color: var(--white);
    padding: 0 10px 5px;
}

.Experts h2 {
    color: var(--primary_color);
    font-weight: 600;
}

/* Meet Our Experts end */


/*----------------------------------------*/
/*  06 - My References css
/*----------------------------------------*/
.references {
    margin-top: 5%;
}

.references h1 {
    color: var(--primary_color);
    text-align: center;
    font-weight: 600;
}

.references p {
    margin-bottom: 4%;
}

/* My References end */


/*----------------------------------------*/
/*  07 - Patients Reviews start css
/*----------------------------------------*/

.PatientsReviews {
    margin-top: 5%;
}

.PatientsReviewscol {
    padding: 40px;
}

.PatientsReviewscol h2 {
    color: var(--primary_color);
    font-weight: 600;
}

/* swiper slider */
.swiper {
    width: 100%;
    height: 100%;
}

.mySwiper {
    max-width: 800px;
    height: 500px;
}

.swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

.testimonial-item {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    border-left: 20px solid #ccc;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    width: 80%;
    position: relative;
    transition: transform 0.3s ease-in-out, margin-left 0.3s ease-in-out;
}

.swiper-slide-prev .testimonial-item {
    margin-left: 20px;
}

.swiper-slide-next .testimonial-item {
    margin-left: 20px;

}

.swiper-slide-active .testimonial-item {
    /* transform: scale(1.1); */
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
    /* margin-left: 1; */
    width: 80%;
    border-left: 20px solid #9bd6d2;
}

.quote-icon {
    font-size: 50px;
    transform: scaleX(-1);
    color: #9bd6d2;
}

/* Patients Reviews end */

/*----------------------------------------*/
/*  08 - Prices css
/*----------------------------------------*/

.Prices {
    margin-top: 5%;
    background-color: var(--topbg);
    padding: 40px;
}

.pricebox {
    background-color: var(--white);
    height: 100%;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
    border-radius: 20px;
    transition: 0.3s ease-in;
}

.pricebox:hover {
    transform: scale(1.05);
}

.pricebox h2 {
    padding: 20px 0;
    text-align: center;
    color: var(--primary_color);
    font-weight: 600;
    font-size: 28px;
}

.pricetable {
    background-color: var(--primary_color);
    color: var(--white);
    padding: 20px;
    height: 100%;
    border-radius: 0 0 20px 20px;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}

.pricecard {
    display: flex;
    justify-content: space-between;
    font-size: 19px;
    border-bottom: 1px solid #f1f1f13b;
    padding: 10px 0;
}


.priceboxcenter {
    background-color: var(--primary_color);
    height: 100%;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
    border-radius: 20px;
    transition: 0.3s ease-in;
}

.priceboxcenter:hover {
    transform: scale(1.05);
}

.priceboxcenter h2 {
    padding: 20px;
    text-align: center;
    color: var(--white);
    font-weight: 600;
    font-size: 28px;
}

.pricetablecenter {
    background-color: var(--white);
    color: var(--primary_color);
    padding: 20px;
    height: 100%;
    border-radius: 0 0 20px 20px;
}

.pricecardcenter {
    display: flex;
    justify-content: space-between;
    font-size: 18px;
    border-bottom: 1px solid #004f4142;
    padding: 10px 0;
}

/* Prices end */


/*----------------------------------------*/
/*  09 - GetTouch css
/*----------------------------------------*/
.getTouch {
    padding: 40px;
}

.getTouch h2 {
    color: var(--primary_color);
    font-weight: 600;
}

.contactform {
    padding: 60px;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
    border-radius: 20px;
}



.form-control {
    padding: 12px 20px;
    border: 1px solid #d4d3d3;
}

.formBTN {
    border: navajowhite;
    background: var(--primary_color);
    color: var(--white);
    padding: 10px 70px;
    font-size: 20px;
    border-radius: 80px;
}

.contactform .secondarybtn span.btnTitle {
    left: 28%;
}


.contactform .secondarybtn {
    position: relative;
    display: inline-block;
    height: 50px;
    width: 100%;
    line-height: 0;
    padding: 0;
    border-radius: 50px;
    background: var(--topbg);
    border: 2px solid var(--secondary_color);
    transition: .5s;
}

.contactform .secondarybtn:hover span.btnTitle-hover {
    opacity: 1;
    left: 6%;
    color: var(--primary_color);
}

.contactform .secondarybtn:hover span.btnCircle {
    left: 100%;
    margin-left: -45px;
    background-color: var(--primary_color);
    color: var(--white);
}

/* getTouch end */


/*----------------------------------------*/
/*  10 - Footer css
/*----------------------------------------*/
.footer {
    background-color: var(--secondary_color);
    padding: 40px;

}

.footerLogoBox {
    padding: 0 40px;
}

.footer h2 {
    color: var(--primary_color);
    font-weight: 600;
}

.footertel a {
    display: flex;
    gap: 20px;
    text-decoration: none;
    color: black;
    align-items: center;
}

.footertel p {
    font-size: 17px;
}

.footertel i {
    font-size: 15px;
    background: #004f41;
    color: #fff;
    padding: 15px 20px;
    border-radius: 0 20px;
}

.footermail a {
    display: flex;
    gap: 20px;
    text-decoration: none;
    color: black;
    align-items: center;
}

.footermail p {
    font-size: 17px;

}

.footermail i {
    font-size: 16px;
    background: #004f41;
    color: #fff;
    padding: 15px 20px;
    border-radius: 0 20px;
}

.footerlocation a {
    display: flex;
    gap: 20px;
    text-decoration: none;
    color: black;
    align-items: center;
}

.footerlocation p {
    font-size: 17px;

}

.footerlocation i {
    font-size: 18px;
    background: #004f41;
    color: #fff;
    padding: 14px 22px;
    border-radius: 0 20px;
}

.footerlocation i {
    font-size: 18px;
    background: #004f41;
    color: #fff;
    padding: 14px 22px;
    border-radius: 0 20px;
}

.socialicn {
    display: flex;
    gap: 20px;
    font-size: 20px;
    flex-direction: column;
    margin-top: 5%;
}

.socialicn span {
    color: var(--black);
}
.ICN1 {
    border-radius: 50px;
    background-color: var(--primary_color);
    color: var(--white);
    padding: 11px 15px;
}

.ICN2 {
    border-radius: 50px;
    background-color: var(--primary_color);
    color: var(--white);
    padding: 11px 13px;
}

.ICN3 {
    border-radius: 50px;
    background-color: var(--primary_color);
    color: var(--white);
    padding: 11px;
}

/* Footer end */

/*----------------------------------------*/
/*  11 - Back to top css
/*----------------------------------------*/

button.back-to-top {
    margin: 0 !important;
    padding: 0 !important;
    background: var(--primary_color);
    height: 0px;
    width: 0px;
    overflow: hidden;
    border-radius: 50px;
    -webkit-border-radius: 50px;
    -moz-border-radius: 50px;
    color: transparent;
    clear: both;
    visibility: hidden;
    position: fixed;
    cursor: pointer;
    display: block;
    border: none;
    right: 50px;
    bottom: 75px;
    font-size: 0px;
    outline: 0 !important;
    z-index: 99;
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
}

button.back-to-top:hover,
button.back-to-top:active,
button.back-to-top:focus {
    outline: 0 !important;
}

button.back-to-top::before,
button.back-to-top::after {
    content: "";
    display: block;
    /* vertical-align: middle; */
    border-bottom: solid 10px var(--white);
    border-left: solid 10px transparent;
    line-height: 0;
    border-right: solid 10px transparent;
    height: 0;
    margin: 20px auto 0;
    width: 0;
    border-radius: 20px;
    visibility: hidden;
}

button.back-to-top.show::after,
button.back-to-top.show::before {
    visibility: visible;
}

button.back-to-top::after {
    border-bottom-color: var(--white);
    position: relative;
    top: -30px;
}

button.back-to-top.show {
    display: block;
    background: var(--primary_color);
    color: var(--ptextvolor);
    font-size: 25px;
    right: 25px;
    bottom: 50px;
    height: 50px;
    width: 50px;
    visibility: visible;
    box-shadow: 0px 2px 4px 1px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0px 2px 4px 1px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 0px 2px 4px 1px rgba(0, 0, 0, 0.25);
}

button.back-to-top.show:hover {
    background: var(--secondary_color);
    color: var(--primary_color) !important;
}

button.back-to-top.show:active {
    box-shadow: 0px 4px 8px 2px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0px 4px 8px 2px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 0px 4px 8px 2px rgba(0, 0, 0, 0.25);
}

/* back to top end*/

/*----------------------------------------*/
/*  12 - Appoinment Modal css
/*----------------------------------------*/
/* modal */
.passforgot {
    display: flex;
    gap: 45%;
}

.appoinmentMODAL {
    box-shadow: none;
    padding: 12px 10px !important;
    border: none !important;
    background-color: #d7d7d7 !important;
}

.modal-header {
    background-color: var(--primary_color);
    color: var(--white);
}

.btn-close {
    color: var(--white);
}

.DatePicker {
    display: flex;
    position: relative;
    align-items: center;
}

.Calender {
    position: absolute;
    right: 13px;
}

.linkBtn {
    background: #004f41;
    color: #fff;
    padding: 10px 20px;
    border: none;
    width: 100%;
    border-radius: 50px;
}

#appointment .secondarybtn {
    width: 100%;
}

#appointment .secondarybtn span.btnTitle {
    left: 30%;
}

#appointment .secondarybtn:hover span.btnTitle-hover {
    left: 26%;
}
/* Appoinment Modal End */


/*----------------------------------------*/
/*  13 - Preloader css
/*----------------------------------------*/
.preloader-container {
    position: fixed; /* Stay fixed to the viewport */
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    z-index: 9999;
    overflow: hidden;
    opacity: 1; /* Fully visible initially */
    transition: opacity 0.5s ease, transform 0.5s ease; /* Smooth fade and optional slide */
  }
  
  .preloader-svg path {
    fill: none;
    stroke: var(--primary_color);
    stroke-width: 5;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: loadFill 3s linear forwards;
  }
  
  @keyframes loadFill {
    0% {
      stroke-dashoffset: 1000;
      fill: none;
    }
    100% {
      stroke-dashoffset: 0;
      fill: var(--primary_color);
    }
  }
  
  .percentage {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    margin-top: 10px;
    opacity: 0;
    animation: showText 3s linear forwards;
  }
  
  @keyframes showText {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  
  .hidden {
    opacity: 0;
    pointer-events: none; 
  }

  body.preloader-active {
    overflow: hidden;
    height: 100vh; 
  }
  .preloader-container.closing {
    opacity: 0; 
    transform: translateY(-20px); 
    pointer-events: none;
  }
  /* Preloader End */