@import 'vars';
@import 'mixins';
@import 'font-awesome.min.css';
@import url('http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic');

/*
	Strata by HTML5 UP
	html5up.net | @n33co
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

$size-header-width: 35%;
$size-header-pad: 4em;

/* Basic */

body {
  background: $color-bg;

  &.is-loading {
    *, *:before, *:after {
      @include vendor-property('animation', 'none !important');
      @include vendor-property('transition', 'none !important');
    }
  }
}

body, input, select, textarea {
  color: $color-fg;
  font-family: $font-family;
  font-size: 16pt;
  font-weight: $font-weight;
  line-height: 1.75em;
}

a {
  @include vendor-property('transition', 'color #{$duration-transition} ease-in-out, border-color #{$duration-transition} ease-in-out');
  border-bottom: dotted 1px;
  color: $color-accent-bg;
  text-decoration: none;

  &:hover {
    border-bottom-color: transparent;
    color: $color-accent-bg !important;
    text-decoration: none;
  }
}

strong, b {
  color: $color-fg-bold;
  font-weight: $font-weight-bold;
}

em, i {
  font-style: italic;
}

p {
  margin: 0 0 $size-element-margin 0;
}

h1, h2, h3, h4, h5, h6 {
  color: $color-fg-bold;
  font-weight: $font-weight-bold;
  line-height: 1em;
  margin: 0 0 ($size-element-margin * 0.5) 0;

  a {
    color: inherit;
    text-decoration: none;
  }
}

h1 {
  font-size: 2em;
  line-height: 1.5em;
}

h2 {
  font-size: 1.5em;
  line-height: 1.5em;
}

h3 {
  font-size: 1.25em;
  line-height: 1.5em;
}

h4 {
  font-size: 1.1em;
  line-height: 1.5em;
}

h5 {
  font-size: 0.9em;
  line-height: 1.5em;
}

h6 {
  font-size: 0.7em;
  line-height: 1.5em;
}

sub {
  font-size: 0.8em;
  position: relative;
  top: 0.5em;
}

sup {
  font-size: 0.8em;
  position: relative;
  top: -0.5em;
}

hr {
  border: 0;
  border-bottom: solid 2px $color-border;

  // This is the *only* instance where we need to rely on margin collapse.
  margin: $size-element-margin 0;

  &.major {
    margin: ($size-element-margin * 1.5) 0;
  }
}

blockquote {
  border-left: solid 6px $color-border;
  font-style: italic;
  margin: 0 0 $size-element-margin 0;
  padding: 0.5em 0 0.5em 1.5em;
}

code {
  background: $color-border-bg;
  border-radius: $size-border-radius;
  border: solid 2px $color-border;
  font-family: $font-family-fixed;
  font-size: 0.9em;
  margin: 0 0.25em;
  padding: 0.25em 0.65em;
}

pre {
  -webkit-overflow-scrolling: touch;
  font-family: $font-family-fixed;
  font-size: 0.9em;
  margin: 0 0 $size-element-margin 0;

  code {
    display: block;
    line-height: 1.75em;
    padding: 1em 1.5em;
    overflow-x: auto;
  }
}

.align-left {
  text-align: left;
}

.align-center {
  text-align: center;
}

.align-right {
  text-align: right;
}

/* Section/Article */

section, article {
  &.special {
    text-align: center;
  }
}

header {
  p {
    color: $color-fg-light;
    position: relative;
    margin: 0 0 ($size-element-margin * 0.75) 0;
  }

  h2 + p {
    font-size: 1.25em;
    margin-top: ($size-element-margin * -0.5);
    line-height: 1.5em;
  }

  h3 + p {
    font-size: 1.1em;
    margin-top: ($size-element-margin * -0.4);
    line-height: 1.5em;
  }

  h4 + p,
  h5 + p,
  h6 + p {
    font-size: 0.9em;
    margin-top: ($size-element-margin * -0.3);
    line-height: 1.5em;
  }

  &.major {
    h2 {
      font-size: 2em;
    }
  }
}

/* Form */

form {
  margin: 0 0 $size-element-margin 0;
}

label {
  color: $color-fg-bold;
  display: block;
  font-size: 0.9em;
  font-weight: $font-weight-bold;
  margin: 0 0 ($size-element-margin * 0.5) 0;
}

