@charset "utf-8";

/* ────────────────────── *
 *                                              *
 * タイトル                                     *
 *                                              *
 * ────────────────────── */

.title {
    width: 100%;
    height: 56.0rem;
    margin: 0 auto 16.0rem;
    position: relative;
    z-index: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.title#index {
    background: url("../../image/special/bg-title.jpg") no-repeat center center / cover;
    height: 90.0rem;
    margin: 0 auto;
    z-index: auto;
}
.title#index:after {
    content: "";
    background: url("../../image/special/letter-u.png") no-repeat center center / cover;
    width: 68.0rem;
    height: 108.0rem;
    position: absolute;
    right: 0;
    top: 26.0rem;
    z-index: 1;
}
.title#movie {
    background: url("../../image/special/movie/bg-title.jpg") no-repeat center center / cover;
    height: 56.0rem;
    margin: 0 auto;
    z-index: auto;
}
.title#movie:after {
    content: "";
    background: url("../../image/special/movie/letter-u.png") no-repeat center center / cover;
    width: 80.0rem;
    height: 92.0rem;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}
.title#index-story {
    background: url("../../image/special/story/bg-title.jpg") no-repeat center center / cover;
}
.title#index-story:after {
    content: "";
    background: url("../../image/special/story/letter-u.png") no-repeat center center / cover;
    width: 160.0rem;
    height: 92.0rem;
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
    pointer-events: none;
}
.title#story-01 {
    background: url("../../image/special/story/story-01/bg-title.jpg") no-repeat center center / cover;
    height: 90.0rem;
    margin: 0 auto;
}
.title#story-01:after {
    content: "";
    background: url("../../image/special/story/story-01/letter-o.png") no-repeat center center / cover;
    width: 68.0rem;
    height: 122.0rem;
    position: absolute;
    right: 0;
    top: 26.0rem;
    z-index: auto;
    pointer-events: none;
}
.title#story-02 {
    background: url("../../image/special/story/story-02/bg-title.jpg") no-repeat center center / cover;
    height: 90.0rem;
    margin: 0 auto;
}
.title#story-02:after {
    content: "";
    background: url("../../image/special/story/story-02/letter-u.png") no-repeat center center / cover;
    width: 61.0rem;
    height: 115.0rem;
    position: absolute;
    left: 0;
    top: 16.0rem;
    z-index: -1;
    pointer-events: none;
}
.title .inner {
    color: #fff;
    text-align: center;
    width: 100%;
    max-width: 120.0rem;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}
.title#index .inner h1 {
    width: 76.0rem;
    margin: 0 auto;
}
.title#index-story .inner h1 {
    font-family: "Bebas Neue", sans-serif;
    font-size: 8.0rem;
    letter-spacing: 0.2em;
    margin: 0 auto 1.0rem;
}
.title#movie .inner h1 {
    font-family: "Bebas Neue", sans-serif;
    font-size: 8.0rem;
    letter-spacing: 0.2em;
    width: 100.0rem;
    margin: 0 auto 1.0rem;
}
.title#story-01 .inner h1,
.title#story-02 .inner h1 {
    font-size: 5.5rem;
    line-height: 1.7;
    font-weight: 700;
}
.title .inner p.ja {
    font-size: 2.0rem;
    font-weight: 500;
}
.title .inner p.spcontents {
    font-size: 1.7rem;
    font-weight: 700;
    color: #fff;
}
.title .inner p.spcontents span.anim-run {
    background: #80c1ea;
    padding: 0.5rem 1.5rem;
}

/* ────────────────────── *
 *                                              *
 * プロジェクトストーリー（目次）               *
 *                                              *
 * ────────────────────── */

#contents-index-story {
    background: url("../../image/special/story/letter-k.png") no-repeat center bottom / contain;
    padding-bottom: 19.0rem;
    position: relative;
}
#contents-index-story .block {
    margin: 0 auto 9.0rem;
    position: relative;
}
#contents-index-story .block:last-of-type {
    margin: 0 auto;
}
#contents-index-story .block a {
    color: #fff;
    display: block;
}
#contents-index-story .block p.image {
    width: 75%;
    overflow: hidden;
    position: relative;
}
/*
#contents-index-story .block#story-01 p.image {
    clip-path: url(#clip-01);
}
#contents-index-story .block#story-02 p.image {
    margin-left: auto;
    clip-path: url(#clip-02);
}
*/
#contents-index-story .block#story-01 p.image {
    border-top-right-radius: 25vw;
    border-bottom-right-radius: 25vw;
}
#contents-index-story .block#story-02 p.image {
    margin-left: auto;
    border-top-left-radius: 25vw;
    border-bottom-left-radius: 25vw;
}

