/*=============================================================
  common.css
---------------------------------------------------------------

01. common layout
02. header
03. footer
04. home
. media query
. helper

===============================================================
01. common layout
=============================================================*/
.preload * {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -ms-transition: none !important;
    transition: none !important;
}
.pc {
	display: inline-block;
}
.sp {
	display: none;
}
.central {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-50%);
	-webkit-transform: translateX(-50%) translateY(-50%);
	-moz-transform: translateX(-50%) translateY(-50%);
	-ms-transform: translateX(-50%) translateY(-50%);
}
img {
    width: 100%;
}
#below-main-header {
    transition: all ease 1000ms;
}

/*
* loading
*/
#loading-layer {
    width: 100%;
    height: 100%;
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transition: all ease 800ms;
    transition-delay: 200ms;
}
.loaded #loading-layer {
    opacity: 0;
    visibility: hidden;
}

/*
* video
*/
#video-wrapper {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
}
#video-wrapper #video {
    min-width: 100%;
    min-height: 100%;
    background-color: #000;
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
	transform: translateX( -50% ) translateY( -50% );
	-webkit-transform: translateX( -50% ) translateY( -50% );
	-moz-transform: translateX( -50% ) translateY( -50% );
	-ms-transform: translateX( -50% ) translateY( -50% );
}

/*
* visual
*/
#visual, 
#visual #visual-inner-01, 
#visual #visual-inner-02 {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 2;
    overflow: hidden;
}
#visual::before {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background: rgba( 0,0,0,0.15 );
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
#visual #visual-inner-01, 
#visual #visual-inner-02 {
    border: solid 1px rgba( 255,255,255,0.6 );
}
#visual #visual-inner-01 {
    top: 24px;
    left: 24px;
}
#visual #visual-inner-02 {
    top: 2px;
    left: 2px;
}
#visual #visual-logo {
    width: 100%;
    position: absolute;
    top: 47%;
    left: 0;
    z-index: 1;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
    overflow: hidden;
}
#visual #visual-logo p {
    width: 100%;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    font-size: 10px;
    line-height: 0;
    text-align: center;
}
#visual #visual-logo img {
    vertical-align: top;
}
#visual #visual-logo p::before,
#visual #visual-logo p::after {
    display: block;
    content: "";
    height: 100%;
    position: absolute;
    top: 0;
    z-index: 1;
}
#visual #visual-logo p::before {
    background: url( ../img/shared/visual-stripe-left.png ) right top repeat-x;
    -webkit-background-size: auto 100%;
    background-size: auto 100%;
    left: 0;
}
#visual #visual-logo p::after {
    background: url( ../img/shared/visual-stripe-right.png ) left top repeat-x;
    -webkit-background-size: auto 100%;
    background-size: auto 100%;
    right: 0;
}
#visual #icon-scroll {
    width: 9px;
    padding: 15px;
    background-color: #fff;
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 1;
	transform: translateX( -50% );
	-webkit-transform: translateX( -50% );
	-moz-transform: translateX( -50% );
	-ms-transform: translateX( -50% );
}
#visual #icon-scroll img {
    margin-bottom: 10px;
}
#visual #icon-scroll #scroll-bars {
    width: 100%;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
}
#visual #icon-scroll #scroll-bars,
#visual #icon-scroll #scroll-bars span {
    height: 50px;
}
#visual #icon-scroll #scroll-bars span {
    display: inline-block;
    width: 1px;
    background-color: #eee;
    position: absolute;
    top: 0;
    z-index: 1;
}
#visual #icon-scroll #scroll-bars span:nth-of-type(1) {
    left: 1px;
}
#visual #icon-scroll #scroll-bars span:nth-of-type(2) {
    left: 4px;
}
#visual #icon-scroll #scroll-bars span:nth-of-type(3) {
    right: 1px;
}
#visual #icon-scroll #scroll-bars span::before {
    display: inline-block;
    content: "";
    width: 1px;
    height: 14px;
    background-color: #888;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    animation: rain ease infinite 3000ms;
}
#visual #icon-scroll #scroll-bars span:nth-of-type(2)::before {
    animation-delay: 100ms;
}
#visual #icon-scroll #scroll-bars span:nth-of-type(3)::before {
    animation-delay: 200ms;
}
@keyframes rain {
    0%{ top: -20px; }
    100%{ top: 90px; }
}

