@font-face {
  font-display: swap;
  font-style: normal;
  font-family: 'ClearGothic';
  font-weight: 700;
  src: url("../fonts/CleargothicBold.woff2") format("woff2"); }

:root {
  --header-font: "ClearGothic", sans-serif;
  --bread-font: "Inter", sans-serif;
  --highlight-color: #598C74;
  --background-color: #FFFFFF;
  --blue-color: #C7CADB;
  --text-color: #333333;
  --text-shadow: 0px 0px 8px rgba(0, 0, 0, 0.25); }

* {
  box-sizing: border-box; }

body, html {
  background-color: var(--background-color);
  margin: 0;
  padding: 0; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--header-font);
  color: var(--text-color); }

p, ol, ul, a {
  font-family: var(--bread-font);
  color: var(--text-color); }

.main-nav {
  width: 100%;
  position: fixed;
  z-index: 10000;
  top: 0;
  background-color: var(--highlight-color); }
  .main-nav .nav-container {
    max-width: 900px;
    margin: auto; }
    .main-nav .nav-container .logo {
      height: 5rem;
      display: inline-block; }
      .main-nav .nav-container .logo svg {
        height: 100%;
        padding: 0.5rem; }
      .main-nav .nav-container .logo:hover {
        opacity: 0.7; }
    .main-nav .nav-container .side-menu {
      display: none; }
      .main-nav .nav-container .side-menu:checked ~ nav {
        grid-template-rows: 1fr; }
      .main-nav .nav-container .side-menu:checked ~ .hamburger .hamburger-line {
        background: transparent; }
      .main-nav .nav-container .side-menu:checked ~ .hamburger .hamburger-line::before {
        transform: rotate(-45deg);
        top: 0; }
      .main-nav .nav-container .side-menu:checked ~ .hamburger .hamburger-line::after {
        transform: rotate(45deg);
        top: 0; }
    .main-nav .nav-container .nav {
      width: 100%;
      /* weird grid magic to ensure smooth transitions */
      display: grid;
      overflow: auto;
      max-height: calc(100vh - 6rem);
      grid-template-rows: 0fr;
      grid-template-columns: 1fr;
      transition: grid-template-rows 0.1s cubic-bezier(0.5, 1, 0.5, 1); }
      .main-nav .nav-container .nav .menu {
        list-style: none;
        margin: 0;
        padding: 0;
        overflow-y: auto; }
        .main-nav .nav-container .nav .menu li {
          border-bottom: 1px solid var(--background-color); }
          .main-nav .nav-container .nav .menu li:first-of-type {
            border-top: 1px solid var(--background-color); }
          .main-nav .nav-container .nav .menu li .nested-menu {
            display: block;
            list-style: none;
            padding: 0; }
            .main-nav .nav-container .nav .menu li .nested-menu li a {
              padding-left: 4rem; }
            .main-nav .nav-container .nav .menu li .nested-menu li:last-of-type {
              border-bottom: 0; }
        .main-nav .nav-container .nav .menu a, .main-nav .nav-container .nav .menu p {
          padding: 1.15rem 2rem;
          display: flex;
          font-family: var(--header-font);
          font-weight: 700;
          font-size: 1.1rem;
          text-decoration: none;
          color: var(--background-color);
          text-shadow: var(--text-shadow); }
          .main-nav .nav-container .nav .menu a.active, .main-nav .nav-container .nav .menu p.active {
            color: var(--highlight-color);
            background-color: var(--background-color);
            text-shadow: none; }
          .main-nav .nav-container .nav .menu a:hover, .main-nav .nav-container .nav .menu p:hover {
            opacity: 0.7; }
          .main-nav .nav-container .nav .menu a .menu-title, .main-nav .nav-container .nav .menu p .menu-title {
            flex-grow: 1; }
            .main-nav .nav-container .nav .menu a .menu-title svg, .main-nav .nav-container .nav .menu p .menu-title svg {
              display: none; }
          .main-nav .nav-container .nav .menu a .menu-subtitle, .main-nav .nav-container .nav .menu p .menu-subtitle {
            font-size: 1rem;
            font-weight: 400;
            align-self: center; }

