/* Compact shared website footer. All selectors are scoped to avoid changing page layouts. */
footer.ne-footer {
  background: #4a2f73;
  color: #fff;
  padding: 2rem max(1.25rem, calc((100% - 1200px) / 2)) 1.25rem;
  font-family: inherit;
  text-align: left;
}
.ne-footer, .ne-footer * { box-sizing: border-box; }
.ne-footer .ne-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr) minmax(0, .9fr);
  align-items: start;
  gap: 2rem;
}
.ne-footer .ne-footer-brand img { display: block; width: 92px; height: 104px; object-fit: contain; margin: 0 0 .5rem; }
.ne-footer .ne-footer-tagline { margin: 0; color: #fff; font-size: 1.15rem; font-weight: 600; line-height: 1.4; }
.ne-footer .ne-footer-heading { margin: 0 0 .5rem; color: #e4d9f4; font-size: .75rem; font-weight: 600; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.ne-footer a, .ne-footer button {
  color: #fff;
  font: inherit;
  font-size: .92rem;
  line-height: 1.5;
  text-decoration: none;
  text-underline-offset: .22em;
}
.ne-footer a:hover, .ne-footer button:hover { color: #fff; text-decoration: underline; }
.ne-footer a:focus-visible, .ne-footer button:focus-visible { outline: 3px solid #4ecdc4; outline-offset: 4px; border-radius: 3px; }
.ne-footer .ne-footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }
.ne-footer .ne-footer-contact > a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; overflow-wrap: anywhere; }
.ne-footer .ne-footer-contact > .ne-footer-book {
  margin-top: .5rem; padding: .65rem 1.1rem; background: #fff; color: #4a2f73;
  border: 1px solid #fff; border-radius: 6px; font-weight: 600;
}
.ne-footer .ne-footer-book:hover { background: #eee7f8; color: #4a2f73; }
.ne-footer .ne-footer-links { margin: 0; padding: 0; list-style: none; }
.ne-footer .ne-footer-links li { margin: 0; padding: 0; }
.ne-footer .ne-footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.ne-footer .ne-footer-bottom { margin-top: 1.5rem; padding-top: .85rem; border-top: 1px solid #ffffff40; }
.ne-footer .ne-footer-details { margin: 0; color: #e4d9f4; font-size: .78rem; line-height: 1.6; }
.ne-footer .ne-footer-legal { display: flex; flex-wrap: wrap; gap: .1rem 1.25rem; margin-top: .15rem; padding-right: 180px; }
.ne-footer .ne-footer-legal a, .ne-footer .ne-footer-legal button { display: inline-flex; align-items: center; min-height: 44px; padding: 0; font-size: .8rem; }
.ne-footer .ne-footer-legal button { background: none; border: 0; cursor: pointer; text-align: left; }
@media (max-width: 800px) {
  .ne-footer .ne-footer-top { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1.5rem; }
  .ne-footer .ne-footer-resources { grid-column: 1 / -1; }
  .ne-footer .ne-footer-links { display: flex; flex-wrap: wrap; gap: .1rem 1.25rem; }
  .ne-footer .ne-footer-legal { padding-right: 0; }
  footer.ne-footer { padding-bottom: 5rem; }
}
@media (max-width: 520px) {
  .ne-footer .ne-footer-top { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .ne-footer .ne-footer-brand { display: flex; align-items: center; gap: 1rem; }
  .ne-footer .ne-footer-brand img { flex: 0 0 64px; width: 64px; height: 76px; margin: 0; }
  .ne-footer .ne-footer-tagline { font-size: 1.05rem; }
  .ne-footer .ne-footer-contact > a { font-size: .88rem; }
}
@media (forced-colors: active) {
  footer.ne-footer { background: Canvas; color: CanvasText; border-top: 1px solid CanvasText; }
  .ne-footer a { color: LinkText; }
  .ne-footer button, .ne-footer p, .ne-footer .ne-footer-heading { color: CanvasText; }
  .ne-footer .ne-footer-book { border: 1px solid ButtonText; }
}
