@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/

.fixLink {
	position: fixed;
	bottom: 30px;
	right: 30px;
	z-index: 100;
}
.fixLink a {
	display: inline-block;
}
.fixLink a:hover {
	opacity: 0.7;
}
.fixLink .pc { display: block !important; }
.fixLink .sp { display: none !important; }

@media all and (max-width: 767px) {
	.fixLink img{
    	width: 100%;
	}
    .fixLink {
        position: fixed;
        bottom: 20px;
        right:0;
    }
    .fixLink .pc { display: none !important; }
    .fixLink .sp { display: block !important; }	
}
#main .mainVisual {
	height: 100svh;
	position: relative;
	z-index: 3;
	background: #343232;
}
#main .mainVisual .maskBox {
	position: relative;
	width: 100%;
	height: 100%;
	--maskNum: 0;
	transform: translateY(calc(30% * var(--maskNum)));
	mask-position: 0% calc(50% * var(--maskNum));
	mask-image: linear-gradient(to top, transparent 40%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 1) 65%, rgba(0, 0, 0, 1) 100%);
	mask-size: 100% 300%;
}
#main .mainVisual .bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: #343232;
	opacity: 0.4;
	z-index: 2;
}
#main .mainVisual .maskBox > img {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
}
#main .mainVisual .maskBox .bgVideo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}
.pcVideo {
	display: block;
}
.spVideo {
	display: none;
}

