/**
 * CSS Reset and Base Styles
 */

/* Box sizing reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Remove default margins and paddings */
html,
body,
div,
span,
h1, h2, h3, h4, h5, h6,
p,
a,
img,
form,
label,
input,
button,
textarea,
select {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* HTML and Body defaults */
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-size-adjust: 100%;
}

body {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
    color: var(--color-text-primary);
    background-color: var(--color-bg-primary);
    min-height: 100vh;
}

/* Links */
a {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

/* Buttons */
button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

/* Lists */
ul,
ol {
    list-style: none;
}

/* Images */
img,
svg {
    max-width: 100%;
    display: block;
}

/* Form elements */
input,
textarea,
select {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

input:focus,
textarea:focus,
select:focus,
button:focus {
    outline: none;
}

/* Remove input number spinners */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type="number"] {
    -moz-appearance: textfield;
}

/* Remove default button styles */
button,
input[type="submit"],
input[type="button"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
