@charset  "utf=8";

html {
	height: 100%;
	scroll-behavior: smooth;
}
body {
	overflow-y: scroll;
	line-height: 1.55;
	letter-spacing: 0.07em;
	font-feature-settings: "palt" 1;
	background-color: #ffffff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: #474747;
}

a {
	text-decoration: none;
}
li {
	list-style-type: none;
}
img{
	vertical-align:top;
}
.container{
	width: 1180px;
	margin: 0 auto;
}
@media (max-width: 1194px){
	.container{
		width: 100%;
		padding: 0 10px;
	}
}
@media (max-width: 760px){
	body {
		font-size: 14px;
	}	
}

/*top header*/
.top-visual {
  width: 100%;
  aspect-ratio: 16 / 9;
  position: relative; /* ← h1のabsoluteのため必要 */
  overflow: hidden;
}

.top-visual .top-doc h1 {
  position: absolute;
  top: 0;
  left: 0;
  color: transparent;
  font-size: 16px;
  line-height: 0;
}

.top-visual .video {
  width: 100%;
  height: 100%;
}

.top-visual .video video {
  width: 100%;
  height: 100%;
  object-fit: cover; /* ← containにすれば全体表示される */
}

/*ページ内リンク　トップナビゲーション*/
.top-nav{
	height: 100px;
	background-color: #3A3A3A;
}
.top-nav ul{
	display: flex;
	justify-content: center;
	gap: 6.9%;
}
.top-nav ul li a{
	display: block;
	padding-top: calc((80px - 24px)/2);
	color: #ffffff;
	transition: color 0.6s;
}
/*中心から外に線が伸びる（下部）*/
.gnavi li a{
    /*線の基点とするためrelativeを指定*/
	position: relative;
}
.gnavi li a:hover{
	color:#CFAE6D;
}
.gnavi li a::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: -8px;
    left: 10%;
    /*線の形状*/
    width: 80%;
    height: 2px;
    background:#CFAE6D;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: center top;/*上部中央基点*/
}
/*hoverの設定*/
.gnavi li a:hover::after {
    transform: scale(0.6, 1);/*X方向にスケール拡大*/
}

@media (max-width: 570px){
	.top-nav ul{
		flex-wrap: wrap;
		gap: 0;
	}
	.top-nav ul li{
		width: 50%;
	}
	.top-nav ul li a{
		text-align: center;
		padding: 15px 0;
	}
	.gnavi li a::after {
		display: none;
	}
}

/*説明文*/
#column h3{
	font-size: 1.25em;
	font-weight: 500;
	text-align: center;
}
#column p{
	font-size: 1em;
	line-height: 2.1;
	text-align: center;
}
.column-box{
	display: flex;
}

@media screen and (max-width: 768px) {
	#column p{
		text-align: left;
		padding: 3%;
	}
	#column h3{
		padding: 3%;
	}
	#column h3 + p{
		text-align: center;
	}
	.column-box{
		flex-direction: column;
	}
	.column-box-pic{
		width: 100%;
	}
	.column-box-doc{
		width: 100%;
	}
	.spbr-colim-p{
		display: none;
	}
}


/*上段*/
#box1{
	position: relative;
	padding: 95px 0 70px;
	background-color: #E6E6E6;
	z-index: -3;
}
#box1::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 232.5px;
	background-color: #3A3A3A;
	clip-path: polygon(0 0,100% 0,0 100%);
	top: -1px;
	left: 0;
	z-index: -1;
}
#box1::after{
	position: absolute;
	content: '';
	width: 48.54%;
	height: 100%;
	background-color: #ffffff;
	top: 0;
	left: 39.44%;
	z-index: -2;
}
#box1 .column-box-pic img{
	width: 100%;
	object-fit: cover;
}
#box1 .column-box-doc{
	width: 42.37%;
	margin-left: 20px;
}
#box1 h3{
	padding-top: 51px;
}
#box1 p{
	padding-top: 52px;
}

/*中段*/
#box2{
	position: relative;
	padding: 70px 0 140px;
	background-color: #E6E6E6;
	z-index: -3;
}
#box2::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	background-color: #3A3A3A;
	clip-path: polygon(0 0,100% 0,100% 100%,0 87.29%);
	top: 0;
	z-index: -1;
}
.rev{
	justify-content: right;
	flex-direction: row-reverse;
}
#box2 .triple-pic{
	display: flex;
	gap: 3.5%;
}
#box2 .triple-pic img{
	width: 100%;
	object-fit: cover;
}
#box2 .triple-pic .pic-a{
	padding-top: 15%;/*98px*/
}
#box2 .triple-pic .pic-b{
	padding-top: 32%;/*199px*/
}
#box2 .column-box-doc{
	width: 44.06%;
	margin-right: 20px;
}
#box2 h3{
	padding-top: 179px;
	color: #ffffff;
}
#box2 p{
	padding-top: 84px;
	color: #ffffff;
}


