.real-estate-page {
	--color-gold: #2f766b;
	--color-gold-dark: #1c5a52;
	--color-orange: #a7b866;
	--color-blue: #2f766b;
	--color-line: #d3e3dc;
	--color-paper: #eef6f1;
	--color-paper-2: #f8fbf7;
}

.real-estate-point-card,
.real-estate-merit-card {
	min-height: 100%;
}

.real-estate-check .section__head .custom-home-text {
	margin-top: 12px;
}

.real-estate-page .real-estate-check .custom-home-card-grid,
.real-estate-page .real-estate-conditional__grid {
	display: grid;
	gap: clamp(16px, 2.2vw, 24px);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.real-estate-point-card {
	position: relative;
	overflow: hidden;
	min-height: 100%;
	padding: clamp(22px, 2.8vw, 30px);
	border: 1px solid rgba(47, 118, 107, 0.16);
	border-radius: 18px;
	background:
		radial-gradient(circle at 0 0, rgba(47, 118, 107, 0.14), transparent 36%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(244, 250, 247, 0.9)),
		#fff;
	box-shadow: 0 20px 46px rgba(31, 90, 82, 0.075);
	transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.real-estate-point-card::after {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 4px;
	background: linear-gradient(90deg, #2f766b, rgba(167, 184, 102, 0.58), transparent);
	content: "";
}

.real-estate-point-card:hover,
.real-estate-point-card:focus-within {
	border-color: rgba(47, 118, 107, 0.32);
	box-shadow: 0 26px 58px rgba(31, 90, 82, 0.12);
	transform: translateY(-3px);
}

.real-estate-point-card h3 {
	display: flex;
	gap: 12px;
	align-items: center;
	min-height: 32px;
	margin: 0 0 14px;
	color: #0f332e;
	font-size: clamp(1.08rem, 1.6vw, 1.28rem);
	line-height: 1.35;
}

.real-estate-point-card__icon {
	position: relative;
	display: grid;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	place-items: center;
	margin: 0;
	border: 1px solid rgba(47, 118, 107, 0.16);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.74);
	color: #2f766b;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.real-estate-point-card__icon--route {
	color: #2f766b;
}

.real-estate-point-card__icon--plug {
	color: #3b6f9f;
}

.real-estate-point-card__icon--stairs {
	color: #7b6a36;
}

.real-estate-point-card__icon--map {
	color: #4f7f45;
}

.real-estate-point-card__icon--scale {
	color: #506578;
}

.real-estate-point-card__icon--alert {
	color: #a46a32;
}

.real-estate-point-card__icon img {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 23px;
	height: 23px;
	object-fit: contain;
	object-position: center;
	opacity: 0.92;
	transform: translate(-50%, -50%);
	transform-origin: center;
}

.real-estate-point-card__icon--route img {
	filter: brightness(0) saturate(100%) invert(37%) sepia(35%) saturate(713%) hue-rotate(124deg) brightness(88%) contrast(89%);
	transform: translate(-50%, -50%) scale(0.94);
}

.real-estate-point-card__icon--plug img {
	filter: brightness(0) saturate(100%) invert(41%) sepia(17%) saturate(1517%) hue-rotate(166deg) brightness(89%) contrast(88%);
	transform: translate(-50%, -50%) scale(0.9);
}

.real-estate-point-card__icon--stairs img {
	filter: brightness(0) saturate(100%) invert(40%) sepia(18%) saturate(1040%) hue-rotate(15deg) brightness(92%) contrast(86%);
	transform: translate(-50%, -50%) scale(0.92);
}

.real-estate-point-card__icon--map img {
	filter: brightness(0) saturate(100%) invert(42%) sepia(18%) saturate(1061%) hue-rotate(64deg) brightness(89%) contrast(89%);
	transform: translate(-50%, -50%) scale(0.92);
}

.real-estate-point-card__icon--scale img {
	filter: brightness(0) saturate(100%) invert(39%) sepia(13%) saturate(773%) hue-rotate(164deg) brightness(91%) contrast(86%);
	transform: translate(-50%, -50%) scale(0.9);
}

.real-estate-point-card__icon--alert img {
	filter: brightness(0) saturate(100%) invert(44%) sepia(38%) saturate(647%) hue-rotate(349deg) brightness(90%) contrast(87%);
	transform: translate(-50%, -50%) scale(0.9);
}

.real-estate-point-card__icon::before,
.real-estate-point-card__icon::after {
	display: none;
}

.real-estate-point-card p {
	margin: 0;
	color: #38564f;
	font-size: clamp(0.94rem, 1.25vw, 1.02rem);
	line-height: 1.9;
}

.real-estate-point-card__icon--road::before {
	inset: 9px 10px;
	border-top: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: skewX(-14deg);
}

.real-estate-point-card__icon--road::after {
	top: 17px;
	left: 13px;
	width: 10px;
	border-top: 2px solid currentColor;
}

.real-estate-point-card__icon--utility::before {
	left: 11px;
	top: 8px;
	width: 14px;
	height: 20px;
	border: 2px solid currentColor;
	border-radius: 7px 7px 4px 4px;
}

.real-estate-point-card__icon--utility::after {
	left: 15px;
	bottom: 7px;
	width: 6px;
	height: 8px;
	border-left: 2px solid currentColor;
	border-right: 2px solid currentColor;
}

.real-estate-point-card__icon--level::before {
	left: 8px;
	bottom: 9px;
	width: 20px;
	height: 14px;
	border-left: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
}

.real-estate-point-card__icon--level::after {
	left: 15px;
	top: 10px;
	width: 12px;
	height: 12px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
}

.real-estate-point-card__icon--site::before {
	inset: 9px;
	border: 2px solid currentColor;
	border-radius: 3px;
}

.real-estate-point-card__icon--site::after {
	left: 14px;
	top: 14px;
	width: 8px;
	height: 8px;
	background: currentColor;
	border-radius: 2px;
}

.real-estate-point-card__icon--document::before {
	left: 10px;
	top: 7px;
	width: 16px;
	height: 21px;
	border: 2px solid currentColor;
	border-radius: 3px;
}

.real-estate-point-card__icon--document::after {
	left: 14px;
	top: 14px;
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
}

.real-estate-point-card__icon--risk::before {
	left: 10px;
	top: 8px;
	width: 0;
	height: 0;
	border-right: 8px solid transparent;
	border-bottom: 18px solid currentColor;
	border-left: 8px solid transparent;
}

.real-estate-point-card__icon--risk::after {
	left: 17px;
	top: 15px;
	width: 2px;
	height: 8px;
	background: #fff;
	box-shadow: 0 10px 0 #fff;
}

.real-estate-point-card__icon::before,
.real-estate-point-card__icon::after {
	display: none;
	content: none;
}

.real-estate-cost-list {
	display: grid;
	gap: 10px;
	margin: clamp(24px, 4vw, 36px) 0 0;
	padding: 0;
	list-style: none;
}

.real-estate-planning .custom-home-split {
	align-items: center;
}

.real-estate-planning .custom-home-text {
	max-width: 680px;
	color: #38564f;
	font-size: clamp(1rem, 1.35vw, 1.08rem);
	line-height: 1.72;
}

.real-estate-planning .custom-home-text p {
	margin: 0;
}

.real-estate-planning .custom-home-text p + p {
	margin-top: 0;
}

.real-estate-cost-compare {
	display: grid;
	gap: clamp(12px, 2.2vw, 18px);
	width: min(100%, 1040px);
	margin: clamp(22px, 4vw, 38px) auto 0;
}

.real-estate-cost-compare__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 3vw, 24px);
}

