@import url('https://fonts.googleapis.com/css?family=Open+Sans');
@import url('https://fonts.googleapis.com/css?family=Playfair+Display');

/* Table of contents
––––––––––––––––––––––––––––––––––––––––––––––––––
- Plotly.js
- Grid
- Base Styles
- Typography
- Links
- Buttons
- Forms
- Lists
- Code
- Tables
- Spacing
- Utilities
- Clearing
- Media Queries
*/

/* PLotly.js
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* plotly.js's modebar's z-index is 1001 by default
 * https://github.com/plotly/plotly.js/blob/7e4d8ab164258f6bd48be56589dacd9bdd7fded2/src/css/_modebar.scss#L5
 * In case a dropdown is above the graph, the dropdown's options
 * will be rendered below the modebar
 * Increase the select option's z-index
 */

/* This was actually not quite right -
   dropdowns were overlapping each other (edited October 26)

.Select {
    z-index: 1002;
}*/

/* Grid
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.container {
    position: relative;
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.column,
.columns {
    width: 100%;
    float: left;
    box-sizing: border-box;
}

/* For devices larger than 400px */
@media (min-width: 400px) and (max-width: 549px) {
    .container {
        width: 85%;
        padding: 0;
    }
}

/* For devices larger than 550px */
@media (min-width: 550px) {
    .container {
        width: 80%;
    }

    .column,
    .columns {
        margin-left: 4%;
    }

    .column:first-child,
    .columns:first-child {
        margin-left: 0;
    }

    .one.column,
    .one.columns {
        width: 4.66666666667%;
    }

    .two.columns {
        width: 13.3333333333%;
    }

    .three.columns {
        width: 22%;
    }

    .four.columns {
        width: 30.6666666667%;
    }

    .five.columns {
        width: 39.3333333333%;
    }

    .six.columns {
        width: 48%;
    }

    .seven.columns {
        width: 56.6666666667%;
    }

    .eight.columns {
        width: 65.3333333333%;
    }

    .nine.columns {
        width: 74.0%;
    }

    .ten.columns {
        width: 82.6666666667%;
    }

    .eleven.columns {
        width: 91.3333333333%;
    }

    .twelve.columns {
        width: 100%;
        margin-left: 0;
    }

    .one-third.column {
        width: 30.6666666667%;
    }

    .two-thirds.column {
        width: 65.3333333333%;
    }

    .one-half.column {
        width: 48%;
    }

    /* Offsets */
    .offset-by-one.column,
    .offset-by-one.columns {
        margin-left: 8.66666666667%;
    }

    .offset-by-two.column,
    .offset-by-two.columns {
        margin-left: 17.3333333333%;
    }

    .offset-by-three.column,
    .offset-by-three.columns {
        margin-left: 26%;
    }

    .offset-by-four.column,
    .offset-by-four.columns {
        margin-left: 34.6666666667%;
    }

    .offset-by-five.column,
    .offset-by-five.columns {
        margin-left: 43.3333333333%;
    }

    .offset-by-six.column,
    .offset-by-six.columns {
        margin-left: 52%;
    }

    .offset-by-seven.column,
    .offset-by-seven.columns {
        margin-left: 60.6666666667%;
    }

    .offset-by-eight.column,
    .offset-by-eight.columns {
        margin-left: 69.3333333333%;
    }

    .offset-by-nine.column,
    .offset-by-nine.columns {
        margin-left: 78.0%;
    }

    .offset-by-ten.column,
    .offset-by-ten.columns {
        margin-left: 86.6666666667%;
    }

    .offset-by-eleven.column,
    .offset-by-eleven.columns {
        margin-left: 95.3333333333%;
    }

    .offset-by-one-third.column,
    .offset-by-one-third.columns {
        margin-left: 34.6666666667%;
    }

    .offset-by-two-thirds.column,
    .offset-by-two-thirds.columns {
        margin-left: 69.3333333333%;
    }

    .offset-by-one-half.column,
    .offset-by-one-half.columns {
        margin-left: 52%;
    }

}


/* Base Styles
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* NOTE
html is set to 62.5% so that all the REM measurements throughout Skeleton
are based on 10px sizing. So basically 1.5rem = 15px :) */
html {
    font-size: 50%;
    background-color: #1f2630;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0;
}

body {
    font-size: 1.5rem;
    /* currently ems cause chrome bug misinterpreting rems on body element */
    line-height: 1.6;
    font-weight: 400;
    font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #7fafdf;
    margin: 0;
}

#root {
    margin: 0;
}

@media (max-width: 550px) {
    #root {
        padding: 2rem;
    }
}

@media (min-width: 551px) {
    #root {
        padding: 5rem;
    }
}


/* Typography
–––––––––––––––––––––––––––––––––––––––––––––––––– */
h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 300;
}

