@charset "UTF-8";
/* =====================================================
   hamafuku（浜福商会）TOA風リデザイン v2
   参考: toa-estate.co.jp / デザイン案v2（0609打ち合わせ反映）
   配色: 緑 #249d57 / 濃緑 #1b7a43 / フッター緑 #1e5c38
         グレー #d9d9d9 #f3f3f3 / 赤 #f24646 / 黄 #ffe14d
         オレンジ #f5a623 / LINE #06C755
   ブレークポイント: 1024px（左レール表示）/ 767px（SP）
===================================================== */

:root {
	--hf2-green: #249d57;
	--hf2-green-dark: #1b7a43;
	--hf2-green-footer: #1e5c38;
	--hf2-lime: #62bd23;
	--hf2-lime-soft: #edf7e4;
	--hf2-green-pale: #eef0e4;
	--hf2-gray-bg: #f3f3f3;
	--hf2-gray-line: #d9d9d9;
	--hf2-red: #f24646;
	--hf2-yellow: #ffe14d;
	--hf2-orange: #f5a623;
	/* CTA色: 漢字ロゴの赤（header_site_name_pc.pngから採取） */
	--hf2-cta: #e94620;
	--hf2-cta-dark: #c93812;
	--hf2-line: #06C755;
	--hf2-rail: 300px;
}

.hf2-svgicon {
	width: 48px;
	height: 48px;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
	display: block;
}
.hf2-custom-logo {
	display: inline-flex;
	align-items: center;
}
.hf2-custom-logo .custom-logo {
	width: min(220px, 58vw);
	max-height: 104px;
	object-fit: contain;
}