.real-estate-cost-card {
	position: relative;
	overflow: hidden;
	padding: clamp(14px, 2vw, 20px);
	border: 1px solid rgba(47, 118, 107, 0.18);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 18px 42px rgba(31, 90, 82, 0.08);
}

.real-estate-cost-card::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 5px;
	content: "";
}

.real-estate-cost-card--caution::before {
	background: #a46a32;
}

.real-estate-cost-card--safe::before {
	background: #2f766b;
}

.real-estate-cost-card__label {
	width: fit-content;
	margin: 0 0 7px;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 900;
	line-height: 1;
}

.real-estate-cost-card--caution .real-estate-cost-card__label {
	background: #f6eee7;
	color: #8a5524;
}

.real-estate-cost-card--safe .real-estate-cost-card__label {
	background: #eaf5f1;
	color: #1f5f55;
}

.real-estate-cost-card h3 {
	margin: 0 0 clamp(10px, 1.4vw, 13px);
	color: #102f2a;
	font-size: clamp(1rem, 1.45vw, 1.16rem);
	line-height: 1.45;
}

.real-estate-cost-card dl {
	display: grid;
	gap: 0;
	margin: 0;
}

.real-estate-cost-card dl div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 6px 0;
	border-top: 1px solid rgba(47, 118, 107, 0.13);
}

.real-estate-cost-card__land-price {
	align-items: center;
	margin: 0 0 2px;
	padding: 8px 10px;
	border: 1px solid rgba(47, 118, 107, 0.16);
	border-radius: 10px;
	background: rgba(238, 246, 241, 0.74);
}

.real-estate-cost-card__land-price dt,
.real-estate-cost-card__land-price dd {
	color: #102f2a;
	font-weight: 900;
}

