@charset "UTF-8";
@import url(https://fonts.googleapis.com/css?family=Oswald);

a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
    margin: 0;
    padding: 0;
    border: 0;
    font-style: normal;
    font-size: 100%;
    vertical-align: baseline
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}

html {
    overflow-y: scroll
}

blockquote,
q {
    quotes: none
}

blockquote:after,
blockquote:before {
    content: '';
    content: none
}

q:after,
q:before {
    content: '';
    content: none
}

input,
textarea {
    margin: 0;
    padding: 0
}

ol,
ul {
    list-style: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

caption,
th {
    text-align: left
}

a:focus {
    outline: 0
}

.cf {
    min-height: 1px
}

.cf:after {
    content: ".";
    display: block;
    clear: both;
    height: 0;
    visibility: hidden
}

* html .cf {
    height: 1px
}

@font-face {
    font-family: ryumin;
    src: url(/assets/font/A-OTF-RyuminPro-Medium.woff)
}

.oswald {
    font-family: Oswald, sans-serif
}

.ryumin {
    font-family: ryumin
}

body {
    min-width: 1100px;
    font-family: "游ゴシック", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "Hiragino Kaku Gothic ProN", Verdana, sans-serif;
    position: relative;
    overflow-x: scroll
}

@media all and (-ms-high-contrast:none) {
    body {
        font-family: "メイリオ", Meiryo, "游ゴシック", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", Verdana, sans-serif
    }
}

video {
    width: 100%
}

a {
    text-decoration: none
}

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

.l-wrap {
    width: 100%;
    height: 100vh;
    box-sizing: border-box;
    position: relative;
    border: 35px solid #fff;
    overflow: hidden
}

.l-layer,
.l-layer-first,
.l-layer-second,
.l-layer-third {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.l-layer-first {
    z-index: 1
}

.l-layer-second {
    width: 50%;
    min-width: 50%;
    right: 0;
    left: auto;
    z-index: 2;
    background: rgba(0, 0, 0, .8);
    display: none
}

.l-layer-third {
    display: none;
    z-index: 3;
    background: #475684;
    overflow-y: scroll;
    -ms-overflow-style: none
}

.l-layer-third::-webkit-scrollbar {
    display: none
}

@-moz-document url-prefix() {
    .l-layer-third {
        overflow-y: auto
    }
}

.l-since {
    position: absolute;
    top: 45px;
    right: 130px
}

.l-sinceInner {
    font-size: 0
}

.l-hamburger,
.l-hamburger-fixed,
.l-hamburger-fixedMovie {
    width: 42px;
    height: 30px;
    position: absolute;
    top: 45px;
    right: 50px;
    z-index: 100;
    cursor: pointer
}

.l-hamburger-fixed {
    position: fixed;
    top: 67px;
    right: 75px
}

.l-hamburger-fixedMovie {
    position: fixed;
    top: 80px;
    right: 75px
}

.l-bottom,
.l-copy {
    width: 100%;
    height: 50px;
    position: absolute;
    bottom: 0;
    left: 0
}

.l-copy {
    height: 35px
}

.l-otherCont {
    max-width: 667px;
    width: 100%
}

.l-nav {
    width: 490px;
    height: 100%;
    padding: 10% 0 0 150px;
    box-sizing: border-box
}

.l-innerInfo {
    width: 95%;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(0, -50%)
}

.l-scroll {
    width: 100%;
    position: absolute;
    bottom: 18px;
    left: 0;
    text-align: center
}

.l-overlay {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9998;
    background: rgba(0, 0, 0, .6);
    display: none
}

.l-modal {
    width: 800px;
    height: 400px;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999;
    display: none
}

.l-modal_video {
    width: 100%;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0
}

.l-modal_video.is-play {
    opacity: 1
}

.l-modalClose {
    font-size: 54px;
    position: absolute;
    top: -54px;
    right: 0;
    color: #fff;
    font-weight: 700;
    line-height: 1;
    cursor: pointer
}

.js-menuScroll::after {
    content: "";
    display: block;
    width: 80px;
    height: 80px;
    background: 0 0;
    position: absolute;
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    top: -13px;
    transition: all .2s ease-in
}

.is-menuScroll::after {
    content: "";
    display: block;
    background: #475684
}

.covervid-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.arrow {
    position: relative
}

.arrow::after {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 15px;
    margin: auto;
    transform: rotate(45deg);
    border-top: 1px solid #fff;
    border-right: 1px solid #fff
}

.btn {
    width: 100%;
    padding: 15px 20px;
    box-sizing: border-box;
    display: block;
    background: rgba(0, 0, 0, .65);
    color: #fff;
    line-height: 1;
    position: relative;
    transition: all .4s ease
}

.btn:hover {
    background: #000
}

.flex,
.flex-alignEnd,
.flex-c,
.flex-col,
.flex-end,
.flex-spb {
    width: 100%;
    height: 100%;
    display: flex
}

.flex-spb {
    justify-content: space-between
}

.flex-end {
    justify-content: flex-end
}

.flex-alignEnd {
    align-items: flex-end
}

.flex-c {
    align-items: center
}

.flex-col {
    flex-direction: column
}

.flex_box,
.flex_box-half {
    width: 100%
}

.flex_box-half {
    width: 50%;
    position: relative
}

.logo {
    width: 348px;
    margin: -10% 0 0 115px
}

.logo_box,
.logo_box-ico,
.logo_box-main,
.logo_box-sub {
    display: block;
    line-height: 1
}

.logo_box img,
.logo_box-ico img,
.logo_box-main img,
.logo_box-sub img {
    display: block;
    margin: 0 auto
}

.logo_box-ico {
    padding: 0 0 35px
}

.logo_box-ico img {
    width: 100px;
    height: 100px
}

.logo_box-main {
    padding: 0 0 8px;
    font-size: 0
}

.logo_box-main img {
    width: 350px;
    height: 45px
}

.logo_box-sub img {
    width: 170px;
    height: 13px
}

.news {
    justify-content: space-between;
    box-sizing: border-box;
    line-height: 1.2;
    background: rgba(0, 0, 0, .6);
    font-size: 16px;
    position: relative
}

.news_list {
    display: block
}

.news_list-first {
    padding: 0 0 0 45px;
    font-family: Oswald, sans-serif;
    display: block;
    color: #fff;
    letter-spacing: .8px;
    position: relative;
    z-index: 3
}

.news_list-end {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 3
}

.news_list-text {
    width: 94%;
    white-space: nowrap;
    position: absolute;
    overflow: hidden;
    z-index: 1;
    left: 0;
    top: 50%;
    transform: translate(0, -50%);
    margin: 1px 0 0
}

.news_listItm,
.news_listItm-end {
    padding: .9vw 2.3vw;
    display: inline-block;
    color: #fff;
    transition: all .2s ease
}

.news_listItm-end {
    padding: .9vw 1.8vw .9vw 1.6vw
}

.news_listItm-end:hover,
.news_listItm:hover {
    opacity: .6
}

.news_grad {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0
}

.news_grad::before {
    content: "";
    display: block;
    width: 10%;
    height: 100%;
    position: absolute;
    left: 0;
    z-index: 2;
    background: -moz-linear-gradient(left, #000 0, #000 75%, rgba(0, 0, 0, 0) 100%);
    background: -webkit-linear-gradient(left, #000 0, #000 75%, rgba(0, 0, 0, 0) 100%);
    background: linear-gradient(to right, #000 0, #000 75%, rgba(0, 0, 0, 0) 100%)
}

.news_grad::after {
    content: "";
    display: block;
    width: 8.5%;
    height: 100%;
    position: absolute;
    right: 0;
    z-index: 2;
    background: -moz-linear-gradient(left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .25) 10%, rgba(0, 0, 0, .5) 25%, #000 100%);
    background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .25) 10%, rgba(0, 0, 0, .5) 25%, #000 100%);
    background: linear-gradient(to right, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .25) 10%, rgba(0, 0, 0, .5) 25%, #000 100%)
}

.innerInfo,
.innerInfo-company {
    color: #fff
}

.innerInfo_cont {
    width: calc(100% - 95px)
}

.innerInfo-company {
    width: 100%;
    padding: 0 0 40px 4.4vw;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.71
}

.innerInfo-company .innerInfo_head,
.innerInfo-company .innerInfo_head-contact {
    width: 95px;
    font-weight: 700
}

.innerInfo-company .innerInfo_head-contact {
    width: 100%;
    position: relative
}

.innerInfo-company .innerInfo_head-contact::after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 18px;
    height: 13px;
    margin: 0 0 1px 5px;
    background: url(/assets/img/common/ico_contact.svg) no-repeat center;
    background-size: contain
}

.innerInfoLink {
    color: #fff
}

.innerInfoLink:hover {
    text-decoration: underline
}

.copy {
    height: 100%;
    font-size: 11px;
    display: flex;
    justify-content: center;
    align-items: center
}

.hamburger {
    text-align: center
}

.hamburger::after {
    font-family: Oswald, sans-serif;
    content: attr(data-name);
    display: block;
    color: #fff;
    letter-spacing: 1px;
    width: 100%;
    position: absolute;
    bottom: -36px;
    right: 0;
    left: 0;
    margin: auto;
    font-size: 16px;
    line-height: 2
}

.hamburger_itm,
.hamburger_itm-bot,
.hamburger_itm-mid,
.hamburger_itm-top {
    width: 100%;
    height: 4px;
    background: #fff;
    transition: all .2s ease
}

.hamburger_itm-mid {
    opacity: 1
}

.hamburger.is-open {
    justify-content: center;
    align-items: center;
    position: relative
}

.hamburger.is-open::after {
    content: "CLOSE";
    bottom: -36px
}

.hamburger.is-open .hamburger_itm,
.hamburger.is-open .hamburger_itm-bot,
.hamburger.is-open .hamburger_itm-mid,
.hamburger.is-open .hamburger_itm-top {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto
}

.hamburger.is-open .hamburger_itm-top {
    transform: rotate(45deg)
}

.hamburger.is-open .hamburger_itm-mid {
    opacity: 0
}

.hamburger.is-open .hamburger_itm-bot {
    transform: rotate(135deg)
}

.innerIco {
    padding: 10% 0;
    display: flex;
    align-items: center
}

.innerIco_box,
.innerIco_box-body,
.innerIco_box-head {
    font-size: 0
}

.innerIco_box-head {
    width: 90px;
    height: 90px;
    margin-right: 22px
}

.innerIco_box-body {
    width: 300px;
    height: 40px
}

.movie_list {
    margin-bottom: 10px
}

.movie_listItm {
    padding: 20px 14px;
    box-sizing: border-box;
    display: block;
    font-size: 14px;
    color: #fff;
    border: 1px solid #fff;
    position: relative;
    cursor: pointer
}

.movie_listItm::after {
    content: "";
    display: block;
    width: 17px;
    height: 19px;
    position: absolute;
    top: 0;
    bottom: 5px;
    margin: auto;
    right: 25px;
    background: url(/assets/img/common/ico_movie.svg) no-repeat center center;
    background-size: contain;
    z-index: 1
}

.otherCont {
    width: 90%;
    padding: 0 2.4vw 0 4.4vw;
    box-sizing: border-box;
    flex-wrap: wrap
}

.otherCont>li:last-child {
    width: auto
}

.otherCont_box-company {
    width: 295px;
    padding-right: 30px;
    box-sizing: content-box
}

.otherCont_box-company img {
    display: block
}

.contactLink {
    width: 100px;
    text-align: center;
    color: #fff;
    line-height: 1
}

.contactLink_box:first-child {
    margin-bottom: 10px
}

.contactLink_box img {
    width: 100%;
    display: block
}

.pageLink_listItm {
    font-size: 25px;
    line-height: 2.4;
    color: #fff;
    display: block
}

.pageLink-privacy {
    padding: 45px 20px 0 0;
    display: flex;
    flex-wrap: wrap
}

.pageLink-privacy .pageLink_listItm {
    font-size: 20px;
    color: #b1b8cd
}

.pageLink-privacy .pageLink_list:first-child {
    margin-right: 40px
}

.lead {
    width: 560px;
    margin: 0 auto;
    text-align: center
}

.lead_main {
    padding: 0 0 35px
}

.lead_main img {
    width: 523px;
    display: block
}

.lead_main-wave {
    width: 377px;
    height: 200px
}

.lead_main-wave img {
    width: auto
}

.lead_mainImg-next {
    height: 122px
}

.lead_mainImg-years {
    height: 68px
}

.lead_link,
.lead_text {
    padding: 0 0 45px;
    font-size: 16px;
    line-height: 1.5;
    text-align: left;
    color: #fff
}

.lead_link {
    width: 180px;
    padding: 0
}

/* add 2024-02 */

.js-menuLayer {
    position: fixed;
    top: 0;
    left: 0;
    padding: 0;
    margin: 0;
    height: 100%;
    width: 100%;
    z-index: 2;
    display: none;
    overflow-y: scroll;
}

@media screen and (max-width: 767.98px) {
    .js-menuLayer {
        position: fixed;
        top: 0;
        left: 0;
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
        z-index: 2;
        display: none;
    }

    body {
        min-width: auto;
    }

    /* main video */
    .l-wrap {
        width: 100%;
        height: auto;
        border: none;
        /* aspect-ratio: 1 / 1; */
        aspect-ratio: 132 / 145;
        border: none;
        margin-bottom: 16vw;
    }

    .l-layer-first .flex-spb.flex-c {
        align-items: unset;
        justify-content: unset;
    }

    .flex_box-half:first-of-type {
        display: none;
    }

    .flex_box-half {
        width: 100%;
    }

    .lead {
        width: 100%;
    }

    .lead_main {
        padding: 21.33vw 0 0;
    }

    .lead_main-wave {
        /* indexファイルに記述した */
    }

    .lead_text {
        padding: 5.33vw 0;
        font-size: 4vw;
        background-color: #475684;

        position: absolute;
        bottom: 0;
        width: 100%;
    }

    .lead_text p {
        display: table;
        margin-inline: auto;
    }

    
    .l-nav {
        width: auto;
        height: auto;
        padding: 21.33vw 10.67vw 10.67vw;
    }

    .l-nav .pageLink {
        display: flex;
        flex-wrap: wrap;
    }

    .l-nav .pageLink .pageLink_list {
        width: 50%;
        box-sizing: border-box;
    }

    .l-innerInfo{
        width: 100%;
        position: relative;
        padding: 10.67vw;
        top: auto;
        right: auto;
        translate: none;
        transform: translate(0, 0%);
    }

    .l-scroll {
        display: none;
    }

    .covervid-wrapper {
        position: absolute;
        top: 20.27vw;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 5 / 4;
    }

    /*  */

    .l-layer-second {
        /* width: 50%;
        min-width: 50%; */
        width: 100%;
        min-width: 100%;
        right: auto;
        left: auto;
        z-index: 2;
        background: rgba(0, 0, 0, .8);
        display: none;
        top: 130.67vw; /* 490px */
        position: relative;
        height: auto;
    }

    .l-layer-second .flex-spb.flex-c {
        display: block;
    }

    .l-layer-third{
        height: auto;
    }
    
    .l-layer-third .flex{
        height: auto;
    }

    .l-hamburger,
    .l-hamburger-fixed,
    .l-hamburger-fixedMovie {
        width: 9.07vw;
        /* 34px */
        height: 6.4vw;
        /* 24px */
        top: 2.67vw;
        /* 10px */
        right: 3.2vw;
        /* 12px */
    }

    .js-menuScroll::after {
        width: 16vw;
        height: 16vw;
        left: 46%;
        transform: translateX(-50%);
        top: -2.67vw;
        /* -10px */
    }

    .is-menuScroll::after {}

    .innerInfo-company {
        width: 100%;
        padding: 0;
        font-size: 3.2vw;
        line-height: 2;
        margin-top: 6.4vw;
    }

    .innerInfo-company.flex{
        display: block;
    }

    .innerInfo-company.flex:nth-of-type(3){
        margin-bottom: 6.4vw;
    }
    
    .innerInfo-company.flex:nth-of-type(4){
        /* display: flex; */
        float: left;
        width: auto;
        margin: 0;
        padding: 0;
    }

    .innerInfo-company.flex:nth-of-type(4) .innerInfo_head-contact{
    }

    .innerInfo-company.flex:nth-of-type(4) .innerInfo_head-contact .innerInfoLink{
        padding: 3.2vw 5.33vw;
        font-size: 3.2vw;
        height: 13.87vw; /* 52px */
        box-sizing: border-box;
    }

    .innerInfo-company.flex:nth-of-type(4) .innerInfo_head-contact .innerInfoLink::after{
        margin-left: 3.2vw;
        width: 4.8vw;
        height: 3.47vw;
        vertical-align: -0.53vw;
    }    

    .innerInfo-company.flex:nth-of-type(4) .innerInfo_cont{
        display: none;
    }

    .l-otherCont{
        display: inline-block;
        width: 19.73vw; /* 74px */
        height: 13.87vw; /* 52px */
        margin-left: 20px;
    }

    .l-otherCont .otherCont{
        display: inline-block;
        width: auto;
        padding: 0;
    }

    .l-otherCont .otherCont .contactLink{
        display: inline-block;
        width: auto;
        padding: 0;
    }
    
    .l-otherCont .otherCont .contactLink_box:first-child{
        display: inline-block;
        width: auto;
        margin-bottom: 0;
    }

    .hamburger::after {
        bottom: -6.93vw;
        /* -26px */
        font-size: 3.47vw;
        /* 13px */
    }

    .hamburger.is-open::after {
        bottom: -6.93vw;
        /* -26px */
    }

    .pageLink_listItm {
        font-size: 4.8vw;
        padding-top: 2.13vw;
        padding-bottom: 2.13vw;
    }

    .pageLink-privacy {
        display: block;
        padding: 0;
        margin-top: 8.53vw;
    }

    .pageLink-privacy .pageLink_list {
        border-bottom: 1px dotted #7f89a9;
    }

    .pageLink-privacy .pageLink_list:first-child {
        margin-right: 0;
        border-top: 1px dotted #7f89a9;
    }

    .pageLink-privacy .pageLink_listItm {
        font-size: 4vw;
        position: relative;
    }
    .pageLink-privacy .pageLink_listItm:after {
        position: absolute;
        content: '';
        top: 0;
        right: 6.4vw;
        bottom: 0;
        margin: auto auto;
        width: 3.2vw;
        height: 3.2vw;
        border: 0;
        border-top: solid 1px #dadde6;
        border-right: solid 1px #dadde6;
        -ms-transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
        background-color: transparent;
    }


    .innerIco {
        display: none;
    }

}