/*
* visual motion
*/
#visual #visual-logo::before,
#visual #visual-logo::after {
    display: block;
    content: "";
    width: 50%;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0;
    z-index: 2;
    transition: all ease 1100ms;
    transition-delay: 400ms;
}
#visual #visual-logo::before {
    left: 0;
}
#visual #visual-logo::after {
    right: 0;
}
.loaded #visual #visual-logo::before, 
.loaded #visual #visual-logo::after {
    width: 0;
    opacity: 0.3;
}

/*
* contents
*/
#contents {
    width: 100%;

    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
}
.inner {
    width: 86%;
    margin: 0 auto;
}

.inner .tit {
    margin-bottom: 14px;
    font-weight: normal;
    font-size: 34px;
    line-height: 1.7;
    letter-spacing: 5px;
}

.inner p {
    margin-bottom: 15px;
    font-size: 17px;
    line-height: 2;
    letter-spacing: 2px;
}
.inner p:last-of-type {
    margin-bottom: 0;
}
.base-white,
.base-white-plane,
.base-gray,
.base-gray-alt {
    padding: 70px 0 80px;
}
.base-white {
    background: rgba(255,255,255,0.98);
}
.base-white-plane {
    background: #fff;
}
.base-gray {
    background: rgba(248,248,248,0.97);
}
.base-gray-alt {
    background: rgba(248,248,248,0.9);
}

