@charset "UTF-8";
.site-header {
  position: relative;
  z-index: 1200;
}

body:has(main > .tree-hero:first-child) .site-header {
  background: transparent;
}

.site-nav,
.site-nav-mobile {
  left: 0;
  right: 0;
  top: 0;
  z-index: 1200;
  min-height: var(--nav-h);
  background: var(--color-bg-light);
  color: var(--color-fg);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.site-nav {
  height: auto;
  position: absolute;
}

.site-nav-mobile {
  height: var(--nav-h);
  position: fixed;
  transition: background-color 180ms ease-out, border-color 180ms ease-out, color 180ms ease-out;
}

body:has(main > .hero:first-child) .site-nav,
body:has(main > .hero-cards:first-child) .site-nav {
  background: transparent;
  color: var(--color-fg-on-dark);
  border-bottom-color: transparent;
}

body:has(main > .hero:first-child):not(.nav-mob-scrolled):not(.nav-mob-open) .site-nav-mobile,
body:has(main > .hero-cards:first-child):not(.nav-mob-scrolled):not(.nav-mob-open) .site-nav-mobile {
  background: transparent;
  color: var(--color-fg-on-dark);
  border-bottom-color: transparent;
}

body:has(main > .hero:first-child) .site-nav__logo .site-brand__mark,
body:has(main > .hero-cards:first-child) .site-nav__logo .site-brand__mark,
body:has(main > .hero:first-child):not(.nav-mob-scrolled):not(.nav-mob-open) .nav-mob__logo .site-brand__mark,
body:has(main > .hero-cards:first-child):not(.nav-mob-scrolled):not(.nav-mob-open) .nav-mob__logo .site-brand__mark {
  filter: brightness(0) invert(1);
}

body:has(main > .tree-hero:first-child) .site-nav {
  background: transparent;
  color: var(--color-fg-on-light);
  border-bottom-color: transparent;
}

body:has(main > .tree-hero:first-child):not(.nav-mob-scrolled):not(.nav-mob-open) .site-nav-mobile {
  background: transparent;
  color: var(--color-fg-on-light);
  border-bottom-color: transparent;
}

.site-nav__row {
  --nav-row-gap: var(--space-md);
  align-items: center;
  flex-wrap: nowrap;
  min-height: var(--nav-h);
  min-width: 0;
  gap: var(--nav-row-gap);
  padding-block: 0.35rem;
}

.nav-mob__bar {
  height: var(--nav-h);
}

.site-nav__logo {
  height: 100%;
  min-width: 0;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  padding-block: 0;
}

.site-nav__logo.site-brand,
.nav-mob__logo.site-brand {
  color: currentColor;
  font-size: var(--font-sm);
}

.nav__menu-list {
  --nav-menu-gap: calc(var(--space-sm) + .25rem);
  --nav-menu-gap-min: .35rem;
  --nav-menu-link-pad-inline: .18rem;
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: flex-end;
  flex: 1 1 auto;
  flex-wrap: wrap;
  column-gap: var(--nav-menu-gap);
  row-gap: 0.25rem;
  min-width: 0;
  margin-inline-start: auto;
}

.nav__menu-list > * {
  flex: 0 1 auto;
  min-inline-size: max-content;
}

.nav__menu-link {
  color: currentColor;
  font-size: var(--font-xs);
  font-weight: 700;
  text-transform: none;
}

.nav__menu-link {
  display: block;
  padding: 0.42rem var(--nav-menu-link-pad-inline);
  text-decoration: none;
  white-space: nowrap;
}

.nav__menu-link:hover,
.nav__menu-link:focus-visible,
.site-nav a:hover,
.site-nav a:focus-visible {
  text-decoration: none;
}

.site-nav--desktop {
  display: block;
}

.site-nav-mobile {
  display: none;
}

@media (max-width: 1120px) {
  .site-nav--desktop {
    display: none;
  }
  .site-nav-mobile {
    display: block;
  }
}
@media (min-width: 1121px) {
  body:has(main > .tree-hero:first-child) .site-nav {
    position: relative;
  }
}
@media (max-width: 1120px) {
  body:has(main > .tree-hero:first-child) .site-header {
    min-block-size: var(--nav-h);
  }
}
.nav-mob__bar {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center;
  padding: 0 var(--space-sm);
  justify-items: center;
}

.nav-mob__bar--simple {
  grid-template-columns: minmax(0, 1fr);
}

.nav-mob__hamburger,
.nav-mob__spacer {
  width: 48px;
  height: 48px;
}

.nav-mob__hamburger {
  appearance: none;
  border: 0;
  background: transparent;
  color: currentColor;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.nav-mob__hamburger-icon {
  width: 22px;
  height: 2px;
  background: currentColor;
  position: relative;
  display: block;
}

.nav-mob__hamburger-icon::before,
.nav-mob__hamburger-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: currentColor;
}

.nav-mob__hamburger-icon::before {
  top: -7px;
}

.nav-mob__hamburger-icon::after {
  top: 7px;
}

.nav-mob__logo {
  height: 100%;
  padding-block: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nav-mob__overlay {
  position: fixed;
  inset: 0;
  z-index: 1210;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  transition: opacity 240ms ease-out;
  pointer-events: none;
}

.nav-mob__drawer {
  --nav-mob-drawer-w: min(85vw, 360px);
  --nav-mob-drawer-buffer: 1rem;
  position: fixed;
  top: 0;
  bottom: 0;
  left: calc(-1 * var(--nav-mob-drawer-buffer));
  z-index: 1220;
  width: calc(var(--nav-mob-drawer-w) + var(--nav-mob-drawer-buffer));
  background: var(--color-bg-light);
  color: var(--color-fg);
  transform: translateX(-100%);
  transition: transform 260ms ease-in;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  max-height: 100dvh;
  padding-top: env(safe-area-inset-top, 0px);
}

body.nav-mob-open {
  overflow: hidden;
}

body.nav-mob-open .nav-mob__overlay {
  opacity: 1;
  pointer-events: auto;
}

body.nav-mob-open .nav-mob__drawer {
  transform: translateX(0);
  transition-duration: 420ms;
  transition-timing-function: cubic-bezier(0.18, 1.18, 0.32, 1);
}

.nav-mob__drawer-header {
  display: flex;
  justify-content: flex-end;
  padding: 10px 12px 10px calc(12px + var(--nav-mob-drawer-buffer));
}

.nav-mob__close {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--color-fg);
  cursor: pointer;
  display: grid;
  height: 48px;
  padding: 0;
  place-items: center;
  width: 48px;
}

.nav-mob__close-icon {
  display: block;
  height: 22px;
  position: relative;
  width: 22px;
}

.nav-mob__close-icon::before,
.nav-mob__close-icon::after {
  background: currentColor;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  top: 10px;
  width: 22px;
}

.nav-mob__close-icon::before {
  transform: rotate(45deg);
}

.nav-mob__close-icon::after {
  transform: rotate(-45deg);
}

.nav-mob__drawer-content {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 6px 12px 18px calc(12px + var(--nav-mob-drawer-buffer));
}

.nav-mob__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-mob__item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  opacity: 0;
  transform: translateX(-0.85rem);
}

body.nav-mob-open .nav-mob__item {
  animation: nav-mob-item-in 280ms cubic-bezier(0.16, 0.84, 0.26, 1) both;
}

body.nav-mob-open .nav-mob__item:nth-child(1) {
  animation-delay: 80ms;
}

body.nav-mob-open .nav-mob__item:nth-child(2) {
  animation-delay: 120ms;
}

body.nav-mob-open .nav-mob__item:nth-child(3) {
  animation-delay: 160ms;
}

body.nav-mob-open .nav-mob__item:nth-child(4) {
  animation-delay: 200ms;
}

body.nav-mob-open .nav-mob__item:nth-child(5) {
  animation-delay: 240ms;
}

body.nav-mob-open .nav-mob__item:nth-child(6) {
  animation-delay: 280ms;
}

body.nav-mob-open .nav-mob__item:nth-child(7) {
  animation-delay: 320ms;
}

body.nav-mob-open .nav-mob__item:nth-child(8) {
  animation-delay: 360ms;
}

body.nav-mob-closing .nav-mob__item {
  animation: none;
  opacity: 1;
  transform: translateX(0);
}

