@charset "UTF-8";
/*@import url(https://fonts.googleapis.com/css?family=Montserrat:400,700);*/
/* @import url(https://fonts.googleapis.com/css?family=Roboto+Condensed:700&display=swap); */
/*@import url(https://fonts.googleapis.com/css?family=Montserrat:400,700);*/
/* @import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap'); */
/* @import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@400;500;600;700;800&display=swap'); */
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');

/*  "Jost",'Roboto Condensed',
 "Zen Kaku Gothic New", 
 'Shippori Mincho B1',
 "Open Sans",  "Zen Maru Gothic", */

:root {
	--font-min: 'Shippori Mincho B1', 'Noto Serif JP', "ヒラギノ明朝 ProN", "HiraMinProN", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", 'Noto Serif JP', serif;
	--font-go: "Zen Kaku Gothic New", 'Noto Sans JP', 'YuGothic', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', sans-serif;
	--font-titm: 'Shippori Mincho B1', 'Noto Serif JP', "ヒラギノ明朝 ProN", "HiraMinProN", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", 'Noto Serif JP', serif;
	--font-titg: "Zen Maru Gothic",'Roboto Condensed', 'Urbanist', 'YuGothic', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', sans-serif;
	--font-en: "Open Sans", "Jost", "futura-pt-condensed", 'Barlow', 'Shippori Mincho B1', 'Noto Serif JP', "ヒラギノ明朝 ProN", "HiraMinProN", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", 'Noto Serif JP', serif;
	--font-en2: 'Roboto Condensed', 'Urbanist', 'YuGothic', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', 'Meiryo', 'ＭＳ ゴシック', sans-serif;
	--font-sizeS: 12px;
	--font-sizeM: 14px;
	--font-sizeL: 18px;
	--color-base: #ffffff;
	--color-main: #3C3C3C;
	--color-accent1: #6EA2ED;
	--color-accent2: #F2B992;
	--color-accent3: #AAAAAA;
	/* --color-accent4: #FFC500;
	--color-accent5: #AAAAAA; */
	/* --color-accent6: linear-gradient(90deg, #001d7e, #0073ff); */
	/* --color-accent6: linear-gradient(90deg, #001d7e, #5751ff); */
	--color-sub1: #B9E3FF;
	--color-sub2: #B3D8F1;
	--color-sub3: #DEF0FF;
	--color-sub4: #F3F6FA;
	--color-sub5: #f9ffec;

	--shadow: drop-shadow(5px 5px 10px rgba(0, 8, 63, 0.4));
	--br-s: 20px;
	--br-m: 40px;
	--br-l: 50px;

}

body {

	height: 100%;
	font-family: var(--font-go);
	font-size: 1.4rem;
	line-height: 2.8rem;
	background-color: var(--color-sub4);
	color: var(--color-main);
	text-align: center;
}
* {
	box-sizing: border-box;
}


br.dis {
	display: inherit;
}
br.sp {
	display: initial;
}
.pc {
	display: none;
}
.sp {
	display: initial;
}


a ,
a:link ,
a:visited {
   transition: .3s;

}
a:hover ,
a:active ,
a:focus {
}
a[class$="btn"] ,
a[class$="btn"]:link ,
a[class$="btn"]:visited 
a.btn ,
a.btn:link ,
a.btn:visited {
   color: var(--color-base);
   transition: .3s;
   text-decoration: none;
}
a[class$="btn"]:hover ,
a[class$="btn"]:active ,
a[class$="btn"]:focus 
a.btn:hover ,
a.btn:active ,
a.btn:focus {
}


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


/*コンテンツ間上下マージン*/
body section {
	padding-top: 40px;
	padding-bottom: 40px;
	text-align: center;
}




h2 {
	font-size: 2.8rem;
	line-height: 1.5em;
	font-family: var(--font-titg);
	font-weight: bolder;
	margin-bottom: 60px;
}

h2:has(+ .subtitle) {
	margin-bottom: 15px;
}

h2+.subtitle {
	font-size: 2.4rem;
	margin-bottom: 30px;
	font-family: var(--font-en);
}

h3 {
	font-size: 2.0rem;
	line-height: 2.0rem;
	font-weight: bolder;

}

h3.eng_font {
	font-size: 5em;
	line-height: 2em;
}

h3.eng_fontbold {
	font-size: 5em;
	line-height: 1.4em;
}