/* 0.3秒後に0.8秒かけてフェードイン */
.fadeInAnime1s {
    animation-name: fadeIn;
}
.fadeIn1s {
    animation-delay: 0.2s;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    transform: translateY(50px);
    opacity: 0;
}

/* 0.6秒後に0.8秒かけてフェードイン */
.fadeInAnime1500ms {
    animation-name: fadeIn;
}
.fadeIn1500ms {
    animation-delay: 0.6s;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    transform: translateY(50px);
    opacity: 0;
}

/* 0.9秒後に0.8秒かけてフェードイン */
.fadeInAnime500ms {
    animation-name: fadeIn;
}
.fadeIn500ms {
    animation-delay: 1s;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    transform: translateY(50px);
    opacity: 0;
}

/* 共通アニメーション */
@keyframes fadeIn {
    0% {
        transform: translateY(50px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}



/*下段*/
#box3{
	position: relative;
	padding: 0px 0 46px;
}
#box3::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 356px;
	background-color: #E6E6E6;
	clip-path: polygon(0 0,100% 0,100% 100%,0 69.1%);
	top: 0;
	z-index: -1;
}
#box3::after{
	position: absolute;
	content: '';
	width: 100%;
	height: 296px;
	background-color: #E6E6E6;
	bottom: 0;
	z-index: -1;
}

.grid-box{
	display: grid;
	grid-template-columns: 13.2% 17.36% 17.36% 17.36% 17.36% 17.36%;
	grid-template-rows: 400px 250px 250px;
	place-items: center;
}
.grid11{
	grid-column: 1/4;
	grid-row: 1/2;
	
}
.grid12{
	grid-column: 4/7;
	grid-row: 1/2;
}

.large-box-pic{
	width: 100%;
}
.large-box-pic img{
	width: 100%;
	height: 400px;
	object-fit: cover;
}
.large-box-doc h3{
	padding-bottom: 48px;
}

.grid22{
	grid-column: 2/4;
	grid-row: 2/3;
}
.grid23{
	grid-column: 4/5;
	grid-row: 2/3;
}
.grid24{
	grid-column: 5/6;
	grid-row: 2/3;
}
.grid25{
	grid-column: 6/7;
	grid-row: 2/3;
}

.grid32{
	grid-column: 2/3;
	grid-row: 3/4;
}
.grid33{
	grid-column: 3/4;
	grid-row: 3/4;
}
.grid34{
	grid-column: 4/5;
	grid-row: 3/4;
}
.grid35{
	grid-column: 5/6;
	grid-row: 3/4;
}

.small-box-pic{
	width: 100%;	
}
.small-box-pic img{
	width: 100%;
	height: 250px;
	object-fit: cover;
}

@media screen and (max-width: 1280px) {
.grid-box{
grid-template-columns: 3% 19.4% 19.4% 19.4% 19.4% 19.4%;
}

}


