.site-footer {
  background:
    radial-gradient(circle at 8% 12%, rgb(46 107 88 / 9%), transparent 30rem),
    var(--color-forest-950);
  border-block-start: var(--border-width-hairline) solid rgb(255 255 255 / 10%);
  color: var(--color-text-inverse);
  padding: 0;
}

.footer-top,
.site-footer__inner {
  align-items: start;
  display: grid;
  gap: clamp(2.5rem, 4vw, 4.75rem);
  grid-template-columns: minmax(14rem, 1.2fr) repeat(3, minmax(0, 1fr));
  margin-inline: auto;
  max-width: var(--width-content);
  padding: clamp(4rem, 6vw, 6rem) var(--space-gutter) clamp(3.5rem, 5vw, 4.75rem);
}

.footer-column { min-width: 0; }

.footer-identity {
  align-content: start;
  display: grid;
  gap: 1.5rem;
  justify-items: start;
}

.footer-brand,
.footer-brand.brand,
.site-footer__brand {
  flex: none;
  height: auto;
  justify-content: flex-start;
  width: auto;
}

.footer-brand img,
.site-footer__brand img {
  height: 2.1875rem;
  width: auto;
}

.footer-location {
  color: rgb(238 244 240 / 58%);
  font: var(--font-weight-regular) 0.8125rem/1.55 var(--font-family-body);
  font-style: normal;
  letter-spacing: 0;
  margin: 0;
  text-transform: none;
}

.footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.footer-socials a {
  align-items: center;
  border: var(--border-width-hairline) solid rgb(238 244 240 / 16%);
  border-radius: 50%;
  color: rgb(238 244 240 / 72%);
  display: grid;
  height: 2.5rem;
  place-items: center;
  text-decoration: none;
  transition:
    background-color var(--duration-hover) var(--ease-out),
    border-color var(--duration-hover) var(--ease-out),
    color var(--duration-hover) var(--ease-out);
  width: 2.5rem;
}

.footer-socials svg {
  fill: none;
  height: 1rem;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 1rem;
}

.footer-socials [data-social="linkedin"] svg { fill: currentColor; stroke: none; }

.footer-heading {
  color: rgb(238 244 240 / 42%);
  font: var(--weight-eyebrow) var(--type-eyebrow)/1.2 var(--font-family-body);
  letter-spacing: 0.18em;
  margin: 0 0 1.35rem;
  text-transform: uppercase;
}

.footer-list,
.footer-top nav ul,
.site-footer__inner nav ul,
.site-footer .family-network__grid {
  display: grid;
  gap: 0.72rem;
  grid-template-columns: minmax(0, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-list li,
.footer-top nav li,
.site-footer__inner nav li,
.family-network__grid li { display: block; }

.footer-list a,
.footer-top nav a,
.site-footer__inner nav a,
.family-network__link {
  color: rgb(238 244 240 / 66%);
  display: inline-flex;
  font: var(--font-weight-regular) 0.9375rem/1.45 var(--font-family-body);
  letter-spacing: 0;
  text-decoration: none;
  text-transform: none;
  transition: color var(--duration-hover) var(--ease-out);
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
  background: rgb(169 232 204 / 8%);
  border-color: rgb(169 232 204 / 36%);
  color: var(--color-white);
}

.footer-list a:hover,
.footer-list a:focus-visible,
.footer-top nav a:hover,
.footer-top nav a:focus-visible,
.site-footer__inner nav a:hover,
.site-footer__inner nav a:focus-visible,
.family-network__link:hover,
.family-network__link:focus-visible { color: var(--color-white); }

.family-network { background: transparent; }

.family-network__name {
  color: inherit;
  display: inline;
}

.family-network__mark {
  flex: 0 0 auto;
  filter: grayscale(1) brightness(1.35);
  height: 0.875rem;
  margin: 0.18rem 0.55rem 0 0;
  object-fit: contain;
  opacity: 0.28;
  transition:
    filter var(--duration-hover) var(--ease-out),
    opacity var(--duration-hover) var(--ease-out);
  width: 0.875rem;
}

.family-network__link:hover .family-network__mark,
.family-network__link:focus-visible .family-network__mark {
  opacity: 0.58;
}

.family-network__link[aria-current="page"] {
  color: var(--color-white);
  font-weight: 600;
}

.family-network__link[aria-current="page"] .family-network__mark {
  filter: brightness(0) saturate(100%) invert(90%) sepia(13%) saturate(953%) hue-rotate(95deg) brightness(98%) contrast(89%);
  opacity: 1;
}

.footer-bottom,
.site-footer__legal {
  border-block-start: var(--border-width-hairline) solid var(--color-border-inverse);
  color: var(--color-text-inverse-muted);
  padding: calc(2rem - var(--border-width-hairline)) var(--space-gutter) 2rem;
  text-align: start;
}

.footer-bottom__inner {
  margin-inline: auto;
  max-width: calc(var(--width-content) - (2 * var(--space-gutter)));
}

.footer-disclosures {
  display: grid;
  gap: 1rem;
}

.footer-bottom p,
.site-footer__legal p {
  color: rgb(238 244 240 / 48%);
  font: 300 0.75rem/1.65 var(--font-family-body);
  margin: 0;
  max-width: none;
  text-align: start;
  text-wrap: pretty;
}

.footer-meta {
  color: rgb(238 244 240 / 72%);
  font: var(--font-weight-regular) 0.8125rem/1.5 var(--font-family-body);
}

.footer-disclosures + .footer-meta {
  margin-block-start: 1.5rem;
}

.footer-bottom span,
.site-footer__legal span {
  color: inherit;
  font-size: inherit;
}

.site-footer__legal .preview-note { margin-block-start: var(--space-5); }

@media (max-width: 64rem) {
  .footer-top,
  .site-footer__inner {
    gap: 3rem 2rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .footer-identity {
    align-items: center;
    gap: 2rem;
    grid-column: 1 / -1;
    grid-template-columns: minmax(12rem, 1.2fr) minmax(12rem, 1fr) auto;
  }

  .footer-socials { justify-self: end; }
}

@media (max-width: 47.9375rem) {
  .footer-top,
  .site-footer__inner {
    gap: 0;
    grid-template-columns: minmax(0, 1fr);
    padding-block: 2.5rem 2rem;
    text-align: center;
  }

  .footer-identity {
    gap: 1rem;
    grid-column: auto;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    padding-block-end: 1.5rem;
  }

  .footer-brand,
  .footer-brand.brand,
  .site-footer__brand { justify-content: center; }

  .footer-socials {
    justify-content: center;
    justify-self: auto;
  }

  .footer-column:not(.footer-identity) {
    border-block-start: var(--border-width-hairline) solid rgb(255 255 255 / 10%);
    padding-block: 1.5rem;
  }

  .footer-column:last-child { padding-block-end: 0; }

  .footer-heading { margin-block-end: 0.85rem; }

  .footer-list,
  .footer-top nav ul,
  .site-footer__inner nav ul,
  .site-footer .family-network__grid {
    gap: 0;
    justify-items: center;
  }

  .footer-list a,
  .footer-top nav a,
  .site-footer__inner nav a,
  .family-network__link {
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    text-align: center;
  }

  .footer-bottom,
  .site-footer__legal {
    padding-block: calc(1.5rem - var(--border-width-hairline)) 1.5rem;
  }

  .footer-disclosures { justify-items: center; }

  .footer-bottom p,
  .site-footer__legal p { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .footer-socials a,
  .footer-list a,
  .footer-top nav a,
  .site-footer__inner nav a,
  .family-network__link,
  .family-network__mark { transition: none; }
}
