@charset "utf-8";
/* CSS Document */



@media only screen and (max-width:1320px){
	
	#content { width: 90%; }
    
    .top-warpper::before{ height: calc(100% - 180px); }
    
    .td-text_space{ display: none;}
}

@media only screen and (max-width:1180px){
    header #pc_nav .menu ul { width: 100%; }
    
    .company-tit{ font-size: 1.5em; }
    .top-warpper::before{ 
        top: 175px;
        height: calc(100% - 115px);
        width: calc(100% - 260px);
    }
    
    .heading .en-tit{ font-size: 1.4em; }
    .heading .tit{ font-size: 1.2em; }
    
    .works-heading .en-tit{ font-size: 1.4em; }
    .works-heading .tit{ font-size: 1.2em; }
}

@media only screen and (max-width:1024px){
	
	header #pc_nav { width: 48%; }
    header .logo{ padding: 20px 30px; width: 330px;}
	
    
    
    .banner-flex .banner-item .arrow{ width: 40px; height: 40px; }
    .banner-flex .banner-item .banner-heading .en-tit{ font-size: 1.4em; }
    
}

@media only screen and (max-width:990px){
    .top-company-flex .flex-img img { height: calc(100% - 300px); }
    .th-tit{ width: 100px; }
}

@media only screen and (max-width:880px){
    
    #vegas .caption{ font-size: 3.5em; }
    
    /*company*/
    /*.top-company-flex .flex-img img{ height: calc(100% - 400px); }
    .top-warpper::before{
        top: 210px;
        height: calc(100% - 150px);
    }*/
    
    /*company*/
    .top-company-flex{ flex-direction: column;}
    .top-company-flex .flex-text-box{ width: 100%;  margin: 40px 0 0 0; }
    .top-company-flex .flex-img{ width: 100%; }
    .top-company-flex .flex-img img{ height: 400px; }
    .company-tit{ font-size: 1.4em; margin-bottom: 30px; }
    .th-tit{ width: 100px; }
    .td-text{ width: calc(100% - 100px); }
    .th-tit, .td-text{ font-size: .9em; }
    .top-warpper::before {
        height: 100%;
        width: 100%;
        bottom: 0;
    }
    
    header #pc_nav { display: none; }
    
    /* sp menu */
    .button_container span.change-color {
        background-color: #0E1F58;
    }
	.button_container {
		display: block;
  		position: fixed;
  		top: 3%;
  		right: 5%;
  		height: 27px;
  		width: 45px;
  		cursor: pointer;
  		z-index: 100;
  		-webkit-transition: opacity .25s ease;
  		transition: opacity .25s ease;
		z-index: 2000;
	}
	.button_container:hover {
  		opacity: .7;
	}
	.button_container.active .top {
  		-webkit-transform: translateY(11px) translateX(0) rotate(45deg);
        transform: translateY(11px) translateX(0) rotate(45deg);
  		background: #fff;
	}
	.button_container.active .middle {
  		opacity: 0;
  		background: #fff;
	}
	.button_container.active .bottom {
  		-webkit-transform: translateY(-18px) translateX(0) rotate(-45deg);
    	transform: translateY(-18px) translateX(0) rotate(-45deg);
		background: #fff;
	}
	.button_container span {
		background: #fff;
		border: none;
		height: 5px;
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
		-webkit-transition: all .35s ease;
		transition: all .35s ease;
		cursor: pointer;
	}
	.button_container span:nth-of-type(2) {
		top: 15px;
	}
	.button_container span:nth-of-type(3) {
		top: 30px;
	}

	.overlay {
		display: block;
		position: fixed;
		background: #0f214e;
		top: 0;
		left: 0;
		width: 100%;
		height: 0%;
 		 opacity: 0;
		visibility: hidden;
		-webkit-transition: opacity .35s, visibility .35s, height .35s;
		transition: opacity .35s, visibility .35s, height .35s;
		overflow: hidden;
	}
	.overlay.open {
		opacity: 1;
		visibility: visible;
		height: 100%;
		z-index: 1000;
	}
	.overlay.open li {
		-webkit-animation: fadeInRight .5s ease forwards;
		animation: fadeInRight .5s ease forwards;
		-webkit-animation-delay: .35s;
		animation-delay: .35s;
	}
	.overlay nav {
		position: relative;
		top: 50%;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		width: 70%;
		margin: 0 auto;
	}
	.overlay ul {
		list-style: none;
		padding: 0;
		margin: 0 auto;
		display: inline-block;
		position: relative;
		height: 100%;
	}
	.overlay ul li {
		display: block;
		height: 15%;
		height: calc(100% / 6);
		min-height: 30px;
		position: relative;
		opacity: 0;
	}
	.overlay ul li::before {
    	content: "";
    	position: absolute;
    	top: 50%;
    	left: -50px;
    	width: 30px;
    	height: 1px;
    	background: #fff;
	}
	.overlay ul li a {
		display: block;
		position: relative;
		padding: 1em 0;
		font-size: 1.5em;
		font-family: source-han-sans-japanese, sans-serif;
		font-style: normal;
		font-weight: 400;
		color: #fff;
		text-decoration: none;
		line-height: 2em;
		letter-spacing: .05em;
		overflow: hidden;
	}
	.overlay ul li a span {
		font-size: .6em;
		color: #627eb7;
		margin-left: 20px;
	}
	.overlay ul li a:hover:after, .overlay ul li a:focus:after, .overlay ul li a:active:after {
		width: 100%;
	}

	@-webkit-keyframes fadeInRight {
		0% { opacity: 0; left: 20%; }
		100% { opacity: 1; left: 0; }
	}

	@keyframes fadeInRight {
		0% { opacity: 0; left: 20%; }
		100% { opacity: 1; left: 0;	}
	}

}