#contents-index-story .block p.image img {
    width: 100%;
    height: auto;
    max-width: none;
    transition: transform .3s;
}
#contents-index-story .block a:hover p.image img {
    transform: scale3d(1.05, 1.05, 1);
}
#contents-index-story .block .body {
    background: rgb(128,193,234);
    background: -moz-linear-gradient(45deg, rgba(128,193,234,1) 0%, rgba(0,141,215,1) 100%);
    background: -webkit-linear-gradient(45deg, rgba(128,193,234,1) 0%, rgba(0,141,215,1) 100%);
    background: linear-gradient(45deg, rgba(128,193,234,1) 0%, rgba(0,141,215,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#80c1ea",endColorstr="#008dd7",GradientType=1);
    text-align: center;
    width: 54.0rem;
    padding: 6.0rem 6.0rem 7.0rem;
    box-sizing: border-box;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
#contents-index-story .block#story-01 .body {
    left: 58.75%;
}
#contents-index-story .block#story-02 .body {
    right: 58.75%;
}
#contents-index-story .block .body p.category {
    font-size: 1.8rem;
    font-weight: 700;
    display: inline-block;
    padding: 0.8rem 1.0rem;
    margin: 0 auto 3.0rem;
    border: 1px solid #fff;
}
#contents-index-story .block .body dl dt {
    font-size: 2.8rem;
    font-weight: 700;
    margin-bottom: 4.0rem;
}
#contents-index-story .block .body dl dd {
    font-size: 1.6rem;
    line-height: 2.1;
    text-align: justify;
}

/* ────────────────────── *
 *                                              *
 * 次のコンテンツ                               *
 *                                              *
 * ────────────────────── */

#next {
    background: rgb(128,193,234);
    background: -moz-linear-gradient(-45deg, rgba(128,193,234,1) 0%, rgba(0,141,215,1) 100%);
    background: -webkit-linear-gradient(-45deg, rgba(128,193,234,1) 0%, rgba(0,141,215,1) 100%);
    background: linear-gradient(-45deg, rgba(128,193,234,1) 0%, rgba(0,141,215,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#80c1ea",endColorstr="#008dd7",GradientType=1);
    padding: 10.0rem 0 18.0rem;
}
#next .inner {
    width: 80.0rem;
    margin: 0 auto;
}
#next .inner p.title-next {
    font-family: "Bebas Neue", sans-serif;
    font-size: 2.8rem;
    color: #fff;
    letter-spacing: 0.15em;
    text-align: center;
    margin: 0 auto 6.0rem;
}
#next .inner .pagelink {
    position: relative;
}
#next .inner .pagelink a {
    color: #fff;
    display: block;
}
#next .inner .pagelink p.image {
    overflow: hidden;
    position: relative;
}
#next .inner .pagelink p.image img {
    transition: transform .3s;
}
#next .inner .pagelink a:hover p.image img {
    transform: scale3d(1.05, 1.05, 1);
}
#next .inner .pagelink dl.parent {
    text-align: center;
    width: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
#next .inner .pagelink dl.parent dt {
    font-size: 2.8rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 1.5rem;
}
#next .inner .pagelink dl.parent dd {
    font-size: 1.8rem;
    font-weight: 700;
}
#next .inner .pagelink dl.child {
    text-align: center;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
#next .inner .pagelink dl.child dt {
    font-size: 1.8rem;
    font-weight: 700;
    display: inline-block;
    padding: 0.8rem 1.0rem;
    margin: 0 auto 4.0rem;
    border: 1px solid #fff;
}
#next .inner .pagelink dl.child dd {
    font-size: 2.8rem;
    font-weight: 700;
}

/* ────────────────────── *
 *                                              *
 * プロジェクトストーリー                       *
 * 概要                                         *
 *                                              *
 * ────────────────────── */

