/* Layout fix for Safari and all browsers */
html, body {
  min-height: 100vh;
  height: 100%;
  display: flex;
  flex-direction: column;
}
body > main,
body > .main-content,
body > .content,
main {
  flex: 1 0 auto;
  min-height: 1px;
  display: block;
}
footer, .footer_section, .footer-section, #footer {
  position: relative !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  z-index: 1;
  width: 100%;
}

/* Safari-specific hack for flexbox min-height issues */
@media not all and (min-resolution:.001dpcm) {
  @supports (-webkit-appearance:none) {
    html, body {
      min-height: 100vh;
      height: 100%;
      display: flex;
      flex-direction: column;
    }
    main {
      flex: 1 0 auto;
      min-height: 1px;
      display: block;
    }
    footer, .footer_section, .footer-section, #footer {
      position: relative !important;
      z-index: 1;
    }
  }
}
