@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap");
/* ----------------- GLOBAL STYLES ----------------- */
:root {
  --text-sm: 1.2rem;
  --text-base: 1.4rem;
  --text-paragraph: 2rem;
  --text-h5: 2.2rem;
  --text-h4: 2.8rem;
  --text-h3: 3.6rem;
  --text-h2: 4.4rem;
  --text-h1: 6rem;

  /* FONT WEIGHT */
  --font-weight-normal: 400;
  --font-weight-bold: 700;
  --font-weight-xtrbold: 900;

  /* LINE HEIGHT */
  --line-height-tight: 1.2;
  --line-height-normal: 1.5;

  /* LETTER SPACING */
  --letter-spacing-tight: -2px;

  /* FONT FAMILY */
  --font-family-lato: "Lato", sans-serif;
  --font-family-playfair: "Playfair Display", serif;

  /* COLORS */
  --primary-base: #3281c4;
  --primary-tint: #7db1de;
  --primary-shade: #1d4a72;
  --secondary-base: #bc4b51;
  --secondary-tint: #d8979a;
  --secondary-shade: #772c30;
  --grey-base: #495057;
  --grey-tint: #f1f3f5;
  --grey-shade: #212529;
  --white: #ffffff;
  --black: #000000;

  /* OTHER */
  --nav-height: 10vh;
  --section-spacing: 5rem;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%;
}

body {
  font-family: var(--font-family-lato);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  color: var(--primary-base);
  background-color: var(--grey-tint);
}

.container {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 1rem;
}

h1,
h2,
h3,
h4,
h5 {
  font-family: var(--font-family-playfair);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
}

h1 {
  font-size: var(--text-h1);
}

h2 {
  font-size: var(--text-h2);
}

h3 {
  font-size: var(--text-h3);
}

h4 {
  font-size: var(--text-h4);
}

h5 {
  font-size: var(--text-h5);
}

p {
  font-size: var(--text-paragraph);
}

a {
  text-decoration: none;
  font-size: var(--text-base);
  display: inline-block;
}

ul {
  list-style: none;
}

.small-text {
  font-size: var(--text-sm);
}

.flex-div {
  display: flex;
}

.header-container {
  height: var(--nav-height);
}

/* -------------------- COMPONENTS -------------------- */
/* Back to the top button */
#back-to-top {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 10;
  width: 50px;
  height: 50px;
  background-color: white;
  color: var(--secondary-base);
  cursor: pointer;
  outline: none;
  border: 3px solid var(--secondary-base);
  border-radius: 50%;
  transition-duration: 0.2s;
  transition-timing-function: ease-in-out;
  transition-property: background-color, color;
  -moz-transition-property: background-color, color;
}

#back-to-top:link,
#back-to-top:visited {
  background-color: var(--primary-shade);
  color: var(--white);
  border-color: var(--primary-shade);
}

#back-to-top:hover,
#back-to-top:active {
  background-color: var(--secondary-shade);
  color: var(--white);
  border-color: var(--secondary-shade);
}
/* Back to the top button */

.btn {
  padding: 1rem 2rem;
  border-radius: 5px;
  font-size: var(--text-base);
  cursor: pointer;
  transition: all 0.15s ease-in-out;
}

.btn-primary:link,
.btn-primary:visited {
  color: var(--white);
  background-color: var(--primary-base);
  border: 2px solid var(--primary-base);
}

.btn-primary:hover,
.btn-primary:active {
  color: var(--white);
  background-color: var(--primary-shade);
  border: 2px solid var(--primary-shade);
}

.btn-secondary:link,
.btn-secondary:visited {
  color: var(--white);
  background-color: var(--secondary-base);
  border: 2px solid var(--secondary-base);
}

.btn-secondary:hover,
.btn-secondary:active {
  color: var(--white);
  background-color: var(--secondary-shade);
  border: 2px solid var(--secondary-shade);
}

.logo-lrg {
  width: 20rem;
}

.logo-md {
  width: 10rem;
}

.logo-sm {
  width: 0.8rem;
}

/* ------------------------- HOMEPAGE ------------------------- */

/* -------------------- SECTIONS -------------------- */
/* ---------- NAV ---------- */

.header-container {
  padding: 1rem;
  justify-content: space-between;
  align-items: center;
}

.nav_links {
  /* justify-content: space-around;
  width: 100%; */
  align-items: center;
  gap: 1rem;
  position: relative;
  z-index: 10;
}

