/* Reset default styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Reset HTML5 elements */
article, aside, details, figcaption, figure, 
footer, header, hgroup, main, menu, nav, section {
    display: block;
}

/* Reset body */
body {
    line-height: 1;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
        Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

/* Reset lists */
ol, ul {
    list-style: none;
}

/* Reset links */
a {
    text-decoration: none;
    color: inherit;
}

/* Reset buttons */
button {
    border: none;
    outline: none;
    background: none;
    font: inherit;
    cursor: pointer;
    padding: 0;
}

/* Reset form elements */
input, textarea, select {
    font: inherit;
    border: none;
    outline: none;
}

/* Reset images */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Reset tables */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* Reset quotes */
blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

/* Remove tap highlight on mobile */
* {
    -webkit-tap-highlight-color: transparent;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Remove text decoration on abbr */
abbr[title] {
    text-decoration: none;
}

/* Reset form elements to match button */
input[type="submit"],
input[type="reset"],
input[type="button"] {
    border: none;
    outline: none;
    background: none;
    font: inherit;
    cursor: pointer;
    padding: 0;
}

/* Remove spinners from number inputs */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Reset text selection */
::selection {
    background-color: rgba(0, 0, 0, 0.1);
}