@media (max-width: 980px){
	.column-box{
		flex-direction: column;
	}
	.rev{
		flex-direction: column;
	}
	#box1{
	padding: 35px 0 70px;
}
	#box1::before{
		height: 132.5px;
	}
	#box1 .column-box-doc{
		width: 100%;
		margin: 0 auto;
	}

	#box2 .triple-pic{
		margin: 0 auto;
	}
	#box2 .column-box-doc{
		width: 100%;
		margin: 0 auto;
	}
	#box2 h3{
		padding-top: 55px;
	}
	#box2 .triple-pic .pic-a{
		padding-top: 15%;
	}
	#box2 .triple-pic .pic-b{
		padding-top: 32%;
	}
	/* #box3{
		margin: 0 10px;
	} */
	#box3::before{
		height: 720px;
		clip-path: polygon(0 0,100% 0,100% 100%,0 87.1%);
	}	
	#box3::after{
		height: 546px;
	}
	.grid-box{
		display: grid;
		grid-template-columns: 50% 50%;
		grid-template-rows: 400px 250px 200px 250px 250px 250px 250px;
		place-items: center;
	}
	.grid11{
		grid-column: 1/3;
		grid-row: 1/2;
		
	}
	.grid12{
		grid-column: 1/3;
		grid-row: 2/3;
	}
	.grid22{
		grid-column: 1/3;
		grid-row: 3/4;
	}
	.grid23{
		grid-column: 1/2;
		grid-row: 4/5;
	}
	.grid24{
		grid-column: 2/3;
		grid-row: 4/6;
	}
	.grid25{
		grid-column: 1/2;
		grid-row: 5/6;
	}
	
	.grid32{
		grid-column: 1/2;
		grid-row: 6/7;
	}
	.grid33{
		grid-column: 2/3;
		grid-row: 6/7;
	}
	.grid34{
		grid-column: 1/2;
		grid-row: 7/8;
	}
	.grid35{
		grid-column: 2/3;
		grid-row: 7/8;
	}
	/*.large-box{
		grid-template-columns: 100%;
		grid-template-rows: 400px 300px;
		margin: 0 10px;
	}
	.large-box-pic{
		grid-column: 1/2;
	}
	.large-box-doc{
		grid-column: 1/2;
	}
	.small-box{
		grid-template-columns: 250px 250px ;
		grid-template-rows: 160px 250px 250px 250px 250px 0px;
		justify-content: center;
	}
	.two_small-box-doc{
		grid-column: 2/2;
	}
	.small-box div:last-child{
		display: none;		
	}*/
}

@media (max-width: 520px){
	.small-box{
		grid-template-columns: 50% 50% ;
		grid-template-rows: 160px 250px 250px 250px 250px 0px;
		padding: 0 10px;
	}
}

/*---ふわっとFadeUp---*/
/* fadeUp */
.fadeUp{
	animation-name:fadeUpAnime;
	animation-duration:1.8s;
	animation-fill-mode:forwards;
	opacity:0;
	}
	
	@keyframes fadeUpAnime{
	  from {
		opacity: 0;
	  transform: translateY(100px);
	  }
	
	  to {
		opacity: 1;
	  transform: translateY(0);
	  }
	}
		
	/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
	.fadeUpTrigger{
		opacity: 0;
	}

/*section共通*/
section h2,.lower-map h3,.reservation-form-container h3,.reservation-form-container h4{
	position: relative;
	font-size: clamp(1.25rem, 1.017rem + 0.99vw, 1.625rem);
	letter-spacing: 0.1em;
	font-weight: 500;
	line-height: 2.1;
	text-align: center;
}
section h2::before,.lower-map h3::before,.reservation-form-container h3::before,.reservation-form-container h4::before{
	position: absolute;
	content: '';
	width: 100px;
	height: 2px;
	background-color:#CFAE6D;
	bottom: 1px;
	left: 50%;
	transform: translateX(-50%);
}

/*開催中・開催予定物件一覧*/
#model-house{
	position: relative;
	background-color: #3A3A3A;
	padding-top: 94px;
	padding-bottom: 130px;
}
#model-house::after{
	position: absolute;
	content: '';
	width: 100%;
	height: 90px;
	clip-path: polygon(0 100%,100% 0,100% 100%);
	background-color: #E6E6E6;
	bottom: -0.5px;
}
#model-house h2,
#model-house h3{
	font-weight: 500;
	color: #ffffff;
}
#model-house h2::before{
	width: 200px;
}
.model-box-wrapper{
	padding-top: 70px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	column-gap: 4.74%;
	row-gap: 80px;
}
.model-pic{
	max-width: 350px;
	height: 300px;
}
.model-pic img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*　---画像の拡大　*/
.zoomIn img{
	transform: scale(1);
	transition: .4s ease-in-out;/*移り変わる速さを変更したい場合はこの数値を変更*/
}
.zoomIn:hover img{/*hoverした時の変化*/
	transform: scale(1.07);/*拡大の値を変更したい場合はこの数値を変更*/
}
/*画像のマスク*/
.mask{
	width: 100%;
	height: 100%;
    display: block;
    line-height: 0;/*行の高さを0にする*/
    overflow: hidden;/*拡大してはみ出る要素を隠す*/
}

@media (max-width: 1194px){
	.model-box-wrapper{
		justify-content: center;
	}
}

.model-box{
	width: 350px;
}


