#f .contact strong span i,#f .next .center .align p,#f .next .center .align strong,#h .detail-head span i,#h .detail-head.is-short:before,#h .head span i,#menu .blog a,#menu .blog strong,#menu .contact strong span i,#modal p,.btn-contact span,.copy,.en,.page-company #l-img h2,.page-company .s1 .t2,.page-company .s2 .flex,.page-company .s3 .flex .t-en,.page-contact .s1 h2 span,.page-contact .wrap .in #confirm,.page-contact .wrap .in #edit,.page-contact .wrap .in #submit,.page-contact .wrap .in .row.basic .require i,.page-contact .wrap .in .row.radio .cell .radio-input+label i,.page-contact .wrap strong,.page-contact .wrap.thanks a,.page-contact .wrap.thanks h2 span,.page-service #l-img h2,.page-service .s1 .t2,.page-service .s2 .flex .cell .ico span,.page-service .s2 .lang span,.page-service .s3 #slider-nav-area #slide-nums span,.page-service .s3 #slider-nav-area #slider-cat strong i,.page-service .s3 #slider-nav-area #slider-ttl strong em i,.page-service .s3 .slide-nav span,.page-service .s4 .flex .cell i,.page-service .s4 .flex .cell span,.page-service .s4 .flex .cell strong,.page-service .s5 .flex .cell i,.page-service .s5 .flex .cell span,.page-service .s5 .flex .cell strong,.page-top #top-video #mv-t-box #mv-num-box span,.page-top #top-video .scroll,.page-top .s2 .works-cell .num,.page-top .s2 .works-cell .tags i,.page-top .s2 h4,.page-top .s2 small,.page-works .s1 .btn-more p i,.page-works .s1 h2 span,.page-works-detail .s1 .pagenation .next span i,.page-works-detail .s1 .pagenation .prev span i,.page-works-detail .s1 .t-box .detail a,.page-works-detail .s1 .t-box .flex .in p,.page-works-detail .s1 .t-box .flex .in span,.page-works-detail .s1 .t-box h1,.works-list .cell strong{
    font-family: 'DM Sans',a-otf-midashi-go-mb31-pr6n,'Yu Gothic',YuGothic,sans-serif;
    font-weight: 700
}


* {
    word-wrap: break-word;
    -webkit-text-size-adjust: none;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
    outline: 0!important;
    font-feature-settings: 'palt'
}

abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,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,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: 0 0;
    border: 0;
    outline: 0
}

article,aside,details,em,figcaption,figure,footer,header,hgroup,menu,nav,section,strong {
    font-style: normal;
    display: block
}

nav ul {
    list-style: none
}

blockquote,q {
    quotes: none
}

span {
    display: block
}

q:after,q:before {
    content: '';
    content: none
}

img {
    width: 100%;
    vertical-align: bottom
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    text-decoration: none;
    display: block;
    cursor: pointer;
    color: #000;
    background: 0 0;
    -webkit-transition: all .6s;
    transition: all .6s
}

@media screen and (min-width: 768px) {
    a:hover {
        opacity:.6
    }
}

ins {
    text-decoration: none;
    color: #000;
    background-color: #ff9
}

mark {
    font-weight: 700;
    font-style: italic;
    color: #000;
    background-color: #ff9
}

del {
    text-decoration: line-through
}

svg {
    width: 100%;
    height: 100%
}

i {
    font-style: normal;
    display: block
}

abbr[title],dfn[title] {
    cursor: help;
    border-bottom: 1px dotted
}

table {
    border-spacing: 0;
    border-collapse: collapse
}

hr {
    height: 1px;
    margin: 1em 0;
    padding: 0;
    display: block;
    border: 0;
    border-top: 1px solid #ccc
}

input,select {
    vertical-align: middle;
    -moz-appearance: none;
    -webkit-appearance: none
}

textarea {
    outline: 0;
    resize: none;
    width: 100%;
    min-height: 300px;
    padding: 10px
}

.swiper-container {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    list-style: none;
    padding: 0;
    z-index: 1
}

.swiper-container-vertical>.swiper-wrapper {
    flex-direction: column
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box
}

.swiper-container-android .swiper-slide,.swiper-wrapper {
    transform: translate3d(0,0,0)
}

.swiper-container-multirow>.swiper-wrapper {
    flex-wrap: wrap
}

.swiper-container-multirow-column>.swiper-wrapper {
    flex-wrap: wrap;
    flex-direction: column
}

.swiper-container-free-mode>.swiper-wrapper {
    transition-timing-function: ease-out;
    margin: 0 auto
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform
}

.swiper-slide-invisible-blank {
    visibility: hidden
}

.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide {
    height: auto
}

.swiper-container-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform,height
}

.swiper-container-3d {
    perspective: 1200px
}

.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper {
    transform-style: preserve-3d
}

.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10
}

.swiper-container-3d .swiper-slide-shadow-left {
    background-image: linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))
}

.swiper-container-3d .swiper-slide-shadow-right {
    background-image: linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))
}

.swiper-container-3d .swiper-slide-shadow-top {
    background-image: linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))
}

.swiper-container-3d .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))
}

.swiper-container-css-mode>.swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar {
    display: none
}

.swiper-container-css-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: start start
}

.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper {
    scroll-snap-type: x mandatory
}

.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper {
    scroll-snap-type: y mandatory
}

:root {
    --swiper-navigation-size: 44px
}

.swiper-button-prev,.swiper-container-rtl .swiper-button-next {
    left: 10px;
    right: auto
}

.swiper-button-next,.swiper-container-rtl .swiper-button-prev {
    right: 10px;
    left: auto
}

.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white {
    --swiper-navigation-color: #ffffff
}

.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black {
    --swiper-navigation-color: #000000
}

.swiper-button-lock {
    display: none
}

.swiper-pagination {
    position: absolute;
    text-align: center;
    transition: .3s opacity;
    transform: translate3d(0,0,0);
    z-index: 10
}

.swiper-pagination.swiper-pagination-hidden {
    opacity: 0
}

.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction {
    bottom: 10px;
    left: 0;
    width: 100%
}

.swiper-pagination-bullets-dynamic {
    overflow: hidden;
    font-size: 0
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transform: scale(.33);
    position: relative
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
    transform: scale(1)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
    transform: scale(1)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
    transform: scale(.66)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
    transform: scale(.33)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
    transform: scale(.66)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
    transform: scale(.33)
}

.swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    display: inline-block;
    border-radius: 100%;
    background: #000;
    opacity: .2
}

button.swiper-pagination-bullet {
    border: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

.swiper-pagination-clickable .swiper-pagination-bullet {
    cursor: pointer
}

.swiper-pagination-bullet-active {
    opacity: 1;
    background: var(--swiper-pagination-color,var(--swiper-theme-color))
}

.swiper-container-vertical>.swiper-pagination-bullets {
    right: 10px;
    top: 50%;
    transform: translate3d(0,-50%,0)
}

.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 6px 0;
    display: block
}

.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px
}

.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    display: inline-block;
    transition: .2s transform,.2s top
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 4px
}

.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap
}

.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: .2s transform,.2s left
}

.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: .2s transform,.2s right
}

.swiper-pagination-progressbar {
    background: rgba(0,0,0,.25);
    position: absolute
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color,var(--swiper-theme-color));
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: scale(0);
    transform-origin: left top
}

.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    transform-origin: right top
}

.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
    width: 100%;
    height: 4px;
    left: 0;
    top: 0
}

.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar {
    width: 4px;
    height: 100%;
    left: 0;
    top: 0
}

.swiper-pagination-white {
    --swiper-pagination-color: #ffffff
}

.swiper-pagination-black {
    --swiper-pagination-color: #000000
}

.swiper-pagination-lock {
    display: none
}

.swiper-scrollbar {
    border-radius: 10px;
    position: relative;
    -ms-touch-action: none;
    background: rgba(0,0,0,.1)
}

.swiper-container-horizontal>.swiper-scrollbar {
    position: absolute;
    left: 1%;
    bottom: 3px;
    z-index: 50;
    height: 5px;
    width: 98%
}

.swiper-container-vertical>.swiper-scrollbar {
    position: absolute;
    right: 3px;
    top: 1%;
    z-index: 50;
    width: 5px;
    height: 98%
}

.swiper-scrollbar-drag {
    height: 100%;
    width: 100%;
    position: relative;
    background: rgba(0,0,0,.5);
    border-radius: 10px;
    left: 0;
    top: 0
}

.swiper-scrollbar-cursor-drag {
    cursor: move
}

.swiper-scrollbar-lock {
    display: none
}

.swiper-zoom-container {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center
}

.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain
}

.swiper-slide-zoomed {
    cursor: move
}

.swiper-lazy-preloader {
    width: 42px;
    height: 42px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -21px;
    margin-top: -21px;
    z-index: 10;
    transform-origin: 50%;
    animation: swiper-preloader-spin 1s infinite linear;
    box-sizing: border-box;
    border: 4px solid var(--swiper-preloader-color,var(--swiper-theme-color));
    border-radius: 50%;
    border-top-color: transparent
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    100% {
        transform: rotate(360deg)
    }
}

.swiper-container .swiper-notification {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    opacity: 0;
    z-index: -1000
}

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
    transition-timing-function: ease-out
}

.swiper-container-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity
}

.swiper-container-fade .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-container-cube {
    overflow: visible
}

.swiper-container-cube .swiper-slide {
    pointer-events: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1;
    visibility: hidden;
    transform-origin: 0 0;
    width: 100%;
    height: 100%
}

.swiper-container-cube .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-cube.swiper-container-rtl .swiper-slide {
    transform-origin: 100% 0
}

.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev {
    pointer-events: auto;
    visibility: visible
}

.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top {
    z-index: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.swiper-container-cube .swiper-cube-shadow {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: .6;
    -webkit-filter: blur(50px);
    filter: blur(50px);
    z-index: 0
}

.swiper-container-flip {
    overflow: visible
}

.swiper-container-flip .swiper-slide {
    pointer-events: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1
}

.swiper-container-flip .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top {
    z-index: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

::-moz-selection {
    color: #191a1b;
    background: #f5f4ef
}

::selection {
    color: #191a1b;
    background: #f5f4ef
}

.comp {
    position: absolute;
    top: -70px;
    left: 0;
    z-index: 1000;
    pointer-events: none;
    opacity: .4
}

@media screen and (min-width: 768px) {
    .pc-none {
        display:none!important
    }
}

@media screen and (max-width: 768px) {
    .sp-none {
        display:none!important
    }
}

.hidden {
    overflow: hidden
}

.no-link {
    pointer-events: none!important
}

.s-in.fade {
    opacity: 0;
    transform: translateX(0) translateY(80px) translateZ(0)
}

.s-in.fade.is-in {
    transition: transform .8s,opacity .8s;
    opacity: 1;
    transform: translateX(0) translateY(0) translateZ(0)
}

.s-in.ttl {
    overflow: hidden
}

.s-in.ttl.is-in span {
    transition: transform 1.4s;
    transform: translateX(0) translateY(0) translateZ(0)
}

.s-in.ttl span {
    transform: translateX(0) translateY(100%) translateZ(0)
}

#load {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 100;
    pointer-events: none
}

#load .logo {
    position: absolute;
    width: 59px;
    height: 33px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    z-index: 1;
    opacity: 0;
    transform: translateX(0) translateY(0) translateZ(0) scale(1.1)
}
.wenan{
	padding: 215px 15.5%;
}
@media screen and (min-width: 768px) {
    #load .logo {
        width:78px;
        height: 43px
    }
}

#load #load-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

body,html {
    width: 100%;
    height: 100%;
    font-family:"SOURCEHANSANSCN";
    font-size: 62.5%;
    font-weight: 400;
    line-height: 1.5;
    color: #000;
    transition: background .2s;
    background: #191a1b
}

@media screen and (max-width: 768px) {
    body,html {
        overflow:hidden
    }
}

.scroll-cont {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    overflow-x: hidden;
    overflow-y: scroll
}

@media screen and (min-width: 768px) {
    .scroll-cont {
        overflow:hidden
    }
}

@media screen and (max-width: 768px) {
    .scroll-cont {
        height:100%;
        will-change: scroll-position;
        transform: translate3d(0,0,0)!important;
        -webkit-overflow-scrolling: touch;
        overflow-scrolling: touch
    }
}

#cursor {
    position: fixed;
    top: -70px;
    left: -50px;
    width: 100px;
    height: 100px;
    z-index: 80;
    pointer-events: none
}

#cursor span {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    background: #191a1b;
    border-radius: 100%;
    transition: transform .4s
}

#cursor span i {
    font-size: 1.5rem;
    padding: 38px 0;
    letter-spacing: 1px;
    text-align: center;
    color: #f5f4ef
}

#cursor.is-detail .detail {
    transform: translateX(0) translateY(0) translateZ(0) scale(1)
}

#cursor.is-play .play {
    transform: translateX(0) translateY(0) translateZ(0) scale(1)
}

#cursor.is-dot .dot {
    opacity: .5
}

#cursor.is-close .close {
    transform: translateX(0) translateY(0) translateZ(0) scale(1)
}

#cursor .detail {
    transform: translateX(0) translateY(0) translateZ(0) scale(0)
}

#cursor .play {
    transform: translateX(0) translateY(0) translateZ(0) scale(0)
}

#cursor .dot {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    width: 10px;
    height: 10px;
    background: #00a2ff;
    opacity: 0;
    transition: opacity .2s;
    animation: 1s steps(4,start) infinite changeColor
}

@keyframes changeColor {
    0% {
        background: #00a2ff
    }

    25% {
        background: #ffde00
    }

    50% {
        background: #ffde00
    }

    75% {
        background: #00f
    }

    100% {
        background: #0f0
    }
}

#cursor .close {
    position: absolute;
    top: 6px;
    right: 0;
    width: 86px;
    height: 86px;
    cursor: pointer;
    z-index: 10;
    background: 0 0;
    transform: translateX(0) translateY(0) translateZ(0) scale(0)
}

#cursor .close em {
    overflow: hidden;
    width: 32px;
    height: 2px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-40deg);
    background: #f5f4ef
}

@media screen and (min-width: 768px) {
    #cursor .close em {
        width:40px
    }
}

#cursor .close em:last-child {
    transform: translateX(0) translateY(0) translateZ(0) rotate(40deg)
}

