.canopy-front-page {
  padding: 0;
  background: var(--site-bg-inner);
}

.canopy-front-page__content {
  display: grid;
}

.canopy-front-page__content > * + * {
  margin-top: 0;
}

.canopy-home-band {
  padding: var(--space-2xl) var(--space-l);
}

.canopy-home-band--dark {
  background: var(--color-secondary-500);
}

.canopy-home-band--light {
  background: var(--color-warm-500);
}

.canopy-home-band--rooms {
  background: var(--color-warm-500);
}

.canopy-home-band__inner {
  width: min(100%, var(--container-width));
  margin: 0 auto;
}

.canopy-home-band__inner--hero,
.canopy-home-band__inner--wide {
  width: min(100%, 54rem);
}

.canopy-home-band__inner--narrow {
  width: min(100%, 46.875rem);
}

.canopy-home-band__inner--reviews {
  width: min(100%, 42rem);
}

.canopy-home-band__inner--contact {
  width: min(100%, var(--content-width-reading));
}

.canopy-home-band--hero {
  padding-block: var(--space-xl);
}

.canopy-home-hero {
  display: grid;
  gap: var(--space-xl);
  align-items: center;
}

.canopy-home-hero__content {
  display: grid;
  gap: var(--space-l);
  justify-items: start;
}

.canopy-home-hero__title {
  margin: 0;
  max-width: 12ch;
  color: var(--color-heading-on-dark);
  font-size: var(--heading-1);
  line-height: var(--line-height-heading-tight);
}

.canopy-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
}

.canopy-home-hero__media {
  margin: 0;
  justify-self: center;
  width: min(100%, 18rem);
}

.canopy-home-hero__media img {
  display: block;
  width: 100%;
  height: auto;
}

.button--outline-light {
  background: transparent;
  border-color: var(--color-primary-100);
  color: var(--color-primary-100);
}

.button--outline-light:hover,
.button--outline-light:focus-visible {
  border-color: var(--color-neutral-0);
  color: var(--color-neutral-0);
}

.canopy-home-richtext,
.canopy-home-richtext > * + * {
  margin-top: var(--space-xs);
}

.canopy-home-richtext h2,
.canopy-home-richtext h3,
.canopy-home-richtext h4 {
  margin: 0;
}

.canopy-home-richtext--intro {
  max-width: 46.875rem;
}

.canopy-home-richtext--intro h2 {
  margin-bottom: var(--space-l);
  font-size: var(--heading-2);
  line-height: var(--line-height-heading-tight);
  text-wrap: initial;
}

.canopy-home-richtext--intro p + p {
  margin-top: var(--space-s);
}

.canopy-home-band--light h2,
.canopy-home-band--light h3,
.canopy-home-band--light h4,
.canopy-home-band--light strong {
  color: var(--color-heading-on-dark);
}

.canopy-home-band--light a {
  color: var(--color-neutral-0);
}

.canopy-home-richtext p,
.canopy-home-richtext ul,
.canopy-home-richtext ol {
  margin: 0;
}

.canopy-home-richtext p + p,
.canopy-home-richtext p + ul,
.canopy-home-richtext p + ol,
.canopy-home-richtext ul + p,
.canopy-home-richtext ol + p {
  margin-top: var(--space-s);
}

.canopy-home-richtext ul,
.canopy-home-richtext ol {
  padding-left: 1.2em;
}

.canopy-home-richtext--dark {
  color: var(--color-text-on-dark);
}

.canopy-home-richtext--dark h2,
.canopy-home-richtext--dark h3,
.canopy-home-richtext--dark h4,
.canopy-home-richtext--dark strong {
  color: var(--color-heading-on-dark);
}

.canopy-home-richtext--dark a {
  color: var(--color-link-on-dark);
}

.canopy-home-richtext--dark a:hover,
.canopy-home-richtext--dark a:focus-visible,
.canopy-home-band--dark a:not(.button):hover,
.canopy-home-band--dark a:not(.button):focus-visible {
  color: var(--color-link-on-dark-hover);
}