/* モデルボックスの日時限定ラベル */
.model-box-label{
	position: relative;
}
.model-box-label::after{
	position: absolute;
	content: '日時限定公開';
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	width: 120px;
	padding-block: 10px;
	padding-right: 10px;
	background-color: #CFAE6D;
	top: 0;
	left: 0;
	border-radius: 0 0 15px 0;
}


/* .model-box:nth-child(1),
.model-box:nth-child(2),
.model-box:nth-child(3){
	padding-bottom: 70px;
} */
.model-box a{
	display: flex;
	flex-direction: column;
	align-items: center;
}
.model-box .model-title{
	position: relative;
	order: 2;
	max-width: 300px;
	height: 58px;
	margin-top: 14px;
	margin-bottom: 15px;
	display: flex;
	align-items: center;
	
}
.model-box .model-title h3{
	display: table-cell;
    vertical-align: middle;
	font-size: clamp(1.125rem, 1.067rem + 0.25vw, 1.15rem);
	 display: -webkit-box;
  	-webkit-box-orient: vertical;
  	-webkit-line-clamp: 2; /* ← 行数を指定 */
  	overflow: hidden;
}
.model-box h3::before{
	position: absolute;
	content: '';
	height: 13px;
	width: 1px;
	background-color: #ffffff;
	top: 50%;
	transform: translateY(-50%);
	left: -15px;
}
.model-box h3::after{
	position: absolute;
	content: '';
	height: 13px;
	width: 1px;
	background-color: #ffffff;
	top: 50%;
	transform: translateY(-50%);
	right: -15px;
}
.model-box .model-doc{
	order: 3;
}
.model-doc dl{
	display: flex;
	margin-bottom: 6px;
}
.model-doc dl dt{
	margin-right: 11px;
	padding: 1px 15px 0;
	border-radius: 20px;
	background-color: #CFAE6D;
	text-align: center;
	font-size: 0.875em;
	color: #333333;
}
.model-doc dl dd{
	padding-left: 11px;
	font-size: 1em;
	color: #ffffff;
}
.model-box .model-pic{
	order: 1;
}

@media (max-width: 769px){
	.model-box{
		padding-bottom: 75px;
	}
}

/*終了物件一覧*/
#finished{
	position: relative;
	background-color: #E6E6E6;
	padding-top: 17px;
	padding-bottom: 97px;
}
#finished h3{
	font-size: 1.125em;
	color: #333333;
}
.finished-wrapper{
	display: flex;
	justify-content: space-between;
	padding-top: 70px;
	align-items: self-start;
}
.list-box{
	width: 350px;
	background-color: #ffffff;
	border: 1px solid #6A6A6A;
	border-radius: 10px;
}
.list-box a{
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 21px;
	transition: opacity 0.3s;
}
.list-box a:hover {
	text-decoration: none;
	filter: alpha(opacity=70);
	-moz-opacity: 0.70;
	opacity: 0.70;
}
.list-box h3{
	position: relative;
	max-width: 300px;
	margin-top: 14px;
	margin-bottom: 8px;
	text-align: left;
	font-size: 1.25em;
}
.list-doc dl{
	display: flex;
	margin-bottom: 6px;
}
.list-doc dl dt{
	margin-right: 22px;
	padding: 1px 15px 0;
	border: 1px solid #333333;
	border-radius: 20px;
	background-color: #ffffff;
	text-align: center;
	font-size: 0.875em;
	color: #333333;
}
.list-doc dl dd{
	font-size: 1em;
	color: #333333;
}
.finished-none{
	font-size: 18px;
	font-weight: 300;
	text-align: center;
	margin-top: 60px;
}

@media (max-width: 1194px){
	.finished-wrapper{
		gap: 5px;
	}
	.list-doc dl dt{
		margin-right: 11px;
	}
}
@media (max-width: 754px){
	.finished-wrapper{
		flex-direction: column;
		align-items: center;
	}
	.list-box{
		margin-bottom: 20px;
	}
}

/*よくあるご質問*/
#faq{
	width: 900px;
	margin: 0 auto 0px;
	padding-top: 108px;
	padding-bottom: 59px;
}
#faq h2{
	margin-bottom: 82px;
}
.faq-box{
	margin-bottom: 40px;
	padding: 24px 6% 36px;
	border: 1px solid #000000;
}

@media (max-width: 920px){
	#faq{
		width: 100%;
		margin: 0 auto;
	}
	.faq-box{
		margin: 0 10px 40px;
	}
}