.theme-black {
    background: #191a1b
}

.theme-white {
    background: #f5f4ef
}

.theme-white #p-panel {
    fill: #191a1b
}

.theme-white #h .logo svg {
    fill: #191a1b
}

.theme-white #h .link a {
    color: #191a1b
}

.theme-white #h .btn-menu span:before {
    background: #191a1b
}

.theme-white #h .btn-menu span:after {
    background: #191a1b
}

.theme-white .copy {
    color: #191a1b
}

.theme-white .btn-contact {
    color: #191a1b;
    border: 2px solid #191a1b
}

@media screen and (min-width: 768px) {
    .theme-white .btn-contact:hover {
        border:2px solid #191a1b;
        background: #191a1b
    }

    .theme-white .btn-contact:hover span {
        color: #f5f4ef
    }
}

#p-panel {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 80;
    pointer-events: none;
    fill: #191a1b
}

#h {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 60
}

#h .logo {
    position: absolute;
    top: 15px;
    left: 25px;
    width: 59px;
    height: 33px
}

@media screen and (min-width: 768px) {
    #h .logo {
        top:28px;
        left: 50px;
        width: 66px;
        height: 54px
    }
}

#h .logo span {
    display: none
}

#h .logo a {
    position: absolute;
    width: 100%;
    height: 100%
}

#h .logo a:hover {
    opacity: 1
}

#h .logo a svg {
    transition: all .3s;
    fill: #f5f4ef
}

#h .detail-head {
    position: absolute;
    width: calc(50% - 300px);
    height: 15px;
    position: absolute;
    top: 42px;
    left: 170px;
    margin: auto
}

#h .detail-head.is-short {
    overflow: hidden;
    padding-right: 6px
}

#h .detail-head.is-short:before {
    content: '...';
    font-size: 1rem;
    width: 20px;
    height: 100%;
    position: absolute;
    top: 0;
    right: -10px;
    color: rgba(245,244,239,.2)
}

#h .detail-head span {
    overflow: hidden;
    word-break: break-all;
    position: relative;
    display: inline-block
}

#h .detail-head span i {
    color: rgba(245,244,239,.2);
    font-size: 1rem
}

#h .head {
    position: absolute;
    width: 140px;
    position: absolute;
    top: 18px;
    right: 0;
    left: 0;
    margin: auto;
    text-align: center
}

@media screen and (min-width: 768px) {
    #h .head {
        top:32px;
        width: 200px
    }
}

#h .head span {
    overflow: hidden
}

#h .head span i {
    transition: transform 1s;
    transform: translateX(0) translateY(101%) translateZ(0);
    color: #f5f4ef;
    font-size: 1.8rem
}

@media screen and (min-width: 768px) {
    #h .head span i {
        font-size:2.4rem
    }
}

#h .head span i.is-in {
    transform: translateX(0) translateY(0) translateZ(0)
}

#h .head span i.force-in {
    transform: translateX(0) translateY(0) translateZ(0)!important
}

#h .link {
    font-size: 1.4rem;
    position: absolute;
    top: 10px;
    right: 11vw
}

#h .link a {
    display: none
}

@media screen and (min-width: 768px) {
    #h .link a {
        letter-spacing:1px;
        padding: 30px 18px;
        color: #f5f4ef;
        display: inline-block;
        overflow: hidden;
        position: relative
    }
}

@media screen and (min-width: 768px) {
    #h .link a:hover {
        opacity:1
    }

    #h .link a:hover i {
        opacity: 0;
        transform: translateX(0) translateY(-10px) translateZ(0)
    }

    #h .link a:hover i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

#h .link a i {
    font-style: normal;
    transition: opacity .3s,transform .3s
}

#h .link a i:last-child {
    position: absolute;
    top: 30px;
    left: 18px;
    opacity: 0;
    transform: translateX(0) translateY(20px) translateZ(0)
}

#h .btn-menu {
    position: absolute;
    top: 0;
    right: 0;
    width: 80px;
    height: 60px;
    cursor: pointer
}

@media screen and (min-width: 768px) {
    #h .btn-menu {
        top:10px;
        right: 10px;
        width: 120px;
        height: 80px
    }
}

@media screen and (min-width: 768px) {
    #h .btn-menu:hover span:after,#h .btn-menu:hover span:before {
        transform:translateX(0) translateY(0) translateZ(0) scale(0,1);
        transform-origin: top right;
        transition: background .2s,transform .6s
    }

    #h .btn-menu:hover span:last-child:after,#h .btn-menu:hover span:last-child:before {
        transform-origin: top left;
        transform: translateX(0) translateY(0) translateZ(0) scale(1,1);
        transition-delay: .1s
    }
}

#h .btn-menu span {
    width: 32px;
    height: 10px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto
}

@media screen and (min-width: 768px) {
    #h .btn-menu span {
        width:42px;
        height: 12px
    }
}

#h .btn-menu span:last-child:after,#h .btn-menu span:last-child:before {
    transform: translateX(0) translateY(0) translateZ(0) scale(0,1)
}

#h .btn-menu span:before {
    display: block;
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    top: 0;
    left: 0;
    background: #f5f4ef;
    transition: background .2s
}

#h .btn-menu span:after {
    display: block;
    content: '';
    width: 52%;
    height: 2px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: #f5f4ef;
    transition: background .2s
}

.copy {
    position: fixed;
    bottom: 22px;
    z-index: 60;
    color: #f5f4ef;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 1px
}

@media screen and (max-width: 768px) {
    .copy {
        right:24px
    }
}

@media screen and (min-width: 768px) {
    .copy {
        bottom:64px;
        left: 50px;
        font-size: 1.2rem
    }
}

.btn-contact {
    position: fixed;
    bottom: 10px;
    z-index: 60;
    color: #f5f4ef;
    border: 1px solid #f5f4ef;
    border-radius: 100px;
    padding: 10px 22px;
    transition: all .3s
}

.btn-contact.no-link {
    display: none
}

@media screen and (max-width: 768px) {
    .btn-contact {
        left:24px
    }
}

@media screen and (min-width: 768px) {
    .btn-contact {
        border:2px solid #f5f4ef;
        bottom: 54px;
        right: 50px;
        padding: 8px 35px
    }
}

@media screen and (min-width: 768px) {
    .btn-contact:hover {
        opacity:1;
        border: 2px solid #f5f4ef;
        background: #f5f4ef
    }

    .btn-contact:hover span {
        opacity: 0;
        transform: translateX(0) translateY(-10px) translateZ(0);
        color: #191a1b
    }

    .btn-contact:hover span:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

.btn-contact span {
    font-size: 1.3rem;
    letter-spacing: .2px;
    font-weight: 600;
    transition: transform .3s,opacity .3s,color .2s
}

.btn-contact span:last-child {
    position: absolute;
    top: 8px;
    left: 35px;
    opacity: 0;
    transform: translateX(0) translateY(20px) translateZ(0)
}

#menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 90;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s
}

@media screen and (min-width: 768px) {
    #menu {
        display:flex;
        align-items: center
    }
}

#menu.is-in {
    opacity: 1;
    pointer-events: visible
}

#menu .op {
    opacity: 0
}

#menu .logo {
    position: absolute;
    top: 15px;
    left: 25px;
    width: 66px;
    height: 54px;
    z-index: 1;
    transition: all 0s
}

@media screen and (min-width: 768px) {
    #menu .logo {
        top:28px;
        left: 50px;
        width: 66px;
        height: 54px
    }
}

#menu .logo a {
    position: absolute;
    width: 100%;
    height: 100%
}

#menu .logo a:hover {
    opacity: 1
}

#menu .logo a svg {
    fill: #191a1b
}

#menu .center {
    position: absolute;
    width: 100%
}

@media screen and (max-width: 768px) {
    #menu .center {
        height:100%
    }
}

@media screen and (min-width: 768px) {
    #menu .center {
        position:relative
    }
}

#menu .flex {
    position: relative;
    z-index: 1;
    padding: 80px 26px 0
}

@media screen and (min-width: 768px) {
    #menu .flex {
        display:flex;
        padding: 0 0 0 24.2%
    }
}

#menu .flex a {
    padding: 4px 0;
    position: relative;
    overflow: hidden
}

@media screen and (min-width: 768px) {
    #menu .flex a {
        padding:18px 0
    }
}

#menu .flex a:hover {
    opacity: 1
}

#menu .flex a span {
    transform: translateX(0) translateY(120%) translateZ(0);
    overflow: hidden
}

#menu .flex a span:last-child {
    position: absolute;
    top: 20px;
    left: 0
}

#menu .flex a span:last-child i {
    transform: translateX(0) translateY(101%) translateZ(0)
}

#menu .flex a span i {
    line-height: 1.2;
    display: inline-block;
    font-size: 10.8vw;
    font-weight: 700;
    letter-spacing: 4px;
    font-style: normal
}

@media screen and (min-width: 768px) {
    #menu .flex a span i {
        letter-spacing:5px;
        font-size: 5rem
    }
}

@media screen and (min-width: 768px) {
    #menu .flex .r {
        margin:80px 0 0 122px
    }
}

#menu .blog {
    position: relative;
    z-index: 1;
    padding-left: 24px;
    margin-top: 30px
}

@media screen and (max-width: 768px) {
    #menu .blog {
        width:49%;
        display: inline-block
    }
}

@media screen and (min-width: 768px) {
    #menu .blog {
        padding-left:24.2%;
        margin-top: 56px
    }
}

#menu .blog strong {
    font-size: 1.5rem
}

@media screen and (min-width: 768px) {
    #menu .blog strong {
        font-size:2rem
    }
}

#menu .blog a {
    font-size: 1.1rem;
    overflow: hidden;
    position: relative;
    display: inline-block
}

@media screen and (min-width: 768px) {
    #menu .blog a {
        font-size:1.4rem
    }
}

@media screen and (min-width: 768px) {
    #menu .blog a:hover {
        opacity:1
    }

    #menu .blog a:hover:before {
        transform: translateX(100%) translateY(0) translateZ(0);
        transition: transform 1.4s
    }
}

#menu .blog a:before {
    display: block;
    content: '';
    width: 100%;
    height: 1px;
    background: #191a1b;
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translateX(-100%) translateY(0) translateZ(0);
    transition: transform .4s
}

#menu .blog a svg {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-left: 6px
}

@media screen and (min-width: 768px) {
    #menu .blog a svg {
        width:8px;
        height: 8px;
        margin-left: 12px
    }
}

#menu .sns {
    position: relative;
    z-index: 1;
    display: inline-block;
    margin-top: 40px
}

@media screen and (max-width: 768px) {
    #menu .sns {
        width:49%;
        padding-left: 8%
    }
}

@media screen and (min-width: 768px) {
    #menu .sns {
        position:absolute;
        margin-top: 80px;
        bottom: 18px;
        left: 0;
        display: flex;
        align-items: center;
        padding-left: calc(24.2% - 10px)
    }
}

#menu .sns a {
    margin-right: 5vw;
    padding: 0 0;
    overflow: hidden;
    position: relative;
    display: inline-block
}

@media screen and (min-width: 768px) {
    #menu .sns a {
        margin-right:4vw;
        padding: 12px 0
    }
}

@media screen and (min-width: 768px) {
    #menu .sns a:hover {
        opacity:1
    }

    #menu .sns a:hover:before {
        transform: translateX(100%) translateY(0) translateZ(0);
        transition: transform 1.4s
    }
}

#menu .sns a:before {
    display: block;
    content: '';
    width: 100%;
    height: 2px;
    background: #191a1b;
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translateX(-100%) translateY(0) translateZ(0);
    transition: transform .4s
}

#menu .sns a svg {
    fill: #191a1b
}

#menu .sns .be {
    width: 21px;
    height: 21px
}

@media screen and (min-width: 768px) {
    #menu .sns .be {
        width:50px;
        height: 50px
    }
}

#menu .sns .tw {
    width: 18px;
    height: 22px
}

@media screen and (min-width: 768px) {
    #menu .sns .tw {
        width:46px;
        height: 46px
    }
}

#menu .sns .fb {
    width: 21px;
    height: 21px
}

@media screen and (min-width: 768px) {
    #menu .sns .fb {
        width:50px;
        height: 50px
    }
}

#menu .contact {
    z-index: 1;
    width: calc(100vw - 26px);
    color: #191a1b;
    transition: none;
    padding-bottom: 10px
}

@media screen and (max-width: 768px) {
    #menu .contact {
        position:absolute;
        bottom: 60px;
        right: 0
    }
}

@media screen and (min-width: 768px) {
    #menu .contact {
        position:relative;
        padding-bottom: 10px;
        width: 580px;
        margin: 72px 0 0 calc(100vw - 580px)
    }
}

#menu .contact:before {
    display: block;
    content: '';
    background: #191a1b;
    height: 3px;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: translateX(0) translateY(0) translateZ(0) scale(1,1)
}

@media screen and (min-width: 768px) {
    #menu .contact:before {
        height:4px
    }
}

#menu .contact:after {
    display: block;
    content: '';
    background: #191a1b;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: translateX(0) translateY(0) translateZ(0) scale(0,1)
}

@media screen and (min-width: 768px) {
    #menu .contact:hover {
        opacity:1
    }

    #menu .contact:hover:before {
        transform: translateX(0) translateY(0) translateZ(0) scale(0,1);
        transform-origin: top right;
        transition: transform .6s
    }

    #menu .contact:hover:after {
        transform: translateX(0) translateY(0) translateZ(0) scale(1,1);
        transform-origin: top left;
        transition: transform .6s;
        transition-delay: .1s
    }
}

#menu .contact strong {
    line-height: 1;
    position: relative
}

#menu .contact strong span {
    overflow: hidden
}

#menu .contact strong span:last-child {
    position: absolute;
    bottom: 0;
    left: 0
}

#menu .contact strong span i {
    font-style: normal;
    display: inline-block;
    font-size: 10.8vw
}

@media screen and (min-width: 768px) {
    #menu .contact strong span i {
        font-size:5.6rem
    }
}

#menu .contact p {
    position: absolute;
    font-size: 1.2rem;
    letter-spacing: 1px;
    bottom: -26px
}

@media screen and (max-width: 768px) {
    #menu .contact p {
        left:0
    }
}

