@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main .mainVisual .fixBg img {
	object-position: center top;
}
/* mainVisual */
.mainVisual {
	padding: 20rem 0 15rem;
	min-height: 167.3rem;
}
.mainVisual .inner {
	margin-bottom: 75.7rem;
}
.mainVisual .imgtext {
	margin: 0 auto;
	width: 3rem;
}
@media all and (max-width: 896px) {
	.mainVisual {
		padding: 7.4rem 0 6.2rem;
		min-height: 66.7rem;
	}
	.mainVisual .inner {
		margin-bottom: 19.8rem;
	}
	.mainVisual .imgtext {
		width: 1.7rem;
	}
}
/* sec01 */
#main .sec01 {
	padding: 13rem 0 22.3rem;
}
#main .sec01 .imgBox {
	margin-bottom: 13rem;
	position: relative;
}
#main .sec01 .imgBox .text {
	position: absolute;
	z-index: 1;
	right: 5.3rem;
	top: 0;
	font-size: 2.85rem;
	letter-spacing: 0.3em;
	line-height: 1.83;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}
#main .sec01 .pho {
	margin: 0 auto;
	max-width: 72.9rem;
}
#main .sec01 .pho img {
	width: 100%;
}
@media all and (min-width: 897px) and (max-width: 1240px) {
	#main .sec01 .imgBox .text {
		right: 2rem;
	}
}
@media all and (max-width: 896px) {
	#main .sec01 {
		padding: 6rem 0 6.2rem;
	}
	#main .sec01 .imgBox {
		margin-bottom: 6rem;
	}
	#main .sec01 .imgBox .text {
		margin: 0 auto 1.6rem;
		width: fit-content;
		position: static;
		min-height: 20.8rem;
		font-size: 1.6rem;
		line-height: 1.75;
	}
	#main .sec01 .pho {
		margin: 0 3.8rem;
		max-width: 100%;
	}
}
/* sec02 */
#main .sec02 {
	padding: 13rem 0 23.4rem;
}
#main .sec02 .inner {
	display: flex;
	justify-content: right;
}
#main .sec02 .title {
	margin: 0 9.5rem 0 auto;
	width: fit-content;
	font-size: 4.5rem;
	min-height: 58.5rem;
	letter-spacing: 0.3em;
	line-height: 1.83;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}
@media all and (max-width: 896px) {
	#main .sec02 {
		padding: 3.8rem 0 20.4rem;
	}
	#main .sec02 .title {
		margin-right: 3.5rem;
		min-height: 20.8rem;
		font-size: 1.6rem;
		line-height: 1.75;
	}
}
/* sec03 */
#main .sec03 {
	padding: 19.7rem 0 19.5rem;
}
#main .sec03 .comPhotoList .title .en.thin {
	letter-spacing: 0.12em;
}
#main .sec03 .comPhotoList .title .jp.thin {
	letter-spacing: 0.37em;
}
#main .sec03 .comPhotoList .title .jp.thin01 {
	letter-spacing: 0;
}
@media all and (max-width: 896px) {
	#main .sec03 {
		padding: 6rem 0 5.9rem;
	}
	#main .sec03 .comPhotoList .title .en.thin {
		letter-spacing: 0.15em;
	}
}
/* sec04 */
#main .sec04 {
	padding: 14.5rem 0 14.5rem;
}
#main .sec04 > .title {
	margin: 0 0 31.8rem 12rem;
	font-size: 4.5rem;
	letter-spacing: 0.2em;
	line-height: 1.83;
}
@media all and (max-width: 896px) {
	#main .sec04 {
		padding: 2.5rem 0 2.9rem;
	}
	#main .sec04 > .title {
		margin: 0 0 8rem 3rem;
		font-size: 1.6rem;
		line-height: 1.75;
	}
}
/* sec05 */
#main .sec05 {
	padding: 1rem 0 5rem;
	overflow: hidden;
	background-color: #fff;
}
#main .sec05 h2 {
	margin-bottom: 1rem;
	padding-right: 2.3rem;
	position: relative;
	color: #000;
	width: fit-content;
}
#main .sec05 h2::after {
	width: 200rem;
	height: 1px;
	position: absolute;
	top: 56%;
	left: 100%;
	content: "";
	background-color: #000;
}
#main .sec05 h2 .en {
	margin-right: 1rem;
	font-size: 6.7rem;
	display: inline-block;
	font-weight: 600;
	letter-spacing: 0.11em;
}
#main .sec05 h2 .jp {
	font-size: 2.6rem;
	font-weight: 400;
	vertical-align: 1rem;
}
#main .sec05 .slider {
	margin-bottom: 5.3rem;
}
#main .sec05 .slider li {
	margin-right: 2.2rem;
	width: 28rem;
	overflow: hidden;
}
#main .sec05 .slider a {
	display: block;
}
#main .sec05 .slick-slide {
	margin-right: 2.2rem;
	width: 28rem;
}
#main .sec05 .slider img {
	width: 100%;
	transition: 1.5s cubic-bezier(0.19, 1, 0.22, 1);
}
#main .sec05 .more {
	padding-right: 4rem;
	margin-left: auto;
	position: relative;
	width: fit-content;
}
#main .sec05 .more::after {
	width: 260rem;
	height: 1px;
	position: absolute;
	z-index: 1;
	top: 50%;
	right: 0;
	content: "";
	background-color: #000;
}
#main .sec05 .more p {
	position: relative;
	z-index: 2;
	display: inline-block;
	background-color: #fff;
}
#main .sec05 .more a {
	padding: 0 4.7rem 0 2rem;
	display: inline-block;
	color: #000;
	font-size: 3rem;
	letter-spacing: 0.06em;
	background: url(../img/common/icon01.png) no-repeat right 2rem center / 1.7rem;
}
#main .sec05 .more a:hover {
	opacity: 0.7;
}
@media all and (min-width: 1025px) {
	#main .sec05 .slider a:hover img {
		transform: scale(1.05);
		-webkit-transform: scale(1.05);
	}
}
@media all and (max-width: 896px) {
	#main .sec05 {
		padding: 3.2rem 0 3.5rem;
	}
	#main .sec05 h2 {
		padding-right: 1rem;
	}
	#main .sec05 h2::after {
		width: 89.6rem;
		top: 50%;
	}
	#main .sec05 h2 .en {
		margin-right: 0.6rem;
		font-size: 2.1rem;
		letter-spacing: 0.18em;
	}
	#main .sec05 h2 .jp {
		font-size: 1.2rem;
		vertical-align: 0.3rem;
	}
	#main .sec05 .slider {
		margin-bottom: 1.3rem;
	}
	#main .sec05 .slider li {
		margin-right: 1.5rem;
		width: 12.4rem;
	}
	#main .sec05 .slick-slide {
		margin-right: 1.5rem;
		width: 12.4rem;
	}
	#main .sec05 .more {
		padding-right: 1.5rem;
	}
	#main .sec05 .more::after {
		width: 89.6rem;
	}
	#main .sec05 .more a {
		padding: 0 2.4rem 0 1.3rem;
		font-size: 1.4rem;
		background-size: 1rem auto;
		background-position: right 1rem center;
	}
}