.site-footer {
  position: relative;
  overflow: hidden;
  background: var(--indigo-deep);
  color: var(--white);
}


.footer-bg {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 0;
  width: 80%;
  line-height: 0;
  pointer-events: none;
}
.footer-bg img { display: block; width: 100%; height: auto; }

.site-footer .container,
.footer-divider,
.footer-copy { position: relative; z-index: 1; }

.site-footer .footer-inner { padding: 72px 0 42px; }


.footer-brand { display: block; padding-top: 4px; }
.footer-brand img { width: 220px; height: auto; display: block; }


.site-footer h4 {
  color: var(--white);
  font-weight: var(--weight-medium);
  font-size: var(--text-md);
  text-transform: uppercase;
  margin: 0 0 16px;
  line-height: 1.3;
}
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: 8px; }
.site-footer li a {
  color: var(--white);
  font-size: 14px;
  font-weight: var(--weight-light);
  line-height: 1.4;
  transition: opacity var(--duration-fast) ease;
}
.site-footer li a:hover { color: var(--white); opacity: .72; }

/* The footer is the site-wide nav on a phone, and its links sat ~18px tall
   with 8px between them — small targets, close together, which is the
   combination that produces mis-taps. Below md they become full-width rows
   tall enough to hit. Desktop keeps the tighter list.

   Keyed to width, not `(hover: none)`: the width is what actually correlates
   with a thumb here, and a hover query cannot be verified in headless Chrome,
   which always reports `hover: hover`. */
@media (max-width: 767.98px) {
  .site-footer li { margin-bottom: 0; }
  .site-footer li a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  /* Those 44px rows lengthen the footer, so the space around them comes back
     down to compensate: the four columns stack here, and `gy-5` puts 48px
     between each — far more separation than stacked groups need once every
     row is a comfortable height. The 220px logo shrinks for the same reason. */
  .site-footer .footer-inner { --bs-gutter-y: 1.75rem; }
  .footer-brand img { width: 150px; }
}


.footer-divider { margin-top: 8px; }
.footer-divider hr {
  border: 0;
  border-top: 1px solid rgba(var(--white-rgb), .45);
  margin: 0;
  opacity: 1;
}
.footer-copy {
  text-align: center;
  color: var(--white);
  font-size: 14px;
  padding: 24px 0 40px;
  margin: 0;
}
.footer-copy a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity var(--duration-fast) ease;
}
.footer-copy a:hover { opacity: .72; }


@media (max-width: 991.98px) {
  .site-footer .footer-inner { padding: 56px 0 32px; }
}


.link-note { opacity: .7; font-size: .9em; }
