@charset "utf-8";

/*====================================================================================

		#home layout

====================================================================================*/

/*===============================================================

		#home header layout

===============================================================*/
/*
#home header {
	height: 740px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}


@media screen and (max-width: 768px){
	#home header {
		height: 400px;
		background-position: center top;
	}
}
*/

/*
#home header .main_img::after {
	content: "";
	width: 10px;
	height: 112px;
	background: url("../../img/home/img_scroll.png") left top / cover no-repeat;
	display: block;
	position: absolute;
	right: 43px;
	bottom: -35px;
	z-index: 2000;
}

#home header .main_img div {
	height: 740px;
	margin: 0;
	position: relative;
	animation: bg_zoom linear 4.0s infinite none;
	transform-origin: center center;
}

#home header .main_img div.img_01 {
	background: url("../../img/home/main_img_01.jpg") center center / cover no-repeat;
}

#home header .main_img div.img_02 {
	background: url("../../img/home/main_img_02.jpg") center center / cover no-repeat;
	animation-delay: 6s;
}

#home header .main_img div.img_03 {
	background: url("../../img/home/main_img_03.jpg") center center / cover no-repeat;
	animation-delay: 12s;
}

@keyframes bg_zoom {
	0% { transform: scale(1.01, 1.01); }
	100% { transform: scale(1.0, 1.0); }
}
*/


#home header {
	
}

/* Swiper */
@keyframes zoomUp {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.05);
	}
}

.swiper-slide {
	overflow: hidden;
	backface-visibility: hidden;
}

.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img { /* 12秒かけて拡大させる */
	animation: zoomUp 6s linear 0s;
	animation-fill-mode: both;
}

.slide-img {
	height: 740px;
}

#home header .main_img .img_01 {
	background: url("../../img/home/main_img_01.jpg") center center / cover no-repeat;
}

#home header .main_img .img_02 {
	background: url("../../img/home/main_img_02.jpg") center center / cover no-repeat;
}

#home header .main_img .img_03 {
	background: url("../../img/home/main_img_03.jpg") center center / cover no-repeat;
}


@media screen and (max-width: 768px){
	#home header .main_img {
		height: 400px;
	}
	
	#home header .main_img::after {
		right: 10px;
	}
	
	#home header .main_img div {
		height: 35vh;
	}
	
	#home header .main_img .img_01 {
		background: url("../../img/home/main_img_01.jpg") center center / cover no-repeat;
	}
	
	#home header .main_img .img_02 {
		background: url("../../img/home/main_img_02.jpg") 90% center / cover no-repeat;
	}
	
	#home header .main_img .img_03 {
		background: url("../../img/home/main_img_03.jpg") 10% center / cover no-repeat;
	}
}


/* Scroll アニメーション設定 */
#home header .arrowWrap {
	position: absolute;
	right: 20px;
	bottom: -50px;
	z-index: 100;
}

#home header .arrowInner p {
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-align: end;
	transform: rotate(90deg);
}

#home header .arrow {
	width: 2px;
	height: 100px;
	margin: 20px auto 0;
	background-color: #fff;
	position: relative;
	overflow: hidden;
}

#home header .arrow::before {
	content: '';
	width: 2px;
	height: 50px;
	margin: 50px auto 0;
	background-color: #95B1BF;
	position: absolute;
	top: -150px;
	left: 0;
	animation: arrow 2.5s ease 0s infinite normal;
}

@keyframes arrow {
	0% {
		transform: translate3d(0, 0, 0);
	}
	
	60% {
		transform: translate3d(0, 150px, 0);
	}
	
	100% {
		transform: translate3d(0, 150px, 0);
	}
}


@media screen and (max-width: 768px){
	#home header .arrowWrap {
		right: 0px;
		bottom: -30px;
	}
	
	#home header .arrow {
		width: 1px;
		height: 60px;
	}
	
	#home header .arrow::before {
		width: 1px;
		height: 30px;
		margin: 30px auto 0;
		top: -80px;
		animation: arrow_sp 2.5s ease 0s infinite normal;
	}
	
	@keyframes arrow_sp {
		0% {
			transform: translate3d(0, 0, 0);
		}
		
		60% {
			transform: translate3d(0, 80px, 0);
		}
		
		100% {
			transform: translate3d(0, 80px, 0);
		}
	}
}