/* Menu Icon */
.hamburger {
  cursor: pointer;
  display: flex;
  float: right;
  padding: 2.5rem 1rem; }
  .hamburger:hover .hamburger-line {
    background-color: var(--background-color); }
    .hamburger:hover .hamburger-line::before, .hamburger:hover .hamburger-line::after {
      background-color: var(--background-color); }
  .hamburger .hamburger-line {
    background-color: var(--background-color);
    display: block;
    height: 2px;
    position: relative;
    width: 1.5rem; }
    .hamburger .hamburger-line::before, .hamburger .hamburger-line::after {
      background-color: var(--background-color);
      content: '';
      display: block;
      height: 100%;
      position: absolute;
      transition: transform .1s ease-out, top .1s ease-out;
      width: 100%; }
    .hamburger .hamburger-line::before {
      top: 0.5rem; }
    .hamburger .hamburger-line::after {
      top: -0.5rem; }

@media (min-width: 768px) {
  .main-nav {
    height: 5rem; }
    .main-nav .nav-container {
      display: flex;
      flex-grow: 1; }
      .main-nav .nav-container .logo {
        display: block;
        height: calc(5rem - 1.5rem);
        padding: 0.75rem; }
        .main-nav .nav-container .logo svg {
          height: calc(5rem - 1.5rem);
          padding: 0; }
      .main-nav .nav-container .nav {
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        padding: 0 0.75rem 0 0; }
        .main-nav .nav-container .nav .menu {
          overflow: visible;
          display: flex;
          align-items: center; }
          .main-nav .nav-container .nav .menu > li.menu-item a {
            height: 5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem; }
            .main-nav .nav-container .nav .menu > li.menu-item a .menu-title svg {
              display: inline;
              width: 1rem;
              padding-left: 0.25rem; }
              .main-nav .nav-container .nav .menu > li.menu-item a .menu-title svg path {
                fill: var(--cheery-color); }
              .main-nav .nav-container .nav .menu > li.menu-item a .menu-title svg.highlighted path {
                fill: var(--background-color); }
          .main-nav .nav-container .nav .menu .menu-item {
            display: inline-block;
            white-space: nowrap;
            border: none; }
            .main-nav .nav-container .nav .menu .menu-item .nested-menu {
              display: none; }
            .main-nav .nav-container .nav .menu .menu-item:hover .nested-menu {
              z-index: 1000;
              position: absolute;
              display: block;
              padding: 0;
              border-radius: 0 0 1rem 1rem;
              background-color: var(--cheery-color);
              top: 4.95rem; }
              .main-nav .nav-container .nav .menu .menu-item:hover .nested-menu .menu-item {
                display: flex;
                padding: 0; }
                .main-nav .nav-container .nav .menu .menu-item:hover .nested-menu .menu-item a {
                  height: 3rem;
                  padding: 0 1rem;
                  color: var(--background-color);
                  font-size: 1rem;
                  flex-grow: 1; }
                .main-nav .nav-container .nav .menu .menu-item:hover .nested-menu .menu-item:last-of-type a {
                  border-radius: 0 0 1rem 1rem; }
            .main-nav .nav-container .nav .menu .menu-item:first-of-type {
              border: none; }
            .main-nav .nav-container .nav .menu .menu-item a {
              padding: 0 1rem;
              display: inline-block; }
      .main-nav .nav-container .hamburger {
        display: none; } }

.header {
  background-color: var(--highlight-color);
  width: 100%;
  padding-top: 4rem;
  margin-bottom: calc(8vw + 4rem); }
  @media screen and (max-width: 768px) {
    .header {
      padding-top: 6rem;
      margin-bottom: 4rem; } }
  .header .header-grid {
    display: flex;
    flex-direction: row;
    gap: 1rem; }
    @media screen and (max-width: 768px) {
      .header .header-grid {
        flex-direction: column-reverse;
        gap: 2rem; } }
    .header .header-grid h1, .header .header-grid p {
      color: var(--background-color);
      text-shadow: var(--text-shadow); }
    .header .header-grid h1 {
      font-size: 1.5rem;
      margin: 4rem 0 2rem; }
      @media screen and (max-width: 768px) {
        .header .header-grid h1 {
          margin: 0 0 2rem; } }
    .header .header-grid .subtitle {
      font-family: var(--header-font);
      margin-bottom: 2rem; }
    .header .header-grid a {
      display: flex;
      gap: 1rem;
      align-items: center;
      padding-bottom: 1rem;
      color: var(--background-color);
      text-decoration: none;
      font-family: var(--header-font);
      text-shadow: var(--text-shadow); }
      .header .header-grid a:hover {
        opacity: 0.7; }
    .header .header-grid .text-box {
      width: 100%; }
    .header .header-grid .image-box {
      position: relative;
      width: 100%;
      min-height: 14rem; }
      .header .header-grid .image-box svg {
        position: absolute;
        top: 55%;
        left: 40%;
        transform: translate(-50%, -50%);
        width: 80%;
        max-width: 15rem;
        z-index: 10; }
        @media screen and (max-width: 768px) {
          .header .header-grid .image-box svg {
            top: 50%;
            left: 50%;
            height: 100%;
            max-width: none; } }
  .header .header-wave {
    position: absolute;
    transform: translate(0, -1px);
    width: 100%;
    fill: var(--highlight-color); }

