/*
--------------------------
resets
--------------------------
*/

html {
    box-sizing: border-box;
}

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


/* 
--------------------------
fonts
--------------------------
*/

body {
    font: 20px/1.25em 'Open Sans', sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: #1f4f75;
    text-align: center;
}

h1 {
    margin: 0;
}

h2 {
    font-size: 3em;
    line-height: 1em;
}

h3 {
    font-size: 1.5em;
    line-height: 1em;
}

h4 {
    font-size: 1.25em;
    font-weight: 600;
    line-height: 1.25em;
}

    h3 + h4 {
        margin: 0;
    }

h5 {
    font-size: 1em;
    line-height: 1.25em;
}

h6 {
    font-size: 1em;
    line-height: 1.25em;
    margin: 0 0 1em;
}

li {
    margin: 0.35em 0;
}

b {
    font-weight: 800;
}

a {
    border-bottom: 1px solid;
    color: inherit;
    opacity: 0.6;
    text-decoration: none;
}
    
    a:hover {
        border-bottom: 2px solid;
        opacity: 1;
    }

hr {
    border: 0;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    margin: 2em 0;
}


/* 
--------------------------
dom elements 
--------------------------
*/

body {
    margin: 0;
}

header {
    padding: 1em 0;
    text-align: center;
    width: 100%;
}

img {
    max-width: 100%;
}

footer {
    font-size: 0.7em;
    margin-top: -1em;
    padding: 2em;
    position: relative;
    text-align: center;
    z-index: 1;
}


/*
--------------------------
colors
--------------------------
*/

/* main */

.orange {
    color: #eda56a;
}

.blue-light {
    color: #5c83b5;
}

.blue-lighter {
    color: #5689bb;
}

.blue-dark {
    color: #1f4f75 !important;
}

.white,
.white h3,
.white h4,
.white h5,
.white h6 {
    color: #ffffff;
}

.black_opaque {
    color: rgba(0,0,0,0.7);
}

/* supporting */

.orange-dark {
    color: #d38f2c;
}

.teal {
    color: #4da7c3;
}

.mint {
    color: #a9cbc4;
}

.grey {
    color: #939ba1;
}

/* main */

.bg_orange {
    background-color: #eda56a;
}

.bg_blue-light {
    background-color: #5c83b5;
}

.bg_blue-lighter {
    background-color: #aeb8c2;
}

.bg_blue-lightest {
    background-color: #c2d4e2;
}

.bg_blue-dark {
    background-color: #1f4f75;
}

.bg_grey-light {
    background-color: #959ca1;
}

.bg_white {
    background-color: #ffffff;
}

/* supporting */

.bg_mint {
    background-color: #a9cbc4;
}

.bg_gold {
    background-color: #ca9142;
}

.bg_teal {
    background-color: #4da7c3;
}

/* misc color styles */

.underline_orange {
    border-bottom: 8px solid #eda56a;
}


/* 
--------------------------
classes
--------------------------
*/

/* wrapper / text styles */

.wrapper {
    margin: 0 auto;
    max-width: 90%;
}

.main section > .wrapper,
.graphs-container {
  -webkit-transform: skewY(1deg);
  -moz-transform: skewY(1deg);
  -ms-transform: skewY(1deg);
  -o-transform: skewY(1deg);
  transform: skewY(1deg);
}

.wrapper p,
.wrapper li,
.breakout,
.blocks-points {
    line-height: 1.5em;
    margin: 0 auto;
    max-width: 650px;
}

.wrapper h2 {
    letter-spacing: -1px;
    margin: 1em auto;
    max-width: 650px;
}

.wrapper h3,
.wrapper h4 {
    margin: 0 auto;
    max-width: 650px;
    text-transform: uppercase;
}

    .wrapper h2 + h3,
    .wrapper h3 + p,
    .wrapper h4 + p,
    .wrapper p + p {
        margin-top: 1em;
    }

    .wrapper p + h3,
    .wrapper p + h4,
    .wrapper ul + h3,
    .polling-graphic + h3 {
        margin-top: 2em;
    }

.wrapper h5 {
    margin: 1em auto;
    max-width: 650px;
}

.question {
    font-weight: normal;
    font-style: italic;
    padding-bottom: 1em;
}

.quote {
    background: transparent url(../img/graphics/quote.png) no-repeat 0 1em;
    margin: 1em;
    padding: 1em 1em 1em 75px;
}

    .quote + .quote {
        margin-top: -0.5em;
    }