@media screen and (min-width: 768px) {
    #menu .contact p {
        font-size:1.4rem;
        letter-spacing: 3px;
        bottom: 14px;
        right: 48px
    }
}

#menu #menu-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    fill: #f5f4ef;
    z-index: 0
}

#menu #close {
    position: absolute;
    top: 8px;
    right: 0;
    width: 82px;
    height: 46px;
    cursor: pointer;
    z-index: 10
}

@media screen and (min-width: 768px) {
    #menu #close {
        top:6px;
        right: 27px;
        width: 86px;
        height: 86px
    }
}

@media screen and (min-width: 768px) {
    #menu #close:hover span:after,#menu #close:hover span:before {
        transition:transform .4s
    }

    #menu #close:hover span:before {
        transform: translateX(100%) translateY(0) translateZ(0)
    }

    #menu #close:hover span:after {
        transform: translateX(0) translateY(0) translateZ(0);
        transition-delay: .1s
    }
}

#menu #close span {
    overflow: hidden;
    width: 32px;
    height: 2px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-40deg)
}

@media screen and (min-width: 768px) {
    #menu #close span {
        width:40px
    }
}

#menu #close span:last-child {
    transform: translateX(0) translateY(0) translateZ(0) rotate(40deg)
}

#menu #close span:after,#menu #close span:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    background: #191a1b;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform .4s
}

#menu #close span:after {
    transform: translateX(-100%) translateY(0) translateZ(0)
}

#f {
    position: relative;
    height: calc(100vh - 20px);
    display: flex;
    align-items: center
}

@media screen and (min-width: 768px) {
    #f {
        justify-content:center;
        height: calc(100vh + 2px);
        padding-bottom: 20px;
    }
}

#f .contact {
    position: relative;
    width: 90%;
    padding-bottom: 8px;
    color: #191a1b;
    z-index: 1
}
.foot-j{
	display: flex;
	justify-content: center;
}
@media screen and (max-width: 768px) {
    #f .contact {
        margin-left:10%
    }
}
#f h2{
	padding-right: 0;
	padding-bottom: 10px;
	font-size: 8.4rem;
	letter-spacing: 5px;
}
#f h2::before{
	display: none;
}
.foot-c{
	justify-content: center;
}
@media screen and (min-width: 768px) {
    #f .contact {
        width:600px
    }
}
.foot-w{
	padding-top: 70px;
	text-align: center;
}
.foot-w img{
	width: auto;
}
.foot-w h3{
	margin-top: 30px;
	font-size: 18px;
}
.foot-w p{
	margin-top: 5px;
	font-size: 15px;
}
#f .contact:before {
    display: block;
    content: '';
    background: #191a1b;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: translateX(0) translateY(0) translateZ(0) scale(1,1)
}

#f .contact:after {
    display: block;
    content: '';
    background: #191a1b;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: translateX(0) translateY(0) translateZ(0) scale(0,1)
}

@media screen and (min-width: 768px) {
    #f .contact:hover {
        opacity:1
    }

    #f .contact:hover:before {
        transform: translateX(0) translateY(0) translateZ(0) scale(0,1);
        transform-origin: top right;
        transition: transform .6s
    }

    #f .contact:hover:after {
        transform: translateX(0) translateY(0) translateZ(0) scale(1,1);
        transform-origin: top left;
        transition: transform .6s;
        transition-delay: .1s
    }
}

#f .contact strong {
    line-height: 1;
    position: relative
}

#f .contact strong span {
    overflow: hidden
}

#f .contact strong span:last-child {
    position: absolute;
    bottom: 0;
    left: 0
}

#f .contact strong span i {
    font-style: normal;
    display: inline-block;
    font-size: 4.6rem
}

@media screen and (min-width: 768px) {
    #f .contact strong span i {
        font-size:7.4rem
    }
}

#f .contact p {
    position: absolute;
    bottom: -30px;
    font-size: 1.4rem;
    letter-spacing: 3px
}

@media screen and (max-width: 768px) {
    #f .contact p {
        left:0
    }
}

@media screen and (min-width: 768px) {
    #f .contact p {
        bottom:18px;
        right: 0
    }
}

#f .anchor {
    position: absolute;
bottom: 40px;
    right: 0;
    width: 72px;
    height: 72px;
    margin: auto;
    cursor: pointer;
    z-index: 100
}

@media screen and (max-width: 768px) {
    #f .anchor {
        left:0
    }
}

@media screen and (min-width: 768px) {
    #f .anchor {
        top:0;
        right: 50px;
        bottom: 40px;
        width: 86px;
        height: 86px
    }
}



#f .anchor:before {
    border-radius: 100%;
    display: block;
    content: '';
    border: 1px solid rgba(25,26,27,.2);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: auto;
    box-sizing: border-box;
    transition: transform .3s,background .3s
}

#f .anchor .arw {
    width: 20px;
    height: 16px;
    position: absolute;
    top: 28px;
    left: 29px;
    transition: all .3s;
    fill: #191a1b
}

@media screen and (min-width: 768px) {
    #f .anchor .arw {
        width:20px;
        height: 16px;
        top: 35px;
    	left: 34px;
    }
}

#f .next {
    position: absolute;
    bottom: 20px;
    left: 0;
    right: 0;
    margin: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    color: #191a1b;
    height: 140px;
    width: 100%
}

#f .next:hover {
    opacity: 1
}

@media screen and (min-width: 768px) {
    #f .next {
        bottom:0;
        width: 600px;
        height: 130px
    }
}

#f .next .center {
    position: relative;
    text-align: center;
    width: 100%
}

#f .next .center .align {
    text-align: left;
    display: inline-block
}

#f .next .center .align p {
    margin: 4px 0 6px;
    font-size: 1.2rem;
    line-height: 1
}

@media screen and (min-width: 768px) {
    #f .next .center .align p {
        margin:4px 0 7px;
        font-size: 1.4rem
    }
}

#f .next .center .align p i {
    display: inline-block
}

#f .next .center .align strong {
    line-height: 1;
    font-size: 3.7rem;
    letter-spacing: 1px;
    text-transform: capitalize
}

@media screen and (min-width: 768px) {
    #f .next .center .align strong {
        font-size:5rem
    }
}

@media screen and (min-width: 768px) {
    #f .next .center .progress {
        width:236px;
        background: #191a1b;
        height: 2px;
        position: absolute;
        right: 0;
        bottom: 45px;
        left: 0;
        margin: auto;
        overflow: hidden;
        transform: translateX(0) translateY(0) translateZ(0) scale(.1,1)
    }
}

h2 {
    font-size: 2.6rem;
    overflow: hidden;
    position: relative;
    display: inline-block;
    padding-right: 68px
}

@media screen and (min-width: 768px) {
    h2 {
        padding-right:82px;
        font-size: 3.6rem
    }
}

h2:before {
    display: block;
    content: '';
    width: 38px;
    top: 22px;
    right: 0;
    position: absolute;
    background: #f5f4ef;
    height: 2px
}

@media screen and (min-width: 768px) {
    h2:before {
        width:48px;
        top: 30px;
        height: 2px
    }
}

.t-jp {
    font-size: 1.4rem;
    line-height: 2.2;
    letter-spacing: 1.8px
}

@media screen and (min-width: 768px) {
    .t-jp {
        font-size:1.6rem;
        line-height: 2.5;
        letter-spacing: 1.8px
    }
}

.t-en {
    position: relative;
    line-height: 1.95;
    font-size: 1.2rem;
    letter-spacing: .1px
}

@media screen and (min-width: 768px) {
    .t-en {
        line-height:2.1;
        font-size: 1.4rem;
        letter-spacing: 1.1px
    }
}

.view-btn {
    color: currentColor;
    position: relative;
    width: 120px;
    overflow: hidden;
    padding-bottom: 18px
}

@media screen and (min-width: 768px) {
    .view-btn {
        width:123px;
        padding-bottom: 16px
    }
}

.view-btn:hover {
    opacity: 1
}

@media screen and (min-width: 768px) {
    .view-btn:hover span {
        opacity:0;
        transform: translateX(0) translateY(-6px) translateZ(0);
        transition: transform .3s,opacity .3s
    }

    .view-btn:hover span:nth-child(2) {
        transform: translateX(0) translateY(0) translateZ(0);
        opacity: 1
    }
}

.view-btn span {
    font-size: 1.5rem;
    color: currentColor;
    text-indent: 8px;
    padding-bottom: 13px;
    font-weight: 600
}

@media screen and (min-width: 768px) {
    .view-btn span {
        font-size:1.6rem;
        text-indent: 8px;
        padding-bottom: 13px
    }
}

.view-btn span:nth-child(2) {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transform: translateX(0) translateY(20px) translateZ(0)
}

.view-btn i {
    position: absolute;
    width: 100%;
    bottom: 23px;
    left: 0;
    height: 2px
}

@media screen and (min-width: 768px) {
    .view-btn i {
        bottom:24px
    }
}

.view-btn i:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #f5f4ef
}

.view-btn i:after {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #191a1b;
    animation: 2s ease infinite linkBar;
    transform-origin: top left
}

@keyframes linkBar {
    0% {
        transform: translateX(-100%) translateY(0) translateZ(0) scale(.5,1)
    }

    100% {
        transform: translateX(100%) translateY(0) translateZ(0) scale(0,1)
    }
}

.view-btn small {
    font-size: 1rem;
    letter-spacing: .3px;
    position: absolute;
    bottom: 0;
    right: 25px;
    color: rgba(245,244,239,.2)
}

@media screen and (min-width: 768px) {
    .view-btn small {
        right:20px;
        font-size: 1rem;
        letter-spacing: .3px
    }
}

.view-btn small svg {
    fill: rgba(245,244,239,.2);
    display: inline-block;
    height: 6px;
    width: 6px;
    margin-left: 8px
}

@media screen and (min-width: 768px) {
    .view-btn small svg {
        height:6px;
        width: 6px;
        margin-left: 15px
    }
}

section[data-color=theme-white] {
    position: relative;
    color: #191a1b
}

section[data-color=theme-black] {
    position: relative;
    color: #f5f4ef
}

.page-top #top-video {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #191a1b
}

@media screen and (min-width: 768px) {
    .page-top #top-video {
        height:100vh
    }
}

.page-top #top-video .video {
    position: absolute;
    opacity: 0
}

.page-top #top-video #mv-t-box {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 100%;
    height: 100vh;
    z-index: 3;
    mix-blend-mode: difference
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-t-box {
        height:32vh
    }
}

.page-top #top-video #mv-t-box #mv-num-box {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    width: 40px;
    height: 20px;
    font-size: 1.2rem;
    overflow: hidden
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-t-box #mv-num-box {
        top:-20px;
        font-size: 1.4rem
    }
}

.page-top #top-video #mv-t-box #mv-num-box div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    text-align: center;
    height: 100%;
    color: #f5f4ef;
    font-weight: 700;
    letter-spacing: 1px
}

.page-top #top-video #mv-t-box #mv-num-box div i {
    font-style: normal;
    display: inline-block;
    transform: translateX(0) translateY(100%) translateZ(0)
}

.page-top #top-video #mv-t-box .in div {
    position: absolute;
    width: 100%;
    height: 40vw;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    text-align: center;
    overflow: hidden
}

@media screen and (max-width: 768px) {
    .page-top #top-video #mv-t-box .in div {
        display:flex;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
        height: 36.2vw
    }
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-t-box .in div {
        height:12.2vw
    }
}
.page-top #top-video #mv-t-box .in span{
	display: block;
}
.page-top #top-video #mv-t-box .in div .l1,.page-top #top-video #mv-t-box .in div .l2 {
    overflow: hidden
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-t-box .in div .l1,.page-top #top-video #mv-t-box .in div .l2 {
        display:inline-block
    }
}

.page-top #top-video #mv-t-box .in div i {
    display: inline-block;
    color: #fff;
    line-height: 1.2;
    font-size: 14vw;
    font-style: normal;
    font-weight: 700;
    transform: translateX(0) translateY( -1000% ) translateZ(0);
    letter-spacing: .1vw
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-t-box .in div i {
        letter-spacing:.2vw;
        font-size: 6vw
    }
}

.page-top #top-video #mv-panel-box {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 94vw;
    height: 100vw;
    overflow: hidden
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-panel-box {
        width:88vw;
        height: calc(100vh - 220px)
    }
}

.page-top #top-video #mv-panel-box #mv-panel-box-in {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    z-index: 2;
    transform: translateX(101%) translateY(0) translateZ(0)
}

.page-top #top-video #mv-panel-box #mv-panel-box-in .w {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 50%;
    background: #f5f4ef;
    z-index: 2
}

.page-top #top-video #mv-panel-box #mv-panel-box-in .b {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 50%;
    background: #191a1b;
    z-index: 2
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l,.page-top #top-video #mv-panel-box #mv-panel-grad-r {
    position: absolute;
    width: 20px;
    left: 0;
    height: 100%;
    top: 0;
    bottom: 0;
    margin: auto;
    z-index: 3;
    transform: translateX(100vw) translateY(0) translateZ(0)
}

@media screen and (min-width: 768px) {
    .page-top #top-video #mv-panel-box #mv-panel-grad-l,.page-top #top-video #mv-panel-box #mv-panel-grad-r {
        width:50px
    }
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l span,.page-top #top-video #mv-panel-box #mv-panel-grad-r span {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: #00a2ff;
    opacity: .5
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l span:nth-child(2),.page-top #top-video #mv-panel-box #mv-panel-grad-r span:nth-child(2) {
    background: #f0b5f5
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l span:nth-child(3),.page-top #top-video #mv-panel-box #mv-panel-grad-r span:nth-child(3) {
    background: #ffde00
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l span:nth-child(4),.page-top #top-video #mv-panel-box #mv-panel-grad-r span:nth-child(4) {
    background: red
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l span:nth-child(5),.page-top #top-video #mv-panel-box #mv-panel-grad-r span:nth-child(5) {
    background: #00f
}

.page-top #top-video #mv-panel-box #mv-panel-grad-l span:nth-child(6),.page-top #top-video #mv-panel-box #mv-panel-grad-r span:nth-child(6) {
    background: #0f0
}

.page-top #top-video .scroll {
    position: absolute;
    bottom: 44px;
    font-size: 1.2rem;
    width: 100%;
    pointer-events: none;
    color: #fff;
    display: block;
    text-align: right;
    height: 20px;
    overflow: hidden;
    width: 90px
}

