@charset "UTF-8";@import url(https://cdn.jsdelivr.net/npm/yakuhanjp@3.3.1/dist/css/yakuhanjp.min.css);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);@import url(https://fonts.googleapis.com/css?family=Noto+Sans+JP:100,300,400,500,700&display=swap);@import url(https://fonts.googleapis.com/earlyaccess/notosansjapanese.css);@import url(https://cdn.jsdelivr.net/npm/yakuhanjp@3.3.1/dist/css/yakuhanjp.min.css);.att {
    padding-left: 1em;
    text-indent: -1em
}

.att02 {
    padding-left: 1.3em;
    text-indent: -1.3em
}

/*! Lity - v2.4.0 - 2019-08-10
* http://sorgalla.com/lity/
* Copyright (c) 2015-2019 Jan Sorgalla; Licensed MIT */
.lity {
    z-index: 9990;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    white-space: nowrap;
    background: #0b0b0b;
    background: rgba(0,0,0,.9);
    outline: 0!important;
    opacity: 0;
    transition: opacity .3s ease
}

.lity.lity-opened {
    opacity: 1
}

.lity.lity-closed {
    opacity: 0
}

.lity * {
    box-sizing: border-box
}

.lity-wrap {
    z-index: 9990;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    text-align: center;
    outline: 0!important
}

.lity-wrap:before {
    content: '';
    display: inline-block;
    height: 100%;
    vertical-align: middle;
    margin-right: -.25em
}

.lity-loader {
    z-index: 9991;
    color: #fff;
    position: absolute;
    top: 50%;
    margin-top: -.8em;
    width: 100%;
    text-align: center;
    font-size: 14px;
    font-family: Arial,Helvetica,sans-serif;
    opacity: 0;
    transition: opacity .3s ease
}

.lity-loading .lity-loader {
    opacity: 1
}

.lity-container {
    z-index: 9992;
    position: relative;
    text-align: left;
    vertical-align: middle;
    display: inline-block;
    white-space: normal;
    max-width: 100%;
    max-height: 100%;
    outline: 0!important
}

.lity-content {
    z-index: 9993;
    width: 100%;
    -webkit-transform: scale(1);
    transform: scale(1);
    transition: -webkit-transform .3s ease;
    transition: transform .3s ease;
    transition: transform .3s ease,-webkit-transform .3s ease
}

.lity-closed .lity-content,.lity-loading .lity-content {
    -webkit-transform: scale(.8);
    transform: scale(.8)
}

.lity-content:after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    box-shadow: 0 0 8px rgba(0,0,0,.6)
}

.lity-close_box {
    z-index: 9999;
    width: 60px;
    height: 60px;
    position: fixed;
    right: 5rem;
    top: 5rem;
    -webkit-appearance: none;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    padding: 0;
    color: #fff;
    font-style: normal;
    font-size: 80px;
    font-family: Oswald,sans-serif;
    line-height: 30px;
    font-weight: 100!important;
    border: 0;
    background: 0 0;
    border-radius: 50%;
    outline: 0;
    box-shadow: none
}

.lity-close_box a {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    content: "";
    z-index: 999
}

.lity-close_box a {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    content: "";
    z-index: 999
}

.lity-close_box button {
    font-size: 60px;
    font-size: 6rem
}

button {
    padding: 0;
    border: none;
    background: 0 0
}

button:active {
    top: 3rem;
    right: 3rem
}

button img {
    display: block
}

html {
    font-size: 62.5%
}

body {
    font-family: "Noto Sans JP","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif!important;
    font-size: 16px;
    font-size: 1.6em;
    line-height: 1.75;
    color: #333
}

body .yaku {
    font-family: YakuHanJP,'Noto Sans JP',"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif!important
}

@media only screen and (max-width: 768px) {
    body {
        font-size:13px;
        font-size: 1.3rem
    }
}

html.win.chrome body {
    font-family: "Noto Sans JP","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif!important
}

html.win.gecko body {
    font-family: 'Noto Sans JP',"Noto Sans Japanese","Hiragino Sans","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif
}

html.win.gecko .yaku {
    font-family: YakuHanJP,'Noto Sans JP',"Noto Sans Japanese","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif
}

.en {
    font-family: Inter,sans-serif
}

.serif {
    font-family: 'Cormorant Infant',serif
}

.pc {
    display: block
}

@media only screen and (max-width: 768px) {
    .pc {
        display:none
    }
}

