﻿@charset "utf-8";

/*----------------------------
	basic setup
-----------------------------*/
body{ min-width: 1100px; font-family: "Noto Sans JP", sans-serif; color: #111; text-align: center;}
body.ovh{ position: fixed; left: 0; top: 0; width: 100%; height: 100vh;}
a{ color: #111; text-decoration:none; -webkit-transition: all .2s; transition: all .2s;}
a:hover{ opacity: .7; text-decoration:none;}
.underline{ text-decoration: underline;}
/* font */
.gothic{ font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;}
.mincho{ font-family: 游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN",HGS明朝E,メイリオ,Meiryo,serif;}
/* bg */
.bg-white{ background: #fff;}
.bg-gray{ background: #F5F5F5;}
.bg-lblue{ background: #EAF1F8;}
/* color */
.f-white{ color: #fff;}
.f-red{ color: #c00;}
.f-blue{ color: #0A2A78;}
.f-lblue{ color: #227ff0;}
/* anchor */
.anchorwrap{ position: relative;}
.anchorwrap .anchor{ position: absolute; top: -100px;}
/* newsphoto */
figure.newsphoto{ aspect-ratio: 300 / 200; overflow: hidden;}
figure.newsphoto img{ width: 100%; height: 100%; object-fit: cover;}
/*----------------- responsive ----------------*/
@media screen and (max-width: 540px) {
	body{ min-width: inherit; font-size: 4.26vw;}
	a:hover{ opacity: 1;}
	/* anchor */
	.anchorwrap .anchor{ top: -15vw;}
}
@media screen and (max-width: 350px) {
	html{ font-size: 50%;}
}



/*----------------------------
	header
-----------------------------*/
header{
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 65px;
	padding: 0 35px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	transition: all .4s;
	z-index: 999;
	background: #fff;
	box-shadow: 0 4px 6px -3px rgba(0, 0, 0, 0.15);
}
header.top{
	background: none;
	box-shadow: none;
}
header.top.moveon{
	background: #fff;
	box-shadow: 0 4px 6px -3px rgba(0, 0, 0, 0.15);
}
header.top img{
	opacity: 0;
	vertical-align: top;
	transition: all .4s;
}
header.moveon img{
	opacity: 1;
}
header h1{
	width: 51px;
	height: 26px;
}
header.top h1{
	background: url(../img/logo-white.svg) center no-repeat;
}
header ul{
	display: flex;
}
header ul li.tel a{
	color: #0A2A78;
	font-size: 22px;
	font-weight: 900;
	line-height: 45px;
	letter-spacing: .07em;
	padding-left: 1.3em;
	position: relative;
}
header.top ul li.tel a{
	color: #fff;
	background: url(../img/ic-tel-white.svg) left center no-repeat;
}
header ul li.tel a:before{
	display: block;
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	background: url(../img/ic-tel.svg) left center no-repeat;
	transition: all .4s;
}
header.top ul li.tel a:before{
	opacity: 0;
}
header.moveon ul li.tel a{
	color: #0A2A78;
}
header.moveon ul li.tel a:before{
	opacity: 1;
}
header ul li.search{
	margin-left: 1em;
}
header ul li.search a{
	color: #0A2A78;
	font-size: 18px;
	font-weight: 700;
	line-height: 45px;
	padding-left: 1.3em;
	position: relative;
}
header.top ul li.search a{
	color: #fff;
	background: url(../img/arrow-bottom-white.svg) left center no-repeat;
}
header ul li.search a:before{
	display: block;
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 10px;
	background: url(../img/arrow-bottom.svg) left center no-repeat;
	transition: all .4s;
}
header.top ul li.search a:before{
	opacity: 0;
}
header.moveon ul li.search a{
	color: #0A2A78;
}
header.moveon ul li.search a:before{
	opacity: 1;
}
header ul li.insta{
	width: 45px;
	height: 45px;
	margin-left: 1em;
}
header.top ul li.insta{
	background: url(../img/ic-insta-white.svg) center no-repeat;
}
header ul li.insta a{
	display: block;
	padding: 10px;
}
header ul li.contact{
	width: 45px;
	height: 45px;
}
header.top ul li.contact{
	background: url(../img/ic-contact-white.svg) center no-repeat;
}
header ul li.contact a{
	display: block;
	padding: 10px;
}
/*----------------- responsive ----------------*/
@media screen and (max-width: 540px) {
	header{
		height: 10.66vw;
		padding: 0 5vw;
		background: #fff!important;
		box-shadow: 0 4px 6px -3px rgba(0, 0, 0, 0.15)!important;
	}
	header img{
		opacity: 0;
		vertical-align: top;
		transition: all .4s;
		opacity: 1!important;
	}
	header h1{
		width: 10.66vw;
		height: 5.6vw;
		background: none;
	}
	header ul{
		display: flex;
		align-items: center;
	}
	header ul li.tel a{
		line-height: 6.93vw;
		padding-left: 0;
		background: none;
	}
	header ul li.tel a:before{
		opacity: 1;
		position: static;
		transform: none;
		width: 5vw;
		height: 5vw;
		background-size: contain;
	}
	header.top ul li.tel a:before{
		opacity: 1;
	}
	header ul li.search{
		margin-left: 1em;
	}
	header ul li.search a{
		line-height: 6.93vw;
		padding-left: 0;
		background: none;
	}
	header ul li.search a:before{
		opacity: 1;
		position: static;
		transform: none;
		width: 5vw;
		height: 5vw;
		background: url(../img/ic-search.svg) center / contain no-repeat;
	}
	header.top ul li.search a:before{
		opacity: 1;
	}
	header ul li.insta{
		margin-left: 1em;
		width: 5vw;
		height: 5vw;
		background: none;
	}
	header ul li.insta a{
		padding: 0;
	}
	header ul li.insta a img{
		width: 5vw;
		height: 5vw;
	}
	header ul li.contact{
		margin-left: 1em;
		width: 5vw;
		height: 5vw;
	}
	header ul li.contact a{
		padding: 0;
	}
}



/*----------------------------
	main
-----------------------------*/
main{ padding-top: 65px;}
.wrap{ clear: both; box-sizing: content-box; max-width: 1000px; margin-left: auto; margin-right: auto; padding-left: 5%; padding-right: 5%;}
/* common parts */
.ttl1{
	padding-bottom: .5em;
	color: #004EA2;
	font-size: 25px;
	font-weight: 700;
	letter-spacing: .05em;
	position: relative;
}
.ttl1:after{
	display: inline-block;
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 28px;
	height: 2px;
	background: #004EA2;
}
.fixedbtn{
	position: fixed;
	right: 0;
	bottom: 50px;
}
.fixedbtn a{
	display: block;
	padding: 60px 15px 30px;
	width: 60px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	background: url(../img/ic-contact-yellow.svg) center top 25px no-repeat #0A2A78;
	border-radius: 10px 0 0 10px;
}
.btn1{
	display: inline-block;
	width: 312px;
	line-height: 4em;
	padding: 0 60px 0 30px;
	color: #fff;
	text-align: center;
	background: url(../img/arrow-right-white.svg) right 1.5em center no-repeat #0A2A78;
	border-radius: 10px;
}

/*----------------- responsive ----------------*/
@media screen and (max-width: 540px) {
	main{ padding-top: 10.66vw;}
	.ttl1{
		padding-bottom: .5em;
		font-size: 5.6vw;
	}
	.ttl1:after{
		width: 7.46vw;
		height: .53vw;
	}
	.fixedbtn{
		display: none;
	}
	.btn1{
		width: 90%;
		line-height: 4;
		margin: 0;
		padding: 0 2em 0 0;
		background-size: 10.13vw auto;
		border-radius: 2.66vw;
	}
}



/*----------------------------
	footer
-----------------------------*/
footer{
	color: #fff;
	background: #0A2A78;
}
footer a{
	color: #fff;
}
footer .wrap{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 20px 0;
}
footer .wrap .logo{
	margin-right: 100px;
}
footer .wrap .fnav{
	flex: 1;
	display: flex;
	margin-bottom: 30px;
	text-align: left;
}
footer .wrap .fnav dl{
	width: 70%;
	border-right: 1px dashed #fff;
}
footer .wrap .fnav dt{
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .05em;
}
footer .wrap .fnav dd{
	display: flex;
	font-size: 14px;
	letter-spacing: .05em;
}
footer .wrap .fnav dd ul{
	width: 50%;
	margin-right: 40px;
}
footer .wrap .fnav dd ul a{
	padding: 5px 20px 5px 0;
}
footer .wrap .fnav ul a{
	display: block;
	padding-right: 20px;
	background: url(../img/arrow-right2.svg) right center no-repeat;
}
footer .wrap .fnav > ul{
	flex: 1;
	padding-left: 40px;
	margin-right: 0;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .05em;
}
footer .wrap .copy{
	width: 100%;
	font-size: 12px;
	letter-spacing: .1em;
}
/*----------------- responsive ----------------*/
@media screen and (max-width: 540px) {
	footer .wrap{
		display: block;
		padding: 5.33vw 0;
	}
	footer .wrap .logo{
		margin-right: 0;
		margin-bottom: 3vw;
	}
	footer .wrap .logo img{
		width: 13.6vw;
		max-width: inherit;
	}
	footer .wrap .fnav{
		display: none;
	}
	footer .wrap .copy{
		font-size: 2.93vw;
	}
}




























/*--------------------------------------------------------------------
	Sub-page settings
---------------------------------------------------------------------*/
/*----------------------------
	/
-----------------------------*/
main.top{
	padding-top: 0;
}
.top1{
	overflow: hidden;
	background: #2575EE;
}
.top1 img{
	width: 2250px;
	max-width: inherit;
	height: 600px;
	margin: 0 -625px;
}
.top2{
	padding-top: 50px;
	margin-bottom: 50px;
}
.top2 h2{
	margin-bottom: 20px;
	font-size: 25px;
	font-weight: bold;
}
.top3{
	margin-bottom: 50px;
}
.top3 h2{
	margin-bottom: 50px;
}
.top3 ul{
	display: flex;
	flex-wrap: wrap;
	gap: .8%;
}
.top3 ul li{
	width: 24.4%;
	margin-bottom: 40px;
}
.top3 ul li figure{
	margin-bottom: 20px;
	padding: 20px;
	height: 247px;
	color: #0A2A78;
	font-weight: 700;
	letter-spacing: .05em;
	border: 1px solid #D0D0D0;
}
.top3 ul li figure img{
	width: 200px;
}
.top3 ul li .btn-detail{
	display: block;
	margin-bottom: 15px;
	padding: 7px 60px 7px 30px;
	color: #fff;
	text-align: left;
	background: url(../img/arrow-right-white.svg) right 1em center no-repeat #0A2A78;
	border-radius: 10px;
}
.top3 ul li .btn-hp{
	display: block;
	padding: 7px 60px 7px 30px;
	color: #0A2A78;
	text-align: left;
	background: url(../img/arrow-right.svg) right 1em center no-repeat;
	border: 1px solid #0A2A78;
	border-radius: 10px;
}
.top4{
	position: relative;
	margin-bottom: 60px;
}
.top4 a{
	display: inline-block;
	margin: -20px auto 0;
	padding: 20px 1em;
	color: #fff;
	font-size: 24px;
	font-weight: 500;
	letter-spacing: .05em;
	background: #0A2A78;
}
.top4 a:hover{
	opacity: 1;
	background: #3359B5;
}
.top5{
	padding: 50px 0 30px;
	background: #F5F5F5;
}
.top5 .wrap{
	display: flex;
	justify-content: space-between;
}
.top5 .wrap a{
	display: flex;
	align-items: center;
	padding: 15px 60px 15px 30px;
	width: 31.2%;
	font-weight: 500;
	background: url(../img/arrow-right-black.svg) right 1em center no-repeat #fff;
	border: 2px solid #000;
	border-radius: 10px;
}
.top5 .wrap a.insta{
	padding: 15px 60px 15px 70px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .05em;
	background: url(../img/arrow-right-black.svg) right 1em center no-repeat, url(../img/ic-insta-black.svg) left 1.5em center no-repeat #fff;
}
.top5 .wrap a.blog{
	padding: 15px 60px 15px 70px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .05em;
	background: url(../img/arrow-right-black.svg) right 1em center no-repeat, url(../img/ic-blog.svg) left 1.5em center no-repeat #fff;
}
/*----------------- responsive ----------------*/
@media screen and (max-width: 540px) {
	main.top{ padding-top: 10.66vw;}
	.top1 img{
		width: 260%;
		height: auto;
		margin: 0 -80%;
	}
	.top2{
		padding-top: 8vw;
		margin-bottom: 10vw;
	}
	.top2 h2{
		margin-bottom: 1em;
		font-size: 5.6vw;
	}
	.top3{
		margin-bottom: 2vw;
	}
	.top3 h2{
		margin-bottom: 10vw;
	}
	.top3 ul{
		gap: 3%;
	}
	.top3 ul li{
		width: 48.5%;
		margin-bottom: 7vw;
	}
	.top3 ul li figure{
		margin-bottom: 3vw;
		padding: 1em;
		height: 45vw;
		font-size: 3.2vw;
	}
	.top3 ul li figure img{
		width: 100%;
		margin-top: -.5em;
	}
	.top3 ul li figure figcaption{
		display: flex;
		align-items: center;
		justify-content: center;
		height: 4em;
		margin-top: -1em;
		line-height: 1.4;
	}
	.top3 ul li .btn-detail{
		margin-bottom: 2vw;
		padding: .7em 4em .7em 1em;
		font-size: 3.46vw;
		background-size: 10.13vw auto;
		border-radius: 1.6vw;
	}
	.top3 ul li .btn-hp{
		padding: .7em 4em .7em 1em;
		font-size: 3.46vw;
		background-size: 10.13vw auto;
		border-radius: 1.6vw;
	}
	.top4{
		position: static;
		margin-bottom: 15vw;
	}
	.top4 figure{
		overflow: hidden;
		margin: 0 -5vw;
	}
	.top4 figure img{
		width: 120%;
		max-width: inherit;
		margin: 0 -10% 5vw;
	}
	.top4 a{
		margin: 0 auto;
		padding: 1em;
		font-size: 4.26vw;
	}
	.top4 a:hover{
		opacity: 1;
		background: #3359B5;
	}
	.top5{
		padding: 10vw 0 5vw;
	}
	.top5 .wrap{
		display: block;
	}
	.top5 .wrap a{
		margin-bottom: 7vw;
		padding: 5vw 15vw 5vw 8vw;
		width: auto;
		background-size: 10.13vw auto;
	}
	.top5 .wrap a.insta{
		padding: 4vw 15vw 4vw 20vw;
		font-size: 5.33vw;
		background-size: 10.13vw auto, 7.46vw auto;
	}
	.top5 .wrap a.blog{
		padding: 4vw 15vw 4vw 20vw;
		font-size: 5.33vw;
		background-size: 10.13vw auto, 8.26vw auto;
	}
}

/*----------------------------
	contact/
-----------------------------*/
.contact1{
	display: flex;
	justify-content: center;
	margin-bottom: 50px;
}
.contact1 li{
	padding-top: 25px;
	width: 9.23em;
	height: 9.23em;
	border-radius: 50%;
	color: #c7c7c7;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	border: 3px solid #c7c7c7;
}
.contact1 li:not(:first-child){
	margin-left: 50px;
	position: relative;
}
.contact1 li:not(:first-child):before{
	display: block;
	content: "";
	position: absolute;
	right: calc(100% + 3px);
	top: 50%;
	width: 50px;
	border-top: 1px dashed #c7c7c7;
}
.contact1 li p{
	display: flex;
	justify-content: center;
	height: 3em;
	margin-bottom: 5px;
	padding-top: .5em;
}
.contact1 li.active{
	color: #fff;
	border-color: #0A2A78;
	background: #0A2A78;
}
.contact1 li:last-child.active{
	border-color: #227FF0;
	background: #227FF0;
}
.contact1 li.active:not(:first-child):before{
	border-top: 2px solid #0A2A78;
}
.contact1 li.active span{
	color: #FFFF0B;
}
.contact1-txt{
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 2.6;
}
.contact2{
	margin-bottom: 55px;
	text-align: left;
}
.contact2wrap{
	margin-bottom: 10px;
	padding: 50px 50px 40px;
	font-weight: 500;
	background: #EAF1F8;
	border-radius: 14px;
}
.error .contact2wrap{
	border: 2px solid #E00606;
	background: #FFFBFB;
}
.contact2 .ttl{
	margin-bottom: 1em;
	color: #0A2A78;
	font-size: 20px;
	font-weight: bold;
}
em.hissu{
	display: inline-block;
	vertical-align: middle;
	padding: .1em 1em .2em;
	color: #fff;
	font-size: 10px;
	border-radius: 3px;
	background: #E00606;
}
.contact2 ul li{
	display: inline-block;
	vertical-align: top;
	width: 33%;
	font-size: 15px;
	margin-bottom: .8em;
}
.contact3{
	margin-bottom: 20px;
	overflow: hidden;
}
.contact3 dl{
	display: flex;
	text-align: left;
	margin-bottom: 30px;
}
.contact3 dl dt{
	width: 20%;
	padding-right: 5%;
	color: #0A2A78;
	font-size: 18px;
	font-weight: 500;
}
.contact3 dl dd{
	width: 80%;
}
.contact3 dl dd .namebox{
	display: flex;
	justify-content: space-between;
}
.contact3 dl dd .namebox input{
	width: 49%;
}
.contact3 dl dd .telbox{
	display: flex;
	align-items: center;
	text-align: center;
}
.contact3 dl dd input,
.contact3 dl dd textarea{
	margin-bottom: 10px;
}
.contact3 dl dd.error input,
.contact3 dl dd.error textarea{
	border: 2px solid #E00606;
	background: #FFFBFB;
}
.contact3 dl dd input::placeholder{
	color: #C7C7C7;
}
.contact3 dl dd .telbox span{
	width: 5%;
	color: #dfdfdf;
}
.contact3 dl dd .memo{
	color: #494949;
	font-size: 14px;
	font-weight: 400;
}
.errortxt{
	color: #E00606;
	font-size: 14px;
	font-weight: 400;
}
.contact3 dl dd .mojisu{
	float: right;
	color: #227FF0;
	font-size: 14px;
	font-weight: 700;
}
.contact3 dl dd .mojisu.error{
	color: #E00606;
}
.contact4{
	padding-top: 50px;
	padding-bottom: 50px;
}
.contact4 .errortxt{
	padding: 1em;
	color: #E00606;
	font-weight: bold;
	line-height: 1.5;
	background: #fff;
	border: 1px solid #E00606;
}
.contact4 .btn{
	display: flex;
	justify-content: center;
}
.contact4 .btn button{
	display: block;
	width: 312px;
	line-height: 4em;
	margin: 0 10px;
	padding: 0 60px 0 30px;
	color: #fff;
	text-align: center;
	background: url(../img/arrow-right-white.svg) right 1.5em center no-repeat #0A2A78;
	border-radius: 10px;
}
.contact4 .btn button.btn-back{
	padding: 0 30px 0 60px;
	color: #000;
	background: url(../img/arrow-left-black.svg) left 1.5em center no-repeat #fff;
	border: 2px solid #000;
}
.contact5 dl{
	display: flex;
	align-items: center;
	margin-bottom: 10px;
	font-size: 20px;
	font-weight: 500;
	text-align: left;
}
.contact5 dl dt{
	width: 20%;
	color: #0A2A78;
}
.contact5 dl dd{
	width: 80%;
	padding: 30px 60px;
	background: #F5F5F5;
	border-radius: 14px;
}
.contact5 dl dd.bg-lblue{
	background: #EAF1F8;
}
.contact5 dl.txt{
	align-items: start;
}
.contact5 dl.txt dt{
	padding-top: .5em;
}
.contact5 dl.txt dd{
	font-size: 16px;
}
.contact6{
	margin-bottom: 1em;
	font-size: 28px;
	font-weight: 400;
	text-align: center;
	letter-spacing: .2em;
}
.contact7{
	padding: 2em;
	margin-bottom: 50px;
	background: #F5F5F5;
	border-radius: 14px;
}
/*----------------- responsive ----------------*/
@media screen and (max-width: 540px) {
	.contact1{
		margin-bottom: 10vw;
	}
	.contact1 li{
		padding-top: 1em;
		width: 25vw;
		height: 25vw;
		font-size: 3.46vw;
		border-width: .8vw;
	}
	.contact1 li:not(:first-child){
		margin-left: 6.13vw;
	}
	.contact1 li:not(:first-child):before{
		right: calc(100% + .4vw);
		width: 6.4vw;
	}
	.contact1 li p{
		margin-bottom: .5em;
	}
	.contact1-txt{
		font-size: 3.2vw;
	}
	.contact2{
		margin-bottom: 10vw;
	}
	.contact2wrap{
		padding: 8vw 5vw 5vw;
		border-radius: 2.6vw;
	}
	.contact2 .ttl{
		margin-bottom: 1em;
		font-size: 4.26vw;
	}
	em.hissu{
		padding: .1em 1em .2em;
		font-size: 2.66vw;
	}
	.contact2 ul li{
		display: block;
		width: auto;
		font-size: 4vw;
		margin-bottom: 1em;
	}
	.contact3{
		margin-bottom: 20px;
	}
	.contact3 dl{
		display: block;
		margin-bottom: 5vw;
	}
	.contact3 dl dt{
		margin-bottom: .8em;
		width: auto;
		padding-right: 0;
		font-size: 3.73vw;
	}
	.contact3 dl dd{
		width: auto;
	}
	.contact3 dl dd .namebox input{
		width: 49%;
	}
	.contact3 dl dd input{
		height: 3em;
		line-height: 3;
		margin-bottom: 2vw;
	}
	.contact3 dl dd textarea{
		height: 116vw;
		line-height: 3;
		margin-bottom: 2vw;
	}
	.contact3 dl dd .telbox span{
		font-size: 3vw;
	}
	.contact3 dl dd .memo{
		font-size: 3.2vw;
	}
	.errortxt{
		font-size: 3.2vw;
	}
	.contact3 dl dd .mojisu{
		font-size: 3.46vw;
	}
	.contact4{
		padding-top: 10vw;
		padding-bottom: 10vw;
	}
	.contact4 p{
		font-size: 3.2vw;
	}
	.contact4 .btn button{
		width: 90%;
		line-height: 4;
		margin: 0;
		padding: 0 2em 0 0;
		background-size: 10.13vw auto;
		border-radius: 2.66vw;
	}
	.contact4 .btn.twin button{
		width: 48%;
		margin: 0;
		padding: 0 2em 0 0;
		background-size: 10.13vw auto;
		background-position: right 1em center;
		border-radius: 2.66vw;
	}
	.contact4 .btn.twin button.btn-back{
		margin-right: 5%;
		padding: 0 0 0 2em;
		background-position: left 1em center;
	}
	.contact5 dl{
		display: block;
		margin-bottom: 5vw;
		font-size: 4.26vw;
	}
	.contact5 dl:last-child{
		margin-bottom: 0;
	}
	.contact5 dl dt{
		margin-bottom: 3vw;
		width: auto;
	}
	.contact5 dl dd{
		width: auto;
		padding: 1em 1.5em;
		border-radius: 2.66vw;
	}
	.contact5 dl.txt dt{
		padding-top: 0;
	}
	.contact5 dl.txt dd{
		font-size: 3.46vw;
	}
	.contact6{
		font-size: 6.4vw;
	}
	.contact7{
		padding: 1em;
		margin-bottom: 10vw;
		font-size: 3.2vw;
		line-height: 2;
		border-radius: 2.66vw;
	}
}