@media screen and (max-width: 768px) {
    .page-top #top-video .scroll {
        right:18px
    }
}

@media screen and (min-width: 768px) {
    .page-top #top-video .scroll {
        text-align:center;
        position: absolute;
        bottom: 64px;
        width: 200px;
        right: 0;
        margin: auto;
        left: 0
    }
}

.page-top #top-video .scroll .l1,.page-top #top-video .scroll .l2 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    text-align: center;
    height: 100%
}

.page-top #top-video .scroll .l2 i {
    transform: translateX(0) translateY(100%) translateZ(0)
}

.page-top #top-video .scroll i {
    display: inline-block
}

.page-top #video-panel,.page-top #video-panelb {
    position: fixed;
    top: 0;
    left: 0;
    width: 62vw;
    height: 26.2vw
}

.page-top #video-panel .video,.page-top #video-panelb .video {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transform: translateX(0) translateY(0) translateZ(0) scale(.8);
    transition: opacity .5s,transform .5s
}
.page-top #video-panelb .video img{
	width: auto;
	max-width: 100%;
}
.page-top #video-panel .video.is-current,.page-top #video-panelb .video.is-current {
    opacity: 1;
    transform: translateX(0) translateY(0) translateZ(0) scale(1)
}

.page-top .mv {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.page-top .s1 {
    opacity: 0;
    position: relative
}

.page-top .s1 #trigger-panel {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #f5f4ef
}

@media screen and (max-width: 768px) {
    .page-top .s1 #trigger-panel {
        opacity:0
    }
}

.page-top .s1 svg {
    width: 100%
}

.page-top .s2 {
    padding: 0 22px 110px;
 
}

@media screen and (min-width: 768px) {
    .page-top .s2 {
        padding:0 14.4% 165px;
        margin-top: -200px
    }
}
.page-top .s21{
	margin-top: 215px;
}
.page-top .s2 h2 {
    margin-bottom: 138px;
    margin-left: 0
}

@media screen and (min-width: 768px) {
    .page-top .s2 h2 {
        margin-bottom:120px;
        margin-left: 1.6%
    }
}
.page-top .s2 .view-btn {
    margin-top: 130px
}

@media screen and (min-width: 768px) {
    .page-top .s2 .view-btn {
        margin-top:150px
    }
}

.page-top .s2 .works-cell {
    margin-left: 11%;
    color: #f5f4ef;
    margin-bottom: 57px;
    position: relative
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell {
        margin-left:18%;
        margin-bottom: 4vw
    }
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell:hover {
        opacity:1
    }

    .page-top .s2 .works-cell:hover .inner{
        opacity: 1;
        transform: translateX(-56px) translateY(0) translateZ(0)
    }
    .page-top .s21 .works-cell:hover img{
        opacity: 1;
        transform: translateX(-20px) translateY(0) translateZ(0)
    }
    .page-top .s2 .works-cell:hover .inner .num {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }

    .page-top .s2 .works-cell:hover .inner .tags {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell .inner ,.page-top .s21 .works-cell img{
        opacity:.1;
        transition: opacity .4s,transform .4s
    }
}
.page-top .s21 .works-cell img{
	width: auto;
	max-width: 90%;
}
.page-top .s21 .list{
	display: -webkit-flex;
    display: flex;
	-webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.page-top .s21 .works-cell{
	width: 16.6%;
	margin-left: 0;
	margin-bottom: 6vw;
	text-align: center;
}

.page-top .s2 .works-cell .num {
    position: absolute;
    top: 3px;
    left: -32px;
    font-size: 1rem;
    letter-spacing: 1px;
    pointer-events: none;
    opacity: .4
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell .num {
        font-size:1.1rem;
        top: .8vw;
        left: -45px;
        opacity: 1;
        transition: opacity .4s,transform .4s
    }
}

.page-top .s2 .works-cell strong {
    line-height: 1;
    font-size: 12vw;
    letter-spacing: .15vw
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell strong {
        font-size:3.4vw;
        letter-spacing: .15vw
    }
}

.page-top .s2 .works-cell .tags {
    position: absolute;
    bottom: 0px;
    left: 0;
    opacity: 1
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell .tags {
        bottom:-30px;
        left: 0;
        opacity: 0;
        transform: translateX(20px) translateY(0) translateZ(0);
        transition: opacity .4s,transform .4s
    }
}

.page-top .s2 .works-cell .tags i {
    font-size: 1.1rem;
    letter-spacing: 1px;
    display: inline-block;
    margin-right: 0;
    font-style: normal;
    margin-left: 18px
}

.page-top .s2 .works-cell .tags i:first-child {
    margin-left: 0!important
}

@media screen and (min-width: 768px) {
    .page-top .s2 .works-cell .tags i {
        margin-left:10px
    }
}

.page-top .s2 h4 {
    margin: 220px 0 42px;
    text-align: center;
    font-size: 1.6rem
}

@media screen and (min-width: 768px) {
    .page-top .s2 h4 {
        margin:386px 0 52px;
        font-size: 1.8rem
    }
}

.page-top .s2 .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: center
}

@media screen and (min-width: 768px) {
    .page-top .s2 .flex {
        width:74%;
        margin: 0 auto;
        justify-content: center
    }
}

.page-top .s2 .flex .cell {
    width: 33.3%
}

@media screen and (max-width: 768px) {
    .page-top .s2 .flex .cell {
        margin-bottom:15px
    }
}

.page-top .s2 small {
    text-align: center;
    display: block;
    margin-top: 16px;
    font-size: 1.1rem;
    letter-spacing: 1px
}

@media screen and (min-width: 768px) {
    .page-top .s2 small {
        margin-top:46px;
        font-size: 1.4rem
    }
}

.page-top .s3 {
    padding: 76px 24px 28vw 24px
}

@media screen and (min-width: 768px) {
    .page-top .s3 {
        padding:215px 41% 28vw 15.5%
    }
}

.page-top .s3 h2 {
    margin-bottom: 120px
}

@media screen and (min-width: 768px) {
    .page-top .s3 h2 {
        margin-bottom:170px
    }
}

.page-top .s3 .view-btn {
    margin-top: 100px
}

@media screen and (min-width: 768px) {
    .page-top .s3 .view-btn {
        margin-top:200px
    }
}

.page-top .s3.is-in .box .img1 .in {
    transition: transform 1.6s;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-4deg)
}

.page-top .s3.is-in .box .img1 .in:before {
    transition: transform 1.8s;
    transition-delay: .6s;
    transform: translateX(5%) translateY(2%) translateZ(0) rotate(3deg)
}

.page-top .s3.is-in .box .img2 .in {
    transition: transform 1.6s;
    transition-delay: .2s;
    transform: translateX(0) translateY(0) translateZ(0) rotate(4deg)
}

.page-top .s3.is-in .box .img2 .in:before {
    transition: transform 1.8s;
    transition-delay: .6s;
    transform: translateX(5%) translateY(2%) translateZ(0) rotate(3deg)
}

.page-top .s3 .box {
    position: relative
}

.page-top .s3 .box .t-jp {
    position: relative;
    z-index: 3
}
.page-top .s3 .box h3{
	margin-top: 36px;
	margin-bottom: 10px;
	font-size: 20px;
	font-weight: 400;
}
@media screen and (min-width: 768px) {
    .page-top .s3 .box .t-jp {
        font-size:1.6rem
    }
}

.page-top .s3 .box .t-en {
    margin-top: 95px;
    position: relative;
    z-index: 3
}

@media screen and (min-width: 768px) {
    .page-top .s3 .box .t-en {
        margin-top:84px;
        font-size: 1.4rem
    }
}

.page-top .s3 .box .t-en:before {
    display: block;
    content: '';
    width: 32px;
    height: 2px;
    position: absolute;
    background: #f5f4ef;
    top: -28px;
    left: 0
}

@media screen and (min-width: 768px) {
    .page-top .s3 .box .t-en:before {
        width:40px;
        top: -47px
    }
}

.page-top .s3 .box .img1 {
    position: absolute;
    top: -15vw;
    left: 17vw;
    width: 59.8vw;
    height: 92.1vw;
    z-index: 1
}

@media screen and (min-width: 768px) {
    .page-top .s3 .box .img1 {
        top:-6vw;
        left: 33vw;
        width: 29vw;
        height: 43.4vw
    }
}

.page-top .s3 .box .img1 .in {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(30vw) translateY(100vh) translateZ(0) rotate(14deg)
}

.page-top .s3 .box .img1 .in:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,.5);
    z-index: 0;
    transform: translateX(15%) translateY(14%) translateZ(0) rotate(-4deg)
}

.page-top .s3 .box .img1 .in img {
    position: relative;
    z-index: 10
}

.page-top .s3 .box .img2 {
    position: absolute;
    top: -4vw;
    left: 40.7vw;
    width: 60vw;
    height: 93.4vw;
    z-index: 0
}

@media screen and (min-width: 768px) {
    .page-top .s3 .box .img2 {
        top:-3vw;
        left: 43.9vw;
        width: 29vw;
        height: 43.4vw
    }
}

.page-top .s3 .box .img2 .in {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(30vw) translateY(100vh) translateZ(0) rotate(-10deg)
}

.page-top .s3 .box .img2 .in:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,.5);
    z-index: 0;
    transform: translateX(15%) translateY(14%) translateZ(0) rotate(-4deg)
}

.page-top .s3 .box .img2 .in img {
    position: relative;
    z-index: 10
}

.page-company #l-img,.page-service #l-img {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 113.4vw;
    overflow: hidden;
    z-index: 1;
    backface-visibility: hidden
}

@media screen and (min-width: 768px) {
    .page-company #l-img,.page-service #l-img {
        height:35.7vw
    }
}

.page-company #l-img #mv-panel,.page-service #l-img #mv-panel {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    fill: #191a1b;
    transform: scale(1.01)
}

.page-company #l-img .img,.page-service #l-img .img {
    width: 100%;
    position: relative;
    z-index: 0;
    backface-visibility: hidden;
    overflow: hidden
}

.page-company #l-img .img img,.page-service #l-img .img img {
    position: relative;
    z-index: 10
}

.page-company #l-img .img .video,.page-service #l-img .img .video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1;
    opacity: 0
}

.page-company #l-img .img .panel,.page-service #l-img .img .panel {
    background: #191a1b;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 10;
    position: absolute;
    transform: translateX(0) translateY(100%) translateZ(0) skewY(0);
    transform-origin: -30% 0
}

.page-company #l-img h2,.page-service #l-img h2 {
    z-index: 10;
    top: 58.4vw;
    left: 0;
    margin-top: -40px;
    width: 100%;
    text-align: center;
    color: #f5f4ef;
    position: absolute;
    overflow: hidden;
    height: 90px
}

@media screen and (min-width: 768px) {
    .page-company #l-img h2,.page-service #l-img h2 {
        top:16.6vw;
        margin-top: -50px;
        height: 90px
    }
}

.page-company #l-img h2 span,.page-service #l-img h2 span {
    font-size: 5.2rem;
    overflow: hidden;
    line-height: 1.2
}

@media screen and (min-width: 768px) {
    .page-company #l-img h2 span,.page-service #l-img h2 span {
        font-size:7rem
    }
}

.page-company #l-img h2 span i,.page-service #l-img h2 span i {
    transform: translateX(0) translateY(100%) translateZ(0);
    display: inline-block
}

.page-company .s1,.page-service .s1 {
    color: #f5f4ef;
    padding: 137.8vw 24px 0;
    background: #191a1b
}

@media screen and (min-width: 768px) {
    .page-company .s1,.page-service .s1 {
        padding:calc(35.7vw + 136px) 24.3vw 136px
    }
}

.page-company .s1 .inner,.page-service .s1 .inner {
    opacity: 0
}

.page-company .s1 .t1,.page-service .s1 .t1 {
    font-size: 1.4rem;
    letter-spacing: 1.6px;
    line-height: 2
}

@media screen and (min-width: 768px) {
    .page-company .s1 .t1,.page-service .s1 .t1 {
        font-size:1.5rem;
        letter-spacing: 2.5px;
        line-height: 2.6
    }
}

.page-company .s1 .t2,.page-service .s1 .t2 {
    padding-top: 22px;
    margin-top: 80px;
    position: relative;
    font-size: 1.1rem;
    letter-spacing: 1.6px;
    line-height: 2
}

@media screen and (min-width: 768px) {
    .page-company .s1 .t2,.page-service .s1 .t2 {
        padding-top:22px;
        margin-top: 110px;
        font-size: 1.3rem;
        letter-spacing: 1.6px;
        line-height: 2.4
    }
}

.page-company .s1 .t2:before,.page-service .s1 .t2:before {
    display: block;
    content: '';
    width: 30px;
    height: 2px;
    position: absolute;
    top: -20px;
    left: 0;
    background: #f5f4ef
}

@media screen and (min-width: 768px) {
    .page-company .s1 .t2:before,.page-service .s1 .t2:before {
        width:40px;
        height: 2px;
        top: -20px
    }
}

.page-service .s2 {
    padding-top: 164px;
    color: #f5f4ef;
    position: relative
}

@media screen and (max-width: 768px) {
    .page-service .s2 {
        background:#191a1b
    }
}

@media screen and (min-width: 768px) {
    .page-service .s2 {
        padding-top:234px
    }
}

.page-service .s2 h2 {
    margin: 0 auto 56px;
    text-align: center;
    width: 100%;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-service .s2 h2 {
        margin:0 auto 77px
    }
}

.page-service .s2 h2:before {
    display: none
}

.page-service .s2 .lang {
    position: absolute;
    top: 170px;
    right: 20px
}

@media screen and (min-width: 768px) {
    .page-service .s2 .lang {
        top:242px;
        right: 6.9vw
    }
}

.page-service .s2 .lang span {
    position: relative;
    display: inline-block;
    padding: 10px 6px;
    margin-left: 4px;
    font-size: 1.2rem;
    letter-spacing: 2px;
    cursor: pointer;
    opacity: .4;
    transition: opacity .4s
}

@media screen and (min-width: 768px) {
    .page-service .s2 .lang span {
        padding:10px 10px;
        margin-left: 34px;
        font-size: 1.6rem;
        letter-spacing: 2px
    }
}