.callout {
    border-radius: 20px;
    border: 20px solid #1f4f75;
    margin: 3em auto;
    max-width: 900px;
    position: relative;
}

    .callout--title {
        webkit-transform: skewY(-1deg);
        -moz-transform: skewY(-1deg);
        -ms-transform: skewY(-1deg);
        -o-transform: skewY(-1deg);
        background-color: #1f4f75;
        font-size: 1.5em;
        margin-top: -0.3em;
        padding: 1em;
        text-transform: uppercase;
        transform: skewY(-1deg);
    }

        .callout--title * {
            webkit-transform: skewY(1deg);
            -moz-transform: skewY(1deg);
            -ms-transform: skewY(1deg);
            -o-transform: skewY(1deg);
            transform: skewY(1deg);
            margin: 0 !important;
            text-align: left;
        }

        .callout--title img {
            float: left;
            margin: -0.15em 1em 0 0 !important;
            width: 85px;
        }

        .callout--title h4 {
            color: #eda56a;
            font-size: 2.25em;
            line-height: 1em;
            max-width: 100%;
        }

        .callout--subhead {
            color: #fff;
            line-height: 1em !important;
        }

    .callout--text {
        display: none;
        margin-top: -0.25em;
        padding: 1em 2em 2em;
    }

        .callout--text h5 {
            font-size: 1.25em;
            text-align: left;
        }

    .callout--image {
        line-height: 1px;
        margin-top: -0.4em;
        overflow: hidden;
        flex: 1 0 50%;
    }

    .callout .read-more {
        font-weight: bold;
        left: 0;
        margin: -1.9em auto 0;
        max-width: 100%;
        padding: 0.25em 0.5em;
        position: absolute;
        text-align: center;
        text-transform: uppercase;
        width: 100%;
    }

        .callout .read-more:hover {
            background-color: #1f4f75;
            cursor: pointer;
        }

.button {
    border: 0;
    display: inline-block;
    font-weight: bold;
    line-height: 1em;
    opacity: 1;
    padding: 0.5em 1em;
    text-transform: uppercase;
}

    p + p .button {
        margin-top: 1em;
    }

    .button:hover {
        background: #1f4f75;
        border: 0;
    }

.text-center {
    text-align: center;
}

.text_spacing {
    display: block !important;
    margin-top: 0.5em;
}

.main section {
    -webkit-transform: skewY(-1deg);
    -moz-transform: skewY(-1deg);
    -ms-transform: skewY(-1deg);
    -o-transform: skewY(-1deg);
    transform: skewY(-1deg);
    border-top: 20px solid rgba(0,0,0,0.1);
    margin-top: -1em;
}

.polling-graphic {
    background-color: #f2f6f5;
    font-size: 1.1em;
    margin: 2em auto;
    max-width: 900px;
    padding: 1em;

    border: 20px solid #e9f1ef;
    border-radius: 20px;
}

    .polling-graphic img {
        display: block;
        margin: 1em auto;
        max-width: 300px;
        width: 100%;
    }

    .polling-graphic p {
        padding: 1em;
    }

    .polling-graphic span {
        font-weight: bold;
    }

.section-subhead {
    margin: 0;
    text-transform: uppercase;
}

.animate {
    opacity: 0;
}

    p + img.animate {
        margin-top: 2em;
    }

.move-right {
    left: -25%;
    position: relative;
}

.restrict-width {
    display: block;
    margin: 1em auto;
}

    .diversified-economies {
        max-width: 550px;
    }

    .strong-service-sectors {
        max-width: 800px;
    }

    .educated-populations {
        max-width: 450px;
    }

    .foreign-citizens {
        max-width: 275px;
    }

    .airport-passengers {
        max-width: 450px;
    }

    .public-transit {
        max-width: 1100px;
    }

    .fdi-investment {
        max-width: 200px;
    }


/* share links */

.share {
    font-size: 0.7em;
    padding-top: 0.75em;
    text-transform: uppercase;
}

    .share a {
        border: 0;
        display: inline-block;
        margin: -2px 0 0 0.5em;
        opacity: 1;
    }

    .share .facebook {
        margin-bottom: -3px;
        width: 20px;
    }

    .share .twitter {
        margin-bottom: -7px;
        width: 25px;
    }

/* intro / headlines */

.intro-background {
    background: transparent url(../img/header-image_desktop.png) no-repeat center -1px;
    background-size: contain;
    height: 50vw;
    margin-bottom: -2px;
    padding: 15vw 0 0;
}

.intro-callout {
    background-color: #fff;
    border: 8px solid;
    box-shadow: 10px 10px 0 rgba(0,0,0,0.3);
    font-size: 1em;
    font-weight: 600;
    line-height: 1.1em;
    margin-bottom: 10px;
    max-width: 200px;
    padding: 1em 1em 0.5em;
    position: relative;
    text-align: center;
    text-transform: uppercase;
    z-index: 1;
}

.intro-callout span {
    display: block;
    font-size: 3em;
    font-weight: 400;
    letter-spacing: -2px;
    line-height: 1em;
    padding-top: 0.1em;
}