/*
* wide img
*/
.wide-img,
.wide-img .mono {
    width: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    -webkit-background-size: cover;
    background-size: cover;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.wide-img {
    height: 680px;
    margin: 0 0 50px 0;
    position: relative;
}
.wide-img::after {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    transition: all ease 600ms;
}
.active .wide-img::after {
    opacity: 0;
}
.wide-img .mono {
    height: 100%;
    position: absolute;
    transition: all ease 700ms;
    transition-delay: 1000ms;
}
.active .wide-img .mono {
    opacity: 0;
}

/*
* btn
*/
.btn-wrapper {
    display: inline-block;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
}
.btn-wrapper::before {
    display: inline-block;
    content: "";
    width: 100%;
    height: 100%;
    background: #eee;
    position: absolute;
    top: 5px;
    left: 6px;
    z-index: 1;
}
.btn {
    display: inline-block;
    padding: 25px 30px;
    background: url(../img/shared/btn-bg.jpg) top left no-repeat;
    -webkit-background-size: cover;
    background-size: cover;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    font-size: 22px;
    letter-spacing: 3px;
    color: #fff;
    text-decoration: none;
    overflow: hidden;
}
.btn::before,
.btn::after {
    display: inline-block;
    content: "";
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}
.btn::before {
    width: 0;
    background: rgba(255,255,255,0.1);
    transition: all ease 350ms;
}
.btn:hover::before {
    width: 100%;
}
.btn::after {
    width: 100%;
    border: solid 2px rgba(0,0,0,0.15);
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
.btn img {
    display: inline-block;
    width: 12px;
    padding-right: 10px;
}
.btn:hover img {
    animation: arrow-rotation linear infinite 2000ms;
}
@keyframes arrow-rotation {
    0%{ transform: rotateX( 0deg ); }
    100%{ transform: rotateX( 360deg ); }
}

/*
* basic motion
*/
.elem-01,
.elem-02,
.elem-03,
.elem-04,
.elem-05, 
.elem-text-01,
.elem-text-02,
.elem-text-03,
.elem-text-04,
.elem-text-05 {
    display: inline-block;
    opacity: 0;
    transition: all ease 1700ms;
    background: rgba(255,255,255,0.001);
}
.elem-text-01,
.elem-text-02,
.elem-text-03,
.elem-text-04,
.elem-text-05 {
    /* text-shadow: 0 0 40px #000;
    color: rgba(51,51,51,0); */
}
.elem-02,
.elem-text-02 {
    transition-delay: 400ms;
}
.elem-03,
.elem-text-03 {
    transition-delay: 800ms;
}
.elem-04,
.elem-text-04 {
    transition-delay: 1200ms;
}
.elem-05,
.elem-text-05 {
    transition-delay: 1600ms;
}
.active .elem-01,
.active .elem-02,
.active .elem-03,
.active .elem-04,
.active .elem-05,
.active .elem-text-01,
.active .elem-text-02,
.active .elem-text-03,
.active .elem-text-04,
.active .elem-text-05 {
    opacity: 0.99;
}
.active .elem-text-01,
.active .elem-text-02,
.active .elem-text-03,
.active .elem-text-04,
.active .elem-text-05 {
    /* text-shadow: 0 0 0 #000;
    color: rgba(51,51,51,1); */
}

/*
* .mono-img
*/
.mono-imgs-wrapper {
    margin-bottom: 20px;
}
.mono-imgs-wrapper .box-img {
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    float: left;
    transition: all ease 1200ms;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    opacity: 0;
}
.active .mono-imgs-wrapper .box-img {
    opacity: 0.99;
}
.mono-imgs-wrapper .box-img img {
    vertical-align: top;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.mono-imgs-wrapper .box-img img:nth-of-type(2) {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    transition: all ease 400ms;
}
.active .mono-imgs-wrapper .box-img img:nth-of-type(2) {
    opacity: 0;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(2) {
    transition-delay: 100ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(3) {
    transition-delay: 200ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(4) {
    transition-delay: 300ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(5) {
    transition-delay: 400ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(6) {
    transition-delay: 500ms;
}
.active .mono-imgs-wrapper .box-img img:nth-of-type(2)  {
    opacity: 0;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(1) img:nth-of-type(2) {
    transition-delay:1200ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(2) img:nth-of-type(2) {
    transition-delay:1300ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(3) img:nth-of-type(2) {
    transition-delay:1400ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(4) img:nth-of-type(2) {
    transition-delay:1500ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(5) img:nth-of-type(2) {
    transition-delay:1600ms;
}
.active .mono-imgs-wrapper .box-img:nth-of-type(6) img:nth-of-type(2) {
    transition-delay:1700ms;
}

/*=============================================================
02. header
=============================================================*/
#main-header {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
}
#main-header h1 {
    width: 500px;
    position: absolute;
    top: 50px;
    left: 50px;
    z-index: 1; 
}
#main-header h1 a {
    display: block;
}

/*
* nav icon
*/
#main-header #icon-wrapper {
    width: 160px;
    height: 100px;
    -webkit-box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    -moz-box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    -ms-box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    position: fixed;
    top: 28px;
    right: 28px;
    z-index: 1;
}
#main-header #icon-wrapper #icon-nav,
#main-header #icon-wrapper #lang-nav {
    display: inline-block;
    vertical-align: top;
}
#main-header #icon-wrapper #lang-nav ul li a {
    display: inline-block;
    width: 60px;
    height: 50px;
    font-size: 14px;
    line-height: 50px;
    text-align: center;
    text-decoration: none;
    letter-spacing: 2px;
}
#main-header #icon-wrapper #lang-nav ul li a {
    background: rgba(240,240,240,0.96);
}
.jp #main-header #icon-wrapper #lang-nav ul li:nth-of-type(1) a {
    background: rgba(185,130,130,0.96);
}
.en #main-header #icon-wrapper #lang-nav ul li:nth-of-type(2) a {
    background: rgba(185,130,130,0.96);
}
#main-header #icon-wrapper #icon-nav {
    width: 100px;
    height: 100px;
    background: #fff;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    transition: all ease 600ms;
    overflow: hidden;
    cursor: pointer;
}
#main-header #icon-nav span {
    display: block;
    width: 40px;
    height: 1px;
    background: #333;
    position: absolute;
    left: 30px;
    z-index: 1;
    transition: all ease 600ms;
}
#main-header #icon-nav span:nth-of-type(1) {
    top: 39px;
}
#main-header #icon-nav span:nth-of-type(2) {
    top: 49px;
}
#main-header #icon-nav span:nth-of-type(3) {
    top: 59px;
}
#main-header #icon-nav span:nth-of-type(4),
#main-header #icon-nav span:nth-of-type(5) {
    top: 125px;
    opacity: 0;
}
#main-header #icon-nav span:nth-of-type(4) {
    -webkit-transform: rotate( 45deg );
    transform: rotate( 45deg );
}
#main-header #icon-nav span:nth-of-type(5) {
    -webkit-transform: rotate( -45deg );
    transform: rotate( -45deg );
}

