@charset "utf-8";
/* 
	
CSS base.css */



/*
base #191919
purple : #7c61a7
*/



body.fixed { height: 100%; overflow: hidden; }


/*//////////////////


Header


//////////////////*/

#header { width: calc(100% - 160px); z-index: 100; padding: 0 80px; }
#header .mainbox { display: flex; align-items: flex-start; justify-content: space-between; height: 180px; }
#index #header .mainbox { height: 250px; }
#header .logo { line-height: 0; margin-right: 30px; }
#header .logo img { width: 270px; }
#header .cap { flex: 1; line-height: 1.7; margin-top: 30px; font-size: 1.5rem; }

#header .onlinebtn { width: 120px; height: 120px; position: absolute; right: 0; top:300px; z-index: 1005; }
#header .onlinebtn a { background: #191919; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; flex-direction:column; color: #fff; text-align: center; text-decoration: none; }
#header .onlinebtn a img { width: 48px; height: 30px; display: block; margin: 0 auto 10px; }
#header .onlinebtn a img.icon1 { display: block; }
#header .onlinebtn a img.icon2 { display: none; opacity:0; transition:0.5s;}
#header .onlinebtn a span { line-height: 1.4; font-size:14px; }
#header .onlinebtn a:hover { background: #eee; color:#191919; }
#header .onlinebtn a:hover img.icon1 { display: none; }
#header .onlinebtn a:hover img.icon2 { display: block; opacity:1;}

/* スクロール時fixed */
#header.fixed { position: fixed; top: 0; left: 0; /* background: rgba(255,255,255,1); */ animation: navfit 0.5s ease-out 0s 1 normal both; }
#header.fixed .mainbox { height: 100px!important; }
#header.fixed .logo img { width: 180px; }
#header.fixed .cap { opacity: 0; }
#header.fixed .onlinebtn { top:160px; position: fixed; } 
@media screen and (max-width: 1280px) {
	#header .cap { display: none; }
}
@media screen and (max-width: 1040px) {
	#header .logo { position:fixed; top: 0px; left: 40px; z-index:1000; }
	#header,
	#header .mainbox { height: 100px!important; }
	#header .onlinebtn { display: none; }
}
@media screen and (max-width: 767px) {
	#header,
	#header .mainbox { height: 80px!important; }
	#header .logo { left: 20px; }
	#header .logo img { width: 220px; }
}

/* スクロール時fixedのアニメーション */
@keyframes navfit {
  0% { transform: translate(0px, -50px); }
  100% { transform: translate(0px, 0px);  }
}






/*//////////////////


Nav


//////////////////*/

#gnav {  }
#gnavbg { display: none; }
#gnav .navlogo { display: none; }
#gnav .navbox { display: flex; align-items: center; }
#gnav ul.main {text-align: right;display: flex;align-items: center;justify-content: flex-end; margin-top:50px;}
#index #gnav ul.main { margin-top:170px; }
#gnav ul.main>li { display: inline-block; position: relative; margin-right: 1.2em; font-family: 'Red Hat Display', sans-serif; font-size: 1.6rem; letter-spacing: 0.1em;}
#gnav ul.main>li a { text-decoration: none; }
#gnav ul.main>li:first-child { display: none; }
#gnav .cr { display: none; font-size: 1.5rem; color: #fff; font-family: 'Red Hat Display', sans-serif; letter-spacing: 0.1em;}

