@charset "utf-8";
/*--------------------------------------------------
	オリジナル設定
--------------------------------------------------*/
/* 非表示用 */
@media print, screen and (min-width: 641px){ /* PC用 */
	.dsp_sp { display: none; }
	.cen_pc { text-align: center; }
}
@media only screen and (max-width: 640px){ /* スマホ用 */
	.dsp_hp { display: none; }
}
/**/
.bg_wide { position: relative; }
.bg_wide::before,
.bg_wide.bg_after::after {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100vw;
	height: 100%;
	margin-left: calc(((100vw - 100%) / 2) * -1);
	margin-right: calc(((100vw - 100%) / 2) * -1);
	content: "";
	z-index: -1;
}
.box_white,
.bg_white::before {
	background: #FFF;
}
/**/
@media only screen and (max-width: 640px){ /* スマホ用 */
	/* tableにスクロールバーを追加 */
	.tbl_scroll { overflow: auto; margin-bottom: 15px; white-space: nowrap; }
	.tbl_scroll table { margin-bottom: 0; }
	.tbl_scroll::-webkit-scrollbar{ height: 5px; }
	.tbl_scroll::-webkit-scrollbar-track{ background: #F1F1F1; }
	.tbl_scroll::-webkit-scrollbar-thumb { ackground: #BCBCBC; }
}
/**/
.w600, .w800, .w900, .w1000 {
	width: 100%;
	max-width: 600px;
	margin: auto;
}
.w800 { max-width: 800px; }
.w900 { max-width: 900px; }
.w1000 { max-width: 1000px; }
/*--------------------------------------------------
	見出し
--------------------------------------------------*/
.post h2.ttl_h3 {
	position: relative;
	margin: var(--rem20) auto;
	padding: 0 0 .3em 0;
	border-bottom: 2px solid var(--color-font);
	color: var(--color-font);
	font-size: var(--rem24w);
	font-weight: 600;
	font-family: var(--font-family04);
	letter-spacing: .1rem;
	text-align: left;
}
.post h2.ttl_h3::after {
	display: none;
}
/**/
.post h3.noline {
	padding: 0;
	border: none;
}
/*--------------------------------------------------
	分譲住宅
--------------------------------------------------*/
#condos_ex h3 {
	margin-top: var(--px20);
	/* フレックス */
	display: flex;
	align-items: center;
	column-gap: 12px;
}
#condos_ex h3 span {
	display: inline-block;
	padding: 2px 10px;
	background: var(--color-primary);
	color: #fff;
	font-size: var(--rem14);
	line-height: normal;
}
#condos_ex dl {
	margin-top: var(--px30);
	/* フレックス */
	display: flex;
	align-items: flex-start;
	column-gap: 30px;
}
#condos_ex dt {
	width: 20%;
}
#condos_ex dd {
	position: relative;
	width: 80%;
	padding: 20px;
	background: #fff;
	border-radius: 10px;
}
#condos_ex dd::before {
	position: absolute;
	top: 20px;
	left: -19px;
	display: block;
	width: 20px;
	height: 20px;
	background: #fff;
	clip-path: polygon(100% 0, 0 50%, 100% 100%);
	content: "";
}
@media print, screen and (min-width: 641px){ /* PC・タブレット */
	#condos_ex {
		/* フレックス */
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		row-gap: var(--px80);
	}
	#condos_ex .box {
		width: 48%;
	}
}
@media only screen and (max-width: 640px){ /* スマホ */
	#condos_ex .box+.box {
		margin-top: 40px;
	}
}
/**/
#condos_photo {
	/* フレックス */
	display: flex;
	justify-content: center;
