.c-loader__wrapper {
  @include flex-column;
  flex: 1 1 auto;
  position: relative;
  min-height: 0;
  min-width: 0;

  &.c-loader__wrapper--block {
    box-shadow: $box-shadow;

    .c-loader {
      position: relative;
      top: unset;
      left: unset;
      right: unset;
      bottom: unset;
    }
  }

  &.c-loader__wrapper--full-height {
    height: 100%;
  }

  &.c-loader__wrapper--no-shadow {
    box-shadow: none;
  }

  .c-loader {
    @include flex-center;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: pxToRem(15px) 0;
    background-color: rgba(255, 255, 255, 0.4);
    z-index: $index-lg;

    &.c-loader--page {
      position: fixed;

      .c-loader__icon {
        border: 20px solid transparent;
        width: pxToRem(200px);
        height: pxToRem(200px);
        border-bottom-color: $color-primary;
        border-top-color: $color-primary;
      }
    }
  }

  .c-loader__icon {
    border-radius: 50%;
    border: 10px solid transparent;
    border-bottom-color: $color-primary;
    border-top-color: $color-primary;
    animation: 1s loader-animation linear infinite;
    width: pxToRem(100px);
    height: pxToRem(100px);
  }

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