.nav-item {
  padding: 15px 40px;
  border: 2px solid var(--grey-tint);
  border-radius: 4px;
  transition: all 80ms ease-in-out;
}

.nav-item:link,
.nav-item:visited {
  color: var(--primary-base);
}

.nav-item:hover,
.nav-item:active {
  color: var(--primary-shade);
  border: 2px solid var(--primary-shade);
}

.nav-item.active {
  background-color: var(--primary-base);
  color: var(--white);
  border: 2px solid var(--primary-base);
}

.burger {
  display: none;
  cursor: pointer;
}

.burger div {
  width: 25px;
  height: 3px;
  background-color: #3281c4;
  margin: 5px;
  transition: all 0.3s ease;
}

/* ---------- HEADER SECTION ---------- */
.homepage-header {
  margin-bottom: var(--section-spacing);
}

.hero-pic {
  background: url(img/8.jpg) 90% 50% / cover no-repeat;
  height: calc(100vh - var(--nav-height));
  min-height: 400px;
  padding: 5rem;
  justify-content: flex-start;
  align-items: center;
}

.hero-pic-text {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: 50%;
}

.hero-pic-text p {
  margin-bottom: 2rem;
  color: var(--white);
  font-weight: var(--font-weight-xtrbold);
  font-size: var(--text-h1);
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
}

/* ---------- HOMEPAGE WELCOME SECTION ---------- */

.welcome {
  justify-content: space-between;
  gap: 2rem;
  height: 50rem;
  margin-bottom: var(--section-spacing);
}
.welcome-text {
  width: 50%;
  height: inherit;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 4rem;
  background-color: var(--white);
  border-radius: 6px;
}

.welcome img {
  width: 50%;
  height: inherit;
  border-radius: 6px;
}

.welcome h2 {
  margin-bottom: 2rem;
  color: var(--primary-tint);
}

/* ---------- HOMEPAGE SERVICES SECTION ---------- */

.homepage-services {
  padding: 5rem 2rem;
  flex-direction: column;
  align-items: center;
  margin-bottom: 15rem;
  background-color: var(--primary-tint);
  color: var(--primary-shade);
  border-radius: 8px;
}

