@charset "utf-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&family=Noto+Serif+JP:wght@400;700;900&display=swap');
/****************reset*******************/
*{
	box-sizing: border-box;
}

body,div,dl,dt,dd,h1,h2,h3,h4,h5,h6,p{
	padding:0;
	margin:0;
	width:auto;
	font-size:100%;
	line-height:170%;
	font-weight:normal;
	word-break: break-all;
}
ul,li{
	list-style:none;
	padding:0;
	margin:0;
	font-size:100%;
	line-height:100%;
	font-weight:normal;
}
a img {
	border:none;
}
img{
	width:100%;
	font-size:0px;
	-webkit-backface-visibility:hidden;
	vertical-align: top;
}
a,button{
	text-decoration:none;
	cursor: pointer;
	color: inherit;
	transition:.4s;
    -webkit-transition:.4s;
}
p,li,h2,h3,h4,a,strong,span,dd,dt,dl,td,th {
    color:#333;
    letter-spacing: .03em; /*.01em;*/
}

img{
	max-width: 100%;
}

body{
	font-size: 16px;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 180%;
}
a:hover {opacity: .8;}

/****************clearfix*******************/
.clearfix {
	min-height:1px;
	overflow-x:hidden;
}
* html .clearfix{height:1px; /*\*//*/ height:auto; overflow:hidden; /**/ }

p{line-height: 1.8;}

.clearfix::after {
   content: "";
   display: block;
   clear: both;
}

/****************common****************/

.inner1200{
	width:90%; 
	max-width:1200px; 
	margin:0 auto; 
	position: relative;
}

.flex_contents {
	display: flex; 
	flex-wrap: wrap; 
	justify-content: 
	space-between;
}


.sp{display:none;}

h2 {font-size:28px;}


/**************** header ****************/

header{
	width: 100%;
	overflow: hidden;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	background: #fff;
}

.header_wrap{
	height: 100px;
}

.smaller .header_wrap{
	height: 64px;
	-moz-transition: all 0.5s;
  	-o-transition: all 0.5s;
  	-webkit-transition: all 0.5s;
  	transition: all 0.5s;
}

/*ハンバーガーメニュー*/
.el_hamburger {
    position: fixed;
    top: 40px;
    left: 50px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 20;
    cursor: pointer;
    pointer-events: auto;
	-moz-transition: top 0.5s;
  	-o-transition: top 0.5s;
  	-webkit-transition: top 0.5s;
  	transition: top 0.5s;
}

.smaller .el_hamburger {
	top: 22px;
}

.el_hamburger_wrapper {
    width: 28px;
    display: inline-block;
}