h3.eng_fontbold .jancomm {
	font-size: 0.2em;
	line-height: 1em;
}

h3 {
	display: block;
	width: 100%;
	/*			height: 30px;*/
	text-align: center;
	line-height: 1.4em;

}

h3>span {
	display: block;
	margin-bottom: 30px;
}

h4 {
	font-size: 1.2em;
	line-height: 1.2em;
	font-weight: bolder;
}

h5 {
	font-size: 1em;
	line-height: 1em;
	font-weight: bolder;
}



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






#gotoTop img{
	position:fixed;
	bottom: 310px;
	right: 5px;
	width: 45px;
	z-index: 100;
	filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5));
	-webkit-filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5));

	}


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

aside.loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: #fff;
	z-index: 1000;

}
aside.loading img {
	width: 100px;
	height: 100px;
	position: fixed;
	top: -10%;
	bottom: 0;
	left: 0;
	right: 0;
	margin:  auto;
	width: 50px;
	height: 50px;
/* 	background: url(../img/common_lodinganime.gif) no-repeat center ;
	background-size: 50px 50px; */
	z-index: 99;
	animation: loading 3s  ease ;
	animation-iteration-count:infinite;
	opacity: 1;
	transition: all 3s;
}

@keyframes loading {
 0% {
		transform: rotate(0deg); 
 }
 to {
		transform: rotate(360deg); 
 }
}


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


header.header {
	position: relative;
	inset: 0px 0 ;
	margin: auto;
	width: 100%;
	padding: 0 ;
	pointer-events: none;
	z-index: 100;

	.spmenuTgr {
		display: none;
	}
	.inner {
		width: 100%;
		position: absolute;


	  & .sitelogo {
			width: 150px;
			padding:  10px 10px 10px 15px;
			margin-top: 10px;
			box-sizing: border-box;
			background: var(--color-sub1);
			border-radius: 15px;
		

		
		& a.logo ,
		& a.logo:link ,
		& a.logo:visited {
			pointer-events: auto;
			transition: .3s;
			text-decoration: none;


				& img {
					width: 100%;
				}

		}
		& a.logo:hover ,
		& a.logo:active ,
		& a.logo:focus {
		}


	  }
	  .spmenuBtn {
		width: 50px;
		height: 50px;
		background: var(--color-base);
		position: fixed;
		inset: 25px 25px auto auto;
		border-radius: var(--br-s);
		pointer-events:auto;
		transition: .3s;
		z-index: 101;


		&:before {
			content: "";
			position: absolute;
			width: 60%;
			height: 2px;
			background: var(--color-accent1);
			border-radius: 1px;
			inset: 40% auto auto 20%;
			transition: .3s;
		}
		&:after {
			content: "";
			position: absolute;
			width: 30%;
			height: 2px;
			background: var(--color-accent1);
			border-radius: 1px;
			inset: 60% auto auto 20%;
			transition: .3s;
		}
	  }


	  .rightmenu {
		background: var(--color-sub1);
		color: var(--color-base);
		/* border-radius: 20px 0 0 20px; */
		width: 100%;
		/* max-width: 600px; */
		height: 100vh;
		padding: 25px 25px 25px 50px ;
		text-align: left;
		z-index: 100;
		position: fixed;
		inset: 0 ;
		display: grid;
		place-content: center;
		grid-template:
		"nav nav  " 1fr 
		"logo logo" 
		"tel tel" 
		"time  holiday " /
		100px 1fr ;
		gap: 10px;
		opacity: 0;
		visibility:hidden;
		transition: .3s;


			.menulogo {
				grid-area: logo;
				text-align: left;
				height: 50px;
				margin-bottom: 10px;
				& img {
					height: 100%;
				}
			}


			& .time {
				grid-area: time;
				margin-bottom: 15vh;
				/* font-size: var(--font-sizeS); */
			}

			& .holiday {
				align-content:end;
				place-self: end start;
				align-self: end;
				grid-area: holiday;
				margin-bottom: 15vh;
			}

			& .tel {
				grid-area: tel;
				/* align-self: center; */
				font-size: 1.8rem;
				font-family: var(--font-en);
				font-weight: 600;
				text-align: left;
				& img {
					width: .55em;
					margin-right: .5em;
					filter: brightness(3);

				}
			}
			& a.tel ,
			& a.tel:link ,
			& a.tel:visited {
				color: var(--color-base);
				transition: .3s;
				text-decoration: none;
			}
			& a.tel:hover ,
			& a.tel:active ,
			& a.tel:focus {
				color: var(--color-accent2);
			}
	

			& nav.nav {
				grid-area: nav;
				display: flex;
				flex-direction: column;
				justify-content: center;
				/* justify-items: center; */
				gap: 20px;
				margin-top: 10px;
				padding-bottom: 40px;
				align-items: left;
				pointer-events: auto;

				background-image: radial-gradient(circle, var(--color-sub1) 1px, transparent 1px);
				background-position: left bottom;
				background-repeat: repeat-x;
				background-size: 6px 2px;

					& a.btn ,
					& a.btn:link ,
					& a.btn:visited {
						display: inline-block;
						/* height: 1em; */
						color: var(--color-base);
						font-weight: 600;
						transition: .3s;
						text-decoration: none;
					}
					& a.btn:hover ,
					& a.btn:active ,
					& a.btn:focus {
						color: var(--color-accent2);

					} 
			}
	  }
	}

	  .spmenuTgr:checked   {
			& ~ .inner {
				.spmenuBtn {
					width: 50px;
					height: 50px;
					background: var(--color-base);
					inset: 25px 25px auto auto;
					border-radius: var(--br-s);


					&:before {
						width: 50%;
						inset: 50% auto auto 25%;
						transform: rotate(45deg);
					}
					&:after {
						width: 50%;
						inset: 50% auto auto 25%;
						transform: rotate(-45deg);
					}
				}

				.rightmenu {

					padding: 25px ;
					visibility:visible;
					opacity: 1;


				}
			}
		}
  }

