@charset "UTF-8";
#copyright{padding:10px 0;text-align:center;}
#copyright img{width:auto;}
/* ----- これより上は削除しないでください ----- */

html{
	margin:0;
	padding:0;
}

body{
	margin:0 auto;
	padding:0;
}

@media screen and (min-width:813px){
	/* iPad背景切れ対策 */
	body{
		min-width:1200px;
	}
	/* 電話リンクなし */
	a[href^=tel]{
		pointer-events:none;
	}
}
*,*::before,*::after{
	box-sizing:border-box;
}

header,footer,section,aside,nav,article,main{
	display:block;
}

h1, h2, h3, h4, h5, h6, figure, ul, ol, li, dl, dt, dd, p, img {
	margin: 0;
	padding: 0;
}

h1, h2, h3, h4, h5, h6,a {
	line-height: 1.5;
}

p {
	color: #000;
	line-height: 1.5;
	overflow-wrap:break-word;
}

li {
	line-height: 1.5;
}

img {
	border: none;
	vertical-align: top;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

ul li,ol li{
	list-style:none;
}

a {
	text-decoration: none;
	transition: color 0.2s, opacity 0.2s;
}

a:hover{
	text-decoration:none;
}

/* 表示切替 */
.switch {
	visibility: hidden;
}
.sp{
	display:none;
}
@media screen and (max-width:812px){
	.pc{
		display:none;
	}
	.sp{
		display:block;
	}
}


/*
	main
-----------------------------------------------------------------------------------------------*/
/* base.cssにあるmainの上書き */
#main {
	position: relative;
	width: 100%;
	padding:0;
	font-size:14px;
	font-weight: 500;
	font-feature-settings: "palt";
	letter-spacing: 0.1rem;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
/* main内にのみ効くように設定 */
#main *{
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
#main a{
	color: #000;
	text-decoration: none;
}
#main a:visited{
	text-decoration: none;
}

/*
	common
-----------------------------------------------------------------------------------------------*/
:root{
	/* color */
	--colMainBlue:#12447f;
	--colLtBlue:#0080ff;
	--colYellow:#fcee21;
	--bgMainBlue:rgb(18 68 127 / 0.1);

	/* font */
	--ffJp:'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', YuGothic, Meiryo, sans-serif;
	}

#main .ffJp *{
	font-family: var(--ffJp);
}
/* btn */
#main a.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	padding: 20px;
	border-radius: 50px;
	letter-spacing: 0.15rem;
	transition: all 0.3s;
	text-align: center;
	position: relative;
}
/* ボタンリンク矢印 */
#main a.btn:before,
#main a.btn:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 13px;
  height: 3px;
  background-color:#fff;
  transform-origin: calc(100% - 1.5px) 50%;
	transition: all 0.3s;
}
#main a.btn::before {
  transform: rotate(45deg);
}
#main a.btn::after {
  transform: rotate(-45deg);
}
@media (any-hover: hover){
#main a.btn.btn:hover::before,
#main a.btn.btn:hover::after{
	right: 15px;
}
}
/* メインタイトル */
.mainTit{
	color: var(--colMainBlue);
	font-size: 42px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-align: center;
	line-height: 36px;
}
.mainTit span{
	color: #000;
	display: block;
	font-size: 16px;
}

/*
	ctsWrapper
-----------------------------------------------------------------------------------------------*/
#ctsWrapper{
	overflow: hidden;
}
/* ctsArea */
.ctsArea{
	width: 1200px;
	padding: 0 30px 90px 30px;
	margin: 0 auto;
}

/*
	kvWrapper
-----------------------------------------------------------------------------------------------*/
#kvWrapper{
	max-height: 620px;
	position: relative;
	background: url(../images/kv_bg_pc.png)  no-repeat center bottom / cover;
}
.kvArea{
	width: 630px;
	height: 620px;
	margin: 0 auto;
	position: relative;
	padding-top:75px;
	text-align: center;
}
.kvTit01{
	background: var(--colMainBlue);
	color: #fff;
	font-size: 45px;
	font-weight: 800;
	letter-spacing: 0.3rem;
}
.kvTit02{
	margin-top:10px;
}
.kvTit03{
	margin-top:30px;
}
.kvDay{
	margin-top:20px;
}
#main a.btn.btnReserve{
	margin: 25px auto 0 auto;
	font-size: 28px;
	color: #fff;
	width: 400px;
	background: var(--colLtBlue);
}
@media (any-hover: hover){
	#main a.btn.btnReserve:hover {
		background-color: var(--colMainBlue);
	}
}


