/* Box sizing rules */

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


/* Set root font-size @10px equivalent */

html {
    font-size: 0.625em;
    /* fallback IE8+ */
    font-size: calc( 1em * 0.625);
    /* IE9-IE11 math fixing. See http://bit.ly/1g4X0bX */
}


/* Remove focus for mouse users */

:focus:not(:focus-visible) {
    outline: none;
}


/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul[class],
ol[class],
li,
figure,
figcaption,
blockquote,
dl,
dd {
    margin: 0;
}


/* Remove default padding */

ul,
ol {
    padding: 0;
}


/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
    list-style: none;
}


/* Set core root defaults */

html {
    scroll-behavior: smooth;
}



/* Set core body defaults */

body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
    font-size: 1.6rem;
}


/* A elements that don't have a class get default styles */

a:not([class]) {
    text-decoration-skip-ink: auto;
}


/* Make images easier to work with */

img,
picture {
    max-width: 100%;
    display: block;
}


/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
    font: inherit;
}


/* Set cursor pointer */

label[for],
button,
input[type="submit"],
select {
    cursor: pointer;
}


/* Remove font style on address */

address {
    font-style: normal;
}


/* Remove all animations and transitions for people that prefer not to see them */

@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


/* Print external URLs */

@media print {
    a {
        text-decoration: underline;
    }
    a[href]:not([href^="#"])::after {
        content: "(" attr(href) ")";
    }
}


/* Helper classes */


/* Text meant only for screen readers. */

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    width: 1px;
    position: absolute;
    white-space: nowrap;
}


/* Image replacement technique 2012 H5BP  - https://css-tricks.com/the-image-replacement-museum/ */

.ir {
    font: 0/0 a;
    color: transparent;
    border: 0;
    text-shadow: none;
}


/*Remove arrows and spinners on inputs*/

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}


/*Reset floaty fieldset legend */
legend {
    display: table;
    float: left;
    margin: 0;
    padding: 0;
    width: 100%;
}

legend * {
    clear: both;
}

fieldset {
    border: 0;
    padding: 0.01em 0 0 0;
    margin: 0;
    min-width: 0;
}

body:not(:-moz-handler-blocked) fieldset {
    display: table-cell;
}