/**
 * Footer Component Styles
 *
 * Site footer with navigation grid, logos, and bottom bar.
 */

.c--footer {
  /* Private variables (internal use) */
  --_footer_f-s: var(--footer_f-s, inherit);
  --_footer_l-h: var(--footer_l-h, inherit);
  --_footer_bg: var(--footer_bg, var(--c-white));
  --_footer_c: var(--footer_c, var(--body_c));
  --_footer_p-b: var(--footer_p-b, var(--scale-1600) var(--scale-1300));
  --_footer_p-i: var(--footer_p-i, 0px);
  --_footer_gap: var(--footer_gap, var(--scale-600));

  --nav_link_c: var(--_footer_c);
  --nav_link_c_h: var(--c-gray-700);

  --block-label_c: var(--_footer_c);

  /* Colors */
  background: var(--_footer_bg);
  color: var(--_footer_c);

  /* Typography */
  font-size: var(--_footer_f-s);
  line-height: var(--_footer_l-h);
}

.c--footer .wrapper {
    width: var(--container_m-w, 100%);
    margin-inline: auto;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    grid-template-areas: var(--_footer_wrapper_g-t-a,
      "nav nav"
      "mr mr"
      "ml ml"
      "br br"
      "bl bl"
    );
    grid-gap: 0px 0px;
    gap: var(--_footer_gap);
    padding-block: var(--_footer_p-b);
    padding-inline: var(--_footer_p-i);
  }

@media (min-width: 48rem) {

.c--footer {
    --_footer_b-r_j-i: flex-end;
    --_footer_m-r_j-i: flex-end;
    --_footer_wrapper_g-t-a: "nav nav" "ml mr" "bl br"
}
  }

.footer__navigation {
  grid-area: nav;
  padding-bottom: calc(7.5rem - var(--_footer_gap));
  display: grid;
  grid-gap: 4.25rem;
  grid-template-columns: repeat(auto-fit, minmax(min(7.5rem, 100%), 1fr));
}

.footer__middle-left {
  grid-area: ml;
  padding-bottom: calc(2rem - var(--_footer_gap));
}

.footer__middle-right {
  grid-area: mr;
  justify-items: var(--_footer_m-r_j-i, initial);
  align-content: flex-end;
}

.footer__bottom-left {
  grid-area: bl;
}

.footer__bottom-right {
  grid-area: br;
  justify-items: var(--_footer_b-r_j-i, initial);
}

.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1.5rem;
  padding-block: 1rem;
  font-size: 0.8125rem;
}

.footer__bottom .footer__copyright {
  margin: 0;
}

.footer__bottom-menu ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer__bottom-menu a {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

@media (max-width: 47.9375rem) {
  .footer__bottom {
    justify-content: center;
    text-align: center;
  }
}

.c--footer {
  --footer_p-b: 3.75rem 2.5rem;
  --footer_gap: 2.5rem;
  /* The global token is responsive; keep gutters instead of a flat 1410px. */
  --container_m-w: min(88.125rem, calc(100% - 2.5rem));
}

/* The About block is inset inside the container; funding and bottom bar are not. */
.footer__navigation .field__item:has(.c--two-column),
.footer__navigation .field__item:has(.c--logos) {
  padding-inline: 2.5rem;
}

.footer__navigation .field--name-field-paragraphs > .field__item + .field__item {
  margin-block-start: 2.5rem;
}

.footer__navigation .field__item:has(.c--two-column) + .field__item {
  margin-block-start: 1.875rem;
}

.footer__navigation .c--two-column h2 {
  margin-block: 0 1.25rem;
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 1.625rem;
  letter-spacing: -0.02em;
  color: #222;
}

.footer__navigation .c--two-column p {
  max-width: 40.625rem;
  margin-block: 0;
  font-size: 0.875rem;
  line-height: 150%;
  color: #555;
}

.footer__bottom {
  font-size: 0.75rem;
  line-height: 2.25rem;
  color: #222;
}

/* The stock named-area grid reserves dead rows for the unused footer regions. */
.c--footer .wrapper {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.footer__bottom {
  width: 100%;
  min-height: 2.25rem;
  padding-block: 0;
}

.footer__bottom-menu {
  margin-inline-start: auto;
  text-align: right;
}

/* Spacing is owned by the wrapper gap. */
.c--footer .footer__navigation,
.c--footer .footer__navigation .block,
.c--footer .footer__navigation .block__content {
  margin-block: 0;
  padding-block: 0;
}

.footer__bottom .footer__copyright,
.footer__bottom-menu .block,
.footer__bottom-menu .block__content,
.footer__bottom-menu nav,
.footer__bottom-menu ul,
.footer__bottom-menu li {
  margin-block: 0;
  padding-block: 0;
}

.footer__bottom-menu a {
  display: inline-block;
  line-height: 2.25rem;
}

/* The menu block renders an empty label heading. */
.footer__bottom-menu .block_label {
  display: none;
}
