html {
    @include box-sizing();
}

* {
    @include box-sizing(inherit);
    &:before,
    &:after {
        @include box-sizing(inherit);
    }
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
    display: block;
}

audio,
canvas,
progress,
video {
    display: inline-block;
}

object,
embed,
iframe {
    max-width: 100%;
}

progress {
    vertical-align: baseline;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

a {
    &:active,
    &:hover {
        outline: 0;
    }
}

blockquote,
blockquote:before,
blockquote:after,
q,
q:before,
q:after {
    content: '';
    content: none;
}

code,
pre {
    word-break: break-word;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

th {
    font-weight: normal;
    text-align: left;
    vertical-align: bottom;
}

td {
    font-weight: normal;
    vertical-align: top;
}

input,
button,
optgroup,
select,
textarea {
    margin: 0;
    text-transform: none;
    &:focus {
        outline: none;
    }
}

input,
select {
    vertical-align: middle;
}

input[type=checkbox],
input[type=radio] {
    vertical-align: text-top;
}

input[type="search"]::-webkit-search-cancel-button {
    display: none;
}

input::-moz-focus-inner,
button::-moz-focus-inner {
    border: 0;
    padding: 0;
}

button,
input[type=button],
input[type=reset],
input[type=submit] {
    width: auto;
    overflow: visible;
    -webkit-appearance: button;
}

sub,
sup {
    position: relative;
    font-size: 75%;
    line-height: 0;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

progress {
    vertical-align: baseline;
}

label,
input[type=button],
input[type=reset],
input[type=submit],
input[type=file],
button {
    cursor: pointer;
}

[type='search']::-webkit-search-decoration {
    -webkit-appearance: none;
}

img {
    -ms-interpolation-mode: bicubic;
    a & {
        border: none;
    }
}