.sp {
    display: none
}

@media only screen and (max-width: 768px) {
    .sp {
        display:block
    }
}

.adelay01 {
    -webkit-animation-delay: .1s!important;
    animation-delay: .1s!important
}

@media only screen and (max-width: 768px) {
    .adelay01 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay02 {
    -webkit-animation-delay: .2s!important;
    animation-delay: .2s!important
}

@media only screen and (max-width: 768px) {
    .adelay02 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay03 {
    -webkit-animation-delay: .3s!important;
    animation-delay: .3s!important
}

@media only screen and (max-width: 768px) {
    .adelay03 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay04 {
    -webkit-animation-delay: .4s!important;
    animation-delay: .4s!important
}

@media only screen and (max-width: 768px) {
    .adelay04 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay05 {
    -webkit-animation-delay: .5s!important;
    animation-delay: .5s!important
}

@media only screen and (max-width: 768px) {
    .adelay05 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay06 {
    -webkit-animation-delay: .6s!important;
    animation-delay: .6s!important
}

@media only screen and (max-width: 768px) {
    .adelay06 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay07 {
    -webkit-animation-delay: .7s!important;
    animation-delay: .7s!important
}

@media only screen and (max-width: 768px) {
    .adelay07 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay08 {
    -webkit-animation-delay: .8s!important;
    animation-delay: .8s!important
}

@media only screen and (max-width: 768px) {
    .adelay08 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay09 {
    -webkit-animation-delay: .9s!important;
    animation-delay: .9s!important
}

@media only screen and (max-width: 768px) {
    .adelay09 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.adelay10 {
    -webkit-animation-delay: 1s!important;
    animation-delay: 1s!important
}

@media only screen and (max-width: 768px) {
    .adelay10 {
        -webkit-animation-delay:0s!important;
        animation-delay: 0s!important
    }
}

.inview.fadeInup {
    opacity: 0
}

.inview.fadeInup.active {
    -webkit-animation: fadeInup .5s ease-out;
    animation: fadeInup .5s ease-out;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards
}

.inview.leftright {
    opacity: 0
}

.inview.leftright.active {
    -webkit-animation: leftright_anim .5s ease-out;
    animation: leftright_anim .5s ease-out;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards
}

.inview.show {
    opacity: 0
}

.inview.show.active {
    -webkit-animation: show 1s ease-out;
    animation: show 1s ease-out;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards
}

.image-anime-mask {
    overflow: hidden;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0);
    transition: all .8s cubic-bezier(.88,.08,.71,.76);
    -webkit-transform-origin: left;
    transform-origin: left
}

.image-anime-mask.active {
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0)
}

.image-anime-main {
    display: block;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0);
    transition: all .8s cubic-bezier(.88,.08,.71,.76)
}

.image-anime-main.active {
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0)
}

.anim_box span {
    position: relative;
    overflow: hidden;
    display: inline-block;
    opacity: 0;
    transition: all .5s ease;
    transition-delay: .3s;
    line-height: 1.5;
    -webkit-transform: translateY(12px);
    transform: translateY(12px)
}

.anim_box span.gr:before {
    background: #a3ff10
}

.anim_box span:before {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    content: "";
    z-index: 9;
    background: #a3ff10;
    -webkit-transform: translateX(-101%);
    transform: translateX(-101%)
}

.anim_box span.adelay02 {
    transition-delay: .6s
}

.anim_box.is-active span {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0)
}

.anim_box.is-active span:before {
    -webkit-animation-name: copyslide;
    animation-name: copyslide;
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-timing-function: cubic-bezier(.86,0,.07,1);
    animation-timing-function: cubic-bezier(.86,0,.07,1);
    -webkit-animation-delay: .1s;
    animation-delay: .1s
}

.anim_box.is-active span.adelay02:before {
    -webkit-animation-delay: .3s;
    animation-delay: .3s
}

.anim_box.is-active span.adelay04:before {
    -webkit-animation-delay: .6s;
    animation-delay: .6s
}

.anim_box.is-active.ren span:nth-of-type(1):before {
    -webkit-animation-delay: .3s;
    animation-delay: .3s
}

.anim_box.is-active.ren span:nth-of-type(2):before {
    -webkit-animation-delay: .4s;
    animation-delay: .4s
}

.anim_box.is-active.ren span:nth-of-type(3):before {
    -webkit-animation-delay: .5s;
    animation-delay: .5s
}

.anim_box.is-active.ren span:nth-of-type(4):before {
    -webkit-animation-delay: .6s;
    animation-delay: .6s
}

@-webkit-keyframes fadeInup {
    0% {
        -webkit-transform: translateY(25px);
        transform: translateY(25px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }
}

@keyframes fadeInup {
    0% {
        -webkit-transform: translateY(25px);
        transform: translateY(25px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1
    }
}

@-webkit-keyframes leftright_anim {
    0% {
        -webkit-transform: translatex(-30px);
        transform: translatex(-30px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }
}

@keyframes leftright_anim {
    0% {
        -webkit-transform: translatex(-30px);
        transform: translatex(-30px);
        opacity: 0
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1
    }
}

@-webkit-keyframes flash {
    0% {
        opacity: .4
    }

    100% {
        opacity: 1
    }
}

@keyframes flash {
    0% {
        opacity: .4
    }

    100% {
        opacity: 1
    }
}

@-webkit-keyframes show {
    0% {
        opacity: 0
    }

    100% {
        opacity: 1
    }
}

@keyframes show {
    0% {
        opacity: 0
    }

    100% {
        opacity: 1
    }
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0)
    }

    100% {
        -webkit-transform: rotate(360deg)
    }
}

@keyframes spin {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

.mt0 {
    margin-top: 0
}

.mb0 {
    margin-bottom: 0
}

.ml0 {
    margin-left: 0
}

.mr0 {
    margin-right: 0
}

.pt0 {
    padding-top: 0
}

.pb0 {
    padding-bottom: 0
}

.pl0 {
    padding-left: 0
}

.pr0 {
    padding-right: 0
}

.mt5 {
    margin-top: 5px
}

.mb5 {
    margin-bottom: 5px
}

.ml5 {
    margin-left: 5px
}

.mr5 {
    margin-right: 5px
}

.pt5 {
    padding-top: 5px
}

.pb5 {
    padding-bottom: 5px
}

.pl5 {
    padding-left: 5px
}

.pr5 {
    padding-right: 5px
}

.mt10 {
    margin-top: 10px
}

.mb10 {
    margin-bottom: 10px
}

.ml10 {
    margin-left: 10px
}

.mr10 {
    margin-right: 10px
}

.pt10 {
    padding-top: 10px
}

.pb10 {
    padding-bottom: 10px
}

.pl10 {
    padding-left: 10px
}

.pr10 {
    padding-right: 10px
}

.mt15 {
    margin-top: 15px
}

.mb15 {
    margin-bottom: 15px
}

.ml15 {
    margin-left: 15px
}

.mr15 {
    margin-right: 15px
}

.pt15 {
    padding-top: 15px
}

.pb15 {
    padding-bottom: 15px
}

.pl15 {
    padding-left: 15px
}

.pr15 {
    padding-right: 15px
}

.mt20 {
    margin-top: 20px
}

.mb20 {
    margin-bottom: 20px
}

.ml20 {
    margin-left: 20px
}

.mr20 {
    margin-right: 20px
}

.pt20 {
    padding-top: 20px
}

.pb20 {
    padding-bottom: 20px
}

.pl20 {
    padding-left: 20px
}

.pr20 {
    padding-right: 20px
}

.mt25 {
    margin-top: 25px
}

.mb25 {
    margin-bottom: 25px
}

.ml25 {
    margin-left: 25px
}

.mr25 {
    margin-right: 25px
}

.pt25 {
    padding-top: 25px
}

.pb25 {
    padding-bottom: 25px
}

.pl25 {
    padding-left: 25px
}

.pr25 {
    padding-right: 25px
}

.mt30 {
    margin-top: 30px
}

.mb30 {
    margin-bottom: 30px
}

.ml30 {
    margin-left: 30px
}

.mr30 {
    margin-right: 30px
}

.pt30 {
    padding-top: 30px
}

.pb30 {
    padding-bottom: 30px
}

.pl30 {
    padding-left: 30px
}

.pr30 {
    padding-right: 30px
}

.mt35 {
    margin-top: 35px
}

.mb35 {
    margin-bottom: 35px
}

.ml35 {
    margin-left: 35px
}

.mr35 {
    margin-right: 35px
}

.pt35 {
    padding-top: 35px
}

.pb35 {
    padding-bottom: 35px
}

.pl35 {
    padding-left: 35px
}

.pr35 {
    padding-right: 35px
}

.mt40 {
    margin-top: 40px
}

.mb40 {
    margin-bottom: 40px
}

.ml40 {
    margin-left: 40px
}

.mr40 {
    margin-right: 40px
}

.pt40 {
    padding-top: 40px
}

.pb40 {
    padding-bottom: 40px
}

.pl40 {
    padding-left: 40px
}

.pr40 {
    padding-right: 40px
}

.mt45 {
    margin-top: 45px
}

.mb45 {
    margin-bottom: 45px
}

.ml45 {
    margin-left: 45px
}

.mr45 {
    margin-right: 45px
}

.pt45 {
    padding-top: 45px
}

.pb45 {
    padding-bottom: 45px
}

.pl45 {
    padding-left: 45px
}

.pr45 {
    padding-right: 45px
}

.mt50 {
    margin-top: 50px
}

.mb50 {
    margin-bottom: 50px
}

.ml50 {
    margin-left: 50px
}

.mr50 {
    margin-right: 50px
}

.pt50 {
    padding-top: 50px
}

.pb50 {
    padding-bottom: 50px
}

.pl50 {
    padding-left: 50px
}

.pr50 {
    padding-right: 50px
}

.parenthesis {
    position: relative
}

.parenthesis::after,.parenthesis::before {
    position: absolute;
    top: 0;
    content: '';
    width: 10px;
    height: 100%;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    box-sizing: border-box
}

.parenthesis::before {
    left: 0;
    border-left: 1px solid #fff
}

.parenthesis::after {
    right: 0;
    border-right: 1px solid #fff
}

::-webkit-scrollbar {
    width: 10px
}

::-webkit-scrollbar-track {
    box-shadow: inset 0 0 6px rgba(0,0,0,.1)
}

::-webkit-scrollbar-thumb {
    background-color: #ccc;
    box-shadow: 0 0 0 1px rgba(255,255,255,.3)
}

.image100 img {
    width: 100%
}

@-webkit-keyframes masking {
    0% {
        -webkit-transform: translate(0,-101%);
        transform: translate(0,-101%)
    }

    42%,58% {
        -webkit-transform: translate(0,0);
        transform: translate(0,0)
    }

    100% {
        -webkit-transform: translate(0,101%);
        transform: translate(0,101%)
    }
}

@keyframes masking {
    0% {
        -webkit-transform: translate(0,-101%);
        transform: translate(0,-101%)
    }

    42%,58% {
        -webkit-transform: translate(0,0);
        transform: translate(0,0)
    }

    100% {
        -webkit-transform: translate(0,101%);
        transform: translate(0,101%)
    }
}

@-webkit-keyframes copyslide {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%)
    }

    30% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    65% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    100% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%)
    }
}

@keyframes copyslide {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%)
    }

    30% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    65% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    100% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%)
    }
}