.homepage-services h1 {
  margin-bottom: 5rem;
  text-align: center;
  color: var(--white);
}
.quarter {
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

.quarter-item {
  padding: 1rem;
  width: 22%;
  min-width: 215px;
}

.card {
  background-color: var(--white);
  border-radius: 8px;
}

.services-image-container {
  flex-direction: column;
  align-items: center;
}
.services-image-container img {
  height: 15rem;
  width: 90%;
  object-fit: cover;
  margin-bottom: 2rem;
  border-radius: 4px;
}

.services-image-container h3 {
  margin-bottom: 1rem;
}

.services-image-container p {
  margin-bottom: 2rem;
}

/* ---------- HOMEPAGE WHY SECTION ---------- */
.why {
  background-color: var(--primary-shade);
  color: var(--white);
  position: relative;
  padding: 5rem;
  margin-bottom: var(--section-spacing);
  border-radius: 8px;
}

.why-text {
  width: 50%;
  padding: 1rem;
  flex-direction: column;
}

.why-text h2,
.why-text p {
  margin-bottom: 2rem;
}

.why ul {
  font-size: var(--text-paragraph);
}

.why-text div {
  align-items: baseline;
}

.why .fa-tooth {
  color: var(--secondary-base);
}

.why-image {
  position: absolute;
  width: 50rem;
  height: 50rem;
  right: 5rem;
  bottom: 5rem;
  object-fit: cover;
  border-radius: 8px;
}

/* ---------- HOMEPAGE APPOINTMENT SECTION ---------- */
.appointment {
  margin-bottom: var(--section-spacing);
  padding: 1rem;
}

.appointment img {
  border-radius: 4px;
}

.appointment h1,
.appointment a {
  text-align: center;
}

.appointment h1 {
  margin-bottom: 5rem;
  color: var(--primary-tint);
}

.appointment a {
  width: 50%;
}

.appointment-container {
  padding: 5rem;
  justify-content: space-around;
  align-items: center;
}

.appointment-container-flex-item {
  width: 40%;
}

.appointment-text {
  flex-direction: column;
  align-items: center;
}

.appointment-text p {
  margin-bottom: 2rem;
}

/* ---------- FOOTER SECTION ---------- */
.footer {
  flex-direction: column;
  padding: 2rem;
  background-color: var(--primary-shade);
}

.footer p,
.footer li,
.footer a,
.footer h5 {
  color: var(--primary-tint);
}

.footer li,
.footer a {
  font-size: var(--text-base);
}

.footer h5 {
  margin-bottom: 1rem;
}

.footer .footer-flex-item.one {
  justify-content: space-between;
  align-items: center;
}

.footer-container {
  gap: 1rem;
  flex-wrap: wrap;
}

.footer-container > div {
  min-width: 130px;
}

.footer p {
  text-align: center;
  margin-top: 2rem;
}

/* ------------------------- ABOUT US PAGE ------------------------- */

/* -------------------- SECTIONS -------------------- */
/* ---------- HERO SECTION ---------- */

.hero-pic-half {
  height: 50vh;
  min-height: 200px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-bottom: var(--section-spacing);
}

.hero-about {
  background: url(img/2.jpg) 90% 50% / cover no-repeat;
}

.hero-heading {
  color: var(--white);
  font-weight: var(--font-weight-xtrbold);
  font-size: var(--text-h1);
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
  margin-bottom: 2rem;
}

.hero-pic-quote {
  width: 40%;
  font-size: var(--text-paragraph);
  font-weight: var(--font-weight-xtrbold);
  line-height: var(--line-height-tight);
  color: var(--white);
  text-transform: uppercase;
}

.community-work {
  position: relative;
  padding: 5rem;
  background-color: var(--primary-shade);
  color: var(--white);
  margin-top: 10rem;
  margin-bottom: var(--section-spacing);
  border-radius: 8px;
}

.community-work h5 {
  margin-bottom: 2rem;
}

.community-work p {
  width: 50%;
}

.community-work img {
  width: 40%;
  height: 320px;
  position: absolute;
  right: 5rem;
  bottom: 5rem;
  object-fit: cover;
  object-position: 80% 90%;
  border-radius: 5px;
}

.profile {
  margin-bottom: var(--section-spacing);
  padding: 5rem;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
  background-color: var(--white);
  border-radius: 8px;
}

.profile-container {
  flex-direction: column;
}

.profile-inner-container {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.profile h1 {
  margin-bottom: 5rem;
  text-align: center;
  color: var(--primary-tint);
}

.accolades {
  flex-direction: column;
  width: 55%;
}

.accolades ul {
  font-size: var(--text-paragraph);
}

.accolades .fa-tooth {
  font-size: var(--text-paragraph);
  color: var(--primary-tint);
}

.accolades div {
  justify-content: flex-start;
  align-items: baseline;
  padding: 0.5rem;
}

.profile h5 {
  margin-bottom: 2rem;
  color: var(--primary-tint);
}

.profile-image {
  height: 35rem;
  width: 40%;
  border-radius: 8px;
  object-fit: cover;
}

.about-text {
  margin-right: 5rem;
}

.medical {
  background-color: var(--primary-base);
  color: var(--white);
}

.medical-text {
  flex-direction: column;
  align-items: center;
  padding: 5rem;
}

.medical-text h2 {
  margin-bottom: 2rem;
  text-align: center;
}
/* ------------------------- SERVICES PAGE ------------------------- */
/* ---------- HERO SECTION ---------- */

.hero-services {
  background: url(img/6.jpg) 90% 50% / cover no-repeat;
}

/* ---------- SERVICES SECTION ---------- */

.services {
  margin-bottom: var(--section-spacing);
}

.services-articles {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5rem;
}

.services-content {
  padding: 5rem 2rem;
  gap: 8rem;
  justify-content: center;
  align-items: center;
  background-color: var(--white);
  border-radius: 8px;
}

.services-text {
  width: 40%;
  flex-direction: column;
  justify-content: center;
}
.services h5 {
  margin-bottom: 2rem;
  color: var(--primary-tint);
}

.services-image {
  width: 40rem;
  height: 30rem;
  object-fit: cover;
  border-radius: 8px;
}

.services-cleaning-image.services-image {
  object-position: 50% 90%;
}
/* ------------------------- CONTACTS PAGE ------------------------- */
/* ---------- HERO SECTION ---------- */

.hero-contacts {
  background: url(img/5.jpg) 90% 50% / cover no-repeat;
}

.contact-header {
  margin-bottom: 5rem;
}

form label,
.location {
  font-size: var(--text-base);
}
/* ---------- FORM SECTION ---------- */
#main_contact .inner_wrapper {
  margin: 100px auto;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

#main_contact_inner {
  width: 50%;
}

#main_contact #main_contact_form form {
  margin-bottom: 50px;
  width: 100%;
}

