// studio - utilities - mixins and extends
// ====================

// mixins - font sizing
@mixin font-size($sizeValue: 16){
  font-size: $sizeValue + px;
  font-size: ($sizeValue/10) + rem;
}

// mixins - line height
@mixin line-height($fontSize: auto){
  line-height: ($fontSize*1.48) + px;
  line-height: (($fontSize/10)*1.48) + rem;
}

// ====================

// mixins - sizing
@mixin size($width: $baseline, $height: $baseline) {
  height: $height;
  width: $width;
}

// mixins - sizing
@mixin square($size: $baseline) {
  @include size($size);
}


// ====================

// mixins - placeholder styling
@mixin placeholder($color) {
  :-moz-placeholder {
    color: $color;
  }
  ::-webkit-input-placeholder {
    color: $color;
  }
  :-ms-input-placeholder {
     color: $color;
  }
}

// ====================

// extends - layout

// used for page/view-level wrappers (for centering/grids)
.wrapper {
  @include clearfix();
  @include box-sizing(border-box);
  width: 100%;
}

// removes list styling/spacing when using uls, ols for navigation and less content-centric cases
.no-list {
  list-style: none;
  margin: 0;
  padding: 0;
  text-indent: 0;

  li {
    margin: 0;
    padding: 0;
  }
}

// extends - image-replacement hidden text
.text-hide {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}

// extends - hidden elems - screenreaders
.text-sr {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

// extends - wrapping
.text-wrap {
  text-wrap: wrap;
  white-space: pre-wrap;
  white-space: -moz-pre-wrap;
  word-wrap: break-word;
}

// extends - visual link
.fake-link {
  cursor: pointer;
}

// extends - functional disable
.disabled {
  pointer-events: none;
  outline: none;
}

// extends - depth levels
.depth0 { z-index: 0; }
.depth1 { z-index: 10; }
.depth2 { z-index: 100; }
.depth3 { z-index: 1000; }
.depth4 { z-index: 10000; }
.depth5 { z-index: 100000; }

// ====================

// extends - buttons
.btn {
  @include box-sizing(border-box);
  @include transition(color 0.25s ease-in-out, border-color 0.25s ease-in-out, background 0.25s ease-in-out, box-shadow 0.25s ease-in-out);
  display: inline-block;
  cursor: pointer;

  &:hover, &:active {

  }

  &.disabled, &[disabled] {
    cursor: default;
    pointer-events: none;
    opacity: 0.5;
  }

  .icon-inline {
    display: inline-block;
    vertical-align: middle;
    margin-right: ($baseline/4);
  }
}

// pill button
.btn-pill {
  @include border-radius($baseline/5);
}

.btn-rounded {
  @include border-radius($baseline/2);
}

// primary button
.btn-primary {
  @extend .btn;
  @extend .btn-pill;
  padding:($baseline/2) $baseline;
  border-width: 1px;
  border-style: solid;
  line-height: 1.5em;
  text-align: center;

  &:hover, &:active {
    @include box-shadow(0 2px 1px $shadow-l1);
  }

  &.current, &.active {
    @include box-shadow(inset 1px 1px 2px $shadow-d1);

    &:hover, &:active {
      @include box-shadow(inset 1px 1px 1px $shadow-d1);
    }
  }
}

// secondary button
.btn-secondary {
  @extend .btn;
  @extend .btn-pill;
  border-width: 1px;
  border-style: solid;
  padding:($baseline/2) $baseline;
  background: transparent;
  line-height: 1.5em;
  text-align: center;

  &:hover, &:active {

  }

  &.current, &.active {

  }
}