/*
* nav icon active
*/
.nav-active #main-header #icon-wrapper {
    -webkit-box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    -moz-box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    -ms-box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
    box-shadow: 1px 1px 15px 1px rgba(0,0,0,0.15);
}
.nav-active #main-header #icon-nav span:nth-of-type(1),
.nav-active #main-header #icon-nav span:nth-of-type(2),
.nav-active #main-header #icon-nav span:nth-of-type(3) {
    transform: translateY( -55px );
    opacity: 0;
}
.nav-active #main-header #icon-nav span:nth-of-type(4), 
.nav-active #main-header #icon-nav span:nth-of-type(5) {
    top: 50px;
    opacity: 1; 
}
.nav-active #main-header #icon-nav span:nth-of-type(2) {
    transition-delay: 100ms;
}
.nav-active #main-header #icon-nav span:nth-of-type(3){
    transition-delay: 200ms;
}
.nav-active #main-header #icon-nav span:nth-of-type(4) {
    transition-delay: 300ms;
}
.nav-active #main-header #icon-nav span:nth-of-type(5){
    transition-delay: 400ms;
}

/*
* global nav
*/
#main-header #main-nav {
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.4);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
    visibility: hidden;
    transition: all ease 800ms;
    opacity: 0;
}
.msie #main-header #main-nav,
.edge #main-header #main-nav,
.firefox #main-header #main-nav,
.android-default-browser #main-header #main-nav {
    background: rgba(255,255,255,0.93);
}
#main-header #main-nav #close-layer {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
#main-header #main-nav ul {
    top: 49%;
    left: 53%;
    z-index: 2;
}
#main-header #main-nav ul li {
    display: block;
    position: relative;
    top: 0;
    z-index: 1;
    transition: all ease 500ms;
    transition-delay: 200ms;
    opacity: 0;
    overflow: hidden;
}
#main-header #main-nav ul li:nth-child(odd) {
   left: 35px; 
}
#main-header #main-nav ul li:nth-child(even) {
   left: -35px; 
}
#main-header #main-nav ul li a {
    display: block;
    padding: 18px 0;
    color: #000;
    text-decoration: none;
    font-size: 60px;
    letter-spacing: 12px;
    white-space: nowrap;
}
#main-header #main-nav ul li a span {
    display: inline-block;
    transition: all ease 200ms;
    opacity: 0.5;
}
#main-header #main-nav ul li a:hover span {
    transform: skewX( -8deg );
    opacity: 1;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(2) {
    transition-delay: 50ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(3) {
    transition-delay: 100ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(4) {
    transition-delay: 150ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(5) {
    transition-delay: 200ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(6) {
    transition-delay: 250ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(7) {
    transition-delay: 300ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(8) {
    transition-delay: 350ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(9) {
    transition-delay: 400ms;
}
.nav-active #main-header #main-nav ul li a:hover span:nth-of-type(10) {
    transition-delay: 450ms;
}

/*
* global nav active
*/
.no-branch.nav-active #below-main-header {
    -webkit-filter: blur( 20px );
    -moz-filter: blur( 20px );
    -ms-filter: blur( 20px );
    filter: blur( 20px );
}
.nav-active #main-header #main-nav {
    visibility: visible;
}
.nav-active #main-header #main-nav {
    visibility: visible;
    opacity: 1;
}
.nav-active #main-header #main-nav ul li:nth-child(odd),
.nav-active #main-header #main-nav ul li:nth-child(even) {
    left: 0;
    opacity: 1;
}

/*=============================================================
03. footer
=============================================================*/
#main-footer {
    border-top: solid 1px #f0f0f0;
    background: #f7f7f7;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
}
#main-footer p {
    height: 140px;
    font-size: 14px;
    text-align: center;
    line-height: 140px;
    letter-spacing: 3px;
}