#intro {
    background: #f4f4f4;
    padding-bottom: 24.0rem;
}
#intro #outline {
    color: #fff;
    background: rgb(128,193,234);
    background: -moz-linear-gradient(45deg, rgba(128,193,234,0.95) 0%, rgba(0,141,215,0.95) 50%, rgba(0,121,215,0.95) 100%);
    background: -webkit-linear-gradient(45deg, rgba(128,193,234,0.95) 0%, rgba(0,141,215,0.95) 50%, rgba(0,121,215,0.95) 100%);
    background: linear-gradient(45deg, rgba(128,193,234,0.95) 0%, rgba(0,141,215,0.95) 50%, rgba(0,121,215,0.95) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#80c1ea",endColorstr="#0079d7",GradientType=1);
    text-align: center;
    width: 112.0rem;
    padding: 7.0rem 11.0rem;
    margin: -19.0rem auto 10.0rem;
    box-sizing: border-box;
    position: relative;
}
#intro #outline p.category {
    font-size: 1.8rem;
    font-weight: 700;
    display: inline-block;
    padding: 0.8rem 1.0rem;
    margin: 0 auto 4.0rem;
    border: 1px solid #fff;
}
#intro #outline h2 {
    font-size: 2.8rem;
    font-weight: 700;
    margin: 0 auto 5.0rem;
}
#intro #outline p.body {
    font-size: 1.7rem;
    line-height: 2;
    font-weight: 500;
    text-align: justify;
    margin: 0 auto 6.0rem;
}
#intro #outline dl {
    overflow: hidden;
}
#intro #outline dl dt {
    font-family: "Bebas Neue", sans-serif;
    font-size: 2.2rem;
    letter-spacing: 0.05em;
    text-align: left;
    margin-bottom: 2.0rem;
}
#intro #outline dl dt span {
    position: relative;
}
#intro #outline dl dt span:after {
    content: "";
    background: #fff;
    width: 100vw;
    height: 1px;
    position: absolute;
    left: calc(100% + 1.0rem);
    top: 1.3rem;
}
#intro #outline dl dd {
    font-size: 1.5rem;
    line-height: 2;
    text-align: justify;
}

/* ────────────────────── *
 *                                              *
 * プロジェクトストーリー                       *
 * チームメンバー                               *
 *                                              *
 * ────────────────────── */

#intro #team {
    width: 112.0rem;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
#intro #team h3 {
    font-family: "Bebas Neue", sans-serif;
    font-size: 2.8rem;
    color: #008dd7;
    letter-spacing: 0.05em;
    text-align: center;
    margin: 0 auto 5.0rem;
}
#intro #team ul#members {
    text-align: center;
    width: 100%;
    margin: 0 auto 3.0rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
#intro #team ul#members.story-01 {
    width: 83.0rem;
}
#intro #team ul#members li {
    width: 24.0rem;
}
#intro #team ul#members li p.position {
    font-size: 2.0rem;
    line-height: 1.75;
    font-weight: 500;
    color: #fff;
    background: #008dd7;
    text-align: center;
    display: inline-block;
    min-width: 13.0rem;
    padding: 0 2.0rem;
    margin: -2.0rem auto 1.0rem;
    border-radius: 4.0rem;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
}
#intro #team ul#members li dl dt {
    font-size: 1.6rem;
    line-height: 1.375;
    font-weight: 500;
    color: #008dd7;
    text-align: center;
    min-height: calc(1.6rem * 1.375 * 3);
    margin-bottom: 1.0rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
#intro #team ul#members li dl dd {
    font-size: 2.0rem;
    font-weight: 500;
}
#intro #team p.notice {
    font-size: 1.2rem;
    color: #999;
    text-align: right;
}
#intro #team p.notice.story-01 {
    width: 83.0rem;
    margin: 0 auto;
}

/* ────────────────────── *
 *                                              *
 * プロジェクトストーリー                       *
 * 本体                                         *
 *                                              *
 * ────────────────────── */

#story-detail {
    margin: -14.0rem auto 0;
    position: relative;
}
#story-detail .story {
    width: 112.0rem;
    margin: 0 auto 14.0rem;
    position: relative;
    z-index: 1;
}
#story-detail .story .head {
    width: 104.0rem;
    margin: -16.0rem auto 5.0rem;
    position: relative;
    z-index: 1;
}
#story-detail .story .head p.num {
    font-size: 2.7rem;
    font-weight: 700;
    color: #008dd7;
    margin-bottom: 2.0rem;
}
#story-detail .story .head h3 {
    font-size: 4.0rem;
    font-weight: 700;
    color: #fff;
    position: relative;
    z-index: 1;
}
#story-detail .story .head h3 .anim-run {
    background: #008dd7;
    padding: 1.5rem;
    margin-bottom: 0.5rem;
}
#story-detail .story .head p#letter-story-02-02-sp {
    display: none;
}
#story-detail .story .head p#letter-story-02-04 {
    width: 33.0rem;
    position: absolute;
    left: 56.0rem;
    top: -5.0rem;
}
#story-detail .story .body {
    font-size: 1.6rem;
    line-height: 2.1875;
    width: 96.0rem;
    margin: 0 auto;
    position: relative;
    z-index: 3;
}
#story-detail .story .body p {
    text-align: justify;
    margin-bottom: 3.0rem;
}
#story-detail .story .body p:last-of-type {
    margin-bottom: 0;
}
#story-detail .story .body p.image-sub {
    width: 45.0rem;
    margin-top: 8.0rem;
}