.page-service .s2 .lang span:before {
    display: block;
    content: '';
    width: 100%;
    height: 2px;
    background: #f5f4ef;
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translateX(0) translateY(0) translateZ(0) scale(0,1);
    transition: transform .6s
}

@media screen and (min-width: 768px) {
    .page-service .s2 .lang span:hover {
        opacity:1
    }
}

.page-service .s2 .lang span.is-current {
    opacity: 1;
    pointer-events: none
}

.page-service .s2 .lang span.is-current:before {
    transform: translateX(0) translateY(0) translateZ(0) scale(1,1)
}

.page-service .s2 .lang-area {
    position: relative;
    width: 100%
}

@media screen and (min-width: 768px) {
    .page-service .s2 .lang-area {
        width:69%;
        margin: 0 auto
    }
}

.page-service .s2 .flex {
    width: 100%;
    margin: 0 auto;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transform: translateX(0) translateY(20px) translateZ(0);
    transition: opacity .6s,transform .6s
}

.page-service .s2 .flex.is-current {
    opacity: 1;
    transform: translateX(0) translateY(0) translateZ(0)
}

@media screen and (max-width: 768px) {
    .page-service .s2 .flex {
        padding:0 26px 0 50px
    }
}

.page-service .s2 .flex .cell {
    margin-bottom: 40px
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell {
        display:flex;
        justify-content: space-between;
        margin-bottom: 42px
    }
}

.page-service .s2 .flex .cell:last-child {
    margin-bottom: 0
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell:last-child {
        margin-bottom:0
    }
}

.page-service .s2 .flex .cell .ico {
    width: 100%;
    position: relative;
    display: flex
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell .ico {
        justify-content:space-between;
        width: 302px
    }
}

.page-service .s2 .flex .cell .ico span {
    display: inline-block;
    position: relative;
    font-size: 1.4rem;
    vertical-align: top;
    width: 64px
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell .ico span {
        width:110px
    }
}

.page-service .s2 .flex .cell .ico span:before {
    display: block;
    content: '';
    width: 10px;
    display: inline-block;
    height: 2px;
    background: #f5f4ef;
    position: absolute;
    top: 5px;
    left: -25px
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell .ico span:before {
        position:relative;
        left: 0;
        width: 10px;
        top: -7px;
        margin-right: 18px
    }
}

.page-service .s2 .flex .cell .ico strong {
    margin-top: -1px;
    margin-left: 0;
    display: inline-block;
    font-size: 1.8rem;
    letter-spacing: 2px;
    width: calc(100% - 110px)
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell .ico strong {
        margin-top:-2px;
        font-size: 1.6rem;
        width: calc(100% - 110px)
    }
}

.page-service .s2 .flex .cell p {
    margin-top: 15px;
    text-align: justify;
    width: 100%;
    font-size: 1.2rem;
    letter-spacing: .4px;
    line-height: 1.95
}

@media screen and (min-width: 768px) {
    .page-service .s2 .flex .cell p {
        font-size:1.4rem;
        margin-top: -3px;
        width: calc(100% - 342px)
    }
}

.page-service .s3 {
    padding: 260px 0 0 0;
    color: #f5f4ef;
    position: relative
}

@media screen and (max-width: 768px) {
    .page-service .s3 {
        background:#191a1b
    }
}

@media screen and (min-width: 768px) {
    .page-service .s3 {
        padding:370px 0 0 0
    }
}

.page-service .s3 h2 {
    margin: 0 auto 40px;
    text-align: center;
    width: 100%;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-service .s3 h2 {
        margin:0 auto 4vw
    }
}

.page-service .s3 h2:before {
    display: none
}

.page-service .s3 .slide-nav {
    position: relative;
    width: 100%;
    margin: 0 auto 6vw
}

@media screen and (max-width: 768px) {
    .page-service .s3 .slide-nav {
        overflow-x:scroll
    }
}

@media screen and (min-width: 768px) {
    .page-service .s3 .slide-nav {
        width:66%;
        margin: 0 auto 6vw
    }
}

.page-service .s3 .slide-nav .in {
    display: flex;
    align-items: center
}

@media screen and (max-width: 768px) {
    .page-service .s3 .slide-nav .in {
        width:1000px;
        align-items: flex-end
    }
}

.page-service .s3 .slide-nav span {
    padding: 10px 0 14px 20px;
    margin-left: 6px;
    opacity: .4;
    transition: opacity .6s,transform .6s;
    cursor: pointer;
    position: relative;
    width: 25%
}

@media screen and (min-width: 768px) {
    .page-service .s3 .slide-nav span {
        text-align:left;
        width: 20%;
        opacity: .2;
        position: relative;
        margin-left: 0;
        padding: 10px 10px 18px;
        text-align: center
    }
}

.page-service .s3 .slide-nav span.is-current {
    opacity: 1
}

.page-service .s3 .slide-nav span.is-current:before {
    transform: translateX(0) translateY(0) translateZ(0) scale(1,1)
}

@media screen and (min-width: 768px) {
    .page-service .s3 .slide-nav span:hover {
        opacity:1
    }
}

.page-service .s3 .slide-nav span:before {
    display: block;
    content: '';
    width: 100%;
    height: 2px;
    background: #f5f4ef;
    position: absolute;
    bottom: 0;
    left: 0;
    transition: all .8s;
    transform: translateX(0) translateY(0) translateZ(0) scale(0,1);
    transform-origin: top left
}

@media screen and (min-width: 768px) {
    .page-service .s3 .slide-nav span:before {
        height:4px
    }
}

.page-service .s3 .slide-nav span strong {
    font-size: 1.2rem;
    letter-spacing: 0;
    line-height: 1.4;
    margin-bottom: 6px
}

@media screen and (min-width: 768px) {
    .page-service .s3 .slide-nav span strong {
        font-size:1.6rem;
        margin-bottom: 6px
    }
}

.page-service .s3 .slide-nav span p {
    font-size: 1rem
}

.page-service .s3 #slider-nav-area {
    position: absolute;
    z-index: 10;
    top: 104vw;
    left: 0;
    width: 100%;
    pointer-events: none
}

@media screen and (max-width: 768px) {
    .page-service .s3 #slider-nav-area {
        height:114vw
    }
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area {
        top:0;
        height: 100%
    }
}

.page-service .s3 #slider-nav-area #slide-nums {
    position: absolute;
    top: 30px;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 3;
    overflow: hidden;
    height: 18px
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slide-nums {
        top:5vw
    }
}

.page-service .s3 #slider-nav-area #slide-nums span {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    text-align: center;
    transition: opacity .6s,transform .6s;
    transform: translateX(0) translateY(101%) translateZ(0);
    font-size: 1.5rem
}

.page-service .s3 #slider-nav-area #slide-nums span.is-current {
    transform: translateX(0) translateY(0) translateZ(0)
}

.page-service .s3 #slider-nav-area #slider-ttl {
    position: absolute;
    z-index: 1;
    pointer-events: none
}

@media screen and (max-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-ttl {
        width:100%;
        left: 24px;
        bottom: 18vw
    }
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-ttl {
        width:100%;
        bottom: 16vw;
        left: 22vw
    }
}

.page-service .s3 #slider-nav-area #slider-ttl strong {
    overflow: hidden;
    transition: transform .8s;
    position: absolute;
    bottom: 0;
    left: 0
}

@media screen and (max-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-ttl strong {
        width:100%;
        padding-right: 44px
    }
}

.page-service .s3 #slider-nav-area #slider-ttl strong.is-current em i,.page-service .s3 #slider-nav-area #slider-ttl strong.is-current p i {
    transform: translateX(0) translateY(0) translateZ(0)
}

.page-service .s3 #slider-nav-area #slider-ttl strong em {
    overflow: hidden
}

.page-service .s3 #slider-nav-area #slider-ttl strong em i {
    line-height: 1;
    font-size: 4rem;
    transition: transform .4s;
    transform: translateX(0) translateY(100%) translateZ(0)
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-ttl strong em i {
        font-size:6rem
    }
}

.page-service .s3 #slider-nav-area #slider-ttl strong p {
    position: relative;
    margin-top: 20px;
    overflow: hidden
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-ttl strong p {
        margin-top:16px
    }
}

.page-service .s3 #slider-nav-area #slider-ttl strong p i {
    transition: transform .4s;
    transform: translateX(0) translateY(100%) translateZ(0);
    letter-spacing: 1px;
    font-size: 1.4rem
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-ttl strong p i {
        font-size:1.4rem
    }
}

.page-service .s3 #slider-nav-area #slider-cat {
    position: absolute;
    left: 0;
    z-index: 6;
    pointer-events: none;
    width: 100%
}

@media screen and (max-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-cat {
        bottom:20px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-cat {
        bottom:8vw
    }
}

.page-service .s3 #slider-nav-area #slider-cat strong {
    position: absolute;
    overflow: hidden;
    width: 100%;
    top: 0;
    left: 0;
    text-align: center
}

.page-service .s3 #slider-nav-area #slider-cat strong.is-current i {
    transform: translateX(0) translateY(0) translateZ(0)
}

.page-service .s3 #slider-nav-area #slider-cat strong i {
    letter-spacing: .1px;
    font-size: 1rem;
    transition: transform .8s;
    transform: translateX(0) translateY(100%) translateZ(0)
}

@media screen and (min-width: 768px) {
    .page-service .s3 #slider-nav-area #slider-cat strong i {
        font-size:1.2rem;
        letter-spacing: 1px
    }
}

.page-service .s3 .s-in.s {
    transform: translateX(100%) translateY(0) translateZ(0);
    transition: transform 1.4s
}

@media screen and (max-width: 768px) {
    .page-service .s3 .s-in.s {
        height:108vw
    }
}

.page-service .s3 .s-in.s.is-in {
    transform: translateX(0) translateY(0) translateZ(0)
}

.page-service .s3 .swiper-container {
    width: 100%;
    height: 100%
}

@media screen and (min-width: 768px) {
    .page-service .s3 .swiper-container {
        height:53vw
    }
}

.page-service .s3 .swiper-slide {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center
}

.page-service .s3 .swiper-slide.swiper-slide-active .img {
    transform: translateX(0) translateY(0) translateZ(0) scale(1.05)
}

.page-service .s3 .swiper-slide .img {
    transition: transform .4s;
    transform: translateX(0) translateY(0) translateZ(0) scale(1);
    border-radius: 100%;
    overflow: hidden;
    width: 100%
}

@media screen and (min-width: 768px) {
    .page-service .s3 .swiper-slide .img {
        transform:translateX(0) translateY(0) translateZ(0) scale(.75)
    }
}

.page-service .s4 .flex .cell svg,.page-service .s5 .flex .cell svg {
    position: absolute;
    top: 0;
    left: 10px;
    width: 9px;
    height: 24px;
    fill: #f5f4ef
}

.page-service .s4 .flex .cell .img,.page-service .s5 .flex .cell .img {
    margin-bottom: 20px
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex .cell .img,.page-service .s5 .flex .cell .img {
        margin-bottom:14px
    }
}

.page-service .s4 .flex .cell strong,.page-service .s5 .flex .cell strong {
    font-size: 1.4rem;
    margin-bottom: 0
}