/*===============================================================

		#home #contents .caption layout

===============================================================*/

#home #contents .caption {
	margin: -43px 0 0;
	position: relative;
	z-index: 2;
}

#home #contents .caption section:nth-of-type(1) {
	height: 917px;
	background: url("../../img/home/img_01.png") left calc(50% + 375px) top / auto no-repeat,
				url("../../img/home/img_02.jpg") left calc(50% - 300px) top 320px / auto no-repeat;
	position: relative;
	z-index: 2;
}

#home #contents .caption section:nth-of-type(1) p:nth-of-type(1) {
	padding: 35px 0 0;
}

#home #contents .caption section:nth-of-type(1) p:nth-of-type(1) img {
	width: 478px;
}

#home #contents .caption section:nth-of-type(1) h2 {
	margin: 10px 0;
	font-size: 30px;
	font-weight: 600;
}

#home #contents .caption section:nth-of-type(1) p:nth-of-type(2) {
	font-size: 20px;
}

#home #contents .caption section:nth-of-type(2) {
	height: 330px;
	margin: -243px 0 0;
	background-color: #F4F8F9;
	position: relative;
	z-index: 1;
}

#home #contents .caption section:nth-of-type(2) .inner div {
	width: 390px;
	margin: 0 0 0 auto;
	padding: 0 20px 0 0;
}

#home #contents .caption section:nth-of-type(2) p:nth-of-type(1) {
	transform: translateY(-34px);
}

#home #contents .caption section:nth-of-type(2) p:nth-of-type(1) img {
	width: 320px;
}

#home #contents .caption section:nth-of-type(2) h2 {
	margin: -10px 0 10px;
	font-size: 25px;
	font-weight: 600;
}


@media screen and (max-width: 768px){
	#home #contents .caption {
		margin: -10px 0 0;
	}
	
	#home #contents .caption section:nth-of-type(1) {
		height: auto;
		padding: 0 0 calc(100% * 597 / 900);
		background: url("../../img/home/img_02.jpg") center bottom / 90% auto no-repeat;
	}
	
	/*
	#home #contents .caption section:nth-of-type(1) {
		height: auto;
		padding: 0 0 calc(100% * 597 / 900 + 20px);
		background: url("../../img/home/img_01.png") right 10px top 8vw / 30% auto no-repeat,
					url("../../img/home/img_02.jpg") left bottom / 100% auto no-repeat;
	}
	*/
	
	#home #contents .caption section:nth-of-type(1) p:nth-of-type(1) {
		padding: 0;
	}
	
	#home #contents .caption section:nth-of-type(1) p:nth-of-type(1) img {
		width: 90%;
	}
	
	#home #contents .caption section:nth-of-type(1) h2 {
		margin: 10px 0 15px;
		font-size: 6vw;
		font-weight: 700;
		line-height: 1.4;
	}
	
	#home #contents .caption section:nth-of-type(1) p:nth-of-type(2) {
		font-size: 3.9vw;
	}
	
	#home #contents .caption section:nth-of-type(2) {
		height: auto;
		margin: 50px 0 0;
		padding: 0 0 20px;
		background-color: #F4F8F9;
		position: relative;
		z-index: 1;
	}
	
	#home #contents .caption section:nth-of-type(2) .inner div {
		width: auto;
		margin: 0 auto;
		padding: 0;
	}
	
	#home #contents .caption section:nth-of-type(2) p:nth-of-type(1) {
		transform: translateY(-25px);
	}
	
	#home #contents .caption section:nth-of-type(2) p:nth-of-type(1) img {
		width: 60%;
	}
	
	#home #contents .caption section:nth-of-type(2) h2 {
		margin: -10px 0 10px;
		font-size: 6vw;
		font-weight: 700;
	}
}





/*===============================================================

		#home #contents .feature layout

===============================================================*/

#home #contents .feature {
	padding: 150px 0;
	background: url("../../img/home/bg_01.png") left bottom / 100% 300px no-repeat,
				url("../../img/home/bg_01.png") left top / 100% 330px no-repeat #F9F7F4;
	position: relative;
}

