@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Work+Sans:wght@100..900&display=swap');
/*-----------------------------------
	root
-----------------------------------*/
:root {
	--mClr1:#00A2D9;--mClr2:#00467E;--mClr3:#00233F;
	--sClr1:#505050;--sClr2:#FFFFFF;
	--fEN:"Work Sans",sans-serif;--fJA:"Noto Sans JP",sans-serif;
	--txtB:trim-both cap alphabetic;
}
/*-----------------------------------
	base
-----------------------------------*/
html {
    overflow-y: auto;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    font-size: 62.5%;
	overflow-x: hidden;
}
body {
	font: 400 1.5rem/1 var(--fJA);
	color: var(--sClr1);
	background: var(--sClr2);
	margin:0 !important;
	width: 100%;
}
body.nav-open {
	overflow: hidden !important;
	height: 100% !important;
}
*, *:before, *:after {
	box-sizing: border-box;
}
.contents_inner {
	width: min(1120px,95vw);
	margin: 0 auto;
}
.inner_wrap {
	width: min(880px,90vw);
	margin: 0 auto;
}
img {
    max-width: 100%;
    height: auto;
}
a, a:link, a:visited {
    color: var(--sClr1);
	text-decoration:none;
    cursor: pointer;
	transition: all .3s;
}
a:hover {
	opacity: 0.7;
	text-decoration:none;
}
.tab{
	display: none;
}
.sp{
	display:none;
}
.pc{
	display:block;
}
@media screen and (max-width: 1100px) {
	.pc{
		display:none;
	}	
	.sp{
		display:none;
	}
	.tab{
		display:block;
	}
}
@media screen and (max-width:767px) {
	body {
		font-size: max(3.52vw,1.5rem);
	}
	.pc{
        display:none;
    }
	.tab{
        display:none;
	}
    .sp{
        display:block;
    }
}
@media screen and (min-width: 768px) {
    a[href^="tel:"]{
        pointer-events: none;
    }
}
/*-----------------------------------
	header
-----------------------------------*/
header {
	width: min(1760px,calc(100% - min(60px,4.96vw)));
	height: min(82px,6.77vw);
	background: var(--sClr2);
	border-radius: 5px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 min(20px,1.65vw);
	position: fixed;
	top: 15px;
	left: calc(50% - min(880px,48.35vw));
	z-index: 999;
	filter: drop-shadow(6px 6px 9px #00000033);
}
header #logo {
	width: min(320px,26.44vw);
}
header nav #nav_menu {
	display: flex;
	align-items: center;
}
header nav #nav_menu li {
	position: relative;
	cursor: pointer;
}
header nav #nav_menu > li:not(.recruit) > a,
header nav #nav_menu > li > span {
	display: grid;
	place-content: center;
	height: min(82px,6.77vw);
	padding: 0 min(15px,1.24vw);
	min-width: min(126px,10.41vw);
	font:500 min(1.4rem,1.16vw)/1 var(--fJA);
	color: var(--mClr3);
	position: relative;
	background: var(--sClr2);
}
header nav #nav_menu > li > span::before {
	content: '';
	width: 100%;
	height: 3px;
	background: var(--mClr1);
	position: absolute;
	bottom: 0;
	left: 0;
}
header nav #nav_menu > li:not(.recruit) > a::after,
header nav #nav_menu > li > span::after {
	content:'';
	width: min(13px,1.07vw);
	height: min(8px,0.66vw);
	background: url(../img/common/icon_arrow_b.svg) no-repeat center/contain;
	position: absolute;
	bottom: min(15px,1.24vw);
	left: calc(50% - min(6.5px,0.53vw));
	transition: all .3s;
}
header nav #nav_menu > li:hover > span {
	color: var(--mClr1);
}
header nav #nav_menu > li:hover > span:after {
	transform: rotate(180deg);
}
header nav #nav_menu .has-child > ul {
	position: absolute;
	left:0;
	top: 0;
	z-index: -1;
	width:min(160px,13.24vw);
	visibility: hidden;
	opacity: 0;
	transition: all .3s;
	background: rgba(0,162,217,0.95);
	padding: 10px 0;
}
header nav #nav_menu .has-child:hover > ul,
header nav #nav_menu .has-child:active > ul {
	visibility: visible;
	opacity: 1;
	top: min(82px,6.77vw);
}
header nav #nav_menu .has-child > ul li a {
	display: block;
	font: 400 min(1.5rem,1.24vw)/1 var(--fJA);
	color: var(--sClr2);
	padding: 8px min(7px,0.58vw);
}
header nav #nav_menu .recruit a {
	display: block;
	width: min(108px,8.92vw);
	background: var(--mClr1);
	border-radius: 6px;
	color: var(--sClr2);
	text-align: center;
	font: 700 min(1.4rem,1.16vw)/1 var(--fJA);
	padding: 13px 0;
}
header .menu_btn_wrap {
    display: none;
}
@media screen and (max-width: 1100px) {
    header .menu_btn_wrap {
        display: block;
		width: 13vw;
		height: 6.77vw;
		cursor:pointer;
		position: absolute;
		top: 0;
		right: 0;
		z-index: 999;
	}
	header .menu_btn_wrap .menu_btn {
		width: 4.72vw;
		height: 2.8vw;
		display: block;
		position: absolute;
		top: calc(50% - 1.4vw);
		left: calc(50% - 2.36vw);
		transition: all 0.3s;
		z-index:999;
	}
	header .menu_btn_wrap .menu_btn > * {
		width: 100%;
		height: 0.36vw;
		background: var(--mClr3);
		border-radius: calc(1px/0);
		position: absolute;
		left: 0;
		transition: all 0.3s;
	}
	header .menu_btn_wrap .menu_btn .lineh {
		top:0;
	}
	header .menu_btn_wrap .menu_btn .linem {
		top: calc(50% - 0.18vw);
		opacity: 1;
	}
	header .menu_btn_wrap .menu_btn .lineb {
		bottom: 0;
	}
	header .menu_btn_wrap.active .menu_btn .lineh {
		transform:rotate(-135deg);
		top: 45%;
	}
	header .menu_btn_wrap.active .menu_btn .linem {
		opacity: 0;
	}
	header .menu_btn_wrap.active .menu_btn .lineb {
		transform:rotate(135deg);
		bottom: 45%;
	}
    header nav #nav_menu {
		width: 100%;
		height: calc(100svh - (6.77vw + 45px));
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		background: #fff;
		position: fixed;
		top: calc(6.77vw + 15px);
		right: 0;
		padding: 2.72vw 2.72vw 2.72vw 10vw;
		display:none;
		z-index: 999;
		border-radius: 5px;
		filter: drop-shadow(0px 3px 6px rgba(0,0,0,0.2));
	}
	header nav #nav_menu > li:not(.recruit) {
		margin-bottom: 1.5vw;
	}
	header nav #nav_menu > li.has-child {
		cursor: default;
	}
	header nav #nav_menu > li:not(.recruit) > a,
	header nav #nav_menu > li > span {
		display: block;
		height: auto;
		padding: 1.5vw;
		min-width: unset;
		font:500 1.5vw/1 var(--fJA);
		border-bottom: 1px solid #A6AAAC;
		cursor: pointer;
	}
	header nav #nav_menu > li > span::before {
		content: none;
		display: none;
	}
	header nav #nav_menu > li:not(.recruit) > a::after,
	header nav #nav_menu > li > span::after {
		width: 0.72vw;
		height: 1vw;
		background: url(../img/common/icon_arrow_r_b.svg) no-repeat center/contain;
		bottom: auto;
		top: calc(50% - 0.5vw);
		left: calc(100% - 2.72vw);
	}
	header nav #nav_menu > li:hover > span {
		color: inherit;
	}
	header nav #nav_menu > li:hover > span:after {
		transform: rotate(0);
	}
	header nav #nav_menu .has-child > ul {
		width:100%;
		padding: 0;
		position: relative;
		z-index: 1;
		background: var(--mClr1);
		left:0 !important;
		top:0 !important;
		visibility:visible;
		opacity:1;
		display: none;
		transition:none;
	}
	header nav #nav_menu .has-child > ul li a {
		font:500 1.5vw/1 var(--fJA);
		padding: 1.5vw 1.5vw 1.5vw 3vw;
		border-bottom: 1px solid var(--sClr2);
		position: relative;
	}
	header nav #nav_menu .has-child > ul li a::after {
		content: '';
		width: 0.72vw;
		height: 1vw;
		background: url(../img/common/icon_arrow_r_w.svg) no-repeat center/contain;
		position: absolute;
		top: calc(50% - 0.5vw);
		left: calc(100% - 2.72vw);
	}
	header nav #nav_menu > li.has-child.active > span::after {
        transform: rotate(90deg);
    }
	header nav #nav_menu .recruit a {
		width: 10vw;
		font: 700 1.27vw/1 var(--fJA);
		padding: 1.36vw 0;
		margin: 0 auto;
	}
}
@media screen and (max-width: 767px) {
	header {
		width: 95%;
		height: 14.6vw;
		padding: 0 3vw;
		top: 1.95vw;
		left: 2.5%;
	}
	header #logo {
		width: 67.14vw;
	}
    header .menu_btn_wrap {
		width: 18.9vw;
		height: 14.6vw;
	}
	header .menu_btn_wrap .menu_btn {
		width: 9.12vw;
		height: 5.48vw;
		top: calc(50% - 2.74vw);
		left: calc(50% - 4.56vw);
	}
	header .menu_btn_wrap .menu_btn > * {
		height: 0.52vw;
	}
	header .menu_btn_wrap .menu_btn .linem {
		top: calc(50% - 0.26vw);
	}
    header nav #nav_menu {
		height: calc(100svh - 21.1vw);
		top: 16.55vw;
		padding: 6.51vw 6.51vw 6.51vw 16vw;
	}
	header nav #nav_menu > li:not(.recruit) {
		margin-bottom: 3vw;
	}
	header nav #nav_menu > li:not(.recruit) > a,
	header nav #nav_menu > li > span {
		padding: 1.95vw;
		font-size: max(3.91vw,1.6rem);
	}
	header nav #nav_menu > li > span::before {
		content: none;
		display: none;
	}
	header nav #nav_menu > li:not(.recruit) > a::after,
	header nav #nav_menu > li > span::after {
		width: 2.08vw;
		height: 3vw;
		background: url(../img/common/icon_arrow_r_b.svg) no-repeat center/contain;
		bottom: auto;
		top: calc(50% - 1.5vw);
		left: calc(100% - 4.03vw);
	}
	header nav #nav_menu .has-child > ul li a {
		font-size: max(3.91vw,1.6rem);
		padding: 1.95vw 1.95vw 1.95vw 3.9vw;
		border-bottom: 1px solid var(--sClr2);
		position: relative;
	}
	header nav #nav_menu .has-child > ul li a::after {
		content: '';
		width: 2.08vw;
		height: 3vw;
		background: url(../img/common/icon_arrow_r_w.svg) no-repeat center/contain;
		position: absolute;
		top: calc(50% - 1.5vw);
		left: calc(100% - 4.03vw);
	}
	header nav #nav_menu .recruit a {
		width: 26.07vw;
		font-size: max(4.04vw,1.7rem);
		padding: 1.95vw 0;
		margin: 0 auto;
	}
}
/*-----------------------------------
	contents
-----------------------------------*/
#contents {
	padding-bottom: 165px;
}
@media screen and (max-width: 767px) {
	#contents {
		padding-bottom: calc(16.95vw + 10px);
	}
}
/*-----------------------------------
	pagetop
-----------------------------------*/
#pagetop{
	width: 100%;
	padding: 0 20px 20px 0;
	margin-bottom: -165px;
	display: flex;
	justify-content: flex-end;
    position: sticky;
    bottom: 50px;
    z-index: 998;
	pointer-events: none;
}
#pagetop .inner {
    cursor: pointer;
    width: 116px;
    height: 116px;
	position: relative;
	pointer-events: auto;
}
#pagetop .inner > * {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
    transition-duration: 0.3s;
}
#pagetop .inner .pagetop01 {
	z-index: 1;
	filter: drop-shadow(3px 3px 10px rgba(0,0,0,0.3));
}
#pagetop .inner .pagetop02 {
	z-index: 2;
}
#pagetop .inner .pagetop03 {
	z-index: 3;
	top: -10px;
}
#pagetop .inner .pagetop04 {
	z-index: 4;
	object-fit: contain;
	object-position: bottom;
}
#pagetop .inner:hover > * {
	transform: scale(0.8);
}
#pagetop .inner:hover .pagetop03 {
	top: 0;
}
@media screen and (max-width: 767px) {
	#pagetop{
		padding: 0 10px 10px 0;
		margin-bottom: calc(-16.95vw + -10px);
		bottom: 25px;
	}
	#pagetop .inner {
		width: 16.95vw;
		height: 16.95vw;
	}
	#pagetop .inner:hover > * {
		transform: none;
	}
	#pagetop .inner:hover .pagetop03 {
		top: -10px;
	}
}
/*-----------------------------------
	recruit
-----------------------------------*/
#recruit {
	width: 100%;
	height: min(325px,31.25vw);
	background: #E6EDF2;
	position: relative;
}
#recruit::before, #recruit::after {
	content: "";
	width: calc((100vw - 2400px) / 2);
	height: 6px;
	position: absolute;
}
#recruit::before {
	background: #1ba15a;
	top: 98px;
	right: 0;
}
#recruit::after {
	background: #937eb8;
	bottom: 43.5px;
	left: 0;
}
#recruit .recruit_wrap {
	width: 100%;
	height: 100%;
	background: url(../img/common/recruit_bg.svg) no-repeat center/min(2560px,232%) 100%;
	padding: min(83px,7.98vw) 0;
	position: absolute;
	top: 0;
	left: 0;
}
#recruit .contents_inner {
	width: min(880px,84.61vw);
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#recruit .text {
	width: min(713px,68.56vw);
}
#recruit .text img {
	width: 100%;
}
#recruit .link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: min(10px,0.96vw);
}
#recruit .link p {
	width: max-content;
	font: 700 min(2.3rem,2.21vw)/1 var(--fJA);
	color: var(--mClr3);
}
#recruit .link a {
	display: block;
	width: min(174px,16.73vw);
	background: var(--mClr3);
	color: var(--sClr2);
	text-align: center;
	font: 700 min(2.1rem,2.02vw)/1 var(--fJA);
	padding: min(15px,1.44vw) min(20px,1.92vw) min(15px,1.44vw) 0;
	position: relative;
	border-radius: calc(1px/0);
	border: 2px solid var(--mClr3);
	text-box: var(--txtB);
}
#recruit .link a:hover {
	opacity: 1;
	background: var(--sClr2);
	color: var(--mClr3);
}
#recruit .link a::after {
	content: '';
	width: min(15px,1.44vw);
	height: min(24px,2.3vw);
	background: url(../img/common/recruit_arrow_w.svg) no-repeat center/contain;
	position: absolute;
	top: calc(50% - min(12px,1.15vw));
	right: min(15px,1.44vw);
	transition: all 0.3s;
}
#recruit .link a:hover::after {
	background: url(../img/common/recruit_arrow_b.svg) no-repeat center/contain;
	right: min(10px,0.96vw);
}
@media screen and (max-width: 767px) {
	#recruit {
		height: auto;
		aspect-ratio: 767 / 376;
	}
	#recruit::before, #recruit::after {
		content: none;
		display: none;
	}
	#recruit .recruit_wrap {
		background: url(../img/common/sp/recruit_bg.svg) no-repeat center/cover;
		padding: 10.43vw 0 3.91vw;
	}
	#recruit .contents_inner {
		width: 85.39vw;
		flex-direction: column;
		align-items: normal;
		gap: 7.17vw;
	}
	#recruit .text {
		width: 100%;
	}
	#recruit .link {
		flex-direction: row;
		/* justify-content: flex-end; */
		gap: 3.26vw;
	}
	#recruit .link p {
		font-size: max(3.91vw,1.6rem);
	}
	#recruit .link a {
		width: 30.77vw;
		font-size: max(3.91vw,1.6rem);
		padding: 1.95vw 3.91vw 1.95vw 0;
	}
	#recruit .link a::after {
		width: 1.82vw;
		height: 3.13vw;
		top: calc(50% - 1.56vw);
		right: 2.6vw;
	}
	#recruit .link a:hover::after {
		right: 2.6vw;
	}
}
/*-----------------------------------

	footer

-----------------------------------*/
footer {
	background: var(--mClr3);
	color: var(--sClr2);
	padding: min(40px,3.84vw) 0;
}
footer a {
	color: var(--sClr2) !important;
}
footer .contents_inner {
	display: grid;
	grid-template-columns: repeat(2, auto);
	grid-template-rows: repeat(2, auto);
	gap: min(20px,1.92vw);
}
footer nav {
	grid-area: 1 / 2 / 2 / 3;
	display: flex;
	justify-content: space-between;
}
footer nav > ul > li {
	font: 400 min(1.4rem,1.34vw)/1 var(--fJA);
	margin-bottom: min(20px,1.92vw);
}
footer nav > ul > li > ul > li {
	font: 300 min(1.2rem,1.15vw)/1 var(--fJA);
	margin-top: min(20px,1.92vw);
}
footer nav > ul > li a.link {
	display: block;
	width: max-content;
	padding: 2px min(20px,1.92vw) 2px 0;
	background: url(../img/common/icon_link.svg) no-repeat right center/min(11px,1.05vw);
	text-box: var(--txtB);
}
footer .logo {
	grid-area: 1 / 1 / 2 / 2;
}
footer .logo a {
	display: block;
}
footer .logo a img {
	width: min(358px,34.42vw);
}
footer .address {
	grid-area: 2 / 1 / 3 / 2;
	font: 300 min(1.2rem,1.15vw)/1 var(--fJA);
}
footer small {
	grid-area: 2 / 2 / 3 / 3;
	text-align: right;
	font: 300 min(1rem,0.96vw)/1 var(--fEN);
}
@media screen and (max-width: 767px) {
	footer {
		padding: 3.91vw 0;
	}
	footer .contents_inner {
		display: flex;
		flex-direction: column;
	}
	footer nav {
		flex-wrap: wrap;
		gap: 2.6vw 0;
		margin-bottom: 1.95vw;
	}
	footer nav > ul {
		width: 50%;
	}
	footer nav > ul > li {
		font-size: max(3vw,1.4rem);
		margin-bottom: 1.95vw;
	}
	footer nav > ul > li > ul > li {
		font-size: max(2.34vw,1.2rem);
		margin-top: 1.95vw;
	}
	footer nav > ul > li a.link {
		padding-right: 3.5vw;
		background: url(../img/common/icon_link.svg) no-repeat right center/2.08vw;
	}
	footer .logo a img {
		width: max(50.45vw,250px);
	}
	footer .address {
		font-size: max(1.56vw,1.2rem);
	}
	footer small {
		text-align: left;
		font-size: max(1.3vw,0.87rem);
	}
}