@font-face {
  font-family: "Roboto Slab";
  src: url("../fonts/RobotoSlab-Regular.ttf");
}

@font-face {
  font-family: "Roboto Slab - Bold";
  src: url("../fonts/RobotoSlab-Bold.ttf");
}

* {
  box-sizing: border-box;
  margin: 0;
}

h1 {
  font-family: "Roboto Slab", serif;
  font-size: 37px;
  margin: 1em 0;
}

h2 {
  font-family: "Roboto Slab", serif;
  font-size: 33px;
  margin-bottom: 0.5em;
}

h3 {
  font-family: "Roboto Slab - Bold", serif;
  font-size: 22px;
  margin: 0.5em;
}

h4 {
  font-family: "Roboto Slab", serif;
  font-size: 20px;
  margin-bottom: 0.5em;
}

p {
  font-family: "Roboto Slab", serif;
  font-size: 18px;
  padding-bottom: 1em;
  color: #aeb7b8;
}

ul {
  font-family: "Roboto Slab", serif;
  font-size: 21px;
  margin-bottom: 1em;
}

#top-section .first-row,
#slogan,
.image-text-row,
#our-philosophy,
.text-image-row,
#services-group,
#resources,
#contact,
#call-to-action,
footer .container {
  max-width: 1440px;
  margin: 0 auto;
}

#top-section {
  background-color: #f7f5ed;
  padding: 0 2em;
}

#logo {
  width: fit-content;
  width: -moz-fit-content;
  width: -webkit-fit-content;
}

#logo img {
  width: 100%;
  max-width: 300px;
}

#menu {
  color: #40b8cc;
  padding-left: 0;
  display: none;
}

#menu li {
  list-style: none;
  margin: 0.5em 0;
}

#menu a,
#desktop-menu a {
  text-decoration: none;
  color: inherit;
}

#menu a:hover,
#desktop-menu a:hover {
  color: #5f5135;
}

#hamburger-icon {
  width: 30px;
  margin: 10px;
  display: block;
}

#desktop-menu {
  display: none;
  color: #40b8cc;
  padding-left: 0;
}

#desktop-menu li {
  list-style: none;
  margin-left: 3em;
}

#top-section .first-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#top-section h1 {
  color: #b24c00;
  text-align: center;
}

#top-section .decoration {
  display: flex;
  justify-content: center;
  margin-bottom: 30px;
}

#top-section .decoration img {
  position: relative;
  top: 30px;
}

#top-section p {
  color: #5f5135;
}

#about-kimberley {
  margin: 4em;
}

.image-text-row {
  display: flex;
  flex-wrap: wrap;
}

.image-text-row .image {
  margin-bottom: 2em;
}

.text-image-row {
  display: flex;
  margin-top: 3em;
  margin-bottom: 3em;
  align-items: center;
  flex-wrap: wrap;
  padding: 2em;
  flex-direction: column;
}

.text-image-row > * {
  flex: 1;
}

.text-image-row .image {
  margin-left: 0;
  margin-top: 2em;
  max-width: 100%;
}

.text-image-row .image img {
  width: 100%;
}

.underline {
  height: 4px;
  background-image: url("../img/dash.png");
  background-repeat: repeat-x;
  margin-bottom: 1.5em;
}

.dash {
  background-image: url("../img/dash.png");
  background-repeat: repeat-x;
  height: 10px;
  width: 100%;
}

#philosophy-blocks {
  display: flex;
  flex-direction: column;
}

#our-philosophy {
  padding: 1em;
}

#our-philosophy .first-row {
  display: flex;
  justify-content: flex-end;
}

#our-philosophy .first-row .decoration {
  margin-right: 1em;
}

#our-philosophy h2 {
  text-align: right;
  color: #aeb7b8;
  font-size: 40px;
}

.philosophy-block {
  padding: 2em;
  border-radius: 50px;
}

.philosophy-block:first-of-type {
  background-color: #f7f5ed;
}

.left-border {
  border-left: 5px solid #40b8cc;
  padding-left: 1em;
}

.btn {
  color: #40b8cc;
  border: #40b8cc solid 3px;
  border-radius: 32px;
  width: fit-content;
  width: -moz-fit-content;
  width: -webkit-fit-content;
}

.btn a {
  font-family: "Roboto Slab", serif;
  font-size: 20px;
  text-decoration: none;
  color: inherit;
}

.btn a p {
  padding: 1em;
  color: inherit;
}

.btn:hover {
  background-color: #40b8cc;
  color: white;
}

