@charset "UTF-8";
/* ----- RESET ----- */
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
  margin: 0;
  padding: 0;
}

ol,
ul,
dl {
  margin: 0;
  padding: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100%;
  min-height: 100vh;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4, h5, h6,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* ----- END RESET ----- */
html {
  margin: 0;
  padding: 0;
  min-height: 100%;
  background-color: #FaF7F1;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
html:lang(en-US) {
  hyphens: auto;
  word-break: break-word;
}

canvas, img, picture, svg {
  background-repeat: no-repeat;
  background-size: cover;
  block-size: auto;
  font-style: italic;
  max-inline-size: 100%;
  shape-margin: 0.75rem;
  vertical-align: middle;
}

img {
  max-width: 100%;
  height: auto;
}

.words > ul > li {
  margin-left: 1rem;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
  font-family: "Noto Serif", "Times New Roman", serif;
  font-weight: 700;
}

h1 {
  font-size: 3rem;
}

h2 {
  font-size: 3.5rem;
}

h3 {
  font-size: 1.75rem;
}

h4 {
  font-size: 1.5rem;
}

h5, h6 {
  font-size: 1.25rem;
}

p, li, figcaption {
  text-wrap: pretty;
}

h1#title {
  margin-block-start: 1rem;
  margin-block-end: 0.5rem;
}

@media all and (min-width: 37.5em) {
  .layout-2 {
    display: flex;
    -webkit-flex-flow: row-reverse wrap;
    -ms-flex-flow: row-reverse wrap;
    flex-flow: row-reverse wrap;
    gap: 0.5rem;
    -webkit-align-items: flex-start;
    align-items: flex-start;
  }
  .layout-2 > * {
    -webkit-flex-grow: 1;
    flex-grow: 1;
  }
  .layout-2 .words {
    -webkit-flex-basis: 60%;
    flex-basis: 60%;
    display: flex;
    height: -webkit-fill-available;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-justify-content: space-around;
    justify-content: space-around;
  }
}
.layout-2 .gallery {
  -webkit-flex-basis: 25%;
  flex-basis: 25%;
}
.layout-2 .gallery-grid {
  grid-template-columns: repeat(auto-fill, minmax(clamp(13.5rem, 33vw, 18rem), 1fr));
}
@media all and (max-width: 56.1875em) {
  .layout-2 .gallery-grid {
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    grid-template-columns: repeat(auto-fill, minmax(clamp(13.5rem, 33vw, 18rem), 1fr));
  }
  .layout-2 .gallery-grid .image-container {
    height: 10rem;
    height: clamp(10rem, 40vw, 18rem);
  }
}
@media all and (max-width: 29.9375em) {
  .layout-2 .gallery-grid {
    grid-template-columns: repeat(auto-fill, minmax(clamp(9rem, 40vw, 18rem), 1fr));
  }
}

.wrapper {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0 0.5rem;
  max-width: 1350px;
}

.row {
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.row > * {
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
}

.col {
  -webkit-flex: 1 0 0%;
  -ms-flex: 1 0 0%;
  flex: 1 0 0%;
}
.col-auto {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  width: auto;
}
.col-1 {
  flex: 0 0 auto;
  width: 8.3333333333%;
}
.col-2 {
  flex: 0 0 auto;
  width: 16.6666666667%;
}
.col-3 {
  flex: 0 0 auto;
  width: 25%;
}
.col-4 {
  flex: 0 0 auto;
  width: 33.3333333333%;
}
.col-5 {
  flex: 0 0 auto;
  width: 41.6666666667%;
}
.col-6 {
  flex: 0 0 auto;
  width: 50%;
}
.col-7 {
  flex: 0 0 auto;
  width: 58.3333333333%;
}
.col-8 {
  flex: 0 0 auto;
  width: 66.6666666667%;
}
.col-9 {
  flex: 0 0 auto;
  width: 75%;
}
.col-10 {
  flex: 0 0 auto;
  width: 83.3333333333%;
}
.col-11 {
  flex: 0 0 auto;
  width: 91.6666666667%;
}
.col-12 {
  flex: 0 0 auto;
  width: 100%;
}

.l-primary-nav__sections {
  font-size: 1.4rem;
}
@media all and (min-width: 37.5em) {
  .l-primary-nav__sections {
    font-size: 1rem;
  }
}

.l-primary-nav {
  position: relative;
}
@supports (display: flex) {
  .l-primary-nav {
    display: flex;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    column-gap: 1rem;
    -webkit-align-items: center;
    align-items: center;
  }
}
.l-primary-nav__sections {
  list-style-type: none;
  width: 100%;
  text-align: center;
  -webkit-align-content: center;
  align-content: center;
}
.l-primary-nav__sections li::before {
  content: "​";
}
.l-primary-nav__sections[data-visible=true] {
  min-height: calc(100svh - 68px);
}
@supports (display: flex) {
  .l-primary-nav__sections {
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-evenly;
    justify-content: space-evenly;
    gap: 1rem 1rem;
  }
  @media all and (min-width: 37.5em) {
    .l-primary-nav__sections {
      visibility: visible;
      opacity: 1;
      max-height: 100rem;
      -webkit-transform: scaleY(1);
      -moz-transform: scaleY(1);
      -ms-transform: scaleY(1);
      -o-transform: scaleY(1);
      transform: scaleY(1);
      --_transition-collapse: none;
      --_opacity-collapse: 1;
      --_transform-collapse: 1;
      --_visibility-collapse: visible;
      flex-flow: row wrap;
      gap: 0.3rem 1.7rem;
      -webkit-flex-basis: 0;
      flex-basis: 0;
      -webkit-flex-grow: 0.95;
      flex-grow: 0.95;
      -webkit-justify-content: flex-end;
      justify-content: flex-end;
    }
  }
}
.l-primary-nav__logo {
  padding: 5px 0;
}
.l-primary-nav__logo img {
  height: 58px;
}

.c-primary-nav__link {
  color: #000;
  font-weight: normal;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-transform: uppercase;
  text-underline-offset: 3px;
  text-decoration-color: transparent;
}
.c-primary-nav__link:hover, .c-primary-nav__link[aria-current=page] {
  text-decoration-color: currentColor;
}

@media all and (min-width: 37.5em) {
  #primary-navigation > .j-dropdown__btn.menu-toggle {
    display: none;
  }
}
@media all and (min-width: 37.5em) {
  #primary-navigation > .j-dropdown__btn.menu-toggle + .j-dropdown__list[data-visible=false], #primary-navigation > .j-dropdown__btn.menu-toggle + .j-dropdown__list[data-visible=true] {
    visibility: visible;
    opacity: 1;
    max-height: 100rem;
    -webkit-transform: scaleY(1);
    -moz-transform: scaleY(1);
    -ms-transform: scaleY(1);
    -o-transform: scaleY(1);
    transform: scaleY(1);
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}

.hero {
  height: clamp(10rem, 65vh - 68px, 50rem);
  overflow: hidden;
}
@media all and (min-width: 37.5em) {
  .hero {
    height: clamp(10rem, 80vh - 68px, 100vw - 68px);
  }
}
.hero.wrapper {
  padding: 0;
  max-width: 100%;
}
.hero picture, .hero img {
  display: unset;
}

.img-eleventy {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.img-cover-home {
  object-fit: cover;
  height: 100%;
  width: 100%;
  transform-origin: 50% 50%;
  object-position: 67% 23%;
}

.img-layout-1 {
  padding: 0.5rem;
  row-gap: 1rem;
  display: flex;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap-reverse;
  -ms-flex-wrap: wrap-reverse;
  flex-wrap: wrap-reverse;
}
.img-layout-1 > * {
  flex: 100%;
  max-width: 100%;
}
.img-layout-1 > * .img-eleventy {
  max-width: 100%;
  width: 100%;
}
@media all and (min-width: 37.5em) {
  .img-layout-1 > * {
    max-width: 50%;
    flex: 50%;
    padding: 1rem;
  }
}

.img-layout-2 {
  display: flex;
  gap: 0.5rem;
}

.menu-toggle__line-2, .menu-toggle__line-1 {
  animation-duration: 0.7s;
  animation-timing-function: ease;
  animation-direction: normal;
  animation-fill-mode: forwards;
  transform-origin: center;
}

.menu-toggle {
  padding: 12.8px 8px;
  width: 44px;
  height: 44px;
  color: CurrentColor;
  background-color: transparent;
  background-color: transparent;
  border: none;
  border-radius: 3px;
  margin: 0.2rem 0;
  -webkit-transition: background-color 150ms ease-in-out;
  -moz-transition: background-color 150ms ease-in-out;
  -ms-transition: background-color 150ms ease-in-out;
  -o-transition: background-color 150ms ease-in-out;
  transition: background-color 150ms ease-in-out;
}
.menu-toggle[aria-expanded=true] {
  background-color: rgba(169, 16, 36, 0.1803921569);
}
.menu-toggle[aria-expanded=true] .menu-toggle__line {
  --_top: 50%;
  transform: translate(-50%, -50%) rotate(225deg);
  width: 120%;
}
.menu-toggle[aria-expanded=true] .menu-toggle__line-2 {
  transform: translate(-50%, -50%) translateY(0) rotate(-225deg);
  transform-origin: center;
}
.menu-toggle[aria-expanded=true] .menu-toggle__line-3 {
  opacity: 0;
}
.menu-toggle__box {
  height: 100%;
  position: relative;
  display: block;
}
.menu-toggle__line {
  --_top: 0;
  --_transition: transform 0.5s, top 0.3s, left 0.3s;
  width: 100%;
  height: 2px;
  background-color: CurrentColor;
  border-radius: 2px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  top: var(--_top, 0);
  transition: none;
  transition: var(--_transition, none);
}
.menu-toggle__line-1 {
  --_top: 0;
}
.menu-toggle__line-2 {
  --_top: 50%;
  --_transition: top 0.3s, left 0.3s, transform 0.5s;
}
.menu-toggle__line-3 {
  --_top: 100%;
  --_transition: top 0.3s, opacity 0.3s;
}

.j-dropdown__list[data-visible=false], .j-dropdown__list {
  visibility: hidden;
  opacity: 0;
  max-height: 0;
  -webkit-transform: scaleY(0);
  -moz-transform: scaleY(0);
  -ms-transform: scaleY(0);
  -o-transform: scaleY(0);
  transform: scaleY(0);
}

.j-dropdown__list[data-visible=true], .j-dropdown:focus-within > .j-dropdown__btn ~ .j-dropdown__list:not([data-visible]),
.j-dropdown__btn:focus ~ .j-dropdown__list:not([data-visible]) {
  visibility: visible;
  opacity: 1;
  max-height: 100rem;
  -webkit-transform: scaleY(1);
  -moz-transform: scaleY(1);
  -ms-transform: scaleY(1);
  -o-transform: scaleY(1);
  transform: scaleY(1);
}

.button-close {
  padding: 12.8px 8px;
  width: 44px;
  height: 44px;
  color: CurrentColor;
  background-color: transparent;
  background-color: transparent;
  border: none;
  border-radius: 3px;
  margin: 0.2rem 0;
  opacity: 0.65;
}
.button-close:hover, .button-close:focus {
  opacity: 1;
}
.button-close__box {
  height: 100%;
  position: relative;
  display: block;
}
.button-close__line {
  --_top: 50%;
  width: 100%;
  height: 2px;
  background-color: CurrentColor;
  border-radius: 2px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 50%;
  top: var(--_top, 50%);
}
.button-close__line-1 {
  transform: translate(-50%, -50%) rotate(225deg);
}
.button-close__line-2 {
  transform: translate(-50%, -50%) translateY(0) rotate(-225deg);
  transform-origin: center;
}

.gallery {
  margin: 0 auto;
}

.gallery-grid {
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.gallery-grid li::before {
  content: "​";
  display: block;
}
.gallery-grid .image-container {
  width: 100%;
  overflow: hidden;
  border-radius: 2px;
  line-height: 0;
}
.gallery-grid .image-container picture, .gallery-grid .image-container img {
  display: unset;
}
.gallery-grid .image-container .grid-image {
  object-fit: cover;
  height: 100%;
  width: 100%;
  transform-origin: 50% 50%;
}
@supports (grid-template-rows: masonry) {
  .gallery-grid {
    grid-template-rows: masonry;
  }
  .gallery-grid .image-container {
    height: auto;
  }
}

.accordion {
  margin-block-start: 1rem;
}
.accordion-btn {
  padding: 1rem 0.5rem;
  width: 100%;
  text-align: left;
  margin-bottom: 1px;
  color: CurrentColor;
  white-space: nowrap;
  background-color: transparent;
  border: 2px solid black;
  border-radius: 0px;
}
.accordion-btn::before {
  margin-right: 1ch;
  display: inline-block;
  content: "⏵";
  transition: transform 100ms ease-in-out;
}
.accordion-btn[aria-expanded=true]::before {
  transform: rotate(90deg);
}
.accordion-btn:hover, .accordion-btn:focus {
  background-color: rgba(0, 0, 0, 0.1019607843);
}
.accordion-panel {
  padding: 0.5rem 1rem;
}

html:has(dialog.modal[open]) {
  overflow: hidden;
}

.modal {
  color-scheme: light dark;
  padding: 0;
  width: 100%;
  margin: auto;
  border: none;
  border-radius: 3px;
  max-block-size: min(99vh, 100%);
  max-block-size: min(99dvh, 100%);
  max-inline-size: min(100vw - 2rem, 100%);
  overflow: hidden;
}
.modal-wrap {
  padding: 0.5rem;
  border: 2px solid #000000;
  border-radius: 3px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-items: start;
  max-block-size: 96vh;
  max-block-size: 96dvh;
}
.modal::backdrop {
  background: rgba(0, 0, 0, 0.8);
}
.modal-header {
  display: flex;
  gap: 1rem;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: center;
  align-items: center;
  padding-block: 0.1rem;
  padding-inline: 1.3rem;
}
.modal-header > button {
  padding: 0.5ch;
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
  stroke: currentColor;
  stroke-width: 3px;
}
.modal-article {
  -ms-overflow-y: auto;
  overflow-y: auto;
  max-block-size: 100%;
  overscroll-behavior-y: contain;
  display: grid;
  gap: 2px;
  grid-template-columns: auto 1fr auto;
  -webkit-justify-items: center;
  justify-items: center;
  padding-block: 0.1rem;
  padding-inline: 0.1rem;
}
.modal-footer {
  display: flex;
  gap: 1rem;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-block: 0.1rem;
  padding-inline: 1.3rem;
}
.modal-image {
  max-height: 84vh;
  max-height: 84lvh;
  max-height: 84dvh;
  object-fit: contain;
}
.modal .modal-prev-button,
.modal .modal-next-button {
  border-radius: 0;
  border: none;
  background-color: transparent;
  opacity: 0.65;
  font-size: 2rem;
}
.modal .modal-prev-button:hover, .modal .modal-prev-button:focus,
.modal .modal-next-button:hover,
.modal .modal-next-button:focus {
  opacity: 1;
  background-color: #1a1a1a;
}

.button-image {
  border: none;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.button-image:focus-visible, .button-image:focus {
  outline: 6px solid rgba(0, 0, 255, 0.7921568627);
  outline-offset: -6px;
}

#footer {
  background-color: rgba(158, 187, 189, 0.3019607843);
  padding-top: 3.5rem;
  padding-bottom: 0.1rem;
}

.c-footer__copyright {
  margin-block-start: 1rem;
  text-align: center;
  font-size: 0.875rem;
}
.c-footer ul {
  list-style-type: none;
  margin-inline-start: 0.5rem;
  margin-top: 1rem;
}
.c-footer ul li::before {
  content: "​";
}
.c-footer ul li {
  margin-top: 0.25rem;
  display: flex;
  gap: 0.5rem;
}
@supports (display: grid) {
  .c-footer-lists {
    display: grid;
    grid-template-columns: auto auto;
    -webkit-justify-content: space-around;
    justify-content: space-around;
  }
}
@supports (display: flex) {
  .c-footer-lists {
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-justify-content: space-around;
    justify-content: space-around;
    align-items: center;
  }
}
@supports (display: grid) {
  .c-footer-col {
    display: grid;
    grid-template-columns: 100px auto;
  }
}
@supports (display: flex) {
  .c-footer-col {
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-justify-content: center;
    justify-content: center;
    align-items: center;
  }
}
.c-footer-col ul {
  margin-top: 0.5rem;
}
.c-footer-pic picture {
  border-radius: 100%;
  overflow: hidden;
}
.c-footer__image {
  max-width: 100px;
}

.c-cta {
  position: relative;
  text-align: center;
}
@supports (display: grid) {
  .c-cta {
    display: grid;
    grid-template-columns: 0.5rem 1fr 0.5rem;
    grid-template-areas: ". get-started .";
  }
  @media all and (min-width: 37.5em) {
    .c-cta {
      grid-template-columns: 1fr minmax(0, 60vw) 1fr;
      grid-template-areas: ". get-started .";
    }
  }
  @media all and (min-width: 84.375em) {
    .c-cta {
      grid-template-columns: 1fr minmax(0, 45vw) 1fr;
    }
  }
}

.c-cta--under {
  bottom: 2.25rem;
}
@media all and (min-width: 101.25em) {
  .c-cta--under {
    bottom: 2.5rem;
  }
}

.c-cta--over {
  top: 2.25rem;
}
@media all and (min-width: 101.25em) {
  .c-cta--over {
    top: 2.5rem;
  }
}

.c-cta__link {
  background-color: #f0dbdb;
  border: 0.5ex solid;
  box-shadow: 0px 2px 3px rgba(46, 62, 78, 0.2509803922);
  color: CurrentColor;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.15ch;
  line-height: 1.3;
  font-family: "Playfair Display", "Times New Roman", serif;
  padding: 0.75rem 1rem;
  text-align: center;
  text-decoration: none;
}
.c-cta__link:hover, .c-cta__link:focus {
  background-color: #f8dede;
  outline: 4px solid transparent;
}
.c-cta__link:focus {
  outline: 4px solid #8899ff;
}
@media all and (min-width: 30em) {
  .c-cta__link {
    font-size: 1.5rem;
    padding: 1rem 2rem;
  }
}
@supports (display: grid) {
  .c-cta__link {
    grid-area: get-started;
  }
}
@media screen and (prefers-reduced-motion: reduce) {
  .c-cta__link {
    transition: none;
  }
}

.sr-only, .u-hide-visually {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.sr-only:focus, .u-hide-visually:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

.flow > * + * {
  margin-block-start: 1em;
  margin-block-start: var(--flow-space, 1em);
}

.flow-half > * + * {
  margin-block-start: 0.5em;
  margin-block-start: var(--flow-space, 0.5em);
}

.flow-sm > * + * {
  margin-block-start: 0.3333333333em;
  margin-block-start: var(--flow-space, 0.3333333333em);
}

.flex-rr {
  -webkit-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

/*# sourceMappingURL=main.css.map */