.errMsg {
  display: none;
  margin-bottom: 10px;
  color: red;
}

#main_contact #contact_wrapper {
  margin: 50px 0;
}

fieldset {
  border: none;
}

#main_contact #main_contact_form form .form_control {
  padding-bottom: 10px;
  margin-bottom: 10px;
  position: relative;
}

.form_control label {
  display: inline-block;
  margin-bottom: 5px;
}

#main_contact #main_contact_form form .form_control input,
#main_contact #main_contact_form form .form_control textarea {
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  display: block;
  font-family: inherit;
  border: 1px solid rgb(179, 179, 179);
  border-radius: 5px;
  color: rgb(134, 134, 134);
}

#main_contact #main_contact_form form .form_control i {
  position: absolute;
  top: 45px;
  right: 10px;
  visibility: hidden;
}

#main_contact #main_contact_form form .form_control small {
  position: absolute;
  bottom: 0px;
  left: 0px;
  visibility: hidden;
}

address {
  font-style: normal;
}

.fa_icon::before,
.fa-tooth::before {
  display: inline-block;
  margin-right: 15px;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}

#main_contact #contact_wrapper a {
  color: var(--charcoal);
}
.phone::before {
  content: "\f095";
}

.email::before {
  content: "\f0e0";
}

.location::before {
  content: "\f3c5";
}

/* Animations */
.btnEntrance {
  animation-duration: 0.5s;
  animation-fill-mode: both;
  animation-name: btnEntrance;
}
/* zoomIn*/
@keyframes btnEntrance {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 1;
  }
}

.btnExit {
  animation-duration: 0.25s;
  animation-fill-mode: both;
  animation-name: btnExit;
}
/* zoomOut */
@keyframes btnExit {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

/* nav animation */
@keyframes navLinkFade {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0px);
  }
}

.toggle .line1 {
  transform: rotate(-45deg) translate(-5px, 6px);
}
.toggle .line2 {
  opacity: 0;
}
.toggle .line3 {
  transform: rotate(45deg) translate(-5px, -6px);
}

@media screen and (max-width: 68.75em) {
  /* 1100px */

  /* ---------------- WELCOME ---------------- */

  .welcome-text {
    width: 60%;
  }

  .welcome img {
    width: 40%;
  }
  /* ---------------- HOMEPAGE ---------------- */
  .why-text {
    width: 45%;
  }

  .why-image {
    width: 50rem;
    height: 60rem;
    right: 4rem;
    bottom: 5rem;
  }

  /* ---------------- ABOUT PAGE ---------------- */

  .community-work img {
    height: 350px;
  }
}

@media screen and (max-width: 61.5625em) {
  /* 985px */
  html {
    font-size: 58%;
  }

  .quarter {
    justify-content: center;
    row-gap: 5rem;
    column-gap: 2rem;
  }
  .quarter-item {
    width: 40%;
  }

  .why-image {
    width: 45rem;
  }
}