/* 締め */
#story-detail #closing {
    background: #f4f4f4;
    padding: 12.0rem 0;
    position: relative;
}
#story-detail #closing.story-01:before {
    content: "";
    background: url("../../image/special/story/story-01/letter-a.png") no-repeat center center / cover;
    width: 28.0rem;
    height: 25.4rem;
    position: absolute;
    left: 39.0rem;
    top: -20.0rem;
}
#story-detail #closing.story-02:before {
    content: "";
    background: url("../../image/special/story/story-02/letter-o.png") no-repeat center center / cover;
    width: 18.6rem;
    height: 16.6rem;
    position: absolute;
    left: 17.0rem;
    top: -9.0rem;
}
#story-detail #closing dl {
    width: 96.0rem;
    margin: 0 auto;
}
#story-detail #closing dl dt {
    font-size: 2.8rem;
    line-height: 1.6;
    font-weight: 700;
    color: #008dd7;
    text-align: center;
    margin: 0 auto 5.0rem;
}
#story-detail #closing dl dd {
    font-size: 1.6rem;
    line-height: 2.1875;
    text-align: justify;
}
#story-detail #closing p.image {
    width: 96.0rem;
    margin: 10.0rem auto 0;
}
#story-detail p.image-full img {
    width: 100%;
    height: auto;
}

/* 飾り文字 */
.letter ul li {
    position: absolute;
}
.letter.story-01 ul li:nth-child(1) {
    width: 47.0rem;
    right: 0;
    top: 165.0rem;
    z-index: 0;
}
.letter.story-01 ul li:nth-child(2) {
    width: 32.0rem;
    right: 0;
    top: 430.0rem;
    z-index: -1;
}
.letter.story-01 ul li:nth-child(3),
.letter.story-01 ul li:nth-child(4) {
    display: none;
}
.letter.story-02 ul li:nth-child(1) {
    width: 31.0rem;
    left: 47.0rem;
    top: -27.0rem;
    z-index: 0;
}
.letter.story-02 ul li:nth-child(2) {
    width: 21.8rem;
    right: 16.0rem;
    top: 85.0rem;
    z-index: -1;
}
.letter.story-02 ul li:nth-child(3) {
    width: 33.0rem;
    left: 0;
    top: 165.0rem;
    z-index: 1;
}
.letter.story-02 ul li:nth-child(4) {
    width: 82.0rem;
    right: 0;
    top: 300.0rem;
    z-index: -1;
}

/* ────────────────────── *
 *                                              *
 * 奥村組の未来                                 *
 *                                              *
 * ────────────────────── */

#future {
    padding-bottom: 56.0rem;
    position: relative;
}
#future .inner {
    width: 100%;
    max-width: 160.0rem;
    margin: 0 auto;
    position: relative;
}

/* 各セクションの見出し */
#future .inner .section-title {
    color: #fff;
    width: calc(50vw + 56.0rem);
    height: 56.0rem;
    min-width: 136.0rem;
    position: absolute;
    right: 24.0rem;
    z-index: 2;
    border-top-right-radius: 28.0rem;
    border-bottom-right-radius: 28.0rem;
}
#future .inner .section-title.future {
    background: url("../../image/special/bg-subtitle-future.jpg") no-repeat center center / cover;
}
#future .inner .section-title.history {
    background: url("../../image/special/bg-subtitle-history.jpg") no-repeat center center / cover;
}
#future .inner .section-title .section-title-inner {
    width: 100%;
    max-width: 136.0rem;
    height: 100%;
    margin-left: auto;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
#future .inner .section-title .section-title-inner h2 {
    font-size: 6.0rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    margin-bottom: 3.0rem;
}
#future .inner .section-title .section-title-inner h2 em {
    font-size: 7.0rem;
    font-weight: 700;
    font-style: normal;
}
#future .inner .section-title .section-title-inner p.txt {
    font-size: 2.0rem;
    line-height: 2.15;
    font-weight: 500;
    text-align: center;
}
#future .inner .section-title .section-title-inner p.image {
    text-align: right;
    width: 100%;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