.real-estate-cost-card__land-price dd {
	font-size: clamp(1.1rem, 1.8vw, 1.32rem);
	line-height: 1.2;
}

.real-estate-cost-card dt,
.real-estate-cost-card dd {
	margin: 0;
}

.real-estate-cost-card dt {
	color: #52675f;
	font-weight: 800;
}

.real-estate-cost-card dd {
	color: #102f2a;
	font-weight: 900;
	white-space: nowrap;
}

.real-estate-cost-card__total {
	display: grid;
	gap: 4px;
	margin-top: clamp(9px, 1.6vw, 12px);
	padding-top: clamp(9px, 1.6vw, 12px);
	border-top: 2px solid rgba(47, 118, 107, 0.18);
}

.real-estate-cost-card__total span {
	color: #52675f;
	font-size: 0.86rem;
	font-weight: 900;
}

.real-estate-cost-card__total strong {
	color: #102f2a;
	font-size: clamp(1.48rem, 2.6vw, 2.05rem);
	line-height: 1.1;
	white-space: nowrap;
}

.real-estate-cost-card--caution .real-estate-cost-card__total strong {
	color: #8a5524;
}

.real-estate-cost-card--safe .real-estate-cost-card__total strong {
	color: #1f5f55;
}

.real-estate-cost-compare__result {
	padding: clamp(16px, 2.5vw, 22px);
	border: 1px solid rgba(47, 118, 107, 0.2);
	border-radius: 14px;
	background:
		linear-gradient(135deg, rgba(47, 118, 107, 0.08), rgba(255, 255, 255, 0) 48%),
		#fff;
	color: #102f2a;
	font-weight: 850;
	line-height: 1.75;
}

.real-estate-cost-compare__result p,
.real-estate-cost-compare__note {
	margin: 0;
}

.real-estate-cost-compare__result p + p {
	margin-top: 6px;
}

.real-estate-cost-compare__note {
	color: #60746c;
	font-size: 0.9rem;
	line-height: 1.7;
}

.real-estate-cost-list li {
	position: relative;
	padding: 18px 18px 18px 46px;
	border: 1px solid rgba(47, 118, 107, 0.2);
	border-radius: 14px;
	background: var(--color-white);
	color: var(--color-ink);
	font-weight: 900;
	box-shadow: 0 8px 20px rgba(31, 90, 82, 0.05);
}

.real-estate-cost-list li::before {
	position: absolute;
	top: 50%;
	left: 18px;
	width: 14px;
	height: 14px;
	border: 3px solid var(--color-blue);
	border-radius: 999px;
	content: "";
	transform: translateY(-50%);
}

@media (max-width: 759px) {
	.real-estate-cost-compare__cards {
		grid-template-columns: 1fr;
	}

	.real-estate-cost-card dl div {
		align-items: baseline;
	}
}