@-webkit-keyframes copyslide_stop {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%)
    }

    30% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    75% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

@keyframes copyslide_stop {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%)
    }

    30% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    75% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

.sc_box {
    position: absolute;
    right: 0;
    bottom: 5rem;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    z-index: 7000;
    width: 3em
}

.sc_box a {
    display: block;
    position: absolute;
    width: 100%;
    height: 200%;
    top: -100%;
    left: 0;
    content: "";
    z-index: 999
}

.sc_box p {
    color: #fff;
    font-size: 10px;
    font-size: 1rem;
    margin-top: -5em;
    -webkit-transform: translateX(46%);
    transform: translateX(46%)
}

.scroll {
    content: "";
    height: 50px;
    width: 1px;
    background: #fff;
    overflow: hidden
}

@media only screen and (max-width: 768px) {
    .scroll {
        height:30px
    }
}

.scroll .in {
    width: 1px;
    height: 50px;
    background: #333;
    z-index: 999;
    -webkit-animation: masking 2s ease infinite;
    animation: masking 2s ease infinite
}

@media only screen and (max-width: 768px) {
    .scroll .in {
        height:30px
    }
}

.scroll .in2 {
    position: absolute;
    width: 1px;
    height: 50px;
    background: #000;
    z-index: 999;
    -webkit-animation: masking 2s ease infinite;
    animation: masking 2s ease infinite
}