/* コンテンツ本体 */
#future .inner .body {
    width: 128.0rem;
    position: relative;
}
#future .inner .body#area-future:before {
    content: "";
    background: #f4f4f4 url("../../image/special/bg-future.jpg") no-repeat center center / cover;
    width: 80vw;
    height: calc(100% + 28.0rem);
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
}
#future .inner .body#area-future:after {
    content: "";
    background: url("../../image/special/letter-a.png") no-repeat center center / cover;
    width: 39.0rem;
    height: 47.0rem;
    position: absolute;
    left: 0;
    top: 88.0rem;
}
#future .inner .body#area-future #closing {
    color: #fff;
    background: url("../../image/special/bg-closing.jpg") no-repeat center center / cover;
    text-align: center;
    width: 104.0rem;
    padding: 8.0rem 0;
    margin-left: 17.0rem;
    position: relative;
    top: -10.0rem;
    z-index: 1;
}
#future .inner .body#area-future #closing dl dt {
    font-family: 'Noto Serif JP', serif;
    font-size: 4.6rem;
    margin: 0 auto 4.0rem;
}
#future .inner .body#area-future #closing dl dd {
    font-size: 1.8rem;
    line-height: 2;
    font-weight: 500;
}
#future .inner .body#area-future #future-detail {
    width: 90.0rem;
    padding-bottom: 12.0rem;
    margin-left: 24.0rem;
    position: relative;
    z-index: 1;
}
#future .inner .body#area-future #future-detail:before {
    content: "";
    background : -moz-linear-gradient(50% 100% 90deg,rgba(0, 168, 87, 1) 35.95%,rgba(4, 170, 89, 0.84) 45.96%,rgba(15, 175, 95, 0.7) 55.15%,rgba(33, 183, 105, 0.56) 64.02%,rgba(60, 194, 119, 0.43) 72.7%,rgba(93, 209, 138, 0.29) 81.24%,rgba(135, 228, 160, 0.16) 89.67%,rgba(183, 249, 186, 0.03) 97.86%,rgba(197, 255, 194, 0) 100%);
    background : -webkit-linear-gradient(90deg, rgba(0, 168, 87, 1) 35.95%, rgba(4, 170, 89, 0.84) 45.96%, rgba(15, 175, 95, 0.7) 55.15%, rgba(33, 183, 105, 0.56) 64.02%, rgba(60, 194, 119, 0.43) 72.7%, rgba(93, 209, 138, 0.29) 81.24%, rgba(135, 228, 160, 0.16) 89.67%, rgba(183, 249, 186, 0.03) 97.86%, rgba(197, 255, 194, 0) 100%);
    background : -webkit-gradient(linear,50% 100% ,50% 0% ,color-stop(0.3595,rgba(0, 168, 87, 1) ),color-stop(0.4596,rgba(4, 170, 89, 0.84) ),color-stop(0.5515,rgba(15, 175, 95, 0.7) ),color-stop(0.6402,rgba(33, 183, 105, 0.56) ),color-stop(0.727,rgba(60, 194, 119, 0.43) ),color-stop(0.8124,rgba(93, 209, 138, 0.29) ),color-stop(0.8967,rgba(135, 228, 160, 0.16) ),color-stop(0.9786,rgba(183, 249, 186, 0.03) ),color-stop(1,rgba(197, 255, 194, 0) ));
    background : linear-gradient(0deg, rgba(0, 168, 87, 1) 35.95%, rgba(4, 170, 89, 0.84) 45.96%, rgba(15, 175, 95, 0.7) 55.15%, rgba(33, 183, 105, 0.56) 64.02%, rgba(60, 194, 119, 0.43) 72.7%, rgba(93, 209, 138, 0.29) 81.24%, rgba(135, 228, 160, 0.16) 89.67%, rgba(183, 249, 186, 0.03) 97.86%, rgba(197, 255, 194, 0) 100%);
    width: 0.8rem;
    height: calc(100% + 20.0rem);
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
}
#future .inner .body#area-future #future-detail .item {
    background: #fff;
    width: 70.0rem;
    padding: 4.0rem;
    margin-bottom: 6.0rem;
    border-radius: 0.6rem;
    box-shadow: 0 0 0.5rem rgba(0,0,0, 0.15);
    box-sizing: border-box;
    position: relative;
}
#future .inner .body#area-future #future-detail .item:last-of-type {
    margin-bottom: 0;
}
#future .inner .body#area-future #future-detail .item dl {
    width: 41.0rem;
}
#future .inner .body#area-future #future-detail .item dl dt {
    font-size: 2.4rem;
    font-weight: 700;
    color: #00a857;
    margin-bottom: 2.0rem;
}
#future .inner .body#area-future #future-detail .item dl dd {
    font-size: 1.5rem;
    line-height: 2;
    text-align: justify;
}
#future .inner .body#area-future #future-detail .item p.image {
    position: absolute;
    top: 50%;
    left: 50.0rem;
    transform: translateY(-50%);
}

#future .inner .body#area-future #future-detail .item.right {
    margin-left: auto;
}
#future .inner .body#area-future #future-detail .item.right dl {
    margin-left: auto;
}
#future .inner .body#area-future #future-detail .item.right p.image {
    left: auto;
    right: 50.0rem;
}
#future .inner .body#area-future #future-detail .item#fd-01 p.image {
    width: 26.0rem;
}
#future .inner .body#area-future #future-detail .item#fd-02 p.image {
    width: 33.4rem;
}
#future .inner .body#area-future #future-detail .item#fd-03 p.image {
    width: 26.0rem;
}
#future .inner .body#area-future #future-detail .item#fd-04 p.image {
    width: 26.0rem;
}