aside.sidebtn {
	position: fixed;
	inset: auto 0 0 auto;
	z-index: 101;
	& a {
		text-align: center;
		display: block;
		width: 50px;
		height: 150px;
		margin: 0 0 0 auto;
		padding: 10px;
		writing-mode: vertical-rl;


		& img {
			width: 30px;
			display: inline-block;
			margin: 0 auto 5px;
		}
	}
	& a:hover ,
	& a:active ,
	& a:focus {

	}


	& a.recluit ,
	& a.recluit:link ,
	& a.recluit:visited {
		background: var(--color-accent2);
		border-radius: 20px 0 0 20px;

	}
	& a.recluit:hover ,
	& a.recluit:active ,
	& a.recluit:focus {
	}


	& a.reserve ,
	& a.reserve:link ,
	& a.reserve:visited {
		background: var(--color-sub1);
		border-radius: 20px 0 0 0px;

	}
	& a.reserve:hover ,
	& a.reserve:active ,
	& a.reserve:focus {
	}



}






/*****************************
******footer******************
******************************/
footer {
	& section.campany {
		display: flex;
		justify-content: center;
		align-items: flex-start;
		flex-wrap: wrap;
		gap: 40px;
		width: 100% ;
		max-width: 1200px;
		margin: 0 auto;

		& h2 {
			width: 100%;
			margin-bottom: 20px;
			
	  }
  
	  .map {
		width: 100%;
		height: 200px;
		margin:  0 auto;
		/* border-radius: var(--br-m); */
  
	  }
  
	  .daytime {
		width: 80%;
		& .daytimetable {
			/* position: absolute; */
			inset: 40% 30% 0 0;
			margin: auto;
			width: 100%;
			/* height: 200px; */

			border-radius: var(--br-s);
			color: var(--color-accent1);
			overflow: hidden;
			z-index: 5;
			display: grid;
			grid-template-columns: 3fr 1fr 1fr 1fr 1fr 1fr 1fr 2.5fr ;

			& .thead {
				background: var(--color-sub3);
				padding: 1em 0;
			}

			& .ttit {
				background: var(--color-sub3);
				/* line-height: 1em; */
				padding: 1em 0;
			}

			& .tdatl {
				background: var(--color-base);
				padding:  1em 0;
			}

			& .tdat {
				background: var(--color-base);
				padding: 1em 0;
			}
			& div:nth-of-type(8n) {
				/* padding-right: 2.5em; */
			}
			& div:nth-of-type(8n + 1) {
				/* padding-left: 2.5em; */
			}
			& div:nth-of-type(n + 17) {
				background-image: radial-gradient(circle, var(--color-sub1) 1px, transparent 1px);
				background-position: left top;
				background-repeat: repeat-x;
				background-size: 6px 2px;
			}
		}

	  }
  
	  .detail {
		width: 80%;
		border-radius: var(--br-s);
		background: var(--color-base);
		color: var(--color-accent1);
		padding: 30px 30px;
		text-align: left;
		& h3 {
			background-image: radial-gradient(circle, var(--color-sub1) 1px, transparent 1px);
			background-position: left bottom;
			background-repeat: repeat-x;
			background-size: 6px 2px;
			text-align: left;
			padding-bottom: 20px;
			margin-bottom: 10px;

		  .tag {
			font-size: var(--font-sizeM);
			font-weight: normal;
			display: inline-block;
  
		  }
		}
  
		.text {
			display: flex;
			justify-content: flex-start;
			align-items: flex-start;
			flex-wrap: wrap;
			gap: 5px;

		  .address {
			width: 100%;
  
		  }
  
		  .tel {
			flex: 0 150px;
			& img {
				height: .8em;
				display: inline-block;
				margin-right: .75em;
			}

		  }

		  .mail {
			flex: 1;
			& img {
				height: .8em;
				display: inline-block;
				margin-right: .75em;
  
			}
		  }
  
		  & .time {
			width: 100%;

			& p {
				display: inline-block;
				margin-right: 20px;
  
			}
		  }
		}
	  }
	}
  
	& section.footermenu {

		background: var(--color-sub5);

		.inner {
			width: 80%;
			margin: 0 auto;
			display: flex;
			justify-content: center;
			align-items: stretch;
			flex-wrap: wrap;
			gap: 40px;
		}
	  .left {
		width: 100%;
		aspect-ratio: 580/ 250;

		& a {
			width: 100%;
			height: 100%;
			display: grid;
			place-items: center left;
			place-content: center left;
			padding: 40px;
			background: url(../common_img/footer_recruit.webp) no-repeat;
			background-size: 100%;
			background-position: center,center;
			text-align: left;
			position: relative;
			border-radius: var(--br-s);
			overflow: hidden;
			transition: .3s;
			
			&:before {
				content: "";
				width: 100%;
				height: 100%;
				display: block;
				position: absolute;
				background: var(--color-accent1);
				mix-blend-mode:multiply;
				z-index: 0;
				opacity: 0;
				transition: .3s;
			}
			&:after {
				content: "";
				width: 30px;
				height: 30px;
				display: block;
				position: absolute;
				inset: auto 10px 10px auto;
				background: url(../common_img/footer_arrow_w.webp) no-repeat,var(--color-accent2);
				background-size: 10px 15px;
				background-position: 60% 50% ;
				border-radius: var(--br-l);
				transition: .3s;
			}
			& h3 {
			text-align: left;
			margin-bottom: 10px;
			font-family: var(--font-titg);
			z-index: 1;
  
		  }
  
		  .comment {
			z-index: 1;
			& p {
  
			}
		  }
		}
		& a ,
		& a:link ,
		& a:visited {
			color: var(--color-base);
			transition: .3s;
			text-decoration: none;
		}
		& a:hover ,
		& a:active ,
		& a:focus {
			background-size: 105%;

			&:before {
				opacity: .2;
			}
			&:after {
				inset: auto 10px 20px auto;
			}
			
		}
	  }
  
	  .right {
		flex: 0 1 580px;
		/* aspect-ratio: 580/ 250; */
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		border-radius: var(--br-s);
		background: var(--color-base);
		.logo {
			padding: 20% 20% 10%;
			flex: 2;

			& img {
				width: 140px;

  
		  }
		}
  
		& ul {
			flex: 3;
			display: grid;
			grid-auto-flow: column;
			grid-template-rows: repeat(4, auto);
			justify-content: space-between;
			/* align-items:flex-end */
			gap: 10px 40px ;
			border-top:var(--color-sub2) 2px dotted;
			padding: 40px;
			& li {
				text-align: left;
				display: block;


			& a.menuitem ,
			& a.menuitem:link ,
			& a.menuitem:visited {
				font-size: var(--font-sizeM);
				color: var(--color-accent1);
				transition: .3s;
				text-decoration: none;
			}
			& a.menuitem:hover ,
			& a.menuitem:active ,
			& a.menuitem:focus {
				color: var(--color-accent2);
			}

		  }
		}
	  }
	}
  
	& section.copy {
		padding: 40px;
		background: var(--color-sub1);
		color: var(--color-base);
  
	}
  }
/*****************************
******footer終わり*************
******************************/


