@charset "UTF-8";
/* CSS Document */

/* loading
================================================== */
.loading {
	width: 100vw;
	height: 100vh;
	transition: all 1s;
	background-color: #fff;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	opacity: 1;
	visibility: visible;
}
.loading.is-active {
	opacity: 0;
	visibility: hidden;
}
.loading-animation {
	width: 100vw;
	height: 100vh;
	transition: all 1s;
	background-color: #666;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
}

.loading-animation.is-active {
  opacity: 1;
  visibility: visible;
}
.logo {
	width: 40%;
	-webkit-animation: logo 0.8s forwards;
	animation: logo 0.8s forwards;
	animation-delay: 0.2s;
}
@media screen and (max-width: 639px) {
	.logo {
		width: 60%;
	}
}
@keyframes byeShutter {
	70% {
		opacity: 1;
	}
	100% {
		display: none;
		opacity: 0;
		z-index: -1;
	}
}
@keyframes logo {
	0% {
		opacity: 1;
	}
	50% {
		transform: rotate(0deg);
	}
	100% {
		transform: scale(0.8);
	}
}

/* mainArea
================================================== */
#mainArea {
	width: 96%;
	margin: 0 auto;
	padding: 0 0 5%;
}
@media screen and (max-width: 1300px) {
	#mainArea {
		padding: 0 0 5%;
	}
}
@media screen and (max-width: 639px) {
	#mainArea {
		width: 100%;
		margin: 0;
		padding: 20% 0 2%;
	}
	#mainBox{
		width: 85%;
		padding: 0 0 0 2%;
	}
}
/* ------ headBtnArea ------ */
#headBtnArea {
	position: absolute;
	width: 100%;
	top: 1%;
	left: 3.5%;
	transition: .6s;
}
#headBtnArea.zoom {
	top: 10px;
	left: 10px;
	transition: .6s;
}
#headBtnBox {
	position: relative;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 40px;
}
.headBtn {
	position: fixed;
	width: 24%;
	max-width: 350px;
	transition: .9s;
	z-index: 200;
}
.headBtn.zoom {
	width: 90px!important;
	transition: .9s;
}
.headBtn .zoomBox {
	display: block;
	transition-duration: 0.2s; /*変化に掛かる時間*/
}
.headBtn .zoomBox:hover {
	transform: scale(1.2); /*画像の拡大率*/
	transition-duration: 0.2s; /*変化に掛かる時間*/
}
.headBtn .zoomBox a:hover img {
	opacity: 1;
	filter: alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
}
/* ------ headBtn ------ */
@media screen and (max-width: 638px) {
	#headBtnArea.zoom {
		top: 5px;
		left: 5px;
	}
	#headBtnBox {
		width: 100%;
		padding: 0;
	}
	.headBtn {
		width: 80px;
		opacity: 0;
		filter: alpha(opacity=0);
		-ms-filter: "alpha( opacity=0 )";
		transition: .6s;
	}
	.headBtn.zoom {
		opacity: 1;
		filter: alpha(opacity=100);
		-ms-filter: "alpha( opacity=100 )";
		transition: .6s;
	}
	.headBtn .zoomBox:hover {
		transform: scale(1.1); /*画像の拡大率*/
		transition-duration: 0.2s; /*変化に掛かる時間*/
	}
}

/* topTit
================================================== */
.topTit {
	padding: 0 0 10px;
}
@media screen and (max-width: 639px) {
	.topTit {
		width: 90%;
		margin: 0 auto;
		padding: 0 0 6%;
	}
}
.topTit h2 {
	font-size: 140%;
	line-height: 140%!important;
	margin: 0;
	padding: 0;
	font-weight: 500;
}
@media screen and (max-width: 1000px) {
	.topTit h2 {
		font-size: 2vw;
	}
}
@media screen and (max-width: 639px) {
	.topTit h2 {
		font-size: 110%;
	}
}
.topTit .forMobile h2 {
	text-align: center;
	font-size: 80%;
	font-weight: normal;
}