/*=============================================================
04. home
=============================================================*/
#home #visual #visual-copy-sp {
    display: none;
}
#home #main-header h1 {
    display: none;
}
#home #visual #visual-logo img {
    width: 64%;
}
#home #visual #visual-logo p::before,
#home #visual #visual-logo p::after {
    width: 18%;
}

#home #part-02.base-white {
    padding-top: 0;
}
#home #part-02 .mono-imgs-wrapper .box-img {
    width: 25%;
}

#home #part-01.base-white {
    padding-bottom: 40px;
}

#home #part-03 {
    overflow: hidden;
}
#home #part-03 .inner {
    width: 98%;
    max-width: 1600px;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
}
#home #part-03 .inner:nth-of-type( 2 ) {
    display: none;
}
#home #part-03.base-gray-alt {
    padding: 0 0 25px;
}
#home #part-03 .inner img {
    display: block;
    position: absolute;
    z-index: 1;
    opacity: 0;
    overflow: hidden;
}

#home #part-03 .inner h1 img.pc {
    display: block;
}
#home #part-03 .inner h1 img.sp {
    display: none;
}
#home #part-03 .inner #map-01 img {
    top: 0;
    left: 0;
    transition: all ease 1200ms;
    transform: scale( 1.7 );
}

#home #part-03.active .inner #map-01 img {
    top: 0;
    transform: scale( 1 );
    opacity: 0.99;
}

#home #part-03 .inner #map-01 img:nth-of-type(1) {
    position: relative;
}

#home #part-03 .inner #pins img {
    top: -20px;
    left: 0;
    transition: all ease 600ms;
}
#home #part-03.active .inner #pins img {
    top: 0;
    opacity: 1;
}

#home #part-03 .inner h1 img,
#home #part-03 .inner p img {
    top: 0;
    left: 20px;
    transition: all ease 600ms;
	z-index: 2;
}
#home #part-03.active .inner h1 img,
#home #part-03.active .inner p img {
    left: 0;
    opacity: 1;
}
#home #part-03 .inner #pins img:nth-of-type(1),
#home #part-03.active .inner h1 img {
    transition-delay: 1200ms;
}
#home #part-03 .inner #pins img:nth-of-type(2),
#home #part-03 .inner p img:nth-of-type(1) {
    transition-delay: 1600ms;
}

#home #part-04.base-white-plane {
    padding: 0;
}
#home #part-04 nav ul li {
    width: 25%;
    float: left;
    overflow: hidden;
    text-align: center;
    transition: all ease 1200ms;
    opacity: 0;
}
#home #part-04.active nav ul li {
    opacity: 1;
}
#home #part-04.active nav ul li:nth-of-type(2) {
    transition-delay: 100ms;
}
#home #part-04.active nav ul li:nth-of-type(3) {
    transition-delay: 200ms;
}
#home #part-04.active nav ul li:nth-of-type(4) {
    transition-delay: 300ms;
}
#home #part-04 nav ul li:nth-child(odd){
    background: #f7f7f7;
}
#home #part-04 nav ul li:nth-child(even){
    background: #f0f0f0;
}
#home #part-04 nav ul li a {
    display: block;
    padding-bottom: 45px;
    text-decoration: none;
    font-size: 22px;
    letter-spacing: 3px;
}
#home #part-04 nav ul li a span {
    font-size: 13px;
}
#home #part-04 .box-img {
    margin-bottom: 30px;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
}
#home #part-04 .box-img::after {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.15);
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    transition: all ease 400ms;
    opacity: 0;
}
#home #part-04 a:hover .box-img::after {
    opacity: 1;
}
#home #part-04 .box-img img {
    display: block;
    vertical-align: top;
    background: rgba(255,255,255,0.001);
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
#home #part-04 .box-img img:nth-of-type(2),
#home #part-04 .box-img img:nth-of-type(3) {
    position: absolute;
    left: 0;
}
#home #part-04 .box-img img:nth-of-type(2) {
    top: 0;
    z-index: 1;
    transition: all ease 400ms;
}
#home #part-04 ul li:nth-of-type(1) .box-img img:nth-of-type(2) {
    transition-delay: 1000ms;
}
#home #part-04 ul li:nth-of-type(2) .box-img img:nth-of-type(2) {
    transition-delay: 1100ms;
}
#home #part-04 ul li:nth-of-type(3) .box-img img:nth-of-type(2) {
    transition-delay: 1200ms;
}
#home #part-04 ul li:nth-of-type(4) .box-img img:nth-of-type(2) {
    transition-delay: 1300ms;
}
#home #part-04.active .box-img img:nth-of-type(2) {
    opacity: 0;
}
#home #part-04 .box-img img:nth-of-type(3) {
    height: 0;
    bottom: -1px;
    z-index: 2;
    transition: all ease 300ms;
}
#home #part-04 ul li:nth-of-type(1) .box-img img:nth-of-type(3) {
    transition-delay: 250ms;
}
#home #part-04 ul li:nth-of-type(2) .box-img img:nth-of-type(3) {
    transition-delay: 350ms;
}
#home #part-04 ul li:nth-of-type(3) .box-img img:nth-of-type(3) {
    transition-delay: 450ms;
}
#home #part-04 ul li:nth-of-type(4) .box-img img:nth-of-type(3) {
    transition-delay: 550ms;
}
#home #part-04.active .box-img img:nth-of-type(3) {
    height: 40px;
}