.el_hamburger span {
  font-size: 10px;
  margin-left: 10px;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.el_hamburger span.el_hamburger_bar {
    display: block;
    width: 100%;
    margin: 0 auto 12px;
    height: 3px;
    background: #121212;
	border-radius: 50px;
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}

.el_hamburger span.el_hamburger_bar:last-child {
    margin-bottom: 0;
}


/*ナビゲーション*/

.navi {
    position: fixed;
    top: 0;
    left: 0;
    padding-top: 100px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transition: all 600ms ease-out;
    transition: all 600ms ease-out;
    -webkit-transform: translateZ(0) translateX(-100%);
    transform: translateZ(0) translateX(-100%);
    overflow: auto;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	-webkit-transition: all 0.5s;
	transition: all 0.5s; 
}

.smaller .navi{
	padding-top:64px;
}


.navi_item {
    background: #E3E3E3;
	box-sizing: border-box;
	font-size: 16px;
	width: 150px;
	margin-right: 1px;
}

.navi_item a{
	display: block;
	padding: 15px 0;
	text-align: center;
	font-family: 'Lato', sans-serif;
}

.navi_item:first-child{
	margin-left: 50px;
}


/*ハンバーガーメニュー折り畳み部分*/
.js_hamburgerOpen .navi {
    -webkit-transform: translateZ(0) translateX(0);
    transform: translateZ(0) translateX(0);
}

.js_hamburgerOpen .el_hamburger span.el_hamburger_bar.top {
    -webkit-transform: translateY(7px) rotate(
-45deg
);
    transform: translateY(7px) rotate(
-45deg
);
}


.js_hamburgerOpen .el_hamburger span.el_hamburger_bar.bottom {
    -webkit-transform: translateY(-8px) rotate(
		45deg
	);
    transform: translateY(-8px) rotate(
		45deg
	);
}

/*SNS*/
.sns {
	position: fixed;
    top: 38px;
    left: 103px;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	-webkit-transition: all 0.5s;
	transition: all 0.5s; 
}

.smaller .sns {
    top: 20px;
}

.sns li {
	display: inline-block;
	width: 25px;
	height: 25px;
}

.sns li:last-child{
	margin-left: 24px;
}

.sns a {
	display: block;
}

.sns img {

}

/*ロゴ*/
.header_right{
	position: fixed;
    right: 50px;
    top: 40px;
	-moz-transition: all 0.5s;
    -o-transition: all 0.5s;
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
}

.smaller .header_right{
	top: 22px;
}

.header_right a{
    display: block;
	width: 250px;
	line-height:1;
}

.smaller .header_right a{
	width: 220px;
	line-height:1;
}

.header_right a:hover{
	opacity: 1;
}

.main, .page_ttl{
	margin-top: 120px;
}

.page_ttl{
	align-items: center;
	margin-bottom: 32px;
}

.page_ttl h2{
	font-family: 'Lato', sans-serif;
	font-size: 36px;
	font-weight: 600;
}

.page_ttl p{
	border-bottom: 1px solid #121212;
	padding-bottom: 5px;
	width: calc(100% - 16%);
}

.page_ttl2 p{
	width: calc(100% - 20%);
}

.page_ttl3 p{
	width: calc(100% - 14%);
}


/****************footer****************/

.footer_wrap::before{
	display: block;
	content: "";
	width: 100%;
	height: 1px;
	background: #cbcbcb;
	margin: 0 auto 80px;
}

.footer_wrap{
    width: 95%;
    margin: 100px auto 50px;
}

footer .logo{
	display: block;
	width: 272px;
	margin-bottom: 16px;
}

.footer_left .txt_area{
	margin-top: 16px;
}

.footer_left .txt_area p{
	font-size: 15px;
}

.footer_left .txt_area p:nth-of-type(1){
	font-weight: 600;
	margin-bottom: 5px;
	font-family: 'Lato', sans-serif;
}

.footer_left .txt_area p:nth-of-type(2){
	display: inline-block;
}

.footer_left .txt_area a{
	display: inline-block;
	margin-left: 10px;
}

.footer_left .txt_area a>span{
	color: #a7a7a7;
	font-size: 14px;
	border-bottom: 1px solid #a7a7a7;
	font-family: 'Lato', sans-serif;
}

.footer_left .txt_area p>span{
	color: #a7a7a7;
	font-size: 12px;
	display: inline-block;
	margin-left: 10px;
}

.footer_right{
	margin-top: 35px;
	position: relative;
	width: 380px;
}

.footer_right ul{
	justify-content: flex-end;
	font-family: 'Lato', sans-serif;
}

.footer_right li{
	font-size: 21px;
	margin-right: 42px;
}

.footer_right li:last-child{
	margin-right: 0;
}

.footer_right a{
	display: block;
}

.footer_right .copyright{
    font-size: 13px;
    position: absolute;
    right: 0;
    bottom: 0;
}


@media screen and (max-width: 1200px) {
	/**************** header ****************/
	
	header{
		padding: 0 5%;
	}
	.header_wrap{
		height: 80px;
	}
	/*ハンバーガーメニュー*/
	.el_hamburger {
		left: 5%;
		top:30px;
	}
	.el_hamburger_wrapper {
		width: 26px;
	}
	/*ナビゲーション*/


	.navi_item:first-child{
		margin-left: 10%;
	}
	.navi {
		flex-wrap: nowrap;
		padding-top:80px;
	}
	.smaller .navi{
		padding-top: 64px;
	}
	.navi_item {
		font-size: 16px;
		width: 130px;
	}
	.navi_item a{
		padding: 15px 0;
	}


	/*SNS*/
	.sns {
    	top: 28px;
		left: calc(5% + 45px);
	}
	.sns li:last-child{
		margin-left: 20px;
	}


	/*ロゴ*/
	.header_right{
    	top:30px;
		right: 5%;
	}
	.header_right a{
		width: 220px;
	}
	.smaller .header_right a{
		width: 200px;
	}
	.main, .page_ttl{
    	margin-top:104px;
	}
	.page_ttl{
		margin-bottom: 32px;
	}
	.page_ttl h2{
		font-size: 3.4vw;
	}
	.page_ttl p{
		width: calc(100% - 17vw);
		font-size: 14px;
	}
	.page_ttl2 p{
		width: calc(100% - 21vw);
	}
	.page_ttl3 p{
		width: calc(100% - 14vw);
	}

	
}


@media screen and (max-width: 980px) {

	
	.navi_item:first-child {
    	margin-left: 4.8vw;
	}

/****************footer****************/

.footer_wrap{
    margin: 80px auto 40px;
}

footer .logo{
	width: 230px;
}

.footer_left .txt_area{
	margin-top: 2.5vw;
}

.footer_left .txt_area p{
	font-size: 12px;
}

.footer_left .txt_area p:nth-of-type(1){
	margin-bottom: 4px;
}

.footer_left .txt_area a{
	margin-left: 8px;
}

.footer_left .txt_area p>span{
	margin-left: 8px;
}

.footer_right{
	margin-top: 2.5vw;
	width: 355px;
}

.footer_right li{
	font-size: 18px;
	margin-right: 32px;
}

.footer_right .copyright{
    font-size: 12px;
}
	
}


@media screen and (max-width: 790px) {

	
	/**************** header ****************/

	/*ハンバーガーメニュー*/
	.el_hamburger_wrapper {
		width: 25px;
	}


	/*ナビゲーション*/
	.navi {
		padding-top: 85px;
	}


	/*ロゴ*/
	.header_right a{
		width: 208px;
	}

	.page_ttl{
		margin-bottom:4vw;
	}

	/****************footer****************/
	.footer_wrap::before{
		width: 90%;
		margin: 0 auto 8vw;
	}
	
	.footer_wrap{
		margin: 12vw auto 0;
		width: 100%;
	}

	footer .logo{
		width: 240px;
		margin: auto;
	}
	
	.footer_left {
		width: 100%;
		text-align: center;
	}
	
	.footer_left .txt_area {
		margin-top: 3vw;
	}
		
	.footer_left .txt_area p{
		font-size: 13px;
	}
	
	.footer_left .txt_area p:nth-of-type(1){
		margin-bottom: 0;
	}
	
	.footer_right {
		width: 100%;
		text-align: center;
		background: #eee;
		padding: 4vw 0 2vw;
		margin-top: 4vw;
	}
	
	.footer_right ul{
		justify-content: center;
		margin-bottom: 4vw;
	}
	
	.footer_right li{
		font-size: 16px;
	}
	
	.footer_right .copyright{
		position: unset;
		text-align: center;
		border-top: 1px solid #d3d3d3;
		padding-top: 2vw;
	}
	
}

@media screen and (max-width: 640px) {

	.sp{display:block;}
	.pc{display: none;}
	
	/**************** header ****************/

	.smaller .header_wrap {
    	height: 56px
	}

	/*ハンバーガーメニュー*/
	.el_hamburger {
		top:calc( 40px - 9px ) ;
		line-height:1;
	}
	
	.smaller .el_hamburger {
    	top:calc( 28px - 9px ) ;
	}

	.el_hamburger_wrapper {
		width: 1.6rem;
	}


	/*ナビゲーション*/

	.navi {
		width: 100%;
		height: 100%;
		padding-top: 4vw;
		background: #eee;
		margin-top: 80px;
		display: block;
	}
	
	.smaller .navi{
		margin-top: 60px;
		padding-top: 30px;
	}
	
	.navi_item::before{
		content: "";
		max-width: 24px;
		width: 5vw;
		height: 1px;
		background: #121212;
		display: inline-block;
		vertical-align: middle;
	}
	
	.navi_item {
		background: none;
		font-size: 4.4vw;
		width: auto;
		position: relative;
		margin-left: 5%;
	}


	.navi_item a{
		padding: 3.4vw 5vw;
		box-sizing: border-box;
		text-align: left;
		display: inline-block;
	}


	/*SNS*/
	.sns {
		top: calc( 40px - 12px );
		left: calc(5% + 40px);
	}
	
	.smaller .sns {
		top: calc( 28px - 10px );
	}
	
	.sns li{
		width: 24px;
    	height: 24px;
	}
	.smaller .sns li{
		width: 20px;
    	height: 20px;
	}

	.sns li:last-child{
		margin-left: 3vw;
	}


	/*ロゴ*/
	.header_right{
		top:calc( 40px - 9px ) ;	
	}
	
	.smaller .header_right{
		top:calc( 28px - 8px ) ;	
	}

	.header_right a{
		width:auto;
		height: 18px;
	}
	.smaller .header_right a{
		width:auto;
		height: 16px;
	}
	.header_right a img{
		width:100%;
		height:100%;
	}

	.main, .page_ttl{
		margin-top: 9.6vh;
	}
	
	.page_ttl h2 {
		font-size: 6.4vw;
	}
	
	.page_ttl p {
    	width: calc(100% - 30vw);
		font-size: 12px;
	}
	
	.page_ttl2 p {
    	width: calc(100% - 39vw);
	}
	
	.page_ttl3 p {
    	width: calc(100% - 25vw);
	}


	/****************footer****************/
	.footer_wrap::before{
		margin: 0 auto 10vw;
		width: 90%;
	}
	
	.footer_wrap{
		margin: 15vw auto 0;
	}

	footer .logo{
		width: 55vw;
		max-width: 300px;
	}
	
	.footer_left {
		margin: 0 auto;
		width: 90%;
	}
	
	.footer_left .txt_area {
		margin-top: 5vw;
	}
		
	.footer_left .txt_area p{
		font-size: 3.4vw;
	}
	
	.footer_right {
		padding: 7vw 0 4vw;
		margin-top: 6vw;
	}
	
	.footer_right ul{
		margin-bottom: 6vw;
	}
	
	.footer_right li{
		font-size: 4vw;
		margin-right: 5vw;
	}
	
	.footer_right .copyright{
		padding-top: 4vw;
		font-size: 2.5vw;
	}
	
}