button {
  color: #40b8cc;
  border: #40b8cc solid 3px;
  border-radius: 32px;
  width: fit-content;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  background-color: white;
  padding: 1em;
  min-width: 200px;
  cursor: pointer;
}

button:hover {
  background-color: #40b8cc;
  color: white;
}

button:disabled {
  background-color: #9b9b9b;
  border: 1px solid #9b9b9b;
  cursor: not-allowed;
  color: dimgrey;
}

blockquote {
  margin-bottom: 1em;
}

blockquote .cms-content > p:last-of-type {
  padding-bottom: 0;
}

#services-group h2 {
  text-align: center;
}

#services {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.service {
  margin: 1em;
  width: 345px;
  max-width: 100%;
  border: #addbd9 solid 3px;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2em;
  align-items: center;
}

.service img {
  width: 100px;
}

#resources {
  padding: 2em 2em;
}

#resources .first-row {
  display: flex;
  align-items: center;
}

#resources h2 {
  padding: 0.5em;
  color: #b24c00;
}

#contact {
  padding: 2em;
}

#contact .first-row {
  display: flex;
  align-items: center;
}

#contact h2 {
  color: #b24c00;
  white-space: nowrap;
}

#contact .decoration {
  margin-left: 2em;
  margin-right: 1em;
}

#contact .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

form {
  display: flex;
  flex-direction: column;
  flex: 10;
  margin-top: 1.5em;
}

form > * {
  font-family: "Roboto Slab", serif;
  font-size: 18px;
}

label {
  color: #5d6263;
}

input,
textarea {
  border: none;
  border-bottom: #979797 1px solid;
  padding: 0.5em;
  margin-bottom: 1em;
  color: black;
}

#contact .image {
  max-width: 500px;
  display: none;
  margin-left: 3em;
}

#contact-form .spam input {
  margin: 10px 0;
  width: 40px;
}

#contact button {
  margin-top: 2em;
}

#call-to-action {
  background-color: #f7f5ed;
  border: #addbd9 solid 3px;
  border-radius: 22px;
  padding: 2em 3em;
  position: relative;
  top: 2em;
  margin-left: 2em;
  margin-right: 2em;
}

#call-to-action .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
}

#call-to-action .btn {
  background-color: #40b8cc;
  color: white;
}

#call-to-action .btn:hover {
  background-color: #addbd9;
}

footer {
  background-color: #addbd9;
  padding: 4em 4em 1em;
}

footer .first-row,
footer .last-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: column;
}

footer .image {
  flex: 1;
  max-width: 340px;
}

footer .image img {
  width: 100%;
}

footer #information {
  flex: 2;
}

footer p {
  color: white;
}

footer .last-row {
  padding-top: 1em;
  border-top: #f7f5ed 1px solid;
}

footer a {
  color: white;
  word-break: break-word;
}

footer a:hover {
  color: #5f5135;
}

@media only screen and (min-width: 572px) {
  h1 {
    font-size: 50px;
  }

  #resources {
    padding: 2em 4em;
  }

  #contact {
    padding: 4em;
  }

  #contact .decoration {
    margin-left: 4em;
    margin-right: 2em;
  }

  footer .last-row {
    flex-direction: row;
  }

  footer {
    overflow-x: unset;
  }
}

@media only screen and (min-width: 900px) {
  #hamburger-icon {
    display: none;
  }

  #menu {
    display: none !important;
  }

  #desktop-menu {
    display: flex;
    justify-content: flex-end;
    flex: 5;
  }

  .image-text-row {
    flex-wrap: nowrap;
  }

  .image-text-row .image {
    margin-bottom: 0;
    margin-right: 2em;
    align-items: flex-start;
  }

  .text-image-row {
    flex-direction: row;
  }

  .text-image-row .image {
    margin-left: 2em;
    margin-top: 0;
  }

  #our-philosophy h2 {
    font-size: 80px;
  }

  #philosophy-blocks {
    flex-direction: row;
  }

  .philosophy-block:last-of-type {
    margin-top: 3em;
  }

  .resource {
    display: flex;
    justify-content: flex-start;
  }

  .resource h3 {
    flex-basis: 30%;
    margin: 0 0.5em;
  }

  #contact .image {
    display: block;
  }

  #call-to-action .container {
    flex-direction: row;
  }

  footer .first-row {
    flex-direction: row;
  }

  footer #information {
    margin-left: 3em;
  }
}

@media only screen and (min-width: 1440px) {
  #call-to-action {
    margin: 0 auto;
  }
}