@media screen and (max-width: 768px) {
    .page-service .s4 .flex .cell strong,.page-service .s5 .flex .cell strong {
        padding:0 26px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex .cell strong,.page-service .s5 .flex .cell strong {
        font-size:1.4rem
    }
}

.page-service .s4 .flex .cell span,.page-service .s5 .flex .cell span {
    color: rgba(245,244,239,.2);
    margin-bottom: 12px;
    letter-spacing: 1px;
    font-size: 1rem
}

@media screen and (max-width: 768px) {
    .page-service .s4 .flex .cell span,.page-service .s5 .flex .cell span {
        padding:0 26px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex .cell span,.page-service .s5 .flex .cell span {
        margin-bottom:12px
    }
}

.page-service .s4 .flex .cell p,.page-service .s5 .flex .cell p {
    font-size: 1.2rem;
    text-align: justify;
    margin-bottom: 14px
}

@media screen and (max-width: 768px) {
    .page-service .s4 .flex .cell p,.page-service .s5 .flex .cell p {
        padding:0 26px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex .cell p,.page-service .s5 .flex .cell p {
        font-size:1.4rem;
        margin-bottom: 26px;
        padding-right: 22%
    }
}

.page-service .s4 .flex .cell i,.page-service .s5 .flex .cell i {
    font-size: 1rem;
    letter-spacing: 1px
}

@media screen and (max-width: 768px) {
    .page-service .s4 .flex .cell i,.page-service .s5 .flex .cell i {
        padding:0 26px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex .cell i,.page-service .s5 .flex .cell i {
        letter-spacing:1px
    }
}

.page-service .s4 {
    padding: 61vw 0 0 0;
    position: relative
}

@media screen and (max-width: 768px) {
    .page-service .s4 {
        background:#191a1b
    }
}

@media screen and (min-width: 768px) {
    .page-service .s4 {
        padding:370px 0 0 0
    }
}

.page-service .s4 h2 {
    margin: 0 auto 58px;
    text-align: center;
    width: 100%;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-service .s4 h2 {
        margin:0 auto 77px
    }
}

.page-service .s4 h2:before {
    display: none
}

.page-service .s4 .flex {
    width: 100%;
    margin: 0 auto
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex {
        width:68.6%;
        display: flex;
        justify-content: space-between
    }
}

.page-service .s4 .flex .cell {
    position: relative
}

@media screen and (max-width: 768px) {
    .page-service .s4 .flex .cell {
        margin-bottom:50px
    }

    .page-service .s4 .flex .cell:last-child {
        margin-bottom: 0
    }
}

@media screen and (min-width: 768px) {
    .page-service .s4 .flex .cell {
        width:48%
    }
}

.page-service .s5 {
    padding: 174px 0 0 0;
    color: #f5f4ef
}

@media screen and (max-width: 768px) {
    .page-service .s5 {
        background:#191a1b
    }
}

@media screen and (min-width: 768px) {
    .page-service .s5 {
        padding:370px 0 0 0
    }
}

.page-service .s5 h2 {
    margin: 0 auto 52px;
    text-align: center;
    width: 100%;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-service .s5 h2 {
        margin:0 auto 70px
    }
}

.page-service .s5 h2:before {
    display: none
}

.page-service .s5 .lead {
    line-height: 1.95;
    font-size: 1.2rem;
    width: 100%;
    margin: 0 auto
}

@media screen and (max-width: 768px) {
    .page-service .s5 .lead {
        padding:0 26px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s5 .lead {
        width:68.6%;
        font-size: 1.6rem
    }
}

.page-service .s5 .flex {
    width: 100%;
    margin: 60px 0 auto
}

@media screen and (min-width: 768px) {
    .page-service .s5 .flex {
        margin:120px auto 0;
        width: 60%;
        display: flex;
        justify-content: space-between
    }
}

.page-service .s5 .flex .cell {
    position: relative
}

@media screen and (max-width: 768px) {
    .page-service .s5 .flex .cell {
        margin-bottom:80px;
        width: 84%
    }

    .page-service .s5 .flex .cell:last-child {
        margin-bottom: 0;
        margin-left: 16%
    }

    .page-service .s5 .flex .cell:last-child i,.page-service .s5 .flex .cell:last-child p,.page-service .s5 .flex .cell:last-child span,.page-service .s5 .flex .cell:last-child strong {
        padding-left: 0
    }
}

@media screen and (min-width: 768px) {
    .page-service .s5 .flex .cell {
        width:42%
    }

    .page-service .s5 .flex .cell:last-child {
        margin-top: 8vw
    }
}

.page-service .s6 {
    padding: 190px 0 0 0;
    color: #f5f4ef
}

@media screen and (min-width: 768px) {
    .page-service .s6 {
        padding:370px 0 0 0
    }
}

.page-service .s6 h2 {
    margin: 0 auto 52px;
    text-align: center;
    width: 100%;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-service .s6 h2 {
        margin:0 auto 70px
    }
}

.page-service .s6 h2:before {
    display: none
}

.page-service .s6 .lead {
    line-height: 1.95;
    font-size: 1.2rem;
    width: 100%;
    margin: 0 auto
}

@media screen and (max-width: 768px) {
    .page-service .s6 .lead {
        padding:0 26px;
        margin-bottom: 240px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s6 .lead {
        width:68.6%;
        font-size: 1.6rem;
        margin-bottom: 240px
    }
}

.page-service .s6 .box {
    position: relative;
    width: 100%;
    margin: 0 auto 260px
}

@media screen and (max-width: 768px) {
    .page-service .s6 .box .box:last-child {
        margin-bottom:0
    }
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box {
        width:68.6%;
        margin: 0 auto 246px
    }
}

.page-service .s6 .box .txts {
    width: 100%;
    position: relative;
    z-index: 3
}

@media screen and (max-width: 768px) {
    .page-service .s6 .box .txts {
        padding:0 26px 92px
    }
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box .txts {
        width:50%;
        padding-bottom: 120px
    }
}

.page-service .s6 .box strong {
    font-size: 1.8rem;
    letter-spacing: 1px
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box strong {
        font-size:2rem
    }
}

.page-service .s6 .box em {
    color: rgba(245,244,239,.2);
    font-size: 1.1rem;
    margin-bottom: 25px
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box em {
        font-size:1.1rem;
        margin-bottom: 25px
    }
}

.page-service .s6 .box p {
    font-size: 1.2rem;
    line-height: 2;
    text-align: justify;
    letter-spacing: 1.4px
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box p {
        font-size:1.2rem;
        letter-spacing: 1.4px
    }
}

.page-service .s6 .box .view-btn {
    position: absolute;
    bottom: 18px;
    right: 0
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box .view-btn {
        position:absolute;
        bottom: 18px;
        right: 0
    }
}

.page-service .s6 .box .img1 {
    position: absolute;
    z-index: 2
}

.page-service .s6 .box .img2 {
    position: absolute;
    z-index: 1
}

.page-service .s6 .box1 .img1 {
    top: -160px;
    left: 19.4vw;
    width: 85.7vw;
    height: 56.4vw;
    z-index: 0
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box1 .img1 {
        top:-107px;
        left: 30.7vw;
        width: 46.3vw;
        height: 30.6vw
    }
}

.page-service .s6 .box1 .img1.is-in .in {
    transform: translateX(0) translateY(0) translateZ(0) rotate(4deg)
}

.page-service .s6 .box1 .img1.is-in .in:before {
    transform: translateX(-1%) translateY(3%) translateZ(0) rotate(-2deg)
}

.page-service .s6 .box1 .img1 .in {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transform: translateX(30vw) translateY(100vh) translateZ(0) rotate(-10deg)
}

.page-service .s6 .box1 .img1 .in:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,.5);
    z-index: 0;
    transition: transform 1.6s;
    transform: translateX(15%) translateY(14%) translateZ(0) rotate(-4deg)
}

.page-service .s6 .box1 .img1 .in img {
    position: relative;
    z-index: 10
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box2 .txts {
        margin-left:50%
    }
}

.page-service .s6 .box2 .img1 {
    top: -181px;
    right: 51.7vw;
    width: 54vw;
    height: 78.4vw
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box2 .img1 {
        top:-107px;
        right: 42.9vw;
        width: 28.5vw;
        height: 42vw
    }
}

.page-service .s6 .box2 .img1.is-in .in {
    transform: translateX(0) translateY(0) translateZ(0) rotate(-4deg)
}

.page-service .s6 .box2 .img1.is-in .in:before {
    transform: translateX(4%) translateY(7%) translateZ(0) rotate(2deg)
}

.page-service .s6 .box2 .img1 .in {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transform: translateX(-30vw) translateY(100vh) translateZ(0) rotate(-10deg)
}

.page-service .s6 .box2 .img1 .in:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,.5);
    z-index: 0;
    transition: transform 1.6s;
    transform: translateX(15%) translateY(14%) translateZ(0) rotate(-4deg)
}

.page-service .s6 .box2 .img1 .in img {
    position: relative;
    z-index: 10
}

.page-service .s6 .box2 .img2 {
    top: -152px;
    right: 15vw;
    width: 50vw;
    height: 72.4vw
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box2 .img2 {
        top:-52px;
        right: 22.6vw;
        width: 24.3vw;
        height: 35vw
    }
}

.page-service .s6 .box2 .img2.is-in .in {
    transform: translateX(0) translateY(0) translateZ(0) rotate(7deg)
}

.page-service .s6 .box2 .img2.is-in .in:before {
    transform: translateX(6%) translateY(7%) translateZ(0) rotate(2deg)
}

.page-service .s6 .box2 .img2 .in {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transform: translateX(-30vw) translateY(100vh) translateZ(0) rotate(-10deg)
}

.page-service .s6 .box2 .img2 .in:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,.5);
    z-index: 0;
    transition: transform 1.6s;
    transform: translateX(15%) translateY(14%) translateZ(0) rotate(-4deg)
}

.page-service .s6 .box2 .img2 .in img {
    position: relative;
    z-index: 10
}

.page-service .s6 .box3 .img1 {
    top: -166px;
    left: 26.4vw;
    width: 74vw;
    height: 55.2vw;
    z-index: 0
}

@media screen and (min-width: 768px) {
    .page-service .s6 .box3 .img1 {
        top:-48px;
        left: 32.3vw;
        width: 38.6vw;
        height: 25.7vw
    }
}

.page-service .s6 .box3 .img1.is-in .in {
    transform: translateX(0) translateY(0) translateZ(0) rotate(7deg)
}

.page-service .s6 .box3 .img1.is-in .in:before {
    transform: translateX(-2%) translateY(4%) translateZ(0) rotate(-2deg)
}

.page-service .s6 .box3 .img1 .in {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transform: translateX(30vw) translateY(100vh) translateZ(0) rotate(-10deg)
}

.page-service .s6 .box3 .img1 .in:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,.5);
    z-index: 0;
    transition: transform 1.6s;
    transform: translateX(15%) translateY(14%) translateZ(0) rotate(-4deg)
}

.page-service .s6 .box3 .img1 .in img {
    position: relative;
    z-index: 10
}

.page-company .s2 {
    padding: 188px 26px 180px;
    position: relative;
    text-align: center
}

@media screen and (min-width: 768px) {
    .page-company .s2 {
        padding:180px 15.8vw 36vw
    }
}

.page-company .s2 h2 {
    padding: 0;
    margin: 0 0 52px;
    position: relative;
    z-index: 1
}

@media screen and (min-width: 768px) {
    .page-company .s2 h2 {
        margin:0 0 96px
    }
}

.page-company .s2 h2:before {
    display: none
}

.page-company .s2 .s-in {
    position: relative;
    z-index: 1
}

.page-company .s2 .flex {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 22px
}

@media screen and (min-width: 768px) {
    .page-company .s2 .flex {
        margin-bottom:22px
    }
}

.page-company .s2 .flex .l {
    width: 46.8%;
    text-align: right;
    color: #666;
    font-size: 1.2rem;
    line-height: 1.9
}

.page-company .s2 .flex .r {
    letter-spacing: .5px;
    width: 46.8%;
    text-align: left;
    font-size: 1.8rem
}

.page-company .s2 .box {
    margin-top: 98px;
    position: relative;
    z-index: 1
}

@media screen and (min-width: 768px) {
    .page-company .s2 .box {
        margin-top:240px
    }
}

.page-company .s2 .box small {
    text-align: left;
    color: rgba(245,244,239,.2);
    display: block;
    margin-bottom: 37px;
    font-size: 1.2rem
}

@media screen and (min-width: 768px) {
    .page-company .s2 .box small {
        margin-bottom:37px
    }
}

.page-company .s2 .box p {
    font-size: 1.2rem;
    line-height: 2.4;
    width: 100%;
    text-align: left
}

@media screen and (min-width: 768px) {
    .page-company .s2 .box p {
        width:49%
    }
}

.page-company .s2 .imgs {
    position: absolute;
    top: 140px;
    left: 0;
    width: 100%;
    z-index: 0
}

@media screen and (min-width: 768px) {
    .page-company .s2 .imgs {
        top:238px
    }
}

.page-company .s2 .imgs.is-in .in {
    transform: translateX(0) translateY(0) translateZ(0) rotate(0)!important
}

.page-company .s2 .imgs figure .in:after {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.5);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0
}

.page-company .s2 .imgs figure img {
    position: relative;
    z-index: 1
}

.page-company .s2 .imgs .img1 {
    position: absolute;
    top: -24px;
    left: 57.4vw;
    width: 62.3%;
    height: 24vw;
    transform: translateX(0) translateY(0) translateZ(0) rotate(7deg)
}

@media screen and (min-width: 768px) {
    .page-company .s2 .imgs .img1 {
        top:-7.3vw;
        left: 60.9vw;
        width: 34.3%;
        height: 24vw;
        transform: translateX(0) translateY(0) translateZ(0) rotate(7deg)
    }
}

.page-company .s2 .imgs .img1 .in {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transform: translateX(30vw) translateY(100vh) translateZ(0) rotate(-7deg)
}

.page-company .s2 .imgs .img1 .in:after {
    transform: translateX(0) translateY(2%) translateZ(0) rotate(3deg)
}

@media screen and (min-width: 768px) {
    .page-company .s2 .imgs .img1 .in:after {
        transform:translateX(0) translateY(2%) translateZ(0) rotate(3deg)
    }
}

.page-company .s2 .imgs .img2 {
    position: absolute;
    top: 12px;
    left: -15.3vw;
    width: 53.3%;
    height: 24vw;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-4deg)
}

@media screen and (min-width: 768px) {
    .page-company .s2 .imgs .img2 {
        top:-2vw;
        left: 7.9vw;
        width: 28.3%;
        height: 42vw;
        transform: translateX(0) translateY(0) translateZ(0) rotate(-4deg)
    }
}

.page-company .s2 .imgs .img2 .in {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transition-delay: .1s;
    transform: translateX(-30vw) translateY(100vh) translateZ(0) rotate(7deg)
}

.page-company .s2 .imgs .img2 .in:after {
    transform: translateX(0) translateY(4%) translateZ(0) rotate(3deg)
}

.page-company .s2 .imgs .img3 {
    position: absolute;
    top: 312px;
    left: 50vw;
    width: 48.2%;
    height: 24vw;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-5deg)
}

@media screen and (min-width: 768px) {
    .page-company .s2 .imgs .img3 {
        top:26vw;
        left: 57.1vw;
        width: 26.2%;
        height: 26.2vw;
        transform: translateX(0) translateY(0) translateZ(0) rotate(-5deg)
    }
}

.page-company .s2 .imgs .img3 .in {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transition: transform 1.6s;
    transition-delay: .2s;
    transform: translateX(30vw) translateY(100vh) translateZ(0) rotate(-7deg)
}

.page-company .s2 .imgs .img3 .in:after {
    transform: translateX(0) translateY(4%) translateZ(0) rotate(3deg)
}

@media screen and (min-width: 768px) {
    .page-company .s2 .imgs .img3 .in:after {
        transform:translateX(0) translateY(7%) translateZ(0) rotate(3deg)
    }
}

.page-company .s3 {
    padding: 0 26px 35vh;
    text-align: center
}

@media screen and (min-width: 768px) {
    .page-company .s3 {
        padding:120px 15.7vw 35vh
    }
}

.page-company .s3 h2 {
    margin-bottom: 64px;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-company .s3 h2 {
        margin-bottom:84px
    }
}

.page-company .s3 h2:before {
    display: none
}

.page-company .s3 .flex {
    display: flex;
    width: 100%;
    text-align: left
}

.page-company .s3 .flex .t-jp {
    font-size: 1.4rem;
    margin-bottom: 0;
    line-height: 1.8
}

@media screen and (min-width: 768px) {
    .page-company .s3 .flex .t-jp {
        font-size:1.4rem;
        margin-bottom: 4px
    }
}

.page-company .s3 .flex .t-en {
    font-size: 1.2rem;
    color: rgba(245,244,239,.2)
}

.page-company .s3 .flex .l {
    width: 40%;
    border-top: 1px solid #fff;
    padding: 13px 0
}

@media screen and (min-width: 768px) {
    .page-company .s3 .flex .l {
        width:120px;
        padding: 26px 0
    }
}

.page-company .s3 .flex .r {
    width: 60%;
    border-top: 1px solid rgba(245,244,239,.2);
    padding: 13px 0
}

@media screen and (min-width: 768px) {
    .page-company .s3 .flex .r {
        width:calc(100% - 120px);
        padding: 26px 0 26px 12%
    }
}