.nav-mob__row {
  display: block;
}

.nav-mob__row:has(.nav-mob__cta) {
  padding: 10px 6px;
}

.nav-mob__parent-link {
  color: var(--color-fg);
  display: block;
  padding: 14px 6px;
  font-weight: 700;
  text-decoration: none;
}

.nav-mob__cta {
  width: 100%;
}

.nav-mob__parent-link:hover,
.nav-mob__parent-link:focus-visible {
  opacity: 1;
  text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
  .nav-mob__item {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
  .site-nav-mobile,
  .nav-mob__overlay,
  .nav-mob__drawer {
    transition: none !important;
  }
}
@keyframes nav-mob-item-in {
  from {
    opacity: 0;
    transform: translateX(-0.85rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.site-footer {
  --footer-font: var(--font-xs);
  --footer-font-meta: .7rem;
  --footer-font-tagline: 1rem;
  background: var(--color-bg-dark);
  color: var(--color-fg-on-dark);
}

.site-footer p {
  margin: 0;
}

.site-footer__inner {
  padding-block: clamp(3.25rem, 6vw, 4.75rem) clamp(1.35rem, 2.5vw, 2rem);
}

.site-footer__main {
  display: grid;
  gap: clamp(2.25rem, 5vw, 4rem);
}

.site-footer__brand {
  align-content: start;
  display: grid;
  gap: 0.7rem;
  max-inline-size: 38rem;
}

.site-footer__logo {
  color: var(--color-fg-on-dark);
  display: block;
  inline-size: clamp(11rem, 20vw, 14rem);
  line-height: 0;
}

.site-footer__logo-mark {
  aspect-ratio: 716/201;
  background: currentColor;
  display: block;
  inline-size: 100%;
  -webkit-mask: url("/media/svg/logo-horizontal.svg") center/contain no-repeat;
  mask: url("/media/svg/logo-horizontal.svg") center/contain no-repeat;
}

.site-footer__tagline {
  color: var(--color-fg-on-dark);
  font-size: var(--footer-font-tagline);
  font-weight: 700;
  line-height: 1.3;
}

.site-footer__summary {
  color: color-mix(in srgb, var(--color-fg-on-dark) 78%, transparent);
  font-size: var(--footer-font);
  line-height: 1.55;
  max-inline-size: 46ch;
}

.site-footer__column {
  align-content: start;
  display: grid;
  gap: 0.85rem;
}

.site-footer__heading {
  color: color-mix(in srgb, var(--color-fg-on-dark) 58%, transparent);
  font-size: var(--footer-font-meta);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.site-footer__links,
.site-footer__contact {
  display: grid;
  gap: 0.68rem;
}

.site-footer__link,
.site-footer__contact-item {
  color: var(--color-fg-on-dark);
  font-size: var(--footer-font);
  line-height: 1.4;
  text-decoration: none;
}

.site-footer__link {
  inline-size: fit-content;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28em;
  transition: color 180ms ease, text-decoration-color 180ms ease;
}

.site-footer__link--accent {
  color: var(--color-secondary);
  font-weight: 700;
}

.site-footer__contact {
  font-style: normal;
}

.site-footer__contact-item {
  display: grid;
  gap: 0.12rem;
  margin: 0;
  overflow-wrap: anywhere;
}

a.site-footer__contact-item {
  transition: color 180ms ease;
}

.site-footer__contact-label {
  color: color-mix(in srgb, var(--color-fg-on-dark) 58%, transparent);
  font-size: var(--footer-font-meta);
  font-weight: 600;
}

.site-footer__bottom {
  border-block-start: 1px solid color-mix(in srgb, var(--color-fg-on-dark) 18%, transparent);
  color: color-mix(in srgb, var(--color-fg-on-dark) 62%, transparent);
  display: flex;
  flex-direction: column;
  font-size: var(--footer-font-meta);
  gap: 0.5rem;
  justify-content: space-between;
  margin-block-start: clamp(2.25rem, 5vw, 3.75rem);
  padding-block-start: 1.25rem;
}

@media (hover: hover) and (pointer: fine) {
  .site-footer__link:hover {
    color: var(--color-secondary);
    text-decoration-color: currentColor;
  }
  a.site-footer__contact-item:hover {
    color: var(--color-secondary);
  }
}
@media (min-width: 640px) {
  .site-footer__main {
    grid-template-columns: minmax(0, 1.5fr) minmax(9rem, 0.65fr) minmax(13rem, 1fr);
  }
  .site-footer__bottom {
    align-items: center;
    flex-direction: row;
    gap: var(--space-md);
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-footer__link,
  a.site-footer__contact-item {
    transition: none;
  }
}
/* JS-on start state: hidden by default */
html.js [data-anim] {
  opacity: 0;
  transform: translateY(12px);
  filter: none;
}

/* Variant start transforms */
html.js [data-anim=fade] {
  transform: none;
}

html.js [data-anim=fade-up] {
  transform: translateY(0.4em);
}

html.js [data-anim=fade-down] {
  transform: translateY(-0.4em);
}

html.js [data-anim=fade-left] {
  transform: translateX(0.4em);
}

html.js [data-anim=fade-right] {
  transform: translateX(-0.4em);
}

html.js [data-anim=zoom] {
  transform: scale(0.98);
}

html.js [data-anim=pop-out] {
  transform: scale(0.94);
  transform-origin: center;
}

/* Pop-up (replaces fade-up): rise in, overshoot with brightness+scale, settle */
@keyframes anim-pop-up-keyframes {
  0% {
    opacity: 0;
    transform: translateY(0.4em) scale(1);
    filter: brightness(1);
  }
  30% {
    opacity: 1;
    transform: translateY(-0.2em) scale(1);
    filter: brightness(1.3);
    text-shadow: 0 0.1em 2px rgba(0, 0, 0, 0.1254901961);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: brightness(1);
  }
}
@keyframes anim-pop-out-keyframes {
  0% {
    opacity: 0;
    transform: scale(0.94);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
/* Animate in ONLY when anim-in is added */
html.js [data-anim].anim-in {
  opacity: 1;
  transform: none;
  filter: none;
  transition: opacity 600ms ease, transform 600ms ease, filter 600ms ease;
}

/* pop-up: keyframe-based animation with overshoot */
html.js [data-anim=pop-up].anim-in {
  transition: none;
  animation: anim-pop-up-keyframes 300ms ease-out both;
}

html.js [data-anim=pop-out].anim-in {
  transition: none;
  animation: anim-pop-out-keyframes 520ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

html.js [data-anim=pop-up][data-anim-words].anim-in,
html.js [data-anim=pop-up][data-anim-letters].anim-in {
  animation: none;
}

/* If animating words, do NOT animate the container as a whole */
html.js [data-anim=fade-up][data-anim-words].anim-in {
  animation: none;
}

/* If animating letters, do NOT animate the container as a whole */
html.js [data-anim=fade-up][data-anim-letters].anim-in {
  animation: none;
}

/* Words: hide words by default in JS mode; reveal when anim-in is added */
html.js [data-anim-words] .anim-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
}

html.js [data-anim-words].anim-in .anim-word {
  opacity: 1;
  transform: none;
  transition: opacity 600ms ease, transform 600ms ease;
}

html.js [data-anim=pop-up][data-anim-words].anim-in .anim-word {
  transition: none;
  animation: anim-pop-up-keyframes 650ms ease-out both;
}

/* Letters: hide non-space characters by default in JS mode; reveal when anim-in is added */
html.js [data-anim-letters] .anim-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
}

html.js [data-anim-letters].anim-in .anim-char {
  opacity: 1;
  transform: none;
  transition: opacity 600ms ease, transform 600ms ease;
}

html.js [data-anim=pop-up][data-anim-letters].anim-in .anim-char {
  transition: none;
  animation: anim-pop-up-keyframes 650ms ease-out both;
}

/* Prevent letter animations from breaking words across lines */
html.js [data-anim-letters] .anim-letter-word {
  display: inline-block;
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  html.js [data-anim],
  html.js [data-anim-words] .anim-word,
  html.js [data-anim-letters] .anim-char {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}
.button--depth {
  --btn-face: var(--color-primary);
  --btn-depth: var(--color-primary-depth);
  --btn-text: var(--color-bg-light);
  --btn-depth-offset: .12rem;
  --btn-hover-lift: .09rem;
  --btn-hover-overshoot: .17rem;
  --btn-click-start: 0rem;
  --btn-click-mid: calc(var(--btn-depth-offset) * .6);
  --btn-click-bottom: var(--btn-depth-offset);
  --btn-click-rest: calc(var(--btn-depth-offset) * .35);
  --btn-radius: var(--radius);
  --btn-font-size: var(--font-xs);
  --btn-padding-block: .7em;
  --btn-padding-inline: 1.25em;
  align-items: stretch;
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--btn-text);
  cursor: pointer;
  display: inline-grid;
  font-family: inherit;
  font-size: var(--btn-font-size);
  grid-template-areas: "stack";
  isolation: isolate;
  justify-content: stretch;
  justify-items: stretch;
  line-height: 1;
  overflow: visible;
  padding-block-end: var(--btn-depth-offset);
  position: relative;
  text-decoration: none;
  transform: none;
  vertical-align: middle;
}

.button--depth.button-primary {
  --btn-face: var(--color-primary);
  --btn-depth: var(--color-primary-depth);
  --btn-text: var(--color-bg-light);
}

.button--depth.button-secondary {
  --btn-face: var(--color-secondary);
  --btn-depth: var(--color-secondary-depth);
  --btn-text: var(--color-bg-light);
}

.button--depth.button-light,
.button--depth.button-tertiary {
  --btn-face: var(--color-bg-light);
  --btn-depth: var(--color-bg-light-depth);
  --btn-text: var(--color-button-text-dark);
}

.button--depth:hover,
.button--depth:focus-visible {
  text-decoration: none;
}

.button--depth .button__under,
.button--depth .button__front {
  border-radius: var(--btn-radius);
  grid-area: stack;
  min-inline-size: 0;
}

.button--depth .button__under {
  align-self: stretch;
  background: var(--btn-depth);
  block-size: 100%;
  inline-size: 100%;
  justify-self: stretch;
  pointer-events: none;
  transform: translateY(var(--btn-depth-offset));
  z-index: 0;
}

.button--depth .button__front {
  align-items: center;
  background: var(--btn-face);
  color: var(--btn-text);
  display: inline-flex;
  font: inherit;
  justify-content: center;
  padding: var(--btn-padding-block) var(--btn-padding-inline);
  position: relative;
  transition: transform 240ms cubic-bezier(0.16, 1.72, 0.28, 1);
  white-space: nowrap;
  will-change: transform;
  z-index: 1;
}

.button--depth .button__label,
.button--depth:hover .button__label,
.button--depth:focus-visible .button__label {
  transform: none;
  transition: none;
}

.button--depth.button-primary:active,
.button--depth.button-secondary:active,
.button--depth.button-tertiary:active,
.button--depth.button-light:active {
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  .button--depth:hover {
    --btn-click-start: calc(-1 * var(--btn-hover-lift));
  }
  .button--depth:hover .button__front {
    animation: depth-button-hover 210ms cubic-bezier(0.16, 0.84, 0.26, 1) both;
    transform: translateY(calc(-1 * var(--btn-hover-lift)));
  }
}
.button--depth:active .button__front {
  animation: depth-button-click 240ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  transform: translateY(var(--btn-click-rest));
  transition-duration: 0ms;
}

.button--depth:focus-visible {
  outline: 2px solid var(--btn-depth);
  outline-offset: 4px;
}

.button--depth[aria-disabled=true] .button__front,
.button--depth:disabled .button__front {
  animation: none;
  transform: none;
  transition: none;
}

form:has(:invalid) button[type=submit].button--depth {
  --btn-click-start: 0rem;
}

form:has(:invalid) button[type=submit].button--depth .button__front,
form:has(:invalid) button[type=submit].button--depth:hover .button__front,
form:has(:invalid) button[type=submit].button--depth:active .button__front {
  animation: none;
  transform: none;
  transition: none;
}

form:has(:invalid) button[type=submit].button--depth .button__label,
form:has(:invalid) button[type=submit].button--depth:hover .button__label,
form:has(:invalid) button[type=submit].button--depth:active .button__label {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .button--depth .button__front {
    animation: none;
    transition: none;
  }
}
@keyframes depth-button-click {
  0% {
    transform: translateY(var(--btn-click-start));
  }
  42% {
    transform: translateY(var(--btn-click-mid));
  }
  56% {
    transform: translateY(var(--btn-click-bottom));
  }
  100% {
    transform: translateY(var(--btn-click-rest));
  }
}
@keyframes depth-button-hover {
  0% {
    transform: translateY(0);
  }
  36% {
    transform: translateY(calc(-1 * var(--btn-hover-overshoot)));
  }
  100% {
    transform: translateY(calc(-1 * var(--btn-hover-lift)));
  }
}
.tree-detail-bg {
  --tree-detail-bg: var(--color-bg-light);
  --tree-detail-fill: var(--color-cream-soft);
  --tree-detail-width: max(100vw, 64rem);
  background: var(--tree-detail-bg);
  isolation: isolate;
  overflow: clip;
  position: relative;
}

.tree-detail-bg::before {
  aspect-ratio: 5131/1951;
  background: var(--tree-detail-fill);
  content: "";
  inline-size: var(--tree-detail-width);
  inset-block-end: 0;
  inset-inline-start: 50%;
  -webkit-mask-image: url("/media/svg/trees-detail.svg");
  -webkit-mask-position: center bottom;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% auto;
  mask-image: url("/media/svg/trees-detail.svg");
  mask-position: center bottom;
  mask-repeat: no-repeat;
  mask-size: 100% auto;
  pointer-events: none;
  position: absolute;
  transform: translate3d(-50%, 0, 0);
  z-index: -1;
}

.tree-detail-bg > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 520px) {
  .tree-detail-bg {
    --tree-detail-width: 58rem;
  }
}
.card-link {
  --card-link-bg: var(--color-cream-soft);
  --card-link-border: var(--color-cream-detail);
  --card-link-shadow: rgba(64, 51, 44, .13);
  --card-link-depth: 3px;
  --card-link-lift: 2px;
  --card-link-radius: var(--radius);
  --card-link-inset: 6px;
  color: var(--color-fg-on-light);
  cursor: pointer;
  display: grid;
  grid-template-areas: "stack";
  padding-block-end: var(--card-link-depth);
  position: relative;
  text-decoration: none;
}

.card-link:hover,
.card-link:focus-visible {
  text-decoration: none;
}

.card-link__shadow,
.card-link__surface {
  border-radius: var(--card-link-radius);
  grid-area: stack;
}

.card-link__shadow {
  background: var(--card-link-shadow);
  pointer-events: none;
  transform: translateY(var(--card-link-depth));
  transition: opacity 160ms ease-out;
  z-index: 0;
}

.card-link__surface {
  align-items: center;
  background: var(--card-link-bg);
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: minmax(0, 1fr) auto;
  min-block-size: 100%;
  padding: clamp(1.05rem, 2.4vw, 1.35rem) clamp(1.1rem, 2.6vw, 1.5rem);
  position: relative;
  transform: translateY(0);
  transition: transform 210ms cubic-bezier(0.16, 0.84, 0.26, 1);
  z-index: 1;
}

.card-link__surface::before {
  border: 1px solid var(--card-link-border);
  border-radius: calc(var(--card-link-radius) - var(--card-link-inset));
  content: "";
  inset: var(--card-link-inset);
  pointer-events: none;
  position: absolute;
}

.card-link__content {
  display: grid;
  gap: 0.35rem;
  min-inline-size: 0;
  position: relative;
  z-index: 1;
}

.card-link__content h3 {
  color: var(--color-fg-heading-on-light);
  font-size: var(--font-card-heading);
  font-weight: 750;
  line-height: 1.15;
}

.card-link__content p {
  color: color-mix(in srgb, var(--color-fg-on-light) 86%, transparent);
  font-size: var(--font-sm);
  line-height: 1.55;
  margin: 0;
}

.card-link__icon {
  align-items: center;
  color: var(--color-fg-on-light);
  display: inline-grid;
  inline-size: 2.35rem;
  justify-items: center;
  position: relative;
  z-index: 1;
}

.card-link__icon::before {
  aspect-ratio: 1;
  background: currentColor;
  content: "";
  inline-size: 0.95rem;
  -webkit-mask: url("/media/svg/arrow-right.svg") center/contain no-repeat;
  mask: url("/media/svg/arrow-right.svg") center/contain no-repeat;
}

.card-link:focus-visible {
  outline: none;
}

.card-link:focus-visible .card-link__surface {
  outline: 2px solid var(--card-link-border);
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  .card-link:hover .card-link__surface {
    transform: translateY(calc(-1 * var(--card-link-lift)));
  }
  .card-link:hover .card-link__shadow {
    opacity: 0.9;
  }
}
.card-link:active .card-link__surface {
  transform: translateY(var(--card-link-depth));
  transition-duration: 80ms;
}

.card-link:active .card-link__shadow {
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .card-link__surface,
  .card-link__shadow {
    transition: none;
  }
}
.feature-card {
  --feature-card-bg: var(--color-cream-soft);
  --feature-card-border: var(--color-cream-detail);
  --feature-card-shadow: rgba(64, 51, 44, .13);
  --feature-card-depth: 3px;
  --feature-card-radius: var(--radius);
  --feature-card-inset: 6px;
  color: var(--color-fg-on-light);
  display: grid;
  grid-template-areas: "stack";
  min-inline-size: 0;
  padding-block-end: var(--feature-card-depth);
  position: relative;
}

.feature-card__shadow,
.feature-card__surface {
  border-radius: var(--feature-card-radius);
  grid-area: stack;
}

.feature-card__shadow {
  background: var(--feature-card-shadow);
  pointer-events: none;
  transform: translateY(var(--feature-card-depth));
  z-index: 0;
}

.feature-card__surface {
  background: var(--feature-card-bg);
  min-block-size: 100%;
  padding: clamp(1.2rem, 2.4vw, 1.55rem);
  position: relative;
  z-index: 1;
}

.feature-card__surface::before {
  border: 1px solid var(--feature-card-border);
  border-radius: calc(var(--feature-card-radius) - var(--feature-card-inset));
  content: "";
  inset: var(--feature-card-inset);
  pointer-events: none;
  position: absolute;
}

.feature-card__content {
  display: grid;
  gap: 0.65rem;
  position: relative;
  z-index: 1;
}

.feature-card__icon {
  block-size: 2rem;
  color: var(--color-primary);
  display: inline-grid;
  inline-size: 2rem;
  line-height: 0;
  place-items: center;
}

.feature-card__icon svg {
  block-size: 100%;
  inline-size: 100%;
}

.feature-card__icon svg [fill]:not([fill=none]) {
  fill: currentColor !important;
}

.feature-card__icon svg [stroke]:not([stroke=none]) {
  stroke: currentColor !important;
}

.feature-card__content h3 {
  color: var(--color-primary);
  font-size: var(--font-card-heading);
  font-weight: 750;
  line-height: 1.15;
  margin: 0;
}

.feature-card__content p,
.feature-card__content .content-list {
  color: color-mix(in srgb, var(--color-fg-on-light) 86%, transparent);
  font-size: var(--font-sm);
  line-height: 1.55;
  margin: 0;
}

.feature-card__content .content-list {
  gap: 0.35rem;
}

.topic-list {
  display: grid;
  gap: var(--space-md) var(--space-sm);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: var(--space-sm) 0 0;
  padding: 0;
  width: 100%;
}

.topic-list__item {
  align-content: start;
  align-items: center;
  display: grid;
  gap: 0.75rem;
  grid-template-rows: auto 1fr;
  justify-items: center;
  min-inline-size: 0;
  text-align: center;
}

.topic-list__marker {
  align-self: start;
  background: var(--color-primary);
  border-radius: 50%;
  block-size: 1.2rem;
  display: block;
  inline-size: 1.2rem;
}

.topic-list__icon {
  align-self: start;
  block-size: 2.75rem;
  color: var(--color-primary);
  display: grid;
  inline-size: 2.75rem;
  line-height: 0;
  place-items: center;
}

.topic-list__icon svg {
  block-size: 100%;
  display: block;
  inline-size: 100%;
}

.topic-list__icon svg [fill]:not([fill=none]) {
  fill: currentColor;
}

.topic-list__icon svg [stroke]:not([stroke=none]) {
  stroke: currentColor;
}

.topic-list__title {
  color: var(--color-primary);
  font-size: var(--font-xs);
  font-weight: 700;
  line-height: 1.3;
  margin: 0;
  max-inline-size: 16ch;
}

@media (min-width: 640px) {
  .topic-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1040px) {
  .topic-list {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
.icon-detail-list {
  display: grid;
}

.icon-detail-list__item {
  align-items: start;
  border-block-end: 1px solid color-mix(in srgb, var(--color-fg-on-dark) 24%, transparent);
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: 3.25rem minmax(0, 1fr);
  padding-block: clamp(1rem, 2.4vw, 1.35rem);
}

.icon-detail-list__item:first-child {
  padding-block-start: 0;
}

.icon-detail-list__item:last-child {
  border-block-end: 0;
  padding-block-end: 0;
}

.icon-detail-list__icon {
  block-size: 3.25rem;
  color: var(--color-fg-on-dark);
  display: grid;
  inline-size: 3.25rem;
  line-height: 0;
  place-items: center;
}

.icon-detail-list__icon svg {
  block-size: 100%;
  display: block;
  inline-size: 100%;
}

.icon-detail-list__icon svg [fill]:not([fill=none]) {
  fill: currentColor !important;
}

.icon-detail-list__icon svg [stroke]:not([stroke=none]) {
  stroke: currentColor !important;
}

.icon-detail-list__content {
  display: grid;
  gap: 0.35rem;
}

.icon-detail-list__content h3 {
  color: var(--color-fg-on-dark);
  font-size: var(--font-card-heading);
  font-weight: 750;
  line-height: 1.15;
  margin: 0;
}

.icon-detail-list__content p {
  color: color-mix(in srgb, var(--color-fg-on-dark) 86%, transparent);
  font-size: var(--font-sm);
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 520px) {
  .icon-detail-list__item {
    grid-template-columns: 2.75rem minmax(0, 1fr);
  }
  .icon-detail-list__icon {
    block-size: 2.75rem;
    inline-size: 2.75rem;
  }
}
.education-features {
  padding-block: clamp(3.75rem, 8vw, 6.5rem);
}

.education-features__inner {
  display: grid;
  gap: clamp(var(--space-md), 4vw, var(--space-lg));
  justify-items: center;
}

.education-features__header {
  display: grid;
  gap: var(--space-xs);
  justify-items: center;
  max-inline-size: 50rem;
  text-align: center;
}

.education-features__header h2 {
  color: var(--color-fg-heading-on-light);
}

.education-features__copy {
  color: color-mix(in srgb, var(--color-fg-on-light) 86%, transparent);
  font-size: var(--font-sm);
  line-height: 1.55;
  margin-block-start: 0.25rem;
  max-inline-size: 58ch;
}

.education-features__copy p {
  margin: 0;
}

.education-method {
  color: var(--color-bg-light);
  display: grid;
  gap: 0.75rem;
  max-inline-size: 36rem;
}

.education-method__icon {
  block-size: 2.25rem;
  color: var(--color-bg-light);
  display: inline-grid;
  inline-size: 2.25rem;
  line-height: 0;
  place-items: center;
}

.education-method__icon svg {
  block-size: 100%;
  inline-size: 100%;
}

.education-method__icon svg [fill]:not([fill=none]) {
  fill: currentColor !important;
}

.education-method__icon svg [stroke]:not([stroke=none]) {
  stroke: currentColor !important;
}

.education-method h2 {
  color: var(--color-bg-light);
  font-size: var(--font-lg);
  margin: 0;
}

.education-method p {
  font-size: var(--font-sm);
  line-height: 1.65;
  margin: 0;
}

/* Single source of truth */
/* Inclusive max for a breakpoint “band” (next-min - epsilon) */
/* Core media helper */
/* Common “human” mixins */
.feature-pair {
  inline-size: 100%;
  overflow: hidden;
}

.feature-pair__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 900px) {
  .feature-pair__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.stacked-media-feature {
  --stacked-feature-bg: var(--color-primary);
  --stacked-feature-fg: var(--color-bg-light);
  background: var(--stacked-feature-bg);
  color: var(--stacked-feature-fg);
  display: grid;
  grid-template-rows: auto auto;
  min-inline-size: 0;
}

.stacked-media-feature--depth {
  --stacked-feature-bg: var(--color-primary-depth);
}

.stacked-media-feature__media {
  min-block-size: clamp(14rem, 56vw, 20rem);
  overflow: hidden;
  position: relative;
}

.stacked-media-feature__media > picture,
.stacked-media-feature__media > picture > img,
.stacked-media-feature__media > img,
.stacked-media-feature__media > video {
  block-size: 100%;
  inline-size: 100%;
}

.stacked-media-feature__media > picture {
  display: block;
}

.stacked-media-feature__media > picture > img,
.stacked-media-feature__media > img,
.stacked-media-feature__media > video {
  object-fit: cover;
}

.stacked-media-feature__panel {
  align-items: center;
  background: var(--stacked-feature-bg);
  color: var(--stacked-feature-fg);
  display: flex;
  padding-block: clamp(var(--space-lg), 9vw, var(--space-xl));
}

.stacked-media-feature__inner {
  inline-size: 100%;
  padding-inline: max(var(--container-pad-inline), env(safe-area-inset-left));
}

.stacked-media-feature--media-top .stacked-media-feature__media,
.stacked-media-feature--media-bottom .stacked-media-feature__panel {
  grid-row: 1;
}

.stacked-media-feature--media-top .stacked-media-feature__panel,
.stacked-media-feature--media-bottom .stacked-media-feature__media {
  grid-row: 2;
}

@media (min-width: 900px) {
  .stacked-media-feature {
    block-size: clamp(42rem, 52vw, 46rem);
    grid-row: 1;
    min-block-size: 0;
  }
  .stacked-media-feature--media-top {
    grid-template-rows: 30% 70%;
  }
  .stacked-media-feature--media-bottom {
    grid-template-rows: 70% 30%;
  }
  .stacked-media-feature--left {
    grid-column: 1;
  }
  .stacked-media-feature--right {
    grid-column: 2;
  }
  .stacked-media-feature__media {
    min-block-size: 0;
  }
  .stacked-media-feature__panel {
    padding-block: var(--space-xl);
  }
  .stacked-media-feature__inner {
    inline-size: min(50vw - var(--container-pad-inline), var(--container-max-lg) / 2);
    padding-inline: 0;
  }
  .stacked-media-feature--left .stacked-media-feature__inner {
    margin-inline-start: auto;
    padding-inline-end: clamp(var(--space-md), 4vw, var(--space-xl));
  }
  .stacked-media-feature--right .stacked-media-feature__inner {
    margin-inline-end: auto;
    padding-inline-start: clamp(var(--space-md), 4vw, var(--space-xl));
  }
}
.bento-grid {
  --bento-gap: .6rem;
  display: grid;
  gap: var(--bento-gap);
  grid-auto-flow: dense;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bento-tile {
  --bento-tile-bg: var(--color-bg-light);
  --bento-tile-fg: var(--color-fg-on-light);
  --bento-tile-heading: var(--color-primary);
  --bento-tile-radius: calc(var(--radius) + 4px);
  --bento-tile-padding: 1.15rem;
  --bento-title-size: var(--font-card-heading);
  align-content: start;
  background: var(--bento-tile-bg);
  border-radius: var(--bento-tile-radius);
  color: var(--bento-tile-fg);
  display: grid;
  gap: 0.6rem;
  grid-column: span min(var(--bento-col-span-mobile, 2), 2);
  min-block-size: var(--bento-min-mobile, 10.25rem);
  order: var(--bento-order-mobile, initial);
  padding: var(--bento-tile-padding);
}

.bento-tile--cream {
  --bento-tile-bg: var(--color-bg-light);
  --bento-tile-fg: var(--color-fg-on-light);
  --bento-tile-heading: var(--color-primary);
}

.bento-tile--green {
  --bento-tile-bg: var(--color-primary-soft);
  --bento-tile-fg: var(--color-bg-light);
  --bento-tile-heading: var(--color-bg-light);
}

.bento-tile__icon {
  block-size: 2rem;
  color: var(--bento-tile-heading);
  display: inline-grid;
  inline-size: 2rem;
  line-height: 0;
  place-items: center;
}

.bento-tile__icon svg {
  block-size: 100%;
  inline-size: 100%;
}

.bento-tile__icon svg [fill]:not([fill=none]) {
  fill: currentColor !important;
}

.bento-tile__icon svg [stroke]:not([stroke=none]) {
  stroke: currentColor !important;
}

.bento-tile__title {
  color: var(--bento-tile-heading);
  font-size: var(--bento-title-size);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 0.98;
  max-inline-size: 16ch;
}

.bento-tile__body {
  color: var(--bento-tile-fg);
  font-size: var(--font-sm);
  line-height: 1.55;
  margin: 0;
  max-inline-size: 35ch;
}

.bento-tile--featured {
  --bento-title-size: 1.45rem;
  gap: 0.8rem;
}

.bento-tile--featured .bento-tile__title {
  max-inline-size: 13ch;
}

.bento-grid--compact .bento-tile__body {
  max-inline-size: 29ch;
}

.bento-grid--compact .bento-tile:not(.bento-tile--featured) {
  --bento-title-size: var(--font-sm);
}

.content-page__section--soft .bento-grid--compact .bento-tile--cream {
  --bento-tile-bg: var(--color-cream-soft);
}

@media (min-width: 700px) {
  .bento-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .bento-tile {
    grid-column: span min(var(--bento-col-span-tablet, 3), 6);
    min-block-size: var(--bento-min-tablet, 11rem);
    order: initial;
    padding: 1.35rem;
  }
  .bento-tile--featured {
    --bento-title-size: 1.65rem;
  }
  .bento-grid--compact .bento-tile:not(.bento-tile--featured) {
    --bento-title-size: var(--font-card-heading);
  }
}
@media (min-width: 1060px) {
  .bento-grid {
    grid-auto-rows: minmax(3.6rem, auto);
    grid-template-columns: repeat(var(--bento-cols), minmax(0, 1fr));
  }
  .bento-tile {
    grid-column: var(--bento-col-start)/span var(--bento-col-span);
    grid-row: var(--bento-row-start)/span var(--bento-row-span);
    min-block-size: var(--bento-min, auto);
    padding: 1.35rem;
  }
  .bento-tile--featured {
    --bento-title-size: 1.85rem;
  }
  .bento-grid--compact {
    grid-auto-rows: auto;
  }
  .bento-grid--compact .bento-tile {
    aspect-ratio: 1;
    min-block-size: 0;
  }
}
.content-page {
  background: var(--color-bg-light);
}

.content-page__hero-copy {
  display: grid;
  gap: var(--space-sm);
  margin-block-start: var(--space-sm);
}

.content-page__hero-copy p,
.content-page__section-body p {
  line-height: 1.65;
  margin: 0;
}

.content-page__hero-actions,
.content-page__section-actions,
.content-page__inline-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-block-start: var(--space-md);
}

.content-page__section {
  padding-block: clamp(3.75rem, 7vw, 6rem);
}

.content-page__section + .content-page__section {
  margin-block-start: 0;
}

.content-page__section--soft {
  background-color: var(--color-bg-light);
}

.content-page__section--green {
  --color-fg-heading: var(--color-fg-on-dark);
  background-color: var(--color-primary);
  color: var(--color-fg-on-dark);
}

.content-page__section--green .content-page__section-header h2 {
  color: var(--color-fg-on-dark);
}

.content-page__section--green .content-list li::marker {
  color: var(--color-secondary);
}

.content-page__section--green .content-page__section-body a:not(.button) {
  color: var(--color-fg-on-dark);
  text-decoration-color: var(--color-secondary);
}

.content-page__section--cta {
  background-color: var(--color-bg-light);
  text-align: center;
}

.content-page__section--green.content-page__section--cta {
  background-color: var(--color-primary);
}

.content-page__bento-inner {
  display: grid;
  gap: clamp(var(--space-md), 4vw, var(--space-lg));
}

.content-page__bento-header {
  display: flex;
  justify-content: center;
  text-align: center;
}

.content-page__bento-header h2 {
  color: var(--color-fg-on-dark);
  max-inline-size: 24ch;
}

.content-page__section--soft .content-page__bento-header h2 {
  color: var(--color-fg-heading-on-light);
}

.content-page__section-inner {
  display: grid;
  gap: var(--space-md);
}

.content-page__section-header {
  max-inline-size: 44rem;
}

.content-page__section-intro {
  display: grid;
  gap: 0.6rem;
  margin-block-start: var(--space-sm);
}

.content-page__section-intro p {
  line-height: 1.65;
  margin: 0;
}

.content-page__section--cta .content-page__section-header,
.content-page__section--cta .content-page__section-body {
  justify-self: center;
  max-inline-size: 44rem;
}

.content-page__section--cta .content-page__section-actions,
.content-page__section--cta .content-page__inline-actions {
  justify-content: center;
}

.content-page__section-body {
  display: grid;
  gap: var(--space-md);
  max-inline-size: 64rem;
}

.content-page__section-body > p,
.content-page__section-body > .content-list {
  max-inline-size: 46rem;
}

.content-card-grid,
.content-link-grid {
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  margin-block-start: var(--space-sm);
}

.content-page__section--paths .content-card-grid,
.content-page__section--paths .content-link-grid {
  grid-template-columns: minmax(0, 1fr);
}

.content-page__section--features .content-page__section-header {
  justify-self: center;
  max-inline-size: 52rem;
  position: static;
  text-align: center;
}

.content-page__section--features .content-page__section-body {
  inline-size: 100%;
  max-inline-size: none;
}

.content-page__section--features .content-page__section-body > p {
  justify-self: center;
  max-inline-size: 48rem;
  text-align: center;
}

.content-page__section--features .content-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.content-card {
  align-content: start;
  background: var(--color-cream-soft);
  border-radius: calc(var(--radius) + 4px);
  color: var(--color-fg-on-light);
  display: grid;
  gap: 0.55rem;
  padding: clamp(1.15rem, 2.2vw, 1.5rem);
  position: relative;
}

.content-card::before {
  border: 1px solid var(--color-cream-detail);
  border-radius: var(--radius);
  content: "";
  inset: 6px;
  pointer-events: none;
  position: absolute;
}

.content-card h3 {
  color: var(--color-primary);
  font-size: var(--font-card-heading);
  font-weight: 800;
  line-height: 1.08;
  margin: 0;
  position: relative;
}

.content-card p,
.content-card .content-list {
  font-size: var(--font-sm);
  line-height: 1.55;
  margin: 0;
  position: relative;
}

.content-list {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding-inline-start: 1.2rem;
}

.content-list li::marker {
  color: var(--color-primary);
}

.content-page__form-panel {
  background: var(--color-cream-soft);
  border-radius: calc(var(--radius) + 4px);
  box-shadow: 0 3px 0 rgba(64, 51, 44, 0.1);
  margin-block-start: var(--space-sm);
  padding: clamp(1rem, 3vw, 1.6rem);
}

.content-page__form {
  display: grid;
  gap: var(--space-sm);
}

.content-page__form-grid {
  display: grid;
  gap: var(--space-sm);
}

.content-page__form .button {
  justify-self: start;
}

.content-page__form .hp-field {
  block-size: 1px;
  inline-size: 1px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
}

@media (min-width: 860px) {
  .content-page__section-inner {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
  .content-page__section-header {
    position: sticky;
    top: calc(var(--nav-h) + var(--space-md));
  }
  .content-page__section--cta .content-page__section-inner {
    grid-template-columns: 1fr;
  }
  .content-page__section--features .content-page__section-inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .content-page__section--cta .content-page__section-header {
    position: static;
  }
}
@media (min-width: 640px) {
  .content-page__form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.referral-form {
  --field-bg: var(--color-bg-light);
  --field-bg-muted: var(--color-bg-light-depth);
  --field-border: color-mix(in srgb, var(--color-cream-detail) 78%, var(--color-primary));
  --field-border-hover: var(--color-cream-detail);
  --field-border-focus: var(--color-primary);
  --field-text: var(--color-fg-on-light);
  --field-placeholder: color-mix(in srgb, var(--color-fg-on-light) 52%, transparent);
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent);
  gap: clamp(1rem, 2.5vw, 1.4rem);
}

.referral-form .wizard-step {
  gap: var(--space-sm);
}

.referral-form .form-field label {
  color: var(--color-fg-on-light);
  font-size: var(--font-xs);
  font-weight: 650;
}

.referral-form .form-field input:not([type=checkbox]),
.referral-form .form-field select,
.referral-form .form-field textarea {
  border-radius: var(--radius);
  box-shadow: none;
}

.referral-form .wizard-actions {
  margin-block-start: 0.15rem;
}

.referral-form .content-page__form-submit {
  justify-self: start;
  margin: 0;
}

.referral-form .wizard-status,
.referral-form .form-notice {
  border: 1px solid color-mix(in srgb, var(--field-border-error) 28%, transparent);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--field-border-error) 7%, var(--color-bg-light));
  padding: 0.75rem 0.9rem;
}

.referral-form .wizard-success,
.wizard-form--complete {
  color: var(--color-fg-on-light);
  min-block-size: clamp(12rem, 30vw, 16rem);
}

.referral-form .wizard-success h3,
.wizard-form--complete h3 {
  color: var(--color-fg-heading-on-light);
  font-size: var(--font-lg);
}

.referral-form .wizard-success p,
.wizard-form--complete p {
  font-size: var(--font-sm);
  line-height: 1.6;
}

.referral-form .wizard-success__icon,
.wizard-form--complete .wizard-success__icon {
  background: var(--color-primary);
  color: var(--color-bg-light);
}

@media (min-width: 640px) {
  .referral-form .wizard-step {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.decorative-hero {
  --decorative-hero-content-w: 42rem;
  --color-fg-heading: var(--color-fg-on-dark);
  align-items: flex-end;
  background: var(--color-primary);
  color: var(--color-fg-on-dark);
  display: flex;
  isolation: isolate;
  min-block-size: clamp(32rem, 78vh, 46rem);
  min-block-size: clamp(32rem, 78svh, 46rem);
  overflow: hidden;
  position: relative;
}

.decorative-hero__media {
  background: var(--color-bg-muted);
  inset: 0;
  overflow: hidden;
  position: absolute;
  z-index: 0;
}

.decorative-hero__media {
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
}

.decorative-hero__media > img,
.decorative-hero__media > picture,
.decorative-hero__media > picture > img,
.decorative-hero__media > video {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}

.decorative-hero__overlay {
  background: linear-gradient(to bottom, rgba(20, 42, 32, 0.84) 0%, rgba(20, 42, 32, 0.52) 24%, rgba(20, 42, 32, 0.2) 54%, rgba(20, 42, 32, 0.52) 100%), linear-gradient(to right, rgba(20, 42, 32, 0.78) 0%, rgba(20, 42, 32, 0.58) 52%, rgba(20, 42, 32, 0.18) 100%);
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

.decorative-hero__content-wrapper {
  min-inline-size: 0;
  padding-block: calc(var(--nav-h) + clamp(var(--space-lg), 8vw, var(--space-xl))) clamp(3rem, 9vw, 5rem);
  position: relative;
  z-index: 2;
}

.decorative-hero__content {
  inline-size: min(100%, var(--decorative-hero-content-w));
  min-inline-size: 0;
}

.decorative-hero__content h1 {
  max-inline-size: 18ch;
  text-wrap: balance;
}

.decorative-hero__content .content-page__hero-copy {
  max-inline-size: 56ch;
}

.decorative-hero .sup {
  color: var(--color-fg-on-dark);
}

@media (min-width: 900px) {
  .decorative-hero {
    min-block-size: clamp(36rem, 72vh, 48rem);
    min-block-size: clamp(36rem, 72svh, 48rem);
  }
  .decorative-hero__content-wrapper {
    padding-block-end: clamp(4rem, 8vw, 6.5rem);
  }
}
.decorative-hero--no-media {
  background: var(--color-primary);
  min-block-size: 28rem;
}

.decorative-hero--no-media .decorative-hero__content-wrapper {
  padding-block: calc(var(--nav-h) + var(--space-xl)) var(--space-xl);
}

@media (max-width: 699px) {
  .decorative-hero__overlay {
    background: linear-gradient(to bottom, rgba(20, 42, 32, 0.84) 0%, rgba(20, 42, 32, 0.48) 26%, rgba(20, 42, 32, 0.28) 52%, rgba(20, 42, 32, 0.64) 100%), rgba(20, 42, 32, 0.14);
  }
}
.tree-hero {
  --tree-hero-svg-width: max(100vw, 76rem);
  --tree-hero-svg-height: calc(var(--tree-hero-svg-width) * 0.2601832);
  background: var(--color-primary);
  color: var(--color-fg-on-dark);
  isolation: isolate;
  overflow: clip;
  position: relative;
}

.tree-hero::before {
  background: linear-gradient(to bottom, var(--color-bg-light) 0 88%, var(--color-primary) 88% 100%);
  block-size: var(--tree-hero-svg-height);
  content: "";
  inset-block-start: 0;
  inset-inline: 0;
  position: absolute;
  z-index: -1;
}

.tree-hero__graphic {
  aspect-ratio: 5131/1335;
  backface-visibility: hidden;
  block-size: var(--tree-hero-svg-height);
  inline-size: var(--tree-hero-svg-width);
  inset-block-start: 0;
  inset-inline-start: 50%;
  pointer-events: none;
  position: absolute;
  transform: translate3d(-50%, 0, 0);
  -webkit-backface-visibility: hidden;
  z-index: 0;
}

.tree-hero__svg {
  backface-visibility: hidden;
  block-size: 100%;
  display: block;
  inline-size: 100%;
  max-inline-size: none;
  overflow: visible;
  transform: translate3d(0, 0, 0) scale(1.001);
  transform-origin: center bottom;
  -webkit-backface-visibility: hidden;
}

.tree-hero__svg #layer-1 {
  fill: var(--color-primary) !important;
}

.tree-hero__parallax-layer {
  will-change: transform;
}

.tree-hero__content {
  padding-block: calc(var(--tree-hero-svg-height) * 0.5) clamp(4rem, 9vw, 7rem);
  position: relative;
  z-index: 1;
}

.tree-hero__copy {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-inline: auto;
  max-inline-size: 52rem;
  text-align: center;
}

.tree-hero__heading {
  color: var(--color-bg-light);
  display: flex;
  flex-direction: column;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 0.95;
  text-shadow: 0 0.08em 0.2em color-mix(in srgb, var(--color-fg-heading-on-light) 72%, transparent);
  text-wrap: balance;
}

.tree-hero__heading-main {
  display: block;
  font-size: 1.9rem;
  font-weight: 800;
}

.tree-hero__heading-script {
  display: block;
  font-family: var(--font-cursive);
  font-size: 2.45rem;
  font-weight: 100;
  line-height: 0.78;
  margin-block-start: 0.12em;
}

.tree-hero__lede {
  color: var(--color-bg-light);
  font-size: var(--font-sm);
  font-weight: 400;
  line-height: 1.6;
  max-inline-size: 47rem;
  text-shadow: 0 2px 10px color-mix(in srgb, var(--color-fg-heading-on-light) 65%, transparent);
}

.tree-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  justify-content: center;
}

@media (min-width: 700px) {
  .tree-hero__heading-main {
    font-size: 2.65rem;
  }
  .tree-hero__heading-script {
    font-size: 3.5rem;
  }
}
@media (min-width: 1100px) {
  .tree-hero__heading-main {
    font-size: 3.25rem;
  }
  .tree-hero__heading-script {
    font-size: 4.3rem;
  }
}
@media (max-width: 520px) {
  .tree-hero {
    --tree-hero-svg-width: 68rem;
  }
  .tree-hero__content {
    padding-block-end: 3.5rem;
  }
  .tree-hero__actions {
    inline-size: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tree-hero__parallax-layer {
    will-change: auto;
  }
}
.hero-cards {
  --hc-bg-min-h: min(80vh, 800px);
  --hc-container-w: var(--container-w-md);
  --hc-top-padding-extra: 0px;
  position: relative;
  display: grid;
  grid-auto-rows: auto;
}
@media (min-width: 600px) {
  .hero-cards {
    display: grid;
    grid-template-columns: minmax(var(--container-pad-inline), 1fr) var(--hc-container-w) minmax(var(--container-pad-inline), 1fr);
    grid-template-rows: 10rem 1fr 8rem minmax(10rem, auto);
    gap: var(--space-md);
    padding: 0;
  }
}

.hero-cards--container-xs {
  --hc-container-w: var(--container-w-xs);
}

.hero-cards--container-sm {
  --hc-container-w: var(--container-w-sm);
}

.hero-cards--container-md {
  --hc-container-w: var(--container-w-md);
}

.hero-cards--container-lg {
  --hc-container-w: var(--container-w-lg);
}

.hero-cards--container-xl {
  --hc-container-w: var(--container-w-xl);
}

.hero-cards--page-top {
  --hc-top-padding-extra: clamp(var(--space-md), 4vw, var(--space-xl));
}

.hero-cards__bg {
  position: relative;
  min-height: var(--hc-bg-min-h);
  overflow: hidden;
  grid-row: 1;
  grid-column: 1;
}
@media (min-width: 600px) {
  .hero-cards__bg {
    grid-row: 1/4;
    grid-column: 1/4;
  }
}

.hero-cards__top {
  --color-fg-heading: var(--color-fg-on-dark);
  grid-row: 1;
  grid-column: 1;
  display: flex;
  flex-direction: column;
  justify-content: end;
  color: var(--color-fg-on-dark);
  z-index: 1;
  margin-top: var(--space-xl);
  padding: var(--space-dy);
  padding-block-start: calc(var(--space-dy) + var(--hc-top-padding-extra));
}
@media (min-width: 600px) {
  .hero-cards__top {
    grid-column: 2;
    grid-row: 1/3;
  }
}

.hero-cards__cards {
  z-index: 1;
  padding: var(--space-dy);
}
@media (min-width: 600px) {
  .hero-cards__cards {
    grid-column: 2;
    grid-row: 3/-1;
    padding: unset;
  }
}

.icon--sm {
  height: 50px;
  width: 50px;
}

.split-feature {
  --split-feature-media-bg: var(--color-primary-depth);
  position: relative;
  width: 100%;
}

.split-feature__bleed {
  display: grid;
  grid-template-columns: 1fr;
  position: relative;
  background: var(--color-primary);
}

.split-feature__bleed::after {
  content: "";
  grid-column: 1;
  grid-row: 2;
  background: var(--split-feature-media-bg);
  z-index: 0;
}

.split-feature__panel {
  min-height: 16rem;
  position: relative;
  z-index: 1;
}

.split-feature__panel--text {
  --color-fg-heading: var(--color-fg-on-dark);
  background: var(--color-primary);
  color: var(--color-fg-on-dark);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-md);
  padding-block: clamp(var(--space-lg), 8vw, var(--space-xl));
  padding-inline: max(var(--container-pad-inline), env(safe-area-inset-right));
  padding-inline-start: max(var(--container-pad-inline), env(safe-area-inset-left));
}

.split-feature__text {
  display: grid;
  gap: var(--space-sm);
  max-inline-size: 36rem;
  width: 100%;
}

.split-feature__text h2,
.split-feature__text p {
  margin: 0;
}

.split-feature__text p {
  line-height: 1.65;
}

.split-feature__copy {
  display: grid;
  gap: var(--space-sm);
}

.split-feature__actions {
  align-items: center;
  flex-wrap: wrap;
}

.split-feature:not(.split-feature--reverse) .split-feature__panel--text .sup {
  color: var(--color-fg-on-dark);
}

.split-feature__panel--media {
  position: relative;
  overflow: hidden;
  min-height: clamp(16rem, 40vw, 24rem);
  background: var(--split-feature-media-bg);
}

.split-feature__panel--media > img,
.split-feature__panel--media > picture,
.split-feature__panel--media > picture > img,
.split-feature__panel--media > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 600px) {
  .split-feature {
    --split-feature-center-half: calc(var(--container-w-lg) / 2);
  }
  .split-feature__bleed {
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--split-feature-center-half)) minmax(0, var(--split-feature-center-half)) minmax(0, 1fr);
  }
  .split-feature__bleed::after {
    grid-column: 3/5;
    grid-row: 1;
    margin-inline-start: calc(-1 * var(--space-md));
  }
  .split-feature__panel {
    min-height: clamp(20rem, 36vw, 28rem);
  }
  .split-feature__panel--text {
    grid-row: 1;
    grid-column: 2;
    padding-block: clamp(var(--space-xl), 6vw, var(--space-2xl));
    padding-inline: clamp(var(--space-lg), 3vw, var(--space-xl));
  }
  .split-feature:not(.split-feature--reverse) .split-feature__panel--text {
    padding-inline-start: 0;
  }
  .split-feature--reverse .split-feature__panel--text {
    padding-inline-end: 0;
  }
  .split-feature__panel--media {
    grid-row: 1;
    grid-column: 3;
    min-height: clamp(20rem, 36vw, 28rem);
  }
}
.split-feature--reverse .split-feature__panel--text {
  --color-fg-heading: var(--color-fg-heading-on-light);
  background: var(--color-bg-muted);
  color: var(--color-fg-on-light);
}

.split-feature--reverse .split-feature__panel--media {
  --split-feature-media-bg: var(--color-primary-depth);
}

@media (min-width: 600px) {
  .split-feature--reverse .split-feature__panel--text {
    grid-column: 3;
  }
  .split-feature--reverse .split-feature__panel--media {
    grid-column: 2;
  }
}
.accordion {
  display: grid;
  gap: var(--space-sm);
}

.accordion__item {
  border: 1px solid color-mix(in srgb, var(--color-fg) 12%, transparent);
  border-radius: var(--radius-lg);
  background: var(--color-bg-light);
  overflow: hidden;
}

.accordion__heading {
  margin: 0;
}

.accordion__toggle {
  width: 100%;
  border: 0;
  padding: 1rem 1rem 0.95rem;
  background: transparent;
  color: inherit;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-sm);
  align-items: center;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.accordion__toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-primary) 65%, var(--color-bg-light));
  outline-offset: -2px;
}

.accordion__label {
  font-weight: 700;
}

.accordion__icon {
  position: relative;
  width: 1rem;
  height: 1rem;
}

.accordion__icon::before,
.accordion__icon::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 0.78rem;
  height: 2px;
  background: currentcolor;
  transform: translate(-50%, -50%);
  transform-origin: center;
  transition: transform var(--anim-transition-slow);
}

.accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.accordion__toggle[aria-expanded=true] .accordion__icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.accordion__panel {
  height: 0;
  overflow: hidden;
  transition: height 220ms ease-out;
}

.accordion__panel-inner {
  padding: 0 1rem 1rem;
}

@media (prefers-reduced-motion: reduce) {
  .accordion__panel,
  .accordion__icon::before,
  .accordion__icon::after {
    transition: none !important;
  }
}
.pill {
  --pill-accent: var(--color-primary);
  --pill-surface: var(--color-fg-on-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.pill-secondary {
  --pill-accent: var(--color-secondary);
  --pill-surface: var(--color-fg-on-light);
}

.pill-tertiary {
  --pill-accent: var(--color-fg-on-dark);
  --pill-surface: var(--color-fg-on-light);
}

.pill__main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.28em 0.62em;
  border: 1px solid var(--pill-accent);
  border-radius: 999px;
  background-color: var(--pill-accent);
  color: var(--pill-surface);
}

.pill__label {
  display: inline-block;
}

.pill.inverted .pill__main,
.pill-outline .pill__main {
  background-color: transparent;
  color: var(--pill-accent);
}

:root {
  --color-primary: #1F7053;
  --color-primary-depth: #1A6047;
  --color-secondary: #FA9162;
  --color-secondary-depth: #EF7B47;
  --color-accent: var(--color-secondary);
  --color-primary-soft: #509F83;
  --color-bg-light: #FAF8F2;
  --color-bg-light-depth: #EDE4D7;
  --color-cream-soft: #F6EEE1;
  --color-cream-detail: #E4CBA3;
  --color-bg: var(--color-bg-light);
  --color-bg-muted: color-mix(in srgb, var(--color-primary) 7%, var(--color-bg-light));
  --color-bg-dark: #294A3A;
  --color-fg-on-light: #294A3A;
  --color-fg-on-dark: var(--color-bg-light);
  --color-fg-heading-on-light: #294A3A;
  --color-fg-heading: var(--color-fg-heading-on-light);
  --color-fg: var(--color-fg-on-light);
  --color-button-text-dark: #40332C;
  --font-body: 'Poppins', system-ui, sans-serif;
  --font-display: 'Poppins', system-ui, sans-serif;
  --font-heading: var(--font-display);
  --font-cursive: 'Fuggles', cursive;
  --font-xs: .8rem;
  --font-sm: .85rem;
  --font-md: 1.1rem;
  --font-lg: 1.65rem;
  --font-xl: 2.35rem;
  --font-card-heading: 1rem;
  --shadow-soft: 0 .8rem 2rem rgba(31, 112, 83, .13);
  --shadow-card: var(--shadow-soft);
}

@media (min-width: 700px) {
  :root {
    --font-card-heading: 1.1rem;
  }
}
body {
  --nav-h: 72px;
  background: var(--color-bg-light);
  color: var(--color-fg);
  padding-top: 0;
}

/*
  Default pages start below the fixed/absolute nav with a small breathing gap.
  First-screen heroes handle nav clearance themselves, and TreeHero keeps the
  nav in its own vertical space, so those layouts should not receive main padding.
*/
main {
  padding-bottom: 0;
  padding-top: calc(var(--nav-h) + var(--space-md));
}

main:has(> .hero:first-child),
main:has(> .hero-cards:first-child),
main:has(> .tree-hero:first-child) {
  padding-top: 0;
}

main > .hero:first-child .hero-content-wrapper,
main > .hero-cards:first-child .hero-cards__top {
  padding-block-start: calc(var(--nav-h) + var(--space-dy) + var(--hc-top-padding-extra, 0px));
}

main > .hero-cards:first-child .hero-cards__top {
  margin-top: 0;
}

main > .hero:first-child .overlay,
main > .hero-cards:first-child .overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.4) 18%, rgba(0, 0, 0, 0.3) 50%);
}