.scroll a {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    content: "";
    z-index: 2000
}

@keyframes masking {
    0% {
        -webkit-transform: translate(0,-101%);
        transform: translate(0,-101%)
    }

    42%,58% {
        -webkit-transform: translate(0,0);
        transform: translate(0,0)
    }

    100% {
        -webkit-transform: translate(0,101%);
        transform: translate(0,101%)
    }
}

@-webkit-keyframes arrows {
    0% {
        top: 0
    }

    100% {
        top: 100%
    }
}

@keyframes arrows {
    0% {
        top: 0
    }

    100% {
        top: 100%
    }
}

.image100 img {
    width: 100%
}

.animate_btn.rv a:after {
    color: #004098;
    position: absolute;
    font-family: ionicons;
    top: 50%;
    right: 90%;
    margin-top: -.5em;
    line-height: 1;
    content: "\f125";
    font-size: 12px;
    font-size: 1.2rem;
    z-index: 999;
    transition: all .3s cubic-bezier(.88,.08,.71,.76);
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg)
}

.animate_btn.bg a {
    background: #fff
}

.animate_btn.bg a:before {
    background: #004098;
    height: 100%;
    top: 0
}

@media only screen and (max-width: 768px) {
    .animate_btn.bg a:before {
        display:none
    }
}

