html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

:root {
  --fontLarge: 2.714285rem;
  --fontMedium: 1.42857rem;
  --beige: #F5F3EF;
  --grey: #ADADAD;
  --sand: #9A8A6E;
  --black: #000000;
  --white: #FFFFFF;
  --mainpad: 2.14285rem;
  --timing: cubic-bezier(1, 0, .29, 1); }
  @media (max-width : 900px) {
    :root {
      --fontLarge: 2.428571rem;
      --mainpad: 1.071428rem; } }
* {
  box-sizing: border-box; }

*:before,
*:after {
  box-sizing: border-box; }

.visually-hidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap; }

html {
  font-size: 14px;
  font-family: "neue-haas-grotesk-display", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.25;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  @media (max-width: 420px) {
    html {
      font-size: 3.8vw; } }
a {
  text-decoration: none;
  color: currentColor; }
  a span {
    position: relative;
    padding-bottom: 0.1em; }
    a span::after {
      content: "";
      position: absolute;
      height: 1px;
      background: currentColor;
      bottom: 0;
      transition: all 0.5s var(--timing);
      right: 0;
      width: 0; }
  a:hover span::after {
    left: 0;
    right: auto;
    width: 100%; }

button {
  font: inherit;
  cursor: pointer;
  color: inherit;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: left;
  padding: 0;
  line-height: inherit; }
  button span {
    position: relative;
    padding-bottom: 0.1em; }
    button span::after {
      content: "";
      position: absolute;
      height: 1px;
      background: currentColor;
      bottom: 0;
      transition: all 0.5s var(--timing);
      right: 0;
      width: 0; }
  button:hover span::after {
    left: 0;
    right: auto;
    width: 100%; }
  button:focus {
    outline: 0; }

.buttonHolder {
  display: flex; }
  .buttonHolder button {
    position: relative; }
    .buttonHolder button:nth-of-type(n + 2) {
      margin-left: 0.5em; }
      .buttonHolder button:nth-of-type(n + 2)::before {
        content: ", ";
        position: absolute;
        left: -0.42em;
        white-space: pre; }

.mobile {
  display: none; }

@media (max-width : 900px) {
  .desktop {
    display: none; }
  .mobile {
    display: inherit; } }

body {
  line-height: 1.25;
  background-color: var(--beige); }

.page-content {
  padding: calc(var(--mainpad) + 1rem) var(--mainpad); }

header {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: auto;
  column-gap: var(--mainpad);
  padding: calc(var(--mainpad) / 2) var(--mainpad);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: var(--beige);
  z-index: 100;
  transition: background-color 0.5s var(--timing), color 0.5s var(--timing); }
  @media (max-width : 900px) {
    header {
      grid-template-columns: repeat(4, 1fr);
      row-gap: calc(2 * var(--mainpad)); } }
  @media (max-width : 900px) {
    header {
      padding: var(--mainpad); } }
  header .homeButton {
    grid-column: 1/3; }
    @media (max-width : 900px) {
      header .homeButton a span {
        display: block;
        width: min-content; } }
  header nav {
    grid-column: 4/7;
    display: flex;
    position: relative;
    flex-wrap: wrap; }
    @media (max-width : 900px) {
      header nav {
        grid-column: 3/5; } }
    header nav .subnav {
      color: var(--sand);
      max-height: 0;
      overflow-y: hidden;
      width: 100%;
      opacity: 0;
      transition: max-height 0.5s, padding 0.5s, opacity 0.5s var(--timing); }
      header nav .subnav.active {
        padding-top: 0.5em;
        overflow-y: visible;
        max-height: 2em;
        opacity: 1; }
    header nav > a {
      position: relative;
      margin-right: 0.42em; }
      @media (min-width : 900px) {
        header nav > a:not(:last-of-type)::after {
          content: ", ";
          position: absolute;
          right: -0.42em;
          white-space: pre;
          color: currentColor; } }
      @media (max-width : 900px) {
        header nav > a:not(:last-child)::after {
          content: ", ";
          position: absolute;
          right: -0.42em;
          white-space: pre;
          color: currentColor; } }
  header .contactButton {
    grid-column: 12;
    display: flex;
    justify-content: flex-end; }
    @media (max-width : 900px) {
      header .contactButton {
        display: none; } }
main {
  padding-top: 13rem; }
  @media (max-width : 900px) {
    main {
      padding-top: 5rem; } }
footer {
  background-color: var(--white);
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: auto;
  column-gap: var(--mainpad);
  padding: 10rem var(--mainpad) var(--mainpad);
  position: relative; }
  @media (max-width : 900px) {
    footer {
      grid-template-columns: repeat(4, 1fr);
      row-gap: calc(2 * var(--mainpad)); } }
  @media (max-width : 900px) {
    footer {
      margin-top: 5rem; } }
  footer svg {
    fill: var(--black);
    width: 80%;
    height: auto; }
    @media (max-width : 900px) {
      footer svg {
        position: absolute;
        top: var(--mainpad);
        left: var(--mainpad);
        width: 15vw; } }
  footer .footer-col {
    grid-column-end: span 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end; }
    @media (max-width : 900px) {
      footer .footer-col {
        grid-column-end: span 4; } }
    footer .footer-col:first-of-type {
      grid-column-start: 7; }
      @media (max-width : 900px) {
        footer .footer-col:first-of-type {
          grid-column-start: 1; } }