.real-estate-flow__list {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.real-estate-flow__list li {
	display: grid;
	gap: 14px;
	align-content: start;
	min-height: 178px;
	padding: 14px;
	border: 1px solid var(--color-line);
	border-radius: 14px;
	background: var(--color-white);
	color: var(--color-ink);
	box-shadow: 0 8px 18px rgba(31, 90, 82, 0.05);
	font-weight: 900;
}

.real-estate-flow__list li::before {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 10px;
	background:
		linear-gradient(135deg, rgba(47, 118, 107, 0.14), rgba(167, 184, 102, 0.08) 55%, rgba(255, 255, 255, 0) 78%),
		url("http://staging.asanokensetsu.co.jp/wp-content/uploads/2026/05/1_1.png") center / cover;
	content: "";
}

.real-estate-flow__list li span,
.real-estate-flow__list li {
	color: var(--color-ink);
	font-size: clamp(0.9rem, 1.18vw, 1rem);
	line-height: 1.35;
	white-space: nowrap;
}

.real-estate-conditional-card {
	position: relative;
	display: grid;
	gap: 14px;
	min-height: 100%;
	padding: clamp(22px, 2.8vw, 30px);
	overflow: hidden;
	border: 1px solid rgba(47, 118, 107, 0.16);
	border-radius: 18px;
	background:
		radial-gradient(circle at 100% 0, rgba(167, 184, 102, 0.16), transparent 34%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(244, 250, 247, 0.92));
	box-shadow: 0 20px 46px rgba(31, 90, 82, 0.075);
	transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.real-estate-conditional-card:hover,
.real-estate-conditional-card:focus-within {
	border-color: rgba(47, 118, 107, 0.32);
	box-shadow: 0 26px 58px rgba(31, 90, 82, 0.12);
	transform: translateY(-3px);
}

.real-estate-conditional-card h3 {
	display: flex;
	gap: 10px;
	align-items: center;
	margin-bottom: 0;
	color: #0f332e;
	font-size: clamp(1.08rem, 1.6vw, 1.28rem);
	line-height: 1.4;
}

.real-estate-conditional-card h3::before {
	display: grid;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: 14px;
	background-color: #2f766b;
	-webkit-mask: var(--real-estate-conditional-icon, url("../../icons/real-estate-users.svg")) center / contain no-repeat;
	mask: var(--real-estate-conditional-icon, url("../../icons/real-estate-users.svg")) center / contain no-repeat;
	content: "";
}

.real-estate-conditional-card span {
	display: none;
}

.real-estate-conditional-card:nth-child(1) h3::before {
	--real-estate-conditional-icon: url("../../icons/real-estate-users.svg");
	background: #2f766b;
}

.real-estate-conditional-card:nth-child(2) h3::before {
	--real-estate-conditional-icon: url("../../icons/real-estate-discount.svg");
	background: #b67a2f;
}

.real-estate-conditional-card:nth-child(3) h3::before {
	--real-estate-conditional-icon: url("../../icons/real-estate-home-dollar.svg");
	background: #1f6f91;
}

.real-estate-conditional-card:nth-child(4) h3::before {
	--real-estate-conditional-icon: url("../../icons/real-estate-message-check.svg");
	background: #586f9c;
}

.real-estate-conditional-card:nth-child(5) h3::before {
	--real-estate-conditional-icon: url("../../icons/real-estate-shield-check.svg");
	background: #3a7f58;
}

.real-estate-conditional-card:nth-child(6) h3::before {
	--real-estate-conditional-icon: url("../../icons/real-estate-receipt.svg");
	background: #92703a;
}

.real-estate-conditional-card p {
	color: #38564f;
	font-size: 0.96rem;
	line-height: 1.85;
}

.real-estate-caution {
	border-top: 1px solid rgba(47, 118, 107, 0.12);
	border-bottom: 1px solid rgba(47, 118, 107, 0.12);
}

.real-estate-conditional .section__head {
	max-width: 920px;
}

.real-estate-conditional .section__head .custom-home-text {
	margin-top: 18px;
}

.real-estate-conditional__grid {
	margin-top: clamp(24px, 4vw, 38px);
}


.real-estate-conditional__notes {
	display: grid;
	gap: 8px;
	margin-top: clamp(20px, 3vw, 28px);
	padding: clamp(16px, 3vw, 22px);
	border: 1px solid rgba(47, 118, 107, 0.16);
	border-radius: 14px;
	background: var(--color-paper);
	color: #52675f;
	font-size: 0.9rem;
	line-height: 1.75;
}

.real-estate-conditional__notes p {
	margin: 0;
}

.real-estate-page .service-final-cta {
	border-color: rgba(47, 118, 107, 0.22);
	background:
		linear-gradient(135deg, rgba(47, 118, 107, 0.16), rgba(255, 255, 255, 0) 48%),
		linear-gradient(180deg, #fff, #eef6f1);
	box-shadow: 0 24px 58px rgba(31, 90, 82, 0.12);
}

.real-estate-page .service-final-cta .button {
	min-height: 52px;
	padding-inline: 24px;
	font-size: 1rem;
	font-weight: 900;
	box-shadow: 0 14px 30px rgba(31, 90, 82, 0.14);
}

.real-estate-consult .custom-home-faq {
	gap: 12px;
}

.real-estate-consult .custom-home-faq details {
	border-color: rgba(47, 118, 107, 0.18);
	box-shadow: 0 10px 26px rgba(31, 90, 82, 0.045);
}

.real-estate-consult .custom-home-faq details[open] {
	border-color: rgba(47, 118, 107, 0.34);
	background:
		linear-gradient(135deg, rgba(47, 118, 107, 0.075), rgba(255, 255, 255, 0) 46%),
		#fff;
	box-shadow: 0 18px 42px rgba(31, 90, 82, 0.08);
}

.real-estate-consult .custom-home-faq summary {
	color: #102f2a;
	font-weight: 900;
	line-height: 1.65;
}

.real-estate-consult .custom-home-faq__content {
	color: #38564f;
	font-size: 1rem;
	line-height: 1.9;
}

@media (max-width: 980px) {
	.real-estate-page .real-estate-check .custom-home-card-grid,
	.real-estate-page .real-estate-conditional__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.real-estate-page .real-estate-check .custom-home-card-grid,
	.real-estate-page .real-estate-conditional__grid {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 981px) {
	.real-estate-page .real-estate-check .custom-home-card-grid,
	.real-estate-page .real-estate-conditional__grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
