﻿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: inherit;
    font-size: 100%;
    vertical-align: baseline
}

html {
    line-height: 1
}

ol,ul {
    list-style: none
}

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

caption,td,th {
    text-align: left;
    font-weight: normal;
    vertical-align: middle
}

blockquote,q {
    quotes: none
}

blockquote:after,blockquote:before,q:after,q:before {
    content: "";
    content: none
}

a img {
    border: 0
}

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

@media screen and (min-width: 769px) {
    .sp {
        display:none !important
    }

    .pc-hide {
        display: none
    }
}

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

    .sp-hide {
        display: none
    }
}

html {
    font-size: 62.5%
}

*,*:before,*:after {
    box-sizing: border-box
}

img {
    box-sizing: content-box;
    max-width: 100%;
    height: auto;
    vertical-align: middle
}

a {
    transition-duration: .5s
}

b,strong {
    font-weight: 700
}

body,button,input,select,textarea {
    font-family: "YuGothic","游ゴシック","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","Meiryo","メイリオ","sans-serif";
    word-wrap: break-word
}

form ::-webkit-input-placeholder {
    color: #C6C6C6
}

form :-moz-placeholder {
    opacity: 1;
    color: #C6C6C6
}

form ::-moz-placeholder {
    opacity: 1;
    color: #C6C6C6
}

form :-ms-input-placeholder {
    color: #C6C6C6
}

table {
    width: 100%;
    max-width: 100%
}

table td,table th {
    min-height: 1em
}

table th {
    word-wrap: break-word;
    word-break: break-all
}

table td {
    word-wrap: break-word;
    word-break: break-all
}

table p:not([class]):not(:last-child) {
    margin-bottom: 1em
}

table.fix {
    table-layout: fixed
}

table.th-lock th {
    word-wrap: normal;
    word-break: keep-all
}

@media screen and (max-width: 768px) {
    table td,table th {
        word-wrap:break-word;
        word-break: break-all
    }
}

input[type="button"],input[type="submit"] {
    -webkit-appearance: none
}

input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],input[type="url"],textarea,select {
    outline: none
}

a,area,input[type="button"],input[type="submit"],input[type="reset"],input[type="checkbox"],input[type="radio"],button,select,label {
    cursor: pointer
}

input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],input[type="url"],textarea {
    margin: .1em;
    width: 100%
}

input[type="text"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="url"]:focus,textarea:focus {
    box-shadow: 1px 1px 0 0 #c5c7cb inset
}

input[type="text"].w30,input[type="email"].w30,input[type="password"].w30,input[type="search"].w30,input[type="tel"].w30,input[type="url"].w30,textarea.w30 {
    width: 30%
}

input[type="text"].w40,input[type="email"].w40,input[type="password"].w40,input[type="search"].w40,input[type="tel"].w40,input[type="url"].w40,textarea.w40 {
    width: 40%
}

input[type="text"].w50,input[type="email"].w50,input[type="password"].w50,input[type="search"].w50,input[type="tel"].w50,input[type="url"].w50,textarea.w50 {
    width: 50%
}

input[type="text"].w50,input[type="email"].w50,input[type="password"].w50,input[type="search"].w50,input[type="tel"].w50,input[type="url"].w50,textarea.w50 {
    width: 60%
}

.u-list>li {
    width: 98%;
    margin-left: 2%;
    list-style-type: disc
}

.o-list>li {
    width: 98%;
    margin-left: 2%;
    list-style-type: decimal
}

.flex-list {
    display: -webkit-flex;
    display: flex
}

.flex-list.bet {
    -webkit-justify-content: space-between;
    justify-content: space-between
}

.flex-list.vtop {
    -webkit-align-items: flex-start;
    align-items: flex-start
}

.flex-list.vcenter {
    -webkit-align-items: center;
    align-items: center
}

.flex-list.hcenter {
    -webkit-justify-content: center;
    justify-content: center
}

@media screen and (max-width: 768px) {
    .flex-list.res {
        -webkit-flex-wrap:wrap;
        flex-wrap: wrap
    }

    .flex-list.res>li {
        width: 100%
    }
}

.youtube-iframe {
    position: relative;
    width: 80%;
    padding-top: 56.25%
}

.youtube-iframe iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important
}

.nav-accordion,.accordion {
    transform: rotateX(0)
}

.nav-accordion .btn,.accordion .btn {
    cursor: pointer
}

.nav-accordion .ac-body,.accordion .ac-body {
    opacity: 0;
    max-height: 0;
    transform-origin: 0 0;
    transform: rotateX(90deg);
    transition-duration: .5s
}

.nav-accordion .ac-body .ac-body:not(.active),.accordion .ac-body .ac-body:not(.active) {
    transition-duration: 0s
}

.nav-accordion .ac-body.active,.accordion .ac-body.active {
    opacity: 1;
    max-height: 100%;
    transform: rotateX(0)
}

.l-btn {
    transition-duration: .5s;
    border-radius: 0;
    display: inline-block;
    position: relative;
    border: 0;
    width: 100%;
    text-align: center;
    text-decoration: none;
    line-height: 1;
    z-index: 1;
    padding: 1em;
    vertical-align: middle;
    overflow: hidden
}

.l-btn.mat {
    padding: 0
}

.l-btn.mat input[type="button"],.l-btn.mat input[type="submit"],.l-btn.mat button {
    transition: color 0s;
    display: inline-block;
    padding: 1em;
    width: 100%;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    border: 0;
    background: transparent
}

.l-btn .sub {
    font-size: 1.2rem
}

.l-btn:before {
    transition-duration: .5s;
    content: "";
    display: inline-block;
    position: absolute;
    top: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    background: none
}

.l-btn:not(.rivers):before {
    left: -100%
}

.l-btn.rivers:before {
    right: -100%
}

.l-btn.stay:before {
    display: none
}

.l-btn .left-icon,.l-btn .right-icon {
    transition: color 0s;
    position: absolute;
    top: 50%;
    margin-top: -.5em;
    z-index: 10
}

.l-btn .right-icon {
    transition: right .5s;
    right: .8em
}

.l-btn .left-icon {
    transition: left .5s;
    left: .8em
}

a:hover .l-btn,.l-btn:hover {
    text-decoration: none
}

a:hover .l-btn:not(.rivers):before,.l-btn:hover:not(.rivers):before {
    left: 0
}

a:hover .l-btn.rivers:before,.l-btn:hover.rivers:before {
    right: 0
}

a:hover .l-btn .right-icon:not(.stay),.l-btn:hover .right-icon:not(.stay) {
    right: .5em
}

a:hover .l-btn .left-icon:not(.stay),.l-btn:hover .left-icon:not(.stay) {
    left: .5em
}

.l-btn.sharp {
    border-radius: 0
}

.l-btn.unsharp {
    border-radius: 5px
}

.l-btn .arrow {
    transition-duration: .2s;
    display: inline-block;
    position: absolute;
    right: 0;
    bottom: 50%;
    margin-top: -5px;
    z-index: 3;
    width: 40px;
    height: 1px;
    background: #aaa
}

@media screen and (max-width: 768px) {
    .l-btn .arrow {
        width:25px
    }
}

.l-btn .arrow:before,.l-btn .arrow:after {
    display: inline-block;
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    background: #aaa;
    width: 30%;
    height: 1px;
    transform-origin: 100% 100%
}

.l-btn .arrow:before {
    transform: rotate(-45deg)
}

.l-btn .arrow:after {
    transform: rotate(45deg)
}

.l-btn .arrow.down {
    right: 1em;
    bottom: 50%;
    margin-top: 0;
    margin-bottom: -.5em;
    z-index: 3;
    width: 1px;
    height: 1.5em
}

.l-btn .arrow.down:before,.l-btn .arrow.down:after {
    bottom: 0;
    right: 0;
    background: #aaa;
    width: 1px;
    height: .5em
}

a:hover .l-btn .arrow,.l-btn:hover .arrow {
    right: -.5em
}

a:hover .l-btn .arrow.down,.l-btn:hover .arrow.down {
    right: 1em;
    bottom: 42%
}

.l-btn.line {
    border-top: solid 1px #eee;
    border-bottom: solid 1px #eee;
    color: #000;
    overflow: visible;
    padding-left: 0;
    text-align: left
}

.l-btn.line:before {
    display: none
}

a:hover .l-btn.line,a:hover .l-btn.line:before,.l-btn.line:before,.l-btn.line:hover {
    background-color: none
}

.l-btn.white {
    border: solid 1px #FFF;
    color: #000;
    background-color: #FFF
}

a:hover .l-btn.white,a:hover .l-btn.white:before,.l-btn.white:before,.l-btn.white:hover {
    color: #FFF;
    background-color: #000
}

.l-btn.black {
    border: solid 1px #000;
    color: #FFF;
    background-color: #000
}

a:hover .l-btn.black,a:hover .l-btn.black:before,.l-btn.black:before,.l-btn.black:hover {
    color: #000;
    background-color: #FFF
}

.l-btn.red {
    border: solid 1px #000;
    color: #FFF;
    background-color: #000
}

.l-btn.red:before,.l-btn.red:hover {
    color: #000;
    background-color: #FFF
}

.l-btn.w-line {
    color: #FFF;
    border: solid 1px #FFF
}

.l-btn.w-line:before,.l-btn.w-line:hover {
    color: #000;
    background-color: #FFF
}

.l-btn.b-line {
    color: #000;
    border: solid 1px #000
}

.l-btn.b-line:before,.l-btn.b-line:hover {
    color: #FFF;
    background-color: #000
}

.l-btn.r-line {
    color: #000;
    border: solid 2px #000
}

.l-btn.r-line:before,.l-btn.r-line:hover {
    color: #FFF;
    background-color: #000
}

.l-btn.plain {
    color: #333
}

.l-btn.plain:before,.l-btn.plain:hover {
    color: #FFF;
    background-color: #333
}

@media screen and (min-width: 769px) {
    .l-btn.w220 {
        width:220px
    }

    .l-btn.w240 {
        width: 240px
    }

    .l-btn.w250 {
        width: 250px
    }

    .l-btn.w300 {
        width: 300px
    }

    .l-btn.w360 {
        width: 360px
    }

    .l-btn.w370 {
        width: 370px
    }

    .l-btn.w500 {
        width: 500px
    }

    .l-btn.w570 {
        width: 570px
    }

    .l-btn.w640 {
        width: 640px
    }
}

@media screen and (max-width: 768px) {
    .sp-table tbody tr,.sp-table tbody td,.sp-table tbody th {
        display:inline-block;
        width: 100%
    }

    .table-wrap {
        overflow-x: scroll
    }
}

.is-none {
    display: none !important
}

.js-hide,.is-hide {
    display: none
}

.te-center {
    text-align: center
}

.te-right {
    text-align: right
}

.te-left {
    text-align: left
}

@media screen and (min-width: 769px) {
    .te-center-pc {
        text-align:center
    }

    .te-right-pc {
        text-align: right
    }

    .te-left-pc {
        text-align: left
    }
}