#header.fixed #gnav ul.main { margin-top: 30px; }
@media screen and (max-width: 1040px){
	#gnav{ z-index: 1002; opacity: 0; position: fixed; top: 0; left: 0; display: flex; justify-content: space-between; align-items: center; height: 100%; overflow: scroll; width: 100vw!important; pointer-events: none;  }
	#gnav .navbox {z-index: 10;width: 60%;padding: 60px 20%; display:block;}
	#gnav.is-open{ pointer-events: auto; animation: bgfadein 0.6s ease-out 0.5s 1 normal both;}
	#gnavbg { display: block;  position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; z-index: 1000; background: #191919; cursor: default; box-sizing: border-box; opacity:0; transition: opacity 1s ease-out 0s; pointer-events: none;}
	#gnavbg.is-open{ pointer-events: auto; opacity:1; }
		
	#gnav ul.main { position: static; text-align: center; flex-direction:column; align-items:flex-start; margin-top:4em!important; }
	#gnav ul.main>li { display: block!important; margin: 0; margin-bottom: 0;  margin-left: 0; opacity: 0; font-size: 2.2rem; }
	#gnav ul.main>li a { color: #fff; }
	#gnav .cr { display:block; position:fixed; bottom:30px; transition: 1s; opacity:0; }
	#gnav .navlogo { display: block; width: 270px; position:fixed; left:40px; top:0; }
	
	#gnav.is-open ul.main>li { opacity:1; transition: 1s; }
	#gnav.is-open ul.main>li:nth-child(1) { -webkit-transition-delay: .24s; transition-delay: .24s; }
	#gnav.is-open ul.main>li:nth-child(2) { -webkit-transition-delay: .32s; transition-delay: .32s; }
	#gnav.is-open ul.main>li:nth-child(3) { -webkit-transition-delay: .40s; transition-delay: .40s; }
	#gnav.is-open ul.main>li:nth-child(4) { -webkit-transition-delay: .48s; transition-delay: .48s; }
	#gnav.is-open ul.main>li:nth-child(5) { -webkit-transition-delay: .56s; transition-delay: .56s; }
	#gnav.is-open ul.main>li:nth-child(6) { -webkit-transition-delay: .64s; transition-delay: .64s; }
	#gnav.is-open ul.main>li:nth-child(7) { -webkit-transition-delay: .72s; transition-delay: .72s; }
	#gnav.is-open ul.main>li:nth-child(8) { -webkit-transition-delay: .80s; transition-delay: .80s; }
	#gnav.is-open .cr { -webkit-transition-delay: 1.2s; transition-delay: 1s; opacity:1.2; }
}
@media screen and (max-width: 767px){
	#gnav .navlogo { width: 220px; left:20px; }
}
@media screen and (max-width: 500px){
	#gnav ul.main>li { line-height:2; font-size: 2.0rem; }
	#gnav .cr { bottom:30px; }
}
@keyframes bgfadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes bgfadeout {
  0% { visibility: visible; }
  100% { opacity: 0; visibility: hidden; }
}









/*//////////////////


Menubtn


//////////////////*/

#menubtn {display: none; z-index: 1004; }
@media screen and (max-width: 1040px){
	#menubtn { position: fixed; top: 20px; right: 20px; display: block; background: transparent; width: 60px; height: 60px; transition : 0.3s; cursor: pointer; }
	#menubtn a { text-decoration: none; position: relative; display: block; height: 100%; width: 100%; color: #fff; }
	#menubtn a .line {
		width: 60px; height: 2px; background: #191919; position: absolute; left: 50%; margin-left: -30px;
		-webkit-transition: all 0.3s; transition: all 0.3s;
	}
	#menubtn a #line1 { top: 24px; transition-delay: .3s;}
	#menubtn a #line2 { top: 36px; transition-delay: .4s;}
	#menubtn a #line3 { top: 20px; transition-delay: .0s;
		-webkit-transform:translateY(10px) translateX(0) rotate(-30deg) scale(0,1);
		transform:translateY(10px) translateX(0) rotate(-30deg) scale(0,1);
	}
	#menubtn a #line4 { top: 40px; transition-delay: .0s;
		-webkit-transform:translateY(-10px) translateX(0) rotate(30deg) scale(0,1); 
		transform:translateY(-10px) translateX(0) rotate(30deg) scale(0,1);
	}
	/*#menubtn a:hover #line1 { top: 28px; }
	#menubtn a:hover #line2 { top: 32px; }*/
	#menubtn.active a .line { background: #fff; } 
	#menubtn.active a #line1 { transition-delay: .0s; width: 0; }
	#menubtn.active a #line2 { transition-delay: .1s; width: 0; }
	#menubtn.active a #line3 {
		transition-delay: .8s;
		-webkit-transform:translateY(10px) translateX(0) rotate(-30deg) scale(1,1);
		transform:translateY(10px) translateX(0) rotate(-30deg) scale(1,1);
	}
	#menubtn.active a #line4 { 
		transition-delay: .9s;
		-webkit-transform:translateY(-10px) translateX(0) rotate(30deg)  scale(1,1); 
		transform:translateY(-10px) translateX(0) rotate(30deg)  scale(1,1);
	}
}
@media screen and (max-width: 767px){
	#menubtn { position: fixed; top: 10px; right: 10px; width: 50px; height: 50px;}
	#menubtn a .line { width: 50px; }
}









/*//////////////////


Mainv.index


//////////////////*/

