:root {
  --newslettergate-heading: #fff;
  --newslettergate-text: #fff;
  --newslettergate-button-bg: #fff;
  --newslettergate-button-text: #000;
  --newslettergate-background: #000;
}

.newslettergate-loader {
  display: none;
  width: 80px;
  height: 80px;
}
.newslettergate-loader:after {
  content: " ";
  display: block;
  width: 64px;
  height: 64px;
  margin: 8px;
  border-radius: 50%;
  border: 6px solid #fff;
  border-color: #fff transparent #fff transparent;
  animation: newslettergate-loader 1.2s linear infinite;
}

.newslettergate-loading {
  position: relative;

  &:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 20;
  }

  .newslettergate-loader {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 30;
  }
}

@keyframes newslettergate-loader {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}


.newslettergate {
  background: var(--newslettergate-background);
  color: var(--newslettergate-text);
  padding: 20px;
  text-align: center;
  border-radius: 3px;

  * {
    box-sizing: border-box;
  }

  h3 {
    margin: 0 0 .5em 0;
  }



  .newslettergate-form {
    max-width: 300px;
    margin: 1em auto 0;

    input {
      border-radius: 3px;
      width: 100%;
      padding: 10px;
      border: none;
      background: white;
      color: #333;
      height: 40px;
      line-height: 20px;
    }

    .newslettergate-button {
      border-radius: 3px;
      border: none;
      padding: .5em 1.5em;
      height: 40px;
      line-height: 20px;
      background: var(--newslettergate-button-bg);
      color: var(--newslettergate-button-text);
      margin: 20px 0 0 0;
      cursor: pointer;
      transition: all .2s ease-in-out;

      &:hover {
        color: var(--newslettergate-button-bg);
        background: var(--newslettergate-button-text);
      }
    }
  }
}