input[type="text"],
input[type="password"],
input[type="email"],
select,
textarea {
  @include vendor-property('appearance', 'none');
  background: $color-border-bg;
  border-radius: $size-border-radius;
  border: solid 2px transparent;
  color: inherit;
  display: block;
  outline: 0;
  padding: 0 0.75em;
  text-decoration: none;
  width: 100%;

  &:invalid {
    box-shadow: none;
  }

  &:focus {
    border-color: $color-accent-bg;
  }
}

.select-wrapper {
  @include icon;
  display: block;
  position: relative;

  &:before {
    color: $color-border2;
    content: '\f078';
    display: block;
    height: $size-element-height;
    line-height: $size-element-height;
    pointer-events: none;
    position: absolute;
    right: 0;
    text-align: center;
    top: 0;
    width: $size-element-height;
  }

  select::-ms-expand {
    display: none;
  }
}

input[type="text"],
input[type="password"],
input[type="email"],
select {
  height: $size-element-height;
}

textarea {
  padding: 0.75em;
}

input[type="checkbox"],
input[type="radio"] {
  @include vendor-property('appearance', 'none');
  display: block;
  float: left;
  margin-right: -2em;
  opacity: 0;
  width: 1em;
  z-index: -1;

  & + label {
    @include icon;
    color: $color-fg;
    cursor: pointer;
    display: inline-block;
    font-size: 1em;
    font-weight: $font-weight;
    padding-left: ($size-element-height * 0.6) + 0.75em;
    padding-right: 0.75em;
    position: relative;

    &:before {
      background: $color-border-bg;
      border-radius: $size-border-radius;
      border: solid 2px transparent;
      content: '';
      display: inline-block;
      height: ($size-element-height * 0.6);
      left: 0;
      line-height: ($size-element-height * 0.575);
      position: absolute;
      text-align: center;
      top: 0;
      width: ($size-element-height * 0.6);
    }
  }

  &:checked + label {
    &:before {
      background: $color-fg-bold;
      border-color: $color-fg-bold;
      color: $color-bg;
      content: '\f00c';
    }
  }

  &:focus + label {
    &:before {
      border-color: $color-accent-bg;
    }
  }
}

input[type="checkbox"] {
  & + label {
    &:before {
      border-radius: $size-border-radius;
    }
  }
}

input[type="radio"] {
  & + label {
    &:before {
      border-radius: 100%;
    }
  }
}

::-webkit-input-placeholder {
  color: $color-fg-light !important;
  opacity: 1.0;
}

:-moz-placeholder {
  color: $color-fg-light !important;
  opacity: 1.0;
}

::-moz-placeholder {
  color: $color-fg-light !important;
  opacity: 1.0;
}

:-ms-input-placeholder {
  color: $color-fg-light !important;
  opacity: 1.0;
}

.formerize-placeholder {
  color: $color-fg-light !important;
  opacity: 1.0;
}

/* Box */

.box {
  border-radius: $size-border-radius;
  border: solid 2px $color-border;
  margin-bottom: $size-element-margin;
  padding: 1.5em;

  > :last-child,
  > :last-child > :last-child,
  > :last-child > :last-child > :last-child {
    margin-bottom: 0;
  }

  &.alt {
    border: 0;
    border-radius: 0;
    padding: 0;
  }
}

/* Icon */

.icon {
  @include icon;
  border-bottom: none;
  position: relative;

  > .label {
    display: none;
  }
}

/* Image */