.animate_btn.bg a:after {
    right: 2rem
}

.animate_btn.bg a:hover {
    color: #fff
}

.animate_btn.bg a:hover:after {
    color: #fff
}

.animate_btn a {
    display: inline-block;
    position: relative;
    transition: all .3s ease;
    padding: 1rem 3rem 1rem 0;
    font-size: 14px;
    font-size: 1.4rem
}

@media only screen and (max-width: 768px) {
    .animate_btn a {
        display:block;
        font-size: 12px;
        font-size: 1.2rem;
        padding: 1rem 2rem!important;
        border: 1px solid #004098;
        border-radius: 3px;
        text-align: center
    }
}

.animate_btn a:before {
    display: block;
    position: absolute;
    width: 0%;
    height: 100%;
    top: 100%;
    left: 0;
    content: "";
    z-index: 0;
    height: 3px;
    background: #000;
    transition: all .3s ease;
    right: 0;
    left: auto
}

@media only screen and (max-width: 768px) {
    .animate_btn a:before {
        display:none
    }
}

.animate_btn a:after {
    position: absolute;
    font-family: ionicons;
    top: 50%;
    right: 0;
    margin-top: -.5em;
    line-height: 1;
    content: "\f125";
    font-size: 12px;
    font-size: 1.2rem;
    z-index: 999;
    transition: all .3s cubic-bezier(.88,.08,.71,.76)
}

@media only screen and (max-width: 768px) {
    .animate_btn a:after {
        right:2rem
    }
}

.animate_btn a span {
    position: relative;
    z-index: 99
}

@media only screen and (max-width: 768px) {
    .animate_btn a span {
        display:block
    }
}

@media only screen and (max-width: 768px) {
    .animate_btn a:hover {
        color:#004098
    }
}

.animate_btn a:hover span {
    color: #fff
}

@media only screen and (max-width: 768px) {
    .animate_btn a:hover span {
        color:#fff
    }
}

.animate_btn a:hover:before {
    width: 100%;
    left: 0
}

@media only screen and (max-width: 768px) {
    .animate_btn a:hover:after {
        color:#004098
    }
}

@-webkit-keyframes animate_btn_on {
    0% {
        left: -100%
    }

    100% {
        left: 0
    }
}

@keyframes animate_btn_on {
    0% {
        left: -100%
    }

    100% {
        left: 0
    }
}

@-webkit-keyframes animate_btn_off {
    0% {
        left: 0
    }

    100% {
        left: 100%
    }
}

@keyframes animate_btn_off {
    0% {
        left: 0
    }

    100% {
        left: 100%
    }
}

.clearfix::after {
    content: "";
    display: block;
    clear: both
}

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

@media only screen and (max-width: 768px) {
    .image_wrap {
        width:100%
    }
}

.image_wrap.bg01 {
    padding: 0 5rem 0 0
}

@media only screen and (max-width: 768px) {
    .image_wrap.bg01 {
        padding:0
    }
}

.image_wrap.bg01:after {
    background: #a3ff10;
    height: 100%;
    top: -5rem;
    left: 5rem
}

.image_wrap.bg02 {
    padding: 0 0 0 5rem;
    margin: 0 0 10rem 0
}

@media only screen and (max-width: 768px) {
    .image_wrap.bg02 {
        padding:0;
        margin: 0
    }
}

.image_wrap.bg02:after {
    background: #004098;
    height: 70%;
    bottom: -5rem;
    left: -5rem
}