/*	justify-content: space-between;*/
}
#condos_photo li {
	width: 48.5%;
}
/*--------------------------------------------------
	注文住宅
--------------------------------------------------*/
#customhomes_system {
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	column-gap: 2%;
	row-gap: var(--px50);
}
#customhomes_system dl {
	width: 23.5%;
}
#customhomes_system dt {
	margin-bottom: var(--px18);
	font-size: var(--rem20w);
	text-align: center;
}
#customhomes_system dt figure {
	display: block;
	margin-bottom: var(--px18);
}
#customhomes_system dd {
	padding: 0;
}
@media only screen and (max-width: 820px) {  /* タブレット以下 */
	#customhomes_system dl {
		width: 32%;
	}
}
@media only screen and (max-width: 640px){ /* スマホ */
	#customhomes_system {
		column-gap: 4%;
	}
	#customhomes_system dl {
		width: 48%;
	}
}
/**/
#customhomes_flow h3 {
	padding: 10px;
	background: var(--color-primary);
	border: none;
	color: #fff;
	text-align: center;
}
#customhomes_flow ul+h3 {
	position: relative;
	margin-top: 80px;
}
#customhomes_flow ul+h3::before {
	position: absolute;
	top: -45px;
	left: 50%;
	border: solid transparent;
	border-width: 22px;
	border-top-color: var(--color-primary-shade);
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	content: "";
}
ul.flowlist02 > li {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	flex-direction: row-reverse;
	gap: min(calc(40px + (1vw - 19.2px) * 1.6181), 40px);
	width: 100%;
	padding: var(--px50);
	background: #FFF;
	position: relative;
}
.flowlist02 > li:not(:last-child) {
	margin-bottom: 60px;
}
.flowlist02 .flow_img {
	width: 35%;
}
.post .flowlist02 > li > dl {
	width: calc(65% - min(calc(40px + (1vw - 19.2px) * 1.6181), 40px));
	line-height: 1.8;
}
.flowlist02 > li:not(:last-child) dl::before {
	position: absolute;
	top: calc(100% + 20px);
	left: 50%;
	border: solid transparent;
	border-width: 22px;
	border-top-color: var(--color-primary-shade);
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	content: "";
}
.post .flowlist02 > li > dl dt {
	position: relative;
	display: flex;
	align-items: center;
	font-size: min(calc(2.4rem + (1vw - 19.2px) * 0.4531), 2.4rem); /* 2.4-1.7rem (1920-375) */
	font-weight: 600;
	padding: 0 0 1rem 0;
	margin-bottom: min(calc(30px + (1vw - 19.2px) * 0.9709), 30px);
	border-bottom: dotted 1px;
}
.flowlist02 > li dl dt .icon {
	line-height: 1;
	color: #fff;
	background: var(--color-primary-shade);
	padding: 8px 10px;
	margin-right: 10px;
	white-space: nowrap;
}
.post .flowlist02 > li > dl dd {
	padding: 0;
}
@media print, screen and (max-width: 768px) {
	.post .flowlist02 > li > dl, .flowlist02 .flow_img {
		width: 100%;
	}
	.flow_img::before {
		padding-top: calc(360px + (1vw - 7.68px) * 35.6234);
	}
}
@media only screen and (max-width: 640px){ /* スマホ */
	ul.flowlist02 > li {
		padding: 20px;
	}
}
/*--------------------------------------------------
	賃貸物件
--------------------------------------------------*/
.forrent_list {
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	column-gap: 2%;
	row-gap: var(--px60);
}
.forrent_list li {
	width: 23.5%;
	line-height: 1.6;
}
.forrent_list .photo {
	margin-bottom: 10px;
	aspect-ratio: 4 / 3;
}
.forrent_list .photo img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	max-width: none;
}
.forrent_list .ttl {
	font-size: var(--rem18);
	font-weight: bold;
}
.forrent_list .btn {
	margin-top: 5px;
	text-align: right;
}
.forrent_list .btn a {
	display: inline-block;
	border-bottom: 1px solid var(--color-primary);
	font-size: var(--rem14);
	transition: all 0.3s ease-in-out;
}
.forrent_list .btn a::after {
	margin-left: 10px;
	font-size: 12px;
	font-weight: 400;
	font-family: 'FontAwesome';
	content: '\f35d';
}
.forrent_list .btn a:hover {
	filter:alpha(opacity=60);
	-moz-opacity: 0.6;
	opacity: 0.6;
}
.forrent_list .btn a+a {
	margin-left: 1em;
}
@media only screen and (max-width: 768px) {  /* タブレット以下 */
	.forrent_list li {
		width: 32%;
	}
}
@media only screen and (max-width: 640px){ /* スマホ */
	.forrent_list {
		column-gap: 4%;
	}
	.forrent_list li {
		width: 48%;
	}
}
/*--------------------------------------------------
	会社概要
--------------------------------------------------*/
#company_policy {
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	column-gap: 50px;
	row-gap: 30px;
}
#company_policy dl {
	width: 260px;
	text-align: center;
}
#company_policy dt {
	margin-bottom: var(--px18);
	padding: var(--px40);
	background: #fff;
	border-radius: 50%;
	/* 縦方向中央揃え */
	display: flex;
	align-items: center;
	justify-content: center;
}
#company_policy dd {
	padding: 0;
}
#company_policy dd b {
	font-size: var(--rem20);
}
@media only screen and (max-width: 640px){ /* スマホ */
	#company_policy {
		column-gap: 5%;
		row-gap: 30px;
	}
	#company_policy dl {
		width: 47.5%;
	}
}
/**/
#company_msg p {
	line-height: 2em;
}
/**/
#zeh_tbl th,
#zeh_tbl td {
	text-align: center;
	vertical-align: middle;
}
#zeh_tbl th {
	width: auto;
}
/**/
.post table.company_tbl th {
	vertical-align: middle;
}
/*--------------------------------------------------
	共通
--------------------------------------------------*/
#sub_link {
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	column-gap: 2%;
	row-gap: 15px;
}
#sub_link li {
	width: 23.5%;
}
#sub_link li,
#sub_link li a {
	display: block;
	line-height: 1;
}
@media only screen and (max-width: 820px) and (min-width: 641px){
	#sub_link li {
		width: 32%;
	}
}
@media only screen and (max-width: 640px){ /* スマホ */
	#sub_link li {
		width: 100%;
	}
}
/**/
.tbl_box {
	border-left: 1px solid var(--color-table-border);
}
.tbl_box dl {
	position: relative;
	margin-bottom: -1px;
	background: #fff;
	border: 1px solid var(--color-table-border);
	border-left: none;
}
.tbl_box dt,
.tbl_box dd {
	padding: 10px;
}
.tbl_box dt {
	background: #ededed;
}
.tbl_box dd {
	width: calc(100% - 200px);
}
@media print, screen and (min-width: 769px){ /* PCのみ */
	.tbl_box {
		/* フレックス */
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.tbl_box dl {
		width: 50%;
		/* フレックス */
		display: flex;
	}
	.tbl_box dt,
	.tbl_box dd {
		padding: 15px;
		/* 縦方向中央揃え */
		display: flex;
		align-items: center;
	}
	.tbl_box dt {
		width: 200px;
		border-right: 1px solid #ccc;
	}
	.tbl_box dd {
		width: calc(100% - 200px);
	}
}
@media only screen and (max-width: 768px) {  /* タブレット以下 */
	.tbl_box dt {
		border-bottom: 1px solid #ccc;
	}
}
/**/
.post ul.archive_list a {
	color: var(--color-font);
	transition: all 0.3s ease-in-out;
}
.post ul.archive_list a:hover {
	filter:alpha(opacity=60);
	-moz-opacity: 0.6;
	opacity: 0.6;
}
.post ul.archive_list li {
	margin-bottom: var(--px60);
}
.post ul.archive_list .photo {
	margin-bottom: 10px;
}
.post ul.archive_list .photo a {
	display: block;
	aspect-ratio: 3 / 2;
}
.post ul.archive_list .photo a img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	max-width: none;
}
.post ul.archive_list .txt p+p {
	margin-top: 10px;
}
.post ul.archive_list .ttl {
	font-size: var(--rem18);
	font-weight: bold;
}
.post ul.archive_list .ttl span {
	display: inline-block;
	margin-right: 10px;
	padding: 3px 8px;
	background: #666;
	color: #ccc;
	font-size: var(--rem12);
	line-height: 1.4;
}
.post ul.archive_list .ttl span.on-sale {
	background: #D4521F;
	color: #fff;
}
.post ul.archive_list .txt_in {
	overflow: hidden;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.post ul.archive_list .btn {
	text-align: right;
}
.post ul.archive_list .btn a {
	display: inline-block;
	border-bottom: 1px solid var(--color-primary);
	font-size: var(--rem14);
	transition: all 0.3s ease-in-out;
}
@media print, screen and (min-width: 641px){ /* PC・タブレット */
	.post ul.archive_list {
		/* フレックス */
		display: flex;
		flex-wrap: wrap;
		column-gap: 3.5%;
	}
	.post ul.archive_list li {
		width: 31%;
	}
}
@media only screen and (max-width: 820px) and (min-width: 641px){
	.post ul.archive_listt {
		column-gap: 4%;
	}
	.post ul.archive_list li {
		width: 48%;
	}
}
/**/
.post ul.archive_list .cat,
#property_detail .cat,
#works_detail .cat {
	font-size: var(--rem14);
	line-height: 1.4;
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.post ul.archive_list .cat span,
#property_detail .cat span,
#works_detail .cat span {
	padding: 4px 10px;
	background: #fff;
	border: 1px solid var(--color-primary);
}
.post ul.archive_list .cat span.cat,
#property_detail .cat span.cat,
#works_detail .cat span.cat {
	background: var(--color-primary);
	color: #fff;
}
/*--------------------------------------------------
	販売中物件
--------------------------------------------------*/
#property_detail h2 {
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}
#property_detail h2 span {
	display: inline-block;
	padding: 5px 10px;
	background: #666;
	color: #ccc;
	font-size: var(--rem12);
	line-height: 1.4;
}
#property_detail h2 span.on-sale {
	background: #D4521F;
	color: #fff;
}
#property_detail h3.sub {
	padding: 0 0 0 15px;
	border: none;
	border-left: 8px solid var(--color-primary);
	font-size: var(--rem20w);
	line-height: 1.4;
}
#property_detail .catchphrase {
	margin-bottom: 10px;
	font-size: var(--rem18);
	font-weight: bold;
}
#property_detail .info p {
	text-indent: -1em;
	padding-left: 1em;
}
#property_detail .info p::before {
	content: "※";
}
#property_detail .map iframe {
	width: 100%;
	vertical-align: bottom;
}
#property_detail table th,
#property_detail table td {
	vertical-align: middle;
}
#property_detail table td.price {
	color: red;
}
/*--------------------------------------------------
	施工事例
--------------------------------------------------*/
/**/
#works_detail .case dl {
	padding: 20px;
	background: #fff;
}
#works_detail .case dt {
	margin-bottom: 10px;
}
#works_detail .case dd {
	font-weight: bold;
	text-align: center;
	/* フレックス */
	display: flex;
	justify-content: space-between;
}
#works_detail .case dd figure {
	position: relative;
	width: calc(50% - 20px);
	aspect-ratio: 4 / 3;
}
#works_detail .case dd figure:first-child::after {
	position: absolute;
	top: 50%;
	right: -28px;
	display: block;
	width: 16px;
	height: 20px;
	background: var(--color-primary);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	content: "";
}
#works_detail .case dd figure img {
	object-fit: contain;
	width: 100%;
	height: 100%;
	max-width: none;
}
@media print, screen and (min-width: 641px){ /* PC・タブレット */
	#works_detail .case {
		/* フレックス */
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		row-gap: 30px;
	}
	#works_detail .case dl {
		width: 48.5%;
	}
}
@media only screen and (max-width: 640px){ /* スマホ */
	#works_detail .case dl {
		padding: 15px;
	}
	#works_detail .case dl+dl {
		margin-top: 20px;
	}
}
/**/
#photo_main {
	margin-bottom: var(--px20);
	background: #fff;
	text-align: center;
	aspect-ratio: 2 / 1;
}
#photo_main img {
	object-fit: contain;
	width: 100%;
	height: 100%;
	max-width: none;
}
#photo_thumb {
	/* フレックス */
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
#photo_thumb li {
	width: calc((100% / 5) - (10px * 4 / 5));
}