@media screen and (max-width: 768px) {
    .te-center-sp {
        text-align:center
    }

    .te-right-sp {
        text-align: right
    }

    .te-left-sp {
        text-align: left
    }
}

.te-bold,.is-bold {
    font-weight: 700
}

.te-bold.w500,.is-bold.w500 {
    font-weight: 500
}

.te-bold.w900,.is-bold.w900 {
    font-weight: 900
}

.is-false,.a-false {
    pointer-events: none
}

a.a-nolink,.a-nolink a {
    pointer-events: none;
    text-decoration: none !important
}

a.a-ulink,.a-ulink a {
    text-decoration: underline
}

a.a-ulink:hover,.a-ulink a:hover {
    text-decoration: none
}

.body-in {
    overflow-x: hidden
}

.anime {
    transition-duration: .5s
}

.anime.scramble {
    transition-delay: 0s
}

.anime.fade-in {
    opacity: 0
}

.anime.fade-in.active,.anime.fade-in.lock {
    opacity: 1
}

.anime.flip-y {
    transform: rotateX(90deg);
    opacity: 0
}

.anime.flip-y.active,.anime.flip-y.lock {
    transform: rotateX(0);
    opacity: 1
}

.anime.flip-x {
    transform: rotateY(90deg);
    opacity: 0
}

.anime.flip-x.active,.anime.flip-x.lock {
    transform: rotateY(0);
    opacity: 1
}

.anime.expand-x {
    width: auto;
    max-width: 1px;
    opacity: 0;
    overflow: hidden
}

.anime.expand-x.active,.anime.expand-x.lock {
    max-width: 100%;
    opacity: 1
}

.anime.expand-y {
    height: auto;
    max-height: 1px;
    opacity: 0;
    overflow: hidden
}

.anime.expand-y.active,.anime.expand-y.lock {
    max-height: 1000px;
    opacity: 1
}

.anime.top-in {
    transform-origin: 0 0;
    opacity: 0;
    transform: translate(0, -20px)
}

.anime.top-in.active,.anime.top-in.lock {
    opacity: 1;
    transform: translate(0, 0)
}

.anime.bottom-in {
    opacity: 0;
    transform: translate(0, 20px) perspective(0) translate3d(0, 0, 0)
}

.anime.bottom-in.active,.anime.bottom-in.lock {
    opacity: 1;
    transform: translate(0, 0)
}

.anime.left-in {
    opacity: 0;
    transform: translate(-20px, 0)
}

.anime.left-in.active,.anime.left-in.lock {
    opacity: 1;
    transform: translate(0, 0)
}

.anime.right-in {
    opacity: 0;
    transform: translate(20px, 0)
}

.anime.right-in.active,.anime.right-in.lock {
    opacity: 1;
    transform: translate(0, 0)
}

.anime.zoom-in {
    opacity: 0;
    transform: scale(0, 0)
}

.anime.zoom-in.active,.anime.zoom-in.lock {
    opacity: 1;
    transform: scale(1.1, 1.1)
}

@font-face {
    font-family: 'NotoSerifCJKjp';
    font-style: normal;
    font-weight: 200;
    src: url("font/NotoSerifCJKjp/NotoSerifCJKjp-Light-Web.woff2") format("woff2"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Light-Web.woff") format("woff"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Light-Web.otf") format("opentype");
    font-display:swap}

@font-face {
    font-family: 'NotoSerifCJKjp';
    font-style: normal;
    font-weight: 400;
    src: url("font/NotoSerifCJKjp/NotoSerifCJKjp-Regular-Web.woff2") format("woff2"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Regular-Web.woff") format("woff"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Regular-Web.otf") format("opentype");
    font-display:swap}

@font-face {
    font-family: 'NotoSerifCJKjp';
    font-style: normal;
    font-weight: 500;
    src: url("font/NotoSerifCJKjp/NotoSerifCJKjp-Medium-Web.woff2") format("woff2"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Medium-Web.woff") format("woff"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Medium-Web.otf") format("opentype");
    font-display:swap}

@font-face {
    font-family: 'NotoSerifCJKjp';
    font-style: normal;
    font-weight: 700;
    src: url("font/NotoSerifCJKjp/NotoSerifCJKjp-Bold-Web.woff2") format("woff2"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Bold-Web.woff") format("woff"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Bold-Web.otf") format("opentype");
    font-display:swap}