.image_wrap.bg03 {
    padding: 0 5rem 0 0
}

@media only screen and (max-width: 768px) {
    .image_wrap.bg03 {
        padding:0
    }
}

.image_wrap.bg03:after {
    background: #666;
    height: 100%;
    top: -5rem;
    left: 5rem
}

.image-mask {
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0);
    transition: .8s cubic-bezier(.86,0,.07,1);
    -webkit-transform-origin: left;
    transform-origin: left;
    overflow: hidden;
    display: block
}

.image-mask.active {
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0)
}

.image-mask.active .img_main {
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0)
}

.image-mask .img_main {
    -webkit-transform: translate3d(101%,0,0);
    transform: translate3d(101%,0,0);
    transition: .8s cubic-bezier(.86,0,.07,1)
}

@-webkit-keyframes hoverElem {
    0% {
        -webkit-transform: translate3D(0,0,0);
        transform: translate3D(0,0,0)
    }

    49% {
        -webkit-transform: translate3D(100%,0,0);
        transform: translate3D(100%,0,0);
        visibility: hidden
    }

    50% {
        -webkit-transform: translate3D(-100%,0,0);
        transform: translate3D(-100%,0,0);
        visibility: hidden
    }

    52% {
        visibility: visible
    }

    100% {
        -webkit-transform: translate3D(0,0,0);
        transform: translate3D(0,0,0)
    }
}

@keyframes hoverElem {
    0% {
        -webkit-transform: translate3D(0,0,0);
        transform: translate3D(0,0,0)
    }

    49% {
        -webkit-transform: translate3D(100%,0,0);
        transform: translate3D(100%,0,0);
        visibility: hidden
    }

    50% {
        -webkit-transform: translate3D(-100%,0,0);
        transform: translate3D(-100%,0,0);
        visibility: hidden
    }

    52% {
        visibility: visible
    }

    100% {
        -webkit-transform: translate3D(0,0,0);
        transform: translate3D(0,0,0)
    }
}

body {
    color: #333
}

a {
    color: #333;
    text-decoration: none
}

a:hover {
    color: #000;
    text-decoration: none
}

a:hover {
    text-decoration: none;
    outline: 0!important
}

img {
    vertical-align: bottom;
    line-height: 1
}

.pc {
    display: block
}

@media only screen and (max-width: 768px) {
    .pc {
        display:none!important
    }
}

.sp {
    display: none
}

@media only screen and (max-width: 768px) {
    .sp {
        display:block
    }
}

img[src$=".svg"] {
    width: 100%;
    height: auto
}

.tate {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -o-writing-mode: vertical-rl;
    writing-mode: vertical-rl
}

@media only screen and (max-width: 768px) {
    .tate {
        -webkit-writing-mode:horizontal-tb;
        -ms-writing-mode: lr-tb;
        writing-mode: horizontal-tb
    }
}

.tatete {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -o-writing-mode: vertical-rl;
    writing-mode: vertical-rl
}

html.win.gecko .la,html.win.gecko .ro {
    -webkit-transform: rotate(.001deg);
    transform: rotate(.001deg)
}

a,img {
    outline: 0!important
}

* {
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box
}

.unborder::after {
    content: '';
    display: block;
    margin: 1rem auto 1rem auto;
    text-align: center;
    width: 50px;
    height: 1px;
    background: #004098
}

@media only screen and (max-width: 768px) {
    .unborder::after {
        margin:.8rem auto
    }
}

.lborder::after {
    content: '';
    display: block;
    margin: 1rem 0 1rem 0;
    text-align: center;
    width: 50px;
    height: 1px;
    background: #fff
}

.unborder_big::after {
    content: '';
    display: block;
    margin: 2rem auto 2rem auto;
    text-align: center;
    width: 50px;
    height: 1px;
    background: #fff
}

@media only screen and (max-width: 768px) {
    .unborder_big::after {
        margin:1.4rem auto
    }
}

li,ul {
    list-style: none
}

ul.normal_list {
    margin: 0;
    padding: 0 0 0 1em
}

ul.normal_list li {
    padding: 0;
    margin: 0 0 0 .3em;
    position: relative;
    list-style-type: disc;
    line-height: 1.5
}

.d02s {
    -webkit-animation-delay: .2s;
    animation-delay: .2s
}

.d03s {
    -webkit-animation-delay: .3s;
    animation-delay: .3s
}