/* midTit
================================================== */
.midTit {
	padding: 0 0 10px;
}
@media screen and (max-width: 639px) {
	.midTit {
		width: 90%;
		margin: 0 auto;
		padding: 0 0 6%;
	}
}
.midTit .midTitPc {
	line-height: 100%;
	display: flex;
	align-items: center;
}
.midTit .midTitPc:after {
	border-top: 5px solid #000;
	content: "";
	flex-grow: 1;
	margin-left: 2%;
	margin-top: 3%;
}
.midTit .midTitPc h2 {
	margin: 0;
	padding: 0;
	width: 65%;
}
@media screen and (max-width: 639px) {
	.midTit .forMobile h2 {
		width: 70%;
		margin: 0 auto;
	}
}

/* topTxt
================================================== */
#topTxt {
	padding: 1.5% 0 3%;
}
#topTxt h3 {
	float: left;
	width: 38%;
	padding: 0 4% 2% 0;
	margin: 0;
}
@media screen and (max-width: 639px) {
	#topTxt h3 {
		float: none;
		width: 60%;
		padding: 0 0 10%;
		margin: 0 auto;
	}
}
#topTxt p {
	line-height: 200%;
	font-size: 110%;
	font-weight: 500;
	padding-bottom: 1.5%;
}
@media screen and (max-width: 1400px) {
	#topTxt p {
		font-size: 1.21vw;
	}
}
@media screen and (max-width: 1000px) {
	#topTxt p {
		font-size: 1.5vw;
	}
}
@media screen and (max-width: 639px) {
	#topTxt p {
		font-size: 100%;
		padding-bottom: 4%;
	}
}
#topTxt .dots {
  background-image: radial-gradient(circle at center, #222 20%, transparent 20%); /* 点の色とサイズ調整 */
  background-position: top right; /* 点の位置 */
  background-repeat: repeat-x; /* 横方向に繰り返し */
  background-size: 1em 0.3em; /* 点の間隔とサイズ調整 */
  padding-top: .15em; /* 縦方向の位置調整 */
}

/* titArea
================================================== */
.titArea {
	padding: 0 0 2%;
}
.titArea h2 {
	text-align: center;
	font-size: 360%;
	line-height: 100%;
	margin: 0;
	padding: 10px 1em;
	color: #ffe500;
	background-color: #000;
	-webkit-border-radius: 2px;
	-moz-border-radius: 2px;
    border-radius: 2px;
}
@media screen and (max-width: 1000px) {
	.titArea h2 {
		font-size: 4.5vw;
	}
}
@media screen and (max-width: 639px) {
	.titArea {
		padding: 0 0 4%;
	}
	.titArea h2 {
		font-size: 200%;
		display: block;
	}
}
.subTit {
	width: 50%;
	margin: 0 auto;
}
@media screen and (max-width: 639px) {
	.subTit {
		width: 75%;
	}
}
.subTit.widS {
	width: 50%;
	margin: 0 auto;
}
@media screen and (max-width: 639px) {
	.subTit.widS {
		width: 80%;
	}
}

/* managementBlock
================================================== */
.managementBlock {
	width: 100%;
	padding: 0;
}
@media screen and (max-width: 639px) {
	.managementBlock {
		padding: 10% 0 0;
	}
}
.managementBox {
	float: left;
	width: 30%;
	margin: 5% 1.53% 0;
	text-align: left;
	background: #fff;
	list-style: none;
}
@media screen and (max-width: 1160px) {
	.managementBox {
		width: 47%;
		margin: 5% 1.5% 0;
	}
}
@media screen and (max-width: 639px) {
	.managementBox {
		float: none;
		width: 90%;
		margin: 0 auto 10%;
	}
}
.managementBox a {
	display: block;
	color: #222;
	-webkit-transition: all 500ms;
	transition: all 500ms;
}
.managementBox a:hover {
	-webkit-transform: scale(1.1);
	transform: scale(1.1);
	opacity: 1;
	filter: alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
}
.managementBoxImg {
	overflow: hidden;
}
.managementBoxImg img {
	-webkit-transition: all 500ms;
	transition: all 500ms;
	width: 100%;
}
.managementBoxTit {
	letter-spacing: 0;
	padding: 20px 16px 5px;
}
.managementBoxTxt {
	font-size: 80%;
	letter-spacing: 0;
	padding: 0 16px 20px;
}
.worksTxt {
	margin-bottom: 5px;
	font-size: 80%;
	letter-spacing: 0;
	padding: 0;
	text-align: center;
	font-weight: 500;
	background-color: #eee;
	-webkit-border-radius: 100px;
	-moz-border-radius: 100px;
    border-radius: 100px;
}