@media screen and (min-width: 768px) {
    .page-contact .s1,.page-works .s1 {
        padding-bottom:0
    }
}

.page-contact .s1 h2,.page-works .s1 h2 {
    width: 100%;
    text-align: center;
    z-index: 10;
    padding-top: 180px;
    margin-bottom: 100px
}

@media screen and (min-width: 768px) {
    .page-contact .s1 h2,.page-works .s1 h2 {
        padding-top:200px;
        margin-bottom: 150px
    }
}

.page-contact .s1 h2 span,.page-works .s1 h2 span {
    line-height: 1.2;
    font-size: 5.2rem;
    overflow: hidden
}

@media screen and (min-width: 768px) {
    .page-contact .s1 h2 span,.page-works .s1 h2 span {
        font-size:6.8rem
    }
}

.page-contact .s1 h2 span i,.page-works .s1 h2 span i {
    transform: translateX(0) translateY(101%) translateZ(0);
    display: inline-block
}

.works-list {
    padding: 0 26px;
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap
}

@media screen and (min-width: 768px) {
    .works-list {
        padding:0 15.6%
    }
}

.works-list .cell {
    width: 50%;
    color: #f5f4ef;
    position: relative;
    margin-bottom: 42px;
    transform: translateX(0) translateY(100px) translateZ(0);
    opacity: 0;
    transition: all 0s
}

@media screen and (max-width: 768px) {
    .works-list .cell:nth-child(2n+1):before {
        display:block;
        content: '';
        width: 6px;
        height: 1px;
        background: #f5f4ef;
        position: absolute;
        top: 0;
        left: -26px
    }

    .works-list .cell:nth-child(2n):after {
        display: block;
        content: '';
        width: 6px;
        height: 1px;
        background: #f5f4ef;
        position: absolute;
        top: 0;
        right: -26px
    }
}

@media screen and (min-width: 768px) {
    .works-list .cell {
        width:33.3333333%;
        margin-bottom: 60px
    }

    .works-list .cell:nth-child(3n+1):before {
        display: block;
        content: '';
        width: 6px;
        height: 1px;
        background: #f5f4ef;
        position: absolute;
        top: 0;
        left: -8.6vw
    }

    .works-list .cell:nth-child(3n):after {
        display: block;
        content: '';
        width: 6px;
        height: 1px;
        background: #f5f4ef;
        position: absolute;
        top: 0;
        right: -8.6vw
    }
}

.works-list .cell .img {
    width: 100%;
    margin-bottom: 10px;
    position: relative;
    box-sizing: border-box;
    overflow: hidden
}

@media screen and (min-width: 768px) {
    .works-list .cell .img {
        height:12.9vw
    }
}

@media screen and (min-width: 768px) {
    .works-list .cell .img:hover img {
        opacity:0
    }

    .works-list .cell .img:hover .video {
        opacity: 1
    }
}

.works-list .cell .img .in {
    transform: translateX(0) translateY(100%) translateZ(0)
}

.works-list .cell .img img {
    position: relative;
    z-index: 1;
    opacity: 1;
    transition: opacity .3s
}

.works-list .cell .img .video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transition: opacity .3s
}

.works-list .cell .img p {
    text-align: center;
    width: 100%;
    height: 28px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    font-size: 2rem
}

.works-list .cell strong {
    letter-spacing: .7px;
    font-size: 1.2rem;
    padding-right: 10px
}

@media screen and (min-width: 768px) {
    .works-list .cell strong {
        font-size:1.1rem;
        padding-right: 20px
    }
}

.works-list .cell span i {
    font-size: 1rem;
    margin-right: 14px;
    opacity: .3;
    display: inline-block
}

.page-works .s1 {
    padding-bottom: 35vh
}

@media screen and (min-width: 768px) {
    .page-works .s1 {
        padding-bottom:35vh
    }
}

.page-works .s1 .box {
    overflow: hidden
}

.page-works .s1 .btn-more {
    margin: 40px auto 0;
    width: 100px;
    height: 100px;
    text-align: center;
    position: relative;
    cursor: pointer
}

@media screen and (min-width: 768px) {
    .page-works .s1 .btn-more:hover p i {
        transform:translateX(0) translateY(-10px) translateZ(0);
        opacity: 0
    }

    .page-works .s1 .btn-more:hover p i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

.page-works .s1 .btn-more .circle {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(0) translateY(0) translateZ(0) rotate(-90deg)
}

.page-works .s1 .btn-more .circle .c-w {
    position: absolute;
    stroke: #f5f4ef;
    stroke-dasharray: 314px;
    stroke-dashoffset: 314px;
    top: 0;
    left: 0
}

.page-works .s1 .btn-more .circle .c-g {
    stroke: #f5f4ef;
    position: absolute;
    opacity: .1
}

.page-works .s1 .btn-more p {
    text-align: center;
    position: absolute;
    top: 39px;
    left: 0;
    width: 100%
}

.page-works .s1 .btn-more p i {
    position: relative;
    font-size: 1.4rem;
    transition: transform .3s,opacity .3s
}

.page-works .s1 .btn-more p i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transform: translateX(0) translateY(20px) translateZ(0)
}

.page-works-detail .s1 {
    padding-top: 64px;
    padding-bottom: 35vh
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 {
        padding-top:100px;
        padding-bottom: 35vh
    }
}

.page-works-detail .s1 .sp-ttl {
    text-align: center;
    color: rgba(245,244,239,.2);
    margin-bottom: 20px;
    font-size: 1rem;
    letter-spacing: -.7px
}

.page-works-detail .s1 #l-img {
    position: relative;
    overflow: hidden
}

@media screen and (max-width: 768px) {
    .page-works-detail .s1 #l-img {
        margin-bottom:86px
    }
}

.page-works-detail .s1 #l-img img {
    transform: translateX(0) translateY(0) translateZ(0) scale(1.1)
}

.page-works-detail .s1 #l-img .center {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    cursor: pointer
}

.page-works-detail .s1 #l-img .center:hover {
    opacity: 1
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 #l-img .center:hover span i {
        opacity:0;
        transform: translateX(0) translateY(-20px) translateZ(0)
    }

    .page-works-detail .s1 #l-img .center:hover span i:last-child {
        opacity: 1;
        transform: translateX(0) translateY(0) translateZ(0)
    }
}

.page-works-detail .s1 #l-img .center span {
    width: 60px;
    height: 36px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    overflow: hidden
}

.page-works-detail .s1 #l-img .center span:before {
    display: block;
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: #f5f4ef;
    animation: 2s ease infinite playBar;
    transform-origin: top left
}

@keyframes playBar {
    0% {
        transform: translateX(-100%) translateY(0) translateZ(0) scale(0,1)
    }

    100% {
        transform: translateX(100%) translateY(0) translateZ(0) scale(1,1)
    }
}

.page-works-detail .s1 #l-img .center span i {
    line-height: 1;
    font-size: 2rem;
    transition: transform .3s,opacity .3s
}

.page-works-detail .s1 #l-img .center span i:last-child {
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    width: 100%;
    opacity: 0;
    transform: translateX(0) translateY(20px) translateZ(0)
}

.page-works-detail .s1 .t-box {
    padding: 0 26px;
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box {
        padding:90px 15.6%
    }
}

.page-works-detail .s1 .t-box h1 {
    font-size: 2.4rem;
    line-height: 1.3;
    margin-bottom: 40px;
    padding-bottom: 70px;
    position: relative;
    width: 100%
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box h1 {
        margin-bottom:96px;
        padding-bottom: 42px
    }
}

.page-works-detail .s1 .t-box h1:before {
    display: block;
    content: '';
    width: 50px;
    background: #f5f4ef;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0
}

.page-works-detail .s1 .t-box .view-btn {
    position: relative;
    top: -48px
}

@media screen and (max-width: 768px) {
    .page-works-detail .s1 .t-box .view-btn {
        left:calc(100vw - 144px)
    }
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .view-btn {
        position:absolute;
        top: 92px;
        right: 6vw
    }
}

.page-works-detail .s1 .t-box .detail {
    margin-bottom: 100px
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .detail {
        margin-bottom:120px
    }
}

.page-works-detail .s1 .t-box .detail .t-jp {
    font-size: 1.2rem
}

.page-works-detail .s1 .t-box .detail .t-en {
    margin-top: 40px;
    font-size: 1.1rem
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .detail .t-en {
        font-size:1.2rem
    }
}

.page-works-detail .s1 .t-box .detail a {
    margin-top: 46px;
    color: rgba(245,244,239,.2);
    font-size: 1.2rem;
    transition: all .3s
}

.page-works-detail .s1 .t-box .detail a:hover {
    opacity: 1
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .detail a:hover {
        color:#f5f4ef
    }
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .detail a {
        margin-top:56px;
        font-size: 1.4rem
    }
}

.page-works-detail .s1 .t-box .detail a svg {
    margin-left: 10px;
    fill: currentColor;
    width: 6px;
    height: 6px;
    display: inline-block;
    transition: all 0s
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .flex {
        display:flex;
        justify-content: space-between;
        width: 100%
    }
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .flex .l {
        width:46%
    }
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .flex .r {
        width:46%
    }
}

@media screen and (max-width: 768px) {
    .page-works-detail .s1 .t-box .flex .r .in {
        display:block
    }
}

@media screen and (max-width: 768px) {
    .page-works-detail .s1 .t-box .flex .r .in p,.page-works-detail .s1 .t-box .flex .r .in span {
        width:100%
    }
}

.page-works-detail .s1 .t-box .flex .in {
    display: flex;
    justify-content: space-between;
    margin-bottom: 38px
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .flex .in {
        margin-bottom:42px
    }
}

.page-works-detail .s1 .t-box .flex .in span {
    font-size: 1rem;
    color: rgba(245,244,239,.2);
    line-height: 1.1;
    letter-spacing: 1px;
    width: 30%
}

@media screen and (max-width: 768px) {
    .page-works-detail .s1 .t-box .flex .in span {
        margin-bottom:20px
    }
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .flex .in span {
        width:37%;
        padding-right: 30px
    }
}

.page-works-detail .s1 .t-box .flex .in p {
    line-height: 1.4;
    font-size: 1.2rem;
    margin-top: -2px;
    width: 60%
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .t-box .flex .in p {
        padding-right:20px;
        width: 63%
    }
}

.page-works-detail .s1 .list h4 {
    font-size: 1.4rem;
    margin-bottom: 30px;
    padding-left: 26px
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .list h4 {
        font-size:1.6rem;
        margin-bottom: 46px;
        padding-left: 15.6%
    }
}

.page-works-detail .s1 .pagenation {
    margin: 60px 0;
    position: relative;
    height: 60px;
    width: 100%;
    display: flex;
    justify-content: space-between
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation {
        margin:80px 0 0
    }
}

.page-works-detail .s1 .pagenation .prev {
    margin-left: 26px
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation .prev {
        margin-left:7%
    }
}

.page-works-detail .s1 .pagenation .prev .ico {
    left: 0
}

.page-works-detail .s1 .pagenation .prev .ico svg {
    transform: translateX(0) translateY(0) translateZ(0) rotate(-135deg)
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation .prev span {
        padding-left:82px
    }
}

.page-works-detail .s1 .pagenation .prev span i:last-child {
    left: 82px
}

.page-works-detail .s1 .pagenation .next {
    margin-right: 26px
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation .next {
        margin-right:7%
    }
}

.page-works-detail .s1 .pagenation .next .ico {
    right: 0
}

.page-works-detail .s1 .pagenation .next .ico svg {
    transform: translateX(0) translateY(0) translateZ(0) rotate(45deg)
}

.page-works-detail .s1 .pagenation .next span {
    text-align: right;
    padding-right: 0
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation .next span {
        padding-right:82px
    }
}

.page-works-detail .s1 .pagenation .next span i:last-child {
    right: 82px
}

.page-works-detail .s1 .pagenation .next,.page-works-detail .s1 .pagenation .prev {
    position: relative;
    width: 30%;
    height: 60px
}

.page-works-detail .s1 .pagenation .next:hover,.page-works-detail .s1 .pagenation .prev:hover {
    opacity: 1
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation .next:hover span i,.page-works-detail .s1 .pagenation .prev:hover span i {
        transform:translateX(0) translateY(-10px) translateZ(0);
        opacity: 0
    }

    .page-works-detail .s1 .pagenation .next:hover span i:last-child,.page-works-detail .s1 .pagenation .prev:hover span i:last-child {
        transform: translateX(0) translateY(0) translateZ(0);
        opacity: 1
    }
}

.page-works-detail .s1 .pagenation .next .ico,.page-works-detail .s1 .pagenation .prev .ico {
    width: 60px;
    height: 60px;
    border: 1px solid #f5f4ef;
    border-radius: 100%;
    position: absolute;
    top: 0
}

.page-works-detail .s1 .pagenation .next .ico svg,.page-works-detail .s1 .pagenation .prev .ico svg {
    width: 8px;
    height: 8px;
    fill: #f5f4ef;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto
}

.page-works-detail .s1 .pagenation .next span,.page-works-detail .s1 .pagenation .prev span {
    position: relative
}

@media screen and (max-width: 768px) {
    .page-works-detail .s1 .pagenation .next span,.page-works-detail .s1 .pagenation .prev span {
        margin-top:54px
    }
}

.page-works-detail .s1 .pagenation .next span i,.page-works-detail .s1 .pagenation .prev span i {
    font-size: 1rem;
    color: #f5f4ef;
    padding: 20px 0;
    transition: transform .4s,opacity .4s
}

@media screen and (min-width: 768px) {
    .page-works-detail .s1 .pagenation .next span i,.page-works-detail .s1 .pagenation .prev span i {
        font-size:1.2rem
    }
}

.page-works-detail .s1 .pagenation .next span i:last-child,.page-works-detail .s1 .pagenation .prev span i:last-child {
    position: absolute;
    top: 0;
    transform: translateX(0) translateY(20px) translateZ(0);
    opacity: 0
}

.page-works-detail .s1 .pagenation .all {
    width: 60px;
    height: 60px;
    border: 1px solid #f5f4ef;
    border-radius: 100%;
    position: relative
}

.page-works-detail .s1 .pagenation .all:hover {
    opacity: 1
}

.page-works-detail .s1 .pagenation .all:hover span:before {
    transform: translateX(0) translateY(0) translateZ(0)
}