.d04s {
    -webkit-animation-delay: .4s;
    animation-delay: .4s
}

.d06s {
    -webkit-animation-delay: .6s;
    animation-delay: .6s
}

.d08s {
    -webkit-animation-delay: .8s;
    animation-delay: .8s
}

.d1s {
    -webkit-animation-delay: 1s;
    animation-delay: 1s
}

main {
    width: 100%;
    display: block;
    opacity: 1
}

.nayami {
    position: relative;
    z-index: 5000
}

.nayami .title {
    margin: 18vw 0 3rem 0;
    text-align: center;
    color: #004098
}

@media only screen and (max-width: 768px) {
    .nayami .title {
        margin:10rem 0 3rem 0
    }
}

.nayami .title .sub {
    font-weight: 700;
    font-size: 14px;
    font-size: 1.4rem
}

@media only screen and (max-width: 768px) {
    .nayami .title .sub {
        font-size:13px;
        font-size: 1.3rem
    }
}

.nayami .title .main {
    font-size: 24px;
    font-size: 2.4rem;
    font-weight: 700
}

@media only screen and (max-width: 768px) {
    .nayami .title .main {
        font-size:16px;
        font-size: 1.6rem
    }
}

.nayami .nayami_flex {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    max-width: 1200px;
    margin: auto;
    padding: 0 5%
}

@media only screen and (max-width: 768px) {
    .nayami .nayami_flex {
        display:block
    }
}

.nayami .nayami_flex .box {
    width: 48%;
    border: 1px solid #eee
}

@media only screen and (max-width: 768px) {
    .nayami .nayami_flex .box {
        width:100%;
        margin: 0 0 1rem 0
    }
}

.nayami .nayami_flex .box .image {
    margin: 0 0 1rem 0
}

.nayami .nayami_flex .box .txt {
    padding: 5%
}

.nayami .nayami_flex .box .txt h3 {
    text-align: center;
    margin: 0 0 1rem 0;
    font-weight: 700;
    color: #004098
}

.nayami .nayami_flex .box .txt h3 span {
    border-bottom: 3px solid #004098
}

.nayami .nayami_flex .box .txt ul li {
    padding-left: 1em;
    text-indent: -1em
}

.nayami .nayami_flex .box .txt .dot {
    margin: 1rem 0 0 0;
    text-align: center;
    line-height: 1
}

.arrows {
    width: 44px;
    margin: 5rem auto
}

@media only screen and (max-width: 768px) {
    .arrows {
        margin:3rem auto;
        width: 34px
    }
}

.answer {
    max-width: 1200px;
    margin: 0 auto 5rem auto;
    padding: 3% 5%;
    background: url(/img/waku.svg) no-repeat center center;
    background-size: contain;
    text-align: center;
    font-weight: 700;
    font-size: 20px;
    font-size: 2rem
}

@media only screen and (max-width: 768px) {
    .answer {
        font-size:15px;
        font-size: 1.5rem;
        background: 0 0;
        margin: 0 0 3rem 0;
        padding: 3%
    }

    .answer br {
        display: none
    }
}

#st_main {
    background: #004098;
    padding: 5rem 0
}

#st_main h3 {
    font-weight: 700;
    color: #fff;
    font-size: 28px;
    font-size: 2.8rem;
    margin: 0 0 3rem 0;
    text-align: center
}

@media only screen and (max-width: 768px) {
    #st_main h3 {
        font-size:16px;
        font-size: 1.6rem
    }
}

#st_main .inner {
    max-width: 1200px;
    margin: auto;
    padding: 0 5%
}

#st_main .panel {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between
}

@media only screen and (max-width: 768px) {
    #st_main .panel {
        -webkit-flex-wrap:wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        display: block
    }
}

#st_main .panel .box {
    width: 25%;
    text-align: center;
    position: relative;
    color: #fff;
    padding: 5rem 0
}

@media only screen and (max-width: 768px) {
    #st_main .panel .box {
        width:100%;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        padding: 2rem 0
    }
}

#st_main .panel .box a {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    content: "";
    z-index: 999
}

#st_main .panel .box:hover {
    opacity: .8
}

#st_main .panel .box .num {
    font-weight: 100;
    font-size: 30px;
    font-size: 3rem
}

@media only screen and (max-width: 768px) {
    #st_main .panel .box .num {
        margin:0;
        padding: 0 2rem
    }
}

