
.modal-open, .modal-open body {
  .modal-bg {
    position: fixed;
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: #0c0c0c;
    opacity: 0.75;
    z-index: 5;
  }
}

.modal {
  overflow: auto;
  display: none;
  position: fixed;
  transform: translate3d(0,0,0);
  width: 100%;
  max-height: 90%;
  max-width: 640px;
  background: var(--config-color-background-fade);
  z-index: 1000;
  box-shadow: 0 0 4px rgba(0, 0, 0, .25);
  padding: 30px;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  border-radius: 10px;
  box-sizing: border-box;
  text-align: @config-start;
  white-space: initial;
  line-height: normal;

  @media @phones, @tablets {
    width: ~"calc(100% - 20px)";
  }

  &.full {
    max-width: none;
    max-height: none;
    height: 100%;
    border-radius: 0;
    padding: 80px 120px;

    h1 {
      font-weight: 700;
    }
  }

  &.padding-tiny {
    padding: 5px;
  }

  &.padding-xs {
    padding: 10px;
  }
  
  &.padding-small {
    padding: 15px;
  }

  &.height-tiny {
    > form {
      height: 100px;
    }
  }

  &.height-small {
    > form {
      height: 220px;
    }
  }

  &.width-small {
    max-width: 400px;
  }

  &.width-medium {
    max-width: 500px;
  }

  &.width-large {
    max-width: 800px;
  }

  &.open {
    display: block;
  }

  &button.close {
    display: none;
  }

  &.fill {
    height: 95%;
    max-height: 95%;
    max-width: 75%;
  }

  h1, h2 {
    margin-bottom: 25px;
    margin-top: 0;
    font-size: 20px;
    text-align: @config-start;
  }

  h1, h2, h3, h4 , h5, h6 {
    color: inherit!important;
    line-height: 35px;
  }

  > form, .main {
    position: relative;
    border-top: solid 1px var(--config-border-color);
    padding: 30px 30px 0 30px;
    margin: 0 -30px;

    &.strip {
      border: none;
      padding: 0;
      margin: 0;
    }
  }

  .separator {
    margin: 20px -30px;
  }

  .bullets {
    .func-padding-start(40px);
    
    li {
      .margin-bottom;
      &:before {
        position: absolute;
      }
    }
  }

  .info {
    margin: 0 -30px;
    padding: 20px 30px;
    background: var(--config-modal-note-background);
    color: var(--config-modal-note-color);
    border-top: solid 1px var(--config-modal-note-border);
    border-bottom: solid 1px var(--config-modal-note-border);
  }

  .ide {
    &.strech {
      box-shadow: none;
      border-radius: 0;
      margin: 0 -30px;
    }

    pre {
      overflow: auto;
    }
  } 

  button.close {
    width: 30px;
    height: 30px;
    line-height: 30px;
    padding: 0;
    margin: 0;
    background: var(--config-color-normal);
    color: var(--config-color-background-fade);
    border-radius: 50%;
  }

  .paging {
    form {
      padding: 0;
      margin: 0;
      border-top: none;
    }
  }

  &.sticky-footer {
    form {
      footer {
        margin: -30px;
      }
    }

    footer {
      position: sticky;
      bottom: -30px;
      background: var(--config-color-background-fade-super);
      height: 50px;
      z-index: 1;
      padding: 30px;
      box-shadow: 0 0 1px rgba(0,0,0,.15);

      form {
        display: inline-block;
      }
    }
  }
}