#future .inner .body#area-history {
    padding-top: 70.0rem;
}
#future .inner .body#area-history:before {
    content: "";
    background: #f4f4f4 url("../../image/special/bg-history.jpg") no-repeat center center / cover;
    width: 80vw;
    height: calc(100% + 28.0rem);
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
}
#future .inner .body#area-history:after {
    content: "";
    background: url("../../image/special/letter-k.png") no-repeat center center / cover;
    width: 52.8rem;
    height: 107.0rem;
    position: absolute;
    left: 0;
    top: 200.0rem;
}
#future .inner .body#area-history #history-detail {
    width: 90.0rem;
    padding-bottom: 12.0rem;
    margin-left: 24.0rem;
    position: relative;
    z-index: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
#future .inner .body#area-history #history-detail:before {
    content: "";
    background : -moz-linear-gradient(50% 100% 90deg,rgba(0, 141, 215, 1) 0%,rgba(244, 244, 244, 1) 100%);
    background : -webkit-linear-gradient(90deg, rgba(0, 141, 215, 1) 0%, rgba(244, 244, 244, 1) 100%);
    background : -webkit-gradient(linear,50% 100% ,50% 0% ,color-stop(0,rgba(0, 141, 215, 1) ),color-stop(1,rgba(244, 244, 244, 1) ));
    background : linear-gradient(0deg, rgba(0, 141, 215, 1) 0%, rgba(244, 244, 244, 1) 100%);
    width: 0.8rem;
    height: 100%;
    position: absolute;
    left: 50%;
    bottom: 0;
    z-index: -1;
    transform: translateX(-50%);
}
#future .inner .body#area-history #history-detail:after {
    content: "";
    background: url("../../image/special/letter-m.png") no-repeat center center / cover;
    width: 35.8rem;
    height: 21.6rem;
    position: absolute;
    right: -28.0rem;
    top: -20.0rem;
    z-index: -1;
}
#future .inner .body#area-history #history-detail .left {
    width: 40.0rem;
    padding-top: 15.0rem;
}
#future .inner .body#area-history #history-detail .right {
    width: 40.0rem;
}
#future .inner .body#area-history #history-detail .item {
    background: #fff;
    padding: 9.0rem 5.0rem 5.0rem;
    margin-bottom: 10.0rem;
    border-radius: 0.6rem;
    box-shadow: 0 0 0.5rem rgba(0,0,0, 0.15);
    box-sizing: border-box;
    position: relative;
}
#future .inner .body#area-history #history-detail .left .item:before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 1.25rem 0 1.25rem 2.17rem;
    border-color: transparent transparent transparent #ffffff;
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
}
#future .inner .body#area-history #history-detail .left .item#hd-04:before {
    top: 25%;
}
#future .inner .body#area-history #history-detail .right .item:before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 1.25rem 2.17rem 1.25rem 0;
    border-color: transparent #ffffff transparent transparent;
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
}
#future .inner .body#area-history #history-detail .item:last-of-type {
    margin-bottom: 0;
}
#future .inner .body#area-history #history-detail .item p.year {
    font-family: "Bebas Neue", sans-serif;
    font-size: 6.0rem;
    letter-spacing: 0.1em;
    border-bottom: 2px solid #000;
    position: absolute;
    left: 2.0rem;
    top: -2.0rem;
}
#future .inner .body#area-history #history-detail .item dl {
    margin-bottom: 4.0rem;
}
#future .inner .body#area-history #history-detail .item dl dt {
    font-size: 2.4rem;
    line-height: 1.45;
    font-weight: 700;
    color: #008dd7;
    margin-bottom: 2.0rem;
}
#future .inner .body#area-history #history-detail .item dl dd {
    font-feature-settings: "palt" 1;
    font-size: 1.5rem;
    line-height: 2;
    text-align: justify;
}
#future .inner .body#area-history #history-detail .item dl dd a {
    color: #008dd7;
    text-decoration: underline;
}

/* ────────────────────── *
 *                                              *
 * 下見出し                                     *
 *                                              *
 * ────────────────────── */

#title-bottom {
    background: url("../../image/special/bg-bottom.jpg") no-repeat center center / cover;
    width: 100%;
    height: 51.87500000000001vw;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