.canopy-home-richtext--compact {
  max-width: 44rem;
}

.canopy-home-richtext--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.canopy-home-band--light .canopy-home-richtext:not(.canopy-home-richtext--rooms) {
  color: inherit;
}

.canopy-home-section-heading {
  margin-bottom: var(--space-l);
}

.canopy-home-section-heading h2 {
  margin: 0;
}

.canopy-home-section-heading--center {
  text-align: center;
}

.canopy-home-section-heading--rooms {
  width: min(100%, 42rem);
  margin: 0 auto;
  gap: var(--space-m);
  display: flex;
  flex-direction: column;
}

.canopy-home-section-heading--rooms h2 {
  color: var(--color-heading-on-dark);
}

.canopy-home-richtext--rooms {
  color: inherit;
}

.canopy-home-richtext--team-intro {
  max-width: 38rem;
  margin-bottom: var(--space-2xl);
}

.canopy-team-list {
  display: grid;
  gap: var(--space-xl);
}

.canopy-team-row {
  display: grid;
  gap: var(--space-l);
  align-items: start;
  border-top: 1px solid color-mix(in srgb, var(--color-neutral-0) 26%, transparent);
  padding-top: var(--space-xl);
}

.canopy-team-row__media {
  margin: 0;
  width: min(100%, 14rem);
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--radius-pill);
  border: 8px solid color-mix(in srgb, var(--color-secondary-500) 6%, transparent);
  justify-self: center;
}

.canopy-team-row__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.canopy-team-row__name {
  margin: 0;
  font-size: var(--text-2xl);
  /* letter-spacing: 0.02em; */
  /* text-transform: uppercase; */
  color: var(--color-heading-on-dark);
}

.canopy-team-row__content {
  display: grid;
  gap: var(--space-l);
  color: rgb(255 255 255 / 0.96);
}

.canopy-team-row__text {
  display: grid;
  gap: var(--space-s);
}

.canopy-team-row__text > * + * {
  margin-top: var(--space-s);
}

.canopy-team-row__text p {
  margin: 0;
}

.canopy-team-row__meta-grid {
  display: grid;
  gap: var(--space-m) var(--space-l);
}

.canopy-team-row__meta {
  display: grid;
  gap: var(--space-xs);
  align-content: start;
}

.canopy-team-row__meta p,
.canopy-team-row__meta ul,
.canopy-team-row__meta ol {
  margin: 0;
}

.canopy-team-row__meta ul,
.canopy-team-row__meta ol {
  padding-left: 1.1em;
}

.canopy-team-row__meta li::marker {
  color: color-mix(in srgb, var(--color-neutral-0) 70%, transparent);
}

.canopy-team-row__meta h4 {
  margin: 0;
  font-size: var(--text-s);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-heading-on-dark);
}

.canopy-home-reviews-header {
  display: grid;
  justify-items: center;
  gap: var(--space-l);
  margin-bottom: var(--space-xl);
  text-align: center;
}

.canopy-home-reviews-header__media {
  margin: 0;
  width: min(100%, 14rem);
}

.canopy-home-reviews-header__media img {
  display: block;
  width: 100%;
  height: auto;
}

.canopy-home-reviews-header__title {
  margin: 0;
  color: var(--color-heading-on-dark);
  font-size: var(--heading-2);
}

.canopy-reviews-list {
  display: grid;
  gap: var(--space-l);
}

.canopy-review {
  display: grid;
  justify-items: center;
  gap: var(--space-s);
}

.canopy-review__dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-neutral-0) 90%, transparent);
}

.canopy-review__quote {
  margin: 0;
  max-width: 40rem;
  text-align: center;
  color: rgb(255 255 255 / 0.96);
}

.canopy-review__quote p {
  margin: 0;
}