#home #part-05.base-white-plane {
    padding-top: 0;
}
#home #part-05 .wide-img,
#home #part-05 .wide-img .mono {
    background-position: top center;
}
#home #part-05 .wide-img {
    background-image: url(../img/home/recruit.jpg?v2);
}
#home #part-05 .wide-img .mono {
    background-image: url(../img/home/recruit-mono.jpg?v2);
}
#home #part-05 p:last-of-type{
    margin-bottom: 8px;
}
#home #part-05 .btn {
    padding: 25px 50px;
}

#home #part-05 .addition h1 {
	font-size: 20px;
	width: 100%;
	margin-top: 60px;
	margin-bottom: 5px;
}

/*=============================================================
. mobile
=============================================================*/
.mobile .btn::before {
    display: none;
}
.mobile .btn:hover img {
    animation: none;
}
.mobile #main-header #main-nav ul li a:hover span {
    opacity: 0.5;
    transform: none;
}
#home.mobile #video-wrapper,
#home.mobile #visual {
    background-position: center center;
    background-repeat: no-repeat;
    -webkit-background-size: cover;
    background-size: cover;
}
#home.mobile #video-wrapper::after {
    display: inline-block;
    content: "";
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
}
#home.mobile #part-04 a .box-img::after {
    display: none;
}

/*=============================================================
. media query
=============================================================*/
@media screen and ( min-width: 1700px ) {
    #main-header #main-nav ul li a {
        font-size: 70px;
        letter-spacing: 18px;
    }
}
@media screen and ( max-width: 1400px ) {
    #main-header #main-nav ul li a {
        font-size: 50px;
    }
}
@media screen and ( max-width: 1024px ) {
    #home.mobile #part-03.base-gray-alt {
        background: rgba( 255,255,255,0.5 );
    }
}
@media screen and ( max-width: 900px ) {
	.pc {
		display: none;
	}
	.sp {
		display: inline-block;
	}
    .inner {
        width: 70%;
    }
    .inner .tit {
        font-size: 26px;
    }
    .inner p {
        font-size: 16px;
        letter-spacing: 1px;
    }
    .btn-wrapper,
    .btn {
        width: 100%;
    }
    .btn {
        padding: 25px 0 !important;
        text-align: center;
    }
    .base-white, .base-white-plane,
    .base-gray, .base-gray-alt {
        padding: 35px 0;
    }
    .wide-img {
        height: 0;
        padding-top: 60%;
        margin-bottom: 30px;
    }

    #main-footer p {
        height: auto;
        padding: 40px 0;
        font-size: 12px;
        line-height: 1.8;
        letter-spacing: 2px;
        color: #999;
    }

    #home #part-01.base-white {
        padding-bottom: 20px;
    }
    #home #part-01 .tit br.sp {
        display: none;
    }
    #home #part-02 .mono-imgs-wrapper .box-img {
        width: 50%;
    }
    #home #part-03 .inner {
        width: 100%;
    }
    #home #part-03 .inner h1 img.pc,
    #home #part-03 .inner p img {
        display: none;
    }
    #home #part-03 .inner h1 img.sp {
        display: block;
        transition-delay: 1200ms;
    }
    #home #part-03 .inner:nth-of-type( 2 ) {
        width: 70%;
        display: block;
    }
    #home #part-03 .inner:nth-of-type( 2 ) p {
        margin-bottom: 20px;
        transition: all ease 600ms;
        transition-delay: 1900ms;
        opacity: 0;
        text-align: center;
        line-height: 1.9;
    }
    #home #part-03.active .inner:nth-of-type( 2 ) p {
        opacity: 1;
    }
    #home #part-03 .inner:nth-of-type( 2 ) p span {
        display: inline-block;
        border-bottom: solid 6px #e51718;
        margin-bottom: 5px;
        line-height: 1;
        font-size: 34px;
    }
    #home #part-04 nav ul li {
        width: 50%;
    }
    #home #part-04 nav ul li a {
        padding-bottom: 25px;
        font-size: 17px;
    }
    #home #part-04 .box-img {
        margin-bottom: 15px;
    }
    #home #part-04.active .box-img img:nth-of-type( 3 ) {
        height: 30px;
    }
    #home #part-05 nav {
        width: 100%;
    }
    #home #part-05 .addition h1 {
        margin-top: 30px;
        margin-bottom: 14px;
        font-size: 26px;
    }
}