#home #contents .feature::before,
#home #contents .feature::after {
	content: "";
	width: 194px;
	height: 147px;
	position: absolute;
}

#home #contents .feature::before {
	background: url("../../img/home/deco_01.png") left top / 100% auto no-repeat;
	left: calc(50% - 675px);
	top: -27px;
	z-index: 3;
}

#home #contents .feature::after {
	background: url("../../img/home/deco_02.png") left top / 100% auto no-repeat;
	left: calc(50% + 506px);
	bottom: 70px;
	z-index: 1;
}


@media screen and (max-width: 1400px){
	#home #contents .feature::before {
		left: 0;
	}
	
	#home #contents .feature::after {
		left: auto;
		right: 0;
	}
}


#home #contents .feature section {
	width: auto;
	max-width: 1200px;
	height: 470px;
	margin: 0 auto;
	position: relative;
	display: flex;
	align-items: center;
}

#home #contents .feature .feature_01 {
	margin: 0 auto 100px;
	background: url("../../img/home/img_03.jpg") right top / auto no-repeat;
}

#home #contents .feature .feature_02 {
	margin: 0 auto 100px;
	background: url("../../img/home/img_04.jpg") left top / auto no-repeat;
}

#home #contents .feature .feature_03 {
	background: url("../../img/home/img_05.jpg") right top / auto no-repeat;
}

#home #contents .feature section .inner .txt_box {
	width: 45%;
	padding: 40px;
	background-color: #fff;
}

#home #contents .feature .feature_02 .inner .txt_box {
	margin: 0 0 0 auto;
}

#home #contents .feature section .inner .txt_box p.en {
	margin: 0 0 20px;
	color: #A9A196;
	font-size: 14px;
}

#home #contents .feature section .inner .txt_box h2 {
	margin: 0 0 20px;
	font-size: 25px;
	font-weight: 600;
}


@media screen and (min-width: 1401px){
	#home #contents .feature section .inner .txt_box {
		width: auto;
		max-width: 645px;
	}
	
	#home #contents .feature .feature_01 .inner .txt_box,
	#home #contents .feature .feature_03 .inner .txt_box {
		padding: 40px 50px 40px 100px;
		transform: translateX(-100px);
	}
	
	#home #contents .feature .feature_02 .inner .txt_box {
		padding: 40px 100px 40px 50px;
		transform: translateX(100px);
	}
}


@media screen and (max-width: 768px){
	#home #contents .feature {
		padding: 60px 0;
		/*background: url("../../img/home/bg_01.png") left bottom / 100% 10% no-repeat,
					url("../../img/home/bg_01.png") left top / 100% 10% no-repeat #F9F7F4;*/
		background: url("../../img/home/bg_01.png") left top / 100% 5% no-repeat #F9F7F4;
	}
	
	#home #contents .feature::before,
	#home #contents .feature::after {
		width: 100px;
		height: 76px;
	}
	
	#home #contents .feature::before {
		left: 0;
		top: 20px;
	}
	
	#home #contents .feature::after {
		right: 0;
		bottom: 10px;
	}
	
	#home #contents .feature section {
		width: auto;
		max-width: inherit;
		height: auto;
		margin: 0 auto;
		padding-top: calc(100%*470/700 - 50px);
		/*padding-bottom: calc(100%*470/700 - 10px);*/
		display: block;
	}
	
	#home #contents .feature .feature_01 {
		margin: 0 auto 40px;
		background: url("../../img/home/img_03.jpg") center top / 100% auto no-repeat;
	}
	
	#home #contents .feature .feature_02 {
		margin: 0 auto 40px;
		background: url("../../img/home/img_04.jpg") center top / 100% auto no-repeat;
	}
	
	#home #contents .feature .feature_03 {
		background: url("../../img/home/img_05.jpg") center top / 100% auto no-repeat;
	}
	
	#home #contents .feature section .inner .txt_box {
		width: auto;
		padding: 20px;
		background-color: rgba(255,255,255,0.85);
	}
	
	#home #contents .feature .feature_02 .inner .txt_box {
		margin: 0;
	}
	
	#home #contents .feature section .inner .txt_box p.en {
		margin: 0 0 10px;
		color: #A9A196;
		font-size: 3.9vw;
	}
	
	#home #contents .feature section .inner .txt_box h2 {
		margin: 0 0 10px;
		font-size: 6vw;
		font-weight: 600;
	}
}