@media screen and (max-width: 52.8125em) {
  /* 845px */
  .why-image {
    right: 1rem;
  }
}
@media screen and (max-width: 48em) {
  /* 768px */

  /* ---------- GLOBAL SETTINGS ---------- */
  html,
  body {
    overflow-x: hidden;
    position: absolute;
    width: 100%;
    font-size: 55%;
  }

  #logo img {
    width: 80%;
  }

  nav {
    width: 100%;
    margin: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }

  .nav_links {
    position: absolute;
    z-index: 20;
    right: 0px;
    height: calc(100vh - var(--nav-height));
    top: var(--nav-height);
    background-color: var(--white);
    opacity: 0.95;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    transform: translateX(100%);
    transition: transform 0.5s ease-in;
  }
  .nav_links li {
    opacity: 0;
    width: 100%;
    text-align: center;
  }
  .nav_links a {
    padding: 15% 30%;
    color: #3281c4;
  }

  .nav_links li.active a {
    background: none;
    color: #01295f;
    font-weight: 800;
  }

  .burger {
    display: block;
    margin: 0;
    padding: 5px 20px;
  }

  .homepage-services {
    margin-bottom: var(--section-spacing);
  }

  .hero-pic-text {
    width: 100%;
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  /* ---------- WELCOME SECTION ---------- */

  .welcome {
    height: auto;
  }

  .welcome-text {
    width: 100%;
  }

  .welcome img {
    display: none;
  }

  /* ---------- WHY SECTION ---------- */

  .why-container {
    flex-direction: column-reverse;
  }
  .why-image {
    margin: 0 auto 5rem;
    width: 100%;
    height: 50rem;
    position: relative;
    right: 0;
    top: 0;
  }

  .why-text.flex-div {
    width: 100%;
    padding: 0;
    margin: 0;
  }

  .why-text li {
    margin-bottom: 5px;
  }

  /* ---------- APPOINTMENT SECTION ---------- */
  .appointment-container {
    flex-direction: column;
  }

  .appointment-container-flex-item {
    width: 100%;
  }

  .appointment-text {
    margin-top: 2rem;
  }

  .appointment h1 {
    margin-bottom: 0;
  }

  .appointment a {
    width: 30%;
  }

  .footer-container {
    width: 100%;
    justify-content: space-around;
  }

  /* ---------- FOOTER SECTION ---------- */
  .footer img {
    display: none;
  }

  /* ---------------- ABOUT PAGE ---------------- */
  .community-work {
    margin-top: 15rem;
  }

  .community-work img {
    inset: -35rem 0 0 0;
    margin: auto;
    width: 80%;
  }

  .community-work-text {
    padding-top: 35rem;
  }

  .community-work p {
    width: 100%;
  }

  .profile-inner-container {
    flex-direction: column-reverse;
  }

  .accolades,
  .profile-image {
    width: 100%;
  }

  .profile-image {
    margin-bottom: 2rem;
  }

  .about-text,
  #medical_text.container {
    margin: 0 auto;
    width: 100%;
    padding: 1em 2em;
    text-align: justify;
  }

  .about-text h1 {
    margin: 5px;
    text-align: center;
  }

  .medical {
    padding: 2em 0;
  }

  #main_contact .inner_wrapper {
    margin: 0 auto;
  }

  /* ---------------- SERVICES PAGE ---------------- */

  .services-text {
    width: 60%;
  }

  .services-image {
    width: 45rem;
    height: 35rem;
  }

  .services-content {
    gap: 5rem;
  }

  /* ---------------- CONTACT PAGE ---------------- */
  #main_contact h2 {
    margin: 0 auto;
    padding: 1em;
  }
  #main_contact_inner {
    margin: 0 auto;
    width: 80%;
    padding: 1em;
  }
}

@media screen and (max-width: 37.5em) {
  /* 600px */

  html {
    font-size: 50%;
  }

  .homepage-services,
  .why,
  .appointment {
    /* margin-bottom: calc(var(--section-spacing) - 50px); */
    margin-bottom: var(--section-spacing);
  }

  .why {
    padding: 0;
  }

  .why-text.flex-div {
    padding: 0 2rem 2rem 2rem;
  }

  /* ---------------- ABOUT PAGE ---------------- */

  .community-work-text {
    padding-top: 35rem;
  }

  .hero-pic-quote {
    width: 70%;
  }

  .profile {
    padding: 1rem 3rem;
  }

  /* ---------------- SERVICES PAGE ---------------- */
  .left {
    flex-direction: column-reverse;
  }

  .right {
    flex-direction: column;
  }

  .services-text {
    width: 90%;
  }

  .services-image {
    width: 90%;
  }

  /* ---------------- CONTACT PAGE ---------------- */

  #main_contact h2 {
    padding: 2rem;
    margin-bottom: 1rem;
  }

  #main_contact_inner {
    width: 90%;
    padding: 2em;
  }
}

@media screen and (max-width: 31.25em) {
  /* 500px */

  html {
    font-size: 48%;
  }

  .hero-pic {
    padding: 2rem;
  }

  .quarter-item {
    width: 90%;
  }

  .appointment-container {
    padding: 2rem;
  }

  .appointment a {
    width: 50%;
  }

  /* ---------------- ABOUT PAGE ---------------- */

  .community-work {
    padding: 3rem;
  }

  .community-work img {
    inset: -40rem 0 0 0;
    width: 90%;
  }

  .community-work-text {
    padding-top: 35rem;
  }

  .medical-text {
    padding: 3rem;
  }
}

@media screen and (max-width: 25em) {
  /* 400px */
  /* ---------- ABOUT SECTION ---------- */
  .community-work img {
    inset: -45rem 0 0 0;
  }
}

.nav-active {
  transform: translateX(0%);
}
