@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Fustat:wght@200..800&family=Noto+Sans+JP:wght@100..900&family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
/*リセット*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-style:normal;
	font-weight: normal;
	font-size: 100%;
	vertical-align: baseline;
}
*, *::before, *::after {
	box-sizing: border-box;
}
ol, ul, dl{
    list-style:none;
}

html{
	margin:0;
	padding:0;
}

body{
	font-size: 16px;
	line-height: 1.8;
	color:#333;
	background:#ECECEC;
	font-family: "Noto Sans JP", sans-serif;
}

.pc{
	display:block;
}
.sp{
	display:none;
}
.pcVisble{
	visibility:visible;
}
.spVisble{
	visibility:hidden;
}

a:link,a:visited {
    color:#000;
	text-decoration: none;
}
a.andmore{
	display:block;
	width:260px;
	height:125px;
	margin:0 auto;
	background:#BBBBBB url(../img/andmore.svg) no-repeat;
	background-position:center;
}
a.viewmore{
	display:block;
	width:100%;
	height:100%;
	margin:0 auto;
	background:#dddddd url(../img/viewmore.svg) no-repeat;
	background-position:center;
}

/*エフェクト系*/
.fadeout{
	animation: fadeout 1.2s;
}
@-webkit-keyframes fadeout {
  from {
  	opacity:1;
  }
  to {
	opacity:0;
  }
}
.fadein{
	animation: fadein 1.2s;
}
@-webkit-keyframes fadein {
  from {
  	opacity:0;
  }
  to {
	opacity:1;
  }
}
/*--------------*/
header{
	display:flex;
	position:fixed;
	width:100%;
	max-width:1440px;
	left: 50%;
	transform: translateX(-50%);
	height:100px;
	z-index:100;
	background:#fff;
}

#logo{
	width:78px;
	padding:20px 20px 16px;
}
#navi{
	display:flex;
	margin:0 23px 0 auto;
}
#contact{
	position:relative;
	width:100px;
	background: #000;
}
#contact a{
	display:flex;
	justify-content:center;
	align-items:center;
	height:100%;
	width:100%;
}
#spNavi{
	width:100px;
	background: #ED5C00;
}

#navi > li{
	position:relative;
	display:flex;
	align-items:center;
	height:100%;
	margin:0 17px;
	color: #000;
	font-family: "DM Sans";
	font-size: 16px;
	font-weight: 600;
	cursor:pointer;
}
#navi > li::after{
	opacity:0;
	content:"";
	position:absolute;
	bottom:0;
	height:8px;
	left:-17px;
	width:calc(100% + 34px);
	background:#ED5C00;
	transition:0.2s ease-in;
}
#navi > li:hover::after{
	opacity:1;
	transition:0.2s ease-in;
}
#navi > li > a{
	display:flex;
	align-items:center;
	width:100%;
	height:100%;
	font-weight: 600;
}
.subNaviLayer{
	position:fixed;
	display:none;
	top:100px;
	left:0;
	width:100%;
	height:calc(100vh - 100px);
	background:#ECECEC;
	z-index:100;
	transition:0.2s ease-in;
}
.subNaviLayer.open{
	display:flex;
	transition:0.2s ease-in;
}
.contentsTitle{
	width:25%;
	padding:90px 2.7%;
	background:#EB5C01;
	color:#fff;
}
.contentsTitle h2{
	padding:0 0 10px;
	margin:0 0 10px;
	line-height:1;
	color: #FFF;
	font-family: "Roboto Condensed";
	font-size: 36px;
	font-style: normal;
	font-weight: 300;
	line-height: normal;
	border-bottom:1px solid #fff;
}
.subNavi{
	display:grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	column-gap: 20px;
	row-gap:20px;
	grid-auto-rows: auto;
	align-self: start;
	width:75%;
	padding:90px 4.8%;
}
.subNavi > li{
	position:relative;
	background:#fff;
	text-align:center;
	font-size:0;
}
.subNavi > li a{
	display:block;
}
.subNavi > li img{
	width:100%;
}
.subNavi > li div{
	display:flex;
	align-items:center;
	justify-content:center;
	height:50px;
}
.subNavi > li div h3{
	color: #000;
	font-family: "Noto Sans JP";
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	line-height: 20px;
}
.subNavi > li div h3 span{
	display:block;
	color: #666;
	font-size: 12px;
	font-style: normal;
	font-weight: 500;
	line-height: 20px;
}
/*--------------*/
section{
	width:100%;
	max-width:1440px;
	margin:0 auto;
}
/*--------------*/
footer .info{
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	width:100%;
	max-width:1440px;
	padding:40px 100px 58px;
	margin:0 auto 40px;
	background:#000;
	color:#fff;
}
footer .info li{
	width:48%;
}
footer .info li h3{
	padding:0 0 20px;
	margin:0 0 16px;
	border-bottom:1px solid #999;
	color: #FF8030;
	text-align: center;
	font-family: "DM Sans";
	font-size: 24px;
	font-style: normal;
	font-weight: 600;
	line-height:1;
}
footer .info li a{
	display:flex;
	align-items:center;
	justify-content:center;
	flex-wrap:wrap;
	width:90%;
	max-width:500px;
	height:80px;
	margin:0 auto;
	color:#fff;
	background:#666666;
	font-size: 20px;
	text-align:center;
	line-height:1.5;
}
footer .info li .contact{
	margin:0 auto 20px;
	line-height:1.2;
	text-align:center;
	font-size:32px;
}
footer .info li .contact:first-line{
	font-size:20px;
}
footer .info li .contact span{
	font-size: 16px;
}

