		.mainvisual {
			margin-top: 90px;
		}

		#image_list {
			width: 100%;
			margin: 20px 0 40px 0;
		}

		#image_list ul {
			display: flex;
			width: 100%;
			gap: 15px;
		}

		#image_list ul li {
			width: calc(100% / 4 - 11px);
			position: relative;
		}

		#image_list li span {
			position: absolute;
			right: 7px;
			bottom: 4px;
			color: #fff;
			font-size: 9px;
			line-height: 1;
			font-weight: 400;
		}

		#image_list li:nth-child(2) span {
			color: #000;
		}

		.main_section {
			display: block;
			padding: 0 0 10px 0;
		}

		.kukaku {
			padding: 0 15px;
		}

		.houi {
			display: block;
			padding-top: 5px;
			text-align: right;
		}

		:root {
			--lime: #c8d400;
			--red: #e60012;
			--orange: #e8710a;
			--teal: #008ba3;
			--gray: #8c8c8c;
			--ink: #231815;
			--line: #b5b5b5;
		}

		* {
			box-sizing: border-box
		}

		body {
			margin: 0;
			line-height: 1.6
		}

		img {
			display: block;
			max-width: 100%;
			height: auto
		}

		h3 {
			text-align: left;
			color: #fff;
			border: none;
		}

		/* ========== 価格表 ========== */
		.price-sec {
			/* padding: 40px 16px 70px */
			padding: 0 16px 70px;
			margin-top: -30px;
		}

		.price-inner {
			max-width: 1200px;
			margin: 0 auto
		}

		.price-ttl {
			margin: 0 0 28px;
			font-size: 2rem;
			font-weight: 700;
			letter-spacing: .04em;
			font-family: 'Noto Sans JP', sans-serif !important;
		}

		.price-tables {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			/* ← 1fr を minmax(0,1fr) に */
			gap: 16px;
			align-items: start;
		}

		.pt {
			width: 100%;
			table-layout: fixed;
			/* ← 列幅を固定して中身で広がらないように */
			border-collapse: collapse;
			border: 1px solid var(--line);
			font-size: .8rem;
		}

		.pt thead th:nth-child(1) {
			width: 14%;
			text-align: center;
		}

		.pt thead th:nth-child(2) {
			width: 52%;
			text-align: center;
		}

		.pt thead th:nth-child(3) {
			width: 34%;
			text-align: center;
		}

		.pt thead th {
			background: #efefef;
			border: 1px solid var(--line);
			padding: 8px 4px;
			font-weight: 500;
			font-size: .95rem;
		}

		.pt tbody th,
		.pt tbody td {
			padding: 0 6px;
			height: 35.5px;
			line-height: 1.2;
			border-bottom: 1px solid var(--line);
		}

		.pt tbody th {
			background: var(--lime);
			width: 14%;
			font-size: 1.5rem;
			font-weight: 400;
			text-align: center;
			border-right: 1px solid var(--line);
		}

		.pt tbody td {
			text-align: center !important;
		}

		.pt .area {
			font-size: 1.25rem;
			/* 1.45rem → 1.25rem */
			white-space: nowrap;
			padding-left: 8px;
			border-right: 1px solid var(--line);
		}

		.pt .area small {
			font-size: .72rem;
			margin-left: 1px
		}

		.pt .cost {
			font-size: 1.2rem;
			/* 1.5rem → 1.3rem */
			color: var(--red);
			white-space: nowrap;
			text-align: right;
		}

		.pt .cost small {
			font-size: .8rem
		}

		.price-note {
			margin: 36px 0 0;
			font-size: .75rem;
			line-height: 1.75
		}

		.price-note p {
			margin: 0
		}

		.price-note .indent {
			padding-left: 1em
		}

		/* ========== 2×4工法 ========== */
		.feat-sec {
			background: var(--teal);
			padding: 86px 16px 60px;
			color: #fff;
			margin-bottom: 80px;
		}

		.feat-inner {
			max-width: 1200px;
			margin: 0 auto
		}

		.quake {
			position: relative;
			background: #fff;
			color: var(--ink);
			min-height: 354px;
			padding: 20px 24px 24px 34px;
			display: flex;
			gap: 10px
		}

		.quake-body {
			flex: 0 0 55%;
			position: relative
		}

		.badge-family {
			position: absolute;
			left: -58px;
			top: -4px;
			z-index: 2;
			width: 146px;
			height: 146px;
			border-radius: 50%;
			background: var(--gray);
			color: #fff;
			font-size: 2.1rem;
			line-height: 1.15;
			display: flex;
			align-items: center;
			justify-content: center;
			text-align: center;
			margin: 0
		}

		.quake-ttl {
			margin: 0 0 0 118px;
			font-weight: 700;
			line-height: 1.2;
			text-align: left;
		}

		.quake-ttl .l1 {
			display: block;
			font-size: 3.2rem;
			color: var(--orange);
			letter-spacing: .04em
		}

		.quake-ttl .l2 {
			display: block;
			font-size: 3rem;
			font-weight: 500;
			letter-spacing: .03em
		}

		.quake-lead {
			margin: 16px 0 0;
			padding-top: 16px;
			border-top: 1px solid #ccc;
			font-size: 1.15rem;
			line-height: 1.75
		}

		.quake-lead .em {
			color: var(--orange);
			font-weight: 700
		}

		.quake-icons {
			position: absolute;
			right: -8px;
			top: 0;
			width: 170px;
		}

		.quake-icons img {
			width: 100%;
			height: auto;
		}

		.quake-icons .i1 {
			left: 50px;
			top: 0
		}

		.quake-icons .i2 {
			left: 0;
			top: 100px
		}

		.quake-icons .i3 {
			left: 112px;
			top: 100px
		}

		.quake-fig {
			flex: 1;
			display: flex;
			align-items: center;
			justify-content: center
		}

		.quake-fig img {
			width: 100%;
			max-width: 470px
		}

		.appeal_h2 {
			display: block;
			padding: 15px;
			font-size: 2rem;
			color: #000;
			text-align: center;
			background: #e6e6e6;
			margin-bottom: 20px;
			line-height: 1;
			font-family: 'Noto Sans JP', sans-serif !important;
		}

		.appeal-ttl {
			margin: 44px 0 28px;
			font-size: 1.6rem;
			font-weight: 500;
			letter-spacing: .02em;
			color: #000;
			border-left: none;
		}

		.appeal {
			display: grid;
			grid-template-columns: 1fr 1fr 1fr;
			gap: 0;
			align-items: start
		}

		.ap {
			display: flex;
			gap: 18px;
			padding: 0 20px;
			border-left: 1px dotted rgba(255, 255, 255, .7)
		}

		.ap:first-child {
			padding-left: 0;
			border-left: 0
		}

		.ap-img {
			flex: 0 0 190px
		}

		.ap-img.sm {
			flex-basis: 210px
		}

		.ap-body h3 {
			margin: 0 0 12px;
			padding-left: 0;
			font-size: 1.25rem;
			font-weight: 500;
			line-height: 1.3;
			color: #000;
			border: none;
		}

		.ap.dryer h3 {
			font-size: 1.25rem;
			padding-left: 0;
			font-weight: 500;
			line-height: 1.3;
			color: #000;
		}

		.ap-body p {
			margin: 0;
			font-size: 16px;
			line-height: 1.75
		}

		/* ZEH : 画像が左、テキストが右 */
		.ap.zeh {
			flex-direction: row
		}

		.ap-img img {
			width: 100%;
		}

		/* 床暖房 */


		/* 乾太くん : タイトルが上でテキストと画像が下 */
		.ap.dryer {
			flex-direction: column;
			gap: 0
		}

		.ap.dryer p {
			margin: 0;
			font-size: 16px;
			line-height: 1.75;
		}

		.ap.dryer h3 {
			margin-bottom: 10px
		}

		.ap.dryer .row {
			display: flex;
			gap: 18px;
			align-items: flex-start
		}

		.ap.dryer .row img {
			flex: 0 0 150px
		}

		/* ========== SP ========== */
		@media screen and (max-width:760px) {

			#image_list ul {
				flex-wrap: wrap;
				padding: 0 15px;
			}

			#image_list ul li {
				width: calc(100% / 2 - 8px);
			}

			.price-tables {
				grid-template-columns: minmax(0, 1fr);
			}

			.price-ttl {
				font-size: 1.4rem !important;
			}

			.pt .cost {
				font-size: 1.2rem !important;
			}


			.quake {
				flex-direction: column;
				padding: 20px 16px 20px;
			}

			.quake-body {
				flex: none
			}

			.badge-family {
				position: static;
				width: 70px;
				height: 70px;
				font-size: 1.1rem;
				text-align: center;
				margin: 0 auto;
			}

			.quake-ttl {
				text-align: center;
				margin: 0;
			}

			.quake-ttl .l1 {
				font-size: 2rem
			}

			.quake-ttl .l2 {
				font-size: 1.8rem
			}

			.quake-icons {
				position: static;
				width: auto;
				margin: 12px auto 0;
			}

			.ap-img img {
				display: block;
				margin: 0 auto;
				width: auto;
				height: 280px;
			}

			.quake-icons img {
				display: block;
				margin: 0 auto;
				width: auto;
				height: 280px;
				position: static;
			}

			.ap.dryer .row img {
				display: block;
				margin: 0 auto;
				width: auto;
				height: 280px;
				flex: initial !important;
			}

			.appeal {
				grid-template-columns: 1fr;
				gap: 24px
			}

			.ap {
				border-left: 0;
				padding: 0
			}

			.appeal_h2 {
				font-size: 1.6rem;
			}

			.appeal-ttl {
				font-size: 1.3rem;
			}

			.quake-lead {
				font-size: 16px;
			}

			/* ----- マップ ----- */
			.area-map {
				display: grid;
				grid-template-columns: none !important;
				gap: 24px;
				align-items: start
			}

			.area-photos {
				display: flex !important;
				flex-wrap: wrap;
			}

			.area-photos li {
				width: calc(100% / 2 - 8px) !important;
			}

			.area-photos li:nth-child(even) {
				margin-right: 0;
			}


			/* 物件概要 */
			.overview table th {
				width: 35% !important;
				font-size: 13px !important;
			}

			.overview table td {
				width: 65% !important;
				font-size: 13px !important;
			}


			.plan__madori_area {
				padding: 10px 10px 20px 10px !important;
			}

			.plan__compass {
				bottom: 0 !important;
			}

		}





		/* ========== プラン一覧 ========== */
		.plans-sec {
			padding: 50px 16px 20px;
		}

		.plans-inner {
			max-width: 1200px;
			margin: 0 auto;
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 20px
		}

		.plans-col {
			display: flex;
			flex-direction: column;
			gap: 40px
		}

		.plans-ttl {
			margin: 0;
			padding: 12px 8px;
			background: #e6e6e6;
			text-align: center;
			font-weight: 500;
			/* font-size: 1.25rem; */
			font-size: 1.4rem;
			line-height: 1.3;
			letter-spacing: .02em;
			font-family: 'Noto Sans JP', sans-serif !important;
		}

		.plans-ttl small {
			font-size: .8em;
			margin-right: .2em
		}

		/* ----- カード（Aタイプがベース） ----- */
		.plan {
			--head-img: none;
			--head-color: #3a3a3a;
			--bg-img: none;
			--bg-color: #dce8f7;
			background: var(--bg-img) center top/cover no-repeat, var(--bg-color);
			min-height: 1030px;
			height: 100%;
			display: flex;
			flex-direction: column;
		}

		/* タイプ別の背景（画像パスは差し替え） */
		.plan--a {
			--head-img: url(images/plan-a-head.jpg);
			--head-color: #3d3d40;
			--bg-img: url(images/plan-a-bg.jpg);
			--bg-color: #dfeaf8
		}

		.plan--b {
			--head-img: url(images/plan-b-head.jpg);
			--head-color: #3c4a3a;
			--bg-img: url(images/plan-b-bg.jpg);
			--bg-color: #ecf4d9
		}

		.plan--c {
			--head-img: url(images/plan-c-head.jpg);
			--head-color: #4a4258;
			--bg-img: url(images/plan-c-bg.jpg);
			--bg-color: #f3ebf4
		}

		.plan--d {
			--head-img: url(images/plan-d-head.jpg);
			--head-color: #5a4632;
			--bg-img: url(images/plan-d-bg.jpg);
			--bg-color: #feecd2
		}

		.plan--e {
			--head-img: url(images/plan-e-head.jpg);
			--head-color: #3f4f3a;
			--bg-img: url(images/plan-e-bg.jpg);
			--bg-color: #eae4d1
		}

		.plan--f {
			--head-img: url(images/plan-f-head.jpg);
			--head-color: #5a4632;
			--bg-img: url(images/plan-f-bg.jpg);
			--bg-color: #f9f5d5
		}

		/* ヘッダー帯 */
		.plan__head {
			position: relative;
			color: #fff;
			padding: 14px 18px 10px;
			background: linear-gradient(rgba(0, 0, 0, .35), rgba(0, 0, 0, .35)), var(--head-img) center/cover no-repeat, var(--head-color);
		}

		.plan--a .plan__head {
			background: url("images/atype_header.png") no-repeat;
			background-size: cover;
		}

		.plan--b .plan__head {
			background: url("images/btype_header.png") no-repeat;
			background-size: cover;
		}

		.plan--c .plan__head {
			background: url("images/ctype_header.png") no-repeat;
			background-size: cover;
		}

		.plan--d .plan__head {
			background: url("images/dtype_header.png") no-repeat;
			background-size: cover;
		}

		.plan--e .plan__head {
			background: url("images/etype_header.png") no-repeat;
			background-size: cover;
		}

		.plan--f .plan__head {
			background: url("images/ftype_header.png") no-repeat;
			background-size: cover;
		}



		.plan__builder {
			position: absolute;
			right: 10px;
			top: 6px;
			margin: 0;
			font-size: 13px;
			line-height: 1.2;
		}

		.plan__row1 {
			display: flex;
			align-items: center;
			gap: 14px
		}

		.plan__logo {
			flex: 0 0 auto;
			width: 70px
		}

		.plan__logo img {
			width: 100%
		}

		.plan__type {
			margin: 0;
			font-size: 1.3rem;
			font-weight: 700;
			line-height: 1;
			white-space: nowrap;
		}

		.plan__type small {
			display: block;
			margin-top: 2px;
			font-size: .5rem;
			font-weight: 400
		}

		.plan__badge {
			margin: 0;
			padding: 3px 10px;
			background: rgba(255, 255, 255, .88);
			color: var(--ink);
			font-size: 1rem;
			font-weight: 700;
			line-height: 1.3
		}

		.plan__badge b {
			font-size: 1rem;
			font-weight: 700;
			margin-right: 1px
		}

		span.image {
			position: absolute;
			bottom: 4px;
			right: 7px;
			color: #fff;
			font-size: 11px;
			font-weight: 400;
			line-height: 1;
		}

		.plan__price {
			/* margin: 6px 0 0; */
			margin: 0;
			display: flex;
			flex-wrap: wrap;
			align-items: baseline;
			font-size: .85rem;
			font-weight: 700;
			line-height: 1.3
		}

		.plan__price .toti {
			font-size: .95rem;
		}

		.plan__price .n {
			font-size: 1.3rem;
			letter-spacing: .02em;
			margin: 0 2px
		}

		.plan__price .n.s {
			font-size: 1.2rem;
		}

		.plan__price .op {
			margin: 0 4px;
			font-size: 1rem
		}

		/* 本文 */
		.plan__body {
			position: relative;
			padding: 20px 20px 0;
			/* flex: 1; */
			display: flex;
			flex-direction: column
		}

		.plan__lead {
			margin: 0;
			font-size: 1rem;
			font-weight: 500;
			line-height: 1.6;
		}

		.california_lead {
			padding-right: 110px;
		}

		.plan__style {
			position: absolute;
			right: 20px;
			top: 20px;
			width: 100px
		}

		.plan__photo {
			margin: 20px auto 0 auto;
			width: 100%;
			/* margin-bottom: 30px; */
			position: relative;
		}

		.plan__photo img {
			width: 100%;
		}

		.plan__photo span {
			font-size: 8.5px;
			color: #fff;
			font-weight: bold;
			position: absolute;
			bottom: 10px;
			right: 10px;
			line-height: 1;
		}

		.plan__madori {
			position: relative;
			margin: 30px auto 0;
			width: 92%;
			display: flex;
			gap: 12px;
			align-items: flex-start
		}

		.plan__madori_area {
			padding: 0 20px;
		}

		.plan--d .plan__madori_area,
		.plan--e .plan__madori_area,
		.plan--f .plan__madori_area {
			padding: 20px 5px;
		}

		.plan--d .plan__madori,
		.plan--e .plan__madori,
		.plan--f .plan__madori {
			width: 100%;
			padding-top: 10px;
		}


		.plan__madori img:first-child {
			flex: 1;
			min-width: 0
		}

		.plan__madori img.sub {
			flex: 0 0 26%;
			width: 26%
		}

		.plan__compass {
			position: absolute;
			right: 6px;
			/* top: -28px; */
			bottom: -35px;
			width: 24px
		}

		.plan--a .plan__compass,
		.plan--b .plan__compass,
		.plan--c .plan__compass {
			bottom: 0;
		}


		.plan__area {
			margin: auto 0 0;
			padding-top: 14px;
			width: 92%;
			margin-left: auto;
			margin-right: auto;
			font-size: .8rem;
			font-weight: 700;
			line-height: 1.5
		}

		.plan__area span {
			margin-right: .8em;
			white-space: nowrap
		}

		/* ========== SP ========== */
		@media (max-width:900px) {
			.plans-inner {
				grid-template-columns: 1fr;
				gap: 20px;
				display: block !important;
			}

			.plans-col {
				display: block !important;
			}

			.plan__area span {
				white-space: wrap !important;
			}

			#nikai {
				margin-top: 40px;
			}

			.plans-ttl {
				font-size: 1.4rem;
				margin-bottom: 20px;
			}

			.plan {
				min-height: 0;
				height: auto !important;
				margin-bottom: 40px;
			}

			.plan__price {
				font-size: .8rem
			}

			.plan__price .n {
				font-size: 1.2rem
			}

			.plan__lead {
				padding-right: 0;
				font-size: 1rem
			}

			.plan__style {
				position: static;
				width: 90px;
				margin: 8px 0 0 auto
			}

			.plan__photo,
			.plan__madori,
			.plan__area {
				width: 100%
			}


			.plan__row1 {
				display: flex;
				flex-wrap: wrap;
				align-items: flex-end;
				gap: 5px 14px;
				margin-bottom: 15px;
			}

			.plan__logo {
				flex: 0 0 auto;
				width: 70px;
				margin-bottom: 0;
			}

			.plan__type {
				margin: 0;
				font-size: 1.3rem;
				font-weight: 700;
				line-height: 1;
				white-space: nowrap;
				padding-bottom: 5px;
			}

			.plan__badge {
				width: auto;
			}

			.plan__badge b {
				font-size: 1rem;
				font-weight: 700;
			}

			span.image {
				bottom: 6px;
				right: 7px;
			}

		}

		.important_text {
			font-size: 12px;
			padding: 0 15px;
		}


		/* ========== 周辺環境 ========== */
		.area-sec {
			padding: 40px 16px 70px
		}

		.area-inner {
			max-width: 1200px;
			margin: 0 auto
		}

		/* ----- マップ ----- */
		.area-map {
			display: grid;
			grid-template-columns: minmax(0, 756fr) minmax(0, 420fr);
			gap: 24px;
			align-items: start
		}

		.area-map__img img {
			width: 100%;
			border: 1px solid #e3e3e3
		}

		.area-map__google {
			position: relative;
			width: 100%;
			aspect-ratio: 420/315;
			background: #eef3e8;
			border: 1px solid #e3e3e3
		}

		.area-map__google iframe {
			position: absolute;
			inset: 0;
			width: 100%;
			height: 100%;
			border: 0
		}

		/* ----- 写真 ----- */
		.area-photos {
			list-style: none;
			margin: 20px 0 0;
			padding: 0;
			display: grid;
			grid-template-columns: repeat(4, minmax(0, 1fr));
			gap: 16px
		}

		.area-photos img {
			width: 100%;
			aspect-ratio: 288/210;
			object-fit: cover
		}

		.area-photos p {
			margin: 12px 0 0;
			font-size: 14px;
			line-height: 1.4
		}

		/* ----- 施設リスト ----- */
		/* ----- 施設リスト ----- */
		.area-list {
			margin: 34px 0 0;
			display: grid;
			grid-template-columns: 1fr 1fr 1.3fr 1.3fr 1.1fr;
			/* auto → 比率指定 */
			align-items: start;
		}

		.area-list__col {
			min-width: 0;
			/* はみ出し防止 */
			padding: 0 3px;
			border-left: 1px dotted var(--dot);
		}

		.area-list__col:first-child {
			padding-left: 0;
			border-left: 0
		}

		.area-list__col:last-child {
			padding-right: 0
		}

		.area-list h3 {
			margin: 0 0 2px;
			font-size: 1.05rem;
			font-weight: 700;
			line-height: 1.5;
			color: #000;
		}

		.area-list ul {
			list-style: none;
			margin: 0 0 0 1em;
			padding: 0;
		}

		.area-list li {
			position: relative;
			padding-left: 15px;
			line-height: 1.6;
			font-size: 11px;
		}

		.area-list li::before {
			content: "";
			position: absolute;
			left: 0;
			top: .55em;
			width: 11px;
			height: 11px;
			border-radius: 50%;
			background: #c9c9c9
		}

		.area-list__col h3+ul+h3 {
			margin-top: 22px
		}

		/* ========== タブレット ========== */
		@media (max-width:1100px) {

			/* 価格表 */
			.pt tbody th {
				min-height: auto !important;
				padding: 5px 0;
				font-size: 1.2rem !important;
			}

			.pt .area {
				white-space: wrap;
				font-size: 1rem !important;
			}

			.pt .cost {
				white-space: wrap;
				font-size: 1rem !important;
			}

			/* 地震に強い家 */
			.quake {
				display: block;
			}

			.badge-family {
				left: -20px;
				top: -10px;
				z-index: 2;
				width: 125px;
				height: 125px;
				font-size: 1.8rem;
			}

			.quake-fig {
				margin-top: 20px;
			}

			.ap {
				flex-wrap: wrap;
			}

			.ap-img {
				flex: 0 0 100%;
				padding: 0 15px;
			}

			.ap-body {
				width: 100%;
				padding: 0 15px;
			}

			.ap.dryer {
				padding: 0 15px;
			}

			.ap.dryer .row {
				flex-wrap: wrap;
			}

			.ap.dryer .row img {
				flex: 0 0 100%;
			}

			.ap.dryer .row p {
				width: 100%;
			}


			/* 周辺施設 */
			.area-list {
				grid-template-columns: repeat(3, minmax(0, 1fr));
				row-gap: 28px
			}

			.area-list__col:nth-child(4) {
				padding-left: 0;
				border-left: 0
			}


		}

		/* ========== SP ========== */
		@media (max-width:900px) {
			.area-list {
				grid-template-columns: 1fr;
				row-gap: 20px
			}

			.area-list__col {
				padding: 0;
				border-left: 0
			}

			.area-list li {
				font-size: 13.5px;
			}

		}

		.overview {
			margin-top: 100px;
			padding: 0 15px;
		}

		.overview h2 {
			font-family: "游明朝 Medium", "Yu Mincho Medium", "YuMincho Medium", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
			color: #000;
			text-align: left;
		}

		.overview table {
			width: 100%;
			border-collapse: collapse;
			border: 1px solid #999999;
		}

		.overview table th {
			width: 20%;
			padding: 10px;
			font-size: 16px;
			background: #efefef;
			border-right: 1px solid #999999;
			border-bottom: 1px solid #999999;
			text-align: left;
		}

		.overview table td {
			width: 80%;
			padding: 10px;
			font-size: 16px;
			border-bottom: 1px solid #999999;
			text-align: left;
		}


		@media screen and (min-width: 760px) {


			.plan__head {
				max-height: 128px;
				height: 100%;
			}

			.plan__lead {
				min-height: 55px;
			}

		}