.page-works-detail .s1 .pagenation .all span {
    border: 1px solid #f5f4ef;
    width: 8px;
    height: 6px;
    position: absolute;
    overflow: hidden
}

.page-works-detail .s1 .pagenation .all span:before {
    display: block;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(0) translateY(100%) translateZ(0);
    transition: transform .3s;
    background: #f5f4ef
}

.page-works-detail .s1 .pagenation .all span:nth-child(1) {
    position: absolute;
    top: 22px;
    left: 15px
}

.page-works-detail .s1 .pagenation .all span:nth-child(4) {
    position: absolute;
    top: 32px;
    left: 15px
}

.page-works-detail .s1 .pagenation .all span:nth-child(2) {
    position: absolute;
    top: 22px;
    right: 0;
    left: 0;
    margin: auto
}

.page-works-detail .s1 .pagenation .all span:nth-child(5) {
    position: absolute;
    top: 32px;
    right: 0;
    left: 0;
    margin: auto
}

.page-works-detail .s1 .pagenation .all span:nth-child(3) {
    position: absolute;
    top: 22px;
    left: 35px
}

.page-works-detail .s1 .pagenation .all span:nth-child(6) {
    position: absolute;
    top: 32px;
    left: 35px
}

.page-contact .s1 {
    padding-bottom: 25vh
}

@media screen and (min-width: 768px) {
    .page-contact .s1 {
        padding-bottom:35vh
    }
}

.page-contact #scroll {
    color: #f5f4ef
}

.page-contact .wrap {
    position: relative;
    color: #f5f4ef;
    text-align: center;
    padding-bottom: 140px
}

@media screen and (min-width: 768px) {
    .page-contact .wrap {
        padding-bottom:74px
    }
}

.page-contact .wrap strong {
    font-size: 2.7rem;
    margin-bottom: 60px
}

@media screen and (min-width: 768px) {
    .page-contact .wrap strong {
        font-size:3.6rem;
        margin-bottom: 90px
    }
}

.page-contact .wrap.thanks {
    width: 100%;
    min-height: 100vh;
    padding: 60px 0
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks {
        display:flex;
        align-items: center;
        justify-content: center;
        min-height: 100vh;
        padding: 0
    }
}

.page-contact .wrap.thanks .in {
    width: 100%
}

.page-contact .wrap.thanks h2 {
    margin-bottom: 40px;
    padding-top: 0
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks h2 {
        margin-bottom:90px
    }
}

.page-contact .wrap.thanks h2 span {
    line-height: 1;
    font-size: 16vw;
    text-align: center
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks h2 span {
        font-size:14rem
    }
}

.page-contact .wrap.thanks p {
    width: 72%;
    font-size: 1.3rem;
    margin: 0 auto;
    text-align: center
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks p {
        width:380px;
        font-size: 1.6rem
    }
}

.page-contact .wrap.thanks a {
    border-radius: 100px;
    margin: 50px auto 0;
    padding-top: 20px;
    width: 56%;
    height: 64px;
    background: #f5f4ef;
    position: relative;
    font-weight: 600;
    transition: background .3s,opacity .3s;
    cursor: pointer;
    text-align: center
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks a {
        margin:90px auto 0;
        padding-top: 26px;
        width: 240px;
        height: 88px
    }
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks a:hover {
        background:#000
    }

    .page-contact .wrap.thanks a:hover p {
        color: #f5f4ef
    }
}

.page-contact .wrap.thanks a p {
    width: 100%;
    font-size: 1.6rem;
    transition: color .3s;
    color: #000;
    pointer-events: none
}

@media screen and (min-width: 768px) {
    .page-contact .wrap.thanks a p {
        font-size:2.4rem
    }
}

.page-contact .wrap.confirm .t-gray {
    color: #666;
    margin-bottom: 20px
}

.page-contact .wrap.confirm .radio {
    display: block!important
}

.page-contact .wrap.confirm .radio .cell {
    width: 100%!important
}

.page-contact .wrap.confirm .radio label {
    display: none!important
}

.page-contact .wrap.confirm .radio label:after,.page-contact .wrap.confirm .radio label:before {
    display: none!important
}

.page-contact .wrap.confirm .radio input[checked]+label {
    display: block!important;
    padding-left: 0!important;
    text-align: left;
    font-size: 1.8rem;
    padding: 0 0 10px 0;
    border-bottom: 2px solid #000!important
}

.page-contact .wrap.confirm input {
    background: 0 0!important;
    font-size: 1.8rem!important;
    font-weight: 700;
    padding: 0!important;
    text-indent: 0!important;
    border-bottom: 2px solid #000!important
}

.page-contact .wrap.confirm textarea {
    background: 0 0!important;
    border-bottom: 2px solid #000!important;
    padding: 10px 0!important;
    text-indent: 0!important;
    font-size: 2.2rem!important;
    font-weight: 700
}

.page-contact .wrap .in {
    width: calc(100% - 52px);
    margin: 0 auto;
    position: relative;
    padding: 44px 0;
    font-size: 1.4rem;
    text-align: left
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in {
        width:480px;
        padding: 76px 0;
        font-size: 1.6rem
    }
}

.page-contact .wrap .in .bar {
    position: absolute;
    border-top: 1px solid rgba(245,244,239,.1);
    left: 0;
    width: 100%
}

.page-contact .wrap .in .bar:before {
    display: block;
    content: '';
    position: absolute;
    top: 0;
    left: -120px;
    width: 5px;
    height: 1px;
    background: #f5f4ef
}

.page-contact .wrap .in .bar:after {
    display: block;
    content: '';
    position: absolute;
    top: 0;
    right: -120px;
    width: 5px;
    height: 1px;
    background: #f5f4ef
}

.page-contact .wrap .in .bar-t {
    top: 0
}

.page-contact .wrap .in .bar-b {
    bottom: 0
}

.page-contact .wrap .in .row {
    position: relative
}

.page-contact .wrap .in .row.radio {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 28px
}

@media screen and (max-width: 768px) {
    .page-contact .wrap .in .row.radio {
        justify-content:space-between
    }
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.radio {
        margin-bottom:48px
    }
}

.page-contact .wrap .in .row.radio .cell {
    position: relative;
    width: 50%;
    margin-bottom: 10px
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.radio .cell {
        padding-right:22px;
        margin-bottom: 24px
    }
}

.page-contact .wrap .in .row.radio .cell:last-child {
    margin-right: 0
}

.page-contact .wrap .in .row.radio .cell .radio-input {
    display: none
}

.page-contact .wrap .in .row.radio .cell .radio-input+label {
    padding-left: 20px;
    position: relative;
    margin-right: 10px;
    cursor: pointer;
    width: 100%;
    display: block
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.radio .cell .radio-input+label {
        padding-left:24px;
        margin-right: 14px
    }
}

.page-contact .wrap .in .row.radio .cell .radio-input+label:before {
    display: block;
    content: '';
    position: absolute;
    top: 4px;
    left: 0;
    width: 14px;
    height: 14px;
    background: #000;
    border-radius: 100%
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.radio .cell .radio-input+label:before {
        top:6px
    }
}

.page-contact .wrap .in .row.radio .cell .radio-input+label:after {
    display: block;
    content: '';
    position: absolute;
    top: 7px;
    left: 3px;
    width: 8px;
    height: 8px;
    background: #f5f4ef;
    border-radius: 50%;
    transition: all .3s;
    opacity: 0
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.radio .cell .radio-input+label:after {
        top:9px;
        left: 3px
    }
}

.page-contact .wrap .in .row.radio .cell .radio-input+label i {
    margin-top: 4px;
    font-size: 1.1rem;
    color: rgba(245,244,239,.2)
}

.page-contact .wrap .in .row.radio .cell .radio-input:checked+label::after {
    opacity: 1
}

.page-contact .wrap .in .row .t-require {
    color: #69f;
    margin-top: 12px;
    font-size: 1rem;
    position: absolute;
    top: 0;
    right: 0
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row .t-require {
        margin-top:4px;
        font-size: 1.2rem
    }
}

.page-contact .wrap .in .row.basic {
    text-align: left;
    margin-bottom: 20px
}

.page-contact .wrap .in .row.basic .require {
    display: inline-block;
    margin-bottom: 7px;
    position: relative;
    letter-spacing: 1px
}

.page-contact .wrap .in .row.basic .require em {
    position: relative;
    display: inline-block;
    font-size: 2rem;
    color: currentColor
}

.page-contact .wrap .in .row.basic .require i {
    display: inline-block;
    padding-left: 10px;
    font-size: 1.1rem;
    color: rgba(245,244,239,.2)
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.basic .require i {
        padding-left:20px
    }
}

.page-contact .wrap .in .row.basic input {
    width: 100%;
    outline: 0;
    border: none;
    background: #000;
    height: 48px;
    border-radius: 4px;
    color: #f5f4ef;
    text-indent: 10px;
    font-size: 1.3rem
}

.page-contact .wrap .in .row.basic textarea {
    position: relative;
    height: 240px;
    background: #000;
    border: none;
    border-radius: 4px;
    color: #f5f4ef;
    text-indent: 4px;
    font-size: 1.6rem
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in .row.basic textarea {
        height:300px;
        font-size: 1.6rem
    }
}

.page-contact .wrap .in .flex {
    display: flex;
    justify-content: space-between
}

.page-contact .wrap .in #edit {
    opacity: .4
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in #edit:hover {
        opacity:1;
        background: #f5f4ef
    }

    .page-contact .wrap .in #edit:hover p {
        color: #000
    }
}

.page-contact .wrap .in #confirm,.page-contact .wrap .in #edit,.page-contact .wrap .in #submit {
    border-radius: 100px;
    margin: 60px auto 0;
    padding-top: 17px;
    width: 150px;
    height: 60px;
    background: #f5f4ef;
    position: relative;
    font-size: 1.8rem;
    font-weight: 600;
    transition: background .3s,opacity .3s;
    cursor: pointer;
    text-align: center
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in #confirm,.page-contact .wrap .in #edit,.page-contact .wrap .in #submit {
        margin:77px auto 0;
        padding-top: 24px;
        width: 200px;
        height: 80px;
        font-size: 2.4rem
    }
}

@media screen and (min-width: 768px) {
    .page-contact .wrap .in #confirm:hover,.page-contact .wrap .in #edit:hover,.page-contact .wrap .in #submit:hover {
        background:#000
    }

    .page-contact .wrap .in #confirm:hover p,.page-contact .wrap .in #edit:hover p,.page-contact .wrap .in #submit:hover p {
        color: #f5f4ef
    }
}

.page-contact .wrap .in #confirm p,.page-contact .wrap .in #edit p,.page-contact .wrap .in #submit p {
    transition: color .3s;
    color: #000;
    pointer-events: none
}

.page-contact .wrap .in #confirm input,.page-contact .wrap .in #edit input,.page-contact .wrap .in #submit input {
    cursor: pointer;
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

#modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 70;
    cursor: pointer;
    background-color: rgba(25,26,27,.8);
    pointer-events: none;
    opacity: 0;
    overflow: hidden;
    transition: opacity .4s
}

#modal.is-in {
    pointer-events: visible;
    opacity: 1
}

#modal.is-in video {
    pointer-events: visible
}

#modal.is-loading .in {
    opacity: 0
}

#modal.is-loading .in video {
    opacity: 0
}

#modal.is-loading p i {
    transform: translateX(0) translateY(0) translateZ(0)
}

#modal .close {
    position: absolute;
    top: 0;
    display: inline-block;
    text-align: center;
    right: 0;
    width: 100%;
    height: 100%;
    color: #f5f4ef;
    z-index: 30
}

@media screen and (max-width: 768px) {
    #modal .close i {
        width:60px;
        height: 60px;
        position: absolute;
        top: 1px;
        right: 10px;
        margin: auto;
        z-index: 1
    }

    #modal .close i:before {
        display: block;
        content: '';
        width: 30px;
        height: 2px;
        background: #f5f4ef;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        transform: translateX(0) translateY(0) translateZ(0) rotate(-35deg)
    }

    #modal .close i:after {
        display: block;
        content: '';
        width: 30px;
        height: 2px;
        background: #f5f4ef;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        transform: translateX(0) translateY(0) translateZ(0) rotate(35deg)
    }
}

@media screen and (min-width: 768px) {
    #modal .close {
        right:0;
        width: 100%;
        height: 100%;
        cursor: pointer
    }
}

#modal .in {
    overflow: hidden;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    left: 0;
    z-index: 20;
    opacity: 1;
    transition: opacity .3s
}

#modal .in video {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 100%;
    max-width: 100vw;
    max-height: 100vh;
    z-index: 1
}

@media screen and (max-width: 768px) {
    #modal .in video {
        opacity:1;
        transition: opacity .3s
    }
}

#modal p {
    position: absolute;
    top: calc(50% - 20px);
    left: 0;
    text-align: center;
    width: 100%;
    font-size: 1.8rem;
    z-index: 10;
    overflow: hidden;
    pointer-events: none;
    color: #f5f4ef
}

@media screen and (min-width: 768px) {
    #modal p {
        top:calc(50vh - 10px)
    }
}


::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-thumb {
    border-radius: 10px !important;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
    background: rgba(0, 0, 0, 0.1) !important;
}
::-webkit-scrollbar-track {
    border-radius: 10px !important;
    background: #ededed !important;
}

@media screen and (max-width: 1580px) {
	.page-top .s2 .works-cell strong {
	    font-size: 3vw;
	}
	#menu .flex a span i{
		font-size: 4.4rem;
	}
	#menu .contact strong span i{
		font-size: 5rem;
	}
	.page-top .s21 .works-cell img{
		max-width: 80%;
	}
	#f h2{
		font-size: 7.4rem;
	}
	#f .contact strong span i{
		font-size: 3.4rem;
	}
	#f .next .center .align strong{
		font-size: 4rem;
	}
}
@media screen and (max-width: 1280px) {
	h2{
		font-size: 3rem;
	}
	.page-top .s21 .works-cell img {
	    max-width: 72%;
	}
	.page-top .s3 .box h3{
		font-size: 18px;
	}
	#f h2 {
	    font-size: 6.4rem;
	}
	#f .contact strong span i {
	    font-size: 5rem;
	}
	.foot-w h3{
		font-size: 16px;
	}
	.foot-w p{
		margin-top: 0;
	}
}