@font-face {
    font-family: 'NotoSerifCJKjp';
    font-style: normal;
    font-weight: 900;
    src: url("font/NotoSerifCJKjp/NotoSerifCJKjp-Black-Web.woff2") format("woff2"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Black-Web.woff") format("woff"),url("font/NotoSerifCJKjp/NotoSerifCJKjp-Black-Web.otf") format("opentype");
    font-display:swap}

body .notoserif,button .notoserif,input .notoserif,select .notoserif,textarea .notoserif {
    font-family: "NotoSerifCJKjp","Yu Mincho","YuMincho","ヒラギノ明朝 ProN W3","Hiragino Mincho ProN","HGS明朝E","HG明朝E","NotoSerifCJKjp",serif
}

.l-header,.l-footer,body {
    width: 100%
}

@media screen and (min-width: 769px) {
    .l-header,.l-footer,body {
        min-width:1200px
    }
}

.pad {
    padding-left: 3.125%;
    padding-right: 3.125%
}

@media screen and (min-width: 769px) {
    .wrap {
        width:100%;
        max-width: 1200px;
        margin: 0 auto;
        padding-right: 10px;
        padding-left: 10px
    }

    .wrap.w1080 {
        max-width: 1100px
    }

    .wrap.no-pad {
        padding-right: 0;
        padding-left: 0
    }
}

@media screen and (max-width: 768px) {
    .sp-wrap {
        padding-left:6.25%;
        padding-right: 6.25%
    }
}

body,button,input,select,textarea {
    color: #3b3b3b;
    font-size: 1.4rem;
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: .1em
}

.serif {
    font-family: "YakuHanMP","Lora","Yu Mincho","YuMincho","ヒラギノ明朝 ProN W3","Hiragino Mincho ProN","HGS明朝E","HG明朝E","NotoSerifCJKjp",serif
}

a {
    color: #1177b0;
    text-decoration: none
}

a:hover {
    text-decoration: underline
}

p:not([class]):not(:last-child) {
    margin-bottom: 1em
}

::-moz-selection {
    color: #fff;
    background: #000
}

::selection {
    color: #fff;
    background: #000
}

.l-header {
    position: fixed;
    border-bottom: 1px solid #ddd;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    font-size: 1rem;
    white-space: nowrap
}

.l-header .header-base {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    position: relative;
    padding: 0 3.125%;
    background: #FFF
}

.l-header .logo {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    max-width: 240px
}

.l-header .logo a {
    color: inherit;
    text-decoration: none
}

.l-header .logo .logo-text {
    padding-bottom: .5em;
    font-size: 1.2em;
    line-height: 1
}

.l-header .logo .link {
    transition-duration: .5s;
    display: inline-block
}

.l-header .logo .link img {
    transition-duration: .5s
}

.l-header nav {
    height: 100%
}

.l-header .l-nav {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    height: 100%;
    text-align: center
}

.l-header .l-nav .l-pulldown {
    position: relative
}

.l-header .l-nav .l-pulldown .body {
    opacity: 0;
    transform-origin: 0 0;
    transform: rotateX(90deg);
    transition-duration: .5s;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 3;
    border: 1px solid #eeeeee;
    font-size: 1.3em;
    text-align: left;
    background: #FFF
}

.l-header .l-nav .l-pulldown .body .in {
    white-space: nowrap
}

.l-header .l-nav .l-pulldown .body .in>li:not(:last-child) {
    position: relative
}

.l-header .l-nav .l-pulldown .body .in>li:not(:last-child):before {
    content: "";
    display: block;
    position: absolute;
    left: 2em;
    bottom: 0;
    z-index: 2;
    width: 2em;
    height: 1px;
    background: #CCC
}

.l-header .l-nav .l-pulldown .body a {
    display: block;
    padding: 1.5em 2em;
    color: inherit;
    font-weight: 700
}

.l-header .l-nav .l-pulldown:hover .head:after {
    bottom: -25%;
    height: 50%
}

.l-header .l-nav .l-pulldown:hover .body {
    opacity: 1;
    transform: rotateX(0)
}

.l-header .l-nav .menu>span,.l-header .l-nav .menu>a {
    position: relative;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    padding: 2em;
    color: #3b4852;
    text-decoration: none
}

.l-header .l-nav .menu>span .main,.l-header .l-nav .menu>a .main {
    font-size: 1.3em;
    color: #000
}

.l-header .l-nav .menu>span .sub,.l-header .l-nav .menu>a .sub {
    font-size: 1.2em;
    font-weight: 600;
    color: #999
}

.l-header .l-nav .menu>span:after,.l-header .l-nav .menu>a:after {
    transition-duration: .5s;
    display: inline-block;
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    z-index: 2;
    width: 1px;
    height: 0;
    background: #aaa
}

.l-header .l-nav .menu>a.active,.l-header .l-nav .menu>a:hover {
    opacity: .7
}

.l-header .l-nav .menu>a.active:after,.l-header .l-nav .menu>a:hover:after {
    bottom: -25%;
    height: 50%
}

.l-header .l-nav .menu:not(.l-pulldown)>span:after,.l-header .l-nav .menu:not(.l-pulldown)>a:after {
    display: none
}

.l-header .l-nav .entry {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    margin-left: 2em;
    height: 100%
}

.l-header .l-nav .entry a {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    border: solid 1px #000;
    padding: 1em 2em;
    color: #000;
    line-height: 1.2;
    background: #FFF;
    text-decoration: none;
    min-width: 160px;
}

.l-header .l-nav .entry a .main {
    font-size: 1.3em
}

.l-header .l-nav .entry a:hover {
    color: #FFF;
    background: #000
}

@media screen and (max-width: 1699px) {
    .l-header .l-nav .entry {
        margin-left:.5em
    }
}

@media screen and (max-width: 768px) {
    .l-header {
        min-width:100%;
        font-size: 2vw
    }

    .l-header .header-base {
        padding: 0.5em 0 0.5em 3.125%
    }

    .l-header .logo .logo-text {
        padding-bottom: .3em;
        font-size: 1.4em
    }

    .l-header .logo .link {
        width: 60%
    }
}

.l-header.dummy {
    position: relative;
    opacity: 0;
    z-index: -1000;
    visibility: hidden
}

.l-animebtn {
    z-index: 100;
    position: relative;
    display: inline-block;
    box-sizing: border-box;
    width: 14vw;
    border-radius: 0;
    font-size: 0;
    vertical-align: top;
    cursor: pointer
}

.l-animebtn:before {
    display: block;
    content: '';
    padding: 100% 0 0
}

.l-animebtn .bar {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition-duration: .5s
}

.l-animebtn .bar span {
    transform-origin: 50% 50%;
    position: absolute;
    left: 25%;
    display: inline-block;
    box-sizing: border-box;
    border-radius: 0;
    transition-duration: .5s;
    width: 50%;
    height: 2px;
    background: #000
}

.l-animebtn .bar span:nth-of-type(1) {
    top: 35%;
    width: 30%
}

.l-animebtn .bar span:nth-of-type(2) {
    top: 50%;
    margin-top: -1px
}

.l-animebtn .bar span:nth-of-type(3) {
    bottom: 35%;
    width: 40%
}

.l-animebtn.active span {
    background: #000
}

.l-animebtn.active span:nth-of-type(1) {
    top: 50%;
    margin-top: -1px;
    transform: rotate(-45deg);
    width: 50%
}

.l-animebtn.active span:nth-of-type(2) {
    transform: rotateY(90deg);
    opacity: 0
}

.l-animebtn.active span:nth-of-type(3) {
    bottom: 50%;
    margin-bottom: -1px;
    transform: rotate(45deg);
    width: 50%
}

.sp-nav {
    transition-duration: .5s;
    visibility: hidden;
    opacity: 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    max-height: 100%;
    overflow-y: scroll;
    padding-top: 13vw;
    z-index: 5;
    background: rgba(255,255,255,0.95)
}

.sp-nav .l-nav {
    display: block;
    height: auto;
    text-align: center;
    font-size: 3vw;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap
}

.sp-nav .l-nav>li {
    width: 50%
}

.sp-nav .l-nav>.entry {
    width: 100%
}

.sp-nav .l-nav .menu>a {
    position: relative;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    padding: 1em;
    color: #3b4852;
    text-decoration: none
}

.sp-nav .l-nav .menu>a .main {
    font-size: 1.3em;
    color: #000
}

.sp-nav .l-nav .menu>a .sub {
    font-size: 1.1em;
    font-weight: 600;
    color: #999;
    letter-spacing: 0
}

.sp-nav .l-nav .menu>a:after {
    display: none
}

.sp-nav .l-nav .entry {
    padding: 1em 0;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    height: auto;
    margin-left: 0
}

.sp-nav .l-nav .entry a {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    border: solid 1px #000;
    padding: 1.5em 7em;
    color: #000;
    line-height: 1;
    background: #FFF;
    text-decoration: none;
    width: 90%;
}

.sp-nav .l-nav .entry a .main {
    font-size: 1.3em
}

.sp-nav .l-nav .entry a:hover {
    color: #FFF;
    background: #000
}

.sp-nav .sns {
    padding: 2em 0;
    width: 100%
}

.sp-nav .sns>li {
    margin: 0 2em
}

.sp-nav .sns a {
    padding: .1em;
    font-size: 3em;
    color: #000;
    line-height: 1
}

.sp-nav .link {
    -webkit-justify-content: center;
    justify-content: center
}

.sp-nav .link a {
    position: relative;
    display: block;
    padding: .5em 1em;
    color: #777;
    font-size: 1.2em
}

.sp-nav .link a:before {
    content: "";
    display: inline-block;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -.5em;
    width: 1px;
    height: 1em;
    background: #d9d9d9
}

.sp-nav .link>li:last-child a:after {
    content: "";
    display: inline-block;
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -.5em;
    width: 1px;
    height: 1em;
    letter-spacing: 0;
    background: #d9d9d9
}

.sp-nav .copy {
    padding: 1em 0;
    font-size: .6em;
    color: #555555;
    text-align: center;
    line-height: 1
}

.sp-nav.active {
    visibility: visible;
    opacity: 1
}

.l-footer.top {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 1000
}

@media screen and (max-width: 768px) {
    .l-footer.top {
        display:none
    }
}

.l-footer {
    padding: .8em 0;
    border-top: 1px solid #ddd;
    width: 100%;
    background: #FFF;
    font-size: .85rem;
    min-width: 1050px;
    white-space: nowrap
}

@media screen and (max-width: 1699px) {
    .l-footer {
        min-width:100%
    }
}

.l-footer .footer-base {
    padding: 0 3.125%
}

.l-footer .sns>li {
    margin-right: 1em
}

.l-footer .sns a {
    padding: .25em;
    font-size: 2.5em;
    color: #000;
    line-height: 1
}

.l-footer .link a {
    position: relative;
    display: block;
    padding: 1em 2em;
    color: #777;
    font-size: 1.4em
}

.l-footer .link a:before {
    content: "";
    display: inline-block;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -.5em;
    width: 1px;
    height: 1em;
    background: #d9d9d9
}

.l-footer .link>li:last-child a:after {
    content: "";
    display: inline-block;
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -.5em;
    width: 1px;
    height: 1em;
    background: #d9d9d9
}

.l-footer .copy {
    font-size: 1.2em;
    color: #555555
}

@media screen and (max-width: 768px) {
    .l-footer .sns {
        -webkit-justify-content:center;
        justify-content: center;
        padding: 2em 0;
        width: 100%
    }

    .l-footer .sns>li {
        margin: 0 2em
    }

    .l-footer .sns a {
        padding: .1em;
        font-size: 2em;
        color: #000;
        line-height: 1
    }

    .l-footer .link {
        -webkit-justify-content: center;
        justify-content: center
    }

    .l-footer .link a {
        position: relative;
        display: block;
        padding: .5em 1em;
        color: #777;
        font-size: 1em
    }

    .l-footer .link a:before {
        content: "";
        display: inline-block;
        position: absolute;
        left: 0;
        top: 50%;
        margin-top: -.5em;
        width: 1px;
        height: 1em;
        background: #d9d9d9
    }

    .l-footer .link>li:last-child a:after {
        content: "";
        display: inline-block;
        position: absolute;
        right: 0;
        top: 50%;
        margin-top: -.5em;
        width: 1px;
        height: 1em;
        background: #d9d9d9
    }

    .l-footer .copy {
        padding: 1em 0;
        font-size: .6em;
        color: #555555;
        text-align: center;
        letter-spacing: 0;
        line-height: 1
    }
}

.link-img {
    display: inline-block;
    transition-duration: .5s;
    position: relative;
    z-index: 1;
    overflow: hidden
}

.link-img>img {
    position: relative;
    transition-duration: .5s;
    z-index: 2
}

.link-img:before,.link-img:after {
    display: block;
    content: "";
    opacity: 0;
    transition-duration: .5s;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.link-img:before {
    z-index: 3;
    background: rgba(0,0,0,0.5)
}

.link-img:after {
    z-index: 4;
    box-shadow: 0 0 0 0 rgba(255,255,255,0.5) inset
}

.link-img .text {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    transition-duration: .5s;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3
}

.link-img .text .in {
    color: #FFF
}

a:hover .link-img>img:not(.no-zoom),a.active .link-img>img:not(.no-zoom) {
    transform: scale(1.1, 1.1)
}

a:hover .link-img .text,a:hover .link-img:before,a:hover .link-img:after,a.active .link-img .text,a.active .link-img:before,a.active .link-img:after {
    opacity: 1
}

a:hover .link-img:after,a.active .link-img:after {
    box-shadow: 0 0 0 10px rgba(255,255,255,0.5) inset
}

.link-img.expand-bar {
    overflow: visible
}

.link-img.expand-bar:after {
    z-index: 4;
    top: 0;
    left: 50%;
    width: 1px;
    height: 0;
    background: #ccc;
    box-shadow: none
}

a:hover .link-img.expand-bar>img,a.active .link-img.expand-bar>img {
    transform: scale(1, 1)
}

a:hover .link-img.expand-bar:after,a.active .link-img.expand-bar:after {
    top: -2em;
    height: 4em;
    box-shadow: none
}

.border-top {
    border-top: 1px solid #ddd
}

.entry-area {
    border-top: 1px solid #ddd;
    padding: 120px 1em;
    font-size: 1rem;
    text-align: center
}

.entry-area .entry-text {
    padding-bottom: 2em;
    font-size: 1.6em
}

.entry-area .l-btn {
    padding: 1.5em;
    font-size: 1.6em
}

@media screen and (max-width: 768px) {
    .entry-area {
        padding:3.4em 6.25% 6em;
        font-size: 3vw
    }

    .entry-area .entry-text {
        line-height: 2;
        font-size: 1.3em
    }

    .entry-area .l-btn {
        padding: 1.5em;
        font-size: 1.4em;
        font-weight: 700
    }
}

.purge-br br {
    display: none !important
}

.pagetop {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    border-top: 1px solid #ddd;
    width: 100%;
    padding: 2.5rem;
    text-align: center;
    text-decoration: none;
    color: #999;
    background: #f8f8f8
}

@media screen and (max-width: 768px) {
    .pagetop {
        padding:1rem
    }
}

.pagetop .text {
    padding-bottom: .5em;
    font-size: 1rem;
    line-height: 1;
    text-decoration: none
}

.pagetop .arrow {
    transition-duration: .5s;
    display: inline-block;
    position: relative;
    margin-top: 0;
    margin-bottom: -.5em;
    z-index: 3;
    width: 1px;
    height: 1.3em;
    background: #aaa
}

.pagetop .arrow:before,.pagetop .arrow:after {
    display: inline-block;
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    background: #aaa;
    width: 1px;
    height: .6em;
    transform-origin: 0 0
}

.pagetop .arrow:before {
    transform: rotate(-45deg)
}

.pagetop .arrow:after {
    transform: rotate(45deg)
}

.pagetop:hover {
    text-decoration: none
}

.pagetop:hover .arrow {
    top: -.2em
}

body.wait *:not(.loading) {
    opacity: 0 !important;
    transition-duration: 0s !important
}

.loading {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    transition-duration: .8s;
    transition-delay: 1.2s;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999999;
    width: 100vw;
    height: 100vh;
    text-align: center;
    background: #FFF;
    font-size: 1rem
}

@media screen and (max-width: 1023px) {
    .loading {
        font-size:.8vw
    }
}

@media screen and (max-width: 768px) {
    .loading {
        font-size:1.6vw
    }
}

.loading .anime {
    transition-duration: .8s
}

.loading .anime.wave0 {
    transition-delay: 0s
}

.loading .anime.wave1 {
    transition-delay: 0s
}

.loading .anime.wave2 {
    transition-delay: 0s
}

.loading .anime.wave3 {
    transition-delay: 0s
}

.loading .top-in {
    transition-duration: .8s;
    transition-delay: .5s
}

.loading .main {
    position: relative;
    z-index: 5;
    font-size: 5.4em;
    letter-spacing: .1em;
    white-space: nowrap
}

@media screen and (min-width: 769px) {
    .loading .main {
        font-size:5.4rem
    }
}

@media screen and (max-width: 768px) {
    .loading .main {
        margin-top:-2em
    }
}

.loading .sub {
    padding-top: .5em;
    font-size: 2.4em;
    color: #999;
    letter-spacing: .1em;
    white-space: nowrap
}

.loading .logo {
    position: absolute;
    z-index: 5;
    top: 35rem;
    left: 0;
    width: 100%;
    text-align: center
}

@media screen and (max-width: 768px) {
    .loading .logo img {
        width:60%
    }
}

.loading.close {
    opacity: 0;
    visibility: hidden
}

.loading.scramble {
    transition-duration: .3s
}

.op-hide {
    transition-duration: .5s;
    opacity: 0
}

@media screen and (min-width: 769px) {
    .l-top {
        padding:0 3.125%
    }
}

.l-top .top-slide {
    width: 100vw;
    height: 100vh
}

@media screen and (min-width: 769px) {
    .l-top .top-slide {
        min-width:1200px
    }
}

@media screen and (max-width: 768px) {
    .l-top .top-slide {
        height:calc(100vh - 30vw)
    }
}

.l-top .top-slide .swiper-slide {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    width: 100vw;
    height: 100vh
}

@media screen and (min-width: 769px) {
    .l-top .top-slide .swiper-slide {
        min-width:1200px
    }
}

.l-top .top-slide .swiper-slide>.wrap {
    margin: 0
}

.l-top .top-slide .swiper-slide>.in {
    width: 100%
}

@media screen and (max-width: 768px) {
    .l-top .top-slide .swiper-slide {
        display:-webkit-flex;
        display: flex;
        -webkit-align-items: flex-start;
        align-items: flex-start;
        height: calc(100vh - 30vw)
    }
}

.l-top .swiper-slide {
    font-size: 1rem
}

.l-top .swiper-slide .anime.wave0 {
    transition-delay: 0s
}

.l-top .swiper-slide .anime.wave1 {
    transition-delay: .2s
}

.l-top .swiper-slide .anime.wave2 {
    transition-delay: .4s
}

.l-top .swiper-slide .anime.wave3 {
    transition-delay: .6s
}

.l-top .swiper-slide .anime.wave4 {
    transition-delay: .8s
}

.l-top .swiper-slide .top-head {
    padding-bottom: 2em;
    font-size: 1.6rem;
    color: #555;
    letter-spacing: .1em
}

.l-top .swiper-slide .data,.l-top .swiper-slide .movie,.l-top .swiper-slide .bg {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    height: 100vh
}

@media screen and (min-width: 1200px) {
    .l-top .swiper-slide .data,.l-top .swiper-slide .movie,.l-top .swiper-slide .bg {
        -webkit-justify-content:center;
        justify-content: center
    }
}

.l-top .swiper-slide .movie,.l-top .swiper-slide .bg {
    -webkit-justify-content: center;
    justify-content: center;
    width: 45%;
    background: no-repeat left center;
    background-size: cover
}

.l-top .swiper-slide .data {
    width: 55%;
    padding: 1em
}

@media screen and (min-width: 769px) {
    .l-top .swiper-slide .data {
        padding-left:0
    }
}

.l-top .swiper-slide .data .main {
    padding: 0 0 1em;
    font-size: 4rem;
    color: #000;
    font-weight: 700
}

.l-top .swiper-slide .data .text {
    font-size: 1.4rem;
    line-height: 2;
    color: #000
}

@media screen and (max-width: 768px) {
    .l-top .swiper-slide {
        font-size:1.4vw
    }

    .l-top .swiper-slide .data,.l-top .swiper-slide .movie,.l-top .swiper-slide .bg {
        width: 100vw;
        height: auto;
        padding: 1em 6.25%
    }

    .l-top .swiper-slide .top-head {
        padding-bottom: .5em;
        font-size: 2.2em;
        color: #999
    }

    .l-top .swiper-slide .data {
        padding-top: 5em
    }

    .l-top .swiper-slide .data .text {
        font-size: 2.5em
    }
}
@media screen and (max-width: 768px) {
    .l-top .slide1 .data .main {
        font-size: 4em
    }

    .l-top .slide1 .data .text {
        font-size: 2.1em;line-height: 2;
    }
}

.l-top .slide1,.l-top .slide2,.l-top .slide3,.l-top .slide4 {
    background-repeat: no-repeat;
    background-position: center bottom 13vw;
    background-size: 100% auto;
    background-color: #FFF
}

.l-top .slide1 .btn>li:not(:first-child) .l-btn,.l-top .slide2 .btn>li:not(:first-child) .l-btn,.l-top .slide3 .btn>li:not(:first-child) .l-btn,.l-top .slide4 .btn>li:not(:first-child) .l-btn {
    border-top: 0
}

.l-top .slide1 .btn .l-btn,.l-top .slide2 .btn .l-btn,.l-top .slide3 .btn .l-btn,.l-top .slide4 .btn .l-btn {
    font-size: 1.6rem;
    padding: 1.5em 1.5em 1.5em 0
}

@media screen and (min-width: 769px) {
    .l-top .slide1 .data .main,.l-top .slide2 .data .main,.l-top .slide3 .data .main,.l-top .slide4 .data .main {
        font-size:3rem
    }
}

@media screen and (max-width: 768px) {
    .l-top .slide1 .data .main,.l-top .slide2 .data .main,.l-top .slide3 .data .main,.l-top .slide4 .data .main {
        font-size:3.2em
    }

    .l-top .slide1 .btn .l-btn,.l-top .slide2 .btn .l-btn,.l-top .slide3 .btn .l-btn,.l-top .slide4 .btn .l-btn {
        padding: 2em 1.5em 2em 0;
        font-size: 2.2em
    }
}
.l-top .slide1 .data .main {
    font-size: 4.3em
}

@media screen and (min-width: 769px) {
    .l-top .slide1 .data .main {
        padding-bottom:3rem;
        font-size: 3.8rem;
        margin-top: -2em;
        line-height: 1.6;
    }
}



.l-top .slide1 .bg {
    background-image: url(img/top_s0.jpg)
}

@media screen and (max-width: 768px) {
    .l-top .slide1 {
        background-image:url(img/top_s0_sp.jpg)
    }
}



.l-top .slide2 .bg {
    background-image: url(img/top_s2.jpg)
}

@media screen and (max-width: 768px) {
    .l-top .slide2 {
        background-image:url(img/top_s2_sp.jpg)
    }
}

.l-top .slide3 .bg {
    background-image: url(img/top_s3.jpg)
}

@media screen and (max-width: 768px) {
    .l-top .slide3 {
        background-image:url(img/top_s3_sp.jpg)
    }
}

.l-top .slide4 .bg {
    background: no-repeat center;
    background-image: url(img/top_s4.jpg)
}

@media screen and (max-width: 768px) {
    .l-top .slide4 {
        background-image:url(img/top_s4_sp.jpg)
    }
}

.l-top .swiper-controller {
    transition-duration: .5s;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    position: fixed;
    width: auto;
    bottom: 15%;
    z-index: 100
}

@media screen and (min-width: 769px) {
    .l-top .swiper-controller {
        left:3.125%;
        width: 50%
    }
}

.l-top .swiper-controller .swiper-button-prev,.l-top .swiper-controller .swiper-button-next,.l-top .swiper-controller .swiper-pagination {
    transition-duration: .5s;
    position: relative;
    right: auto;
    left: auto;
    top: auto;
    bottom: auto
}

@media screen and (max-width: 768px) {
    .l-top .swiper-controller {
        -webkit-justify-content:space-between;
        justify-content: space-between;
        bottom: .5em;
        width: 100vw;
        background: #FFF
    }
}

.l-top .swiper-button-prev,.l-top .swiper-button-next {
    opacity: 1;
    display: inline-block;
    z-index: 600;
    padding: 1em;
    margin-top: 0;
    width: auto;
    height: auto;
    line-height: 1.5em;
    font-size: 1.2rem;
    cursor: pointer;
    text-align: center;
    background: none
}

.l-top .swiper-button-prev:before,.l-top .swiper-button-next:before {
    transition-duration: .2s;
    content: "";
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 30px;
    height: 1px;
    background: #aaa
}

.l-top .swiper-button-prev {
    padding-left: 4em
}

.l-top .swiper-button-prev:before {
    left: 0
}

.l-top .swiper-button-prev:hover:before {
    left: -1em
}

.l-top .swiper-button-next {
    padding-right: 4em
}

.l-top .swiper-button-next:before {
    right: 0
}

.l-top .swiper-button-next:hover:before {
    right: -1em
}

.l-top .swiper-button-disabled {
    opacity: 0;
    visibility: hidden
}

.l-top .swiper-pagination {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: 0 3em;
    font-size: 1.8rem
}

@media screen and (max-width: 768px) {
    .l-top .swiper-pagination {
        padding:0
    }
}

.l-top .swiper-pagination>div {
    position: relative;
    border-radius: 0;
    margin: .5em;
    padding: 0 .25em;
    transition-duration: .5s;
    opacity: .5;
    cursor: pointer;
    background: none
}

.l-top .swiper-pagination>div:after {
    transition-duration: .5s;
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    content: "";
    width: 0;
    height: 2px;
    background: #555555
}

.l-top .swiper-pagination>div.swiper-pagination-bullet-active {
    opacity: 1
}

.l-top .swiper-pagination>div.swiper-pagination-bullet-active:after {
    width: 100%;
    left: 0
}

@media screen and (min-width: 769px) {
    .l-top .swiper-pagination>div:hover {
        opacity:1
    }

    .l-top .swiper-pagination>div:hover:after {
        width: 100%;
        left: 0
    }
}

.l-top .swiper-pagination .swiper-pagination-bullet {
    display: block;
    width: auto;
    height: auto
}

@media screen and (max-width: 768px) {
    .l-top .swiper-button-prev,.l-top .swiper-button-next {
        margin:0;
        padding: 1em 2em;
        font-size: 2.8vw
    }

    .l-top .swiper-button-prev:before,.l-top .swiper-button-next:before {
        width: 4vw
    }

    .l-top .swiper-button-prev:hover:before {
        left: 0
    }

    .l-top .swiper-button-next:hover:before {
        right: 0
    }

    .l-top .swiper-pagination {
        width: 100%;
        height: auto;
        font-size: 3.8vw;
        background: #FFF
    }

    .l-top .swiper-pagination>div {
        margin: .5em;
        padding: 0
    }
}

body .mfp-close-btn-in .top-movie-close {
    position: absolute;
    bottom: 100%;
    right: 0;
    font-size: 1.6rem;
    line-height: 1
}

body.top-modal .mfp-close-btn-in .mfp-close {
    position: static;
    display: inline-block;
    padding-bottom: 1em;
    width: auto;
    height: auto;
    opacity: 1;
    font-family: inherit;
    color: #000;
    font-size: 1.2rem
}

body.top-modal .mfp-close-btn-in .mfp-close .icon {
    margin-right: .5em
}

body.top-modal .mfp-wrap {
    padding: 2em
}

body.top-modal .mfp-container {
    display: block;
    width: 100%;
    height: 25vh
}

body.top-modal .mfp-content {
    display: block
}

body.top-modal .mag-modal {
    position: relative;
    width: 90vw;
    max-width: 840px
}

body.top-modal .mag-modal .btn {
    text-align: right
}

body.top-modal .mag-modal .box {
    padding: 6rem;
    border: 1px solid #ddd;
    max-height: 90vh;
    overflow-y: scroll;
    background: #FFF
}

body.top-modal .mag-modal .box .data {
    padding: 3em 0;
    color: #000
}

body.top-modal .mag-modal .box .pos {
    font-size: 1.4rem;
    line-height: 2
}

body.top-modal .mag-modal .box .name {
    font-size: 1.4rem;
    line-height: 2
}

body.top-modal .mag-modal .box .head {
    padding-bottom: 1em;
    font-size: 1.8rem;
    font-weight: 700
}

body.top-modal .mag-modal .box .text {
    font-size: 1.4rem;
    line-height: 2
}

body.top-modal .mag-modal .box .space {
    margin: 3rem 0;
    width: 3rem;
    height: 1px;
    background: #ddd
}

@media screen and (max-width: 768px) {
    body.top-modal .mfp-close-btn-in .mfp-close {
        padding:.5em 0;
        font-size: 1.2rem;
        line-height: 1
    }

    body.top-modal .mfp-close-btn-in .mfp-close .icon {
        margin-right: .5em
    }

    body.top-modal .mfp-wrap {
        padding: 2em
    }

    body.top-modal .mag-modal {
        position: relative;
        width: 95vw;
        max-width: 100%
    }

    body.top-modal .mag-modal .box {
        padding: 2rem 6.25%;
        max-height: 80vh
    }

    body.top-modal .mag-modal .box .data {
        padding: 1.5em 0;
        color: #000
    }

    body.top-modal .mag-modal .box .pos {
        font-size: 1.2rem;
        line-height: 2
    }

    body.top-modal .mag-modal .box .name {
        font-size: 1.2rem;
        line-height: 2
    }

    body.top-modal .mag-modal .box .head {
        padding-bottom: .5em;
        font-size: 1.6rem
    }

    body.top-modal .mag-modal .box .text {
        font-size: 1.2rem;
        line-height: 2
    }

    body.top-modal .mag-modal .box .space {
        margin: 1.5rem 0;
        width: 3rem
    }
}

.l-page {
    font-size: 1rem;
    color: #000
}

@media screen and (max-width: 768px) {
    .l-page {
        letter-spacing:.05em
    }
}

.l-page .page-head {
    font-size: 2em;
    line-height: 1;
    letter-spacing: .2em
}

@media screen and (max-width: 768px) {
    .l-page .page-head {
        font-size:1.8em
    }
}

.l-page .page-sub {
    padding-top: 1em;
    font-size: 1.4em;
    line-height: 1em;
    color: #999
}

@media screen and (max-width: 768px) {
    .l-page .page-sub {
        font-size:1.2em
    }
}

.l-page .head-area {
    padding: 12em 0 17em
}

.l-page .head-area .head-in {
    position: relative
}

.l-page .head-area .head-in>.wrap {
    position: relative
}

.l-page .head-area .bar-frame {
    position: relative
}

.l-page .head-area .bar-frame:before {
    display: block;
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    width: 1px;
    height: 3em;
    background: #ddd
}

.l-page .head-area .head-mv {
    transition-duration: .5s;
    position: absolute;
    top: 0;
    z-index: -1
}

@media screen and (min-width: 769px) {
    .l-page .head-area .head-mv {
        right:0
    }

    .l-page .head-area .head-mv img {
        max-width: 640px
    }
}

.l-page .head-area .page-head {
    padding-top: 3em;
    font-size: 2.8em;
    line-height: 1
}

.l-page .head-area .page-sub {
    padding-top: 1em;
    font-size: 1.4em;
    line-height: 1em
}

.l-page .head-area .head-text {
    padding: 19rem 13rem 8rem 0;
    width: 58%;
    font-size: 1.6em;
    line-height: 2
}

.l-page .head-area .head-btn {
    padding-top: 29em
}

.l-page .head-area .head-btn .no {
    display: inline-block;
    padding-bottom: .2em;
    margin-right: .7em;
    font-size: 1.2em;
    letter-spacing: 5px;
    color: #999
}

.l-page .head-area .head-btn .l-btn {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    font-size: 1.4em;
    background: #FFF
}

@media screen and (max-width: 768px) {
    .l-page .head-area {
        padding:0
    }

    .l-page .head-area .head-in {
        position: relative
    }

    .l-page .head-area .bar-frame:before {
        top: 3.5em;
        left: 6.25%;
        height: 1.5em
    }

    .l-page .head-area .head-mv {
        position: static;
        padding-left: 6.25%
    }

    .l-page .head-area .head-mv img {
        width: 100%
    }

    .l-page .head-area .title {
        padding: 5.5em 6.25%
    }

    .l-page .head-area .page-head {
        padding-top: 0;
        font-size: 2em
    }

    .l-page .head-area .page-sub {
        padding-top: 1em;
        font-size: 1.2em
    }

    .l-page .head-area .head-text {
        padding: 3rem 6.25%;
        width: 100%;
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-page .head-area .head-btn {
        padding: 4em 6.25% 0
    }

    .l-page .head-area .head-btn .no {
        font-size: 1.4em;
        color: #999
    }

    .l-page .head-area .head-btn .l-btn {
        font-size: 1.2em;
        padding-right: 2em;
        line-height: 1.5
    }
}

.l-page .body-area {
    padding: 8em 0
}

@media screen and (max-width: 768px) {
    .l-page .body-area {
        padding:2em 3.125%
    }
}

.l-page .sec {
    padding: 20em 0
}

@media screen and (max-width: 768px) {
    .l-page .sec {
        padding:6em 0
    }
}

.l-page .block-bottom {
    padding-bottom: 10em
}

@media screen and (max-width: 768px) {
    .l-page .block-bottom {
        padding-bottom:6em
    }
}

.l-page .block-top {
    padding-top: 10em
}

@media screen and (max-width: 768px) {
    .l-page .block-top {
        padding-top:6em
    }
}

.l-page .space {
    margin: 4em 0;
    width: 10em;
    height: 1px;
    background: #ddd
}

@media screen and (max-width: 768px) {
    .l-page .space {
        margin:2em 0;
        width: 5em
    }
}

.l-about .sec .left,.l-work .sec .left,.l-career .sec .left {
    padding-right: 1em;
    max-width: 360px
}

.l-about .sec .about-list .right,.l-work .sec .about-list .right,.l-career .sec .about-list .right {
    width: 100%;
    max-width: 720px
}

.l-about .sec .text-head,.l-work .sec .text-head,.l-career .sec .text-head {
    padding-bottom: 2em;
    font-size: 2em;
    font-weight: 700;
    color: #000;
    letter-spacing: .05em
}

.l-about .sec .text,.l-work .sec .text,.l-career .sec .text {
    line-height: 2;
    letter-spacing: .05em;
    font-size: 1.4em
}

.l-about .sec .name,.l-work .sec .name,.l-career .sec .name {
    padding-top: 4em;
    font-size: 1.4em;
    line-height: 2
}

.l-about .his-img,.l-work .his-img,.l-career .his-img {
    position: relative;
    z-index: 2
}

.l-about .history,.l-work .history,.l-career .history {
    position: relative;
    z-index: 1;
    margin-top: -100px;
    padding: 175px 6.25% 100px;
    background: #f4f4f4
}

.l-about .history .his-head,.l-work .history .his-head,.l-career .history .his-head {
    font-size: 1.8em;
    font-weight: 700;
    letter-spacing: .05em
}

.l-about .history .his-list,.l-work .history .his-list,.l-career .history .his-list {
    position: relative
}

.l-about .history .his-list:before,.l-work .history .his-list:before,.l-career .history .his-list:before {
    content: "";
    display: block;
    position: absolute;
    border-left: 1px dashed #ddd;
    left: .5em;
    top: 0;
    z-index: -1;
    width: 1px;
    height: 100%
}

.l-about .history .his-list>li:not(:first-child),.l-work .history .his-list>li:not(:first-child),.l-career .history .his-list>li:not(:first-child) {
    margin-top: 2.5em
}

.l-about .history .his-list>li:last-child .dot:after,.l-work .history .his-list>li:last-child .dot:after,.l-career .history .his-list>li:last-child .dot:after {
    content: "";
    display: block;
    position: absolute;
    left: .3em;
    top: 1.5em;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: #f4f4f4
}

@media screen and (min-width: 769px) {
    .l-about .history .his-box,.l-work .history .his-box,.l-career .history .his-box {
        height:90px
    }
}

.l-about .history .dot,.l-work .history .dot,.l-career .history .dot {
    position: relative;
    width: 2rem
}

.l-about .history .dot:before,.l-work .history .dot:before,.l-career .history .dot:before {
    content: "";
    display: block;
    position: absolute;
    left: .3em;
    top: 1.5em;
    z-index: 3;
    width: .5em;
    height: .5em;
    border-radius: 50%;
    background: #000
}

.l-about .history .year,.l-work .history .year,.l-career .history .year {
    width: 4em;
    padding-left: .5em;
    font-size: 2em
}

.l-about .history .year.serif,.l-work .history .year.serif,.l-career .history .year.serif {
    font-family: "NotoSerifCJKjp",serif
}

.l-about .history .bar,.l-work .history .bar,.l-career .history .bar {
    position: relative;
    min-width: 200px
}

.l-about .history .bar:after,.l-work .history .bar:after,.l-career .history .bar:after {
    content: "";
    display: block;
    position: absolute;
    left: 10%;
    top: 2em;
    z-index: 2;
    width: 80%;
    height: 1px;
    background: #ddd
}

.l-about .history .his-text,.l-work .history .his-text,.l-career .history .his-text {
    max-width: 600px;
    font-size: 1.6em
}

@media screen and (max-width: 768px) {
    .l-about .sec .left,.l-work .sec .left,.l-career .sec .left {
        padding-right:0;
        max-width: 100%
    }

    .l-about .sec .left img,.l-work .sec .left img,.l-career .sec .left img {
        width: 100%
    }

    .l-about .sec .right,.l-work .sec .right,.l-career .sec .right {
        max-width: 100%
    }

    .l-about .sec .text-head,.l-work .sec .text-head,.l-career .sec .text-head {
        padding-top: 4rem;
        padding-bottom: 0;
        font-size: 1.6em
    }

    .l-about .sec .text,.l-work .sec .text,.l-career .sec .text {
        padding-top: 4rem;
        font-size: 1.3em
    }

    .l-about .sec .name,.l-work .sec .name,.l-career .sec .name {
        padding-top: 3.5rem;
        font-size: 1.2em
    }

    .l-about .history,.l-work .history,.l-career .history {
        margin-top: 0;
        padding: 2em 6.25%
    }

    .l-about .history .his-head,.l-work .history .his-head,.l-career .history .his-head {
        font-size: 1.8em;
        font-weight: 700;
        letter-spacing: .05em
    }

    .l-about .history .his-list,.l-work .history .his-list,.l-career .history .his-list {
        position: relative
    }

    .l-about .history .his-list>li:not(:first-child),.l-work .history .his-list>li:not(:first-child),.l-career .history .his-list>li:not(:first-child) {
        margin-top: 1.5em
    }

    .l-about .history .dot,.l-work .history .dot,.l-career .history .dot {
        position: relative;
        width: 2rem
    }

    .l-about .history .dot:before,.l-work .history .dot:before,.l-career .history .dot:before {
        content: "";
        display: block;
        position: absolute;
        left: .3em;
        top: 1rem;
        z-index: 3;
        width: .5em;
        height: .5em
    }

    .l-about .history .year,.l-work .history .year,.l-career .history .year {
        width: 4em;
        padding-left: .5em;
        font-size: 1.4em
    }

    .l-about .history .bar,.l-work .history .bar,.l-career .history .bar {
        min-width: 4rem
    }

    .l-about .history .bar:after,.l-work .history .bar:after,.l-career .history .bar:after {
        top: 1rem;
        left: 20%;
        z-index: 2;
        width: 60%
    }

    .l-about .history .his-text,.l-work .history .his-text,.l-career .history .his-text {
        width: 80vw;
        font-size: 1.2em;
        min-height: 7em
    }
}

.l-work .intro {
    padding-top: 20em
}

.l-work .intro .text {
    font-size: 1.4em;
    line-height: 2
}

.l-work .page-head {
    font-size: 2.6em;
    line-height: 1.5
}

.l-work .sec-item {
    padding-top: 9rem
}

.l-work .sec-text {
    font-size: 1.4em;
    line-height: 2
}

@media screen and (max-width: 768px) {
    .l-work .intro {
        padding:2.5em 0
    }

    .l-work .intro .text {
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-work .page-head {
        font-size: 1.6em;
        line-height: 1.5
    }

    .l-work .sec-item {
        padding-top: 4.5rem
    }

    .l-work .sec-text {
        font-size: 1.3em;
        line-height: 1.7
    }
}

.l-project .head-area .head-text,.l-case .head-area .head-text {
    font-size: 1.4em
}

@media screen and (min-width: 769px) {
    .l-project .head-area .head-text,.l-case .head-area .head-text {
        padding:29rem 13rem 8rem 0
    }
}

.l-project .case-list,.l-case .case-list {
    position: relative;
    -webkit-align-items: stretch;
    align-items: stretch
}

.l-project .case-list .left,.l-case .case-list .left {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-direction: column;
    flex-direction: column
}

@media screen and (min-width: 769px) {
    .l-project .case-list .left .case-btn,.l-case .case-list .left .case-btn {
        visibility:hidden
    }
}

.l-project .case-list .right.img,.l-case .case-list .right.img {
    width: 60rem
}

.l-project .case-list .right.img img,.l-case .case-list .right.img img {
    width: 100%
}

@media screen and (min-width: 769px) {
    .l-project .case-list .right.img .case-btn,.l-case .case-list .right.img .case-btn {
        position:absolute;
        left: 0;
        bottom: 0;
        z-index: 2
    }
}

.l-project .case-list .case-no,.l-case .case-list .case-no {
    font-size: 1.4em
}

.l-project .case-list .case-title,.l-case .case-list .case-title {
    font-size: 2.8em;
    letter-spacing: 0
}

.l-project .case-list .l-btn,.l-case .case-list .l-btn {
    padding: 1.5em 0;
    font-size: 1.4em
}

@media screen and (max-width: 768px) {
    .l-project .head-area .head-text,.l-case .head-area .head-text {
        font-size:1.6em
    }

    .l-project .case-list .right.img,.l-case .case-list .right.img {
        padding-top: 2em;
        width: 100%
    }

    .l-project .case-list .case-no,.l-case .case-list .case-no {
        font-size: 1.3em
    }

    .l-project .case-list .case-title,.l-case .case-list .case-title {
        padding: .5em 0;
        font-size: 1.6em
    }

    .l-project .case-list .l-btn,.l-case .case-list .l-btn {
        padding: 1em 0;
        font-size: 1.3em
    }
}

.l-project .tag-box .in,.l-case .tag-box .in {
    display: inline-block
}

@media screen and (max-width: 768px) {
    .l-project .tag-box .in,.l-case .tag-box .in {
        display:block
    }
}

.l-project .tag-list,.l-case .tag-list {
    -webkit-flex-direction: column;
    flex-direction: column
}

.l-project .tag-list>li:not(:first-child),.l-case .tag-list>li:not(:first-child) {
    padding-top: .5em
}

.l-project .tag-list>li,.l-case .tag-list>li {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
    margin-right: 0;
    font-size: 1.4em
}

.l-project .tag-list>li .delta,.l-case .tag-list>li .delta {
    position: relative;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 1.5rem 1.5rem 1.5rem 0;
    border-color: transparent #ddd transparent transparent
}

.l-project .tag-list>li .delta:before,.l-case .tag-list>li .delta:before {
    display: inline-block;
    content: "";
    position: absolute;
    top: -1.5rem;
    left: 1px;
    z-index: 2;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 1.5rem 1.5rem 1.5rem 0;
    border-color: transparent #FFF transparent transparent
}

.l-project .tag-list>li .delta:after,.l-case .tag-list>li .delta:after {
    display: inline-block;
    content: "";
    position: absolute;
    top: 0;
    left: -1rem;
    z-index: 3;
    width: 2rem;
    height: 1px;
    background: #ddd
}

.l-project .tag-list>li .text,.l-case .tag-list>li .text {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    padding: 0 1em;
    border: 1px solid #ddd;
    border-left: 0;
    width: 100%
}

@media screen and (max-width: 768px) {
    .l-project .tag-list,.l-case .tag-list {
        -webkit-flex-direction:row;
        flex-direction: row;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        padding-bottom: 1em
    }

    .l-project .tag-list>li:not(:first-child),.l-case .tag-list>li:not(:first-child) {
        padding-top: 0
    }

    .l-project .tag-list>li,.l-case .tag-list>li {
        margin-bottom: .5em;
        margin-right: 2em;
        font-size: 1.2em
    }

    .l-project .tag-list>li .delta,.l-case .tag-list>li .delta {
        position: relative;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 2rem 1.5rem 2rem 0;
        border-color: transparent #ddd transparent transparent
    }

    .l-project .tag-list>li .delta:before,.l-case .tag-list>li .delta:before {
        display: inline-block;
        content: "";
        position: absolute;
        top: -2rem;
        left: 1px;
        z-index: 2;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 2rem 1.5rem 2rem 0;
        border-color: transparent #FFF transparent transparent
    }

    .l-project .tag-list>li .delta:after,.l-case .tag-list>li .delta:after {
        display: inline-block;
        content: "";
        position: absolute;
        top: 0;
        left: -1rem;
        z-index: 3;
        width: 2rem;
        height: 1px;
        background: #ddd
    }

    .l-project .tag-list>li .text,.l-case .tag-list>li .text {
        width: auto
    }
}

.l-case .case-sec {
    padding-top: 0
}

.l-case .case-title {
    line-height: 1.5
}

.l-case .case-title .sub {
    display: inline-block;
    padding-bottom: 1em;
    font-size: .7em;
    letter-spacing: 0
}

.l-case .case-title .sub:before,.l-case .case-title .sub:after {
    content: "-";
    display: inline-block
}

.l-case .block-bottom {
    padding-bottom: 5rem
}

.l-case .small-sec {
    padding-top: 5rem;
    padding-bottom: 5rem
}

.l-case .case-list {
    -webkit-align-items: stretch;
    align-items: stretch
}

.l-case .case-list .left {
    -webkit-justify-content: flex-start;
    justify-content: flex-start
}

.l-case .case-list .right.text {
    width: 72rem;
    font-size: 1.4em;
    line-height: 2
}

.l-case .case-list .right.text p:not([class]):not(:last-child) {
    margin-bottom: 2em
}

.l-case .case-list .case-title {
    font-size: 2em;
    letter-spacing: .25em
}

.l-case .case-list .case-sub {
    padding-top: .5em;
    font-size: 1.4em;
    color: #999
}

.l-case .case-link .head {
    padding-bottom: .5em;
    font-size: 1.6em;
    font-weight: 700;
    border-bottom: 1px solid #ddd
}

.l-case .case-link .link-list {
    padding-top: 4em
}

.l-case .case-link .link-list a {
    display: block;
    color: inherit;
    text-decoration: none
}

.l-case .case-link .link-list a .sub {
    padding: 1em 0;
    font-size: 1.4em
}

.l-case .case-link .link-list a .main {
    font-size: 1.4em;
    font-weight: 700;
    line-height: 2
}

@media screen and (max-width: 768px) {
    .l-case .block-bottom {
        padding-bottom:2.5rem
    }

    .l-case .small-sec {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem
    }

    .l-case .case-list {
        -webkit-align-items: stretch;
        align-items: stretch
    }

    .l-case .case-list .left {
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: center;
        align-items: center;
        -webkit-justify-content: space-between;
        justify-content: space-between;
        -webkit-flex-direction: row;
        flex-direction: row;
        padding-bottom: 1em
    }

    .l-case .case-list .right.text {
        width: 100%;
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-case .case-list .right.text p:not([class]):not(:last-child) {
        margin-bottom: 1em
    }

    .l-case .case-list .case-title {
        font-size: 1.8em;
        letter-spacing: .05em
    }

    .l-case .case-list .case-sub {
        padding-top: 0;
        font-size: 1.4em
    }

    .l-case .case-link {
        padding-bottom: 0
    }

    .l-case .case-link .head {
        padding-bottom: .5em;
        font-size: 1.4em
    }

    .l-case .case-link .link-list {
        padding-top: 3em;
        padding-bottom: 2.5em
    }

    .l-case .case-link .link-list a .sub {
        padding: .5em 0;
        font-size: 1.4em
    }

    .l-case .case-link .link-list a .main {
        font-size: 1.4em;
        line-height: 1.5
    }

    .l-case .case-link .link-list a .link-img {
        width: 100%
    }

    .l-case .case-link .link-list a .link-img img {
        width: 100%
    }

    .l-case .case-link .link-list>li:not(:first-child) {
        margin-top: 3em
    }
}

.l-case .tag-list {
    -webkit-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap
}

.l-case .tag-list>li:not(:first-child) {
    padding-top: 0
}

.l-case .tag-list>li {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
    margin-top: 0;
    margin-right: 3em;
    font-size: 1.6em
}

.l-case .tag-list>li .delta {
    position: relative;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 2.5rem 2rem 2.5rem 0;
    border-color: transparent #ddd transparent transparent
}

.l-case .tag-list>li .delta:before {
    display: inline-block;
    content: "";
    position: absolute;
    top: -2.5rem;
    left: 1px;
    z-index: 2;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 2.5rem 2rem 2.5rem 0;
    border-color: transparent #FFF transparent transparent
}

.l-case .tag-list>li .delta:after {
    display: inline-block;
    content: "";
    position: absolute;
    top: 0;
    left: -1.5rem;
    z-index: 3;
    width: 3rem;
    height: 1px;
    background: #ddd
}

.l-case .tag-list>li .text {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    padding: 0 1em;
    border: 1px solid #ddd;
    border-left: 0
}

@media screen and (max-width: 768px) {
    .l-case .tag-list {
        padding-bottom:0
    }

    .l-case .tag-list>li {
        margin-bottom: .5em;
        font-size: 1.2em
    }

    .l-case .tag-list>li .delta {
        position: relative;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 2rem 1.5rem 2rem 0;
        border-color: transparent #ddd transparent transparent
    }

    .l-case .tag-list>li .delta:before {
        display: inline-block;
        content: "";
        position: absolute;
        top: -2rem;
        left: 1px;
        z-index: 2;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 2rem 1.5rem 2rem 0;
        border-color: transparent #FFF transparent transparent
    }

    .l-case .tag-list>li .delta:after {
        display: inline-block;
        content: "";
        position: absolute;
        top: 0;
        left: -1rem;
        z-index: 3;
        width: 2rem;
        height: 1px;
        background: #ddd
    }
}

body.blur {
    height: 100%;
    overflow-y: hidden
}

body.blur>*:not(.mfp-wrap) {
    -webkit-filter: blur(5px);
    -moz-filter: blur(5px);
    -ms-filter: blur(5px);
    filter: blur(5px)
}

body .mfp-bg {
    background: rgba(255,255,255,0.7)
}

body .mfp-close-btn-in .mfp-close {
    position: static;
    display: inline-block;
    padding-bottom: 1em;
    width: auto;
    height: auto;
    opacity: 1;
    font-family: inherit;
    color: #000;
    font-size: 1.2rem
}

body .mfp-close-btn-in .mfp-close .icon {
    margin-right: .5em
}

body .mfp-wrap {
    padding: 2em
}

body .mfp-container {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    width: 100%;
    height: 100%
}

body .mfp-content {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center
}

body .mag-modal {
    position: relative;
    width: 90vw;
    max-width: 840px
}

body .mag-modal .btn {
    text-align: right
}

body .mag-modal .box {
    padding: 6rem;
    border: 1px solid #ddd;
    max-height: 90vh;
    overflow-y: scroll;
    background: #FFF
}

body .mag-modal .box .data {
    padding: 3em 0;
    color: #000
}

body .mag-modal .box .pos {
    font-size: 1.4rem;
    line-height: 2
}

body .mag-modal .box .name {
    font-size: 1.4rem;
    line-height: 2
}

body .mag-modal .box .head {
    padding-bottom: 1em;
    font-size: 1.8rem;
    font-weight: 700
}

body .mag-modal .box .text {
    font-size: 1.4rem;
    line-height: 2
}

body .mag-modal .box .space {
    margin: 3rem 0;
    width: 3rem;
    height: 1px;
    background: #ddd
}

@media screen and (max-width: 768px) {
    body .mfp-close-btn-in .mfp-close {
        padding:.5em 0;
        font-size: 1.2rem;
        line-height: 1
    }

    body .mfp-close-btn-in .mfp-close .icon {
        margin-right: .5em
    }

    body .mfp-wrap {
        padding: 2em
    }

    body .mag-modal {
        position: relative;
        width: 95vw;
        max-width: 100%
    }

    body .mag-modal .box {
        padding: 2rem 6.25%;
        max-height: 80vh
    }

    body .mag-modal .box .data {
        padding: 1.5em 0;
        color: #000
    }

    body .mag-modal .box .pos {
        font-size: 1.2rem;
        line-height: 2
    }

    body .mag-modal .box .name {
        font-size: 1.2rem;
        line-height: 2
    }

    body .mag-modal .box .head {
        padding-bottom: .5em;
        font-size: 1.6rem
    }

    body .mag-modal .box .text {
        font-size: 1.2rem;
        line-height: 2
    }

    body .mag-modal .box .space {
        margin: 1.5rem 0;
        width: 3rem
    }
}

.l-member .intro {
    padding-bottom: 10rem;
    font-size: 1.4em;
    line-height: 2
}

.l-member .member-list {
    padding-bottom: 15em;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap
}

.l-member .member-list>li {
    width: 40%
}

.l-member .member-list>li:nth-child(n+3) {
    padding-top: 10em
}

.l-member .member-list a {
    position: relative;
    display: block;
    text-decoration: none;
    color: inherit
}

.l-member .member-list a img {
    width: 100%
}

.l-member .member-list a .data {
    padding-top: 3em
}

.l-member .member-list a .data .pos {
    font-size: 1.4em;
    line-height: 2
}

.l-member .member-list a .data .name {
    font-size: 1.4em
}

.l-member .member-list a .arrow {
    transition-duration: .2s;
    display: inline-block;
    position: absolute;
    right: 0;
    bottom: 1em;
    margin-top: -5px;
    z-index: 3;
    width: 40px;
    height: 1px;
    background: #aaa
}

@media screen and (max-width: 768px) {
    .l-member .member-list a .arrow {
        width:25px
    }
}

.l-member .member-list a .arrow:before,.l-member .member-list a .arrow:after {
    display: inline-block;
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    background: #aaa;
    width: 30%;
    height: 1px;
    transform-origin: 100% 100%
}

.l-member .member-list a .arrow:before {
    transform: rotate(-45deg)
}

.l-member .member-list a .arrow:after {
    transform: rotate(45deg)
}

.l-member .member-list a:hover .arrow {
    right: -.5em
}

@media screen and (max-width: 768px) {
    .l-member .title {
        padding:5em 3.125% 7em
    }

    .l-member .intro {
        padding-bottom: 5rem;
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-member .member-list {
        border-bottom: 1px solid #ddd;
        padding: 0 6.25% 5em
    }

    .l-member .member-list>li {
        width: 100%
    }

    .l-member .member-list>li:nth-child(n+2),.l-member .member-list>li:nth-child(n+3) {
        padding-top: 3em
    }

    .l-member .member-list a {
        position: relative;
        display: block;
        width: 100%;
        text-decoration: none;
        color: inherit
    }

    .l-member .member-list a .link-img {
        width: 100%
    }

    .l-member .member-list a img {
        width: 100%
    }

    .l-member .member-list a .data {
        padding-top: 1em
    }

    .l-member .member-list a .data .pos {
        font-size: 1.2em;
        line-height: 2
    }

    .l-member .member-list a .data .name {
        font-size: 1em
    }
}

.l-career .page-head {
    font-size: 2rem
}

.l-career .sec .text {
    font-size: 1.4em
}

@media screen and (min-width: 769px) {
    .l-career .sec .left {
        width:100%
    }
}

.l-career .flow-table .serif {
    font-family: "YuGothic","游ゴシック","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","Meiryo","メイリオ","sans-serif"
}

.l-career .flow-table table {
    border-top: 1px solid #ddd;
    border-right: 1px solid #ddd
}

.l-career .flow-table table tr {
    position: relative;
    border-bottom: 1px solid #ddd;
    border-left: 8px solid #ddd
}

.l-career .flow-table table tr:nth-child(2) {
    border-left-color: #bbb
}

.l-career .flow-table table tr:nth-child(3) {
    border-left-color: #888
}

.l-career .flow-table table tr:nth-child(4) {
    border-left-color: #555
}

.l-career .flow-table table tr:nth-child(5) {
    border-left-color: #222
}

.l-career .flow-table table th {
    position: relative;
    z-index: 1;
    padding: 1em;
    width: 30rem;
    font-size: 1.8em;
    font-weight: 700;
    text-align: center
}

.l-career .flow-table table th .arrow-wrap {
    position: absolute;
    left: 0;
    bottom: -.5em;
    z-index: 3;
    margin-bottom: -1.5rem;
    width: 100%;
    text-align: center
}

.l-career .flow-table table th .arrow {
    transition-duration: .2s;
    display: inline-block;
    position: relative;
    width: 1px;
    height: 3rem;
    background: #aaa
}

.l-career .flow-table table th .arrow:before,.l-career .flow-table table th .arrow:after {
    display: inline-block;
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    background: #aaa;
    width: 1px;
    height: .5em;
    transform-origin: 100% 100%
}

.l-career .flow-table table th .arrow:before {
    transform: rotate(-45deg)
}

.l-career .flow-table table th .arrow:after {
    transform: rotate(45deg)
}

.l-career .flow-table table td {
    padding: 2.5rem 7rem 2.5rem 0;
    height: 200px
}

.l-career .flow-table table td .flow-head {
    padding-bottom: 1em;
    font-size: 1.6em;
    font-weight: 700;
    letter-spacing: .05em
}

.l-career .flow-table table td .flow-text {
    font-size: 1.4em;
    line-height: 2
}

.l-career .training-box {
    padding: 9rem 8rem;
    background: #f5f5f5
}

.l-career .training-box.block-bottom {
    margin-bottom: 5rem
}

.l-career .training-box .block-bottom {
    margin-bottom: 5rem
}

.l-career .training-box .box-head {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: flex-end;
    align-items: flex-end;
    padding-bottom: 5em
}

.l-career .training-box .box-head .head-img {
    margin-right: 4em
}

.l-career .training-box .box-head .head-text {
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1
}

.l-career .training-box .in-box {
    padding: 5rem;
    border: 1px solid #ddd;
    background: #FFF
}

.l-career .training-box .skill-list {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    border-top: 1px solid #ddd;
    border-left: 1px solid #ddd
}

.l-career .training-box .skill-list>li {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    padding: 2rem;
    width: 50%;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    line-height: 1
}

.l-career .training-box .skill-list>li .no {
    display: inline-block;
    width: 2.5em;
    padding-bottom: .2em;
    font-size: 1.8em;
    line-height: 1;
    color: #999
}

.l-career .training-box .skill-list>li .skill-text {
    font-size: 1.4em;
    letter-spacing: 0
}

.l-career .training-box .skill-list>li .skill-text.hold {
    display: inline-block;
    width: 20rem
}

.l-career .training-box .skill-list.advance>li {
    width: 100%;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    line-height: 1.5
}

.l-career .training-box .skill-list.advance>li .no {
    padding-right: 1em;
    font-size: 1.8em;
    color: #999
}

.l-career .training-box .skill-list.advance>li .bar {
    display: inline-block;
    margin: 0 2em;
    width: 2em;
    height: 1px;
    background: #ddd;
    vertical-align: middle
}

.l-career .training-box .skill-list.base>li .no {
    padding-right: 1em;
    font-size: 1.8em;
    color: #999
}

.l-career .training-box .skill-list.base>li .skill-text {
    min-width: 0
}

.l-career .training-box .skill-list.base>li .bar {
    margin: 0 2em 0 0
}

.l-career .route {
    padding: 20em 0
}

.l-career .route .head {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
    padding-bottom: 4em
}

.l-career .route .head .left {
    font-size: 1.4em;
    font-weight: 700;
    letter-spacing: .05em
}

.l-career .route .head .right {
    font-size: 1.2em;
    color: #999
}

.l-career .route .route-list {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap
}

.l-career .route .route-list>li {
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    padding: 1em 0;
    width: 48%;
    font-size: 1.4em;
    letter-spacing: 0
}

.l-career .route .route-list>li:nth-child(n+3) {
    border-top: 0
}

.l-career .more {
    display: block;
    margin-top: 5rem;
    margin-bottom: 10rem;
    position: relative
}

.l-career .more .l-btn {
    position: absolute;
    left: 0;
    bottom: -2em;
    z-index: 2;
    padding: 1.5em;
    width: 300px;
    font-size: 1.6em
}

.l-career .more .l-btn .arrow {
    right: 1em
}

.l-career .more:hover .l-btn .arrow {
    right: .5em
}

@media screen and (max-width: 768px) {
    .l-career .page-head {
        font-size:2rem
    }

    .l-career .sec .text {
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-career .flow-table table tr {
        border-left: 4px solid #ddd
    }

    .l-career .flow-table table th {
        position: static;
        z-index: 1;
        padding: 1.5em 6.25% 0;
        width: 100%;
        font-size: 1.8em;
        letter-spacing: .05em;
        text-align: left
    }

    .l-career .flow-table table th .arrow-wrap {
        position: absolute;
        left: 0;
        bottom: -.5em;
        z-index: 3;
        margin-bottom: -1.5rem;
        width: 100%;
        text-align: center
    }

    .l-career .flow-table table th .arrow {
        transition-duration: .2s;
        display: inline-block;
        position: relative;
        width: 1px;
        height: 3rem;
        background: #aaa
    }

    .l-career .flow-table table th .arrow:before,.l-career .flow-table table th .arrow:after {
        display: inline-block;
        content: "";
        position: absolute;
        right: 0;
        bottom: 0;
        background: #aaa;
        width: 1px;
        height: .5em;
        transform-origin: 100% 100%
    }

    .l-career .flow-table table th .arrow:before {
        transform: rotate(-45deg)
    }

    .l-career .flow-table table th .arrow:after {
        transform: rotate(45deg)
    }

    .l-career .flow-table table td {
        padding: 1em 6.25% 2em;
        height: auto
    }

    .l-career .flow-table table td .flow-head {
        padding-bottom: .5em;
        font-size: 1.6em;
        text-align: left
    }

    .l-career .flow-table table td .flow-text {
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-career .training-box {
        padding: 2rem 6.25%
    }

    .l-career .training-box.block-bottom,.l-career .training-box .block-bottom {
        margin-bottom: 5rem
    }

    .l-career .training-box .box-head {
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: flex-end;
        align-items: flex-end;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        padding-bottom: 2em
    }

    .l-career .training-box .box-head .head-img {
        width: 50%;
        margin-right: 2em;
        padding-bottom: 1em
    }

    .l-career .training-box .box-head .head-text {
        width: 100%;
        font-size: 1.4rem
    }

    .l-career .training-box .in-box {
        padding: 2.5rem 6.25%;
        background: #FFF
    }

    .l-career .training-box .skill-list {
        -webkit-align-items: flex-start;
        align-items: flex-start;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        border-top: 1px solid #ddd;
        border-left: 1px solid #ddd
    }

    .l-career .training-box .skill-list>li {
        -webkit-align-self: flex-start;
        align-self: flex-start;
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: center;
        align-items: center;
        padding: 1rem 3.125%;
        width: 100%;
        border-bottom: 1px solid #ddd;
        border-right: 1px solid #ddd;
        line-height: 1
    }

    .l-career .training-box .skill-list>li .no {
        -webkit-align-self: flex-start;
        align-self: flex-start;
        padding-right: .5em;
        font-size: 1.6em
    }

    .l-career .training-box .skill-list>li .skill-text {
        font-size: 1.3em;
        letter-spacing: 0;
        line-height: 1.5
    }

    .l-career .training-box .skill-list.advance>li {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        line-height: 1.5
    }

    .l-career .training-box .skill-list.advance>li .flex-list {
        -webkit-align-items: flex-start;
        align-items: flex-start
    }

    .l-career .training-box .skill-list.advance>li .skill-text {
        width: 100%;
        min-width: 0
    }

    .l-career .training-box .skill-list.advance>li .bar {
        display: none
    }

    .l-career .training-box .skill-list.advance>li .no {
        -webkit-align-self: flex-start;
        align-self: flex-start
    }

    .l-career .training-box .skill-list.base>li .flex-list {
        -webkit-align-items: center;
        align-items: center
    }

    .l-career .training-box .skill-list.base>li .flex-list>li:first-child {
        -webkit-align-self: flex-start;
        align-self: flex-start
    }

    .l-career .training-box .skill-list.base>li .skill-text {
        min-width: 0
    }

    .l-career .training-box .skill-list.base>li .bar {
        margin: 0 2em 0 0
    }

    .l-career .route {
        padding: 10em 6.25%
    }

    .l-career .route .head {
        padding-bottom: 2em
    }

    .l-career .route .head .left {
        font-size: 1.6em;
        font-weight: 700
    }

    .l-career .route .head .right {
        font-size: 1.2em;
        color: #999
    }

    .l-career .route .route-list {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap
    }

    .l-career .route .route-list>li {
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        padding: 1em 0;
        width: 100%;
        font-size: 1.4em;
        letter-spacing: 0
    }

    .l-career .route .route-list>li:nth-child(n+2) {
        border-top: 0
    }

    .l-career .more {
        display: block;
        margin-top: 2.5rem;
        margin-bottom: 5rem;
        position: relative
    }

    .l-career .more .l-btn {
        bottom: -1.5em;
        padding: 1em;
        width: 80%;
        font-size: 1.4em
    }

    .l-career .more .l-btn .arrow {
        right: 1em
    }
}

@media screen and (min-width: 769px) {
    .l-alumni .sec {
        padding:10em 0
    }
}

@media screen and (max-width: 768px) {
    .l-alumni .sec {
        padding:3em 0
    }
}

@media screen and (min-width: 769px) {
    .l-alumni .head-area .head-text {
        padding:5em 0 0;
        width: 100%
    }

    .l-alumni .head-area .talk-text {
        padding-top: 4em;
        font-size: 1.4em
    }
}

@media screen and (max-width: 768px) {
    .l-alumni .head-area .head-text {
        padding:3rem 0 0
    }

    .l-alumni .head-area .talk-text {
        padding-top: 2em;
        font-size: 1.2em
    }
}

.l-alumni .intro .intro-head {
    padding-bottom: .5em;
    font-size: 4.2em;
    font-weight: 700
}

.l-alumni .intro .intro-sub {
    padding-bottom: 10rem;
    font-size: 1.6em;
    font-weight: 700
}

.l-alumni .intro .intro-text {
    padding-bottom: 8rem;
    font-size: 1.4em;
    line-height: 2
}

.l-alumni .cast-list>li {
    width: 31%
}

.l-alumni .cast-list .data {
    padding: 4.5rem 0;
    font-size: 1.4em;
    line-height: 2
}

.l-alumni .cast-list .data .ruby {
    letter-spacing: .2em
}

.l-alumni .cast-list .text {
    font-size: 1.2em
}

.l-alumni .talk-list .left {
    width: 20%
}

.l-alumni .talk-list .left.cast {
    padding-bottom: 1em
}

.l-alumni .talk-list .right {
    width: 80%
}

.l-alumni .talk-list .cast-box {
    display: inline-block
}

.l-alumni .talk-list .cast-box .img {
    margin-bottom: 1em;
    overflow: hidden;
    border-radius: 50%
}

.l-alumni .talk-list .cast-box .name {
    font-size: 1.4em;
    text-align: center
}

.l-alumni .talk-list .talk-head {
    padding-bottom: 4rem;
    font-size: 3.2em;
    font-weight: 700
}

.l-alumni .talk-list .talk-sub {
    padding-bottom: 4rem;
    font-size: 1.8em;
    font-weight: 700
}

.l-alumni .talk-list .talk-text {
    font-size: 1.4em;
    line-height: 2
}

.l-alumni .talk-list .talk-note {
    padding-top: 3rem;
    font-size: 1.2em;
    line-height: 2
}

.l-alumni .talk-list .talk-img {
    padding-top: 3rem
}

@media screen and (max-width: 768px) {
    .l-alumni .intro .intro-head {
        padding-bottom:.5em;
        font-size: 2em
    }

    .l-alumni .intro .intro-sub {
        padding-bottom: 2.5rem;
        font-size: 1.4em
    }

    .l-alumni .intro .intro-text {
        padding-bottom: 2rem;
        font-size: 1.4em
    }

    .l-alumni .cast-list>li {
        width: 100%
    }

    .l-alumni .cast-list>li:not(:first-child) {
        padding-top: 2em
    }

    .l-alumni .cast-list .img img {
        width: 100%
    }

    .l-alumni .cast-list .data {
        padding: 1.5rem 0;
        font-size: 1.3em
    }

    .l-alumni .cast-list .text {
        font-size: 1.2em
    }

    .l-alumni .space {
        width: 20%
    }

    .l-alumni .talk-list .left {
        width: 100%
    }

    .l-alumni .talk-list .left.cast {
        text-align: center
    }

    .l-alumni .talk-list .right {
        width: 100%
    }

    .l-alumni .talk-list .cast-box {
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: center;
        align-items: center
    }

    .l-alumni .talk-list .cast-box .img {
        margin-bottom: 1em;
        max-width: 20%
    }

    .l-alumni .talk-list .cast-box .name {
        padding-left: 1.5em;
        font-size: 1.6em
    }

    .l-alumni .talk-list .talk-head {
        padding-bottom: 2rem;
        font-size: 1.8em
    }

    .l-alumni .talk-list .talk-sub {
        padding-bottom: 2rem;
        font-size: 1.4em
    }

    .l-alumni .talk-list .talk-text {
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-alumni .talk-list .talk-note {
        padding-top: 1.5rem;
        font-size: 1.2em;
        line-height: 1.7
    }

    .l-alumni .talk-list .talk-img {
        padding-top: 1.5rem
    }
}

.l-information .head {
    padding-bottom: 5rem;
    font-size: 1.8em;
    font-weight: 700;
    letter-spacing: .05em
}

.l-information .sec {
    padding-top: 0
}

.l-information .info-table table {
    border-top: 1px solid #ddd
}

.l-information .info-table table tr {
    border-bottom: 1px solid #ddd;
    font-size: 1.4em;
    line-height: 2
}

.l-information .info-table table th,.l-information .info-table table td {
    padding: 1em 1em 1em 0
}

.l-information .info-table table th {
    width: 240px;
    vertical-align: top
}

@media screen and (max-width: 768px) {
    .l-information .head {
        padding-bottom:2.5rem;
        font-size: 1.6em
    }

    .l-information .info-table table tr {
        font-size: 1.3em;
        line-height: 1.7
    }

    .l-information .info-table table th,.l-information .info-table table td {
        padding: 1em 0
    }

    .l-information .info-table table th {
        padding-bottom: 0;
        width: 100%;
        font-weight: 700
    }

    .l-information .info-table table td {
        padding-top: .5em
    }
}

/*# sourceMappingURL=style.css.map */


.projectbtn .arrow{
    right: 1em;
}
.projectbtn:hover .arrow{
    right: 0.5em;
}