@media only screen and (max-width:820px){
    
}


@media only screen and (max-width:768px){
	
	/* header */
	header { margin-bottom: 20px; }
	header .logo { position: relative; z-index: 9999; }
	header .logo a { font-size: .7em; line-height: 1em; }
	header .logo a span { font-size: .35em; line-height: 1em; margin-top: 5px; }

	/* content */
	#content { width: 90%; margin-bottom: 90px; }
	
	/* index_content */
	.content_mess_box { position: relative; padding-top: 60px; }
	.content_mess_box h2 { margin-bottom: 30px; font-size: 1.6em; line-height: 1.6em; text-align: left; }
	.content_mess_box p { margin-bottom: 120px; font-size: .9em; line-height: 2em; text-align: left; }
	
	.content_float_box { width: 100%; height: auto; margin: 0 auto; display: flex; justify-content: space-between; }
	.content_left_box { width: 32%; height: auto; float: left; text-align: center; }
	
	.nav { display: none; }
	
	/* slide */
	#vegas { height: 60vh; margin-bottom: 70px; }
	#vegas .caption { left: 5%; font-size: 2.5em; }
    
    /*service*/
    .section-heading{ margin-bottom: 25px;}
    .service-flex{ flex-direction: column-reverse; }
    .service-flex .img,.service-flex .text{ width: 100%; }
    .service-flex .text{ margin-bottom: 25px; }
    .service-flex .text p{ margin:0; font-size: .9em; }
    .column-img{ flex-direction: column; margin-bottom: 0; }
    .column-img .img{ width:100%; margin-top: 0;}
    .column-img .mt{ margin-top: 25px; }
    .column-img{ margin-top: 0;}
    .service-flex .img span,.column-img .img span{ font-size: .9em; }
	
}

