/*
App reset by Ben Frain @Bonjour / ydsweb.com
An opinionated set of resets suitable for building web applications.
## Accessibility Notes
These resets target HTML elements that typically receive styling defaults by User Agents that I always need to 'undo'.
Be aware that some of these resets have a negative impact on the default usability and accessibility of a web page. Therefore, ensure you add an equivalent accessible style back that matches your project aesthetic.
## You'll want to run this through Autoprefixer You'll typically need to run this through (https://github.com/postcss/autoprefixer) for production. Only essential prefixes are added here (e.g. proprietary property value/pairs) and you'll need to set prefixing relative to your desired browser support matrix.
*/


/*Hat tip to @thierrykoblentz for this approach: https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */

html {
    font-family: 'Avenir', Helvetica, Arial, sans-serif;
    box-sizing: border-box;
    /* Nicer looking fonts for OS X and iOS */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


/*Yes, the universal selector. No, it isn't slow: https://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/*/

* {
    /* Later browsers can be more easily reset with `all: unset`. It's commented out by default here as it's pretty heavy handed. However, further declarations on these elements follow for older browsers. If you uncomment this property/value REMEMBER accessibility for outlines etc. This undoes a LOT of default UA styling, use with EXTREME caution!! */
    /* all: unset; */
    /*This prevents users being able to select text. Stops long presses in iOS bringing up copy/paste UI for example. Note below we specifically switch user-select on for inputs for the sake of Safari. Bug here: https://bugs.webkit.org/show_bug.cgi?id=82692*/
    user-select: none;
    /*This gets -webkit specific prefix as it is a non W3C property*/
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    /*Older Androids need this instead*/
    -webkit-tap-highlight-color: transparent;
    /* Most devs find border-box easier to reason about. However by inheriting we can mix box-sizing approaches.*/
    box-sizing: inherit;
}

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


/* Switching user-select on for inputs and contenteditable specifically for Safari (see bug link above)*/

input[type],
[contenteditable] {
    user-select: text;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p {
    /*We will be adding our own margin to these elements as needed.*/
    margin: 0;
    /*You'll want to set font-size as needed.*/
    font-size: 16px;
    /*No bold for h tags unless you want it*/
    font-weight: 400;
}


/* 
Thanks to L. David Baron for this:
https://twitter.com/davidbaron/status/794138427952222210 */

base,
basefont,
datalist,
head,
meta,
script,
style,
title,
noembed,
param,
template {
    display: none;
}

a {
    text-decoration: none;
    color: inherit;
}


/*No bold for b tags by default*/

b {
    font-weight: 400;
}


/*Prevent these elements having italics by default*/

em,
i {
    font-style: normal;
}


/*IMPORTANT: This removes the focus outline for most browsers. Be aware this is a backwards accessibilty step! Mozilla (i.e. Firefox) also adds a dotted outline around a tags and buttons when they receive tab focus which I haven't found an unhacky way of removing.*/

a:focus,
button:focus {
    outline: 0;
}

button {
    appearance: none;
    background-color: transparent;
    border: 0;
    padding: 0;
}

input,
fieldset {
    appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    /*inputs and fieldset defaults to having a min-width equal to its content in Chrome and Firefox (https://code.google.com/p/chromium/issues/detail?id=560762), we may not want that*/
    min-width: 0;
    /*Reset the font size and family*/
    font-size: 1rem;
    font-family: inherit;
}


/* For IE, we want to remove the default cross ('X') that appears in input fields when a user starts typing - Make sure you add your own! */

input::-ms-clear {
    display: none;
}


/*This switches the default outline off when an input receives focus (really important for users tabbing through with a keyboard) so ensure you put something decent in for your input focus instead!!*/

input:focus {
    outline: 0;
}

input[type="number"] {
    /*Mozilla shows the spinner UI on number inputs unless we use this:*/
    -moz-appearance: textfield;
}


/*Removes the little spinner controls for number type inputs (WebKit browsers/forks only)*/

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    appearance: none;
}


/*SVG defaults to display: inline which I dislike. Inline-block or inline-flex will render white space on SVG elements in HTML (where you would have defs and symbols) if the container isn't a flex box or the font-size set to 0 to crush the whitespace */

svg {
    display: block;
}

img {
    /*Make images behave responsively. Here they will scale up to 100% of their natural size*/
    /* max-width: 100%; */
    /*Make images display as a block (UA default is usually inline)*/
    /* display: block; */
    /* width: 100%; */
    /* height: 100%; */
}


/*Removes the default focusring that Mozilla places on select items. From: http://stackoverflow.com/a/18853002/1147859 
Ensure you set `#000` to the colour you want your text to appear */

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}


/* Switching on box-sizing: border-box by default; toggle this off if you want more granular control */

body {
    box-sizing: border-box;
    /* background: #FFFFFF; */
    /* padding-top: constant(safe-area-inset-top);
    padding-left: constant(safe-area-inset-left);
    padding-right: constant(safe-area-inset-right);
    padding-bottom: constant(safe-area-inset-bottom);
    overflow: hidden;
    max-height: 100%; */
}

html,
body {
    height: 100% !important;
    min-height: 100% !important;
    position: relative !important;
    width: 100% !important;
}


/* x xs */

@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
    .content {
        padding-bottom: calc(60px + env(safe-area-inset-bottom)) !important;
    }
    .redBagImg {
        bottom: calc(150px + env(safe-area-inset-bottom)) !important;
    }
    .backToTop {
        bottom: calc(200px + env(safe-area-inset-bottom)) !important;
    }
    #tabBar {
        padding-bottom: env(safe-area-inset-bottom) !important;
        box-sizing: content-box;
    }
}


/* xr */

@media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio:2) {
    .content {
        margin-bottom: calc( env(safe-area-inset-bottom)) !important;
    }
    .redBagImg {
        bottom: calc(150px + env(safe-area-inset-bottom)) !important;
    }
    .backToTop {
        bottom: calc(200px + env(safe-area-inset-bottom)) !important;
    }
    #tabBar {}
}


/* xs max */

@media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio:3) {
    #tabBar {
        padding-bottom: env(safe-area-inset-bottom) !important;
        box-sizing: content-box;
    }
}

@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {
    .home {
        padding-bottom: calc(60px + env(safe-area-inset-bottom)) !important;
        padding-bottom: calc(60px + constant(safe-area-inset-bottom)) !important;
    }
    .redBagImg {
        bottom: calc(150px + env(safe-area-inset-bottom)) !important;
        bottom: calc(150px + constant(safe-area-inset-bottom)) !important;
    }
    .backToTop {
        bottom: calc(200px + env(safe-area-inset-bottom)) !important;
        bottom: calc(200px + constant(safe-area-inset-bottom)) !important;
    }
    #tabBar {
        box-sizing: content-box !important;
        padding-bottom: constant(safe-area-inset-bottom) !important;
        padding-bottom: env(safe-area-inset-bottom) !important;
    }
}