#title-bottom .inner {
    color: #fff;
    text-align: center;
    width: 100%;
    max-width: 120.0rem;
    margin: 0 auto;
}
#title-bottom .inner h2 {
    width: 75.6rem;
    margin: 0 auto;
}
#title-bottom .inner p.spcontents {
    font-size: 1.7rem;
    font-weight: 700;
    color: #fff;
}
#title-bottom .inner p.spcontents span.anim-run {
    background: #80c1ea;
    padding: 0.5rem 1.5rem;
}
/*
#title-bottom p#up-to-scroll {
    font-size: 1.4rem;
    line-height: 1.8;
    font-weight: 700;
    color: #008dd7;
    text-align: center;
    padding-top: 8.0rem;
    position: absolute;
    top: 10.0rem;
    left: 50%;
    transform: translateX(-50%);
}
#title-bottom p#up-to-scroll:before {
    content: "";
    background: url("../../image/special/icon-up.png") no-repeat center center / cover;
    width: 1.4rem;
    height: 8.0rem;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}
*/
#title-bottom #up-to-scroll {
    text-align: center;
    width: 20.0rem;
    padding-top: 8.0rem;
    position: absolute;
    top: 6.25vw;
    left: 50%;
    transform: translateX(-50%);
}
#title-bottom #up-to-scroll span.label {
    font-size: 1.4rem;
    line-height: 1.8;
    font-weight: 700;
    color: #008dd7;
    text-align: center;
}
#title-bottom #up-to-scroll span.line {
    width: 0.1rem;
    height: 7.0rem;
    margin-left: -0.1rem;
    position: absolute;
    top: 1.0rem;
    left: 50%;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
}
#title-bottom #up-to-scroll span.line:before {
    content: "";
    background: rgba(0, 141, 215, 0.2);
    width: 0.1rem;
    height: 7.0rem;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    transform: scaleY(0);
    transform-origin: bottom center;
    animation: arrowBTu 5s ease 0s infinite forwards;
}
#title-bottom #up-to-scroll span.line:after {
    content: "";
    background: #008dd7;
    width: 0.1rem;
    height: 7.0rem;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    transform: scaleY(0);
    transform-origin: bottom center;
    animation: arrowBTt 5s ease 0s infinite forwards;
}
#title-bottom #up-to-scroll span.arrow {
    width: 1.3rem;
    margin-left: -0.65rem;
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 2;
    animation: fadeBT 5s ease-in 0s infinite forwards;
}
@keyframes fadeBT {
    0% {
        opacity: 0;
        transform: translateY(1.0rem)
    }
    25% {
        opacity: 0.5;
        transform: translateY(0.5rem)
    }
    50% {
        opacity: 1;
        transform: translateY(0)
    }
    90% {
        opacity: 1;
        transform: translateY(0)
    }
    100% {
        opacity: 0;
        transform: translateY(0)
    }
}
@keyframes arrowBTu {
    0% {
        transform-origin: bottom center;
        transform: scaleY(0);
        opacity: 0;
    }
    33% {
        transform-origin: bottom center;
        transform: scaleY(1);
        opacity: 1;
    }
    80% {
        transform-origin: top center;
        transform: scaleY(1);
        opacity: 1;
    }
    100% {
        transform-origin: top center;
        transform: scaleY(0);
        opacity: 0;
    }
}
@keyframes arrowBTt {
    0% {
        transform-origin: bottom center;
        transform: scaleY(0);
        opacity: 0;
    }
    33% {
        transform-origin: bottom center;
        transform: scaleY(0);
        opacity: 0;
    }
    50% {
        transform-origin: bottom center;
        transform: scaleY(1);
        opacity: 1;
    }
    61% {
        transform-origin: top center;
        transform: scaleY(1);
        opacity: 1;
    }
    90% {
        transform-origin: top center;
        transform: scaleY(0);
        opacity: 0;
    }
    100% {
        transform-origin: top center;
        transform: scaleY(0);
        opacity: 0;
    }
}

/* ────────────────────── *
 *                                              *
 * メーター                                     *
 *                                              *
 * ────────────────────── */

