body{
	font-family:'Noto Sans JP', sans-serif;;
}

.row:before, .row:after{/* Mac Safari grid bug fixes */
	width:0px;
	height:0px;
}

#visual .container-fluid{
	padding:0;
}

#visual .col-md-12{
	padding:0;
}

#visual img{
	width:100%;
	line-height:0;
}

#about .leadBlock{
	margin-bottom:180px;
}

#about p.leadTxt{
	color:#d6b161;
	font-size:18px;
	line-height:1em;
	letter-spacing:0.1em;
	text-transform:uppercase;
	margin-bottom:20px;
}

#about p.nameTxt{
	font-size:24px;
	line-height:1em;
	letter-spacing:0.1em;
	text-transform:uppercase;
	margin-bottom:55px;
}

#about p.txt{
	font-size:16px;
	line-height:2.1em;
	margin-bottom:0;
}

#about #aboutList{
	display:flex;
	flex-wrap:wrap;
}

#about #aboutList h4{
	margin-bottom:0;
	line-height:30px;
}

#about #aboutList p{
	margin-bottom:85px;
}

#column{
	padding-top:30px;
}

@media (max-width:767px){
	#column{
		padding-top:0;
	}
}

#column .half-txt{
	font-size:24px;
	line-height:1.4em;
	letter-spacing:0.1em;
}

#column .accordion > dt{
	letter-spacing:0.1em;
}

#column .accordion > dd{
	padding:20px 20px 30px;
	color:#333;
	font-size:16px;
	line-height:2.1em;
}

#column .accordion > dd p:last-child{
	margin-bottom:0;
}

@media (min-width:768px){
	/* PC・タブレットは横並びタブ＋本文1段組み（スマホはアコーディオン） */
	#column .accordion{
		display:grid;
		grid-template-columns:1fr 1fr;
		column-gap:40px;
	}

	#column .accordion > dt{
		grid-row:1;
	}

	#column .accordion > dt > a{
		color:#fff;
		border-color:#b3b3b3;
		background:#b3b3b3;
	}

	#column .accordion > dt > a:hover,
	#column .accordion > dt > a.active{
		border-color:#222;
		background:#222;
	}

	#column .accordion > dt > a:after{
		display:none;
	}

	/* 開閉アニメーションのインラインスタイルを無効化し、activeタブの本文だけ即時表示 */
	#column .accordion > dd{
		display:none !important;
		grid-row:2;
		grid-column:1 / -1;
		height:auto !important;
		margin:0 !important;
		padding:20px 20px 30px !important;
		overflow:visible !important;
	}

	#column .accordion > dt:has(> a.active) + dd{
		display:block !important;
	}

	/* 本文を罫線で囲み、activeタブとつなげる（元に戻す場合はこのブロックを削除） */
	#column .accordion > dt{
		margin-bottom:0;
	}

	#column .accordion > dd{
		border:1px solid #ddd;
		padding:30px 20px !important;
	}
	/* 罫線ここまで */

	/* 本文の横幅を制限して中央寄せ（元に戻す場合はこのブロックを削除） */
	#column .accordion > dd > p{
		max-width:760px;
		margin-left:auto;
		margin-right:auto;
	}
	/* 本文幅ここまで */

	/* activeタブの下に三角の印（元に戻す場合はこのブロックを削除） */
	#column .accordion > dt{
		position:relative;
	}

	#column .accordion > dt:has(> a.active)::after,
	#column .accordion:not(:has(a.active)) > dt:first-of-type::after{
		content:"";
		position:absolute;
		top:100%;
		left:50%;
		margin-left:-9px;
		border-style:solid;
		border-width:9px 9px 0;
		border-color:#222 transparent transparent;
		z-index:1;
	}
	/* 三角ここまで */

	/* スマホで全て閉じた状態から幅が広がった場合は1つ目を表示 */
	#column .accordion:not(:has(a.active)) > dt:first-of-type > a{
		border-color:#222;
		background:#222;
	}

	#column .accordion:not(:has(a.active)) > dd:first-of-type{
		display:block !important;
	}
}

#gallery .container-fluid{
	padding:0;
}