h1 {
    font-size: 4.5rem;
    line-height: 1.2;
    letter-spacing: -.1rem;
    margin-bottom: 2rem;
}

h2 {
    font-size: 3.6rem;
    line-height: 1.25;
    letter-spacing: -.1rem;
    margin-bottom: 1.8rem;
    margin-top: 1.8rem;
}

h3 {
    font-size: 3.0rem;
    line-height: 1.3;
    letter-spacing: -.1rem;
    margin-bottom: 1.5rem;
    margin-top: 1.5rem;
}

h4 {
    font-family: "Playfair Display", sans-serif;
    font-size: 4rem;
    line-height: 1.35;
    letter-spacing: -.08rem;
    margin-bottom: 1.2rem;
    margin-top: 1.2rem;
}

h5 {
    font-size: 2.2rem;
    line-height: 1.5;
    letter-spacing: -.05rem;
    margin-bottom: 0.6rem;
    margin-top: 0.6rem;
}

h6 {
    font-size: 2.0rem;
    line-height: 1.6;
    letter-spacing: 0;
    margin-bottom: 0.75rem;
    margin-top: 0.75rem;
}

p {
    margin-top: 0;
}

#heatmap-title {
    font-family: "Playfair Display", sans-serif;
    font-size: 2rem;
}

#description {
    font-size: 1.5rem;
    border-left: #2cfec1 solid 1rem;
    padding-left: 1rem;
    max-width: 100rem;
    margin: 2rem 0 3rem 0;
}

#logo {
    height: 5rem;
    margin-bottom: 2rem;
}

#slider-text,
#chart-selector {
    margin-bottom: 2rem !important;
    font-size: 2rem;
}


@media only screen and (max-width: 550px) {
    .rc-slider-mark-text {
        font-size: 50%;
    }

    #description {
        font-size: 1rem;
    }
}


/* Blockquotes
–––––––––––––––––––––––––––––––––––––––––––––––––– */
blockquote {
    border-left: 4px lightgrey solid;
    padding-left: 1rem;
    margin-top: 2rem;
    margin-bottom: 2rem;
    margin-left: 0;
}


/* Links
–––––––––––––––––––––––––––––––––––––––––––––––––– */
a {
    color: #1EAEDB;
    text-decoration: underline;
    cursor: pointer;
}

a:hover {
    color: #0FA0CE;
}


/* Buttons
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
    display: inline-block;
    height: 38px;
    padding: 0 30px;
    color: #555;
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    line-height: 38px;
    letter-spacing: .1rem;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    background-color: transparent;
    border-radius: 4px;
    border: 1px solid #bbb;
    cursor: pointer;
    box-sizing: border-box;
}

.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
    color: #333;
    border-color: #888;
    outline: 0;
}

.button.button-primary,
button.button-primary,
input[type="submit"].button-primary,
input[type="reset"].button-primary,
input[type="button"].button-primary {
    color: #FFF;
    background-color: #33C3F0;
    border-color: #33C3F0;
}

.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
    color: #FFF;
    background-color: #1EAEDB;
    border-color: #1EAEDB;
}


/* Forms
–––––––––––––––––––––––––––––––––––––––––––––––––– */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
    height: 38px;
    padding: 6px 10px;
    /* The 6px vertically centers text on FF, ignored by Webkit */
    background-color: #fff;
    border: 1px solid #D1D1D1;
    border-radius: 4px;
    box-shadow: none;
    box-sizing: border-box;
    font-family: inherit;
    font-size: inherit;
    /*https://stackoverflow.com/questions/6080413/why-doesnt-input-inherit-the-font-from-body*/
}

/* Removes awkward default styles on some inputs for iOS */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

textarea {
    min-height: 65px;
    padding-top: 6px;
    padding-bottom: 6px;
}

input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
    border: 1px solid #33C3F0;
    outline: 0;
}

label,
legend {
    display: block;
    margin-bottom: 0;
}

fieldset {
    padding: 0;
    border-width: 0;
}

input[type="checkbox"],
input[type="radio"] {
    display: inline;
}

label>.label-body {
    display: inline-block;
    margin-left: .5rem;
    font-weight: normal;
}


/* Lists
–––––––––––––––––––––––––––––––––––––––––––––––––– */
ul {
    list-style: circle inside;
}

ol {
    list-style: decimal inside;
}

ol,
ul {
    padding-left: 0;
    margin-top: 0;
}

ul ul,
ul ol,
ol ol,
ol ul {
    margin: 1.5rem 0 1.5rem 3rem;
    font-size: 90%;
}

li {
    margin-bottom: 1rem;
}


/* Tables
–––––––––––––––––––––––––––––––––––––––––––––––––– */
table {
    border-collapse: collapse;
}

th,
td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #E1E1E1;
}

th:first-child,
td:first-child {
    padding-left: 0;
}

th:last-child,
td:last-child {
    padding-right: 0;
}