.hero-content .sup,
.hero-cards__top .sup {
  color: var(--color-fg-on-dark);
}

/* Pines pages are composed as continuous, full-width component bands. */
main > * + * {
  margin-block-start: 0;
}

.site-brand {
  color: inherit;
  display: inline-flex;
  font-family: var(--font-display);
  font-size: var(--font-sm);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.1;
  text-decoration: none;
}

.site-brand__mark {
  block-size: calc(var(--nav-h) - 1rem);
  inline-size: auto;
  max-inline-size: 100%;
  transition: filter 180ms ease-out;
}

.site-brand:hover {
  text-decoration: none;
}

.home-who,
.care-paths {
  padding-block: clamp(3.75rem, 8vw, 6.5rem);
}

.home-who__layout,
.care-paths__layout {
  align-items: start;
  display: grid;
  gap: clamp(var(--space-md), 5vw, var(--space-xl));
}

.home-who__intro,
.care-paths__intro {
  max-inline-size: 28rem;
}

.home-who__intro h2,
.care-paths__intro h2 {
  color: var(--color-fg-heading-on-light);
}

.home-who__copy,
.care-paths__copy {
  color: color-mix(in srgb, var(--color-fg-on-light) 88%, transparent);
  line-height: 1.6;
  max-inline-size: 32rem;
}

.care-paths__copy p {
  margin: 0;
}

.home-who__cards,
.care-paths__cards {
  display: grid;
  gap: var(--space-sm);
}

@media (min-width: 820px) {
  .home-who__layout,
  .care-paths__layout {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}
.home-difference {
  background: var(--color-primary);
  color: var(--color-bg-light);
  padding-block: clamp(4rem, 8vw, 6.5rem);
}

.home-difference__inner {
  display: grid;
  gap: clamp(var(--space-md), 4vw, var(--space-lg));
}

.home-difference__header {
  align-items: center;
  display: flex;
  justify-content: center;
  text-align: center;
}

.home-difference__header h2 {
  color: var(--color-bg-light);
}

.home-difference__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  justify-content: center;
}

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