.image {
  border-radius: $size-border-radius;
  border: 0;
  display: inline-block;
  position: relative;

  &:before {
    @include vendor-property('transition', 'opacity #{$duration-transition} ease-in-out');
    background: url('images/overlay.png');
    border-radius: $size-border-radius;
    content: '';
    display: block;
    height: 100%;
    left: 0;
    opacity: 0.5;
    position: absolute;
    top: 0;
    width: 100%;
  }

  &.thumb {
    text-align: center;

    &:after {
      @include vendor-property('transition', 'opacity #{$duration-transition} ease-in-out');
      border-radius: $size-border-radius;
      border: solid 3px rgba(255, 255, 255, 0.5);
      color: #fff;
      content: 'View';
      display: inline-block;
      font-size: 0.8em;
      font-weight: $font-weight-bold;
      left: 50%;
      line-height: 2.25em;
      margin: -1.25em 0 0 -3em;
      opacity: 0;
      padding: 0 1.5em;
      position: absolute;
      text-align: center;
      text-decoration: none;
      top: 50%;
      white-space: nowrap;
    }

    &:hover {
      &:after {
        opacity: 1.0;
      }

      &:before {
        background: url('images/overlay.png'), url('images/overlay.png');
        opacity: 1.0;
      }
    }
  }

  img {
    border-radius: $size-border-radius;
    display: block;
  }

  &.left {
    float: left;
    margin: 0 1.5em 1em 0;
    top: 0.25em;
  }

  &.right {
    float: right;
    margin: 0 0 1em 1.5em;
    top: 0.25em;
  }

  &.left,
  &.right {
    max-width: 40%;

    img {
      width: 100%;
    }
  }

  &.fit {
    display: block;
    margin: 0 0 $size-element-margin 0;
    width: 100%;

    img {
      width: 100%;
    }
  }

  &.avatar {
    border-radius: 100%;

    &:before {
      display: none;
    }

    img {
      border-radius: 100%;
      width: 100%;
    }
  }
}

/* List */

ol {
  list-style: decimal;
  margin: 0 0 $size-element-margin 0;
  padding-left: 1.25em;

  li {
    padding-left: 0.25em;
  }
}