#mainv.index { position: relative; height: 730px; }
#mainv.index .imgbox { height: calc(100% - 70px); width: 60%; position: absolute; right: 60px; top:0; overflow: hidden; }
#mainv.index .imgbox img { object-fit: cover; font-family: 'object-fit: cover;'; /*IE対策*/ display: block; width: 100%; height: 100%; }
#mainv.index:after { content: ""; background: #f7f7f7; height: calc(100% - 70px); width: 80%; position: absolute; right: 0; bottom: 0; z-index: -1; }

#mainv.index .copybox { position: absolute; top: 200px; left: 12%; text-align: left; z-index: 1;}
#mainv.index .copybox .maincopy { font-size: 3.2rem; line-height: 1.9; font-weight: bold; margin-bottom: 20px; letter-spacing: 0.2em; }
#mainv.index .copybox .subtxt {  }
@media screen and (max-width: 1180px){
	#mainv.index .imgbox { width: 52%; }
}
@media screen and (max-width: 1040px){
	#mainv.index { height: auto; }
	#mainv.index .imgbox { width: 94%; height: 600px; right: 0; }
	#mainv.index:after { width: 94%; right: 6%; top:80px; bottom: auto; }
	#mainv.index .copybox { padding: 510px 0 120px; position: relative; top: 0; width: 76%; }
}
@media screen and (max-width: 767px){
	#mainv.index {  }
	#mainv.index .imgbox { height: 500px; }
	#mainv.index .copybox { padding: 420px 0 80px; }
	#mainv.index .copybox .maincopy { font-size: 2.8rem; }
}
@media screen and (max-width: 639px){
	#mainv.index { }
	#mainv.index .imgbox { height: 440px; }
	#mainv.index .copybox { padding: 370px 0 60px; }
	#mainv.index .copybox .maincopy { font-size: 2.2rem; }
}
@media screen and (max-width: 500px){
	#mainv.index .copybox .subtxt br { display: none; }
}



/*//////////////////


Mainv.under


//////////////////*/

#mainv.under { position: relative; height: 670px; }
#mainv.under:after { content: ""; background: #f7f7f7; height: calc(100% - 70px); width: 80%; position: absolute; right: 0; bottom: 0; z-index: -1; }
#mainv.under .imgbox { height: calc(100% - 70px); width: 60%; position: absolute; right: 60px; top:0; overflow: hidden; }
#mainv.under .imgbox img { object-fit: cover; font-family: 'object-fit: cover;'; /*IE対策*/ display: block; width: 100%; height: 100%; }
#mainv.under .box { position: absolute; top: 300px; left: 12%; text-align: left; z-index: 1;}
#mainv.under .box #pankuzu { margin-top: 80px; width: 22vw; }
#mainv.under .box #pankuzu ol { font-size: 0; }
#mainv.under .box #pankuzu ol li { display:inline-block; font-size: 1.4rem; margin-right: 10px; }
#mainv.under .box #pankuzu ol li:before { content:">"; display: inline-block; margin-right: 10px; transform: scaleX(0.6); }
#mainv.under .box #pankuzu ol li:first-child:before { display: none; }
#mainv.under .box #pankuzu ol li a { text-decoration: none; }
#mainv.under .box #pankuzu ol li a:hover { text-decoration: underline; color: #191919; }
@media screen and (max-width: 1180px){
	#mainv.under .imgbox { width: 52%; }
	#mainv.under .box #pankuzu { width: 28vw; }
	#mainv.under .box { left: 8%; }
}
@media screen and (max-width: 1040px){
	#mainv.under { height: auto; }
	#mainv.under:after { width: 94%; right: 6%; top:80px; bottom: auto; }
	#mainv.under .imgbox { width: 94%; height: 300px; right: 0; }
	#mainv.under .box { padding: 360px 0 80px; position: relative; width: 88%; left: 6%; top: auto; }
	#mainv.under .box #pankuzu { margin-top: 40px; width: 100%; }
}
@media screen and (max-width: 767px){
	#mainv.under .box #pankuzu{ display: none; }
	#mainv.under .box { padding: 340px 0 40px; }
}
@media screen and (max-width: 639px){
	#mainv.under .imgbox { height: 200px; }
	#mainv.under .box { padding: 240px 0 30px; }
}
@media screen and (max-width: 500px){
}













/*//////////////////


Pankuzu


//////////////////*/







/*//////////////////


Content


//////////////////*/

