html {
    overflow: hidden;
}

body {
    overflow: hidden;
    font-family: 'Roboto', sans-serif;
}

.page {
    display: none;
    width: 100vw;
    height: 100vh;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.page .row:first-child {
    padding-top: calc(87px * 2);
}

.page#the-research .row:first-child, .page#the-story .row:first-child {
    padding-top: 87px;
}

.page .row#disclaimer-container {
    padding-top: 9.5vh;
}

.page.active {
    display: block;
}

.header-container {
    background-color: #e6e7e8;
}

.header {
    position: relative;
    padding: 20px 0;
}

.header .logo {
    width: 195px;
}

.header .logo:hover {
    position: relative;
    cursor: pointer;
}

.header .navigation {
    right: -10px;
}

.header .navigation .link-list {
    display: inline-block;
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.header .navigation .link-list .link {
    float: left;
}

.header .navigation .link-list .link, .sub-navigation .link {
    padding: 0 13px;
}

.header .navigation .link-list .link.about-alert {
    border-left: 1px solid #000;
    padding-left: 20px;
    margin-left: 7px;
}

.header .navigation .link-list .link:hover span, .sub-navigation .link:hover span {
    cursor: pointer;
    border-color: #d1212a;
}

.header .navigation .link-list .link span {
    padding: 8px 0;
    font-weight: 500;
    font-size: 14px;
    color: #231f20;
    border-bottom: 3px solid rgba(0, 0, 0, 0);
    transition: border-color 300ms;
}

.header .navigation .link-list .link span.active, .sub-navigation .link span.active {
    border-color: #d1212a;
}

.header .mobile-menu-button {
    display: none;
    position: absolute;
    top: 50%;
    right: -10px;
    padding: 10px;
    font-size: 30px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.header .mobile-menu-button:hover {
    cursor: pointer;
}

.header .center-item {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.mobile-menu {
    display: none;
    position: fixed;
    top: 0;
    left: -100%;
    width: 100vw;
    height: 100vh;
    background-color: #fff;
    z-index: 1031;
}

.mobile-menu-header {
    position: relative;
    float: left;
    width: 100%;
    padding: 20px;
    border-bottom: 1px solid #e6e7e8;
    clear: both;
}

.mobile-menu-header img {
    width: 50%;
    max-width: 195px;
}

.mobile-menu-header i {
    position: absolute;
    top: 50%;
    right: 10px;
    padding: 10px;
    font-size: 30px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.mobile-menu-body {
    position: relative;
    float: left;
    width: 100%;
    clear: both;
    overflow-y: auto;
}

.mobile-menu-body ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
}

.mobile-menu-body ul li {
    padding: 20px;
    border-bottom: 1px solid #e6e7e8;
}

.mobile-menu-body ul li i {
    float: right;
}

.mobile-menu-body ul li.active {
    background-color: #d1212a;
    color: #fff;
    font-weight: 500;
}

.mobile-menu-body .mobile-sub-menu {
    display: none;
    padding: 0;
}

.mobile-menu-body .mobile-sub-menu ul li {
    padding-left: 40px;
    border: none;
}

.sub-navigation .link {
    float: right;
}

.sub-navigation-container {
    height: 87px;
}

.sub-navigation {
    position: absolute;
    right: -13px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.sub-navigation .link span {
    padding: 10px 0;
    font-weight: 500;
    font-size: 14px;
    color: #231f20;
    text-transform: capitalize;
    border-bottom: 2px solid rgba(0, 0, 0, 0);
    transition: border-color 300ms;
}

.info-box {
    width: 100%;
}

.info-box:hover {
    cursor: pointer;
}

.info-box:hover .title {
    background-color: #a7a9ab;
    color: #fff;
}

.info-box .title {
    padding: 0 10px;
    border-top: 1px solid #fff;
    color: #231f20;
    text-align: left;
    font-size: 18px;
    font-weight: 400;
    line-height: 38px;
    text-transform: uppercase;
    transition: background-color 300ms;
}

.info-box img {
    width: 100%;
    border: 1px solid #fff;
}

.disclaimer-container {
    margin: 0;
}

.big-text-container {
    padding-right: 15px;
    float: right;
    color: #404041;
    line-height: 32px;
    font-size: 32px;
    font-weight: 400;
    text-transform: uppercase;
}

.small-text-container {
    float: left;
    padding-left: 15px;
    padding-right: 166px;
    color: #404041;
    font-size: 15px;
    font-weight: 300;
    font-family: 'Noto Serif JP', serif;
}

.small-text {
    margin-top: 10px;
}

.disclaimer-button {
    display: block;
    margin-top: 15px;
    padding: 5px 25px;
    background-color: #fff;
    color: #56565b;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    font-weight: bold;
    border: 1px solid #56565b;
    border-radius: 100px;
    transition: all 0.3s;
}

.disclaimer-button:hover {
    background-color: #fff;
    color: #d1212a;
    border-color: #d1212a;
    cursor: pointer;
}

.img-container {
    position: relative;
    width: 70%;
    margin: 0 auto;
}

.top-image, .bottom-image {
    width: 100%;
    top: 0;
    left: 0;
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
}

.img-container:hover {
    cursor: pointer;
}

.img-container:hover .top-image {
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

.img-container:hover .bottom-image {
    opacity: 1;
}

.top-image {
    transition: transform 600ms;
}

.bottom-image {
    left: 100%;
    opacity: 0;
    -webkit-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
    transition-delay: 300ms;
    transition-duration: 500ms;
    transition-property: opacity;
}

.paradigm-big-text {
    color: #231f20;
    font-size: 2.1em;
    font-weight: 400;
    line-height: 1.17em;
}

.sub-page-research, .sub-page-story {
    display: none;
    padding: 0;
    opacity: 0;
    transition: opacity 500ms;
}

.sub-page-research:last-child {
    padding: 0;
}

.sub-page-content {
    overflow: hidden;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    padding-right: 17px;
    box-sizing: content-box;
}

.sub-page-research.active, .sub-page-story.active {
    display: block;
    opacity: 1;
}

.sub-pages-research-container, .sub-pages-story-container {
    height: calc(100vh - 87px * 2 - 47px);
}

.sub-pages-research-container {
    display: none;
    padding: 0;
    overflow-y: auto;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
}

.sub-pages-research-container.active {
    display: block;
}

.sub-pages-story-container {
    display: none;
    overflow-y: auto;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
}

.sub-pages-story-container.active {
    display: block;
}

.vl {
    border-left: 1px solid #231f20;
    height: 13px;
}

.embed-container {
    position: relative;
    height: 0;
    max-width: 100%;
    padding-bottom: 56.25%;
    overflow: hidden;
}

.embed-container iframe, .embed-container object, .embed-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.highlight-text {
    padding-top: 15px;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.17em;
}

.text {
    color: #1c2024;
    padding-top: 15px;
    font-size: 17px;
    font-weight: 300;
    font-family: 'Noto Serif JP', serif;
    line-height: 30px;
}

.height-fill-parent {
    height: 100%;
}

.banner {
    position: relative;
    width: 100%;
}

.banner-legend {
    padding-top: 5px;
    margin-bottom: 20px;
    font-size: 12px;
    line-height: 12px;
}

.world-map {
    width: 100%;
    height: 100%;
}

.reg {
    font-size: 0.6em;
    vertical-align: top;
}

.rotate-gif {
    width: 50%;
    height: auto;
}

.select2-container {
    font-size: 0.9rem;
}

.explorer-dropdown span.select2-results ul.select2-results__options {
    max-height: none;
}

.explorer-dropdown-label {
    font-size: 0.9rem;
    font-weight: bold;
}

.research-arrow {
    width: 70%;
}

.research-arrow:hover {
    cursor: pointer;
}

.footer, .sub-footer {
    font-size: 11px;
}

.sub-footer {
    display: none;
    padding-top: 64px;
    padding-bottom: 16px;
}

.mobile-footer {
    display: none;
    padding-top: 64px;
    padding-bottom: 16px;
}

div#research-left-arrow-container {
    display: none !important;
}

.ps__rail-y {
    opacity: 0.6;
}

@media screen and (max-width: 991px) {

    .header .logo {
        width: 50%;
        max-width: 195px;
    }

    .header .mobile-menu-button {
        display: block;
    }

    .header .navigation {
        display: none;
    }

    .info-box .title {
        font-size: 16px;
    }

    .small-text-container {
        padding: 0;
    }

    .sub-navigation-container {
        display: none;
    }

    .bottom-image {
        left: 0;
        -webkit-transform: translate(0, 80%);
        -ms-transform: translate(0, 80%);
        transform: translate(0, 80%);
    }
}

@media screen and (max-width: 767px) {

    .info-box .title {
        font-size: 12px;
    }

    .page .row:first-child {
        padding-top: calc(9.5vh * 1.5);
    }

    .page .row#disclaimer-container {
        padding-top: calc(9.5vh / 2);
    }

    .big-text-container {
        display: table;
        float: unset;
        padding: 0;
        margin: 0 auto;
    }

    .small-text-container {
        margin-top: 20px;
    }

    .disclaimer-button {
        margin: 15px auto 0;
    }

    .paradigm-big-text {
        padding-top: 20px;
        font-size: 1.5rem;
    }

    .text {
        font-size: 1rem;
    }
}

@media screen and (max-width: 575px) {

    .highlight-text {
        font-size: 1.5rem;
    }

    .header {
        padding: 20px;
    }

    .header .mobile-menu-button {
        right: 10px;
    }

    .page#home-page {
        overflow: auto;
    }

    .page#explore .row#rotate-gif {
        padding-top: calc(9.5vh * 1.5);
    }

    .explorer-menu-container {
        display: none;
    }

    .info-box .title {
        font-size: 17px;
    }

    .disclaimer-container {
        margin: 0 0 20px 0;
    }

    .small-text-container {
        padding: 0;
    }

    .container-padding-top, .sub-page-research, .sub-page-story {
        padding-top: calc(9.5vh / 2);
    }

    .sub-pages-research-container, .sub-pages-story-container {
        height: calc(100vh - 87px);
    }
}