#faq dt{
	padding-right: 18px;
	font-size: 1.75em;
	/*font-weight: 500;*/
}
.question{
	display: flex;
	margin-bottom: 30px;
}
.question dd{
	width: 100%;
	padding-top: 10px;
	font-size: 1.125em;
	font-weight: 800;
}
.answer{ 
	display: flex;
}
.answer dd{
	width: 100%;
	padding-top: 10px;
	font-weight: normal;
}
#faq span{
	visibility: hidden;
}

/*企業情報*/
#about{	
	background-color: #3A3A3A;
	padding-top: 0px;
	padding-bottom: 64px;
}
#about h2{
	position: relative;
	width: 100%;
	margin-bottom: 70px;
	z-index: 1;
}
#about h2::after{
	position: absolute;
	content: '';
	width: 100%;
	height: 244px;
	background-color: #ffffff;
	top: 0;
	left: 0;
	z-index: -1;
}
iframe{
	position: relative;
	width: 100%;
	z-index: 1;
}
.about-list{
	max-width: 530px;
	margin: 50px auto;
	font-size: 1em;
	font-weight: 400;
	line-height: 2.3;
	color:#ffffff;
}
.about-list dl{
	display: flex;
}
.about-list dt{
	width: 106px;
	margin-right: 30px;
	margin-bottom: 15px;
}
.about-list dd{
	width: 411px;
}
.about-list dl dd a{
	text-decoration: underline;
	color: #ffffff;
	transition: color 0.6s;
}
.about-list dl dd a:hover{
	color: #CFAE6D;
}

@media (max-width: 520px){
	.about-list{
		width: 100%;
		line-height: 1.5;
		margin: 52px auto 0px;
	}
	.about-list dl{
		flex-direction: column;
		padding-bottom: 20px;
	}
	.about-list dt{
		width: 100%;
		margin-bottom: 0px;
	}
	.about-list dd{
		width: 100%;
	}
}

/*footer*/
footer{
	position: relative;
	background-color: #3A3A3A;
	padding-top: 53px;
	color: #ffffff;
}
footer nav ul{
	display: flex;
	justify-content: center;
	gap: 3.47%;
	margin-bottom: 40px;
}
footer nav ul li a{
	color: #ffffff;
	transition: color 0.6s;
	font-weight: normal;
}
footer nav ul li a:hover{
	color:#CFAE6D;
}
.endlogo{
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 53px;
	> div a img{
		transition: 0.4s;
	}
	> div a:hover img{
		opacity: 0.7;
	}
}
#insta{
	transition: opacity 0.4s;
}
#insta:hover{
	filter: alpha(opacity=70);
	-moz-opacity: 0.70;
	opacity: 0.70;
}
.copyright{
	height: 25px;
	background-color: #CFAE6D;
	text-align: center;
	font-size: 0.75em;
	/*font-weight: 500;*/
	line-height: 2;
	color: #333333;
}

@media (max-width: 830px){
	footer{
		padding-top: 15px;
	}
	footer nav ul{
		flex-direction: column;
		width: 90%;
		margin-inline: auto;
	}
	footer nav ul li{
		margin-bottom: 15px;
	}
}


/*-----上へ戻るスクロールボタン-----*/
.button{
	position: fixed;
	padding: 10px;
	right: 0px;
	bottom: 0px;
	cursor: pointer;
	transition: .3s;
	
	/*デフォルトで非表示にする*/
	opacity: 0;
	visibility: hidden;
  }
  /*このクラスが付与されると表示する*/
  .active{
	opacity: 1;
	visibility: visible;
  }
  /*このクラスが付与されると表示する*/
  .absolute{
	position: absolute;
	top: -80px;
	bottom: auto;
  }

@media (max-width: 920px){
	.button{
		display: none;
	}
}
/*footer---ここまで*/   

/* TOPページに戻るボタン共通 */
.back-top-btn{
	margin-bottom: 90px;
}

.back-top-btn a{
	width: 260px;
	height: 60px;
	background: #CFAE6D;
	box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.15);
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	color: #fff;
	transition: .3s;
	margin-inline: auto;
	position: relative;
	padding-right: 20px;
}
.back-top-btn a::before{
	position: absolute;
	content: '';
	display: inline-block;
	top: 50%;
	right: 25px;
	width: 22px;
	height: 16px;
	background: url(../img/arrow.svg) no-repeat center/cover;
	transform: translateY(-50%);
	transition: 0.3s;
}

.back-top-btn a:hover{
	transform: translateY(4px);
	box-shadow: none;
}
.back-top-btn a:hover::before{
	right: 20px;
}
