@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: #f5f6f3;
  --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 {
  margin: 2rem auto 1rem auto;
  font-family: var(--header-font);
  color: var(--text-color); }

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

p {
  margin: 0 auto 1rem auto; }

a:hover {
  opacity: 0.8; }

.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 .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 {
            background-color: var(--background-color); }
            .main-nav .nav-container .nav .menu a.active .menu-title, .main-nav .nav-container .nav .menu p.active .menu-title {
              color: var(--highlight-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;
            color: var(--background-color);
            font-family: var(--header-font); }
            .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: 820px) {
  .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.15rem; }
            .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: 7rem;
      margin-bottom: 4rem; } }
  .header.header-simple .header-grid {
    min-height: 0; }
  .header .header-grid {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    min-height: 15rem; }
    @media screen and (max-width: 768px) {
      .header .header-grid {
        flex-direction: column;
        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;
      min-width: 20rem; }
      @media screen and (max-width: 768px) {
        .header .header-grid .image-box {
          min-height: 8rem; } }
      @media screen and (max-width: 600px) {
        .header .header-grid .image-box {
          height: 10rem; } }
      .header .header-grid .image-box .tree {
        position: absolute;
        right: 0;
        bottom: calc(1.2rem - 3vw);
        max-width: 22rem;
        z-index: 10;
        fill: var(--background-color); }
        @media screen and (max-width: 1000px) {
          .header .header-grid .image-box .tree {
            bottom: -1rem; } }
        @media screen and (max-width: 768px) {
          .header .header-grid .image-box .tree {
            max-width: 18rem;
            bottom: -1rem;
            right: 1rem; } }
  .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; }
    .footer .color-container .policy-links {
      text-align: center;
      font-family: var(--header-font);
      font-size: 0.95rem;
      margin: 1rem 0 0; }
    .footer .color-container h2 {
      max-width: auto;
      margin: 0 0 2rem 0; }
    .footer .color-container .partner-logos {
      text-align: center;
      margin-bottom: 4rem; }
      .footer .color-container .partner-logos .partner-logo-list {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 4rem; }
      .footer .color-container .partner-logos .partner-logo-link {
        display: inline-flex;
        align-items: center;
        justify-content: center; }
      .footer .color-container .partner-logos .partner-logo {
        height: 2rem; }
      @media screen and (max-width: 768px) {
        .footer .color-container .partner-logos .partner-logo-list {
          flex-direction: column;
          gap: 2rem; } }
.container {
  max-width: 768px;
  padding: 0 1rem;
  margin: auto; }

.container-narrow {
  max-width: 40rem; }

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

.services h2 {
  margin-top: 0; }

.services .service-grid {
  display: grid;
  margin-bottom: 4rem; }

.services .service-card {
  display: block;
  text-decoration: none; }
  .services .service-card .pricing {
    width: 100%; }
  .services .service-card .price-row {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0;
    margin-bottom: 1rem;
    border-bottom: 2px dotted var(--highlight-color); }
  .services .service-card .price-row span:last-child {
    margin-left: 1rem;
    text-align: right; }

.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;
    fill: var(--background-color); }
  .blue-section .blue-wave-top {
    fill: var(--background-color); }

.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 .image-container {
      padding: 0 2rem; }
      .people-section .people-grid .people-card .image-container img {
        display: block;
        width: 100%;
        max-width: 15rem;
        margin: auto;
        border-radius: 50%;
        aspect-ratio: 1/1; }
    .people-section .people-grid .people-card p {
      text-align: center; }

.news-feed {
  padding: 0 0 4rem; }
  .news-feed .container {
    max-width: 30rem; }
  .news-feed .news-post {
    margin-bottom: 2rem;
    padding: 1.5rem;
    border: 1px solid #d9ded9;
    border-radius: 4px;
    background-color: #fff; }
    .news-feed .news-post:first-child {
      margin-top: 0; }
    .news-feed .news-post h2 {
      margin: 1.25rem 0 0.75rem;
      font-size: 1.25rem; }
  .news-feed .news-post-header {
    display: flex;
    align-items: center;
    gap: 0.75rem; }
  .news-feed .news-avatar {
    display: grid;
    flex: 0 0 2.75rem;
    place-items: center;
    width: 2.75rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--highlight-color);
    color: #fff;
    font-family: var(--header-font);
    font-size: 0.875rem; }
  .news-feed .news-post-header picture {
    display: block;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    overflow: hidden;
    border-radius: 50%; }
  .news-feed .news-avatar-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .news-feed .news-post-byline .news-account {
    margin: 0 0 0.15rem;
    font-family: var(--header-font);
    font-size: 0.9rem; }
  .news-feed .news-post-byline time {
    color: #282b28;
    font-size: 0.8rem; }
  .news-feed .news-post-content {
    line-height: 1.65; }
  .news-feed .news-post-media {
    overflow: hidden;
    margin: 1rem 0 0;
    border-radius: 4px; }
    .news-feed .news-post-media picture, .news-feed .news-post-media img {
      display: block;
      width: 100%; }
  .news-feed .news-empty {
    padding: 1rem 0 3rem;
    color: #626962; }
