/* reset */
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
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-size: 100%;
	font: inherit;
	/* line-height: 1.4em; */
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
	display: block;
}
body {
	line-height: 1.5;
}
ol,ul {
	list-style: none;
}
blockquote,q {
	quotes: none;
}
blockquote:before,blockquote:after,q:before,q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
a {
	text-decoration: none;
	word-break: break-all;
}
a,a:link,a:visited,a:hover,a:active {
	text-decoration: none;
	color: inherit;
}
/* resetここまで */


* {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
body{
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	color: #2a2525;
	font-family: '游ゴシック体', 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	position: relative;
	padding-left: 300px;
}
.f_min{
	font-family: 'Noto Serif JP','游明朝', serif;
}
.f_con1{
	font-family: 'Concert One', cursive;
}
img {
	display: block;
	max-width: 100%;
	height: auto;
}
.flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-line-pack: start;
	align-content: flex-start;
}
.bold{
	font-weight: bold;
}
.center{
	text-align: center;
}
.right{
	text-align: right;
}
.u_line,a.u_line{
	text-decoration: underline;
}
.line_t{
	text-decoration: line-through;
}
.center_item{
	display: flex;
	justify-content: center;
	align-items: center;
}
.m_auto{
	margin: auto;
}
.mt10{
	margin-top: 10px;
}
.mt10{
	margin-top: 10px;
}
.mt20{
	margin-top: 20px;
}
.mt30{
	margin-top: 30px;
}
.mt40{
	margin-top: 40px;
}
.mt50{
	margin-top: 50px;
}
.mt80{
	margin-top: 80px;
}
.mt100{
	margin-top: 100px;
}
.color_red,a.color_red{
	color: #a10009;
}
.color_dgray,a.color_dgray{
	color: #707070;
}
.color_yellow,a.color_yellow{
	color: #fdc900;
}
.color_yellow_d,a.color_yellow_d{
	color: #fd9800;
}
.dib{
	display: inline-block;
}
.gmap {
	height: 0;
	overflow: hidden;
	padding-bottom: 60%;
	position: relative;
}
.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}
.youtube {
	width: 100%;
	aspect-ratio: 16 / 9;
}
.youtube iframe {
	width: 100%;
	height: 100%;
}

.obf_cover{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
}
.obf_cover img{
	position: absolute;
	width: auto;
	height: auto;
	top: 50%;
	left: 50%;
	min-height: 100%;
	min-width: 100%;
	max-width: 1000%;
	-webkit-transform: translateX(-50%) translateY(-50%);
	transform: translateX(-50%) translateY(-50%);
}
@supports ((-o-object-fit: cover) or (object-fit: cover)) {
	.obf_cover img {
		position: static;
		height: 100%;
		width: 100%;
		-o-object-fit: cover;
		object-fit: cover;
		-webkit-transform: none;
		transform: none;
	}
}

@media only screen and (min-width:1025px) {
	.pc {
		display: block!important;
	}
	.pc_di {
		display: inline!important;
	}
	.pc_flex{
		display: flex!important;
	}
	.sp,
	.sp_di,
	.sp_flex {
		display: none!important;
	}
	.w1000 {
		width: 100%;
		max-width: 1000px;
		margin: auto;
	}
	.w1100 {
		width: 100%;
		max-width: 1100px;
		margin: auto;
	}
	.w1200 {
		width: 100%;
		max-width: 1200px;
		margin: auto;
	}
	.w1500 {
		width: 100%;
		max-width: 1500px;
		margin: auto;
	}
}

@media only screen and (max-width:1024px) {
	body{
		font-size: 16px;
	}
	.pc,
	.pc_di,
	.pc_flex {
		display: none!important;
	}
	.sp {
		display: block!important;
	}
	.sp_di {
		display: inline-block!important;
	}
	.sp_flex{
		display: flex!important;
	}
	.w1000,.w1100,.w1200 ,.w1500{
		max-width: 100%;
	}
}


/* header */
.modal_nav{
	position: fixed;
	left: 0;
	top: 0;
	height: 100vh;
	width: 300px;
	background: #fdc900;
	padding: 30px 0 0;
	z-index: 100;
	transition: .3s ease-in-out;
}
.head_logo{
	max-width: 185px;
	margin: auto;
}
.head_nav{
	margin-top: 20px;
}
.head_nav_item+.head_nav_item{
	margin-top: 5px;
}
.head_nav_en{
	display: block;
	color: #fd9800;
	font-size: 1.25rem;
	font-weight: normal;
}
.head_nav_ja{
	display: block;
}
.side_btn_wrap{
	position: fixed;
	right: 0;
	top: 20px;
	flex-flow: column;
	gap: 15px;
	z-index: 100;
}
.side_btn{
	width: 90px;
	height: 80px;
	background: #fdc900;
	padding: 20px 5px 20px 20px;
	border-radius: 100px 0 0 100px;
	flex-flow: column;
	position: relative;
	overflow: hidden;
}
.side_btn img{
	max-width: 40px;
	position: relative;
	z-index: 1;
}
.side_btn_ttl{
	margin-top: 5px;
	font-size: 0.8rem;
	line-height: 1.1;
	position: relative;
	z-index: 1;
}
.icon_nav{
	margin-top: 30px;
	justify-content: center;
	gap: 10px;
}
.icon_nav_item{
	position: relative;
	padding: 5px;
}
.icon_nav_img{
	height: 28px;
	position: relative;
	z-index: 1;
}
.icon_nav_txt{
	font-size: 0.7rem;
	color: #fd9800;
	position: relative;
	z-index: 1;
}
a.recruit_btn{
	margin-top: 15px;
	background: #fd9800;
	padding: 20px;
	position: relative;
}
a.fc_btn{
	margin-top: 0;
	background: #000;
	color: #fdc900;
}
a.recruit_btn span{
	position: relative;
	z-index: 1;
}