.canopy-review__quote footer {
  margin-top: var(--space-s);
}

.canopy-review__quote cite {
  font-style: italic;
}

.canopy-home-wide-image {
  margin: 0;
  overflow: hidden;
}

.canopy-home-wide-image img {
  display: block;
  width: 100%;
  height: auto;
}

.canopy-home-wide-image--rooms {
  margin: 0;
  width: 100%;
  margin-block-start: 0!important;
}

.canopy-home-wide-image--rooms img {
  width: 100%;
  max-width: none;
  height: auto;
}

.canopy-home-richtext--prices {
  display: grid;
  gap: var(--space-m);
}

.canopy-home-prices__primary {
  display: grid;
  gap: var(--space-s) var(--space-l);
}

.canopy-home-prices__primary p {
  margin: 0;
  color: var(--color-text-on-dark);
}

.canopy-home-prices__secondary {
  display: grid;
  gap: var(--space-m);
}

.canopy-home-prices__secondary h3 {
  margin: var(--space-m) 0 0;
  color: var(--color-heading-on-dark);
  font-size: var(--heading-6);
}

.canopy-home-prices__secondary h3:first-child {
  margin-top: 0;
}

.canopy-home-prices__secondary p {
  margin: 0;
}

.canopy-home-contact {
  display: grid;
  gap: var(--space-xl);
  justify-items: start;
}

.canopy-home-contact__intro,
.canopy-home-contact__form {
  display: grid;
  gap: var(--space-s);
}

.canopy-home-contact__intro {
  justify-items: start;
  width: 100%;
  text-align: left;
}

.canopy-home-contact__intro h2,
.canopy-home-contact__form h3 {
  margin: 0;
  color: var(--color-heading-on-dark);
}

.canopy-home-contact__intro .canopy-home-richtext {
  max-width: none;
}

.canopy-home-contact__intro .canopy-home-richtext--center {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

.canopy-home-contact__form {
  justify-items: start;
  width: 100%;
}

.canopy-home-contact__form .canopy-home-richtext {
  font-size: var(--text-s);
  line-height: var(--line-height-body);
}

.canopy-home-contact__media {
  margin: 0;
  width: 100%;
}

.canopy-home-contact__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-s);
}

.canopy-home-contact__form-shell {
  display: grid;
  gap: var(--space-s);
  width: 100%;
}

.canopy-home-contact__form-shell .ff-el-group,
.canopy-home-contact__form-shell .ff-t-container {
  margin-bottom: var(--space-s);
}

.canopy-home-contact__form-shell .ff-t-container {
  display: flex;
  gap: var(--space-s);
}

.canopy-home-contact__form-shell .ff-t-cell {
  flex: 1 1 0;
  min-width: 0;
}

.canopy-home-contact__form-shell .ff-el-input--label label {
  color: var(--color-heading-on-dark);
  font-size: var(--text-s);
}

.canopy-home-contact__form-shell.canopy-home-contact__form-shell .ff-el-form-control {
  min-height: 2.5rem;
  border: 1px solid color-mix(in srgb, var(--color-neutral-0) 80%, transparent) !important;
  border-radius: var(--radius-s) !important;
  background: color-mix(in srgb, var(--color-neutral-0) 94%, transparent) !important;
  color: var(--color-secondary-500) !important;
  font-size: var(--text-s) !important;
  transition:
    border-color var(--transition-standard),
    box-shadow var(--transition-standard),
    background var(--transition-standard);
}

.canopy-home-contact__form-shell.canopy-home-contact__form-shell .ff-el-form-control:focus,
.canopy-home-contact__form-shell.canopy-home-contact__form-shell .ff-el-form-control:focus-visible {
  border-color: var(--color-secondary-500) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-secondary-500) 35%, transparent) !important;
  outline: 0 !important;
  background: var(--color-neutral-0) !important;
}

.canopy-home-contact__form-shell textarea.ff-el-form-control {
  min-height: 6.5rem;
}