@media only screen and (max-width:640px){
	
	/* header */
	header { margin-bottom: 10px; }
	header .logo { position: relative; z-index: 9999; width: 240px; padding: 15px 20px; border-radius: 0 0 35px 0;}
	header .logo a { font-size: .6em; line-height: 1em; }
	header .logo a span { font-size: .02em; line-height: 1em; letter-spacing: .9em; margin-top: 5px; }
	
	/* sp menu */
	.button_container { height: 27px; width: 35px; }
	.button_container span { height: 4px; }
	.button_container span:nth-of-type(2) { top: 12px; }
	.button_container span:nth-of-type(3) { top: 24px; }
	.button_container.active .top {
		-webkit-transform: translateY(9px) translateX(0) rotate(45deg);
		transform: translateY(8px) translateX(0) rotate(45deg);
		background: #fff;
	}
	.button_container.active .bottom {
		-webkit-transform: translateY(-16px) translateX(0) rotate(-45deg);
		transform: translateY(-16px) translateX(0) rotate(-45deg);
		background: #fff;
	}
	
	.overlay nav { width: 55%; }
	.overlay ul li a { font-size: 1em; letter-spacing: .1em; }
	
	/* top */
	#vegas { height: 70vh; margin-bottom: 60px; }
	#vegas .caption { top: 55%; left: 9%; padding-left: 0; font-size: 2em; }
	#vegas .caption p { margin-top: -10px; }
	#vegas .caption span { font-size: .4em; line-height: 1.8em; margin-top: 10px; }
	#vegas .caption .sp-br { display: block; }
	
	.scroll-Block { display: none; }
    
    .works-list li{ width: 100%; font-size: .9em; }
    .works-list li::before{ top: 15px;}
    #works-content{ padding: 5em 0; }
    
    .banner-flex{ flex-direction: column; }
    .banner-flex .banner-item{ width: 100%;}
    .banner-flex .banner-item:not(:last-of-type){ margin-bottom: 15px; }
    
    .service-banner .banner-item{ width: 100%!important;}
    .section-heading .section_ja{ font-size: 1.4em; }
    .section-heading .section_en{ font-size: 1.1em; }
    .service-flex .text h3{ margin: 0 0 25px 0; font-size: 1.3em;}
    .service{ margin: 40px 0 45px 0; } 
    .service-bg{ margin-top: 75px; }
    /*recruit*/
    .recruit { margin-bottom: 60px; }
    
	/* footer */
	#footer span { margin-right: 0; }
	#footer .company-name { font-size: .9em; font-weight: 500; }
	.footer_nav ul { width: 90%; margin: 10px auto 30px; padding: 0; float: none; }
	.footer_nav li { display: block; padding: 10px 0; margin: 0; font-size: .9em; text-align: left; border-bottom: 1px #888 solid; }
	
	
	/* content */
	#content {
		width: 85%;
		margin: 0 auto;
		margin-bottom: 80px;
		padding: 0;
	}

	
	/* home_content */
	.home_comment{ width: 100%; height: auto; margin: 0 auto; text-align: center; }

	
	.nav { display: none; }
	#nav { display: block; }

	/* common */
	.page-head { padding: 150px 0 80px 0; }
	.page-head-ttl__main { font-size: 1.5em; }
	.page-head-ttl__sub { font-size: .8em; }
	
	
	/* footer */
	#footer { padding: 40px 0; }
    #footer span{ font-size: .9em; }
	#footer p { font-size: 13px; }
    #footer .copy{ font-size: .6em; margin-top: 25px; padding: 0; }
    #footer .mail{ width: 140px; margin: 15px auto 0 auto; }
	
	.main_contents { width: 100%; margin: 0 auto; margin-bottom: 0px; padding: 0px 0px; text-align: left; background: #F2F2F2; }
	.main_contents_box01 { width: 100%; margin: 0 auto; background-color: rgba(255,255,255,0); }
	.main_contents_box02 {
		width: 94%;
		max-width: 94%;
		margin: 0 auto;
		padding: 0px 0px 40px 0px;
		font-weight: 300;
		color: #444;
		background: rgba(255,255,255,0);
	}

	
	/* ClearFixElements */
	.wideslider ul:after { content: "."; height: 0; clear: both; display: block; visibility: hidden; }
	.wideslider ul { display: inline-block; overflow: hidden; }
	
	
	/* page top */
	#page-top a {
		width: 80px;
		padding: 12px 0px;
		color: #0f214e;
		border-radius: 5px;
		text-decoration: none;
		border: none;
		background-color: rgba(255,255,255,1);
	}
    
    #footer .company-name{ max-width: 240px;}

}
@media only screen and (max-width:480px){
    .add_br{ display: block; }
    .mb{ display: inline-block; margin-bottom: 15px; }
    
    #footer .add_inner{ text-align: center; }
    #footer .font-space{ display: none; }
}

@media only screen and (max-width:420px){
    
    header .logo{ width: 210px; }
}

@media only screen and (max-width:375px){
    
}