/* newsArea
================================================== */
#newsArea {
	padding-top: 30px;
}
/* newsBox */
.newsBox {
	display: inline-block;
	vertical-align: top;
	margin: 0 2.5% 3.5%;
	width: 27.3%;
}
@media screen and (max-width: 800px) {
	.newsBox {
		margin: 3.5%;
		width: 42%;
	}
}
@media screen and (max-width: 639px) {
	.newsBox {
		display: inherit;
		margin: 0 1.5% 6%;
		width: 100%;
	}
}
/* newsBox linkBox */
.newsBox .linkBox {
    position: relative;
    z-index: 1;
}
.newsBox .linkBox a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-indent:-999px;
    z-index: 11;
}
.newsBox .zoomBox {
	display: block;
	transition-duration: 0.3s;	/*変化に掛かる時間*/
}
.newsBox .zoomBox:hover {
	transform: scale(1.1);	/*画像の拡大率*/
	transition-duration: 0.3s;	/*変化に掛かる時間*/
}
.newsBox h3 {
	font-size: 100%;
}
@media screen and (max-width: 639px) {
	.newsBox h3 {
		margin: 2% 0;
	}
}
/* categoryName */
.categoryName {
	font-size: 80%;
	line-height: 100%;
	background-color: #e6551e;
	color: #fff;
	text-align: center;
	margin-bottom: 2%;
	padding: 2%;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
    border-radius: 3px;
}
.categoryName span::after{
	content: '・';
}
.categoryName span:last-child::after{
	display: none;
}

.newsLead {
	font-size: 80%;
}
/* newsPhoto */
.newsPhoto {
	padding-bottom: 5px;
}
@media screen and (max-width: 639px) {
	.newsPhoto {
		float: left;
		width: 35%;
		padding-right: 5%;
	}
}
.newsPhoto img{
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
    border-radius: 3px;
}
/* newsTxt */
@media screen and (max-width: 639px) {
	.newsTxt {
		float: right;
		width: 60%;
	}
}
.newsTxt .newsDay{
	font-size: 60%;
	font-weight: bold;
	line-height: 100%;
    padding-top: 10px;
}
@media screen and (max-width: 639px) {
	.newsTxt .newsDay{
		padding: 0;
	}
}
.newsTxt h3{
	font-weight: 500;
	margin: 0;
	padding: 0;
	line-height: 140%;
}

/* btnArea
================================================== */
.btnArea {
	position: relative;
	z-index: 100;
	width: 60%;
	margin: 0 auto;
	background-color: #1273a8;
	-webkit-border-radius: 300px;
	-moz-border-radius: 300px;
    border-radius: 300px;
	text-align: center;
	transition: .3s;
	box-shadow: 5px 5px 0px 0px rgba(0,0,0,0.3);
}
@media screen and (max-width: 800px) {
	.btnArea {
		width: 100%;
		min-width: 260px;
	}
}
.btnArea:hover {
	background-color: #000;
	transition: .3s;
}
.btnArea a {
	display: block;
	background: url("../images/common/btnIcon.svg") no-repeat 15px 12px;
	background-size: 10.5%;
	transition: .3s;
	padding: 4.5% 10%;
	font-size: 160%;
	color: #fff;
}
.btnArea a:hover {
	display: block;
	background: url("../images/common/btnIcon.svg") no-repeat 25px 12px;
	background-size: 10.5%;
	transition: .3s;
	color: #fff;
}
@media screen and (max-width: 639px) {
	.btnArea a {
		font-size: 100%;
	}
}

