h2.sub-callout {
    font-size: 4.75em;
    font-weight: 900;
    letter-spacing: -3px;
    line-height: 1em;
    margin: 0;
    max-width: none;
    padding: 0.5em 0 0 0;
    text-align: center;
    text-transform: none;
}

    h2.sub-callout span {
        display: inline-block;
        margin-left: -0.15em;
        padding: 0 0.25em 0 0.15em;
    }

/* misc utilities */

section::after,
.clearfix::after,
.wrapper::after,
.blocks-points::after,
.block_container::after,
.container-poll::after,
.polling-graphic::after {
    content: "";
    clear: both;
    display: table;
}

.no-border {
    border: 0 !important;
}

.padding_top {
    padding-top: 2em;
}

    .padding_top--small {
        padding-top: 1em;
    }

.padding_bottom {
    padding-bottom: 4em;
}

    .padding_bottom > .blocks-container:last-child {
        margin-bottom: 1em;
    }

    .padding_bottom--small {
        padding-bottom: 1em;
    }

.rotate-90 {
    transform: rotate(90deg);
}


/* 
--------------------------
media queries
--------------------------
*/

@media (max-width: 725px) {

    .wtca-logo {
        max-width: 225px;
    }

}


@media (max-width: 625px) {

    body {
        font-size: 16px;
        line-height: 1.25em;
    }

    .share {
        border-top: 1px solid rgba(0,0,0,0.1);
        margin-top: 1em !important;
        padding-top: 1em;
    }

    .intro-background {
        background: transparent url(../img/header-image_mobile.png) no-repeat top center;
        background-size: contain;
        height: 100vw;
        padding: calc(100vw - 70px) 0 0 0;
    }

    .intro-callout {
        margin: 0 auto;
        height: 140px;
        width: 140px;
        font-size: 0.8em;
    }

    h2 {
        font-size: 2em;
    }

    h2.sub-callout {
        font-size: 3em;
        margin: 1.75em 0 0;
    }

    .polling-graphic {
        padding-bottom: 1em;
        border: 10px solid #e9f1ef;
        border-radius: 10px;
    }

    .callout--title {
        font-size: 1em;
        padding: 1em 1em 1em 0.5em;
    }

    .callout--title img {
        width: 40px;
        margin-right: 0.5em !important;
    }

    .callout--title h4 {
        margin-left: 45px !important;
    }

    .callout--text {
        padding: 0.5em 1em 1.25em;
    }

    .callout {
        border: 10px solid #1f4f75;
        border-radius: 10px;
    }

    .main section {
        border-top: 10px solid rgba(0,0,0,0.1);
    }

    .graphs-container {
        border-top: 10px solid #fff3e8;
        border-bottom: 10px solid #fff3e8;
    }

}


@media (min-width: 626px) and (max-width: 840px) {
    .intro-callout {
        height: 150px;
        width: 150px;
        font-size: 0.8em;
    }

    .intro-callout span {
        font-size: 2.25em;
    }
}


@media (max-width: 900px) {
    .restrict-width {
        max-width: 100%;
    }

        .diversified-economies {
            max-width: 90%;
        }

        .educated-populations {
            max-width: 60%;
        }

        .foreign-citizens {
            max-width: 40%;
        }

        .airport-passengers {
            max-width: 70%;
        }

        .fdi-investment {
            max-width: 30%;
        }
}


@media (min-width: 626px) {

    header {
        text-align: left;
    }

    .share {
        float: right;
    }

    .polling-graphic {
        align-items: center;
        display: flex;
    }

        .polling-graphic img {
            float: left;
            margin: 1em;
        }

}


/* 
--------------------------
svg
--------------------------
*/

svg {
    display: inline-block;
    font: 14px/1.25em 'Open Sans', sans-serif;
    text-transform: uppercase;
}

.graphs-container {
    background-color: #fff7f1;
    border-top: 20px solid #fff3e8;
    border-bottom: 20px solid #fff3e8;
    margin: 2em 0 3em;
}

.graphs {
    padding: 1em 0;
    display: flex;
    align-items: top;

    width: 100%;
    overflow-x: scroll;
    overflow-y: hidden;

    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.graphitem {
    border-right: 1px solid rgba(0,0,0,0.05);
}

    .graphs .graphitem:last-child {
        border-right: 0;
    }

.axis text {
    font: 10px sans-serif;
}

.axis path,
.axis line {
    fill: none;
    stroke: #000;
    shape-rendering: crispEdges;
}

.x.axis,
.y.axis {
    opacity: 0;
}


/* 
--------------------------
filter ui
--------------------------
*/

.graphs-filter {
    font-size: 0.7em;
    padding: 2em 0 2em;
    text-align: center;
}

.graphs-filter label {
    margin-right: 0.5em;
}

.graphs-filter select {
    font-family: 'Open Sans', sans-serif;
}