/* Spacing
–––––––––––––––––––––––––––––––––––––––––––––––––– */
button,
.button {
    margin-bottom: 0;
}

input,
textarea,
select,
fieldset {
    margin-bottom: 0;
}

pre,
dl,
figure,
table,
form {
    margin-bottom: 0;
}

p,
ul,
ol {
    margin-bottom: 0.75rem;
}

/* Utilities
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.u-full-width {
    width: 100%;
    box-sizing: border-box;
}

.u-max-full-width {
    max-width: 100%;
    box-sizing: border-box;
}

.u-pull-right {
    float: right;
}

.u-pull-left {
    float: left;
}


/* Misc
–––––––––––––––––––––––––––––––––––––––––––––––––– */
hr {
    margin-top: 3rem;
    margin-bottom: 3.5rem;
    border-width: 0;
    border-top: 1px solid #E1E1E1;
}


/* Clearing
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* Self Clearing Goodness */
.container:after,
.row:after,
.u-cf {
    content: "";
    display: table;
    clear: both;
}

/* Slider
–––––––––––––––––––––––––––––––––––––––––––––––––– */

#slider-container {
    background-color: #252e3f;
    padding: 2rem 6rem 4rem 4rem;
    height: 8rem;
}

.rc-slider-dot-active,
.rc-slider-handle {
    border-color: #2cfec1 !important;
}

.rc-slider-track {
    background-color: #2cfec1 !important
}

.dash-slider-track {
    background-color: #a0cdff !important
}

.dash-slider-thumb,
.dash-slider-thumb-1 {
    background-color: #a0cdff !important
}

/* Heatmap
–––––––––––––––––––––––––––––––––––––––––––––––––– */
#heatmap-container {
    margin: 2.5rem 0 0 0;
    background-color: #252e3f;
}

#heatmap-title {
    margin: 0;
    padding: 1rem;
}

#county-choropleth {
    margin: 0;
    flex-grow: 1;
}

@media (min-width: 1251px) {
    #heatmap-container {
        flex-grow: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }
}

@media (max-width: 550px) {
    #county-choropleth .annotation-text {
        font-size: 1.2rem !important;
    }
}

/* Left column
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media only screen and (max-width: 1250px) {

    /*For mobile and smaller screens*/
    #left-column {
        margin-right: 1.5%;
        width: 100%;
    }
}

@media (min-width: 1251px) {

    /*For desktop*/
    #left-column {
        margin-right: 1.5%;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-content: center;
        flex: 6 60%;
    }
}


/* Graph
–––––––––––––––––––––––––––––––––––––––––––––––––– */

#graph-container {
    background-color: #252e3f;
    padding: 5rem;
    margin: 0;
}

@media (max-width: 1250px) {

    /*For mobile and smaller screens*/
    #header h4 {
        text-align: center;
    }

    #graph-container {
        margin-top: 5rem;
    }

    #selected-data {
        height: 55rem;
    }
}

@media (min-width: 1251px) {

    /*For desktop*/
    #logo {
        float: right;
        padding-right: 2rem;
    }

    #header p {
        font-size: 1.5rem;
    }

    #graph-container {
        flex: 4 40%;
        margin: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
    }

    #selected-data {
        flex-grow: 1;
    }
}

@media (max-width: 550px) {
    #graph-container {
        padding: 2.5rem;
    }

    #selected-data .xtick text {
        font-size: 1.1rem !important;
    }

    #selected-data .gtitle {
        font-size: 1.7rem !important;
    }
}


#chart-dropdown {
    margin-bottom: 6.6rem;
}

/* Dropdown
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.Select-value {
    cursor: pointer;
}

.Select-control {
    color: #7fafdf !important;
}

.Select {
    color: #7fafdf !important;
}

.Select-menu-outer {
    background-color: #252e3f !important;
    border: 1px solid #7fafdf !important;
}

.Select div {
    background-color: #252e3f !important;
}

.Select-menu-outer div:hover {
    background-color: rgba(255, 255, 255, 0.01) !important;
    cursor: pointer;
}

.Select-value-label {
    color: #7fafdf !important;
}

.Select--single>.Select-control .Select-value,
.Select-placeholder {
    border: 1px solid #7fafdf !important;
    border-radius: 4px !important;
}

/* Placement
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media only screen and (max-width: 1250px) {

    /*For mobile and smaller screens*/
    #app-container {
        width: 100%;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: stretch;
        margin-bottom: 5rem;
    }
}

@media (min-width: 1251px) {

    /*For desktop*/
    #app-container {
        display: flex;
        flex-direction: row;
        justify-content: flex-start;
        align-items: stretch;
        height: 100rem;
        margin-bottom: 5rem;
    }
}

#header {
    margin-left: 1.5%;
}


div,
svg {
    user-select: none !important;
}

._dash-undo-redo {
    display: none;
}