#future #fixed {
    font-size: 1.8rem;
    font-weight: 500;
    width: 100%;
    max-width: 160.0rem;
    position: fixed;
    z-index: 99;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    transition: all .5s;
    opacity: 0;
    visibility: hidden;
}
#future #fixed.is-fixed {
    opacity: 1;
    visibility: visible;
}
#future #fixed ul {
    float: right;
    width: 22.0rem;
    padding-left: 5.0rem;
    position: relative;
    box-sizing: border-box;
    pointer-events: auto;
}
#future #fixed ul:before {
    content: "";
    background : -moz-linear-gradient(50% 100% 90deg,rgba(0, 141, 215, 1) 0%,rgba(0, 168, 87, 1) 100%);
    background : -webkit-linear-gradient(90deg, rgba(0, 141, 215, 1) 0%, rgba(0, 168, 87, 1) 100%);
    background : -webkit-gradient(linear,50% 100% ,50% 0% ,color-stop(0,rgba(0, 141, 215, 1) ),color-stop(1,rgba(0, 168, 87, 1) ));
    background : linear-gradient(0deg, rgba(0, 141, 215, 1) 0%, rgba(0, 168, 87, 1) 100%);
    width: 0.6rem;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 0.3rem;
}
#future #fixed ul li {
    padding-bottom: 2.4rem;
    position: relative;
}
#future #fixed ul li:last-child {
    padding-bottom: 0;
}
#future #fixed ul li:before {
    content: "";
    background: #d9ecf9;
    width: 0.6rem;
    height: 100%;
    position: absolute;
    left: -5.0rem;
    top: 0;
    transition: all .2s;
}
#future #fixed ul li:first-child:before {
    border-top-right-radius: 0.6rem;
    border-top-left-radius: 0.6rem;
}
#future #fixed ul li:last-child:before {
    border-bottom-right-radius: 0.6rem;
    border-bottom-left-radius: 0.6rem;
}
#future #fixed ul li.current:before {
    background: none;
}
#future #fixed ul li#meter05 {
    font-size: 1.5rem;
}
#future #fixed ul li#meter12 {
    font-size: 1.5rem;
}
#future #fixed ul li a {
    color: #000;
}
#future #fixed ul li.marker:after {
    content: "";
    background: #fff;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    box-shadow: 0 0 0.5rem rgba(0,0,0, 0.15);
    position: absolute;
    left: calc(-5.0rem - 0.9rem);
    top: 0;
}
#future #fixed ul li#meter01.current a {
    color: #008dd7;
}
#future #fixed ul li#meter02.current a {
    color: #008dd7;
}
#future #fixed ul li#meter03.current a {
    color: #008dd7;
}
#future #fixed ul li#meter04.current a {
    color: #008dd7;
}
#future #fixed ul li#meter05.current a {
    color: #000;
}
#future #fixed ul li#meter06.current a {
    color: #00a07c;
}
#future #fixed ul li#meter07.current a {
    color: #00a07c;
}
#future #fixed ul li#meter08.current a {
    color: #00999e;
}
#future #fixed ul li#meter09.current a {
    color: #0096ac;
}
#future #fixed ul li#meter10.current a {
    color: #0093b9;
}
#future #fixed ul li#meter11.current a {
    color: #0090c7;
}
#future #fixed ul li#meter12.current a {
    color: #000;
}

#loader {
    background: #fff;
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    transition: all .8s;
}
#loader.hide {
    opacity: 0;
    visibility: hidden;
}
#loader p.logo {
    width: 124px;
    position: absolute;
    left: 50%;
    top: 40%;
    transform: translate(-50%, -50%);
}
#loader p.txt {
    font-size: 14px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
#loader .spinner {
    margin: 0 auto;
    width: 70px;
    text-align: center;
    position: absolute;
    left: 50%;
    top: 55%;
    transform: translate(-50%, -50%);
}
#loader .spinner > div {
    width: 10px;
    height: 10px;
    background-color: #008dd7;
    margin: 0 5px;
    border-radius: 100%;
    display: inline-block;
    animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}
#loader .spinner .bounce1 {
    animation-delay: -0.32s;
}
#loader .spinner .bounce2 {
    animation-delay: -0.16s;
}

@keyframes sk-bouncedelay {
  0%, 80%, 100% { 
    -webkit-transform: scale(0);
    transform: scale(0);
  } 40% { 
    -webkit-transform: scale(1.0);
    transform: scale(1.0);
  }
}


/* ────────────────────── *
 *                                              *
 * 仕事紹介映像                                 *
 *                                              *
 * ────────────────────── */

#contents-movie {
    padding: 15.0rem 0 13.0rem;
    position: relative;
    z-index: 1;
}
#contents-movie p.txt {
    font-size: 1.6rem;
    line-height: 2.1875;
    text-align: center;
    margin: 0 auto 8.0rem;
}
#contents-movie ul.movie {
    font-size: 2.5rem;
    font-weight: 700;
    text-align: center;
    width: 136.0rem;
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
#contents-movie ul.movie li {
    width: 66.0rem;
    position: relative;
    overflow: hidden;
}
#contents-movie ul.movie li a {
    color: #008dd7;
    display: block;
}
#contents-movie ul.movie li p.image {
    margin-bottom: 2.0rem;
    position: relative;
    overflow: hidden;
}
#contents-movie ul.movie li p.image:before {
    content: "";
    background: url("../../image/special/movie/btn-movie.png") no-repeat center center / cover;
    width: 7.8rem;
    height: 7.8rem;
    position: absolute;
    right: 50%;
    top: 50%;
    z-index: 1;
    transform: translate(50%, -50%);
}
#contents-movie ul.movie li p.image img {
    transition: transform .5s;
}
#contents-movie ul.movie li a:hover p.image img {
    transform: scale(1.05);
}