#body { display: flex; margin-top: 160px; padding: 0 10% 0 470px; position: relative; }
#main { margin-top: 130px; margin-bottom: 120px; }
#body #main { margin-top: 0; margin-left: auto; max-width: 960px; flex: 1; }
@media screen and (max-width: 1600px) { 
	#body { padding: 0 6% 0 calc(8% + 310px); }
}
@media screen and (max-width: 1480px) { 
	#body { margin-top: 100px; padding: 0 6% 0 calc(4% + 240px); }
}
@media screen and (max-width: 1180px) { 
	#body { margin: 100px 6% 0 6%; padding: 0; display: block; }
	#body #main { max-width: none; }
}
@media screen and (max-width: 767px) { 
	#body { margin: 80px 6% 0 6%; }
	#main { margin-top: 80px; margin-bottom: 100px; }
	#index #main { margin-bottom: 60px; }
}










/*//////////////////


Cntside


//////////////////*/

#side { position: absolute; top:0; left: 160px; width: 250px; margin-right: 60px; }
#side ol { }
#side ol li { line-height: 2; margin-bottom: 15px; margin-left:1em;}
#side .title { font-weight: bold; font-size: 1.8rem;}
#side ol li a { font-weight: bold; font-size: 1.8rem; text-decoration: none; margin-left:-1em;  }
#side ol li a:before { content: "・"; font-size: 12px; vertical-align: middle; transition: 0.8s; width: 18px; display: inline-block; box-sizing: border-box; }
#side ol li a.current:before { content: "●"; font-size: 8px; padding-left: 2px; }
#side ol li a:hover { color: #191919; text-decoration: none; }
#side ol li a:hover:before { padding-left: 6px; }
#side.fixed { position: fixed; top: 150px; }
#side.absolute { position: absolute; }
@media screen and (max-width: 1600px) { 
	#side { left: 8%; }
}
@media screen and (max-width: 1480px) { 
	#side { width: 200px; margin-right: 40px; left: 4%; }
}
@media screen and (max-width: 1180px) { 
	#side { display: none; }
}











/*//////////////////


Footer


//////////////////*/

#footer {  }

/* contactbox */
#footer .contactbox { padding: 100px 0; text-align: center; background: #191919; color: #fff; }
#footer .contactbox ul.box { display: flex; justify-content: center; }
#footer .contactbox ul.box li { background: #191919; padding:20px 4% 30px; width: 500px; border-right: 1px solid #fff; }
#footer .contactbox ul.box li:last-child { border-right: none; }
#footer .contactbox ul.box .txtbox { display: flex; justify-content: center; }
#footer .contactbox ul.box .txtbox a { text-decoration: none; width: 100%; height: 100%; position: relative; }
#footer .contactbox ul.box .txtbox a:after { content: ""; position: absolute; bottom: -10px; width: 0; height: 1px; left: 0; background: #fff; transition: 0.3s; }
#footer .contactbox ul.box .txtbox a:hover:after  { width: 100%; }
#footer .contactbox ul.box .txtbox .icon { display: flex; align-items: center; justify-content: center; color: #fff; font-size: 2.4rem; font-family: 'Red Hat Display', sans-serif; letter-spacing: 0.1rem; }
#footer .contactbox ul.box .txtbox .icon .icon1 { width: 20px; height: 27px; }
#footer .contactbox ul.box .txtbox .icon .icon2 { width: 28px; height: 26px; }
#footer .contactbox ul.box .txtbox .icon .icon3 { width: 22px; height: 18px; }
#footer .contactbox ul.box .txtbox .icon img {display: inline-block; margin-right: 15px; }
#footer .contactbox ul.box .txtbox .txt { color: #fff; }
@media screen and (max-width: 1040px) {
}
@media screen and (max-width: 639px) {
	#footer .contactbox { padding: 30px 0; }
    #footer .contactbox ul.box { display: block; justify-content: center; }
    #footer .contactbox ul.box li { padding:30px 6%; width: 88%; border-right: none; border-bottom: 1px solid #fff; }
    #footer .contactbox ul.box li:last-child { border-bottom: none; }
    #footer .contactbox ul.box .txtbox .icon { line-height:1.35; }

}


/* #pagetop */
#pagetop { width: 100%; z-index: 10000; }
#pagetop a { text-decoration: none; display: block; padding: 10px 0; text-align: center; background: #f7f7f7; }
#pagetop a:hover { opacity: 1; background: #e6e6e6;  }
#pagetop svg { stroke:#333; width: 16px; height: 12px; fill-opacity: 0; }
@media screen and (max-width: 767px) { 
}

