/* ==========================================================================
   Helpers and Utility Classes
   ========================================================================== */

.wrap {
  @include outer-container;
}

.come-in {
  @include transform(translateY(20px));
  @include animation(pop 0.5s ease forwards);
}

.already-visible {
  @include transform(translateY(0));
  @include animation(none);
}

/*
   Hide
   ========================================================================== */

.hidden,
.load {
  display: none;
}

/*
   No scrollbars
   ========================================================================== */

.no-scroll {
  overflow: hidden;
}

/*
   Inline button(s) wrapper
   ========================================================================== */

.inline-btn {
  @include clearfix;
  a, btn {
    display: inline-block;
    margin-right: $gutter / 2;
    &:last-child {
      margin-right: 0;
    }
  }
}

/*
   Shorten measure of text to improve readability
   ========================================================================== */

@include media($medium) {
  .shorten {
    width: percentage(8/12);
  }
}

/*
   Center align text
   ========================================================================== */

.center {
  text-align: center;
}

/*
   Align image to the right
   ========================================================================== */

.image-right {
  display: block;
  margin-left: auto;
  margin-right: auto;
  @include media($medium) {
    float: right;
    margin-left: $gutter;
  }
}

/*
   Thumbnail grid (default)
   ========================================================================== */

.th-grid {
  @include row($direction: LTR);
  @include clearfix;
  margin: 0;
  padding: 0;
  li {
    list-style: none;
    @include span-columns(3);
    @include omega(4n);
    margin-bottom: flex-gutter($grid-columns);
  }
  a {
    img {
      // Image hover animation
      &:hover {
        @include animation(pop .3s 0 linear);
        box-shadow: 0 0 10px rgba($black, .20);
      }
    }
  }
}

/*
   Thumbnail grid (oversized)
   ========================================================================== */

.th-grid-full {
  @include clearfix;
  margin: 0;
  padding: 0;
  @include media($large) {
    margin-right: -29em; // magic number ugh
  }
  @at-root {
    .archive-wrap & {
      margin-right: 0;
    }
  }
  li {
    list-style: none;
    margin-bottom: flex-gutter($grid-columns);
    @include media($micro) {
      @include span-columns(3);
      @include omega(4n);
    }
    @media screen and (min-width: em(480)) and (max-width: em(999)) {
      @include span-columns(3);
      @include omega(4n);
    }
    @include media($large) {
      float: left;
      width: 6.575em;
      margin-right: .25em; // magic number ugh
      margin-bottom: .25em; // magic number ugh
      @include omega(9n);
    }
  }
  a {
    img {
      // Image hover animation
      &:hover {
        @include animation(pop .3s 0 linear);
        box-shadow: 0 0 10px rgba($black, .20);
      }
    }
  }
}