/* ---------- 00 base ---------- */
body {
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
	color: #111;
	background: #fff;
}
.c-entry__body a { color: #111; }
@media (min-width: 768px) {
	.hf-sp, .hf2-sp { display: none !important; }
}
@media (max-width: 767px) {
	.hf-pc, .hf2-pc { display: none !important; }
}

/* ---------- 01 レイアウト: 左固定レール ---------- */
@media (min-width: 1024px) {
	.hf2-side { display: grid; }
	.l-container { margin-left: var(--hf2-rail); }
	/* Snow Monkey標準ヘッダーはPCでは使わない */
	.l-header { display: none; }
}
@media (max-width: 1023px) {
	.hf2-side { display: none; }
}

.hf2-side {
	position: fixed;
	top: 0;
	left: 0;
	bottom: auto;
	width: var(--hf2-rail);
	height: 100vh;
}
/* WP管理バー表示中（ログイン時）はコンテンツと同じ32px分レールも下げる */
.admin-bar .hf2-side {
	top: 32px;
	height: calc(100vh - 32px);
}
.hf2-side {
	height: 100dvh;
	grid-template-rows:
		minmax(106px, 1.35fr)
		minmax(192px, 4fr)
		minmax(48px, 1fr)
		minmax(80px, 1fr)
		minmax(34px, .65fr)
		minmax(150px, 2.3fr);
	background: #fff;
	border-right: 1px solid #cfd7d2;
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	z-index: 100;
	box-shadow: 8px 0 24px rgba(16, 45, 29, .05);
}
.hf2-side__logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: clamp(7px, 1.6vh, 18px) 24px;
	text-align: center;
	background: #fff;
	box-sizing: border-box;
}
.hf2-side__logo img {
	width: 100%;
	max-width: 208px;
	height: auto;
	display: block;
	margin: 0 auto;
}
.hf2-side__menu {
	display: grid;
	grid-template-rows: repeat(4, minmax(0, 1fr));
	min-height: 0;
	border-top: 2px solid #18231d;
	background: #fff;
}
.hf2-side__menu a {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 0;
	height: 100%;
	padding: clamp(6px, 1vh, 10px) 18px clamp(6px, 1vh, 10px) 22px;
	border-bottom: 1px solid #dfe5e1;
	text-decoration: none;
	color: #111;
	overflow: hidden;
	transition: background-color .22s ease, padding-left .22s ease;
}
.hf2-side__menu a::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	background: var(--hf2-green);
	transform: scaleY(0);
	transform-origin: center;
	transition: transform .22s ease;
}
.hf2-side__menu a:hover,
.hf2-side__menu a.is-current {
	background: linear-gradient(90deg, #e6f3ea, #f5faf7);
	padding-left: 28px;
}
.hf2-side__menu a:hover::after,
.hf2-side__menu a.is-current::after { transform: scaleY(1); }
.hf2-side__menu a.is-current { box-shadow: inset 0 0 0 1px rgba(36, 157, 87, .13); }
.hf2-side__menu a.is-current .t small { color: #3f5948; }
.hf2-side__menu a.is-current .t b { color: var(--hf2-green-dark); }
.hf2-side__menu a.is-current .ico .hf2-svgicon { color: var(--hf2-green-dark); }
.hf2-side__menu .t { min-width: 0; }
.hf2-side__menu .t small {
	display: block;
	font-size: 9.5px;
	color: #5d6660;
	margin-bottom: 2px;
	line-height: 1.35;
}
.hf2-side__menu .t b {
	display: flex;
	align-items: baseline;
	gap: 9px;
	font-size: 19px;
	color: #172019;
	letter-spacing: .04em;
	line-height: 1.2;
}
.hf2-side__menu .t b::after {
	content: attr(data-en);
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .13em;
	color: var(--hf2-green);
}
.hf2-side__menu .ico {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: 10px;
	border: 0;
	background: transparent;
	transition: transform .22s ease;
}
.hf2-side__menu .ico .hf2-svgicon {
	width: 30px;
	height: 30px;
	color: var(--hf2-green);
	stroke-width: 2.5;
	transition: color .22s ease;
}
.hf2-side .hf2-svgicon .hf2-icon-main { stroke: #444; }
.hf2-side .hf2-svgicon .hf2-icon-accent { stroke: var(--hf2-green); }
.hf2-side .hf2-svgicon .hf2-icon-main,
.hf2-side .hf2-svgicon .hf2-icon-accent { transition: stroke .22s ease; }
.hf2-side__menu a:hover .ico {
	background: transparent;
	transform: translateX(2px);
}
.hf2-side__menu a:hover .ico .hf2-svgicon { color: #249d57; }
/* リノベ相談: メニュー項目と同一レイアウトの黒×黄バージョン（Re:BIRTHトーン） */
.hf2-side__reno {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 0;
	height: 100%;
	padding: clamp(6px, 1vh, 10px) 18px clamp(6px, 1vh, 10px) 22px;
	border-bottom: 1px solid #e3c92e;
	background: var(--hf2-yellow);
	text-decoration: none;
	color: #111;
	overflow: hidden;
	transition: background-color .22s ease, padding-left .22s ease;
}
.hf2-side__reno::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	background: #111;
	transform: scaleY(0);
	transform-origin: center;
	transition: transform .22s ease;
}
.hf2-side__reno:hover {
	background: #ffd400;
	padding-left: 28px;
}
.hf2-side__reno:hover::after { transform: scaleY(1); }
.hf2-side__reno .t { min-width: 0; }
.hf2-side__reno .t small {
	display: block;
	font-size: 9.5px;
	font-weight: 700;
	color: #111;
	margin-bottom: 2px;
	line-height: 1.35;
}
.hf2-side__reno .t b {
	display: flex;
	align-items: baseline;
	gap: 9px;
	font-size: 19px;
	color: #111;
	letter-spacing: .04em;
	line-height: 1.2;
}
.hf2-side__reno .t b::after {
	content: attr(data-en);
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .13em;
	color: #111;
}
.hf2-side__reno .ico {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: 10px;
	border: 0;
	background: transparent;
	transition: transform .22s ease;
}
.hf2-side__reno .ico .hf2-svgicon {
	width: 30px;
	height: 30px;
	color: #111;
	stroke-width: 2.5;
	transition: color .22s ease;
}
.hf2-side__reno:hover .ico {
	background: transparent;
	transform: translateX(2px);
}
.hf2-side__reno:hover .ico .hf2-svgicon { color: var(--hf2-green); }
.hf2-side__kanji {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 0;
	margin: clamp(8px, 1.2vh, 12px) 20px 0;
	padding: clamp(4px, .8vh, 8px) 10px;
	text-align: center;
	box-sizing: border-box;
}
.hf2-side__since {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 7px 0 0;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .28em;
	text-indent: .28em;
	color: #5d6660;
	line-height: 1;
}
.hf2-side__since::before,
.hf2-side__since::after {
	content: "";
	width: 30px;
	height: 1px;
	background: #c8cec9;
}
.hf2-side__since--en {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 9.5px;
	letter-spacing: .32em;
	text-indent: .32em;
	margin-top: 6px;
	color: var(--hf2-green-dark);
}
.hf2-side__kanji img {
	width: 100%;
	max-width: 210px;
	height: auto;
	display: block;
	margin: 0 auto;
}
.hf2-side__line {
	display: none; /* LINE公式URL確定後に復活 */
	margin: 12px 20px 0;
	background: var(--hf2-line);
	color: #fff;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 13px;
	font-size: 14px;
	font-weight: bold;
	border-radius: 6px;
	text-decoration: none;
}
.hf2-side__line:hover { opacity: .85; color: #fff; }
.hf2-side__line .b { background: #fff; color: var(--hf2-line); border-radius: 6px; font-size: 11px; padding: 2px 6px; font-weight: 800; }
.hf2-fixed-ctas {
	position: fixed;
	top: 0;
	right: 0;
	display: flex;
	z-index: 120;
	box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.hf2-fixed-cta {
	width: 116px;
	height: 86px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 7px;
	text-align: center;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.25;
	text-decoration: none;
	color: #fff;
}
.hf2-fixed-cta:hover { color: #fff; filter: brightness(.96); }
.hf2-fixed-cta--mail { background: var(--hf2-cta); }
.hf2-fixed-cta--assessment { background: var(--hf2-cta-dark); }
.hf2-fixed-cta .ico,
.hf2-fixed-cta .ico .hf2-svgicon {
	width: 30px;
	height: 30px;
	display: block;
}
.hf2-fixed-cta .ico .hf2-svgicon {
	color: #fff;
	stroke-width: 4;
}
@media (max-width: 1023px) {
	.hf2-fixed-ctas { display: none; }
}
.hf2-side__company {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	margin: clamp(4px, .8vh, 8px) 20px;
	background: #172019;
	color: #fff;
	font-size: 12.5px;
	font-weight: bold;
	text-align: center;
	padding: 4px 8px;
	text-decoration: none;
	box-sizing: border-box;
}
.hf2-side__company:hover { background: var(--hf2-green-dark); color: #fff; }
.hf2-side__tel {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 0;
	padding: clamp(6px, 1vh, 11px) 18px clamp(8px, calc(22vh - 143px), 50px);
	padding-bottom: clamp(8px, calc(22dvh - 143px), 50px);
	text-align: center;
	box-sizing: border-box;
}
.hf2-side__tel p { margin-top: 0; margin-bottom: 0; }
.hf2-side__tel .cap { font-size: 11.5px; margin-bottom: 3px; }
.hf2-side__tel .num a {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 27px;
	font-weight: 700;
	color: var(--hf2-green);
	letter-spacing: .02em;
	text-decoration: none;
}
.hf2-side__tel .sub { font-size: 10.5px; color: #555; margin-top: 8px; line-height: 1.75; }
/* 営業時間: ラベル＋値の2列で桁を揃え、時刻は途中で折り返さない */
.hf2-side__tel .sub .lb {
	display: inline-block;
	color: #333;
	font-weight: 700;
	margin-right: 6px;
}
.hf2-side__tel .sub .vl { display: inline-block; text-align: left; vertical-align: top; }
.hf2-side__tel .sub .nb { white-space: nowrap; }

/* ---------- 02 コンテナ・共通 ---------- */
.c-container {
	max-width: 1100px;
	padding-left: 24px !important;
	padding-right: 24px !important;
}
@media (max-width: 767px) {
	.c-container {
		padding-left: 4% !important;
		padding-right: 4% !important;
	}
}
.l-contents { padding-top: 0; }

/* フロントの本文ブロック間の余白はセクション側で管理 */
.home .c-entry__body > * { margin-top: 0; margin-bottom: 0; }
.home .p-section-front-page-content { padding: 0; }
.home .c-entry__body { margin: 0; }

/* ---------- 03 ページタイトル（下層） ---------- */
.c-page-header { background: none; padding: 0; margin: 0; min-height: 0; }
.single-post .c-page-header { display: none; }
.c-page-header .c-container { padding-top: 0; padding-bottom: 0; }
/* 黒上線＋英語ラベル（prepend_mainフックで出力） */
.hf3-page-en {
	border-top: 2px solid #111;
	padding-top: 16px;
	margin: 26px 0 0;
}
/* PC: 左ナビのロゴ下線と黒上線の高さを揃える（上要素のmargin-bottom 52pxを超える値で指定） */
@media (min-width: 1024px) {
	.hf3-page-en { margin-top: 66px; }
}
.hf3-page-en {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .24em;
	color: var(--hf2-green);
}
.c-page-header__title,
.c-entry__title,
h1.c-entry__title {
	border: none;
	font-size: 27px;
	font-weight: 800;
	color: #111;
	letter-spacing: .1em;
	padding: 0;
	margin: 10px auto 8px;
	max-width: 1100px;
	line-height: 1.45;
	position: relative;
	background: none;
	text-align: left;
}
.c-entry__header { margin-bottom: 26px; }
/* パンくず（最上部・小さくグレー） */
.c-breadcrumbs {
	font-size: 11.5px;
	color: #999;
	margin: 16px 0 -6px;
	padding: 0;
}
.c-breadcrumbs a { color: #999; text-decoration: none; }
.c-breadcrumbs a:hover { color: var(--hf2-green); text-decoration: underline; }
@media (max-width: 767px) {
	.hf3-page-en { margin-top: 16px; padding-top: 12px; font-size: 10.5px; }
	.c-page-header__title,
	.c-entry__title,
	h1.c-entry__title {
		font-size: 21px;
	}
	.c-entry__header { margin-bottom: 18px; }
	.c-breadcrumbs { margin-top: 12px; }
}

/* ---------- 04 本文見出し（下層） ---------- */
.c-entry__body h2::before,
.c-entry__body h2::after,
.c-entry__body h3::before,
.c-entry__body h3::after {
	content: none !important;
	display: none !important;
}
.c-entry__body h2.hf-nodeco,
.c-entry__body h3.hf-nodeco {
	background: none;
	border: none;
	padding: 0;
}
body:not(.home) .c-entry__body h2:not(.hf-nodeco):not(.c-entry-summary__title) {
	background: none;
	border: none;
	border-left: 6px solid var(--hf2-green);
	color: #111;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .08em;
	padding: 4px 0 4px 14px;
	margin: 0 0 26px;
}
body:not(.home) .c-entry__body h3:not(.hf-nodeco) {
	background-color: var(--hf2-gray-bg);
	border: none;
	font-size: 16.5px;
	font-weight: bold;
	letter-spacing: .05em;
	padding: 11px 16px;
	margin-bottom: 24px;
}
@media (max-width: 767px) {
	body:not(.home) .c-entry__body h2:not(.hf-nodeco):not(.c-entry-summary__title) {
		font-size: 18px;
		margin-bottom: 16px;
	}
	body:not(.home) .c-entry__body h3:not(.hf-nodeco) { font-size: 15px; padding: 9px 12px; margin-bottom: 18px; }
}
.hf-box { margin-bottom: 50px; }
.hf-box:last-child { margin-bottom: 0; }
.hf-donyu { margin-bottom: 40px; }
@media (max-width: 767px) {
	.hf-donyu { margin-bottom: 22px; }
}

/* ---------- 05 フロント: ヒーロー ---------- */
.hf2-hero {
	position: relative;
	height: 700px;
	overflow: hidden;
	background: #ddd;
}
.hf2-hero__slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center 60%;
	opacity: 0;
	transition: opacity 5s ease;
}
.hf2-hero__slide.is-active { opacity: 1; }
/* ヒーロー中央のお知らせ（設定 > お知らせバナー でつけ外し） */
.hf2-notice {
	position: absolute;
	top: 45%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 4;
	display: block;
	width: min(980px, calc(100% - 96px));
	max-width: none;
	padding: 48px 70px 50px;
	box-sizing: border-box;
	background: rgba(0, 0, 0, .5);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-align: center;
	color: #fff;
	text-decoration: none;
	animation: hf2NoticeIn 1s cubic-bezier(.22, 1, .36, 1) .35s both;
}
/* 参考デザインのL字アクセント */
.hf2-notice::before,
.hf2-notice::after,
.hf2-notice__inner::before,
.hf2-notice__inner::after {
	content: "";
	position: absolute;
	width: 100px;
	height: 100px;
	pointer-events: none;
}
.hf2-notice::before {
	top: -18px;
	left: -18px;
	border-top: 14px solid var(--hf2-green);
	border-left: 14px solid var(--hf2-green);
}
.hf2-notice::after {
	top: -18px;
	right: -18px;
	border-top: 14px solid #111;
	border-right: 14px solid #111;
}
.hf2-notice__inner::before {
	bottom: -18px;
	left: -18px;
	border-bottom: 14px solid #111;
	border-left: 14px solid #111;
}
.hf2-notice__inner::after {
	right: -18px;
	bottom: -18px;
	border-right: 14px solid var(--hf2-green);
	border-bottom: 14px solid var(--hf2-green);
}
@keyframes hf2NoticeIn {
	from { opacity: 0; transform: translate(-50%, -44%); }
	to   { opacity: 1; transform: translate(-50%, -50%); }
}
@media (prefers-reduced-motion: reduce) {
	.hf2-notice { animation: none; }
}
a.hf2-notice { transition: background-color .25s ease; }
a.hf2-notice:hover { background: rgba(0, 0, 0, .58); }
.hf2-notice__label {
	display: block;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .28em;
	text-indent: .28em;
	color: var(--hf2-green);
	margin-bottom: 9px;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .55);
}
.hf2-notice__inner {
	display: flex;
	position: static;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	text-align: center;
}
.hf2-notice__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	flex: 0 0 auto;
	padding: 0;
	border: 0;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 106px;
	font-weight: 900;
	line-height: .95;
	letter-spacing: 0;
	color: #fff;
	text-shadow: 0 4px 20px rgba(0, 0, 0, .45);
}
.hf2-notice__date small {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 250px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .32em;
	text-indent: .32em;
	color: var(--hf2-green);
}
.hf2-notice__date small::before,
.hf2-notice__date small::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: rgba(36, 157, 87, .85);
}
.hf2-notice__date::after {
	content: "+";
	display: block;
	margin-top: 5px;
	font-size: 38px;
	font-weight: 400;
	line-height: .8;
	color: #fff;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .5);
}
.hf2-notice__title {
	display: block;
	font-size: 39px;
	font-weight: 900;
	letter-spacing: .08em;
	line-height: 1.45;
	color: #fff;
	text-shadow: 0 3px 16px rgba(0, 0, 0, .55);
}
.hf2-notice__title em { color: var(--hf2-green); font-style: normal; }
.hf2-notice__sub {
	display: block;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	letter-spacing: .06em;
	margin-top: 10px;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .65);
}
.hf2-notice--dated .hf2-notice__title,
.hf2-notice--dated .hf2-notice__sub { text-align: center; }
.hf2-notice__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 280px;
	min-height: 48px;
	margin-top: 20px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	color: #fff;
	background: var(--hf2-green);
	border: 1px solid var(--hf2-green);
	border-radius: 0;
	padding: 0 28px;
	transition: background-color .2s ease, border-color .2s ease;
}
.hf2-notice__more .ar {
	width: 6px;
	height: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(-45deg);
}
a.hf2-notice:hover .hf2-notice__more { background: var(--hf2-green-dark); border-color: var(--hf2-green-dark); }
@media (max-width: 767px) {
	.hf2-notice {
		top: 60%;
		width: calc(100% - 32px);
		padding: 23px 20px 22px;
	}
	.hf2-notice::before,
	.hf2-notice::after,
	.hf2-notice__inner::before,
	.hf2-notice__inner::after {
		width: 44px;
		height: 44px;
		border-width: 8px;
	}
	.hf2-notice::before,
	.hf2-notice__inner::before { left: -10px; }
	.hf2-notice::after,
	.hf2-notice__inner::after { right: -10px; }
	.hf2-notice::before,
	.hf2-notice::after { top: -10px; }
	.hf2-notice__inner::before,
	.hf2-notice__inner::after { bottom: -10px; }
	.hf2-notice__label { font-size: 9px; margin-bottom: 4px; }
	.hf2-notice__date { font-size: 48px; }
	.hf2-notice__date small { width: 126px; gap: 8px; font-size: 7px; }
	.hf2-notice__date::after { margin-top: 3px; font-size: 20px; }
	.hf2-notice__title { font-size: 19px; }
	.hf2-notice__sub { font-size: 9.5px; line-height: 1.55; margin-top: 4px; }
	.hf2-notice__more { min-width: 220px; min-height: 38px; margin-top: 12px; font-size: 10px; }
}
.hf2-hero__iten {
	position: absolute;
	top: 26px;
	right: 26px;
	background: #fff;
	border: 2px solid var(--hf2-green);
	border-radius: 8px;
	padding: 13px 22px;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .25);
	text-decoration: none;
	z-index: 3;
}
.hf2-hero__iten .l1 { display: block; font-size: 12px; color: #555; }
.hf2-hero__iten .l2 { display: block; font-size: 19px; font-weight: 800; color: var(--hf2-green-dark); margin-top: 2px; }
.hf2-hero__iten .l3 { display: block; font-size: 11px; color: #555; margin-top: 3px; }
@media (max-width: 1023px) {
	.hf2-hero { height: 420px; }
	.hf2-hero__iten { top: 14px; right: 14px; padding: 10px 16px; }
	.hf2-hero__iten .l2 { font-size: 16px; }
}
@media (max-width: 767px) {
	.hf2-hero { height: 400px; }
	.hf2-hero__slide { background-position: center 28%; }
	.hf2-hero__iten .l1 { display: none; }
	.hf2-hero__iten .l3 { display: none; }
	.hf2-hero__iten .l2 { font-size: 14px; }
}

/* ---------- 06 フロント: 物件マップ ---------- */
.hf2-property-map-section {
	position: relative;
	width: calc(100% + 70px);
	margin-left: -35px;
	padding: 0 0 80px;
	background: #f3f7f4;
}
@media (min-width: 1024px) {
	body:not(.home) .hf2-property-map-section {
		width: calc(100vw - 300px);
		max-width: none; /* テーマの content-size 1280px 制限を解除（ワイド画面で全幅にする） */
		margin-left: calc((100vw - 300px - 100%) / -2);
	}
}
.hf2-property-map__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	min-height: 132px;
	padding: 28px 44px;
	background: #fff;
	border-top: 1px solid #dbe5de;
	border-bottom: 1px solid #dbe5de;
}
.hf2-property-map__bar .en {
	margin: 0 0 4px;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .22em;
	color: var(--hf2-green);
}
.hf2-property-map__bar h2 {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-size: 25px;
	font-weight: 800;
	letter-spacing: .06em;
	color: #172019;
}
.hf2-property-map__bar .copy {
	margin: 7px 0 0;
	font-size: 12px;
	color: #667169;
}
.hf2-property-map__meta {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 20px;
	flex-wrap: wrap;
}
.hf2-property-map__meta p { margin: 0; }
.hf2-property-map__meta .count {
	font-size: 12px;
	color: #4f5c53;
}
.hf2-property-map__meta .count b {
	margin-right: 3px;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 24px;
	font-weight: 900;
	color: #172019;
}
.hf2-property-map__meta .legend {
	display: flex;
	align-items: center;
	gap: 13px;
	font-size: 11px;
	font-weight: 700;
	color: #4f5c53;
}
.hf2-property-map__meta .legend span::before {
	content: "";
	display: inline-block;
	width: 9px;
	height: 9px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--hf2-green);
}
.hf2-property-map__meta .legend .sale::before { background: var(--hf2-cta); }
.hf2-property-map__meta > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 18px;
	border: 1px solid var(--hf2-green-dark);
	border-radius: 3px;
	color: var(--hf2-green-dark);
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
.hf2-property-map__meta > a::after {
	content: "";
	width: 6px;
	height: 6px;
	margin-left: 12px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(-45deg);
}
.hf2-property-map__meta > a:hover { background: var(--hf2-green-dark); color: #fff; }
.hf-property-map {
	position: relative;
	width: 100%;
	height: 560px;
	background: #dfe8e2;
}
.hf-property-map__canvas { width: 100%; height: 100%; }
.hf-property-map__status {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	background: #eef3ef;
	color: #536159;
	font-size: 13px;
	z-index: 2;
}
.hf-property-map__status[hidden] { display: none; }
.hf-property-map__status.is-error { color: #8c3824; }
.hf-property-map__fallback { margin: 0; padding: 18px 40px; background: #fff; text-align: center; }
.hf-mapcards {
	width: min(390px, calc(100vw - 80px));
	max-height: 420px;
	overflow-y: auto;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, sans-serif;
}
.hf-mapcards__count {
	margin: 0 0 9px;
	font-size: 12px;
	font-weight: 800;
	color: #173c27;
}
.hf-mapcard {
	display: grid;
	grid-template-columns: 124px minmax(0, 1fr);
	gap: 14px;
	padding: 10px 0;
	color: #202620;
	text-decoration: none;
}
.hf-mapcard + .hf-mapcard { border-top: 1px solid #dce4de; }
.hf-mapcard__media {
	position: relative;
	display: block;
	width: 124px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
	background: #edf1ee;
}
.hf-mapcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hf-mapcard__noimage {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 9px;
	letter-spacing: .12em;
	color: #929b94;
}
.hf-mapcard__type {
	position: absolute;
	left: 6px;
	top: 6px;
	display: inline-flex;
	padding: 3px 7px;
	border-radius: 2px;
	background: var(--hf2-green);
	color: #fff;
	font-size: 9px;
	font-weight: 800;
}
.hf-mapcard__type.is-sale { background: var(--hf2-cta); }
.hf-mapcard__body { display: flex; flex-direction: column; min-width: 0; }
.hf-mapcard__title {
	display: block;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.45;
	color: #172019;
}
.hf-mapcard__price {
	display: block;
	margin-top: 5px;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 17px;
	font-weight: 900;
	color: #172019;
}
.hf-mapcard__spec,
.hf-mapcard__address {
	display: block;
	margin-top: 2px;
	font-size: 10.5px;
	line-height: 1.5;
	color: #69736c;
}
.hf-mapcard__address {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.hf-mapcard__more {
	display: block;
	margin-top: auto;
	padding-top: 5px;
	font-size: 10px;
	font-weight: 800;
	color: var(--hf2-green-dark);
}
.hf-mapcard:hover .hf-mapcard__title,
.hf-mapcard:hover .hf-mapcard__more { color: var(--hf2-green); }

@media (max-width: 1023px) {
	.hf2-property-map__bar { align-items: flex-start; padding: 24px 28px; }
	.hf2-property-map__meta { max-width: 330px; gap: 12px 16px; }
	.hf-property-map { height: 480px; }
}
@media (max-width: 767px) {
	.hf2-property-map-section { width: calc(100% + 30px); margin-left: -15px; padding-bottom: 32px; }
	.hf2-property-map__bar { display: block; min-height: 0; padding: 20px 18px 17px; }
	.hf2-property-map__bar h2 { font-size: 20px; }
	.hf2-property-map__bar .copy { font-size: 11px; }
	.hf2-property-map__meta { justify-content: flex-start; max-width: none; margin-top: 14px; gap: 10px 16px; }
	.hf2-property-map__meta .count b { font-size: 20px; }
	.hf2-property-map__meta > a { min-height: 36px; margin-left: auto; padding: 0 12px; }
	.hf-property-map { height: 390px; }
	.hf-mapcards { width: min(310px, calc(100vw - 58px)); max-height: 330px; }
	.hf-mapcard { grid-template-columns: 94px minmax(0, 1fr); gap: 10px; }
	.hf-mapcard__media { width: 94px; }
	.hf-mapcard__title { font-size: 12px; }
	.hf-mapcard__price { font-size: 15px; }
	.hf-mapcard__spec, .hf-mapcard__address { font-size: 9.5px; }
}

/* ---------- 07 フロント: 4分岐 ---------- */
.hf2-branch-wrap { padding: 0 40px; }
.hf2-branch {
	position: relative;
	margin: -80px auto 0;
	max-width: 1100px;
	background: #fff;
	border: 1px solid #d5e0d9;
	border-top: 5px solid var(--hf2-green);
	border-radius: 4px;
	z-index: 5;
	padding: 30px 44px 0;
	box-shadow: 0 18px 44px rgba(15, 55, 32, .13);
}
.hf2-branch__head {
	display: none;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 24px;
}
.hf2-branch__title {
	position: relative;
	font-size: 22px;
	font-weight: 800;
	color: #222;
	letter-spacing: .06em;
	padding-left: 18px;
	margin: 0;
	line-height: 1.45;
}
.hf2-branch__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: .22em;
	width: 7px;
	height: 1.35em;
	background: var(--hf2-lime);
	border-radius: 2px;
}
.hf2-branch__copy {
	font-size: 13px;
	color: #666;
	margin: 0;
}
.hf2-action {
	display: grid;
	grid-template-columns: 1.28fr 1.28fr .82fr .82fr;
	gap: 20px;
}
.hf2-action__group h2 {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.3;
	color: #172019;
	margin: 0 0 15px;
	padding: 0;
	background: none;
	border: none;
	letter-spacing: .08em;
}
.hf2-action__group h2 span {
	width: 5px;
	height: 30px;
	background: var(--hf2-green);
	border-radius: 0;
	display: inline-block;
}
.hf2-action__group h2::after {
	display: inline-block !important;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .15em;
	color: var(--hf2-green);
}
.hf2-action__group--rent h2::after { content: "RENT" !important; }
.hf2-action__group--buy h2::after { content: "BUY" !important; }
.hf2-action__group--sell h2::after { content: "SELL" !important; }
.hf2-action__group--lend h2::after { content: "MANAGE" !important; }
.hf2-action__tiles {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}
.hf2-action__tiles--rent,
.hf2-action__group--buy .hf2-action__tiles {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hf2-tile {
	position: relative;
	overflow: hidden;
	min-height: 76px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid #bdd8c7;
	border-radius: 3px;
	background: #fff;
	color: #222;
	padding: 16px 14px;
	text-align: center;
	text-decoration: none;
	box-shadow: none;
	box-shadow: 0 4px 12px rgba(27, 122, 67, .04);
	transition: background-color .22s ease, border-color .22s ease, color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.hf2-tile::after {
	content: "";
	position: absolute;
	right: 10px;
	bottom: 10px;
	width: 8px;
	height: 8px;
	border-right: 1px solid var(--hf2-green);
	border-bottom: 1px solid var(--hf2-green);
	transform: rotate(-45deg);
	opacity: .5;
	transition: border-color .22s ease, opacity .22s ease, right .22s ease;
}
.hf2-tile:hover {
	background: var(--hf2-green-dark);
	border-color: var(--hf2-green-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(27, 122, 67, .2);
}
.hf2-tile:hover::after {
	right: 8px;
	border-color: #fff;
	opacity: 1;
}
.hf2-tile:focus-visible,
.hf2-quick a:focus-visible,
.hf2-store-cta a:focus-visible {
	outline: 3px solid rgba(97, 191, 34, .35);
	outline-offset: 3px;
}
.hf2-tile--large {
	min-height: 156px;
	padding: 22px 14px;
	background: #f8fcf9;
}
.hf2-tile--wide {
	min-height: 104px;
	background: #f8fcf9;
}
.hf2-tile .hf2-svgicon {
	width: 36px;
	height: 36px;
	flex: 0 0 auto;
	color: var(--hf2-green);
	stroke-width: 2.7;
}
.hf2-tile--large .hf2-svgicon {
	width: 48px;
	height: 48px;
}
.hf2-tile b {
	display: block;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .04em;
	line-height: 1.45;
	color: #173c27;
	word-break: keep-all;
	overflow-wrap: normal;
}
.hf2-tile small {
	display: block;
	font-size: 11px;
	color: #5e6b63;
	line-height: 1.45;
	margin-top: 2px;
	word-break: keep-all;
	overflow-wrap: normal;
}
.hf2-tile:hover .hf2-svgicon,
.hf2-tile:hover b,
.hf2-tile:hover small { color: #fff; }
.hf2-branch__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: 14px;
}
.hf2-bnc {
	min-height: 178px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 6px;
	text-align: center;
	padding: 30px 16px 28px;
	background: #f7f7f7;
	text-decoration: none;
	color: #111;
	box-shadow: none;
	transition: background .18s ease, color .18s ease;
}
.hf2-bnc:hover {
	background: var(--hf2-lime-soft);
	color: #111;
}
.hf2-bnc small {
	order: 3;
	display: block;
	font-size: 11px;
	color: #666;
	margin: 6px 0 0;
	line-height: 1.5;
}
.hf2-bnc b {
	order: 2;
	font-size: 22px;
	color: #2b2b2b;
	letter-spacing: .08em;
}
.hf2-bnc--owner b { color: #2b2b2b; }
.hf2-bnc .ico {
	order: 1;
	display: block;
	margin: 0 auto 14px;
	width: 64px;
	height: 64px;
	color: var(--hf2-lime);
}
.hf2-bnc .ico svg { width: 64px; height: 64px; }
.hf2-bnc .ico svg path,
.hf2-bnc .ico svg circle,
.hf2-bnc .ico svg rect {
	fill: var(--hf2-lime) !important;
	stroke: var(--hf2-lime) !important;
}
.hf2-bnc .go {
	display: none;
	font-size: 12.5px;
	font-weight: bold;
	color: #fff;
	background: var(--hf2-green);
	border-radius: 16px;
	padding: 7px 18px;
}
.hf2-bnc--owner .go { background: var(--hf2-green-dark); }
.hf2-store-cta {
	display: grid;
	grid-template-columns: 1fr minmax(250px, 34%);
	align-items: center;
	gap: 22px;
	margin: 26px 0 0;
	padding: 20px 0 25px;
	border-top: 1px solid #d9e4dc;
}
.hf2-store-cta p {
	margin: 0;
	color: #333;
	font-size: 14px;
	font-weight: 700;
}
.hf2-store-cta p span {
	display: block;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 11px;
	letter-spacing: .18em;
	color: var(--hf2-green-dark);
	margin-bottom: 4px;
}
.hf2-store-cta a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 72px;
	border: 1px solid var(--hf2-green-dark);
	border-radius: 3px;
	background: var(--hf2-green-dark);
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.hf2-store-cta a:hover {
	background: #fff;
	color: var(--hf2-green-dark);
	transform: translateY(-2px);
}
.hf2-store-cta .hf2-svgicon {
	width: 44px;
	height: 44px;
	color: #fff;
}
.hf2-store-cta a:hover .hf2-svgicon { color: var(--hf2-green-dark); }
.hf2-quick {
	display: grid;
	grid-template-columns: 210px 1fr;
	align-items: center;
	gap: 12px;
	margin: 0 -44px;
	padding: 24px 48px;
	background: var(--hf2-lime);
	border-radius: 0 0 8px 8px;
}
.hf2-quick__form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	min-width: 0;
}
.hf2-quick__label {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #fff;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: .08em;
}
.hf2-quick__label .hf2-svgicon {
	width: 38px;
	height: 38px;
	stroke-width: 4.5;
}
.hf2-quick__select {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 1 280px;
	min-width: 0;
	min-height: 52px;
	border: none;
	border-radius: 6px;
	background: #fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2362bd23' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center;
	color: #333;
	font-size: 13.5px;
	font-weight: 700;
	padding: 0 40px 0 18px;
	cursor: pointer;
}
.hf2-quick__select:focus { outline: 2px solid rgba(255,255,255,.7); outline-offset: 2px; }
.hf2-quick__kw {
	flex: 1 1 220px;
	min-width: 0;
	min-height: 52px;
	border: none;
	border-radius: 6px;
	background: #fff;
	color: #333;
	font-size: 13px;
	padding: 0 18px;
}
.hf2-quick__kw::placeholder { color: #777; }
.hf2-quick__kw:focus { outline: 2px solid rgba(255,255,255,.7); outline-offset: 2px; }
.hf2-quick__btn {
	flex: 0 0 auto;
	min-height: 52px;
	border: none;
	border-radius: 6px;
	background: var(--hf2-cta);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .1em;
	padding: 0 34px;
	cursor: pointer;
}
.hf2-quick__btn:hover { opacity: .9; }
@media (max-width: 1199px) {
	/* 中間幅はラベルを上段に（フォームは flex-wrap で自然に折返す） */
	.hf2-quick { grid-template-columns: 1fr; }
}
.hf2-branch__reno {
	margin: 0 -44px;
	padding: 16px 44px 22px;
	background: linear-gradient(90deg, #f8fbf6, #fff);
	text-align: center;
}
.hf2-branch__reno a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--hf2-gray-line);
	border-radius: 6px;
	padding: 10px 24px;
	font-size: 13px;
	font-weight: bold;
	color: #333;
	background: #f7f7f7;
	text-decoration: none;
}
.hf2-branch__reno a:hover { border-color: var(--hf2-green-dark); }
.hf2-branch__reno .tag { font-size: 10px; background: var(--hf2-green-dark); color: #fff; border-radius: 3px; padding: 2px 7px; }
@media (max-width: 1023px) {
	.hf2-branch-wrap { padding: 0 4%; }
	.hf2-branch { margin-top: -40px; padding: 24px 20px 0; }
	.hf2-branch__head { display: none; }
	.hf2-branch__copy { margin-top: 8px; }
	.hf2-action { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
	.hf2-branch__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.hf2-store-cta { grid-template-columns: 1fr; }
	.hf2-quick { margin: 0 -20px; padding: 20px; }
	.hf2-branch__reno { margin: 0 -20px; padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 767px) {
	.hf2-branch { margin-top: -24px; padding: 20px 14px 0; }
	.hf2-branch__title { font-size: 18px; }
	.hf2-branch__copy { font-size: 12px; }
	.hf2-action { grid-template-columns: 1fr; gap: 20px; }
	.hf2-action__group h2 { font-size: 19px; margin-bottom: 10px; }
	.hf2-action__group h2 span { height: 27px; }
	.hf2-action__tiles--rent,
	.hf2-action__group--buy .hf2-action__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hf2-branch__grid { gap: 10px; }
	.hf2-tile { min-height: 86px; padding: 12px; gap: 7px; }
	.hf2-bnc { min-height: 138px; padding: 16px 8px 14px; }
	.hf2-bnc b { font-size: 19px; }
	.hf2-bnc small { font-size: 10px; }
	.hf2-bnc .ico { width: 46px; height: 46px; margin: 0 auto 10px; }
	.hf2-bnc .ico svg { width: 46px; height: 46px; }
	.hf2-bnc .go { font-size: 11px; padding: 6px 12px; }
	.hf2-tile--large { min-height: 116px; }
	.hf2-tile .hf2-svgicon { width: 31px; height: 31px; }
	.hf2-tile--large .hf2-svgicon { width: 40px; height: 40px; }
	.hf2-tile b { font-size: 13px; line-height: 1.35; }
	.hf2-tile small { font-size: 10.5px; }
	.hf2-store-cta { gap: 12px; margin-top: 20px; padding-bottom: 20px; }
	.hf2-store-cta p { font-size: 12.5px; }
	.hf2-store-cta a { min-height: 62px; font-size: 14px; }
	.hf2-quick { grid-template-columns: 1fr; gap: 10px; margin: 0 -14px; padding: 16px 14px; }
	.hf2-quick__label { font-size: 18px; }
	.hf2-quick__select { min-height: 48px; flex-basis: 100%; }
	.hf2-quick__kw { min-height: 48px; }
	.hf2-quick__btn { min-height: 48px; padding: 0 22px; flex: 1 1 100%; }
	.hf2-branch__reno a { font-size: 11.5px; padding: 8px 14px; }
}

/* ---------- 07 フロント: セクション共通 ---------- */
.hf2-sec { padding: 60px 40px 0; }
.hf2-sec--gray {
	background: var(--hf2-gray-bg);
	padding-bottom: 0 !important;
}
.hf2-inner { max-width: 1100px; margin: 0 auto; }
.hf2-sec-head {
	display: flex;
	align-items: baseline;
	gap: 18px;
	border-top: 2px solid #111;
	padding-top: 14px;
	margin: 0 0 24px;
	flex-wrap: wrap;
}
.hf2-sec-head h2 {
	font-size: 19px;
	font-weight: bold;
	letter-spacing: .12em;
	margin: 0;
	background: none;
	border: none;
	padding: 0;
	color: #111;
}
.hf2-sec-head .en {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 12px;
	color: #888;
	letter-spacing: .2em;
}
.hf2-sec-head .season {
	margin-left: auto;
	background: var(--hf2-yellow);
	font-size: 12px;
	font-weight: bold;
	border-radius: 4px;
	padding: 5px 14px;
	color: #111;
}
@media (max-width: 767px) {
	.hf2-sec { padding: 40px 4% 0; }
	.hf2-sec-head .season { margin-left: 0; }
}

/* ---------- 08 フロント: 新着物件 ---------- */
.hf2-sec--new .hf2-sec-head {
	margin-bottom: 22px;
	border-top-width: 2px;
}
.hf2-sec--new .hf2-inner {
	max-width: none;
}
@media (min-width: 1024px) {
	.hf2-sec--new {
		width: min(1500px, calc(100vw - var(--hf2-rail) - 80px));
		margin-left: 50%;
		transform: translateX(-50%);
	}
}
.hf2-newtabs { display: flex; gap: 8px; margin: 0 0 24px; }
.hf2-newtabs span {
	font-size: 13px;
	font-weight: bold;
	border-radius: 999px;
	padding: 9px 28px;
	border: 1px solid #d3d3d3;
	color: #666;
	background: #fff;
}
.hf2-newtabs span.on { background: var(--hf2-green); border-color: var(--hf2-green); color: #fff; }
.hf2-newlayout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 0;
	border-bottom: 1px solid #bdbdbd;
	padding: 18px 0 42px;
}
.hf2-newlead {
	text-align: center;
	color: #333;
	padding: 2px 4px;
}
.hf2-advisor {
	width: 106px;
	height: 132px;
	display: block;
	margin: 0 auto 10px;
}
.hf2-advisor .skin,
.hf2-advisor .shirt {
	fill: #fff;
}
.hf2-advisor .hair,
.hf2-advisor .suit {
	fill: #e9efea;
}
.hf2-advisor .tie {
	fill: var(--hf2-green);
}
.hf2-advisor .eye,
.hf2-advisor .line,
.hf2-advisor .hand,
.hf2-advisor .skin,
.hf2-advisor .hair,
.hf2-advisor .suit,
.hf2-advisor .shirt,
.hf2-advisor .tie {
	stroke: #333;
	stroke-width: 4;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.hf2-advisor .eye { stroke: none; fill: #333; }
.hf2-advisor .line,
.hf2-advisor .hand {
	fill: none;
}
.hf2-newlead h3 {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 800;
	color: var(--hf2-green-dark);
	background: none;
	border: none;
	padding: 0;
	letter-spacing: .06em;
}
.hf2-newlead p {
	margin: 0;
	font-size: 14px;
	line-height: 2;
	font-weight: 600;
}
.hf2-newlist { min-width: 0; }
.hf2-bgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.hf2-bitem {
	/* goodroom風: 枠・影・カード背景なし。写真主役＋情報直置き */
	display: block;
	border: none;
	border-radius: 0;
	overflow: visible;
	background: none;
	position: relative;
	text-decoration: none;
	color: #111;
	box-shadow: none;
}
.hf2-bitem .k {
	position: absolute;
	top: 10px;
	left: 10px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 6px 12px;
	border-radius: 3px;
	z-index: 2;
}
.hf2-bitem .k--rent { background: var(--hf2-green); }
.hf2-bitem .k--buy { background: #2c75f4; }
.hf2-bitem img {
	width: 100%;
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
	display: block;
	border-radius: 6px;
	transition: opacity .25s ease;
}
.hf2-bitem:hover img { opacity: .88; }
.hf2-bitem .in {
	display: block;
	box-sizing: border-box;
	width: 100%;
	padding: 14px 2px 0;
	min-height: 0;
}
.hf2-bitem .nm {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.5;
	margin: 0;
	letter-spacing: .03em;
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.hf2-bitem:hover .nm { text-decoration: underline; text-underline-offset: 3px; }
.hf2-bitem .ad,
.hf2-bitem .meta {
	font-size: 13px;
	color: #666;
	line-height: 1.7;
	margin: 0;
}
.hf2-bitem .meta { margin-top: 6px; }
.hf2-bitem .ad { margin-top: 1px; }
.hf2-bitem .pr {
	color: #111;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 26px;
	font-weight: 900;
	margin: 6px 0 0;
	line-height: 1.2;
	letter-spacing: -.01em;
	white-space: nowrap;
}
.hf2-bitem .pr small { font-size: 14px; color: #111; font-weight: 800; margin-left: 2px; }
.hf2-bitem .pr.gr {
	color: var(--hf2-green);
	font-size: 17px;
	font-family: inherit;
	letter-spacing: .02em;
	white-space: normal;
}
.hf2-bitem .tags { margin: 12px 0 0; display: flex; gap: 7px; flex-wrap: wrap; }
.hf2-bitem .tags i {
	font-style: normal;
	font-size: 11px;
	border: 1px solid var(--hf2-green);
	color: var(--hf2-green);
	padding: 3px 10px;
	border-radius: 3px;
	background: #fff;
}
.hf2-more { text-align: right; margin: 18px 0 0; }
.hf2-more a { color: var(--hf2-green); font-size: 14px; font-weight: bold; text-decoration: none; letter-spacing: .03em; }
.hf2-more a:hover { text-decoration: underline; }
@media (max-width: 1023px) {
	.hf2-newlayout {
		grid-template-columns: 1fr;
		gap: 22px;
		padding-bottom: 34px;
	}
	.hf2-newlead {
		display: grid;
		grid-template-columns: 92px 1fr;
		column-gap: 18px;
		text-align: left;
		align-items: center;
		max-width: 620px;
		margin: 0 auto;
	}
	.hf2-advisor { grid-row: span 3; width: 92px; height: 116px; margin: 0; }
	.hf2-newlead h3 { margin-bottom: 4px; }
	.hf2-newlead p { font-size: 13px; line-height: 1.8; }
	.hf2-bgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
	.hf2-bitem .in { padding: 12px 0 0; }
	.hf2-bitem .k { top: 8px; left: 8px; font-size: 11px; padding: 5px 10px; }
	.hf2-bitem .nm { font-size: 14px; }
	.hf2-bitem .pr { font-size: 22px; }
}
@media (max-width: 767px) {
	.hf2-newtabs { gap: 7px; margin-bottom: 18px; }
	.hf2-newtabs span { font-size: 12px; padding: 8px 18px; }
	.hf2-newlayout { padding-top: 6px; }
	.hf2-newlead {
		grid-template-columns: 72px 1fr;
		column-gap: 14px;
	}
	.hf2-advisor { width: 72px; height: 90px; }
	.hf2-newlead h3 { font-size: 17px; }
	.hf2-newlead p { font-size: 12px; line-height: 1.65; }
	.hf2-bgrid { grid-template-columns: 1fr; gap: 14px; }
	.hf2-bitem .in { padding: 12px 0 0; }
	.hf2-bitem .nm { font-size: 15px; }
	.hf2-bitem .ad { font-size: 12px; }
	.hf2-bitem .pr { font-size: 24px; }
	.hf2-bitem .pr small { font-size: 13px; }
	.hf2-more { text-align: left; }
}

/* おすすめ横長カード */
.hf2-ohcard {
	/* goodroom風トーン: 枠・白背景なし、写真左＋情報直置き */
	background: none;
	border: none;
	border-radius: 0;
	display: flex;
	gap: 28px;
	padding: 0;
	margin: 26px 0 0;
	text-decoration: none;
	color: #111;
}
.hf2-ohcard:hover .hf2-ohcard__img img { opacity: .88; }
.hf2-ohcard:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
.hf2-ohcard__img { position: relative; flex: 0 0 360px; }
.hf2-ohcard__img img { width: 360px; height: 270px; object-fit: cover; border-radius: 6px; display: block; transition: opacity .25s ease; }
.hf2-ohcard__img .tag {
	position: absolute;
	top: 10px;
	left: 10px;
	background: var(--hf2-green);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 6px 12px;
	border-radius: 3px;
}
.hf2-ohcard__body { flex: 1; min-width: 0; }
.hf2-ohcard__body .area { color: var(--hf2-green); font-size: 13px; font-weight: bold; margin: 0; }
.hf2-ohcard__body h3 {
	font-size: 23px;
	font-weight: bold;
	margin: 6px 0 12px;
	background: none;
	border: none;
	padding: 0;
	color: #111;
}
.hf2-ohspec {
	display: flex;
	gap: 24px;
	border-top: 1px dotted #bbb;
	border-bottom: 1px dotted #bbb;
	padding: 12px 0;
	margin: 0 0 14px;
	flex-wrap: wrap;
}
.hf2-ohspec span { font-size: 13px; }
.hf2-ohspec b { font-size: 14px; }
.hf2-ohprice { display: flex; gap: 30px; align-items: baseline; flex-wrap: wrap; }
.hf2-ohprice .pr {
	color: #111;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 38px;
	font-weight: 900;
	letter-spacing: -.01em;
}
.hf2-ohprice .pr small { font-size: 16px; color: #111; font-weight: 800; margin-left: 4px; }
.hf2-ohprice .md { font-size: 19px; font-weight: bold; }
.hf2-ohprice .st { font-size: 12.5px; color: #444; }
@media (max-width: 1023px) {
	.hf2-ohcard { flex-direction: column; gap: 14px; }
	.hf2-ohcard__img { flex: none; }
	.hf2-ohcard__img img { width: 100%; height: auto; }
}
@media (max-width: 767px) {
	.hf2-ohcard { margin-top: 20px; }
	.hf2-ohcard__body h3 { font-size: 18px; }
	.hf2-ohprice .pr { font-size: 30px; }
}

/* ---------- 09 フロント: 売却促進バナー ---------- */
.hf2-sellbn {
	position: relative;
	/* CSSファイル位置からの相対パス（環境非依存。絶対URLだと本番サブディレクトリで読めない） */
	background: url('../../../uploads/2026/07/sellbg-property.jpg') center 40%/cover;
	margin-top: 64px;
	padding: 68px 40px 64px;
	overflow: hidden;
}
.hf2-sellbn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(11, 67, 37, .76);
}
.hf2-sellbn::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 86px;
	height: 6px;
	background: #fff;
}
.hf2-sellbn__inner {
	position: relative;
	z-index: 2;
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
	align-items: end;
	gap: 54px;
}
.hf2-sellbn__title .s1 {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .2em;
	color: rgba(255, 255, 255, .8);
	margin: 0 0 14px;
}
.hf2-sellbn__title .s1::before {
	content: "";
	width: 28px;
	height: 1px;
	background: #fff;
}
.hf2-sellbn__title h2 {
	font-size: clamp(36px, 3.4vw, 50px);
	font-weight: 800;
	letter-spacing: .03em;
	text-shadow: none;
	margin: 0;
	background: none;
	border: none;
	padding: 0;
	color: #fff;
	line-height: 1.25;
}
.hf2-sellbn__title h2 .o { color: #fff; }
.hf2-sellbn__title .s2 {
	margin: 17px 0 0;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .05em;
	color: rgba(255, 255, 255, .9);
}
.hf2-sellbn__card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 94px;
	background: #fff;
	border: 2px solid var(--hf2-cta);
	border-radius: 3px;
	padding: 20px 58px 20px 24px;
	text-align: left;
	text-decoration: none;
	color: var(--hf2-cta);
	box-shadow: 0 12px 28px rgba(0, 0, 0, .14);
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.hf2-sellbn__card::after {
	content: "";
	position: absolute;
	right: 25px;
	top: 50%;
	width: 12px;
	height: 12px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-50%) rotate(-45deg);
}
.hf2-sellbn__card:hover {
	background: var(--hf2-cta);
	border-color: #fff;
	color: #fff;
	transform: translateY(-3px);
}
/* テーマの .c-entry__body a に勝たせる */
.c-entry__body a.hf2-sellbn__card { color: var(--hf2-cta); text-decoration: none; }
.c-entry__body a.hf2-sellbn__card:hover { color: #fff; }
.hf2-sellbn__card .c1 {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	opacity: .72;
}
.hf2-sellbn__card .c2 {
	font-size: 18px;
	font-weight: 800;
	line-height: 1.45;
	margin-top: 4px;
}
@media (max-width: 767px) {
	.hf2-sellbn { padding: 48px 6% 42px; margin-top: 48px; }
	.hf2-sellbn__inner { grid-template-columns: 1fr; gap: 28px; }
	.hf2-sellbn__title h2 { font-size: 31px; }
	.hf2-sellbn__title .s2 { font-size: 13px; }
	.hf2-sellbn__card { min-height: 82px; padding: 17px 48px 17px 20px; width: 100%; }
	.hf2-sellbn__card .c2 { font-size: 16px; }
}

/* ---------- 10 フロント: 2カラム（お探し/オーナー） ---------- */
.hf2-kaiuri {
	display: flex;
	gap: 36px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 56px 0;
}
.hf2-ku {
	flex: 1;
	border: 1px solid #dcdcdc;
	border-radius: 10px;
	padding: 24px 28px 22px;
	background: #fff;
	position: relative;
	overflow: hidden;
}
/* 上辺の緑アクセント（枠を締める） */
.hf2-ku::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--hf2-green);
}
.hf2-ku--owner::before { background: var(--hf2-green-dark); }
.hf2-ku__en {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .24em;
	color: var(--hf2-green);
	margin: 0 0 8px;
}
.hf2-ku--owner .hf2-ku__en { color: var(--hf2-green-dark); }
.hf2-ku h2 {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: .04em;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 0 16px;
	border: none;
	border-bottom: 1px solid #e8e8e8;
	margin: 0 0 16px;
	background: none;
	color: #111;
}
.hf2-ku__icon {
	width: 38px;
	height: 38px;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--hf2-green);
	color: var(--hf2-green);
	flex: 0 0 auto;
}
.hf2-ku--owner .hf2-ku__icon {
	border-color: var(--hf2-green-dark);
	color: var(--hf2-green-dark);
}
.hf2-ku__icon .hf2-svgicon {
	width: 22px;
	height: 22px;
	stroke-width: 4.4;
}
.hf2-ku p { font-size: 13.5px; line-height: 2; color: #333; margin: 0; }
.hf2-ku ul { margin: 12px 0 0; padding: 0; list-style: none; }
.hf2-ku li {
	font-size: 13.5px;
	font-weight: bold;
	padding: 12px 26px 12px 0;
	border-bottom: 1px solid #ececec;
	position: relative;
	list-style: none;
}
.hf2-ku li:last-child { border-bottom: none; }
/* 右端シェブロン（ホバーで右へスライド） */
.hf2-ku li::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 2px solid var(--hf2-green);
	border-right: 2px solid var(--hf2-green);
	transform: translateY(-50%) rotate(45deg);
	transition: right .2s ease;
}
.hf2-ku--owner li::after {
	border-color: var(--hf2-green-dark);
}
.hf2-ku li:hover::after { right: 3px; }
.hf2-ku li a { text-decoration: none; color: #111; transition: color .15s ease; }
.hf2-ku li:hover a { color: var(--hf2-green); }
.hf2-ku li small { font-weight: normal; color: #777; margin-left: 8px; font-size: 11px; }
@media (max-width: 1023px) {
	.hf2-kaiuri { flex-direction: column; gap: 20px; padding: 40px 0; }
}

/* ---------- 11 フロント: Re:BIRTH帯 ---------- */
.hf2-rebirth-banner {
	display: block;
	max-width: 1100px;
	margin: 0 auto 56px;
}
.hf2-rebirth-banner img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 6px;
	transition: opacity .25s ease;
}
.hf2-rebirth-banner:hover img { opacity: .9; }
@media (max-width: 767px) {
	.hf2-rebirth-banner { margin-bottom: 40px; }
}
/* ---------- 12 フロント: お知らせ・ガイド ---------- */
.hf2-colgrid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	padding-bottom: 50px;
}
.hf2-colitem {
	/* goodroom風トーン: 枠・カード背景なし、画像タイル＋情報直置き */
	display: block;
	background: none;
	border: none;
	border-radius: 0;
	overflow: visible;
	text-decoration: none;
	color: #111;
}
.hf2-colitem img {
	width: 100%;
	height: 140px;
	object-fit: contain;
	padding: 16px;
	background: #fff;
	display: block;
	border-radius: 6px;
	transition: opacity .25s ease;
}
.hf2-colitem:hover img { opacity: .85; }
.hf2-colitem:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
.hf2-colitem .in { padding: 12px 2px 0; }
.hf2-colitem .cat {
	display: inline-block;
	font-size: 10px;
	background: var(--hf2-green);
	color: #fff;
	padding: 2px 10px;
	border-radius: 3px;
	margin-bottom: 8px;
}
.hf2-colitem .cat.gy { background: #888; }
.hf2-colitem h3 {
	font-size: 13px;
	font-weight: bold;
	line-height: 1.6;
	margin: 0;
	background: none;
	border: none;
	padding: 0;
	color: #111;
}
.hf2-colitem .dt { font-size: 11px; color: #999; margin: 8px 0 0; font-family: "Helvetica Neue", Arial, sans-serif; }
@media (max-width: 1023px) {
	.hf2-colgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.hf2-colgrid { gap: 10px; padding-bottom: 50px; }
}

/* ---------- 13 フロント: 問い合わせ帯 ---------- */
.hf2-contact { display: flex; border-top: 1px solid var(--hf2-gray-line); }
.hf2-cb { flex: 1; text-align: center; padding: 32px 10px; }
.hf2-cb + .hf2-cb { border-left: 1px solid var(--hf2-gray-line); }
.hf2-cb .cap { font-size: 13px; font-weight: bold; margin: 0 0 8px; }
.hf2-cb .num a {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 30px;
	font-weight: 800;
	color: var(--hf2-green);
	text-decoration: none;
}
.hf2-cb .sub { font-size: 11px; color: #666; margin: 6px 0 0; }
.hf2-cb .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	background: var(--hf2-cta);
	color: #fff;
	font-size: 15px;
	font-weight: bold;
	border-radius: 6px;
	padding: 14px 40px;
	text-decoration: none;
	box-shadow: none;
}
.hf2-cb .btn:hover { opacity: 1; filter: brightness(.96); }
.hf2-cb .btn .hf2-svgicon {
	width: 22px;
	height: 22px;
	stroke-width: 4.4;
}
@media (max-width: 1023px) {
	.hf2-contact { flex-direction: column; }
	.hf2-cb + .hf2-cb { border-left: none; border-top: 1px solid var(--hf2-gray-line); }
}

/* トップ各帯の外寸を「新着物件」の表示コンテンツ幅に統一 */
@media (min-width: 1024px) {
	.hf2-sellbn,
	.hf2-kaiuri,
	.hf2-sec--gray,
	.hf2-contact,
	.hf2-rebirth-banner {
		width: min(1200px, calc(100vw - var(--hf2-rail) - 160px));
		max-width: none;
		margin-left: 50%;
		margin-right: 0;
		transform: translateX(-50%);
		box-sizing: border-box;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.hf2-sellbn,
	.hf2-sec--gray,
	.hf2-contact {
		width: calc(100% - 80px);
		margin-left: auto;
		margin-right: auto;
		box-sizing: border-box;
	}
	.hf2-kaiuri,
	.hf2-rebirth-banner { width: calc(100% - 2px); }
}

@media (max-width: 767px) {
	.hf2-sellbn,
	.hf2-sec--gray,
	.hf2-contact {
		width: 92%;
		margin-left: auto;
		margin-right: auto;
		box-sizing: border-box;
	}
}

/* 左レール表示直後の幅でも、カードやバナー内の文字を潰さない */
@media (min-width: 1024px) and (max-width: 1100px) {
	.hf2-sellbn__inner { grid-template-columns: 1fr; gap: 28px; }
	.hf2-kaiuri { flex-direction: column; gap: 20px; }
	.hf2-colgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- 14 フッター ---------- */
/* livable参考のシンプル構成: 白ベース・上段ロゴ＋ユーティリティ・5列プレーンリンク */
.l-footer {
	background-color: #fff;
	color: #333;
	margin-top: 0;
	padding-top: 0;
	border-top: 1px solid #e5e5e5;
}
/* 上段: ロゴ＋ユーティリティ */
.hf3-ftop { border-bottom: 1px solid #e5e5e5; }
.hf3-ftop__inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 26px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.hf3-ftop__logo { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.hf3-ftop__logo:hover, .hf3-ftop__logo:focus { text-decoration: none; }
.hf3-ftop__logo img { width: 165px; height: auto; display: block; }
.hf3-ftop__logo img.hf3-ftop__kanji { width: 160px; }
.hf3-ftop__util { display: flex; flex-wrap: wrap; }
.hf3-ftop__util a {
	font-size: 13px;
	color: #333;
	text-decoration: none;
	padding: 2px 14px;
	border-left: 1px solid #ddd;
}
.hf3-ftop__util a:first-child { border-left: none; }
.hf3-ftop__util a:hover { color: var(--hf2-green); }
/* 中段: 5列リンク */
.l-footer-widget-area { padding: 34px 0 40px; }
.l-footer-widget-area .c-widget { margin: 0; }
@media (min-width: 1024px) {
	.l-footer-widget-area .c-row {
		display: grid !important;
		grid-template-columns: repeat(5, 1fr);
		gap: 28px;
	}
	.l-footer-widget-area .c-row__col {
		width: 100% !important;
		max-width: 100% !important;
		flex: none !important;
		margin: 0 !important;
	}
}
.hf3-fcol__h {
	font-size: 14.5px;
	font-weight: 800;
	color: #111;
	letter-spacing: .06em;
	border-bottom: 2px solid #222;
	padding: 0 0 10px;
	margin: 0 0 12px;
}
.hf3-fcol ul { list-style: none; margin: 0; padding: 0; }
.hf3-fcol li { list-style: none; margin: 0; padding: 0; }
.hf3-fcol li a {
	display: block;
	font-size: 13px;
	color: #555;
	text-decoration: none;
	padding: 6px 0;
	line-height: 1.6;
}
.hf3-fcol li a:hover { color: var(--hf2-green); }
/* 下段: コピーライト */
.c-copyright {
	background-color: #fff;
	color: #888;
	padding: 18px 0;
	border-top: 1px solid #e5e5e5;
}
.c-copyright__text { color: #888; font-size: 11.5px; }
.hf3-cp {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	text-align: left;
}
.hf3-cp .ad { font-size: 11.5px; color: #888; line-height: 1.7; }
.hf3-cp .cr { font-size: 11.5px; color: #888; }
@media (max-width: 1023px) {
	.l-footer-widget-area { padding: 26px 0 30px; }
	.l-footer-widget-area .c-widget { margin-bottom: 22px; }
}
@media (max-width: 767px) {
	.hf3-ftop__inner { padding: 20px 5%; gap: 18px; flex-direction: column; align-items: flex-start; }
	.hf3-ftop__logo { gap: 12px; }
	.hf3-ftop__logo img { width: 140px; }
	.hf3-ftop__logo img.hf3-ftop__kanji { width: 140px; }
	.hf3-ftop__util { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
	.hf3-ftop__util a { font-size: 12.5px; padding: 0 0 0 10px; border-left: 3px solid var(--hf2-green); line-height: 1.5; }
	.hf3-ftop__util a:first-child { border-left: 3px solid var(--hf2-green); }
	.hf3-cp { flex-direction: column; align-items: flex-start; gap: 6px; }
}
/* ---------- 15 下層: 移植コンテンツ（hanjo由来・v2トーン） ---------- */
/* 当社の特徴 */
.hf-feature { margin-bottom: 64px; }
.hf-feature:last-child { margin-bottom: 0; }
/* 見出しは他ページと同じ緑左バーに統一（hf-nodecoリセットより後方・同詳細度以上） */
.c-entry__body .hf-feature h2 {
	font-size: 20px;
	margin: 0 0 26px;
	text-align: left;
	color: #111;
	font-weight: bold;
	letter-spacing: .08em;
	background: none;
	padding: 4px 0 4px 14px;
	border: none;
	border-left: 6px solid var(--hf2-green);
}
.hf-feature__inner { display: flex; gap: 44px; align-items: flex-start; }
.hf-feature__inner--odd { flex-direction: row-reverse; }
.hf-feature__txt { flex: 1; font-size: 14.5px; line-height: 2.1; }
.hf-feature__img { flex: 0 0 400px; margin: 0; }
.hf-feature__img img { width: 100%; height: auto; border-radius: 6px; display: block; }
@media (max-width: 767px) {
	.hf-feature { margin-bottom: 38px; }
	.c-entry__body .hf-feature h2 { font-size: 18px; margin-bottom: 16px; }
	.hf-feature__inner, .hf-feature__inner--odd { display: block; }
	.hf-feature__txt { font-size: 13px; line-height: 1.9; }
	.hf-feature__img { margin-top: 16px; }
}

/* 会社概要テーブル */
/* 概要・沿革テーブル: 物件詳細と同じヘアライン表（枠・グレー背景なし） */
.hf-dltable-wrap table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.hf-dltable-wrap th, .hf-dltable-wrap td {
	border: none;
	border-bottom: 1px solid #ececec;
	padding: 14px 10px;
	font-size: 14.5px;
	text-align: left;
	vertical-align: top;
}
.hf-dltable-wrap tr:first-child th,
.hf-dltable-wrap tr:first-child td { border-top: 2px solid #222; }
.hf-dltable-wrap th { background: none; font-weight: bold; color: #111; width: 200px; }
.hf-dltable-wrap td { color: #444; line-height: 1.8; }
@media (max-width: 767px) {
	.hf-dltable-wrap table, .hf-dltable-wrap tbody,
	.hf-dltable-wrap th, .hf-dltable-wrap td { display: block; width: auto; border: none; }
	.hf-dltable-wrap tr { display: block; border-bottom: 1px solid #ececec; padding: 10px 0; }
	.hf-dltable-wrap tr:first-child { border-top: 2px solid #222; }
	.hf-dltable-wrap th { padding: 0 0 3px; font-size: 13px; }
	.hf-dltable-wrap td { padding: 0; font-size: 13px; }
}
.hf-map iframe { width: 100%; height: 400px; border: 0; display: block; border-radius: 8px; }
@media (max-width: 767px) {
	.hf-map iframe { height: 300px; }
}

/* スタッフ */
.hf-staff { margin: 0; padding: 26px 0; border-bottom: 1px solid #ececec; }
.hf-staff:first-of-type { border-top: 2px solid #222; margin-top: 8px; }
.hf-staff__name { font-size: 20px; font-weight: bold; margin: 0 0 10px; }
.hf-staff__name span { font-size: 13px; font-weight: normal; margin-left: 12px; color: #999; font-family: "Helvetica Neue", Arial, sans-serif; letter-spacing: .06em; }
.hf-staff__position {
	display: inline-block;
	font-size: 11px;
	color: var(--hf2-green-dark);
	border: 1px solid var(--hf2-green-dark);
	border-radius: 3px;
	padding: 2px 10px;
	font-weight: bold;
	margin: 0 0 12px;
	background: #fff;
}
.hf-staff__intro { font-size: 14px; color: #444; line-height: 1.9; }

/* プライバシーポリシー */
.hf-privacy-intro {
	padding: 22px;
	background-color: var(--hf2-gray-bg);
	border-radius: 8px;
	margin-bottom: 40px;
	font-size: 14.5px;
	line-height: 2;
}
.hf-privacy-dl dl { margin: 0; padding: 0 8px; }
.hf-privacy-dl dt { margin-bottom: 6px; font-size: 16px; font-weight: bold; border-left: 4px solid var(--hf2-green); padding-left: 10px; }
.hf-privacy-dl dd { margin: 0 0 32px 14px; font-size: 14.5px; line-height: 2; }
.hf-privacy-dl dd:last-child { margin-bottom: 0; }

/* リンク紹介 */
.hf-link-item {
	border-bottom: 1px solid #ececec;
	margin: 0;
	padding: 18px 4px;
}
.hf-link-item:first-of-type { border-top: 2px solid #222; margin-top: 8px; }
.hf-link-item__title { margin: 0; }
.hf-link-item__title a {
	font-size: 15.5px;
	font-weight: bold;
	display: inline-block;
	padding-left: 24px;
	color: #111;
	background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23249d57' d='M8 1L1 7h2v7h4v-4h2v4h4V7h2L8 1z'/%3E%3C/svg%3E") no-repeat left center / 16px;
	text-decoration: none;
}
.hf-link-item__title a:hover { color: var(--hf2-green); text-decoration: underline; text-underline-offset: 3px; }

/* 各種ご案内ページ（pages/30XX） */
.hf-postpage { font-size: 15px; line-height: 2.1; }
.hf-postpage p { font-size: 15px; line-height: 2.1; }
.hf-postpage .pages_content { margin-bottom: 50px; overflow: hidden; }
.hf-postpage .pages_content:last-child { margin-bottom: 0; }
.hf-postpage .pages_content h3 {
	font-size: 21px;
	font-weight: bold;
	margin-bottom: 16px;
	background: none;
	padding: 0 0 8px;
	border: none;
	border-bottom: 2px solid var(--hf2-green);
}
.hf-postpage .pages_content.left .txt,
.hf-postpage .pages_content.left .img { float: right; }
.hf-postpage .pages_content.right .txt,
.hf-postpage .pages_content.right .img { float: left; }
.hf-postpage .pages_content .txt { width: 60%; }
.hf-postpage .pages_content .img { width: 33%; }
.hf-postpage .pages_content.left .img { margin-right: 5%; }
.hf-postpage .pages_content.right .img { margin-left: 5%; }
.hf-postpage .pages_content .no_img .txt { float: none; width: auto; }
.hf-postpage .pages_content .img ul { list-style: none; margin: 0; padding: 0; }
.hf-postpage .pages_content .img li { margin-bottom: 18px; }
.hf-postpage .pages_content .img img { width: 100%; height: auto; border-radius: 6px; }
.hf-postpage .pages_content .img .cap { margin-top: 8px; font-size: 13px; }
.hf-postpage table { border-collapse: collapse; }
.hf-postpage table th, .hf-postpage table td { border: 1px solid var(--hf2-gray-line); padding: 10px 14px; }
.hf-postpage ul { list-style: disc; padding: 10px 10px 10px 30px; }
.hf-postpage ol { list-style: decimal; padding: 10px 10px 10px 30px; }
@media (max-width: 767px) {
	.hf-postpage, .hf-postpage p { font-size: 13px; line-height: 1.8; }
	.hf-postpage .pages_content { margin-bottom: 28px; }
	.hf-postpage .pages_content h3 { font-size: 17px; }
	.hf-postpage .pages_content.left .txt,
	.hf-postpage .pages_content.left .img,
	.hf-postpage .pages_content.right .txt,
	.hf-postpage .pages_content.right .img { float: none; width: auto; margin: 0; }
	.hf-postpage .pages_content .img { margin-top: 14px; }
}

/* 物件詳細 */
.hf-fudo__cat {
	display: inline-block;
	background-color: var(--hf2-green);
	color: #fff;
	font-size: 12px;
	line-height: 1.6;
	padding: 3px 14px;
	border-radius: 3px;
	margin-bottom: 12px;
}
/* 物件詳細 1行ヘッダー: 黒リード線 + PROPERTY + 物件名 + 種別チップ */
.single-fudo .c-entry__header {
	/* テーマのH1はSR向けに残して視覚非表示（1行ヘッダーで代替） */
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	margin: 0;
	padding: 0;
}
.hf-fudo__head {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 16px;
	border-top: 2px solid #111;
	padding-top: 16px;
	margin: 0 0 22px;
}
.hf-fudo__head .en {
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .24em;
	color: var(--hf2-green);
}
.hf-fudo__head .ttl {
	font-size: 24px;
	font-weight: 800;
	line-height: 1.3;
	color: #111;
}
.hf-fudo__head .hf-fudo__cat { margin: 0; align-self: center; }

/* ギャラリー: 左=大きい写真 / 右=サムネイル3列（多い分は右列内スクロール） */
.hf-fudo__cta { text-align: center; margin: 0 0 40px; }
.hf-fudo__gallery {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 14px;
	max-width: 880px;
	margin: 0 auto 26px;
}
.hf-fudo__gallery-main { margin: 0; min-width: 0; }
.hf-fudo__gallery-main img {
	display: block;
	width: 100%;
	/* 縦横混在（EXIF回転含む）でも枠が暴れないよう正方形ベース+contain */
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: contain;
	background: #f4f4f4;
	border-radius: 6px;
}
.hf-fudo__thumbs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	align-content: start;
	list-style: none;
	margin: 0;
	padding: 0 6px 0 0;
	/* height:0+min-height:100% で行の高さ（=左の正方形写真）にフィットさせ、超過分はスクロール */
	height: 0;
	min-height: 100%;
	overflow-y: auto;
}
.hf-fudo__thumbs li { margin: 0; list-style: none; }
.hf-fudo__thumbs img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	object-fit: cover;
	transition: opacity .2s ease;
}
.hf-fudo__thumbs img:hover { opacity: .75; }
/* スペック表: goodroom風のヘアラインのみ（枠・グレー背景なし） */
.hf-fudo table { width: 100%; border-collapse: collapse; margin-bottom: 40px; }
.hf-fudo table th, .hf-fudo table td {
	border: none;
	border-bottom: 1px solid #ececec;
	padding: 14px 10px;
	font-size: 14px;
	text-align: left;
	vertical-align: top;
}
.hf-fudo table tr:first-child th,
.hf-fudo table tr:first-child td { border-top: 2px solid #222; }
.hf-fudo table th { background: none; font-weight: bold; color: #111; width: 180px; }
.hf-fudo table td { color: #444; line-height: 1.8; }
.hf-fudo__price { font-size: 15px; }
.hf-fudo__price em {
	color: #111;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 28px;
	font-weight: 900;
	font-style: normal;
	letter-spacing: -.01em;
}
@media (max-width: 767px) {
	.hf-fudo table th { width: 104px; }
	.hf-fudo table th, .hf-fudo table td { padding: 11px 4px; font-size: 13px; }
	/* SPは縦積み: 大写真の下にサムネ4列（スクロールなし） */
	.hf-fudo__gallery { grid-template-columns: 1fr; }
	.hf-fudo__thumbs { grid-template-columns: repeat(4, 1fr); height: auto; min-height: 0; overflow: visible; padding: 0; }
}
/* fudo一覧カード（旧トップの新着カード流用） */
.hf-newitems__grid { display: flex; flex-wrap: wrap; gap: 26px; margin: 0; padding: 0; list-style: none; }
.hf-newitems__item { width: 200px; line-height: 1.5; list-style: none; }
.hf-newitems__item a { display: block; text-decoration: none; color: #111; }
.hf-newitems__name { font-size: 13px; font-weight: bold; margin: 0 0 6px; }
.hf-newitems__item a:hover .hf-newitems__name { color: var(--hf2-green); }
.hf-newitems__img { width: 200px; height: 200px; background-color: #eee; overflow: hidden; display: flex; align-items: center; margin-bottom: 8px; border-radius: 6px; }
.hf-newitems__img img { width: 100%; height: auto; }
.hf-newitems__price { font-size: 18px; margin: 0; line-height: 1.2; }
.hf-newitems__price em { color: var(--hf2-red); font-size: 20px; font-weight: bold; font-style: normal; }
.hf-newitems__price span { font-size: 14px; margin-left: 2px; }
.hf-newitems__item p { font-size: 12px; margin: 0 0 2px; }

/* ハブページ（買いたい/売りたい/借りたい/貸したい） */
.hf-hub__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	background: linear-gradient(135deg, #22271f, #0d100e);
	border: 1px solid rgba(255,255,255,.06);
	border-radius: 9px;
	padding: 8px 10px;
	margin: 0 0 32px;
	box-shadow: 0 10px 26px rgba(0,0,0,.18);
}
.c-entry__body .hf-hub__nav a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 22px;
	border-radius: 6px;
	color: rgba(255,255,255,.82);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
/* 各項目の先頭に緑のアクセントドット（かっこよさ＋視認性） */
.c-entry__body .hf-hub__nav a::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--hf2-green);
	transition: transform .2s ease, box-shadow .2s ease;
}
.c-entry__body .hf-hub__nav a:hover {
	background: rgba(255,255,255,.08);
	color: #fff;
}
.c-entry__body .hf-hub__nav a:hover::before {
	transform: scale(1.35);
	box-shadow: 0 0 0 4px rgba(36,157,87,.22);
}
.hf-hub__balloon {
	display: inline-block;
	border: 1px solid var(--hf2-green);
	border-radius: 6px;
	background: #fff;
	color: var(--hf2-green-dark);
	font-size: 12.5px;
	font-weight: 700;
	padding: 8px 16px;
	margin: 0 0 6px;
}
.hf-hub__typebar {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border: 1px solid #dcdcdc;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.c-entry__body .hf-hub__typebar a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 24px 12px 20px;
	border-left: 1px solid #ececec;
	color: #111;
	text-decoration: none;
	text-align: center;
	transition: background .15s ease;
}
.c-entry__body .hf-hub__typebar a:first-child { border-left: none; }
.c-entry__body .hf-hub__typebar a:hover { background: #f7fbf8; }
.hf-hub__typebar b { font-size: 15px; font-weight: 800; }
.hf-hub__typebar .hf2-svgicon { width: 46px; height: 46px; color: var(--hf2-green); fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.hf-hub__typebar span { font-size: 12px; font-weight: 700; color: var(--hf2-green-dark); }
.hf-hub__center { text-align: center; margin: 52px 0 20px; }
.hf-hub__center .hf2-svgicon { display: block; margin: 0 auto; width: 44px; height: 44px; color: var(--hf2-green); fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.hf-hub__center .h { font-size: 21px; font-weight: 800; color: var(--hf2-green-dark); margin: 6px 0 6px; }
.hf-hub__center .s { font-size: 12.5px; color: #777; margin: 0; }
.hf-hub__morebtn { text-align: center; margin: 24px 0 56px; }
.c-entry__body .hf-hub__morebtn a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	padding: 12px 34px;
	border: 1px solid var(--hf2-green-dark);
	border-radius: 999px;
	background: #fff;
	color: var(--hf2-green-dark);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.c-entry__body .hf-hub__morebtn a:hover { background: var(--hf2-green-dark); color: #fff; }
.c-entry__body a.hf-hub__flowbn {
	display: flex;
	align-items: stretch;
	border: 2px solid var(--hf2-green);
	border-radius: 10px;
	overflow: hidden;
	margin: 0 0 14px;
	color: #111;
	text-decoration: none;
	background: #fff;
}
.hf-hub__flowbn .h {
	flex: 0 0 216px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--hf2-green);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	padding: 18px 10px;
	text-align: center;
}
.hf-hub__flowbn .tx { flex: 1; font-size: 13px; color: #444; line-height: 1.9; padding: 16px 20px; align-self: center; }
.hf-hub__flowbn .ar { flex: 0 0 52px; position: relative; }
.hf-hub__flowbn .ar::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--hf2-green);
	border-bottom: 2px solid var(--hf2-green);
	transform: translate(-70%, -50%) rotate(-45deg);
	transition: transform .15s ease;
}
.c-entry__body a.hf-hub__flowbn:hover .ar::after { transform: translate(-40%, -50%) rotate(-45deg); }
.hf-hub__lead { font-size: 14.5px; line-height: 2; color: #444; margin: 0 0 34px; }
/* 共通h2ルール(body:not(.home)…:not(.hf-nodeco) = 0,4,2)がmargin-top:0を強制するため、同等以上の詳細度で上書き */
body:not(.home) .c-entry__body .hf-hub h2:not(.hf-nodeco) {
	background: none;
	border: none;
	border-left: 4px solid var(--hf2-green);
	padding: 2px 0 2px 12px;
	margin: 46px 0 18px;
	font-size: 20px;
	font-weight: 800;
	color: #111;
}
.hf-hub__areas { display: flex; flex-wrap: wrap; gap: 10px; }
.c-entry__body .hf-hub__areas a {
	display: inline-flex;
	align-items: center;
	padding: 9px 22px;
	border: 1px solid #d9d9d9;
	border-radius: 999px;
	background: #fff;
	color: #333;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease;
}
.c-entry__body .hf-hub__areas a:hover { border-color: var(--hf2-green); color: var(--hf2-green); }
.hf-hub__types { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.hf-hub__types--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.c-entry__body .hf-hub__types a {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 18px 16px;
	border: 1px solid #dcdcdc;
	border-radius: 10px;
	color: #111;
	text-decoration: none;
	overflow: hidden;
	transition: border-color .15s ease;
}
.c-entry__body .hf-hub__types a::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--hf2-green);
}
.c-entry__body .hf-hub__types a::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-right: 2px solid var(--hf2-green);
	border-bottom: 2px solid var(--hf2-green);
	transform: translateY(-50%) rotate(-45deg);
	transition: right .15s ease;
}
.c-entry__body .hf-hub__types a:hover { border-color: var(--hf2-green); }
.c-entry__body .hf-hub__types a:hover::after { right: 12px; }
.hf-hub__types b { font-size: 15.5px; font-weight: 800; }
.hf-hub__types small { font-size: 11.5px; color: #888; }
.hf-hub__steps { list-style: none; counter-reset: hubstep; margin: 0; padding: 0; }
.hf-hub__steps li {
	counter-increment: hubstep;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 14px;
	padding: 16px 4px;
	border-bottom: 1px solid #ececec;
}
.hf-hub__steps li:first-child { border-top: 2px solid #222; }
.hf-hub__steps li::before {
	content: counter(hubstep, decimal-leading-zero);
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 17px;
	font-weight: 900;
	color: var(--hf2-green);
	min-width: 34px;
}
.hf-hub__steps b { font-size: 15px; font-weight: 800; color: #111; min-width: 12em; }
.hf-hub__steps span { font-size: 13px; color: #666; flex: 1 1 240px; }
.hf-hub__more { text-align: right; margin: 14px 0 0; }
.c-entry__body .hf-hub__more a { font-size: 13.5px; font-weight: 700; color: #333; text-decoration: none; }
.c-entry__body .hf-hub__more a:hover { color: var(--hf2-green); }
.hf-hub__note { font-size: 13px; margin: 14px 0 0; }
.c-entry__body .hf-hub__note a { color: #333; font-weight: 700; text-decoration: none; margin-right: 14px; }
.c-entry__body .hf-hub__note a:hover { color: var(--hf2-green); }
.hf-hub__panel {
	position: relative;
	border: 1px solid #dcdcdc;
	border-radius: 10px;
	padding: 28px 30px;
	overflow: hidden;
	margin: 0 0 10px;
}
.hf-hub__panel::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--hf2-green);
}
.hf-hub__panel .t { font-size: 12px; font-weight: 700; color: var(--hf2-green); margin: 0 0 2px; }
.hf-hub__panel .b { font-size: 24px; font-weight: 800; color: #111; margin: 0 0 8px; }
.hf-hub__panel .s { font-size: 13px; color: #666; margin: 0 0 16px; }
.hf-hub__cta { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 44px 0 10px; }
.c-entry__body .hf-hub__cta-sub { background: #fff; color: var(--hf2-cta); border: 1px solid var(--hf2-cta); }
.c-entry__body .hf-hub__cta-sub:hover { background: var(--hf2-cta); color: #fff; }
@media (max-width: 767px) {
	.hf-hub__lead { font-size: 13px; margin-bottom: 26px; }
	body:not(.home) .c-entry__body .hf-hub h2:not(.hf-nodeco) { font-size: 17.5px; margin: 34px 0 14px; }
	.hf-hub__nav { gap: 5px; padding: 7px 8px; }
	.c-entry__body .hf-hub__nav a { flex: 1 1 auto; justify-content: center; gap: 7px; padding: 10px 10px; font-size: 11.5px; }
	.c-entry__body .hf-hub__nav a::before { width: 5px; height: 5px; }
	.hf-hub__typebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.c-entry__body .hf-hub__typebar a { padding: 18px 8px 14px; border-left: none; border-top: 1px solid #ececec; }
	.c-entry__body .hf-hub__typebar a:nth-child(-n+2) { border-top: none; }
	.c-entry__body .hf-hub__typebar a:nth-child(even) { border-left: 1px solid #ececec; }
	.hf-hub__typebar b { font-size: 13.5px; }
	.hf-hub__typebar .hf2-svgicon { width: 38px; height: 38px; }
	.hf-hub__typebar span { font-size: 11px; }
	.hf-hub__center { margin: 40px 0 16px; }
	.hf-hub__center .h { font-size: 18px; }
	.hf-hub__flowbn { flex-wrap: wrap; }
	.hf-hub__flowbn .h { flex: 1 1 calc(100% - 52px); padding: 12px 10px; font-size: 13.5px; }
	.hf-hub__flowbn .ar { flex: 0 0 52px; min-height: 44px; }
	.hf-hub__flowbn .tx { flex: 1 1 100%; padding: 12px 16px 14px; font-size: 12px; }
	.hf-hub__types, .hf-hub__types--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.c-entry__body .hf-hub__types a { padding: 14px 14px 12px; }
	.hf-hub__types b { font-size: 13.5px; }
	.hf-hub__types small { font-size: 10.5px; }
	.hf-hub__panel { padding: 20px 18px; }
	.hf-hub__panel .b { font-size: 20px; }
	.hf-hub__cta { flex-direction: column; align-items: stretch; }
	.hf-hub__cta .hf-sim__btn { text-align: center; }
}

/* 蘇らせたい（/reno/）: このページだけ緑白→黒×黄トーン */
.hf-hub--reno .hf-hub__nav a::before { background: var(--hf2-yellow); }
.hf-hub--reno .hf-hub__nav a:hover::before { box-shadow: 0 0 0 4px rgba(255,225,77,.25); }
body:not(.home) .c-entry__body .hf-hub--reno h2:not(.hf-nodeco) {
	background: #111;
	border-left: 4px solid var(--hf2-yellow);
	color: #fff;
	padding: 8px 14px;
	border-radius: 3px;
}
/* リンクなしバナー（詳しくはこちら除去版） */
.hf2-rebirth-banner--plain { cursor: default; }
.hf2-rebirth-banner--plain:hover img { opacity: 1; }
/* リンクなしカード（span.itm）: カードの見た目のみ・シェブロンなし */
.c-entry__body .hf-hub--reno .hf-hub__types .itm {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 18px 16px;
	border: 1px solid #dcdcdc;
	border-radius: 10px;
	color: #111;
	overflow: hidden;
	background: #fff;
}
.c-entry__body .hf-hub--reno .hf-hub__types .itm::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--hf2-yellow);
}
/* Before→After 比較（外観） */
.hf-reno__ba {
	display: grid;
	grid-template-columns: 1fr 56px 1fr;
	align-items: center;
	gap: 8px;
	margin: 0 0 20px;
}
.hf-reno__ba-item { position: relative; margin: 0; }
.hf-reno__ba-item img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}
.hf-reno__ba-item .tag {
	position: absolute;
	top: 10px;
	left: 10px;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .14em;
	padding: 5px 12px;
	border-radius: 3px;
}
.hf-reno__ba-item .tag--before { background: rgba(17,17,17,.82); color: #fff; }
.hf-reno__ba-item .tag--after { background: var(--hf2-yellow); color: #111; }
.hf-reno__ba-item figcaption { font-size: 11.5px; color: #888; text-align: center; margin-top: 8px; }
.hf-reno__ba-arrow { position: relative; height: 40px; }
.hf-reno__ba-arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border-left: 22px solid var(--hf2-yellow);
	border-top: 16px solid transparent;
	border-bottom: 16px solid transparent;
}
/* Re:BIRTH実写真ストリップ */
.hf-reno__photos {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 16px;
	margin: 0 0 56px;
}
.hf-reno__photos--2 { grid-template-columns: 1fr 1fr; }
/* 理由カードのイラスト（黒黄ページ用・淡黄地） */
.hf-hub--reno .hf-hub__types .itm .ph-art {
	display: block;
	background: #fdf7dd;
	border-radius: 6px;
	padding: 8px 12px;
	margin: 2px 0 12px;
}
.hf-hub--reno .hf-hub__types .itm .ph-art svg { display: block; width: 100%; height: auto; }
.hf-reno__photos figure { margin: 0; }
.hf-reno__photos img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}
.hf-reno__photos figcaption {
	font-size: 11.5px;
	color: #888;
	text-align: center;
	margin-top: 8px;
}
/* 選ばれる理由カードの写真ヘッダー */
.c-entry__body .hf-hub--reno .hf-hub__types .itm .ph { display: block; margin: 2px 0 10px; }
.c-entry__body .hf-hub--reno .hf-hub__types .itm .ph img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 6px;
}
@media (max-width: 767px) {
	.hf-reno__photos { grid-template-columns: 1fr 1fr; }
	.hf-reno__photos figure:first-child { grid-column: 1 / -1; }
}
.hf-hub--reno .hf-hub__center .h { color: #111; }
.hf-hub--reno .hf-hub__center .hf2-svgicon { color: #111; }
.c-entry__body .hf-hub--reno a.hf-hub__flowbn { border-color: #111; }
.hf-hub--reno .hf-hub__flowbn .h { background: #111; color: var(--hf2-yellow); }
.hf-hub--reno .hf-hub__flowbn .ar::after { border-color: #111; }
.c-entry__body .hf-hub--reno .hf-hub__morebtn a { border-color: #111; color: #111; }
.c-entry__body .hf-hub--reno .hf-hub__morebtn a:hover { background: #111; color: var(--hf2-yellow); }
@media (max-width: 767px) {
	.c-entry__body .hf-hub--reno .hf-hub__types .itm { padding: 14px 14px 12px; }
}

/* ガイドページ共通（流れ・Q&A・注意事項などの下層ページ） */
.hf-guide__lead { font-size: 14.5px; line-height: 2; color: #444; margin: 0 0 56px; }
.hf-guide__lead--center { text-align: center; max-width: 720px; margin-inline: auto; }
/* ステップフロー（縦タイムライン） */
.hf-guide__flow { list-style: none; margin: 0 0 40px; padding: 0; counter-reset: gstep; }
.hf-guide__step {
	position: relative;
	display: grid;
	grid-template-columns: 56px 1fr 208px;
	gap: 20px 22px;
	align-items: start;
	padding: 0 0 52px 0;
	margin: 0;
}
/* ステップの挿絵 */
.hf-guide__step-art {
	display: block;
	width: 208px;
	background: #f6faf5;
	border-radius: 12px;
	padding: 10px 12px;
}
.hf-guide__step-art svg { display: block; width: 100%; height: auto; }
.hf-guide__step::before {
	content: "";
	position: absolute;
	left: 27px;
	top: 8px;
	bottom: -8px;
	width: 2px;
	background: #dbe7df;
}
.hf-guide__step:last-child::before { display: none; }
.hf-guide__step-node {
	position: relative;
	z-index: 1;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--hf2-green);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--hf2-green);
}
.hf-guide__step-node .hf2-svgicon { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; }
.hf-guide__step-node::after {
	counter-increment: gstep;
	content: "STEP " counter(gstep);
	position: absolute;
	top: -16px;
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 8.5px;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--hf2-green);
}
.hf-guide__step-body { padding-top: 2px; }
.c-entry__body .hf-guide__step-body h3 {
	background: none;
	border: none;
	padding: 0;
	margin: 6px 0 8px;
	font-size: 17.5px;
	font-weight: 800;
	color: #111;
}
.hf-guide__step-body p { font-size: 13.5px; line-height: 1.95; color: #555; margin: 0 0 8px; }
/* 期間の目安タグ */
.hf-guide__step-body h3 .term {
	display: inline-block;
	vertical-align: 2px;
	margin-left: 10px;
	font-size: 10.5px;
	font-weight: 700;
	color: var(--hf2-green-dark);
	background: var(--hf2-lime-soft);
	border-radius: 999px;
	padding: 3px 12px;
	letter-spacing: .04em;
}
/* ガイド内の中見出し（緑左バー） */
.c-entry__body .hf-guide__h2 {
	background: none;
	border: none;
	border-left: 4px solid var(--hf2-green);
	padding: 2px 0 2px 12px;
	margin: 68px 0 26px;
	font-size: 19px;
	font-weight: 800;
	color: #111;
}
/* 必要書類チェックリスト */
.hf-guide__checklist {
	border: 1px solid #e3e3e3;
	border-radius: 10px;
	padding: 26px 30px;
	margin: 0 0 60px;
	background: #fff;
}
.c-entry__body .hf-guide__checklist h3 {
	display: flex;
	align-items: center;
	gap: 10px;
	background: none;
	border: none;
	padding: 0;
	margin: 0 0 12px;
	font-size: 15.5px;
	font-weight: 800;
	color: #111;
}
.hf-guide__checklist h3 .ic { color: var(--hf2-green-dark); display: inline-flex; }
.hf-guide__checklist h3 .ic .hf2-svgicon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.c-entry__body .hf-guide__checklist ul { list-style: none; margin: 0; padding: 0; }
.c-entry__body .hf-guide__checklist li {
	position: relative;
	font-size: 13.5px;
	color: #444;
	padding: 9px 4px 9px 30px;
	border-bottom: 1px solid #f0f0f0;
}
.hf-guide__checklist li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 14px;
	width: 12px;
	height: 7px;
	border-left: 2.5px solid var(--hf2-green);
	border-bottom: 2.5px solid var(--hf2-green);
	transform: rotate(-45deg);
}
.hf-guide__checklist .cl-note { font-size: 12px; color: #888; margin: 12px 0 0; }
.hf-guide__step-body .note {
	display: block;
	font-size: 12.5px;
	color: #666;
	background: var(--hf2-lime-soft);
	border-radius: 6px;
	padding: 10px 14px;
	margin-top: 8px;
}
/* 図解付きカード（横並び） */
.hf-guide__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin: 0 0 60px; }
.hf-guide__cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hf-guide__cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* イラスト付きカード */
.hf-guide__card--art { text-align: center; }
.hf-guide__card-art {
	display: block;
	background: #f6faf5;
	border-radius: 10px;
	padding: 10px 14px;
	margin: 0 0 16px;
}
.hf-guide__card-art svg { display: block; width: 100%; max-width: 220px; height: auto; margin: 0 auto; }
.c-entry__body .hf-guide__card--art h3 { text-align: center; }
.hf-guide__card--art p { text-align: left; }
@media (max-width: 900px) {
	.hf-guide__cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.hf-guide__cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hf-guide__card {
	border: 1px solid #e3e3e3;
	border-radius: 10px;
	padding: 22px 20px;
	background: #fff;
}
.hf-guide__card .ic {
	width: 46px;
	height: 46px;
	border-radius: 10px;
	background: var(--hf2-lime-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
	color: var(--hf2-green-dark);
}
.hf-guide__card .ic .hf2-svgicon { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.c-entry__body .hf-guide__card h3 { background: none; border: none; padding: 0; margin: 0 0 6px; font-size: 15.5px; font-weight: 800; color: #111; }
.hf-guide__card p { font-size: 13px; line-height: 1.85; color: #555; margin: 0; }
/* 補足・注意ボックス */
.hf-guide__callout {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	border: 1px solid #e3e3e3;
	border-left: 4px solid var(--hf2-green);
	border-radius: 8px;
	background: #fafcfa;
	padding: 22px 26px;
	margin: 0 0 56px;
}
.hf-guide__callout--warn { border-left-color: var(--hf2-red); background: #fef8f8; }
.hf-guide__callout .ic { flex: 0 0 auto; color: var(--hf2-green); }
.hf-guide__callout--warn .ic { color: var(--hf2-red); }
.hf-guide__callout .ic .hf2-svgicon { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.c-entry__body .hf-guide__callout h3 { background: none; border: none; padding: 0; margin: 0 0 5px; font-size: 14.5px; font-weight: 800; color: #111; }
.hf-guide__callout p { font-size: 13px; line-height: 1.85; color: #555; margin: 0; }
/* Q&A アコーディオン風 */
.hf-guide__qa { border-top: 2px solid #222; margin: 0 0 60px; }
.hf-guide__qa dt {
	position: relative;
	font-size: 15px;
	font-weight: 800;
	color: #111;
	padding: 18px 18px 18px 44px;
	border-bottom: 1px solid #ececec;
}
.hf-guide__qa dt::before {
	content: "Q";
	position: absolute;
	left: 14px;
	top: 16px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--hf2-green);
	color: #fff;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 12px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}
.hf-guide__qa dd {
	position: relative;
	font-size: 13.5px;
	line-height: 1.95;
	color: #555;
	margin: 0;
	padding: 16px 18px 20px 44px;
	border-bottom: 1px solid #ececec;
	background: #fafafa;
}
.hf-guide__qa dd::before {
	content: "A";
	position: absolute;
	left: 14px;
	top: 15px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #333;
	color: #fff;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 12px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* ページ末CTA */
.hf-guide__cta { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 24px 0 20px; }
@media (max-width: 767px) {
	.hf-guide__lead { font-size: 13px; margin-bottom: 26px; }
	.hf-guide__step { grid-template-columns: 46px 1fr; gap: 12px 14px; }
	.hf-guide__step::before { left: 22px; }
	.hf-guide__step-node { width: 46px; height: 46px; }
	.hf-guide__step-node .hf2-svgicon { width: 23px; height: 23px; }
	.c-entry__body .hf-guide__step-body h3 { font-size: 15.5px; }
	.hf-guide__step-art { grid-column: 2; width: min(230px, 100%); margin-top: 2px; }
	.hf-guide__cta { flex-direction: column; align-items: stretch; }
	.hf-guide__cta .hf-sim__btn { text-align: center; }
}

/* 物件一覧（CPT fudo・[hf_bukken_list]） */
.hf-flist__tabs { display: flex; gap: 10px; margin: 0 0 18px; }
.hf-flist__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 92px;
	padding: 9px 24px;
	border: 1px solid #d9d9d9;
	border-radius: 999px;
	background: #fff;
	color: #333;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.hf-flist__tab:hover { border-color: var(--hf2-green); color: var(--hf2-green); }
.hf-flist__tab.is-active { background: var(--hf2-green); border-color: var(--hf2-green); color: #fff; }
.c-entry__body a.hf-flist__tab { text-decoration: none; }
.hf-flist__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	padding: 16px;
	background: #f7f7f7;
	border-radius: 8px;
	margin-bottom: 8px;
}
.hf-flist__filter select {
	padding: 10px 14px;
	font-size: 13.5px;
	color: #333;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	background-color: #fff;
}
.hf-flist__filter select:focus { border-color: var(--hf2-green); box-shadow: 0 0 0 2px rgba(36,157,87,.15); outline: none; }
.hf-flist__kw {
	flex: 1 1 220px;
	min-width: 0;
	padding: 10px 14px;
	font-size: 13.5px;
	color: #333;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	background: #fff;
}
.hf-flist__kw:focus { border-color: var(--hf2-green); box-shadow: 0 0 0 2px rgba(36,157,87,.15); outline: none; }
.hf-flist__filter button {
	padding: 10px 26px;
	border: none;
	border-radius: 999px;
	background: var(--hf2-green-dark);
	color: #fff;
	font-size: 13.5px;
	font-weight: 700;
	cursor: pointer;
}
.hf-flist__filter button:hover { opacity: .9; }
.hf-flist__count { font-size: 12.5px; color: #777; margin: 14px 0 18px; }
.hf-flist__grid { gap: 36px 20px; margin-bottom: 40px; }
.c-entry__body .hf-flist__grid a.hf2-bitem { text-decoration: none; }
.hf-flist__noimg {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	background: #f0f0f0;
	border-radius: 6px;
	color: #aaa;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 12px;
	letter-spacing: .14em;
}
.hf-flist__pager { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 6px 0 30px; }
.hf-flist__page {
	min-width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	color: #333;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
}
.c-entry__body a.hf-flist__page { text-decoration: none; }
.hf-flist__page:hover { border-color: var(--hf2-green); color: var(--hf2-green); }
.hf-flist__page.is-current { background: #222; border-color: #222; color: #fff; pointer-events: none; }
.hf-flist__none { padding: 30px 0 40px; color: #666; }
@media (max-width: 767px) {
	.hf-flist__tab { min-width: 0; flex: 1; padding: 9px 10px; font-size: 12.5px; }
	.hf-flist__filter { padding: 12px; }
	.hf-flist__filter select { flex: 1 1 40%; min-width: 0; }
	.hf-flist__filter button { flex: 1 1 100%; }
}

/* フォーム（CF7） */
/* フォーム表: 会社概要・物件詳細と同じヘアライン流儀 */
.hf-form .hf-form-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.hf-form .hf-form-table th, .hf-form .hf-form-table td {
	border: none;
	border-bottom: 1px solid #ececec;
	padding: 16px 10px;
	font-size: 14px;
	text-align: left;
	vertical-align: middle;
}
.hf-form .hf-form-table tr:first-child th,
.hf-form .hf-form-table tr:first-child td { border-top: 2px solid #222; }
.hf-form .hf-form-table th { background: none; font-weight: bold; color: #111; width: 240px; }
.hf-form .hf-req {
	display: inline-block;
	background: #fff;
	color: var(--hf2-red);
	border: 1px solid var(--hf2-red);
	font-size: 10.5px;
	padding: 1px 8px;
	margin-left: 10px;
	vertical-align: middle;
	font-weight: bold;
	border-radius: 3px;
}
.hf-form input[type="text"],
.hf-form input[type="email"],
.hf-form input[type="tel"],
.hf-form textarea,
.hf-form select {
	border: 1px solid #d9d9d9;
	border-radius: 4px;
	padding: 9px;
	font-size: 14px;
	max-width: 100%;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.hf-form input[type="text"]:focus,
.hf-form input[type="email"]:focus,
.hf-form input[type="tel"]:focus,
.hf-form textarea:focus,
.hf-form select:focus {
	border-color: var(--hf2-green);
	box-shadow: 0 0 0 2px rgba(36, 157, 87, .15);
}
.hf-form textarea { width: 100%; }
.hf-form .wpcf7-submit {
	display: block;
	margin: 0 auto;
	background-color: var(--hf2-cta);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 16px;
	font-weight: bold;
	letter-spacing: .1em;
	padding: 16px 80px;
	cursor: pointer;
}
.hf-form .wpcf7-submit:hover { opacity: .8; }
@media (max-width: 767px) {
	.hf-form .hf-form-table, .hf-form .hf-form-table tbody,
	.hf-form .hf-form-table th, .hf-form .hf-form-table td {
		display: block;
		width: auto;
		border: none;
	}
	.hf-form .hf-form-table tr { display: block; border-bottom: 1px solid #ececec; padding: 12px 0; }
	.hf-form .hf-form-table tr:first-child { border-top: 2px solid #222; }
	.hf-form .hf-form-table th { padding: 0 0 6px; }
	.hf-form .hf-form-table td { padding: 0; }
	.hf-form .wpcf7-submit { width: 100%; padding: 14px 10px; }
}

/* ローンシミュレーション */
.hf-sim table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.hf-sim th, .hf-sim td { border: none; border-bottom: 1px solid #ececec; padding: 14px 10px; font-size: 14px; text-align: left; vertical-align: middle; }
.hf-sim table tr:first-child th,
.hf-sim table tr:first-child td { border-top: 2px solid #222; }
.hf-sim th { background: none; font-weight: bold; color: #111; width: 240px; }
.hf-sim td { color: #444; }
.hf-sim input { border: 1px solid #ccc; border-radius: 4px; padding: 8px; font-size: 14px; width: 10em; text-align: right; }
.hf-sim__btn {
	display: inline-block;
	background-color: var(--hf2-cta);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 15px;
	font-weight: bold;
	padding: 12px 60px;
	cursor: pointer;
	text-decoration: none;
}
.hf-sim__btn:hover { opacity: .8; }
/* テーマの .c-entry__body a の文字色に負けないよう白文字を明示（CTAは白文字が原則） */
.c-entry__body a.hf-sim__btn { color: #fff; text-decoration: none; }
/* ただしアウトライン型のサブCTAはCTA色文字のまま（ホバーで白反転） */
.c-entry__body a.hf-sim__btn.hf-hub__cta-sub { color: var(--hf2-cta); }
.c-entry__body a.hf-sim__btn.hf-hub__cta-sub:hover { color: #fff; }
.hf-sim__note { font-size: 12px; color: #666; margin-top: 14px; }

/* お知らせ一覧（text2行形式） */
.p-archive .c-entries--text2 {
	border: none;
	border-top: 2px solid #222;
	border-radius: 0;
	padding: 0;
	display: block;
	margin-top: 8px;
}
.p-archive .c-entries--text2 .c-entries__item { border: none; border-bottom: 1px solid #ececec; padding: 18px 4px; }
.p-archive .c-entries--text2 .c-entry-summary { display: flex; align-items: center; gap: 18px; }
.p-archive .c-entries--text2 .c-entry-summary__figure { display: none; }
.p-archive .c-entry-summary__term,
.p-archive .c-entries--text2 .c-entry-summary__term {
	position: static;
	display: inline-block;
	border: 1px solid var(--hf2-green);
	background-color: #fff;
	color: var(--hf2-green);
	padding: 4px 8px;
	font-size: 11px;
	line-height: 1.2;
	min-width: 8em;
	text-align: center;
	border-radius: 3px;
}
.p-archive .c-entries--text2 .c-entry-summary__body {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	align-items: center;
	gap: 18px;
	flex: 1;
	min-width: 0;
}
.p-archive .c-entries--text2 .c-entry-summary__title {
	font-size: 14px;
	font-weight: normal;
	background: none;
	color: #111;
	padding: 0;
	margin: 0;
}
.p-archive .c-entries--text2 .c-entry-summary__header { margin: 0; }
.p-archive .c-entries--text2 .c-entry-summary__meta { margin: 0; }
.p-archive .c-entries--text2 .c-meta { display: flex; align-items: center; gap: 18px; margin: 0; }
.p-archive .c-entries--text2 .c-meta__item { margin: 0; }
.p-archive .c-entries--text2 .c-meta__item--published { font-size: 14px; letter-spacing: .05em; }
.p-archive .c-entries--text2 .c-meta__item--categories { display: inline-block; }
@media (max-width: 767px) {
	.p-archive .c-entries--text2 { padding: 16px 18px; }
	.p-archive .c-entries--text2 .c-entry-summary { flex-wrap: wrap; gap: 10px; }
}

/* 投稿詳細 */
.single .c-meta__item--updated,
.single .c-meta__item--author { display: none; }
.single .c-entry__body { font-size: 15px; line-height: 2.1; }
#comments, .c-entry__comments, .comments-area { display: none; }
.c-prev-next-nav { display: none; }
.page .c-entry__meta, .page .c-meta { display: none; }

/* 本社移転のご挨拶（news） */
.hf-move__letter { margin: 0 0 56px; }
.hf-move__letter p { margin: 0 0 1.6em; }
.hf-move__sign { text-align: right; font-weight: 700; }
.hf-move__from { text-align: right; margin-top: 2.2em !important; }
.hf-move__photo { margin: 0 0 60px; text-align: center; }
.hf-move__photo img { border-radius: 12px; max-width: 100%; height: auto; }
.hf-move__photo figcaption { font-size: 13px; color: #666; margin-top: 10px; }
.hf-move__addr { display: grid; grid-template-columns: 1fr 56px 1fr; align-items: stretch; margin: 0 0 36px; }
.hf-move__addr .col { background: #f6f7f6; border: 1px solid #e2e6e2; border-radius: 12px; padding: 22px 26px; }
.hf-move__addr .col p { margin: 0; line-height: 1.9; }
.hf-move__addr .col .tag { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .12em; padding: 3px 14px; border-radius: 999px; margin-bottom: 12px; background: #8a918a; color: #fff; }
.hf-move__addr .col--new { background: var(--hf2-green-pale, #edf7e4); border-color: #cfe3c6; }
.hf-move__addr .col--new .tag { background: var(--hf2-green, #1b7a43); }
.hf-move__addr .arrow { display: flex; align-items: center; justify-content: center; color: var(--hf2-green, #1b7a43); }
.hf-move__addr .arrow::before { content: ""; border-style: solid; border-width: 11px 0 11px 16px; border-color: transparent transparent transparent currentColor; }
.hf-move__info { margin: 0 0 64px; border: 1px solid #e2e6e2; border-radius: 12px; overflow: hidden; }
.hf-move__info table { width: 100%; border-collapse: collapse; margin: 0; }
.hf-move__info th { background: #f2f7f0; width: 7.5em; font-weight: 700; text-align: left; padding: 15px 20px; border-bottom: 1px solid #e8eee6; vertical-align: top; white-space: nowrap; font-size: 14px; }
.hf-move__info td { padding: 15px 20px; border-bottom: 1px solid #e8eee6; font-size: 14px; }
.hf-move__info tr:last-child th, .hf-move__info tr:last-child td { border-bottom: 0; }
@media (max-width: 767px) {
	.hf-move__addr { grid-template-columns: 1fr; }
	.hf-move__addr .arrow { transform: rotate(90deg); padding: 10px 0; min-height: 44px; }
	.hf-move__info th { width: 6em; }
}
.single .c-meta__item--modified { display: none; }
.single .wp-profile-box { display: none; }

/* モバイルヘッダー: 英字ロゴ＋日本語ロゴ並列（PCは左ナビに日本語ロゴがあるため非表示） */
.hf2-custom-logo { display: flex; align-items: center; gap: 10px; }
.hf2-logo-kanji { width: 128px; height: auto; display: block; }
@media (max-width: 63.9375em) {
	.c-site-branding__title .custom-logo { width: 108px !important; }
}
@media (min-width: 64em) {
	.hf2-logo-kanji { display: none; }
}
@media (max-width: 374px) {
	.hf2-logo-kanji { width: 108px; }
	.c-site-branding__title .custom-logo { width: 96px !important; }
}

/* ロゴ下キャプション（SINCE 1970 / 創業1970年） */
.hf2-logo-col,
.hf3-ftop__col { display: flex; flex-direction: column; align-items: center; }
.hf2-logo-since,
.hf3-ftop__since {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 5px 0 0;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .22em;
	text-indent: .22em;
	color: #5d6660;
	line-height: 1;
	white-space: nowrap;
}
.hf3-ftop__since::before,
.hf3-ftop__since::after {
	content: "";
	width: 16px;
	height: 1px;
	background: #c8cec9;
}
@media (min-width: 64em) {
	.hf2-custom-logo .hf2-logo-since { display: none; }
	.hf2-logo-col--jp { display: none; }
}

/* 投稿詳細・固定ページ: 本文エリアの左右余白（トップ・サイトフッターは対象外）
 * PCはページタイトル左端が物件マップ見出し（帯パディング44px）と揃う位置に調整 */
.single-post .l-contents__main,
.page:not(.home) .l-contents__main { padding-left: 15px; padding-right: 15px; box-sizing: border-box; }
@media (max-width: 1023px) {
	.single-post .l-contents__main,
	.page:not(.home) .l-contents__main { padding-left: 28px; padding-right: 28px; }
}
@media (max-width: 767px) {
	.single-post .l-contents__main,
	.page:not(.home) .l-contents__main { padding-left: 0; padding-right: 0; }
}
/* buy/rent 上部の物件マップ: タブレットは帯を余白ぶん外へ出しつつ見出しを本文に揃える */
@media (min-width: 768px) and (max-width: 1023px) {
	.page:not(.home) .l-contents__main .hf2-property-map-section { width: calc(100% + 56px); margin-left: -28px; }
}

/* お知らせバナー 2件表示: 外枠サイズ据え置き・中身を縮小して2カラム */
.hf2-notice--double .hf2-notice__cols { flex-direction: row; align-items: stretch; }
.hf2-notice__col {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	padding: 4px 30px;
	color: #fff;
	text-decoration: none;
	text-align: center;
}
.hf2-notice__col + .hf2-notice__col { border-left: 1px solid rgba(255, 255, 255, .25); }
a.hf2-notice__col { transition: background-color .2s ease; }
a.hf2-notice__col:hover { background: rgba(255, 255, 255, .07); }
a.hf2-notice__col:hover .hf2-notice__more { background: var(--hf2-green-dark); border-color: var(--hf2-green-dark); }
.hf2-notice--double .hf2-notice__date { font-size: 62px; }
.hf2-notice--double .hf2-notice__date small { width: 170px; font-size: 11px; gap: 10px; }
.hf2-notice--double .hf2-notice__date::after { font-size: 26px; margin-top: 4px; }
.hf2-notice--double .hf2-notice__title { font-size: 23px; }
.hf2-notice--double .hf2-notice__sub { font-size: 12.5px; margin-top: 8px; }
.hf2-notice--double .hf2-notice__more { min-width: 190px; min-height: 40px; margin-top: 14px; font-size: 11px; padding: 0 20px; }
@media (max-width: 767px) {
	/* 2件表示: 縦積みでも窮屈にならないよう外枠を広げ、装飾「+」を省いて縦を詰める */
	.hf2-notice--double { top: 50%; padding: 16px 16px; }
	.hf2-notice--double .hf2-notice__label { margin-bottom: 6px; }
	.hf2-notice--double .hf2-notice__cols { flex-direction: column; gap: 4px; }
	.hf2-notice__col { padding: 11px 6px; gap: 2px; }
	.hf2-notice__col + .hf2-notice__col { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .25); }
	.hf2-notice--double .hf2-notice__date { font-size: 30px; line-height: 1; }
	.hf2-notice--double .hf2-notice__date small { width: 108px; font-size: 6.5px; gap: 6px; margin-top: 2px; }
	.hf2-notice--double .hf2-notice__date::after { display: none; }
	.hf2-notice--double .hf2-notice__title { font-size: 14.5px; margin-top: 4px; }
	.hf2-notice--double .hf2-notice__sub { font-size: 9px; margin-top: 3px; }
	.hf2-notice--double .hf2-notice__more { min-width: 150px; min-height: 30px; margin-top: 8px; font-size: 9px; }
}

/* 提携サービス「安心入居サポート」ブロック（JBR紺アクセント・自作アイコン） */
.hf-anshin {
	--anshin-navy: #072365;
	border: 1px solid #cdd7ec;
	background: #f4f7fc;
	border-radius: 12px;
	padding: 22px 26px 20px;
	margin: 0 0 22px;
}
.hf-anshin__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.hf-anshin__badge {
	display: inline-flex; align-items: center; gap: 7px;
	background: var(--anshin-navy); color: #fff;
	font-size: 13px; font-weight: 800; letter-spacing: .04em;
	padding: 6px 14px; border-radius: 999px; white-space: nowrap;
}
.hf-anshin__badge svg { width: 16px; height: 16px; }
.hf-anshin__24 {
	font-size: 11px; font-weight: 800; color: var(--anshin-navy);
	border: 1.5px solid var(--anshin-navy); border-radius: 6px; padding: 2px 8px; letter-spacing: .04em;
}
.c-entry__body .hf-anshin__title, .hf-anshin__title {
	font-size: 16px; font-weight: 800; color: #1a1a1a; margin: 0;
	background: none; border: 0; padding: 0;
}
.hf-anshin__icons { display: flex; gap: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.hf-anshin__ico {
	flex: 1 1 0; min-width: 72px;
	display: flex; flex-direction: column; align-items: center; gap: 6px;
	background: #fff; border: 1px solid #dde4f1; border-radius: 10px; padding: 12px 6px 10px;
}
.hf-anshin__ico svg { width: 26px; height: 26px; color: var(--anshin-navy); }
.hf-anshin__ico span { font-size: 11.5px; font-weight: 700; color: #33415c; letter-spacing: .02em; }
.hf-anshin__body { font-size: 14px; line-height: 1.85; color: #333; margin: 0; }
.hf-anshin__body strong { color: var(--anshin-navy); }
.hf-anshin__note { font-size: 12px; color: #888; margin: 6px 0 0; }
@media (max-width: 767px) {
	.hf-anshin { padding: 18px 16px 16px; }
	.hf-anshin__icons { gap: 7px; }
	.hf-anshin__ico { min-width: 62px; padding: 10px 4px 8px; }
	.hf-anshin__ico span { font-size: 10.5px; }
}

/* プライバシーポリシー（刷新版・追加要素） */
.hf-privacy-dl dd ul { margin: 8px 0 0; padding-left: 1.2em; }
.hf-privacy-dl dd ul li { list-style: disc; margin: 0 0 4px; line-height: 1.9; }
.hf-privacy-dl dd a { color: var(--hf2-green); text-decoration: underline; }
.hf-privacy-table { width: 100%; border-collapse: collapse; margin: 6px 0 0; font-size: 14.5px; }
.hf-privacy-table th, .hf-privacy-table td { border: 1px solid #e2e6e2; padding: 11px 14px; text-align: left; vertical-align: top; line-height: 1.8; }
.hf-privacy-table th { background: #f2f7f0; width: 12em; font-weight: 700; white-space: nowrap; }
.hf-privacy-contact { margin: 10px 0 0; padding: 18px 20px; background: var(--hf2-gray-bg); border-radius: 8px; font-size: 14.5px; line-height: 1.95; }
.hf-privacy-date { margin: 40px 0 0; text-align: right; font-size: 13px; color: #888; line-height: 1.8; }
@media (max-width: 767px) {
	.hf-privacy-table th, .hf-privacy-table td { display: block; width: auto; border-bottom: 0; }
	.hf-privacy-table tr { display: block; border-bottom: 1px solid #e2e6e2; }
	.hf-privacy-table th { border-bottom: 0; }
}

/* ワイド画面対応: 下層ページの本文が間延びしないよう最大幅を設けて中央寄せ
   （フロントは .hf2-inner 1200px で既に中央寄せ。物件マップの全幅は100vw基準のため維持される） */
@media (min-width: 1400px) {
	body:not(.home) .l-contents__main {
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* CF7 dl形式フォームの見出し・注釈（/inquiry/ と /assessment/ 共通） */
.wpcf7 .hf-form-sec {
	font-size: 17px;
	font-weight: 700;
	background-color: #f3f3f3;
	padding: 12px 18px;
	margin: 34px 0 18px;
	border-left: 4px solid var(--hf2-green, #1b7a43);
}
.wpcf7 .hf-form-sec:first-child { margin-top: 0; }
.wpcf7 .hf-form-note {
	font-size: 12px;
	color: #777;
	line-height: 1.7;
	margin: 6px 0 4px;
}
form.wpcf7-form .submit-box p { margin-bottom: 10px; }

/* size指定のある入力欄（面積・電話番号・郵便番号・姓名など）は横並びを維持する
   ※default.css の input{width:100%} で縦積みになるのを打ち消す */
form.wpcf7-form input[type="text"][size],
form.wpcf7-form input[type="tel"][size],
form.wpcf7-form input[type="number"][size] {
	width: auto !important;
	max-width: 100%;
}
form.wpcf7-form dd select { min-width: 5.5em; }
@media (max-width: 480px) {
	form.wpcf7-form input[type="text"][size],
	form.wpcf7-form input[type="tel"][size] { max-width: 46%; }
}

/* default.css の .wpcf7-form-control{display:flex} は checkbox/radio 用。
   テキスト・電話・メール・数値・セレクトは横並びを維持する */
form.wpcf7-form dd .wpcf7-form-control-wrap { display: inline-block; vertical-align: middle; }
form.wpcf7-form dd input.wpcf7-text,
form.wpcf7-form dd input.wpcf7-tel,
form.wpcf7-form dd input.wpcf7-email,
form.wpcf7-form dd input.wpcf7-number,
form.wpcf7-form dd input.wpcf7-date,
form.wpcf7-form dd select.wpcf7-select {
	display: inline-block !important;
	vertical-align: middle;
}
form.wpcf7-form dd textarea.wpcf7-textarea { display: block !important; width: 100%; }
form.wpcf7-form dd .wpcf7-form-control-wrap:has(textarea) { display: block; width: 100%; }
/* 面積・電話など「ラベル＋入力」の行間を詰める */
form.wpcf7-form dd br + br { display: none; }
