div.calc-main {
  bottom: -126px;
  left: 0;
  position: fixed;
  @include transition(bottom);
  -webkit-appearance: none;
  width: 100%;
  z-index: 99;

  &.open {
    bottom: -36px;
  }

  a.calc {
    background: url("../images/calc-icon.png") rgba(#111, .9) no-repeat center;
    border-bottom: 0;
    @include border-radius(3px 3px 0 0);
    color: #fff;
    float: right;
    height: 20px;
    @include hide-text;
    @include inline-block;
    margin-right: 10px;
    padding: 8px 12px;
    position: relative;
    top: -45px;
    width: 16px;

    &:hover {
      opacity: 0.8;
    }

    &.closed {
      background-image: url("../images/close-calc-icon.png");
      top: -36px;
    }
  }

  div#calculator_wrapper {
    background: rgba(#111, .9);
    clear: both;
    max-height: 90px;
    position: relative;
    top: -36px;

    form {
      @extend .clearfix;
      @include box-sizing(border-box);
      padding: lh();

      input#calculator_button {
        background: #111;
        border: 1px solid #000;
        @include border-radius(0);
        @include box-shadow(none);
        @include box-sizing(border-box);
        color: #fff;
        float: left;
        font-size: 30px;
        font-weight: bold;
        height: 35px;
        margin: 0 (flex-gutter() / 2);
        padding: 0;
        text-shadow: none;
        -webkit-appearance: none;
        width: flex-grid(.5) + flex-gutter();

        &:hover {
          color: #333;
        }
      }

      input#calculator_output {
        background: #111;
        border: 0;
        @include box-shadow(none);
        @include box-sizing(border-box);
        color: #fff;
        float: left;
        font-size: 16px;
        font-weight: bold;
        margin: 1px 0 0;
        padding: 10px;
        -webkit-appearance: none;
        width: flex-grid(4);
      }

      div.input-wrapper {
        @extend .clearfix;
        float: left;
        margin: 0;
        position: relative;
        width: flex-grid(7.5);

        input#calculator_input {
          border: none;
          @include box-shadow(none);
          @include box-sizing(border-box);
          font-size: 16px;
          padding: 10px;
          -webkit-appearance: none;
          width: 100%;

          &:focus {
            outline: none;
            border: none;
          }
        }

        div.help-wrapper {
          position: absolute;
          right: 0;
          top: 0;

          a {
            background: url("../images/info-icon.png") center center no-repeat;
            height: 35px;
            @include hide-text;
            width: 35px;
          }

          dl {
            background: #fff;
            @include border-radius(3px);
            @include box-shadow(0 0 3px #999);
            color: #333;
            display: none;
            line-height: lh();
            opacity: 0;
            padding: 10px;
            position: absolute;
            right: -40px;
            top: -122px;
            @include transition();
            width: 600px;

            &.shown {
              display: block;
              opacity: 1.0;
            }

            dt {
              clear: both;
              float: left;
              font-weight: bold;
              padding-right: 12px;
            }

            dd {
              float: left;
              margin-left: 0;
            }
          }
        }
      }
    }
  }
}