/*
	aboutWrapper
-----------------------------------------------------------------------------------------------*/
#aboutWrapper.ctsArea{
	position: relative;
	padding-top: 60px;
}
#aboutWrapper.ctsArea p{
	text-align: center;
	font-weight: 500;
	font-size: 18px;
	letter-spacing: 0.1em;
	line-height: 50px;
}

/*
	#lineupWrapper
-----------------------------------------------------------------------------------------------*/
/* lineupList */
#lineupWrapper .lineupList{
	border: 5px solid var(--colMainBlue);
	display: grid;
	grid-template-columns:repeat(auto-fit, calc(100%/4));
	margin-top:50px;
	padding-block: 20px;
}
#lineupWrapper .lineupList li{
	display: grid;
	grid-row:span 3;
	grid-template-rows:subgrid;
	row-gap: 26px;
	padding-inline: 15px;
	border-right: 1px solid #b3b3b3;
	text-align: center;
	}
.lineupNum{
	margin:0 auto;
}
#lineupWrapper .lineupList li:last-child{
		border-right: none;
}
#lineupWrapper .lineupNum{
	margin-top: 10px;
}
#lineupWrapper .lineupTit{
	margin-top: -10px;
	font-size: 22px;
	font-weight: 900;
	color: var(--colMainBlue);
}
#lineupWrapper .lineupTit span{
	background: linear-gradient(transparent 70%, var(--colYellow) 0%);
}
#lineupWrapper .lineupTxt{
	text-align: left;
	font-size: 15px;
	padding-bottom: 40px;
}
#lineupWrapper .lineupList li:nth-child(3) .lineupTxt{
	text-align: center;
}
/* pointList */
#lineupWrapper .pointList{
	width: 960px;
	display: grid;
	grid-template-columns:repeat(auto-fit, calc(100%/4));
	margin:50px auto 0 auto;
}
#lineupWrapper .pointList li{
	display: grid;
	grid-template-rows:subgrid;
	grid-row:span 2;
	row-gap: 12px;
	padding-inline: 15px;
	text-align: center;
}
#lineupWrapper .pointIll{
	align-items: center;
	aspect-ratio: 1 / 1;
	background: #f2f2f2;
	border-radius: 50%;
	display: flex;
	justify-content: center;	
	margin: 0 auto;
	text-align: center;
	width: 148px;
}
#lineupWrapper .pointTxt{
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 170%;
}
#lineupWrapper .pointTxt span{
	color: var(--colLtBlue);
	font-size: 18px;
	font-weight: 800;
}
/*
	companyWrapper
-----------------------------------------------------------------------------------------------*/
#companyWrapper{
	background: var(--bgMainBlue) url(../images/ill_footer_pc.png) no-repeat center bottom;
}
#companyWrapper .ctsArea{
	position: relative;
	padding: 90px 0 200px 0;
}
#companyWrapper .companyList{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap:30px;
	margin: 80px auto 0 auto;
	width: 960px;
}
#companyWrapper .companyList li{
	display: grid;
	grid-row:span 2;
	row-gap: 30px;
	text-align: center;
	background: #fff;
	padding:56px 48px 48px 48px;
}
/* 企業情報ボタン */
#main a.btn.btnCompany{
	border: 3px solid var(--colMainBlue);
	background: #fff;
	color: var(--colMainBlue);
	font-size: 18px;
	font-weight: 500;
	width: 260px;
	margin:0 auto;
	padding:12px;
	transition: all 0.3s;
}
#main a.btn.btnCompany:before,
#main a.btn.btnCompany:after {
  background-color:var(--colMainBlue);
	width:11px;
}
@media (any-hover: hover){
	#main a.btn.btnCompany:hover{
		background: var(--colMainBlue);
		color: #fff;
	}
	#main a.btn.btnCompany:hover:before,
	#main a.btn.btnCompany:hover:after {
		background-color:#fff;
	}
}
/*----------------------------------------------------------------------------------------------
	レスポンシブ
-----------------------------------------------------------------------------------------------*/
@media screen and (max-width:812px){

	/* common.cssで850pxに設定されているので保険で100%にしておく */
	body {
		min-width: 100%;
	}
	/*
		common
	-----------------------------------------------------------------------------------------------*/
	img {
		 width: 100%;
	}
	/* btn */
	#main a.btn {
		padding: 10px;
		border-radius: 50px;
		transition:none;
	}
	/* btn */
	#main a.btn {
		padding: 10px;
	}
	/* ボタンリンク矢印 */
	#main a.btn:before,
	#main a.btn:after {
		right: 15px;
		width: 13px;
		height: 3px;
	}
	/* メインタイトル */
	.mainTit{
		font-size: 28px;
		line-height: 28px;
	}
	.mainTit span{
		font-size: 12px;
	}
	/*
		ctsWrapper
	-----------------------------------------------------------------------------------------------*/
	#ctsWrapper{
		overflow: hidden;

	}
	/* ctsArea */
	.ctsArea{
		width: 100%;
		max-width: 500px;
		padding: 0 20px 60px 20px;
	}

	/*
		kvWrapper
	-----------------------------------------------------------------------------------------------*/
	#kvWrapper{
		max-height: 600px;
		background: url(../images/kv_bg_sp.png)  no-repeat center bottom / cover;
	}
	.kvArea{
		width: 100%;
		max-width: 500px;
		height: 600px;
		padding:120px 20px 0 20px;
	}
	.kvTit01{
		font-size: 24px;
		padding: 10px 0;
		letter-spacing: 0.15em;
	}
	.kvTit03{
		margin-top:20px;
	}
	.kvDay{
		margin:20px auto 0 auto;
		width: 212px;
	}
	#main a.btn.btnReserve{
		margin: 25px auto 0 auto;
		width: 280px;
		font-size: 22px;
	}

	/*
		aboutWrapper
	-----------------------------------------------------------------------------------------------*/
		#aboutWrapper.ctsArea{
			padding-top: 30px;
		}
		#aboutWrapper.ctsArea p{
			font-size: 16px;
			line-height: 32px;
		}
		
	/*
		#lineupWrapper
	-----------------------------------------------------------------------------------------------*/
	/* lineupList */
	#lineupWrapper .lineupList{
		grid-template-columns:none;
		grid-template-rows:repeat(auto-fit, calc(100%/4));
		margin-top:25px;
		padding-block: 0px;
		padding-inline: 25px;
		text-align: justify;
	}
	#lineupWrapper .lineupList li{
		grid-row:span 3;
		row-gap: 18px;
		grid-template-rows:auto;
		padding-inline: 0;
		border-right: none;
		border-bottom: 1px solid #b3b3b3;
		}
	.lineupNum{
		width: 42px;
	}
	#lineupWrapper .lineupList li:last-child{
			border: none;
	}
	#lineupWrapper .lineupNum{
		margin-top: 16px;
	}
	#lineupWrapper .lineupTit{
		font-size: 20px;
	}
	#lineupWrapper .lineupTxt{
		padding-bottom:20px;
	}
		/* pointList */
	#lineupWrapper .pointList{
		width: 100%;
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(2, 1fr);
		margin:50px auto 0 auto;
		gap: 30px 10px;
	}
	#lineupWrapper .pointList li{
		padding-inline: 0;
		grid-template-rows:auto;
	}
	#lineupWrapper .pointIll{
		width:100px;
	}
	#lineupWrapper .pointIll img{
		width: 60px;
	}
	#lineupWrapper .pointTxt{
		font-size: 14px;
	}
	#lineupWrapper .pointTxt span{
		font-size: 16px;
	}


	/*
		companyWrapper
	-----------------------------------------------------------------------------------------------*/
	#companyWrapper{
		background: var(--bgMainBlue) url(../images/ill_footer_sp.png) no-repeat center bottom;
		background-size:350px;
	}
	#companyWrapper .ctsArea{
		padding:40px 0 150px 0;
	}
	#companyWrapper .companyList{
		grid-template-columns:auto;
		gap:10px;
		margin: 25px auto 0 auto;
		padding-inline:20px;
		width: 100%;
	}
	#companyWrapper .companyList li{
		display: grid;
		grid-row:span 2;
		row-gap: 17px;
		text-align: center;
		background: #fff;
		padding:25px 0;
		text-align: center;
	}
	#companyWrapper .companyList li img{
		width: 232px;
		margin: 0 auto;
	}
	/* 企業情報ボタン */
	#main a.btn.btnCompany{
		font-size: 14px;
		width: 182px;
		padding:6px 15px;
	}
	#main a.btn.btnCompany:before,
	#main a.btn.btnCompany:after {
		width:7px;
		height: 2px;
	}

}

/* ipad用 */
@media screen and (min-width:600px) and (max-width:811px){
}

/* iPhone SE用 */
@media screen and (max-width:375px){
}