/*===============================================================

		#home #contents .news layout

===============================================================*/

#home #contents .news {
	padding: 100px 0;
	background-color: #F4F8F9;
}

#home #contents .news .inner h2 {
	margin: 0 0 20px;
	text-align: center;
}

#home #contents .news .inner h2 img {
	width: 114px;
	margin: 0 auto;
	display: block;
}

#home #contents .news .inner h2 span {
	display: inline-block;
	position: relative;
	font-size: 25px;
	font-weight: 600;
}

#home #contents .news .inner h2 span::before,
#home #contents .news .inner h2 span::after {
	content: "";
	width: 8px;
	border-top: solid 2px #333;
	display: block;
	position: absolute;
	top: 25px;
}

#home #contents .news .inner h2 span::before {
	left: -20px;
}

#home #contents .news .inner h2 span::after {
	right: -20px;
}

#home #contents .news .inner dl {
	margin: 0 0 60px;
}

#home #contents .news .inner dl div {
	padding: 25px 0;
	border-bottom: dotted 1px #ccc;
	display: flex;
}

#home #contents .news .inner dl div dt {
	width: 15%;
}

#home #contents .news .inner dl a {
	text-decoration: underline;
}

#home #contents .news .inner dl a:hover {
	text-decoration: none;
}


@media screen and (max-width: 768px){
	#home #contents .news {
		padding: 60px 0;
	}
	
	#home #contents .news .inner h2 {
		text-align: center;
	}
	
	#home #contents .news .inner h2 img {
		width: 80px;
	}
	
	#home #contents .news .inner h2 span {
		font-size: 6vw;
		font-weight: 700;
	}
	
	#home #contents .news .inner dl {
		margin: 0 0 40px;
	}
	
	#home #contents .news .inner dl div {
		padding: 15px 0;
		display: block;
	}
	
	#home #contents .news .inner dl div dt {
		width: auto;
	}
	
	#home #contents .news .inner dl a {
		display: block;
	}
}





/*===============================================================

		#home #contents .goto layout

===============================================================*/

#home #contents .goto {
	padding: 100px 0;
	text-align: center;
}

#home #contents .goto .inner h2 {
	margin: 0 0 40px;
	text-align: center;
}

#home #contents .goto .inner h2 img {
	width: 350px;
}

#home #contents .goto .inner p:nth-of-type(1) {
	margin: 0 0 40px;
	color: #004898;
	font-size: 35px;
	font-weight: 600;
	line-height: 1.4;
}

#home #contents .goto .inner p:nth-of-type(2) {
	margin: 0 0 20px;
	padding: 20px 40px 22px;
	border: solid 2px #004998;
	display: inline-block;
	color: #004898;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.0;
}

#home #contents .goto .inner p:nth-of-type(3) {
	margin: 0 0 40px;
	color: #004898;
}


@media screen and (max-width: 768px){
	#home #contents .goto {
		padding: 60px 0;
	}
	
	#home #contents .goto .inner h2 {
		margin: 0 0 30px;
	}
	
	#home #contents .goto .inner h2 img {
		width: 70%;
	}
	
	#home #contents .goto .inner p:nth-of-type(1) {
		margin: 0 0 30px;
		font-size: 5.7vw;
		font-weight: 700;
		line-height: 1.5;
	}
	
	#home #contents .goto .inner p:nth-of-type(2) {
		margin: 0 0 20px;
		padding: 15px 20px;
		display: block;
		font-size: 5vw;
		font-weight: 700;
		line-height: 1.5;
	}
	
	#home #contents .goto .inner p:nth-of-type(3) {
		margin: 0 0 30px;
		font-size: 3.6vw;
	}
	
	#home #contents .goto .inner p:nth-of-type(4) {
		padding-left: 1em;
		text-indent: -1em;
		text-align: left;
		font-size: 3.6vw;
	}
}