#gallery .row{
	margin:0;
}

#gallery .portfolio{
	margin:0;
}

#gallery .portfolio-item{
	padding:0;
}

#gallery .portfolio-hover .action-btn{
	top:50%;
}

#works .container-fluid{
	padding:0;
}

#works #works01{
	margin-bottom:55px;
}

#works #works03,
#works #works04,
#works #works05{
	margin-bottom:2px;
}

#works .row{
	margin:0;
	display:flex;
	flex-wrap:wrap;
}

#works .imgBlock{
	padding:0;
	background-color:#6c6b69;
	display:flex;
	align-items:center;
}

#works #works03 .imgBlock,
#works #works04 .imgBlock,
#works #works05 .imgBlock{
	background-color:#f5f5f4;
	display:block;
}

#works .imgBlock div.img{
	width:585px;
	margin-bottom:0;
	float:right;
}

#works .imgBlock img{
	width:100%;
}

#works .txtBlock{
	color:#fff;
	background-color:#6c6b69;
	padding:0;
	display:flex;
	align-items:center;
}

#works .txtBlock .inner{
	width:540px;
	padding:45px 0px 45px 75px;
}

#works .txtBlock p{
	margin-bottom:0;
}

#works .txtBlock p.quoteTxt{
	font-family: 'Noto Serif JP', serif;
	font-size:14px;
	color:#d2d2d2;
	line-height:2.6em;
	letter-spacing:0.2em;
	margin-bottom:20px;
}

#works .txtBlock h4{
	font-size:18px;
	color:#fff;
	line-height:2em;
	letter-spacing:0.2em;
	margin-bottom:0;
}

#works .txtBlock p.priceTxt{
	font-size:14px;
	line-height:1.6em;
	color:#fff;
	margin-bottom:20px;
}

#works .txtBlock p.txt{
	font-size:14px;
	color:#d2d2d2;
	line-height:1.6em;
	margin-bottom:20px;
}

#works .txtBlock p.btnTxt .btn{
	background-color:#31c591;
	border-radius:3px;
	width:170px;
	text-align:center;
	margin-right:0;
	padding:10px 0;
}

#works .txtBlock p.btnTxt .btn:hover{
	opacity:0.7;
}

#works #works02{
	margin-bottom:100px;
}

#works #works02 h4{
	font-size:16px;
	line-height:2.1em;
	margin-bottom:0;
}

#works #works02 p{
	line-height:2.1em;
}

#works #works02 .img{
	float:right;
	margin:0 38px 0 75px;
}

#contact .half-txt{
	color:#343434;
	font-size:15px;
	line-height:2.4em;
}

#contact .btn-dark-solid{
	background-color:#31c591;
}

#contact .btn-dark-solid:hover{
	opacity:0.7;
}

@media (max-width: 991px) { /* Tablet */

.half-txt{
	width:100%;
}

#works .txtBlock .inner{
	width:750px;
	padding-right: 45px;
	padding-left: 45px;
	margin-right: auto;
	margin-left: auto;
}

#works .imgBlock div.img{
	width:750px;
	padding-right: 45px;
	padding-left: 45px;
	margin-right: auto;
	margin-left: auto;
	float:none;
}

#works .txtBlock p.btnTxt{
	text-align:center;
}

#works #works02 .img{
	float:none;
	margin:0 0 55px;
	text-align:center;
}

}


@media (max-width: 768px) { /* Smartphone */

.logo-brand{
	max-width:70%;
}

.logo-brand img{
	width:100%;
	height:auto;
	object-fit:contain;
}

#works .txtBlock .inner{
	width:auto;
	padding-right: 45px;
	padding-left: 45px;
	margin-right: auto;
	margin-left: auto;
}

#works .imgBlock div.img{
	width:auto;
	padding-right: 45px;
	padding-left: 45px;
	margin-right: auto;
	margin-left: auto;
	float:none;
}

#works .txtBlock p.btnTxt{
	text-align:center;
}

#works #works02 .img{
	float:none;
	margin:0 0 55px;
	width:100%;
	text-align:center;
}

#works #works02 .img img{
	width:100%;
}

}