footer .info li .partner{
	margin:0 auto 20px;
	font-size: 14px;
	text-align:left;
}

.footer{
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	width:100%;
	max-width:1440px;
	padding:0 38px 0 62px;
	margin:0 auto;
	background:#fff;
}
.footer > li:nth-of-type(1){
	display:flex;
	align-items:center;
	justify-content:center;
	width:75px;
}
.footer > li:nth-of-type(2){
	padding:50px 0 0;
	margin:0 0 0 18px;
	text-align:left;
	color:#666;
	line-height:1.5;
}
.footer > li:nth-of-type(2) h3{
	font-weight:600;
}
.footer > li:nth-of-type(3){
	width:27.1%;
	margin:30px 0 30px auto;
	text-align:left;
	font-size:12px;
	color:#666;
}
.footer .sns{
	margin:0 0 14px;
}
.footer .sns li{
	display:inline-block;
	height:32px;
	margin:0 27px 0 0;
}
.footer .sns li img{
	height:100%;
}
.footer .copyright{
	margin:10px 0 0;
	font-size:12px;
	font-family: "Fustat", sans-serif;
}

@media screen and (max-width: 980px) {
	
	body{
		font-size: 15px;
	}

	.pc{
		display:none;
	}
	.sp{
		display:block;
	}
	.pcVisble{
		visibility:hidden;
	}
	.spVisble{
		visibility:visible;
	}
	a.andmore{
		width:140px;
		height:60px;
		background:#BBBBBB url(../img/andmore_sp.svg) no-repeat;
		background-position:center;
	}
	a.viewmore{
		width:100%;
		height:auto;
		background-size:80%;
		aspect-ratio:1 / 1;
	}
	/*--------------*/
	#logo{
		padding:30px 20px 0;
	}
	#logo svg{
		height:50px;
	}
	#navi{
		position:fixed;
		display:block;
		width:100%;
		left:100%;
		top:100px;
		height: calc(calc(var(--vh) * 100) - 100px);
		background:#ECECEC;
		z-index:100;
		overflow:auto;
		transition:0.4s ease-in-out;
	}
	#navi.open{
		left:0;
		transition:0.4s ease-in-out;
	}
	#contact{
		margin:0 0 0 auto;
	}
	#spNavi{
		background:#ED5C00 url(../img/navi.svg) no-repeat;
		background-position:center;
	}
	#spNavi.open{
		background:#ED5C00 url(../img/navi_close.svg) no-repeat;
		background-position:center;
	}
	
	/*-------------------*/
	#navi{
		padding:50px 0;
	}
	#navi > li{
		flex-wrap:wrap;
		width:90%;
		height:auto;
		margin:0 auto 10px;
		font-family: "Roboto Condensed";
		font-size: 32px;
		font-weight: 300;
		color:#333;
		border-bottom:0.5px solid #333333;
	}
	#navi > li::after{
		display:none;
	}
	#navi > li.open{
		border:none;
	}
	#navi > li > a{
		display:inline;
		color:#333;
		font-weight: 300;
	}
	.subNaviLayer{
		position:relative;
		top:0;
		width:90%;
		height:auto;
		margin:0 0 0 auto;
	}
	.contentsTitle{
		display:none;
	}
	.subNavi{
		display:block;
		width:100%;
		padding:0;
	}
	.subNavi > li{
		padding:0 0 15px;
		margin:20px 0 0;
		text-align:left;
		background:transparent;
		border-bottom:0.5px solid #333333;
	}
	.subNavi img{
		display:none;
	}
	.subNavi > li a{
		font-weight: 350;
	}
	.subNavi > li div{
		display:block;
		height:auto;
	}
	.subNavi > li div h3{
		font-size: 16px;
		font-weight: 350;
	}
	.subNavi > li div h3 span{
		display:none;
	}
	/*--------------*/
	section{
		width:80%;
	}
	
	/*--------------*/
	footer .info{
		padding:38px 5% 0;
		margin:0 auto 20px;
	}
	footer .info li{
		width:100%;
		padding:0 0 50px;
	}
	footer .info li a{
		width:100%;
	}
	footer .info li a span{
		font-size: 16px;
	}
	footer .info li .contact{
		line-height:1.5;
	}
	
	footer .info li .contact span{
		display:block;
	}
	
	.footer{
		padding:33px 5% 24px;
	}
	.footer > li:nth-of-type(2){
		width:calc(100% - 95px);
		padding:0;
	}
	.footer > li:nth-of-type(3){
		width:100%;
	}
	.footer .sns{
		text-align:center;
	}
	.footer .sns li{
		margin:0 13px 0;
	}

}