.footer {
  position: relative;
  margin-top: 4rem;
  text-shadow: var(--text-shadow); }
  .footer h2, .footer p, .footer a {
    color: var(--background-color); }
  .footer .tree {
    position: relative;
    left: 100%;
    transform: translateX(-100%);
    bottom: -0.5rem;
    max-width: 20rem;
    fill: var(--highlight-color); }
  .footer .color-container {
    background-color: var(--highlight-color);
    padding: 4rem 0; }
    .footer .color-container .footer-grid {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr; }
      @media screen and (max-width: 768px) {
        .footer .color-container .footer-grid {
          grid-template-columns: 1fr;
          text-align: center;
          gap: 2rem; } }
      .footer .color-container .footer-grid h2 {
        font-size: 1.15rem;
        margin: 0 0 0.75rem; }
      .footer .color-container .footer-grid p {
        font-family: var(--header-font);
        font-size: 1rem;
        margin: 0 0 0.5rem; }
    .footer .color-container .bottom-text {
      text-align: center;
      font-family: var(--header-font);
      font-size: 1rem;
      margin: 4rem 0 0; }

.container {
  max-width: 768px;
  padding: 0 1rem;
  margin: auto; }

.introduction {
  margin: 0 0 4rem 0; }
  .introduction h1 {
    text-align: center; }
  .introduction a {
    color: var(--text-color); }

.services h2 {
  text-align: center;
  margin-top: 0; }

.services .service-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 4rem; }
  @media screen and (max-width: 768px) {
    .services .service-grid {
      grid-template-columns: 1fr; } }
.blue-section {
  background-color: var(--blue-color); }
  .blue-section h2 {
    margin: 0;
    padding-top: 4rem;
    text-align: center; }
  .blue-section .blue-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    padding: 2rem 0 4rem; }
    @media screen and (max-width: 768px) {
      .blue-section .blue-grid {
        grid-template-columns: 1fr; } }
    .blue-section .blue-grid .image-box {
      position: relative; }
      .blue-section .blue-grid .image-box svg {
        position: absolute;
        top: 60%;
        left: 40%;
        transform: translate(-50%, -50%);
        width: 80%; }
        .blue-section .blue-grid .image-box svg ellipse {
          fill: #FFFFFF; }
        @media screen and (max-width: 768px) {
          .blue-section .blue-grid .image-box svg {
            position: relative;
            top: 0;
            left: 50%;
            transform: translate(-50%, 0%); } }
  .blue-section .blue-wave-bottom {
    position: relative;
    width: 100%;
    top: 0.5rem; }

.people-section {
  padding-top: 2rem; }
  .people-section h1, .people-section h2 {
    text-align: center; }
  .people-section h1 {
    margin: 0 0 2rem; }
  .people-section .people-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem; }
    @media screen and (max-width: 768px) {
      .people-section .people-grid {
        grid-template-columns: 1fr 1fr; } }
    @media screen and (max-width: 425px) {
      .people-section .people-grid {
        grid-template-columns: 1fr;
        gap: 2rem; } }
    .people-section .people-grid .people-card img {
      display: block;
      width: 100%;
      max-width: 15rem;
      margin: auto;
      border-radius: 50%;
      padding: 0 2rem; }
    .people-section .people-grid .people-card p {
      text-align: center; }