ul {
  list-style: disc;
  margin: 0 0 $size-element-margin 0;
  padding-left: 1em;

  li {
    padding-left: 0.5em;
  }

  &.alt {
    list-style: none;
    padding-left: 0;

    li {
      border-top: solid 2px $color-border;
      padding: 0.5em 0;

      &:first-child {
        border-top: 0;
        padding-top: 0;
      }
    }
  }

  &.icons {
    cursor: default;
    list-style: none;
    padding-left: 0;

    li {
      display: inline-block;
      padding: 0 1em 0 0;

      &:last-child {
        padding-right: 0;
      }

      .icon {
        &:before {
          font-size: 1.5em;
        }
      }
    }
  }

  &.actions {
    cursor: default;
    list-style: none;
    padding-left: 0;

    li {
      display: inline-block;
      padding: 0 ($size-element-margin * 0.5) 0 0;
      vertical-align: middle;

      &:last-child {
        padding-right: 0;
      }
    }

    &.small {
      li {
        padding: 0 ($size-element-margin * 0.25) 0 0;
      }
    }

    &.vertical {
      li {
        display: block;
        padding: ($size-element-margin * 0.5) 0 0 0;

        &:first-child {
          padding-top: 0;
        }

        > * {
          margin-bottom: 0;
        }
      }

      &.small {
        li {
          padding: ($size-element-margin * 0.25) 0 0 0;

          &:first-child {
            padding-top: 0;
          }
        }
      }
    }

    &.fit {
      display: table;
      margin-left: ($size-element-margin * -0.5);
      padding: 0;
      table-layout: fixed;
      width: calc(100% + #{($size-element-margin * 0.5)});

      li {
        display: table-cell;
        padding: 0 0 0 ($size-element-margin * 0.5);

        > * {
          margin-bottom: 0;
        }
      }

      &.small {
        margin-left: ($size-element-margin * -0.25);
        width: calc(100% + #{($size-element-margin * 0.25)});

        li {
          padding: 0 0 0 ($size-element-margin * 0.25);
        }
      }
    }
  }

  &.labeled-icons {
    list-style: none;
    padding: 0;

    li {
      line-height: 1.75em;
      margin: 1.5em 0 0 0;
      padding-left: 2.25em;
      position: relative;

      &:first-child {
        margin-top: 0;
      }

      a {
        color: inherit;
      }

      h3 {
        color: $color-fg-light;
        left: 0;
        position: absolute;
        text-align: center;
        top: 0;
        width: 1em;
      }
    }
  }
}

dl {
  margin: 0 0 $size-element-margin 0;
}

/* Table */

.table-wrapper {
  -webkit-overflow-scrolling: touch;
  overflow-x: auto;
}

table {
  margin: 0 0 $size-element-margin 0;
  width: 100%;

  tbody {
    tr {
      border: solid 1px $color-border;
      border-left: 0;
      border-right: 0;

      &:nth-child(2n + 1) {
        background-color: $color-border-bg;
      }
    }
  }

  td {
    padding: 0.75em 0.75em;
  }

  th {
    color: $color-fg-bold;
    font-size: 0.9em;
    font-weight: $font-weight-bold;
    padding: 0 0.75em 0.75em 0.75em;
    text-align: left;
  }

  thead {
    border-bottom: solid 2px $color-border;
  }

  tfoot {
    border-top: solid 2px $color-border;
  }

  &.alt {
    border-collapse: separate;

    tbody {
      tr {
        td {
          border: solid 2px $color-border;
          border-left-width: 0;
          border-top-width: 0;

          &:first-child {
            border-left-width: 2px;
          }
        }

        &:first-child {
          td {
            border-top-width: 2px;
          }
        }
      }
    }

    thead {
      border-bottom: 0;
    }

    tfoot {
      border-top: 0;
    }
  }
}

/* Button */

input[type="submit"],
input[type="reset"],
input[type="button"],
.button {
  @include vendor-property('appearance', 'none');
  @include vendor-property('transition', 'background-color #{$duration-transition} ease-in-out, color #{$duration-transition} ease-in-out, border-color #{$duration-transition} ease-in-out');
  background-color: transparent;
  border-radius: $size-border-radius;
  border: solid 3px $color-border;
  color: $color-fg-bold !important;
  cursor: pointer;
  display: inline-block;
  font-weight: $font-weight-bold;
  height: 3.15em;
  height: calc(2.75em + 6px);
  line-height: 2.75em;
  min-width: 10em;
  padding: 0 1.5em;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;

  &:hover {
    border-color: $color-accent-bg;
    color: $color-accent-bg !important;
  }

  &:active {
    background-color: transparentize($color-accent-bg, 0.9);
    border-color: $color-accent-bg;
    color: $color-accent-bg !important;
  }

  &.icon {
    padding-left: 1.35em;

    &:before {
      margin-right: 0.5em;
    }
  }

  &.fit {
    display: block;
    margin: 0 0 ($size-element-margin * 0.5) 0;
    min-width: 0;
    width: 100%;
  }

  &.small {
    font-size: 0.8em;
  }

  &.big {
    font-size: 1.35em;
  }

  &.special {
    background-color: $color-accent-bg;
    border-color: $color-accent-bg;
    color: $color-accent-fg-bold !important;

    &:hover {
      background-color: lighten($color-accent-bg, 5);
      border-color: lighten($color-accent-bg, 5);
    }

    &:active {
      background-color: darken($color-accent-bg, 5);
      border-color: darken($color-accent-bg, 5);
    }
  }

  &.disabled,
  &:disabled {
    background-color: $color-border2-bg !important;
    border-color: $color-border2-bg !important;
    color: $color-fg-light !important;
    cursor: default;
  }
}

/* Work Item */

.work-item {
  margin: 0 0 $size-element-margin 0;

  .image {
    margin: 0 0 ($size-element-margin * 0.75) 0;
  }

  h3 {
    font-size: 1em;
    margin: 0 0 ($size-element-margin * 0.25) 0;
  }

  p {
    font-size: 0.8em;
    line-height: 1.5em;
    margin: 0;
  }
}

/* Header */

#header {
  background-color: $color-accent2-bg;
  background-attachment: scroll, fixed;
  background-image: url('images/overlay.png'), url('../images/bg.jpg');
  background-position: top left, top left;
  background-repeat: repeat, no-repeat;
  background-size: auto, auto 100%;
  color: $color-accent2-fg;
  height: 100%;
  left: 0;
  padding: ($size-header-pad * 2) $size-header-pad 0 0;
  position: fixed;
  text-align: right;
  top: 0;
  width: $size-header-width;

  strong, b {
    color: $color-accent2-fg-bold;
  }

  h2, h3, h4, h5, h6 {
    color: $color-accent2-fg-bold;
  }

  h1 {
    color: $color-accent2-fg;
    font-size: 1.35em;
    line-height: 1.75em;
    margin: 0;
  }

  .image.avatar {
    margin: 0 0 ($size-element-margin * 0.5) 0;
    width: 6.25em;
  }
}

/* Footer */

#footer {
  bottom: 0;
  left: 0;
  padding: 0 $size-header-pad ($size-header-pad + $size-element-margin) 0;
  position: fixed;
  text-align: right;
  width: $size-header-width;

  .icons {
    margin: ($size-element-margin * 0.5) 0 0 0;

    a {
      color: $color-accent2-fg-light;
    }
  }

  .copyright {
    color: $color-accent2-fg-light;
    font-size: 0.8em;
    list-style: none;
    margin: ($size-element-margin * 0.5) 0 0 0;
    padding: 0;

    li {
      border-left: solid 1px $color-accent2-border;
      display: inline-block;
      line-height: 1em;
      margin-left: 0.75em;
      padding-left: 0.75em;

      &:first-child {
        border-left: 0;
        margin-left: 0;
        padding-left: 0;
      }

      a {
        color: inherit;
      }
    }
  }
}

