.nsb-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.nsb-contact-submit { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.nsb-contact-submit .button[disabled] { cursor:wait; opacity:.65; }
.nsb-contact-status-wrap { min-height:1.5em; }
.nsb-contact-status { display:inline-block; margin:0; }
.nsb-contact-status.error-msg { color:#a00; }
.nsb-contact-status.success-msg { color:#287a2b; }

/* Keep the footer at the lower edge on short pages. The wrapper expands into
   unused viewport space; on long pages it retains its content height. */
html {
  min-height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  height: auto !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
}

body > .wrapper {
  flex: 1 0 auto;
}

body > .site-footer {
  flex: 0 0 auto;
  margin-top: auto;
}

@media (max-width: 767px) {
  .site-footer .social-networks.textual {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }

  .site-footer .social-networks.textual::before {
    content: "";
    flex-basis: 100%;
    height: .35rem;
    order: 1;
  }

  .site-footer .social-networks.textual .footer-legal-link {
    display: inline-block;
    margin-top: 0;
    order: 2;
  }

  .site-footer .social-networks.textual .footer-legal-link + .footer-legal-link {
    margin-left: .7rem;
    margin-top: 0;
  }
}

/* Portfolio category pages: keep navigation fixed on the left and place the
   selected category title below it. The original theme puts both columns in
   one horizontal row, which causes the navigation to jump to the right. */
.portfolio-container-and-title .portfolio-title-holder {
  align-items: stretch;
  flex-direction: column-reverse;
}

.portfolio-container-and-title .portfolio-title-holder .pt-column-title {
  max-width: none;
  margin-top: 28px;
  padding-right: 0;
}

.portfolio-container-and-title .portfolio-title-holder .pt-column-title + .pt-filters {
  margin-bottom: 0;
  margin-left: 0;
}

.portfolio-container-and-title .portfolio-title-holder .portfolio-root-categories {
  text-align: left;
}

.portfolio-container-and-title .portfolio-title-holder .section-title h1 {
  margin: 0;
}

/* Category subtitles add no useful context on the overview. */
.portfolio-container-and-title .portfolio-title-holder .term-description {
  display: none;
}

/* This also gives the image grid breathing room when "All" has no title. */
.portfolio-container-and-title .portfolio-title-holder + .page-container {
  margin-top: 32px;
}