/* footerinfo */
#footer .footerinfo { position: relative; margin:0 80px 40px; display:flex; justify-content:space-between; align-items:flex-end;  }
#footer .footerinfo .infobox { text-align:left; }
#footer .footerinfo .infobox .logo { width:270px; }
#footer .footerinfo .infobox .txtbox { margin-left:40px; margin-top: 30px; }
#footer .footerinfo .infobox .txtbox .txt { margin-bottom:30px; }
#footer .footerinfo .navbox { text-align: right; margin-left:6%; }
#footer .footerinfo .navbox .btn1 a,
#footer .footerinfo .navbox .btn2 a,
#footer .footerinfo .navbox .telbtn a { text-decoration:none; display:flex; align-items:center; justify-content:flex-end; line-height:1;font-weight:bold; transition:0.3s; }
#footer .footerinfo .navbox .btn1 { margin-bottom:15px; display:inline-block; }
#footer .footerinfo .navbox .btn1 a { position: relative; padding-right:12px; }
#footer .footerinfo .navbox .btn1 a:after { content: url(../img/common/arw1.svg); display: inline-block; width: 6px; height: 12px; line-height:1; font-size:0; position:absolute; right:0; top:50%; margin-top:-6px; }
#footer .footerinfo .navbox .btn1 a img { width:118px; height:26px; margin-right: 5px; }
#footer .footerinfo .navbox .btn1 a:hover { color: #7c61a7; padding-right: 15px; }
#footer .footerinfo .navbox .btn2 { margin-bottom: 50px; }
#footer .footerinfo .navbox .btn2 a span { margin-right: 5px; transition:0.3s; display:inline-block; font-weight: bold; }
#footer .footerinfo .navbox .btn2 a img { width:26px; height:26px; }
#footer .footerinfo .navbox .btn2 a:hover span { margin-right: 10px; color: #7c61a7; }
#footer .footerinfo .navbox .txt { line-height:1.8; margin-bottom:10px;}
#footer .footerinfo .navbox .telbtn { margin-bottom: 40px; }
#footer .footerinfo .navbox .telbtn img { width:17px; height:22px; margin-right:3px;}
#footer .footerinfo .navbox .telbtn .tel { font-size:2.8rem; font-family: 'Red Hat Display', sans-serif; }
#footer .footerinfo .navbox .telbtn a:hover .tel { color: #191919; }
#footer .footerinfo .navbox ul.fnav {text-align: right;display: flex;align-items: center;justify-content: flex-end; }
#footer .footerinfo .navbox ul.fnav>li { display: inline-block; position: relative; margin-left: 1em; font-family: 'Red Hat Display', sans-serif; font-size: 1.6rem; letter-spacing: 0.1em;}
#footer .footerinfo .navbox ul.fnav>li a { text-decoration: none; }
#footer .footerinfo .navbox .cr { font-family: 'Red Hat Display', sans-serif;font-size: 1.6rem; letter-spacing: 0.1em; margin-top:10px; }
@media screen and (max-width: 1280px) {
	#footer .footerinfo .navbox ul.fnav { width: 400px; }
}
@media screen and (max-width: 1040px) {
	#footer .footerinfo { margin:0 0 40px;  }
    #footer .footerinfo .infobox .logo { margin-left:40px; }
    #footer .footerinfo .infobox .txtbox { margin-left:70px; }
    #footer .footerinfo .navbox { margin-right:6%; }
    #footer .footerinfo .navbox ul.fnav { display:none; }

}
@media screen and (max-width: 767px) {
	#footer .footerinfo {display:block; }
    #footer .footerinfo .infobox .txtbox { margin:30px 6% 0; }
	#footer .footerinfo .infobox .txtbox .txt { margin-bottom:20px; }
    #footer .footerinfo .navbox .btn1 a,
    #footer .footerinfo .navbox .btn2 a,
    #footer .footerinfo .navbox .telbtn a { justify-content:flex-start; }
    #footer .footerinfo .navbox { text-align: left; width:92%; margin:60px 6% 0; }
    #footer .footerinfo .infobox .logo { width:220px; margin-left:20px; }
}
@media screen and (max-width: 500px) {
	#footer .footerinfo .infobox .txtbox .txt span.sp { display: none; }
}