@media only screen and (min-width:1025px) {
	.head_logo,.foot_logo img{
		transition: 0.3s ease-in-out;
	}
	.head_logo:hover,.foot_logo img:hover{
		opacity: 0.5;
	}
	.head_nav_item{
		position: relative;
	}
	.head_nav_item a{
		position: relative;
		z-index: 1;
	}
	.head_nav_item::after,
	.icon_nav_item::after,
	.recruit_btn::after,
	.side_btn::after,
	.foot_nav_item::after {
		content: "";
		display: block;
		width: 100%;
		height: 100%;
		background: rgba(256,256,256,0);
		position: absolute;
		top: 0;
		left: 0;
		transition: 0.3s ease-in-out;
	}
	.head_nav_item::after,
	.icon_nav_item::after,
	.foot_nav_item::after{
		border-radius: 5px;
	}
	.head_nav_item:hover::after,
	.icon_nav_item:hover:after,
	.recruit_btn:hover::after,
	.side_btn:hover::after,
	.foot_nav_item:hover::after{
		background: rgba(256,256,256,0.5);
	}
}

@media only screen and (max-width:1024px) {
	body{
		padding: 0;
	}
	/*開閉ボタン*/
	#nav_toggle{
		width: 50px;
		height: 40px;
		cursor: pointer;
		z-index: 10000;
		display: block;
		padding: 0;
		transition: .3s ease-in-out;
		position: fixed;
		left: 20px;
		top: 20px;
		padding: 10px;
		background: rgba(256,256,256,0.8);
		border-radius: 10px;
	}
	#nav_toggle div {
		position: relative;
		height: 100%;
	}
	#nav_toggle span {
		display: block;
		position: absolute;
		width: 100%;
		height: 4px;
		background: #000;
		left: 0;
		text-align: center;
		font-size: 0;
		transition: .3s ease-in-out;
	}
	#nav_toggle span:nth-child(1) {
		top: 0;
	}
	#nav_toggle span:nth-child(2) {
		top: calc(50% - 2px);
	}
	#nav_toggle span:nth-child(3) {
		top: calc(100% - 4px);
	}
	.open#nav_toggle{
		background: transparent;
	}
	.open#nav_toggle span{
		background: #fff;
	}
	.open#nav_toggle span:nth-child(1) {
		top: 45%;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.open#nav_toggle span:nth-child(2) {
		width: 0;
		left: 50%;
	}
	.open#nav_toggle span:nth-child(3) {
		top: 45%;
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}

	.head_logo{
		max-width: 150px;
	}
	.modal_nav{
		transform: translateX(-100%);
		width: 100%;
		overflow-y: scroll;
		padding: 10px 0 0;
	}
	.open.modal_nav{
		transform: translateX(0);
	}
	.head_nav{
		margin-top: 10px;
	}
	.head_nav_item+.head_nav_item{
		margin-top: 0;
	}
	.icon_nav{
		margin-top: 5px;
	}
	a.recruit_btn{
		margin-top: 5px;
		padding: 10px;
	}
	a.fc_btn{
		margin-top: 0;
	}

	.side_btn_wrap{
		padding: 0 10px;
		top: unset;
		bottom: 0;
		flex-flow: row;
		gap: 5px;
		width: 100%;
		justify-content: end;
		z-index: 50;
	}
	.side_btn{
		width: 60px;
		height: 50px;
		padding: 5px;
		border-radius: 10px 10px 0 0;
	}
	.side_btn img{
		max-width: 30px;
	}
	.side_btn_ttl{
		font-size: 0.5rem;
		margin-top: 2px;
	}
}


/* footer */
footer{
	background: #fdc900;
	position: relative;
	padding: 50px 20px;
}
.foot_circle{
	width: 100%;
	overflow: hidden;
	position: absolute;
	top: -1px;
	left: 0;
}
.foot_circle_inner{
	content: "";
	display: block;
	height: 150px;
	margin: 0 -200px;
	background: #fff;
	border-radius: 0 0 2000px 2000px / 0 0 400px 400px;
}
.foot_logo{
	display: block;
	position: relative;
	z-index: 10;
	width: 240px;
	margin: auto;
	background: #fdc900;
	padding: 20px;
	border-radius: 150px;
}
.foot_nav{
	margin-top: 50px;
	justify-content: center;
}
.foot_nav_box{
	padding: 10px 20px;
	border-right: solid 1px #707070;
}
.foot_nav_box:last-child{
	border-right: none;
}
.foot_nav_item{
	display: block;
	padding: 5px;
	position: relative;
}
.foot_nav_item span{
	position: relative;
	z-index: 1;
}
.foot_nav_sns{
	margin-top: 20px;
	gap: 10px;
}
.foot_tel{
	margin-bottom: 10px;
}
.foot_tel_num{
	font-size: 2.2rem;
	line-height: 1.2;
}
.copyright{
	background: #000;
	color: #fff;
	font-size: 0.8rem;
	padding: 15px;
}

@media only screen and (max-width:1024px) {
	.foot_circle_inner{
		height: 110px;
	}
	.foot_logo{
		width: 180px;
	}
	.foot_nav{
		flex-wrap: wrap;
		font-size: 0.9rem;
		max-width: 250px;
		margin: 20px auto 0;
		text-align: center;
	}
	.foot_nav_box{
		width: 100%;
		padding: 0;
		border: none;
	}
	.foot_nav_sns{
		justify-content: center;
	}
	.foot_nav_box04{
		margin-top: 30px;
	}
	.foot_tel_num{
		font-size: 1.5rem;
	}
	.copyright{
		padding-bottom: 80px;
	}
}