/* 768px以下（スマホ用）のときは切り替え */
@media screen and (max-width: 767px) {
	.pcVideo {
		display: none;
	}
	.spVideo {
		display: block;
	}
}
#main .mainVisual .txtBox {
	position: absolute;
	top: 50%;
	left: 11.5%;
	width: 100%;
	transform: translateY(-50%);
	z-index: 3;
	max-width: 78rem;
}
#main .mainVisual p {
	color: #fff;
	font-size: 1.8rem;
	line-height: 2;
	letter-spacing: 0.1em;
	text-align: justify;
}
#main .mainVisual .title {
	margin-bottom: 0.2rem;
	font-size: 18.8rem;
	line-height: 1;
	letter-spacing: 0;
}
#main .mainVisual .subTtl {
	font-size: 6rem;
	letter-spacing: 0;
}
#main .mainVisual .subTtl img {
	margin: 0 0.5rem;
	width: 3.7rem;
	vertical-align: -0.1rem;
}
#main .bgSec {
	background: #343232;
	position: relative;
	padding: 20rem 0;
	z-index: 2;
}
#main .bgSec .txtBox {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}
#main .bgSec .txtBox .txt {
	position: sticky;
	width: 50rem;
	left: 100rem;
	top: 0;
	padding-top: 10vh;
	pointer-events: all;
	--maskNum: 0;
	mask-position: 0% calc(100% * (1 - var(--maskNum)));
	mask-image: linear-gradient(to top, transparent 40%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 1) 65%, black 100%);
	mask-size: 100% 300%;
	z-index: 1;
}
#main .bgSec .txtBox h2 {
	margin-bottom: 7.5rem;
	color: #fff;
	font-size: 3.6rem;
	line-height: 2;
}
#main .bgSec .txtBox p {
	margin-bottom: 3.6rem;
	color: #fff;
	line-height: 2.25;
	letter-spacing: 0.1em;
}
#main .bgSec .photoList li {
	position: relative;
	overflow: hidden;
}
#main .bgSec .photoList li::after {
	content: "";
	width: 100%;
	height: 100%;
	background: #343232;
	position: absolute;
	left: 0;
	top: 0;
	opacity: 0.4;
}
#main .bgSec .photoList .photo01 {
	width: 38.5%;
	max-width: 74rem;
}
#main .bgSec .photoList .photo02 {
	margin: -26rem 0 10rem auto;
	width: 34.4%;
	max-width: 66rem;
}
#main .bgSec .photoList .photo03 {
	margin-left: 12rem;
	max-width: 80rem;
	width: 41.7%;
}
#main .bgSec .photoList .photo04 {
	width: 52%;
	max-width: 100rem;
	margin: 10rem 10rem 10rem auto;
}
#main .bgSec .photoList .photo05 {
	max-width: 66rem;
	width: 34.4%;
}
#main .bgSec .photoList .photo06 {
	margin: -28rem 21rem 0 auto;
	max-width: 72rem;
	width: 37.5%;
}
#main .bgSec .photoList li img {
	width: 100%;
}
#main .otherSec {
	margin-top: -50vh;
	position: relative;
	padding-top: 50lvh;
}
#main .otherSec .bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: #343232;
	opacity: 1;
}
#main .otherSec .maskBox {
	background: #fff;
	position: relative;
	--maskNum: 0;
	mask-position: 0% calc(100% * var(--maskNum));
	mask-image: linear-gradient(to bottom, transparent 40%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 1) 65%, black 100%);
	mask-size: 100% 300%;
}
.parallax {
	--parallaxNum: 0;
}
.parallax img {
	transform: translate(0%, calc(-20% * var(--parallaxNum))) scale(1.2);
}
#main .estate {
	padding: 14rem 0;
}
#main .estate .content {
	position: relative;
}
#main .estate .headLine01 {
	margin-bottom: 7.5rem;
}
#main .estate .comLink, #main .business .comLink {
	position: absolute;
	right: 2rem;
	top: 12rem;
}
#main .estate .slideBox {
	width: calc(50% + 60rem);
	margin-left: auto;
	position: relative;
}
#main .estate .slideBox .prev,
#main .estate .slideBox .next {
	cursor: pointer;
	transition: .3s;
	position: absolute;
	left: -3rem;
	top: 32rem;
	width: 6rem;
}
#main .estate .slideBox .next {
	left: 117rem;
}
#main .estate .slideBox .slick-slide {
	margin-right: 8rem;
	width: 56rem;
}
#main .estate .comList .add {
	font-size: 1.6rem;
	letter-spacing: 0.1em;
}
#main .estate .comList .addTtl {
	font-size: 1.4rem;
}
#main .estate .comList .title {
	font-size: 2.6rem;
	letter-spacing: 0.1em;
}
#main .business {
	padding: 4rem 0 15rem;
}
#main .business .content {
	position: relative;
}
#main .business .comLink {
	right: 0;
}
#main .business .ttlBox {
	margin-bottom: 7rem;
	position: sticky;
	left: 0;
	top: 0;
	background-color: #fff;
	z-index: 10;
}
#main .business .headLine01 {
	margin-bottom: 0;
}
#main .business .inner {
	align-items: flex-start;
}
#main .business .linkList {
	width: 28rem;
	position: sticky;
	left: 0;
	top: 22.7rem;
}
#main .business .linkList li:not(:last-child) {
	margin-bottom: 2.3rem;
}
#main .business .linkList a {
	padding-left: 4rem;
	display: inline-block;
	position: relative;
	color: #959595;
	font-size: 1.8rem;
	letter-spacing: 0.1em;
}
#main .business .linkList a:before {
	margin-top: 0.2rem;
	position: absolute;
	left: 0;
	top: 50%;
	width: 3rem;
	height: 1px;
	transition: .3s;
	background-color: #959595;
	content: "";
}
#main .business .linkList .on a {
	color: #343232;
}
#main .business .linkList .on a:before {
	background-color: #343232;
}
#main .business .rBox {
	margin-top: 0.5rem;
	flex: 1;
	border-bottom: 1px solid #343232;
}
#main .business .imgBox {
	padding: 4rem 0;
	border-top: 1px solid #343232;
}
#main .business .imgBox .txtBox {
	margin: 7.4rem 6rem 0 0;
	flex: 1;
}
#main .business .imgBox .txtBox h3 {
	margin-bottom: 2.8rem;
	font-size: 2.8rem;
	letter-spacing: 0.1em;
	font-weight: 400;
}
#main .business .imgBox .txtBox h3 .en {
	display: block;
	color: #595757;
	font-size: 1.8rem;
	letter-spacing: 0;
	font-family: "Cormorant Garamond", serif;
}
#main .business .imgBox .txtBox p {
	margin-bottom: 7.5rem;
	line-height: 2;
	text-align: justify;
}
#main .business .imgBox .phoBox {
	width: 48rem;
}
#main .business .imgBox .phoBox img {
	width: 100%;
}
#main .business .imgBox .comLink {
	position: relative;
	right: 0;
	top: 0;
	text-align: right;
}
#main .news .photo {
	aspect-ratio: 3480/1600;
	overflow: hidden;
}
#main .news .photo .parallax {
	width: 100%;
	height: 120%;
	--parallaxNum: 0;
}
#main .news .photo img {
	width: 100%;
	height: 100%;
	transform: translate(0%, calc(-20% * calc( 1 - var(--parallaxNum))));
	object-fit: cover;
}
@media all and (max-width: 896px) {
	#main .news .photo {
		aspect-ratio: 750/500;
	}
}
#main .news .bgBox {
	padding: 13.8rem 0 14.8rem;
	background: #F5F4F4;
}
#main .news .bgBox .ttlBox {
	width: 38rem;
}
#main .news .headLine01 {
	margin-bottom: 7.7rem;
}
#main .news .bgBox .comNewsList {
	flex: 1;
	margin-top: 2.2rem;
}
#main .company {
	align-items: center;
	justify-content: flex-end;
}
#main .company .txtBox {
	width: 55rem;
	margin: 0 5rem 5rem 0;
}
#main .company .txtBox p {
	line-height: 2;
	margin-bottom: 7.4rem;
	letter-spacing: 0.1em;
}
#main .company .phoBox {
	width: 50%;
}
#main .company .phoBox img {
	width: 100%;
}
#main {
	margin-bottom: 0;
}
@media all and (min-width: 897px) {
	#main .business .linkList a:hover {
		color: #343232;
	}
	#main .business .linkList a:hover:before {
		background-color: #343232;
	}
	#main .estate .slideBox .prev:hover,
	#main .estate .slideBox .next:hover {
		opacity: 0.7;
	}
}
@media all and (max-width: 1919px) {
	#main .bgSec .txtBox .txt {
		left: 52%;
	}
}
@media all and (max-width: 896px) {
	#main .mainVisual .txtBox {
		top: auto;
		bottom: 6.7rem;
		left: 1.5rem;
		transform: translateY(0);
		max-width: 28rem;
	}
	#main .mainVisual p {
		font-size: 1.2rem;
		line-height: 1.75;
	}
	#main .mainVisual .title {
		font-size: 6.8rem;
	}
	#main .mainVisual .subTtl {
		margin-bottom: 1.7rem;
		font-size: 2.15rem;
	}
	#main .mainVisual .subTtl img {
		margin: 0 0.3rem;
		width: 1.4rem;
	}
	#main .bgSec {
		padding: 6rem 0;
	}
	#main .bgSec .txtBox {
		padding: 0 1rem 0 2.5rem;
	}
	#main .bgSec .txtBox .txt {
		width: auto;
		left: 0;
	}
	#main .bgSec .txtBox h2 {
		margin-bottom: 4rem;
		font-size: 2.4rem;
		line-height: 1.5;
	}
	#main .bgSec .txtBox p {
		margin-bottom: 2.6rem;
		line-height: 1.86;
	}
	#main .bgSec .photoList li {
		max-width: inherit !important;
	}
	#main .bgSec .photoList .photo01 {
		width: 66.2%;
	}
	#main .bgSec .photoList .photo02 {
		margin: 4rem 0 4rem auto;
		width: 64.5%;
	}
	#main .bgSec .photoList .photo03 {
		margin-left: 3rem;
		width: 75%;
	}
	#main .bgSec .photoList .photo04 {
		width: 75%;
		margin: 4rem 0 5.4rem auto;
	}
	#main .bgSec .photoList .photo05 {
		width: 55.7%;
	}
	#main .bgSec .photoList .photo06 {
		margin: 4rem 2.5rem 0 auto;
		width: 75%;
	}
	#main .estate {
		padding: 5.3rem 0 7.5rem;
		position: relative;
	}
	#main .estate .headLine01 {
		margin-bottom: 2.5rem;
	}
	#main .estate .content {
		position: static;
	}
	#main .estate .comLink, #main .business .comLink {
		right: auto;
		left: 1.5rem;
		top: auto;
		bottom: 0;
	}
	#main .estate .slideBox {
		width: auto;
		margin-left: 1.5rem;
	}
	#main .estate .slideBox .prev,
	#main .estate .slideBox .next {
		left: -1.5rem;
		top: 15.5rem;
		width: 4rem;
	}
	#main .estate .slideBox .next {
		left: auto;
		right: 0.1rem;
	}
	#main .estate .slideBox .slick-slide {
		margin-right: 3rem;
		width: 28rem;
	}
	#main .estate .comList .photo {
		aspect-ratio: 3/3.75;
	}
	#main .estate .comList .add {
		font-size: 1.4rem;
	}
	#main .estate .comList .addTtl {
		font-size: 1.2rem;
	}
	#main .estate .comList .title {
		font-size: 1.9rem;
	}
	#main .business {
		padding: 9.2rem 0 6rem;
	}
	#main .business .content {
		padding-bottom: 8rem;
	}
	#main .business .ttlBox {
		margin-bottom: 3rem;
		position: static;
	}
	#main .business .headLine01 {
		margin-bottom: 0;
	}
	#main .business .inner {
		margin-bottom: 0;
		display: block;
	}
	#main .business .linkList {
		display: none;
	}
	#main .business .rBox {
		margin: 0 -1.5rem 0 0;
		border-top: 1px solid #343232;
	}
	#main .business .rBox .slick-slide {
		margin-right: 3rem;
		width: 28rem;
	}
	#main .business .imgBox {
		padding: 3rem 0 2.7rem;
		display: flex !important;
		flex-direction: column-reverse;
		border-top: none;
	}
	#main .business .imgBox .txtBox {
		margin: 1.1rem 0 0;
		flex: auto;
		width: 100%;
	}
	#main .business .imgBox .txtBox h3 {
		margin-bottom: 1rem;
		font-size: 2rem;
	}
	#main .business .imgBox .txtBox h3 .en {
		font-size: 1.5rem;
	}
	#main .business .imgBox .txtBox p {
		margin-bottom: 0;
		line-height: 1.75;
	}
	#main .business .imgBox .phoBox {
		width: 100%;
		aspect-ratio: 56/48;
	}
	#main .business .imgBox .phoBox img {
		height: 100%;
		object-fit: cover;
	}
	#main .business .imgBox .comLink {
		display: none;
	}
	#main .news .bgBox {
		padding: 5.4rem 0 6rem;
	}
	#main .news .bgBox .content {
		padding-bottom: 8rem;
		display: block;
		position: relative;
	}
	#main .news .bgBox .ttlBox {
		margin-bottom: 2.8rem;
		width: auto;
	}
	#main .news .headLine01 {
		margin-bottom: 0;
	}
	#main .news .bgBox .comNewsList {
		flex: 1;
		margin-top: 0;
	}
	#main .news .comLink {
		position: absolute;
		bottom: 0;
		left: 1.5rem;
	}
	#main .company {
		display: block;
	}
	#main .company .txtBox {
		width: auto;
		margin: 5.4rem 0 5rem 1.5rem;
	}
	#main .company .txtBox p {
		line-height: 1.75;
		margin-bottom: 3.7rem;
	}
	#main .company .phoBox {
		width: auto;
	}
}