//
// Globals
// --------------------------------------------------

*, *:before, *:after {
    box-sizing: border-box;
}

html {
    font: 62.5%/1.65 "Open Sans", sans-serif;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
    width: 100%;
    color: lighten($darkgrey, 10%);
    font-size: 1.4rem;
    font-feature-settings: "kern" 1;
    overflow-x: hidden; // Never allow horizontal scrollbars
}

::-moz-selection {
    background: lighten($blue, 20%);
}

::selection {
    background: lighten($blue, 20%);
}

h1, h2, h3,
h4, h5, h6 {
    margin: 0 0 0.3em 0;
    line-height: 1.15em;
    color: $darkgrey;
    text-rendering: optimizeLegibility;
    font-feature-settings: "dlig" 1, "liga" 1, "lnum" 1, "kern" 1;
}

h1 {
    font-size: 5rem;
    letter-spacing: -2px;
    text-indent: -3px;
}

h2 {
    font-size: 4.2rem;
    letter-spacing: -1px;
}

h3 {
    font-size: 3.8rem;
}

h4 {
    font-size: 3.1rem;
}

h5 {
    font-size: 2.8rem;
}

h6 {
    font-size: 2.2rem;
}

p, ul, ol, dl {
    font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1;
    margin: 0 0 1.7em 0;
}

ol, ul {
    padding-left: 2.5em;
}

ol ol, ul ul,
ul ol, ol ul {
    margin: 0 0 0.4em 0;
    padding-left: 2em;
    font-size: 0.9em;
}

mark {
    background-color: #ffc336;
}

a {
    color: $blue;
    text-decoration: none;
    transition: background 0.3s, color 0.3s;

    &:hover {
        text-decoration: none;
        transition: background 0.1s, color 0.1s;
    }

    &.highlight {
        color: $orange;
        font-weight: bold;
    }
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid $lightbrown;
    margin: 3.2em 0;
    padding: 0;
}

dl {
    @include baseline;

    dt {
        float: left;
        width: 180px;
        overflow: hidden;
        clear: left;
        text-align: right;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-weight: bold;
        margin-bottom: 1em
    }

    dd {
        margin-left: 200px;
        margin-bottom: 1em
    }
}

blockquote {
    @include baseline;
    padding: 0 1.6em 0 1.6em;
    border-left: $lightbrown 0.6em solid;

    p {
        margin:0.8em 0;
        font-size:1.2em;
        font-weight: 300;
    }

    small {
        display: inline-block;
        margin: 0.8em 0 0.8em 1.5em;
        font-size:0.9em;
        color: $brown;
        &:before {
            content: '\2014 \00A0';
        }
    }

    cite {
        font-weight:bold;
        a { font-weight: normal; }
    }
}

.markdown,
pre,
code,
tt {
    font-family: $font-family-mono;
}

code, tt {
    font-size: 0.85em;
    white-space: pre-wrap;
    background: lighten($lightbrown, 2%);
    border-radius: 2px;
    padding: 0.2em 0.4em;
    vertical-align: top;
}

pre {
    @include baseline;
    background: lighten($lightbrown, 2%);
    width: 100%;
    padding: 10px;
    font-family: $font-family-mono;
    font-size: 0.9em;
    white-space: pre;
    overflow: auto;
    border-radius: 3px;

    code, tt {
        font-size: inherit;
        white-space: -moz-pre-wrap;
        white-space: pre-wrap;
        background: transparent;
        border: none;
        padding: 0;
    }
}

kbd {
    display: inline-block;
    margin-bottom: 0.4em;
    padding: 1px 8px;
    border: #ccc 1px solid;
    color: $darkgrey;
    text-shadow: #fff 0 1px 0;
    font-size: 0.9em;
    font-weight: bold;
    background: #f4f4f4;
    border-radius: 4px;
    box-shadow:
        0 1px 0 rgba(0, 0, 0, 0.2),
        0 1px 0 0 #fff inset;
}

button {
    background: transparent;
    border: none;
    outline: none;
    box-shadow: none;
    padding: 0;
}


//
// Utilities
// --------------------------------------------------

.clearfix {
    @include clearfix;
}

.wrapper {
    position: relative;
}

.show {
    display: block !important;
}

.hidden {
    display: none !important;
    visibility: hidden !important;
}

.invisible {
    visibility: hidden;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;

    &:active,
    &:focus {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
    }
}

.right {
    float: right;
}
.left {
    float: left;
}

.vertical {
  display: table-cell;
  vertical-align: middle;
}