@charset "utf-8";

/* -------------------------------------------------------------
    topとエリアCMS詳細 共通
-------------------------------------------------------------- */

/* -------------------------------------------------------------
    mv-area
-------------------------------------------------------------- */
.mv-catch-fade {
	opacity: 0;
	transition: opacity 1s;
	display: none;
}

.mv-catch-fade.active-mv-catch {
	display: block;
}

#niarea-detail .bread-h1-wrap.mv-catch-fade.active-mv-catch {
	display: flex;
}

.mv-catch-fade.active2-mv-catch {
	opacity: 1;
}

.mv-area canvas, .mv-area .slide {
	width: 100%!important;
	height: 100%!important;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform : translate(-50%,-50%);
	transform : translate(-50%,-50%);
}

.mv-area .slide {
	display: block;
}

.mv-area .wapper_img {
	position: relative;
	height: 100vh!important;
	min-height: 768px;
	max-height: 900px;
}

.mv-area .wapper_img_mask {
	background-image: linear-gradient(0deg, rgba(0, 0, 0, .4), rgba(0, 0, 0, 0));
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 2;
	height: 100%;
	min-height: 100%;
	max-height: 100%;
	max-width: 100%;
}

.mv-area .slider__inner {
	width: 100%;
	height: 100%;
}

.mv-area .wapper_img .slider {
	width: 100vw;
	aspect-ratio: 1600/930;
	min-height: 930px;
	min-width: 1600px;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform : translate(-50%,-50%);
	transform : translate(-50%,-50%);
	height: auto;
}

.mv-area .slider__nav.js-slider__nav, .mv-area .scroll {
	display: none;
}

@media screen and (max-width: 768px) {
	.mv-area .wapper_img {
		height: 116.53vw!important;
		padding: 0;
		min-height: 116.53vw;
		max-height: 116.53vw;
		width: 100%;
	}

	.mv-area .wapper_img .slider {
		aspect-ratio: unset;
		min-height: 100%;
		min-width: 100%;
		height: 100%;
	}

}

/* -----------------------------------------------------------
    top-intro-list
-------------------------------------------------------------- */
.top-intro-area {
	position: relative;
	z-index: 2;
	padding: 0 40px;
}

.top-intro-area .top-intro-list {
	position: absolute;
	z-index: 4;
	top: -80px;
	left: 40px;
	display: flex;
	width: calc(100% - 80px);
	background: url(../img/top-intro-bg.jpg) center/cover no-repeat;
}

.top-intro-area a {
	display: block;
	padding: 40px 30px;
	position: relative;
	overflow: hidden;
	height: 100%;
}

.top-intro-area a::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: #414349;
	transition: .4s;
}

@media screen and (min-width: 769px) {
	.top-intro-area a:hover::before {
		top: 0;
		left: 0;
	}
}

.top-intro-area .top-intro-item {
	width: 25%;
	border-right: 2px solid #000;
}

.top-intro-area .top-intro-item:last-child {
	border-right: none;
	border-bottom: none;
}

.top-intro-area .top-intro-ttl {
	font-size: 2.5rem;
	font-weight: 600;
	line-height: 1;
	display: flex;
	letter-spacing: .02em;
	color: #fff;
	gap: 13px;
	position: relative;
}

.top-intro-area .top-intro-ttl span {
	font-size: 2rem;
	display: block;
	margin: -2px 0 0;
	padding: 5px 9px 8px 10px;
	border: 1px solid;
}

.top-intro-area .top-intro-img {
	overflow: hidden;
	width: 100%;
	margin: 23px 0 0;
	aspect-ratio: 3/1.5;
}

.top-intro-area .top-intro-img img {
	width: 100%;
	height: 100%;
	transition: .5s;
	object-fit: cover;
}

@media screen and (min-width: 769px) {
	.top-intro-area a:hover img {
		transition: .5s;
		transform: scale(1.07);
	}
}

.top-intro-area .top-intro-point {
	display: flex;
	margin: 23px 0 0;
	flex-wrap: wrap;
	gap: 11px 20px;
}

.top-intro-area .top-intro-point-item {
	font-size: 1.7rem;
	line-height: 1.5;
	position: relative;
	width: 100%;
	padding: 0 0 0 27px;
	letter-spacing: .09em;
	color: #fff;
}

.top-intro-area .top-intro-point-item::before {
	position: absolute;
	top: 4px;
	left: 0;
	width: 18px;
	height: 18px;
	content: '';
	background: url('../img/cmn-point-icon-2.svg') center/contain no-repeat;
}

@media screen and (max-width: 768px) {
	.top-intro-area {
		background: #e7f4ff;
		padding: 30px 20px 0;
	}

	.top-intro-area .top-intro-list {
		position: static;
		display: block;
		width: 100%;
	}

	.top-intro-area a {
		padding: 35px 20px 40px;
	}

	.top-intro-area .top-intro-item {
		width: 100%;
		border-right: none !important;
		border-bottom: 3px solid #000;
	}

	.top-intro-area .top-intro-point {
		margin: 20px 0 0;
		gap: 10px 15px;
	}

	.top-intro-area .top-intro-point-item {
		font-size: 1.6rem;
	}
}

@media screen and (min-width: 769px) and (max-width: 1400px) {
	.top-intro-area .top-intro-list {
		left: 50%;
		width: 1200px;
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
	}
}