.canopy-home-contact__form-shell .ff-btn-submit {
  justify-self: start;
}

.canopy-home-contact__form-shell input,
.canopy-home-contact__form-shell textarea,
.canopy-home-contact__form-shell select {
  width: 100%;
}

.canopy-home-contact__form .ff-btn-submit,
.canopy-home-contact__form input[type="submit"] {
  min-height: 2.75rem !important;
  padding: var(--button-padding-y) var(--button-padding-x) !important;
  border: var(--button-border) !important;
  border-radius: var(--button-radius) !important;
  background: var(--button-bg) !important;
  color: var(--button-text) !important;
  cursor: pointer;
  font-family: var(--font-family-body) !important;
  font-size: var(--button-font-size) !important;
  font-weight: var(--button-font-weight) !important;
  line-height: 1 !important;
  transition:
    background var(--transition-standard),
    border-color var(--transition-standard),
    color var(--transition-standard),
    transform var(--transition-standard);
}

.canopy-home-contact__form .ff-btn-submit:hover,
.canopy-home-contact__form .ff-btn-submit:focus-visible,
.canopy-home-contact__form input[type="submit"]:hover,
.canopy-home-contact__form input[type="submit"]:focus-visible {
  border: var(--button-border-hover) !important;
  background: var(--button-bg-hover) !important;
  color: var(--button-text) !important;
  transform: translateY(var(--translate-interactive-hover));
}

.canopy-faq {
  display: grid;
  gap: 0;
}

.canopy-faq__item {
  border-top: 1px solid var(--color-primary-500);
}

.canopy-faq__item:last-child {
  border-bottom: 1px solid var(--color-primary-500);
}

.canopy-home-band--dark .canopy-home-section-heading h2 {
  color: var(--color-heading-on-dark);
}

.canopy-faq__question {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-m);
  width: 100%;
  min-height: 0;
  padding: var(--space-m) var(--space-s);
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  color: var(--color-heading-on-dark);
  font-family: var(--font-family-body);
  font-size: var(--text-s);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-body-tight);
  appearance: none;
  transition: color 180ms ease;
}

.canopy-faq__item {
  transition: background-color 180ms ease;
}

.canopy-faq__item:hover {
  background: rgb(0 0 0 / 0.06);
}

.canopy-faq__question:hover,
.canopy-faq__question:focus-visible {
  background: transparent;
  color: var(--color-primary-100);
}

.canopy-faq__question::after {
  content: "";
  flex: none;
  width: 0.9rem;
  height: 0.9rem;
  background:
    linear-gradient(currentColor 0 0) center / 100% 2px no-repeat,
    linear-gradient(currentColor 0 0) center / 2px 100% no-repeat;
  color: inherit;
  transition: background-size var(--transition-standard), color var(--transition-standard), transform var(--transition-standard);
}

.canopy-faq__item[data-faq-open="true"] .canopy-faq__question {
  color: var(--color-primary-500);
}

.canopy-faq__item[data-faq-open="true"] .canopy-faq__question::after {
  background-size: 100% 2px, 0 100%;
  color: var(--color-primary-500);
}

.canopy-faq__answer {
  height: 0;
  color: var(--color-text-on-dark);
  font-size: var(--text-s);
  line-height: var(--line-height-body);
  overflow: hidden;
}

.canopy-faq__answer-inner {
  padding: 0 var(--space-s) var(--space-m);
}

.canopy-faq__answer p,
.canopy-faq__answer ul,
.canopy-faq__answer ol {
  margin: 0;
}

.canopy-faq__answer-inner > * + *,
.canopy-faq__answer-inner p + p,
.canopy-faq__answer-inner p + ul,
.canopy-faq__answer-inner p + ol,
.canopy-faq__answer-inner ul + p,
.canopy-faq__answer-inner ol + p {
  margin-top: var(--space-s);
}