@media screen and ( min-width: 501px ) {
    #home.mobile #video-wrapper {
        background-image: url( ../img/home/tab-sky.gif );
    }
    #home.mobile #visual {
        background-image: url( ../img/home/tab-visual.png );
    }
    #home.mobile #video-wrapper::after {
        background: rgba( 89,148,200,0.58 );
    }
}

@media screen and ( max-width: 500px ) {
    #main-header #icon-wrapper {
        width: auto;
        height: auto;
        top: 0;
        right: 0;
    }
    #main-header #icon-wrapper #icon-nav {
        width: 70px;
        height: 70px;
    }
    #main-header #icon-nav span {
        width: 30px;
        left: 20px;
    }
    #main-header #icon-nav span:nth-of-type( 1 ) {
        top: 25px;
    }
    #main-header #icon-nav span:nth-of-type( 2 ) {
        top: 34px;
    }
    #main-header #icon-nav span:nth-of-type( 3 ) {
        top: 43px;
    }
    .nav-active #main-header #icon-nav span:nth-of-type( 4 ),
    .nav-active #main-header #icon-nav span:nth-of-type( 5 ) {
        top: 35px;
    }
    #main-header #icon-wrapper #lang-nav ul li a {
        width: 45px;
        height: 35px;
        line-height: 35px;
        font-size: 12px;
    }
    #main-header #main-nav ul {
        width: 100%;
        top: 50%;
        left: 50%;
    }
    #main-header #main-nav ul li a {
        text-align: center;
        font-size: 1.7rem;
        letter-spacing: 5px;
    }
    #main-header #main-nav ul li a span:last-of-type {
        letter-spacing: 0;
    }
    #visual #visual-inner-01,
    #visual #visual-inner-02 {
        border: none;
        overflow: visible;
    }
    #visual #icon-scroll {
        bottom: -30px;
    }
    #home #part-01 .tit br.sp {
        display: inline-block;
    }
    #home #part-03 .inner:nth-of-type( 2 ) p {
        margin-bottom: 10px;
    }

    #home.mobile #visual #visual-logo {
        display: none;
    }
    #home.mobile #visual #visual-copy-sp {
        display: block;
    }
    #home.mobile #video-wrapper::after {
        background: rgba( 89,148,200,0.48 );
    }
    #home.mobile #video-wrapper {
        background-image: url( ../img/home/sp-sky.gif );
    }
    #home.mobile #visual {
        background-image: url( ../img/home/sp-visual.png );
    }
    #home.mobile #visual #visual-copy-sp {
        width: 23%;
        top: 19%;
    }
}

/*=============================================================
. helper
=============================================================*/
.clr {
	clear: both;
}

/*
* clear fix
*/
.cf:before,
.cf:after {
	content:"";
	display: block;
	height: 0;
	overflow: hidden;
}
.cf:after {
	clear: both;
}