@media only screen and (max-width: 768px) {
    #st_main .panel .box p.jp {
        text-align:left;
        font-weight: 700;
        padding: 0 2rem 0 0
    }
}

#st_main .panel .box.box01 {
    background: #3a7de8
}

#st_main .panel .box.box02 {
    background: #2186bc
}

#st_main .panel .box.box03 {
    background: #4b41c7
}

#st_main .panel .box.box04 {
    background: #2f41c7
}

#st_main .panel .box:after {
    color: #fff;
    position: absolute;
    font-family: ionicons;
    bottom: 5%;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    line-height: 1.2;
    content: "\f123";
    font-size: 12px;
    font-size: 1.2rem;
    z-index: 999
}

@media only screen and (max-width: 768px) {
    #st_main .panel .box:after {
        left:90%;
        bottom: 50%;
        -webkit-transform: translateY(50%);
        transform: translateY(50%)
    }
}

.st_main_cont {
    background: #fff;
    padding: 5%
}

.st_main_cont .block {
    position: relative
}

.st_main_cont .block .tatete.l {
    position: absolute;
    top: 0;
    left: 0;
    color: #004098;
    border-left: 1px solid #004098;
    font-size: 13px;
    font-size: 1.3rem
}

@media only screen and (max-width: 768px) {
    .st_main_cont .block .tatete.l {
        display:none
    }
}

.st_main_cont .block .tatete.r {
    position: absolute;
    top: 0;
    right: 0;
    color: #004098;
    border-left: 1px solid #004098;
    font-size: 13px;
    font-size: 1.3rem
}

@media only screen and (max-width: 768px) {
    .st_main_cont .block .tatete.r {
        display:none
    }
}

.st_main_cont .block.c01 {
    color: #3a7de8
}

.st_main_cont .block.c02 {
    color: #2186bc
}

.st_main_cont .block.c03 {
    color: #4B41C7
}

.st_main_cont .block.c04 {
    color: #2F41C7
}

.st_main_cont .block.c05 {
    color: #004098
}

.st_cont_flex {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    margin: 0 0 10rem 0
}

@media only screen and (max-width: 768px) {
    .st_cont_flex {
        margin:0 0 3rem 0;
        display: block
    }
}

.st_cont_flex.rv {
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse
}

.st_cont_flex .image {
    width: 50%
}

@media only screen and (max-width: 768px) {
    .st_cont_flex .image {
        width:100%;
        margin: 0 0 2rem 0
    }
}

.st_cont_flex .txt {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding: 0 5rem
}

@media only screen and (max-width: 768px) {
    .st_cont_flex .txt {
        padding:0
    }
}

.st_cont_flex .txt .num {
    font-size: 30px;
    font-size: 3rem;
    font-weight: 100;
    font-style: italic
}

@media only screen and (max-width: 768px) {
    .st_cont_flex .txt .num {
        font-size:20px;
        font-size: 2rem
    }
}

.st_cont_flex .txt h4 {
    font-size: 28px;
    font-size: 2.8rem;
    font-weight: 700
}

@media only screen and (max-width: 768px) {
    .st_cont_flex .txt h4 {
        font-size:16px;
        font-size: 1.6rem
    }

    .st_cont_flex .txt h4 br {
        display: none
    }
}

.st_subcont {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    margin: 0 0 10rem 0
}

@media only screen and (max-width: 768px) {
    .st_subcont {
        margin:0 0 3rem 0;
        display: block
    }
}

.st_subcont .txt {
    width: 65%
}

@media only screen and (max-width: 768px) {
    .st_subcont .txt {
        width:100%;
        margin: 0 0 1rem 0
    }
}

.st_subcont .image {
    width: 32%
}

@media only screen and (max-width: 768px) {
    .st_subcont .image {
        width:100%
    }
}

.link_btn {
    margin: 3rem 0 0 0
}

.link_btn a {
    border: 1px solid #004098;
    color: #004098;
    padding: 1rem 10rem
}

@media only screen and (max-width: 768px) {
    .link_btn a {
        display:block;
        padding: 1rem 0
    }
}

.link_btn a:hover {
    color: #fff
}

.link_btn a:after {
    color: #004098
}

.movie {
    text-align: center;
    margin-bottom: 10rem;
}

.st_main_cont .txt .anno {
    display: block;
    font-size: 1.3rem;
    margin-bottom: 2rem;
}

@media only screen and (max-width: 768px) {
    .movie {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .movie iframe {
        width: 100%;
        height: 100%;
    }
}