/* Main */

#main {
  margin-left: $size-header-width;
  max-width: 50em + $size-header-pad;
  padding: ($size-header-pad * 2) $size-header-pad $size-header-pad $size-header-pad;
  width: calc(100% - #{$size-header-width});

  > section {
    border-top: solid 2px $color-border;
    margin: $size-header-pad 0 0 0;
    padding: $size-header-pad 0 0 0;

    &:first-child {
      border-top: 0;
      margin-top: 0;
      padding-top: 0;
    }
  }
}

/* Poptrox */

@include vendor-keyframes('spin') {
  0% {
    @include vendor-property('transform', 'rotate(0deg)');
  }
  100% {
    @include vendor-property('transform', 'rotate(360deg)');
  }
}

;

.poptrox-popup {
  @include vendor-property('box-sizing', 'content-box');
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
  background: #fff;
  border-radius: $size-border-radius;
  box-shadow: 0 0.1em 0.15em 0 rgba(0, 0, 0, 0.15);
  overflow: hidden;
  padding-bottom: 3em;

  .loader {
    @include icon;
    @include vendor-property('animation', 'spin 1s linear infinite');
    font-size: 1.5em;
    height: 1em;
    left: 50%;
    line-height: 1em;
    margin: -0.5em 0 0 -0.5em;
    position: absolute;
    top: 50%;
    width: 1em;

    &:before {
      content: '\f1ce';
    }
  }

  .caption {
    background: #fff;
    bottom: 0;
    cursor: default;
    font-size: 0.9em;
    height: 3em;
    left: 0;
    line-height: 2.8em;
    position: absolute;
    text-align: center;
    width: 100%;
    z-index: 1;
  }

  .nav-next,
  .nav-previous {
    @include icon;
    @include vendor-property('transition', 'opacity #{$duration-transition} ease-in-out');
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    background: rgba(0, 0, 0, 0.01);
    cursor: pointer;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 50%;

    &:before {
      color: #fff;
      font-size: 2.5em;
      height: 1em;
      line-height: 1em;
      margin-top: -0.75em;
      position: absolute;
      text-align: center;
      top: 50%;
      width: 1.5em;
    }
  }

  .nav-next {
    right: 0;

    &:before {
      content: '\f105';
      right: 0;
    }
  }

  .nav-previous {
    left: 0;

    &:before {
      content: '\f104';
      left: 0;
    }
  }

  .closer {
    @include icon;
    @include vendor-property('transition', 'opacity #{$duration-transition} ease-in-out');
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    color: #fff;
    height: 4em;
    line-height: 4em;
    opacity: 0;
    position: absolute;
    right: 0;
    text-align: center;
    top: 0;
    width: 4em;
    z-index: 2;

    &:before {
      @include vendor-property('box-sizing', 'content-box');
      border-radius: 100%;
      border: solid 3px rgba(255, 255, 255, 0.5);
      content: '\f00d';
      display: block;
      font-size: 1em;
      height: 1.75em;
      left: 50%;
      line-height: 1.75em;
      margin: -0.875em 0 0 -0.875em;
      position: absolute;
      top: 50%;
      width: 1.75em;
    }
  }

  &:hover {
    .nav-next,
    .nav-previous {
      opacity: 0.5;

      &:hover {
        opacity: 1.0;
      }
    }

    .closer {
      opacity: 0.5;

      &:hover {
        opacity: 1.0;
      }
    }
  }
}

/* Touch */

body.is-touch {

  .image {
    &.thumb {
      &:before {
        opacity: 0.5 !important;
      }

      &:after {
        display: none !important;
      }
    }
  }

  #header {
    background-attachment: scroll;
    background-size: auto, cover;
  }

  .poptrox-popup {
    .nav-next,
    .nav-previous,
    .closer {
      opacity: 1.0 !important;
    }
  }

}