.canopy-home-section-actions {
  margin-top: var(--space-l);
}

@media (max-width: 47.99rem) {
  .canopy-home-band {
    padding-inline: var(--space-m);
  }

  .canopy-home-band--hero {
    padding-block: var(--space-l) var(--space-xl);
  }

  .canopy-home-band__inner--hero,
  .canopy-home-band__inner--wide,
  .canopy-home-band__inner--narrow,
  .canopy-home-band__inner--reviews,
  .canopy-home-band__inner--contact {
    width: 100%;
  }

  .canopy-home-hero {
    gap: var(--space-l);
    justify-items: center;
    text-align: center;
  }

  .canopy-home-hero__content {
    gap: var(--space-l);
    justify-items: center;
  }

  .canopy-home-hero__title {
    max-width: 9.5ch;
    padding-top: var(--space-m);
  }

  .canopy-home-hero__media {
    margin-top: calc(var(--space-s) * -1);
    justify-self: center;
  }

  .canopy-home-hero__media img {
    object-fit: contain;
    max-height: 320px;
  }

  .canopy-home-richtext--intro {
    max-width: 100%;
  }

  .canopy-home-richtext--intro h2 {
    margin-bottom: var(--space-s);
  }

  .canopy-home-section-heading {
    margin-bottom: var(--space-xl);
  }

  #team .canopy-home-section-heading--center,
  #team .canopy-home-richtext--center {
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }

  .canopy-home-section-heading--rooms {
    width: min(100%, 18rem);
  }

  .canopy-home-richtext--team-intro {
    margin-bottom: var(--space-xl);
  }

  .canopy-team-list {
    gap: var(--space-xl);
  }

  .canopy-team-row {
    gap: var(--space-s);
    text-align: left;
  }

  .canopy-team-row__media {
    justify-self: start;
  }

  .canopy-team-row__content {
    gap: var(--space-l);
  }

  .canopy-team-row__name {
    font-size: calc(var(--heading-2) * .9);
  }

  .canopy-team-row__meta ul,
  .canopy-team-row__meta ol {
    padding-left: 1.1em;
    list-style-position: outside;
  }

  .canopy-home-reviews-header {
    gap: var(--space-m);
    margin-bottom: var(--space-l);
  }

  .canopy-home-reviews-header__media {
    width: min(100%, 9rem);
  }

  .canopy-reviews-list {
    gap: var(--space-l);
  }

  .canopy-review__quote {
    max-width: 22rem;
  }

  .canopy-home-wide-image--rooms img {
    height: auto;
  }

  .canopy-home-richtext--prices {
    gap: var(--space-m);
  }

  .canopy-home-prices__primary {
    gap: var(--space-xs);
  }

  .canopy-home-contact {
    gap: var(--space-l);
  }

  .canopy-home-contact__intro .canopy-home-richtext {
    max-width: none;
  }

  .canopy-home-contact__media {
    width: 100%;
  }

  .canopy-home-contact__form {
    width: 100%;
    justify-items: start;
  }

  .canopy-home-contact__form h3 {
    font-size: var(--text-l);
  }

  .canopy-home-contact__form-shell {
    width: 100%;
  }

  .canopy-home-contact__form-shell .ff-el-form-control::placeholder {
    font-size: var(--text-2xs);
  }

  .canopy-home-contact__form .canopy-home-richtext {
    max-width: 18rem;
  }

  .canopy-faq {
    gap: 0;
  }

  .canopy-faq__question {
    padding-block: 1.25rem;
  }

  .canopy-home-section-actions {
    margin-top: var(--space-xl);
  }
}

@media (min-width: 48rem) {
  .canopy-home-hero {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
  }

  .canopy-team-row {
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
    gap: var(--space-xl);
    align-items: start;
  }

  .canopy-team-row__media {
    width: 100%;
    justify-self: start;
  }

  .canopy-team-row__meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .canopy-home-prices__primary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
