/*
 * shiawase theme — main.css（スタイルはこの1ファイルのみ）
 *
 * 目次
 *  1. デザイントークン … 色・フォント・幅（全ページ）
 *  2. ベース … 共通サイト土台 / body / リンク / 表
 *  3. アクセシビリティ
 *  4. レイアウト … .wrap / .works-wide / width-* / flex / pc・sp（全ページ）
 *  5. ヘッダー … header.php
 *  6. 共通コンポーネント … main.fixed-page / fixed-section / section / card 等
 *  7. トップのみ … front-page.php
 *  8. アイコンフォント … Happy Icons（.hm-*）
 *  9. 固定ページ … page-*.php（.style-* 等の固定ページ共通パーツ含む）
 * 10. 一覧・詳細 … archive-*.php / single-*.php
 * 11. フッター・固定UI … footer.php
 */

@import url("https://fonts.googleapis.com/css2?family=Sawarabi+Mincho&display=swap");

/* ==========================================================================
   1. デザイントークン（全ページ）
   ========================================================================== */
:root {
	--color-green: #54b435;
	--color-wood: #a3703f;
	--color-navy: #0f172a;
	--color-footer-brand: #2f5d46;
	--color-footer-text: var(--color-text);
	--color-footer-muted: var(--color-muted);
	--color-footer-line: #d4e8c8;
	--color-footer-accent: var(--color-footer-brand);
	--color-text: #2f3b40;
	--color-muted: #5c6568;
	--color-bg: #ffffff;
	/* トップご案内バー・固定ページ .page-hero__title（直下ブロックは同色にしない） */
	--color-topics: #e7ece8;
	--color-line: #d5dbd6;
	/* 日本語 … TypeSquare（functions.php → xserverv3.js）／未配信時は後続フォールバック */
	--font-sans: "丸フォーク M", "Yu Gothic", "Hiragino Sans", Meiryo, sans-serif;
	--font-serif: "丸フォーク M", "Yu Mincho", "Hiragino Mincho ProN", serif;
	/* 英字セクション見出し … @import Sawarabi Mincho（デモ Astra / Elementor と同系） */
	--font-section-en: "Sawarabi Mincho", serif;
	--header-height: 92px;
	--wrap: 1140px;
	--color-support-bg: #edfbe2;
}

/* ==========================================================================
   2. ベース・リセット
   ========================================================================== */


*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	overflow-x: clip;
	background: #fff;
}

body {
	margin: 0;
	padding-top: var(--header-height);
	overflow-x: clip;
	color: var(--color-text);
	background: var(--color-bg);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-serif);
    font-weight: 500;
}

button,
input,
select,
textarea {
	font-family: inherit;
}

img {
	width: 100%;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

table {
	width: 100%;
}

table,
td,
th {
	border-collapse: collapse;
	letter-spacing: 2px;
	border: 1px solid #d8d8db;
}

th,
td {
	padding: 10px 20px;
	line-height: 1.5;
}

th {
	white-space: nowrap;
}

dt,
dd {
	line-height: 1.5;
}

@media screen and (max-width: 960px) {
	body {
		font-size: 14px;
	}

	th,
	td {
		line-height: 1.5;
		padding: 10px;
	}
}

/* ==========================================================================
   3. アクセシビリティ
   ========================================================================== */


.screen-reader-text,
.skip-link {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100;
	width: auto;
	height: auto;
	margin: 0;
	padding: 8px 12px;
	clip: auto;
	background: #fff;
}

/* ==========================================================================
   4. レイアウト（全ページ）
   ========================================================================== */


.wrap {
	width: min(var(--wrap), calc(100% - 48px));
	margin-inline: auto;
}

.breadcrumb {
	padding: 20px 0;
}

.breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
}

.breadcrumb__list li + li::before {
	content: ">";
	margin-right: 8px;
	color: var(--color-muted);
}

.breadcrumb__list a {
	color: inherit;
	text-decoration: none;
}

.breadcrumb__list a:hover,
.breadcrumb__list a:focus-visible {
	text-decoration: underline;
}

.wrap--text,
.wrap--narrow {
	width: min(1000px, calc(100% - 48px));
}

@media screen and (max-width: 960px) {
	.wrap,
	.wrap--text,
	.wrap--narrow {
		width: min(var(--wrap), calc(100% - 32px));
	}
}

.width-800 {
	max-width: 800px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.width-ss {
	max-width: 900px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.width-s {
	max-width: 1000px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.width-sm {
	max-width: 1100px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.width-m {
	max-width: 1200px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.works-wide {
	width: min(2000px, 100%);
	margin-inline: auto;
}

.flex {
	display: flex;
	flex-wrap: wrap;
}

.flex-sb {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

@media screen and (max-width: 960px) {
	.flex,
	.flex-sb {
		display: block;
	}
}

.pc {
	display: block !important;
}

.sp {
	display: none !important;
}

@media screen and (max-width: 960px) {
	.pc {
		display: none !important;
	}

	.sp {
		display: block !important;
	}
}


/* ==========================================================================
   5. ヘッダー（header.php・全ページ）
   ========================================================================== */


.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 40;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 1px 0 var(--color-line);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	width: min(1280px, calc(100% - 40px));
	min-height: var(--header-height);
	margin-inline: auto;
	padding-right: 48px;
}

.site-logo img,
.custom-logo {
	width: auto;
	height: 52px;
}

.site-nav {
	display: flex;
	align-items: stretch;
	margin-left: auto;
}

.site-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
}

.site-nav__list a:hover,
.text-link:hover {
	color: var(--color-wood);
}

.site-nav__item {
	position: relative;
	display: flex;
	align-items: stretch;
}

.site-nav__trigger {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	padding: 8px 6px;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 13px;
	line-height: 1.4;
	letter-spacing: 0.04em;
	white-space: nowrap;
	cursor: pointer;
}

.site-nav__trigger:hover,
.site-nav__trigger:focus-visible {
	color: var(--color-wood);
}

.site-nav__link {
	display: inline-flex;
	align-items: center;
	padding: 8px 6px;
	color: inherit;
	font-size: 13px;
	line-height: 1.4;
	letter-spacing: 0.04em;
	white-space: nowrap;
	text-decoration: none;
}

.site-nav__link:hover,
.site-nav__link:focus-visible {
	color: var(--color-wood);
}

.site-nav__trigger-icon {
	display: inline-block;
	width: 0;
	height: 0;
	border-top: 4px solid currentColor;
	border-right: 4px solid transparent;
	border-left: 4px solid transparent;
	opacity: 0.65;
	transform: translateY(2px);
}

.site-nav__panel {
	position: absolute;
	top: 100%;
	left: 50%;
	z-index: 50;
	min-width: min(280px, 88vw);
	max-width: min(320px, 92vw);
	padding: 16px 18px 14px;
	border: 1px solid var(--color-line);
	background: #fff;
	box-shadow: 0 12px 32px rgb(0 0 0 / 0.1);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, 6px);
	transition:
		opacity 0.2s ease,
		transform 0.2s ease,
		visibility 0.2s;
}

.site-nav__item:last-child .site-nav__panel,
.site-nav__item:nth-last-child(2) .site-nav__panel {
	left: auto;
	right: 0;
	transform: translate(0, 6px);
}

.site-nav__item:hover .site-nav__panel,
.site-nav__item:focus-within .site-nav__panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.site-nav__item:last-child:hover .site-nav__panel,
.site-nav__item:last-child:focus-within .site-nav__panel,
.site-nav__item:nth-last-child(2):hover .site-nav__panel,
.site-nav__item:nth-last-child(2):focus-within .site-nav__panel {
	transform: translate(0, 0);
}

.site-nav__panel-label {
	margin: 0 0 10px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--color-line);
}

.site-nav__panel-label-ja {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.site-nav__panel-label-en {
	display: block;
	margin-top: 2px;
	color: var(--color-footer-brand, #2f5d46);
	font-family: var(--font-section-en);
	font-size: 11px;
	letter-spacing: 0.12em;
}

.site-nav__panel-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-nav__panel-list li + li {
	margin-top: 2px;
}

.site-nav__panel-list a {
	display: block;
	padding: 8px 4px;
	color: var(--color-text);
	font-size: 13px;
	line-height: 1.45;
	text-decoration: none;
}

.site-nav__panel-list a:hover,
.site-nav__panel-list a:focus-visible {
	color: var(--color-wood);
}

.site-nav__panel-subhead {
	margin: 12px 0 6px;
	padding-top: 10px;
	border-top: 1px solid var(--color-line);
	color: var(--color-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.site-nav__panel--event {
	min-width: 240px;
}

.site-nav__panel-list--events li {
	overflow: hidden;
}

.site-nav__panel-list--events a {
	display: block;
}

.site-nav__panel-event-title {
	display: -webkit-box;
	overflow: hidden;
	max-height: calc(1.45em * 2);
	line-height: 1.45;
	overflow-wrap: anywhere;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.nav-toggle {
	position: fixed;
	top: 26px;
	right: 28px;
	z-index: 100;
	display: block;
	width: 30px;
	height: 24px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.nav-toggle__bar {
	position: absolute;
	display: block;
	width: 100%;
	height: 3px;
	border-radius: 2px;
	background: #333;
	transition: all 0.4s ease;
}

.nav-toggle__bar:nth-child(1) {
	top: 0;
}

.nav-toggle__bar:nth-child(2) {
	top: 50%;
	transform: translateY(-50%);
}

.nav-toggle__bar:nth-child(3) {
	bottom: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1) {
	top: 50%;
	transform: rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) {
	opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3) {
	top: 50%;
	bottom: auto;
	transform: rotate(-45deg);
}

@media screen and (max-width: 960px) {
	.nav-toggle {
		top: 20px;
		right: 16px;
	}

	.site-header .site-nav {
		display: none;
	}
}

/* ==========================================================================
   6. 共通コンポーネント … main.fixed-page / fixed-section / section / card 等（全ページで再利用）
   ========================================================================== */

/* 固定ページ共通トークン（page-*.php の main.fixed-page） */
main.fixed-page {
	--fixed-page-bg: #f5f2ed;
	--fixed-page-surface: #fff;
	--fixed-page-border: rgba(31, 32, 28, 0.35);
	--fixed-page-fill: rgba(31, 32, 28, 0.42);
	--fixed-page-gutter: clamp(20px, 4vw, 48px);
	--fixed-page-pad-y: clamp(56px, 10vw, 80px);
	--fixed-page-pad-y-tight: clamp(40px, 7vw, 56px);
	--fixed-page-pad-y-loose: clamp(72px, 12vw, 100px);
	--fixed-page-section-pad-y: 80px;
	--fixed-page-stack: clamp(28px, 5vw, 40px);
	--fixed-page-width: 960px;
	--fixed-page-width-split: 1300px;
	--fixed-page-width-narrow: 860px;
	--fixed-page-font-body: 16px;
	--fixed-page-stack-reasons: clamp(48px, 6vh, 80px);
	--fixed-page-flow-step-gap: clamp(24px, 3vw, 40px);
	color: var(--color-text);
	font-family: var(--font-serif);
	background: var(--fixed-page-bg);
}

@media screen and (max-width: 960px) {
	main.fixed-page {
		--fixed-page-pad-y: 48px;
		--fixed-page-pad-y-tight: 40px;
		--fixed-page-pad-y-loose: 64px;
		--fixed-page-stack: 24px;
		--fixed-page-font-body: clamp(14px, 3.6vw, 16px);
		--fixed-page-stack-reasons: clamp(32px, 5vw, 48px);
		--fixed-page-section-pad-y: 48px;
		--fixed-page-gutter: 16px;
	}

	main.fixed-page .fixed-section__inner[class*="width-"] {
		width: 100%;
		max-width: none;
	}

	main.fixed-page .fixed-section__band.style-band {
		padding-right: 16px;
		padding-bottom: 20px;
		padding-left: 16px;
		scroll-margin-top: 88px;
	}

	main.fixed-page .fixed-section__band.style-band p {
		margin-top: 14px;
		font-size: var(--fixed-page-font-body, 14px);
		letter-spacing: 0.04em;
	}

	main.fixed-page .fixed-section__band + .fixed-section__inner:not(.sim-faq):not(.faq-page__body) {
		padding-top: 24px;
		padding-right: var(--fixed-page-gutter, 16px);
		padding-left: var(--fixed-page-gutter, 16px);
	}

	main.fixed-page .fixed-section__band + .fixed-section__inner.sim-faq {
		padding: 0;
	}
}

/* 固定ページ共通セクション（fixed-section 型） */

.fixed-section {
	padding-top: var(--fixed-page-section-pad-y);
	padding-bottom: var(--fixed-page-section-pad-y);
}

.fixed-section--surface {
	background-color: var(--fixed-page-surface, #fff);
}

.fixed-section--base {
	background-color: var(--fixed-page-bg, #f5f2ed);
}

.fixed-section__inner {
	box-sizing: border-box;
}

.fixed-section__band.style-band {
	padding-top: 0;
	padding-right: 20px;
	padding-bottom: clamp(24px, 3vw, 36px);
	padding-left: 20px;
}

.fixed-section__inner + .fixed-section__inner,
.fixed-section__band + .fixed-section__inner {
	padding-top: clamp(28px, 4vw, 40px);
}

main.fixed-page > header,
main.fixed-page > section {
	padding-right: var(--fixed-page-gutter);
	padding-left: var(--fixed-page-gutter);
}

main.fixed-page > section.fixed-section {
	padding-right: 0;
	padding-left: 0;
}

.section {
	padding: 100px 0;
}

/* .underline-title … front-page.php のみ / .section__en … 一覧・固定ページ等 */
.underline-title {
	font-family: var(--font-serif);
	font-weight: 500;
	letter-spacing: 0.06em;
}

.underline-title {
	display: inline-block;
	margin: 0 0 36px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--color-text);
	font-size: clamp(26px, 3vw, 36px);
	line-height: 1.5;
}

.section__head {
	margin-bottom: 60px;
	text-align: center;
}

.section__en {
	display: inline-block;
	margin: 0;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--color-text);
	font-family: var(--font-section-en);
	font-size: clamp(30px, 4vw, 42px);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.06em;
}

.section__title {
	margin: 14px 0 0;
	font-family: var(--font-serif);
	font-size: 16px;
	font-weight: 500;
}

.section__more {
	margin: 80px 0 0;
	text-align: center;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 240px;
	padding: 16px 33px 16px 40px;
	border: 1px solid rgba(31, 32, 28, 0.35);
	background: #fff;
	font-size: 16px;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.button::after {
	font-family: "Happy Icons";
	font-size: 14px;
	font-style: normal;
	font-weight: normal;
	line-height: 1;
	content: "\e914";
	speak: none;
}

.button:hover,
.button:focus-visible {
	background: rgba(31, 32, 28, 0.72);
	border-color: transparent;
	color: #fff;
}

.card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.card h3 {
	margin: 14px 0 6px;
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 500;
}

.card img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	background: var(--color-topics);
}

.card p {
	margin: 0;
	color: var(--color-muted);
	font-size: 14px;
}

.card__terms {
	color: var(--color-wood);
}

.section--muted {
	background: #f7f8f6;
}

/* トップ：章ごと白 ⇄ 薄グレー（intro の topics 色は別） */
.section--voices {
	background: var(--color-bg);
}

.section--voices .voice-google-reviews {
	background: #f7f8f6;
	border-top: 1px solid var(--color-line);
}

.section--event.section--muted .event-section__band {
	background: transparent;
}

/* 一覧・固定ページ等 */
.post-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.post-list li {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 0;
	border-bottom: 1px solid var(--color-line);
}

.post-list time {
	flex: none;
	color: var(--color-muted);
	font-size: 14px;
}

@media screen and (max-width: 960px) {
	.post-list li {
		grid-template-columns: 1fr;
		flex-direction: column;
		gap: 4px;
	}

	.card-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   7. トップページのみ（front-page.php）
   ========================================================================== */

.section--works .card-grid {
	gap: 5px;
    padding: 0 5px;
}

/* 施工実例カード … PC／SP 共通（一覧 archive は対象外） */
.section--works .card > a {
	text-align: center;
}

/*
 * <a> 内に <ul> を置くと HTML パーサーで <a> が手前で閉じ、
 * タグ列・キャッチコピー（p）は .card 直下になる。a の text-align だけでは足りない。
 */
.section--works .card > .works-card__terms {
	justify-content: center;
	width: 100%;
}

.section--works .card > p {
	margin: 0;
	text-align: center;
	color: var(--color-muted);
	font-size: 14px;
}

.section--works .works-card__terms {
	justify-content: center;
}

/* --- メインビジュアル --- */

.hero {
	--hero-slide-duration: 6s;
	--hero-slide-zoom-duration: 9s;
	--hero-slide-fade: 2s;
	position: relative;
	min-height: 86vh;
	color: #fff;
	background: #d7ddd8;
}

.hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		180deg,
		rgba(20, 32, 24, 0) 0%,
		rgba(20, 32, 24, 0.06) 38%,
		rgba(20, 32, 24, 0.42) 70%,
		rgba(20, 32, 24, 0.58) 100%
	);
}

.hero__slides {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.hero__slide {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0;
	transition: opacity var(--hero-slide-fade) ease-in-out;
	pointer-events: none;
}

.hero__slide__zoom {
	position: absolute;
	inset: 0;
	background-position: center;
	background-size: cover;
	transform: scale(1);
	will-change: transform;
}

.hero__slide.is-visible {
	opacity: 1;
}

.hero__slide.is-top {
	z-index: 1;
}

@media (prefers-reduced-motion: no-preference) {
	.hero__slide.is-zooming .hero__slide__zoom,
	.hero__slide.is-leaving .hero__slide__zoom {
		animation: hero-slide-zoom var(--hero-slide-zoom-duration) linear both;
	}
}

@keyframes hero-slide-zoom {
	from {
		transform: scale(1);
	}

	to {
		transform: scale(1.12);
	}
}

.hero__copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 86vh;
	padding: 140px 7vw 130px;
}

.hero__line {
	display: block;
	width: min(46vw, 560px);
	height: 1px;
	margin-bottom: 28px;
	background: rgba(255, 255, 255, 0.85);
}

.hero h1 {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(22px, 2.7vw, 43px);
	font-weight: 500;
	line-height: 1.85;
	letter-spacing: 0.08em;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.5),
		0 4px 20px rgba(0, 0, 0, 0.35);
}

/* --- トップ：ご案内バー（intro 内） --- */

.topics {
	position: relative;
	z-index: 3;
	width: min(1200px, calc(100% - 12vw));
	margin: -42px auto 0;
}

.topics__bar {
	display: grid;
	grid-template-columns: auto 1fr 72px;
	align-items: center;
	min-height: 84px;
	background: var(--color-bg);
	border: 1px solid var(--color-line);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.topics__label {
	margin: 0 28px;
	padding: 8px 14px;
	background: var(--color-navy);
	color: #fff;
	font-size: 13px;
	letter-spacing: 0.12em;
}

.topics__title {
	margin: 0;
	padding: 12px 16px 12px 0;
	font-size: 16px;
	line-height: 1.5;
	text-align: left;
}

a.topics__title {
	color: inherit;
	text-decoration: none;
}

a.topics__title:hover,
a.topics__title:focus-visible {
	color: var(--color-wood);
}

.topics__mail {
	display: grid;
	place-items: center;
	align-self: stretch;
	background: var(--color-wood);
	color: #fff;
}

.topics__mail svg {
	width: 26px;
	height: 26px;
	fill: currentColor;
}

/* --- トップ：ヒーロー直下トピックス --- */

.front-news-strip {
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-line);
	padding: clamp(28px, 3.5vw, 40px) 0;
}

.front-news-strip__layout {
	display: grid;
	grid-template-columns: minmax(7.5rem, 9.5rem) minmax(0, 1fr) auto;
	align-items: stretch;
	background: var(--color-bg);
}

.front-news-strip__head {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: clamp(16px, 2.5vw, 22px) clamp(14px, 2vw, 20px);
	border-right: 1px solid var(--color-line);
	text-align: center;
}

.front-news-strip__en {
	margin: 0;
	padding: 0 0 4px;
	border-bottom: 1px solid var(--color-text);
	font-family: var(--font-section-en);
	font-size: clamp(16px, 1.8vw, 23px);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.08em;
}

.front-news-strip__title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.12em;
}

.front-news-strip__main {
	min-width: 0;
	padding: clamp(12px, 2vw, 16px) clamp(16px, 2.5vw, 28px);
}

.front-news-strip__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.front-news-strip__empty {
	margin: 0;
	padding: 4px 0;
	color: var(--color-muted);
	font-size: 13px;
	line-height: 1.55;
}

.front-news-strip__aside {
	align-self: end;
}

.front-news-strip__more-link {
	color: var(--color-navy);
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: 0.06em;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	white-space: nowrap;
	writing-mode: horizontal-tb;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.front-news-strip__more-link:hover,
.front-news-strip__more-link:focus-visible {
	color: var(--color-wood);
	border-color: currentColor;
}

.front-news-strip__item {
	padding: 9px 0;
	border-bottom: 1px solid var(--color-line);
}

.front-news-strip__item:first-child {
	padding-top: 0;
}

.front-news-strip__item:last-child {
	padding-bottom: 0;
	border-bottom: none;
}

.front-news-strip__link {
	display: grid;
	grid-template-columns: minmax(6.75rem, 8rem) auto minmax(0, 1fr);
	gap: 8px 16px;
	align-items: center;
	color: inherit;
	font-size: 15px;
	line-height: 1.55;
	text-decoration: none;
	transition: color 0.3s ease;
}

.front-news-strip__link:hover,
.front-news-strip__link:focus-visible {
	color: var(--color-wood);
}

.front-news-strip__date {
	color: var(--color-muted);
	font-size: 12px;
	line-height: 1.45;
	white-space: nowrap;
}

.front-news-strip__category {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	margin: 0;
	padding: 5px 4px;
	background: var(--color-navy);
	border: 1px solid var(--color-navy);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-align: center;
}

/* 更新フィード：ジャンル別（落ち着いたトーン） */
.front-news-strip__category--news {
	background: var(--color-navy);
	border-color: var(--color-navy);
}

.front-news-strip__category--works {
	background: #8a6845;
	border-color: #8a6845;
}

.front-news-strip__category--voice {
	background: #3f5c4c;
	border-color: #3f5c4c;
}

.front-news-strip__category--blog {
	background: #5c6670;
	border-color: #5c6670;
}

.front-news-strip__category--event {
	background: #6a6258;
	border-color: #6a6258;
}

.front-news-strip__link:hover .front-news-strip__category,
.front-news-strip__link:focus-visible .front-news-strip__category {
	color: #fff;
}

.front-news-strip__message {
	min-width: 0;
}

/* --- 家プロ紹介文 --- */

.intro {
	margin-top: 0;
	padding: 0 0 100px;
	text-align: center;
	background: var(--color-topics);
}

.intro > .wrap {
	padding-top: 70px;
}

/* --- トップ：お知らせ・ブログ（2カラム） --- */

.front-updates {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 48px);
	align-items: stretch;
}

.front-updates__col {
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.front-updates__col-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 4px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--color-line);
}

.front-updates__subhead {
	margin: 0;
	font-family: var(--font-serif);
	font-size: 1.05rem;
	font-weight: 500;
}

.front-updates__more {
	flex: none;
	color: var(--color-wood);
	font-size: 13px;
	text-decoration: none;
}

.front-updates__more:hover,
.front-updates__more:focus-visible {
	text-decoration: underline;
}

.post-list--front-updates {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.post-list--front-updates li {
	flex: 1;
	align-items: flex-start;
	padding: 16px 0;
}

.post-list--front-updates .post-list__link {
	flex: 1;
	min-width: 0;
	color: inherit;
	line-height: 1.55;
	text-align: left;
	text-decoration: none;
}

.post-list--front-updates a.post-list__link:hover,
.post-list--front-updates a.post-list__link:focus-visible {
	color: var(--color-wood);
}

.blog-cards--front-updates {
	grid-template-columns: 1fr;
	gap: 16px;
	flex: 1;
}

.blog-cards--front-updates .blog-card {
	display: flex;
	flex-direction: column;
	height: auto;
}

.blog-cards--front-updates .blog-card__link {
	flex: 1;
}

.blog-cards--front-updates .blog-card__media {
	aspect-ratio: 16 / 10;
}

.blog-cards--front-updates .blog-card__body {
	padding: 14px 14px 16px;
}

.blog-cards--front-updates .blog-card__title {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: 0.92rem;
}

.section--updates .section__head {
	margin-bottom: clamp(24px, 4vw, 36px);
}

.section--updates {
	background: var(--color-bg);
}

/* --- トップ：イベント --- */

.section--event {
	padding-bottom: 0;
}

.event-section__band {
	padding: clamp(40px, 6vw, 64px) 0 clamp(40px, 5vw, 56px);
	background: #f3f4f2;
	border-bottom: 1px solid var(--color-line);
}

.event-section__more {
	margin: clamp(36px, 5vw, 52px) 0 0;
	text-align: center;
}

.event-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 28px);
}


.event-card {
	height: 100%;
	background: #fff;
	box-shadow: 0 1px 0 rgba(31, 32, 28, 0.06);
}

.event-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.event-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--color-topics);
	aspect-ratio: 1 / 1;
}

.event-card__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	/* 768×960 等の HTML 属性・実寸が親の高さを押し広げないよう枠内に固定 */
	object-fit: cover;
	object-position: center;
	transition: transform 0.35s ease;
}

.event-card__link:hover .event-card__media img,
.event-card__link:focus-visible .event-card__media img {
	transform: scale(1.03);
}

.event-card__badge {
	position: absolute;
	top: 0;
	left: 0;
	padding: 6px 12px;
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
}

.event-card__badge--open {
	background: var(--color-green);
}

.event-card__badge--closed {
	background: #9a9a9a;
}

.event-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 18px 16px 22px;
	text-align: left;
}

.event-card__title {
	display: block;
	margin: 0 0 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--color-line);
	font-family: var(--font-serif);
	font-size: clamp(0.9375rem, 2vw, 1.0625rem);
	font-weight: 600;
	line-height: 1.5;
}

.event-card__meta {
	display: grid;
	gap: 8px;
	margin-top: auto;
	font-size: 13px;
	line-height: 1.6;
}

.event-card__meta-row {
	display: grid;
	grid-template-columns: auto auto minmax(0, 1fr);
	gap: 8px;
	align-items: baseline;
}

.event-card__meta-label {
	flex: none;
	color: var(--color-text);
	font-weight: 500;
}

.event-card__meta-sep {
	color: var(--color-muted);
}

.event-card__meta-value {
	color: var(--color-muted);
}

.section--works {
	background: var(--color-bg);
	border-top: 1px solid var(--color-line);
}

.intro__text {
	font-size: 18px;
	line-height: 2.2;
}

/* --- スクロール入場（.reveal + .reveal--up|left|right|scale、任意 .reveal-group / data-reveal-stagger） --- */

@media (prefers-reduced-motion: no-preference) {
	.reveal {
		opacity: 0;
		transition:
			opacity 0.8s var(--reveal-ease, cubic-bezier(0.22, 1, 0.36, 1)),
			transform 0.8s var(--reveal-ease, cubic-bezier(0.22, 1, 0.36, 1));
		transition-delay: var(--reveal-delay, 0ms);
	}

	.reveal--up {
		transform: translate3d(0, 18px, 0);
	}

	.reveal--left {
		transform: translate3d(-22px, 0, 0);
	}

	.reveal--right {
		transform: translate3d(22px, 0, 0);
	}

	.reveal--scale {
		transform: scale(0.94);
	}

	.reveal.is-inview {
		opacity: 1;
		transform: none;
	}
}

/* --- 6リンク（背景画像 + インフォボックス） --- */

.service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}


.service-tile {
	display: flex;
	align-items: stretch;
	min-height: 300px;
	background-color: #d7ddd8;
	background-position: center;
	background-size: cover;
	color: #1f2c1f;
}

.service-tile__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: calc(100% - 60px);
	margin: 30px;
	padding: 20px 16px 24px;
	background: rgba(255, 255, 255, 0.59);
	text-align: center;
	transition: background-color 0.3s ease;
}

@media (prefers-reduced-motion: no-preference) {
	.service-tile__panel.reveal {
		transform-origin: center center;
		transition:
			opacity 1.05s cubic-bezier(0.16, 1, 0.3, 1),
			transform 1.05s cubic-bezier(0.16, 1, 0.3, 1),
			background-color 0.3s ease;
		transition-delay: var(--reveal-delay, 0ms);
	}

	.service-tile__panel.reveal--scale {
		transform: scale(0.84) translate3d(0, 22px, 0);
	}

	.service-tile__panel.reveal.is-inview {
		transform: none;
	}
}

.service-tile:hover .service-tile__panel,
.service-tile:focus-visible .service-tile__panel {
	background: rgba(255, 255, 255, 0.72);
}

.service-tile__icon {
	margin-bottom: 12px;
	color: #69727d;
	font-size: 2rem;
	line-height: 1;
}

.service-tile__title {
	margin: 0 0 8px;
	font-size: 1.2rem;
	font-weight: 900;
	line-height: 1.45;
}

.service-tile__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--color-text);
}

.service-tile__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 14px;
	font-size: 14px;
	color: var(--color-wood);
}

.service-tile__link .hm {
	font-size: 12px;
}

.section--home-building {
	padding-top: clamp(48px, 6vw, 72px);
}

.section--home-building .section__head {
	margin-bottom: clamp(24px, 4vw, 40px);
}

/* --- トップ末尾 CTA（写真背景 + 相談ボタン） --- */

.site-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(56px, 9vw, 96px) 0;
	color: #fff;
}

.site-cta__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.site-cta__marquee {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.site-cta__track {
	display: flex;
	width: max-content;
	height: 100%;
	animation: site-cta-marquee 88s linear infinite;
	will-change: transform;
}

.site-cta__slide {
	flex: none;
	width: auto;
	min-width: min(52vw, 640px);
	height: 100%;
	object-fit: cover;
	filter: brightness(0.8) saturate(0.94);
}

.site-cta__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(20, 32, 24, 0.5) 0%,
		rgba(20, 32, 24, 0.58) 100%
	);
}

.site-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 920px;
	margin: 0 auto;
	text-align: center;
}

.site-cta__en {
	margin: 0 0 8px;
	font-family: var(--font-section-en);
	font-size: clamp(1.35rem, 3vw, 2rem);
	letter-spacing: 0.22em;
	line-height: 1.3;
}

.site-cta__title {
	margin: 0 0 1em;
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 2.2vw, 1.35rem);
	font-weight: 500;
	line-height: 1.5;
}

.site-cta__company {
	margin: 0 0 1.25em;
	font-size: clamp(0.88rem, 1.7vw, 0.95rem);
	line-height: 1.75;
	opacity: 0.95;
}

.site-cta__company-name {
	margin: 0 0 6px;
	font-family: var(--font-serif);
	font-size: clamp(1rem, 2vw, 1.15rem);
	font-weight: 500;
	letter-spacing: 0.06em;
}

.site-cta__company-address {
	margin: 0;
}

.site-cta__lead {
	margin: 0 0 1.5em;
	font-size: clamp(0.9rem, 1.8vw, 1rem);
	line-height: 1.85;
	opacity: 0.95;
}

.site-cta__tel {
	margin: 0 0 clamp(28px, 4vw, 40px);
	text-align: center;
}

.site-cta__tel-label {
	margin: 0 0 8px;
	font-size: 0.9rem;
	opacity: 0.92;
}

.site-cta__tel-number {
	margin: 0;
}

.site-cta__tel-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: inherit;
	font-family: var(--font-serif);
	font-size: clamp(1.75rem, 4.5vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
}

.site-cta__tel-link:hover,
.site-cta__tel-link:focus-visible {
	opacity: 0.88;
}

.site-cta__tel-link .hm {
	font-size: 0.55em;
	opacity: 0.9;
}

.site-cta__hours {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 20px;
	margin: 10px 0 0;
	font-size: 0.85rem;
	opacity: 0.9;
}

.site-cta__hours-item {
	display: inline-block;
}

.site-cta__social {
	margin: 16px 0 0;
}

.site-cta__instagram {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	text-decoration: none;
	transition: background-color 0.25s ease, border-color 0.25s ease;
}

.site-cta__instagram:hover,
.site-cta__instagram:focus-visible {
	background: rgba(255, 255, 255, 0.22);
	border-color: rgba(255, 255, 255, 0.65);
	color: #fff;
}

.site-cta__instagram-icon {
	display: flex;
	line-height: 0;
}

.site-cta__actions {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	max-width: 1000px;
	margin: 0 auto;
}

.site-cta__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 56px;
	padding: 14px 12px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: clamp(0.78rem, 1.5vw, 0.9rem);
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.site-cta__btn .hm {
	flex-shrink: 0;
	font-size: 0.75rem;
	opacity: 0.85;
}

.site-cta__btn--simulation {
	background: var(--color-wood);
	border-color: var(--color-wood);
}

.site-cta__btn:hover,
.site-cta__btn:focus-visible {
	background: rgba(255, 255, 255, 0.22);
	border-color: rgba(255, 255, 255, 0.65);
	color: #fff;
}

.site-cta__btn--simulation:hover,
.site-cta__btn--simulation:focus-visible {
	background: #8f5f36;
	border-color: #8f5f36;
}

@keyframes site-cta-marquee {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-cta__track {
		animation: none;
		transform: translateX(-12%);
	}
}

.voice-cards {
    display: grid;
    gap: 30px;
    max-width: 940px;
    margin: auto;
}

.voice-google-reviews {
    background: #fff;
    padding: 30px 0;
    margin-top: 50px;
}
.voice-google-reviews-in{
	max-width: 940px;
    width: 90%;
    margin: auto;
}

.voice-google-reviews__more {
	margin-top: 32px;
}

/* TrustIndex Google 口コミ（プラグイン既定のグレー背景 → 白） */
.voice-google-reviews .ti-widget.ti-goog .ti-review-item > .ti-inner,
.voice-google-reviews .ti-widget.ti-goog .ti-load-more-reviews-container .ti-load-more-reviews-button {
	background: #fff!important;
}

.voice-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    background: #fff;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.2);
}

.voice-card--right .voice-card__media {
	order: 2;
}

.voice-card__media {
	position: relative;
	display: block;
}

.voice-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 4px 10px;
	background: var(--color-green);
	color: #fff;
	font-size: 12px;
	line-height: 1.4;
}

.voice-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 28px 32px;
	text-align: left;
}


.voice-card__title {
	margin: 0 0 12px;
	font-family: var(--font-serif);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.55;
}

.voice-card__body p {
	margin: 0 0 20px;
	color: var(--color-muted);
	font-size: 15px;
	line-height: 1.85;
    
}

.voice-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding: 10px 20px;
	border: 1px solid rgba(31, 32, 28, 0.35);
	background: #fff;
	font-size: 13px;
	line-height: 1;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.voice-card__btn .hm {
	font-size: 14px;
}

.voice-card__btn:hover,
.voice-card__btn:focus-visible {
	border-color: transparent;
	background: rgba(31, 32, 28, 0.72);
	color: #fff;
}

/* --- POLICY --- */

.policy {
	background: #fff;
}

.section--event + .policy {
	padding-top: clamp(72px, 9vw, 100px);
}

.policy__layout {
	display: grid;
	grid-template-columns: minmax(260px, 34%) 1fr;
	gap: 40px 56px;
	align-items: start;
	margin-top: 8px;
}

.policy__lead {
	margin: 0 0 8px;
	font-family: var(--font-serif);
	font-size: clamp(26px, 2.6vw, 32px);
	font-weight: 500;
	line-height: 1.45;
	text-align: left;
}

.policy__lead-line {
	display: block;
	width: 50px;
	height: 3px;
	margin-bottom: 16px;
	background: var(--color-navy);
}

.policy__note {
	margin: 0 0 28px;
	font-size: 18px;
	line-height: 1.7;
	text-align: left;
}

.policy__photos {
	display: grid;
	gap: 8px;
}

.policy__photos img {
	display: block;
	width: 100%;
	height: auto;
}

.policy__list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.policy-item {
    display: grid;
    grid-template-columns: minmax(56px, 15%) 1fr;
    gap: 8px 16px;
    align-items: start;
    padding: 22px 0;
    border-bottom: 1px solid #333;
}

.policy-item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.policy-item__num {
    font-family: var(--font-serif);
    font-size: clamp(48px, 5vw, 60px);
    font-weight: 500;
    line-height: 1;
    color: var(--color-footer-muted);
}

.policy-item__body h4 {
	margin: 0 0 10px;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.5;
}

.policy-item__body p {
	margin: 0;
	color: var(--color-muted);
	font-size: 15px;
	line-height: 1.85;
	letter-spacing: 0;
}

/* SPのみ：リスト内の区切り写真（PCは左カラムの .policy__photos を使用） */
.policy-item.policy-item--photo {
	display: none;
}

.policy-item.policy-item--photo img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}


/* --- One on One（support ブロック） --- */

.section.support {
	padding: 88px 0 72px;
	overflow: visible;
}

.support__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 368px;
	grid-template-rows: auto auto;
	gap: 30px;
	align-items: stretch;
	position: relative;
	overflow: visible;
	background-color: transparent;
	background-image: linear-gradient(204deg, #a3703fe0 0%, #a3703f 100%);
	border: 0;
}

.support__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../../img/front/f-one-back.png") center / cover no-repeat;
	opacity: 0.5;
	pointer-events: none;
}

.support__content {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	align-self: stretch;
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	max-width: 100%;
	min-height: 100%;
	padding: clamp(28px, 4vw, 44px) clamp(20px, 2.5vw, 32px) 0 clamp(28px, 4vw, 48px);
}

.support__text {
	margin-top: auto;
}

.support__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.support__en {
    display: inline-block;
    margin: 0 0 8px;
    font-family: var(--font-section-en);
    font-weight: 400;
    line-height: 1.2;
    color: #fff;
    letter-spacing: 0.06em;
}

.support__title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 2.6vw, 1.85rem);
	font-weight: 500;
	line-height: 1.55;
	color: #fff;
	letter-spacing: 0.05em;
}

.support__line {
	display: block;
	width: 50px;
	height: 3px;
	margin: 8px 0 16px;
	background: #fff;
}

.support__text p {
	margin: 0;
	font-size: 17px;
	line-height: 1.85;
	color: #fff;
	letter-spacing: 0;
}

.support .support__links {
	grid-column: 1 / -1;
	grid-row: 2;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
	padding: 12px clamp(28px, 4vw, 48px) clamp(28px, 4vw, 44px);
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.support .support__links li + li {
	margin-top: 0;
}

.support .support__links a {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	max-width: none;
	padding: 11px 14px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	background: rgba(255, 255, 255, 0.9);
	color: var(--color-text);
	font-size: 16px;
	line-height: 1.5;
	text-decoration: none;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease,
		box-shadow 0.3s ease;
}

.support .support__links a::after {
	flex: none;
	margin-left: auto;
	font-family: "Happy Icons";
	font-size: 14px;
	font-style: normal;
	font-weight: normal;
	line-height: 1;
	content: "\e914";
	speak: none;
}

.support .support__links a:hover,
.support .support__links a:focus-visible {
	border-color: #fff;
	background: #fff;
	color: var(--color-wood);
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
}

.support .support__links .hm {
	flex: none;
	font-size: 0.95rem;
	line-height: 1;
	color: var(--color-wood);
	transition: color 0.3s ease;
}

.support .support__links a:hover .hm,
.support .support__links a:focus-visible .hm {
	color: var(--color-wood);
}

.support .support__links a span {
	flex: 1;
	min-width: 0;
}

.support__figure {
	grid-column: 2;
	grid-row: 1;
	align-self: start;
	position: relative;
	z-index: 2;
	justify-self: end;
	width: 320px;
	max-width: 100%;
	margin: -64px 48px 0 0;
}

.support__figure img {
	width: 100%;
	height: auto;
	max-height: 360px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 15%;
}


/* --- トップ：ブログカード --- */

.blog-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
}

.blog-card {
	height: 100%;
	background: var(--color-bg);
	border: 1px solid var(--color-line);
}

.blog-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.blog-card__link:hover .blog-card__title,
.blog-card__link:focus-visible .blog-card__title {
	color: var(--color-wood);
}

.blog-card__media {
	display: block;
	overflow: hidden;
	background: var(--color-topics);
}

.blog-card__media img {
	width: 100%;
	transition: transform 0.35s ease;
}

.blog-card__link:hover .blog-card__media img,
.blog-card__link:focus-visible .blog-card__media img {
	transform: scale(1.04);
}

.blog-card__body {
	flex: 1;
	padding: 18px 16px 22px;
}

.blog-card__body time {
	display: block;
	margin-bottom: 8px;
	color: var(--color-muted);
	font-size: 13px;
	line-height: 1.4;
}

.blog-card__title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.55;
	transition: color 0.3s ease;
}

/* カードサムネ共通（トップ・アーカイブ）— 4:3・cover */
.voice-cards .voice-card__media,
.works-archive .card__media,
.section--works .card__media,
.blog-cards .blog-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	min-height: 0;
	overflow: hidden;
	background: var(--color-topics);
}

.voice-cards .voice-card__media img,
.works-archive .card__media img,
.section--works .card__media img,
.blog-cards .blog-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	object-fit: cover;
	background: var(--color-topics);
}

/* 960px 以下（トップ） */

@media screen and (max-width: 960px) {
	.home .site-main .section {
		padding: 48px 0;
	}

	.home .site-main .section--event {
		padding-bottom: 0;
	}

	.home .site-main .section--home-building {
		padding-top: 40px;
	}

	.home .site-main .section--event + .policy {
		padding-top: 48px;
	}

	.home .site-main .section__head {
		margin-bottom: 28px;
	}

	.home .site-main .section--updates .section__head,
	.home .site-main .section--home-building .section__head {
		margin-bottom: 20px;
	}

	.home .site-main .section__en {
		font-size: clamp(18px, 5.2vw, 22px);
	}

	.home .site-main .section__title {
		margin-top: 10px;
		font-size: 15px;
	}

	.home .site-main .section__more {
		margin-top: 32px;
	}

	.home .site-main .section__more .button {
		min-width: 0;
		width: 100%;
		max-width: 300px;
		padding: 13px 20px 13px 24px;
		font-size: 14px;
	}

	.hero,
	.hero__copy {
		min-height: min(72vh, 520px);
	}

	.hero__copy {
		padding: 88px 16px 72px;
	}

	.hero__line {
		width: 72px;
		margin-bottom: 16px;
	}

	.hero h1 {
		font-size: clamp(18px, 4.6vw, 22px);
		line-height: 1.75;
		letter-spacing: 0.06em;
	}

	.topics {
		width: min(1200px, calc(100% - 32px));
		margin-top: -28px;
	}

	.topics__bar {
		grid-template-columns: minmax(0, 1fr) 56px;
		grid-template-rows: auto 1fr;
		align-items: stretch;
		min-height: 0;
	}

	.topics__label {
		grid-column: 1;
		grid-row: 1;
		margin: 12px 12px 8px;
		padding: 6px 10px;
		font-size: 12px;
		justify-self: start;
	}

	.topics__title {
		grid-column: 1;
		grid-row: 2;
		padding: 0 12px 14px;
		font-size: 14px;
		line-height: 1.55;
	}

	.topics__mail {
		grid-column: 2;
		grid-row: 1 / -1;
		align-self: stretch;
		width: 56px;
		min-height: 100%;
	}

	.topics__mail svg {
		width: 24px;
		height: 24px;
	}

	.intro {
		margin-top: 0;
		padding-bottom: 48px;
		text-align: left;
	}

	.intro > .wrap {
		padding-top: 36px;
	}

	.intro .underline-title {
		display: block;
		margin-bottom: 20px;
		padding-bottom: 8px;
		font-size: clamp(17px, 4.8vw, 20px);
		line-height: 1.55;
        text-align: center;
	}

	.intro__text {
		font-size: 14px;
		line-height: 2;
		text-align: left;
	}

	.intro__text p {
		margin: 0 0 1em;
	}

	.intro__text p:last-child {
		margin-bottom: 0;
	}

	.intro .section__more {
		margin-top: 28px;
		text-align: center;
	}

	.section--works .card-grid {
		gap: 0;
		padding: 0 16px;
	}

	.section--works .card {
		margin-bottom: 28px;
		padding-bottom: 28px;
		border-bottom: 1px solid var(--color-line);
	}

	.section--works .card:last-child {
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: 0;
	}

	.section--works .card > a {
		display: block;
		height: auto;
		border: 0;
		background: transparent;
	}

	.section--works .card__media + h3 {
		margin-top: 0;
	}

	.section--works .card h3 {
		margin: 0;
		padding: 12px 14px 0;
		font-size: 17px;
		line-height: 1.45;
	}

	.section--works .works-card__terms {
		margin: 10px 14px 0;
		padding: 0;
		gap: 6px;
		background: none;
		border: 0;
	}

	.section--works .works-card__terms .works-single__term {
		font-size: 12px;
	}

	.section--works .card p {
		padding: 10px 14px 0;
		font-size: 13px;
		line-height: 1.65;
	}

	.voice-cards {
		gap: 16px;
	}

	.voice-card {
		grid-template-columns: 1fr;
	}

	.voice-card--right .voice-card__media {
		order: 0;
	}

	.voice-card__body {
		padding: 16px 14px 18px;
	}

	.voice-card__title {
		margin-bottom: 8px;
		font-size: 17px;
		line-height: 1.5;
	}

	.voice-card__body p {
		margin-bottom: 14px;
		font-size: 13px;
		line-height: 1.75;
	}

	.voice-card__btn {
		padding: 9px 16px;
		font-size: 12px;
	}

	.event-section__band {
		padding: 28px 0 32px;
	}

	.event-section__more {
		margin-top: 24px;
	}

	.event-cards {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.event-card__body {
		padding: 14px 12px 16px;
	}

	.event-card__title {
		margin-bottom: 10px;
		padding-bottom: 10px;
		font-size: 15px;
	}

	.event-card__meta {
		font-size: 13px;
		gap: 6px;
	}

	.policy__layout {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-top: 0;
	}

	.policy__lead {
		font-size: clamp(18px, 5vw, 20px);
	}

	.policy__note {
		margin-bottom: 16px;
		font-size: 14px;
		line-height: 1.65;
	}

	.policy__intro .policy__photos {
		display: none;
	}

	.policy-item.policy-item--photo {
		display: block;
		grid-template-columns: 1fr;
		padding: 20px 0;
		border-bottom: 1px solid #333;
	}

	.policy-item {
		grid-template-columns: 48px 1fr;
		gap: 6px 12px;
		padding: 16px 0;
	}

	.policy-item__num {
		font-size: clamp(32px, 9vw, 40px);
	}

	.policy-item__body h4 {
		margin-bottom: 6px;
		font-size: 15px;
		line-height: 1.5;
	}

	.policy-item__body p {
		font-size: 13px;
		line-height: 1.75;
	}

	.home .width-wide {
		padding-inline: 16px;
		box-sizing: border-box;
	}

	.service-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.service-tile {
		min-height: 220px;
	}

	.service-tile__panel {
		width: calc(100% - 28px);
		margin: 14px;
		padding: 16px 12px 18px;
	}

	.service-tile__icon {
		margin-bottom: 8px;
		font-size: 1.6rem;
	}

	.service-tile__title {
		font-size: 16px;
	}

	.service-tile__text {
		font-size: 13px;
		line-height: 1.65;
	}

	.service-tile__link {
		margin-top: 10px;
		font-size: 13px;
	}

	.section.support {
		padding: 40px 0;
	}

	.support__card {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto auto;
		column-gap: 0;
		gap: 0;
	}

	.support__figure {
		grid-column: 1;
		grid-row: 1;
		justify-self: center;
		width: min(100%, 260px);
		margin: 0 auto;
	}

	.support__figure img {
		max-height: min(240px, 62vw);
		aspect-ratio: 4 / 3;
	}

	.support__content {
		display: block;
		grid-column: 1;
		grid-row: 2;
		min-height: 0;
		padding: 16px 16px 0;
	}

	.support__en {
		font-size: clamp(18px, 5vw, 22px);
	}

	.support__title {
		font-size: clamp(17px, 4.6vw, 20px);
		line-height: 1.5;
	}

	.support__line {
		margin: 6px 0 12px;
	}

	.support__text {
		margin-top: 0;
	}

	.support__text p {
		font-size: 14px;
		line-height: 1.75;
	}

	.support .support__links {
		grid-column: 1;
		grid-row: 3;
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 16px;
	}

	.support .support__links a {
		padding: 10px 12px;
		font-size: 14px;
	}

	.front-news-strip {
		padding: 20px 0;
	}

	.front-news-strip__layout {
		grid-template-columns: 1fr;
	}

	.front-news-strip__head {
		border-right: none;
		border-bottom: 1px solid var(--color-line);
	}

	.front-news-strip__main {
		border-right: none;
		border-bottom: 1px solid var(--color-line);
	}

	.front-news-strip__aside {
		justify-content: flex-end;
		padding-top: 14px;
		padding-bottom: 14px;
	}

	.front-news-strip__item {
		padding: 10px 0;
	}

	.front-news-strip__link {
		grid-template-columns: 1fr;
		gap: 6px;
		font-size: 13px;
		line-height: 1.5;
	}

	.front-news-strip__date {
		font-size: 12px;
	}

	.front-news-strip__category {
		width: 115px;
		padding: 4px 4px;
		font-size: 10px;
	}

	.front-updates {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.front-updates__col--news {
		padding: 18px;
		background: var(--color-bg);
		border: 1px solid var(--color-line);
		border-radius: 4px;
	}

	.front-updates__col--blog {
		padding: 18px 16px 16px;
		background: var(--color-topics);
		border: 1px solid var(--color-line);
		border-radius: 4px;
	}

	.front-updates__col--blog .front-updates__col-head {
		border-bottom-color: #d0d8d2;
	}

	.front-updates__col-head {
		margin-bottom: 18px;
		padding-bottom: 8px;
	}

	.front-updates__subhead {
		font-size: 16px;
	}

	.post-list--front-updates li {
		padding: 12px 0;
	}

	.post-list--front-updates .post-list__link {
		font-size: 14px;
		line-height: 1.5;
	}

	.post-list--front-updates time {
		font-size: 12px;
	}

	.blog-cards--front-updates {
		gap: 12px;
	}

	.blog-cards--front-updates .blog-card__body {
		padding: 12px 12px 14px;
	}

	.blog-cards--front-updates .blog-card__title {
		font-size: 14px;
		line-height: 1.5;
	}

	.blog-cards {
		grid-template-columns: 1fr;
	}

	.home .site-cta {
		padding: 40px 0 44px;
	}

	.home .site-cta__en {
		font-size: clamp(18px, 5vw, 22px);
	}

	.home .site-cta__title {
		font-size: 16px;
	}

	.home .site-cta__company {
		font-size: 13px;
		line-height: 1.65;
	}

	.home .site-cta__company-name {
		font-size: 15px;
	}

	.home .site-cta__lead {
		font-size: 13px;
		line-height: 1.75;
	}

	.home .site-cta__tel-link {
		font-size: clamp(1.35rem, 7vw, 1.75rem);
	}

	.home .site-cta__hours {
		font-size: 12px;
	}

	.site-cta__actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.home .site-cta__actions {
		grid-template-columns: 1fr;
	}

	.site-cta__btn {
		min-height: 48px;
		padding: 12px 14px;
		font-size: 13px;
	}
}


/* ==========================================================================
   8. アイコンフォント（Happy Icons）
   ========================================================================== */


@font-face {
	font-family: "Happy Icons";
	src: url("../fonts/happy-icons.woff2") format("woff2");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

.hm {
	font-family: "Happy Icons";
	font-style: normal;
	font-weight: normal;
	line-height: 1;
	speak: none;
}

.hm-home2::before { content: "\eaaf"; }
.hm-home::before { content: "\e9b1"; }
.hm-pen-paper::before { content: "\e9f4"; }
.hm-info::before { content: "\e9bc"; }
.hm-add-peoples::before { content: "\eb43"; }
.hm-tree-square::before { content: "\ea6a"; }
.hm-ellipsis-fill-v::before { content: "\e977"; }
.hm-ellipsis-fill-h::before { content: "\e976"; }
.hm-angle-down::before { content: "\e909"; }
.hm-angle-right::before { content: "\e90b"; }
.hm-arrow-right1::before { content: "\e914"; }
.hm-tick-circle::before { content: "\ea62"; }
.hm-tick::before { content: "\ea63"; }
.hm-question::before { content: "\ea11"; }
.hm-measurement::before { content: "\e9da"; }
.hm-paper-plane-alt::before { content: "\e9ee"; }
.hm-microphone2::before { content: "\e9df"; }
.hm-chair::before { content: "\e945"; }
.hm-map-marker::before { content: "\e9d8"; }
.hm-faq::before { content: "\eada"; }
.hm-calendar::before { content: "\e933"; }
.hm-add-group::before { content: "\eb42"; }
.hm-money::before { content: "\e9e2"; }
.hm-metro-grid-text-outline::before { content: "\eb8a"; }
.hm-tb-post-list::before { content: "\eb80"; }
.hm-grid-link::before { content: "\eb64"; }
.hm-tb-post-title::before { content: "\eb81"; }
.hm-tools::before { content: "\ea69"; }
.hm-weather-rain::before { content: "\ea80"; }
.hm-clip-board::before { content: "\e94b"; }
.hm-pin::before { content: "\e9fc"; }
.hm-badge2::before { content: "\e91a"; }
.hm-key::before { content: "\e9c0"; }
.hm-shipping-address::before { content: "\eb14"; }
.hm-refresh-check::before { content: "\eac1"; }
.hm-finger-hover-touch::before { content: "\eb2e"; }
.hm-share::before { content: "\ea2b"; }
.hm-chair2::before { content: "\e946"; }

/* ==========================================================================
   9. 固定ページ（page-*.php ・ .style-* 等の共通パーツ含む）
   ========================================================================== */

/* page-catalog.php（.catalog-page） */

.catalog-page__intro {
	text-align: center;
}

.catalog-page__figure {
	margin: 0 auto 28px;
	max-width: 920px;
}

.catalog-page__figure img {
	width: 100%;
	height: auto;
	border: 1px solid #e5e0d8;
	box-shadow: 0 8px 24px rgba(31, 44, 31, 0.08);
}

.catalog-page__lead {
	margin: 0 auto;
	max-width: 640px;
	font-size: 15px;
	line-height: 2;
}

.catalog-page__form-note {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 1.9;
	text-align: center;
}

.catalog-page .contact-page__form-inner {
	background: var(--fixed-page-bg);
}

/* page-contact.php — fixed-section 型 */

.contact-page .sim-checklist .hm {
	color: var(--color-green);
}

.contact-page__hero {
	min-height: clamp(220px, 38vw, 420px);
}

.contact-page__title {
	padding: clamp(40px, 6vw, 64px) 20px clamp(24px, 4vw, 40px);
	text-align: center;
}

.contact-page__en {
	margin: 0;
	font-family: var(--font-section-en);
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.08em;
}

.contact-page__title h1 {
	margin: 10px 0 0;
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 2.8vw, 1.5rem);
	font-weight: 500;
	letter-spacing: 0.14em;
}

.contact-page__tagline {
	margin: 12px 0 0;
	color: var(--color-muted);
	font-size: 13px;
	line-height: 1.6;
}

.contact-page__intro {
	text-align: center;
}

.contact-page__intro-text {
	margin: 0 auto clamp(28px, 4vw, 36px);
	max-width: 640px;
	color: var(--color-text);
	font-size: 15px;
	line-height: 2;
	text-align: center;
}

.contact-page__intro-text p {
	margin: 0 0 1.25em;
}

.contact-page__intro-text p:last-child {
	margin-bottom: 0;
}

.contact-page__form-lead {
	margin: 0;
	font-size: 15px;
	line-height: 1.85;
}

.contact-page__info-inner {
	text-align: left;
}

.contact-page__subheading {
	margin: clamp(36px, 5vw, 48px) 0 18px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--color-green);
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 2.2vw, 1.2rem);
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.contact-page__topics-panel {
    margin-bottom: 24px;
    padding: 22px 32px;
    border: 1px solid #e5e0d8;
    border-left: 4px solid var(--color-green);
    background: #fff;
    box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
    max-width: 800px;
}

.contact-page__table {
	width: 100%;
	margin: 0 0 8px;
	border: 1px solid #e5e0d8;
	border-collapse: collapse;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.05);
	font-size: 15px;
	text-align: left;
}

.contact-page__table th,
.contact-page__table td {
	padding: 15px 18px;
	border-bottom: 1px solid #e5e0d8;
	vertical-align: middle;
	line-height: 1.75;
}

.contact-page__table tr:last-child th,
.contact-page__table tr:last-child td {
	border-bottom: 0;
}

.contact-page__table th {
	width: 8.5em;
	padding-right: 16px;
	background: #e4d5c3;
	font-weight: 600;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.contact-page__table td {
	background: #fff;
}

.contact-page__table tr:nth-child(even) td {
	background: #fbfaf8;
}

.contact-page__table a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.contact-page__table-note {
	margin-left: 0.35em;
	color: var(--color-muted);
	font-size: 0.9em;
}

.contact-page .contact-page__topics {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 48px;
	max-width: 820px;
	margin: 0 auto;
	padding: 0;
}

.contact-page .contact-page__topics li {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
}

.contact-page__info-text {
	margin: 0 0 1em;
	font-size: 15px;
	line-height: 1.9;
}

.contact-page__info-text a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.contact-page__info-text a:hover,
.contact-page__info-text a:focus-visible {
	color: #1f2c1f;
}

.contact-page__info-text:last-child {
	margin-bottom: 0;
}

.contact-page__info-text--muted {
	color: var(--color-muted);
	font-size: 14px;
}

.contact-page__form {
	padding-bottom: clamp(24px, 4vw, 40px);
}

.contact-page__form-inner {
	padding: clamp(28px, 4vw, 48px) clamp(20px, 4vw, 40px);
	border: 1px solid #e5e0d8;
	background: var(--fixed-page-bg);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.contact-page .fixed-section--surface .contact-page__form-inner {
	background: var(--fixed-page-bg);
}

/* CF7 の wpautop 無効化後も、残った p / br がレイアウトを広げないようにする */
.contact-page__form .wpcf7-form p {
	margin: 0;
}

.contact-page__form .wpcf7-form .form-group p:not(.form-label):not(.booking-open-group__hint):not(.form-message-text),
.contact-page__form .wpcf7-form .booking-slot-group p:not(.form-label):not(.booking-open-group__hint):not(.form-message-text),
.contact-page__form .wpcf7-form .input-group p,
.contact-page__form .wpcf7-form .input-group3 p,
.contact-page__form .wpcf7-form .input-3items p,
.contact-page__form .wpcf7-form .address-fields p,
.contact-page__form .wpcf7-form .address-fields__postal-line p,
.contact-page__form .wpcf7-form .address-fields__row p,
.contact-page__form .wpcf7-form .checkbox-group p {
	display: contents;
}

.contact-page__form .wpcf7-form .hogo {
	display: block;
}

.contact-page__form .form-group {
	margin-bottom: clamp(24px, 3.5vw, 32px);
}

.contact-page__form .form-label {
	margin: 0 0 12px;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
}

.contact-page__form .required {
	margin-left: 8px;
	color: #b54a4a;
	font-size: 12px;
	font-weight: 600;
}

.contact-page__form .optional {
	margin-left: 8px;
	color: var(--color-muted);
	font-size: 12px;
	font-weight: 500;
}

.contact-page__form .input-group {
	margin-bottom: 16px;
}

.contact-page__form .input-group:last-child {
	margin-bottom: 0;
}

.contact-page__form .input-group--compact {
	margin-bottom: 6px;
	gap: 2px;
}

/* 住所：郵便番号 → 都道府県・市区町村 → その他（3行） */
.contact-page__form .address-fields {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.contact-page__form .address-fields p {
	margin: 0;
}

.contact-page__form .address-fields__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px 12px;
}

.contact-page__form .address-fields__postal-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
}

.contact-page__form .address-fields__postal-line .wpcf7-form-control-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 11em;
	flex: 0 1 auto;
	min-width: 0;
}

.contact-page__form .address-fields__hint {
	margin: 0;
	font-size: 12px;
	line-height: 1.45;
	color: var(--color-muted);
}

.contact-page__form .form-group--address > .form-label {
	margin-bottom: 8px;
}

.contact-page__form .form-group--address .input-group.has-label {
	gap: 2px;
}

.contact-page__form .form-group--address .input-label {
	font-size: 13px;
	line-height: 1.35;
}

.contact-page__form .form-group--address input[type="text"] {
	padding: 8px 12px;
	font-size: 14px;
}

.contact-page__form .form-group--address #postal,
.contact-page__form .form-group--address input.p-postal-code {
	box-sizing: border-box;
	width: 100%;
	max-width: 11em;
}

/* ラベル上・入力はフォーム幅いっぱい */
.contact-page__form .input-group.has-label {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 6px;
}

.contact-page__form .input-group3 {
	margin-bottom: 16px;
}

.contact-page__form .input-group3:last-child {
	margin-bottom: 0;
}

.contact-page__form .input-group3.has-label3 {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 6px;
}

/* 希望日時（随時開催・日付＋時間など横並び） */
.contact-page__form .input-3items {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	font-size: 15px;
	line-height: 1.5;
}

.contact-page__form .input-3items .wpcf7-form-control-wrap {
	display: block;
	width: auto;
	flex: 0 1 auto;
	min-width: 0;
}

.contact-page__form .input-3items input[type="date"],
.contact-page__form .input-3items input.auto-date,
.contact-page__form .input-3items input[type="text"],
.contact-page__form .input-3items select {
	box-sizing: border-box;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid #c8ccc8;
	border-radius: 0;
	background-color: #fff;
	color: inherit;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	min-height: calc(1.5em + 24px + 2px);
	-webkit-appearance: none;
	appearance: none;
}

.contact-page__form .input-3items input[type="date"],
.contact-page__form .input-3items input.auto-date {
	display: inline-flex;
	align-items: center;
	width: 100%;
	max-width: 11.5em;
	flex: 0 1 auto;
}

.contact-page__form .input-3items input[type="date"]::-webkit-date-and-time-value {
	text-align: left;
}

.contact-page__form .input-3items input[type="date"]::-webkit-calendar-picker-indicator {
	margin: 0;
	padding: 0;
	cursor: pointer;
	opacity: 0.65;
}

.contact-page__form .input-3items select {
	width: auto;
	min-width: 4.25em;
	max-width: 5.5em;
	padding-right: 32px;
	flex: 0 0 auto;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231f201c' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 10px 6px;
}

.contact-page__form .input-3items .wpcf7-form-control-wrap input[type="date"],
.contact-page__form .input-3items .wpcf7-form-control-wrap input.auto-date {
	width: 100%;
	max-width: 11.5em;
}

.contact-page__form .input-3items .wpcf7-form-control-wrap select {
	width: auto;
	max-width: 5.5em;
}

.contact-page__form .input-3items input[name="booking_time"],
.contact-page__form .input-3items input[name="visit-time"],
.contact-page__form .input-3items .wpcf7-form-control-wrap input[name="booking_time"],
.contact-page__form .input-3items .wpcf7-form-control-wrap input[name="visit-time"] {
	width: auto;
	min-width: 5.5em;
	max-width: 7em;
}

.contact-page__form .wpcf7-form .form-group > .form-label,
.contact-page__form .wpcf7-form .booking-slot-group > .form-label {
	display: block;
}

.contact-page__form .wpcf7-form .form-group > .form-message-text,
.contact-page__form .wpcf7-form .booking-slot-group > .form-message-text {
	display: block;
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--color-muted);
}

.contact-page__form .booking-open-group .input-group3.has-label3 {
	gap: 12px;
}

.contact-page__form .booking-open-group__label {
	display: flex;
	flex-flow: row nowrap;
	align-items: baseline;
	gap: 0 1.5em;
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}

.contact-page__form .booking-open-group__title {
	flex: 0 0 auto;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
}

.contact-page__form .booking-open-group__hint {
	flex: 0 1 auto;
	min-width: 0;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-muted);
	white-space: nowrap;
}

.contact-page__form .input-label {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
}

.contact-page__form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	max-width: none;
}

.contact-page__form .wpcf7-form-control-wrap input[type="text"],
.contact-page__form .wpcf7-form-control-wrap input[type="email"],
.contact-page__form .wpcf7-form-control-wrap input[type="tel"],
.contact-page__form .wpcf7-form-control-wrap input[type="url"],
.contact-page__form .wpcf7-form-control-wrap textarea,
.contact-page__form .wpcf7-form-control-wrap select {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.contact-page__form input[type="text"],
.contact-page__form input[type="email"],
.contact-page__form input[type="tel"],
.contact-page__form input[type="url"],
.contact-page__form textarea,
.contact-page__form select {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid #c8ccc8;
	border-radius: 0;
	background: #fff;
	color: inherit;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
}

.contact-page__form input[type="checkbox"],
.contact-page__form input[type="radio"] {
	width: 1.0625rem;
	height: 1.0625rem;
	margin: 0;
	flex: none;
	vertical-align: middle;
}

.contact-page__form #postal,
.contact-page__form input.p-postal-code {
	box-sizing: border-box;
	width: 100%;
	max-width: 11em;
}

.contact-page__form textarea {
	min-height: 140px;
	resize: vertical;
}

.contact-page__form input:focus-visible,
.contact-page__form textarea:focus-visible,
.contact-page__form select:focus-visible {
	border-color: var(--color-wood);
	outline: 2px solid rgba(31, 32, 28, 0.12);
	outline-offset: 1px;
}

.contact-page__form .checkbox-group .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.contact-page__form .checkbox-group .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 22px;
}

.contact-page__form .checkbox-group .wpcf7-list-item {
	display: inline-flex;
	margin: 0;
	max-width: 100%;
}

.contact-page__form .checkbox-group label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	line-height: 1.4;
	white-space: nowrap;
	word-break: normal;
	cursor: pointer;
}

.contact-page__form .checkbox-group .wpcf7-list-item-label {
	flex: 0 1 auto;
}

.contact-page__form .hogo {
	margin: clamp(24px, 4vw, 36px) 0 0;
	font-size: 13px;
	line-height: 1.75;
	text-align: center;
}

.contact-page__form .hogo a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.contact-page__form .text-c {
	margin-top: clamp(20px, 3vw, 28px);
	text-align: center;
}

.contact-page__form .wpcf7-spinner {
	display: none;
}

.contact-page__form .wpcf7-submit,
.contact-page__form .submit-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
	padding: 16px 40px;
	border: 1px solid rgba(31, 32, 28, 0.35);
	background: #fff;
	color: inherit;
	font-family: inherit;
	font-size: 16px;
	cursor: pointer;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.contact-page__form .wpcf7-submit:hover,
.contact-page__form .wpcf7-submit:focus-visible,
.contact-page__form .submit-button:hover,
.contact-page__form .submit-button:focus-visible {
	border-color: transparent;
	background: rgba(31, 32, 28, 0.72);
	color: #fff;
}

.contact-page__form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
}

.contact-page__form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 14px 16px;
	border-width: 1px;
	font-size: 14px;
}

.form-turnstile{
    margin: 40px auto 30px;
    text-align: center;
}

@media screen and (max-width: 960px) {
	/* page-contact.php / page-catalog.php（フォームは .contact-page__form 共通） */
	.contact-page__intro-text {
		margin-bottom: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.contact-page__form-lead {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.contact-page__intro {
		text-align: left;
	}

	.contact-page__table {
		font-size: var(--fixed-page-font-body, 14px);
	}

	.contact-page__table th,
	.contact-page__table td {
		display: block;
		width: 100%;
		padding-right: 16px;
		padding-left: 16px;
	}

	.contact-page__table th {
		padding-top: 14px;
		padding-bottom: 0;
		border-bottom: 0;
		white-space: normal;
		background: #e4d5c3;
		font-size: 0.8125rem;
	}

	.contact-page__table td {
		padding-top: 4px;
		padding-bottom: 14px;
	}

	.contact-page__subheading {
		margin-top: 28px;
		margin-bottom: 14px;
		font-size: 1rem;
		letter-spacing: 0.06em;
	}

	.contact-page__topics-panel {
		box-sizing: border-box;
		width: 100%;
		max-width: none;
		margin-bottom: 20px;
		padding: 18px 16px;
	}

	.contact-page .contact-page__topics {
		grid-template-columns: 1fr;
		gap: 10px;
		width: 100%;
		max-width: none;
		margin: 0;
	}

	.contact-page .contact-page__topics li {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.contact-page__info-text {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.contact-page__info-text--muted {
		font-size: var(--fixed-page-font-body, 14px);
	}

	.contact-page__form-inner {
		padding: 20px 16px;
	}

	.contact-page__form .form-group {
		margin-bottom: 20px;
	}

	.contact-page__form .form-label {
		margin-bottom: 8px;
		font-size: 0.9375rem;
	}

	.contact-page__form .wpcf7-submit,
	.contact-page__form .submit-button {
		box-sizing: border-box;
		min-width: 0;
		width: 100%;
		max-width: 300px;
		padding: 13px 24px;
		font-size: 14px;
	}

	.contact-page__form .address-fields__row {
		grid-template-columns: 1fr;
	}

	.contact-page__form .address-fields__postal-line .wpcf7-form-control-wrap {
		max-width: 100%;
	}

	.contact-page__form #postal,
	.contact-page__form input.p-postal-code,
	.contact-page__form .form-group--address #postal,
	.contact-page__form .form-group--address input.p-postal-code {
		width: 100%;
		max-width: 100%;
	}

	/* 希望日時：1行目＝日付（内容幅）、2行目＝時間など横並び */
	.contact-page__form .input-3items .wpcf7-form-control-wrap:first-of-type {
		flex: 1 0 100%;
		width: max-content;
		max-width: 100%;
	}

	.contact-page__form .input-3items input[type="date"],
	.contact-page__form .input-3items input.auto-date,
	.contact-page__form .input-3items .wpcf7-form-control-wrap input[type="date"],
	.contact-page__form .input-3items .wpcf7-form-control-wrap input.auto-date {
		width: auto;
		min-width: 11em;
		max-width: 11.5em;
	}

	.contact-page__form .input-3items .wpcf7-form-control-wrap ~ .wpcf7-form-control-wrap {
		flex: 0 0 auto;
	}

	.contact-page__form .input-3items input[name="booking_time"],
	.contact-page__form .input-3items input[name="visit-time"],
	.contact-page__form .input-3items .wpcf7-form-control-wrap input[name="booking_time"],
	.contact-page__form .input-3items .wpcf7-form-control-wrap input[name="visit-time"] {
		width: auto;
		min-width: 5.5em;
		max-width: 7em;
	}

	.catalog-page__figure {
		margin-bottom: 20px;
	}

	.catalog-page__lead {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.catalog-page__intro {
		text-align: left;
	}

	.catalog-page__form-note {
		margin-bottom: 16px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}
}

/* page-thanks.php（.thanks-page）— フォーム送信完了 */

.thanks-page__body {
	text-align: center;
}

.thanks-page__prose {
	margin: 0 auto;
	max-width: 40em;
	text-align: left;
	line-height: 1.9;
}

.thanks-page__prose p {
	margin: 0 0 1em;
}

.thanks-page__prose p:last-child {
	margin-bottom: 0;
}

.thanks-page__tel {
	margin-top: 1.25em;
	font-size: clamp(1.05rem, 2.4vw, 1.2rem);
	font-weight: 600;
}

.thanks-page__tel a {
	color: inherit;
	text-decoration: none;
}

.thanks-page__tel a:hover,
.thanks-page__tel a:focus-visible {
	color: var(--color-wood);
}

.thanks-page__tel-note {
	margin-left: 0.35em;
	font-size: 0.85em;
	font-weight: 400;
}

.thanks-page__muted {
	margin-top: 1.25em;
	color: rgba(31, 32, 28, 0.72);
	font-size: 0.95em;
}

.thanks-page__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 20px;
	margin-top: clamp(36px, 6vw, 48px);
}

@media screen and (max-width: 960px) {
	.thanks-page__prose {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.thanks-page__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.thanks-page__actions .button {
		justify-content: center;
	}
}

/* page-land.php（.land-page）— fixed-section 型 */

.land-page .land-prose p {
    margin: 0 0 30px;
    line-height: 2;
}

.land-page .land-prose p:last-child {
	margin-bottom: 0;
}

.land-page .land-prose a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.land-page .land-prose strong {
	font-weight: 700;
}

.land-section-lead {
    margin: 0 auto var(--fixed-page-stack);
    line-height: 1.85;
    text-align: center;
    background: #fff;
    padding: 20px;
}

.land-subheading {
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--color-green);
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: left;
}

.land-photo-lead {
	margin: 0 auto var(--fixed-page-stack);
	max-width: 920px;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.land-photo-lead img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(48vw, 340px);
	object-fit: cover;
}

.land-worry-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 2.5vw, 20px);
	margin: 0 0 var(--fixed-page-stack);
	padding: 0;
	list-style: none;
}

.land-worry-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: clamp(20px, 3vw, 28px) clamp(16px, 2.5vw, 20px);
	border: 1px solid #e5e0d8;
	background: var(--fixed-page-bg);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
	text-align: center;
}

.land-page .fixed-section--surface .land-worry-card {
	background: var(--fixed-page-bg);
}

.land-worry-card .hm {
	color: var(--color-green);
	font-size: clamp(2rem, 4vw, 2.5rem);
	line-height: 1;
}

.land-worry-card p {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.75;
	color: #2a332a;
}

.land-panel {
	box-sizing: border-box;
	width: 100%;
	margin-inline: auto;
	padding: clamp(20px, 3vw, 28px) clamp(22px, 3.5vw, 32px);
	border: 1px solid #e5e0d8;
	line-height: 1.9;
}

.land-page .fixed-section--surface .land-panel {
	background: var(--fixed-page-bg);
	border-left: 4px solid var(--color-green);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.land-page .fixed-section--base .land-panel {
	background: #fff;
	border-left: 4px solid var(--color-green);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.land-panel--prose {
	text-align: left;
}

.land-panel p {
	margin: 0;
}

.land-panel--prose p + p {
	margin-top: 1.2em;
}

.land-worries__closing {
	margin: var(--fixed-page-stack) auto 0;
	max-width: 40em;
	line-height: 1.85;
	text-align: center;
}

.land-panel--advice {
	margin-top: 4px;
}

.land-panel--advice .land-advice__title {
	margin: 0 0 16px;
}

.land-panel--costs {
	max-width: 40em;
	margin-inline: auto;
}

.land-costs__checks {
	max-width: none;
	margin: 0;
}

.land-panel--costs .style-checks li:last-child {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.land-photo-strip {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin: 0 auto var(--fixed-page-stack);
	padding: 0;
	list-style: none;
}

.land-photo-strip li {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 6px 18px rgba(31, 44, 31, 0.1);
}

.land-photo-strip img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.land-row__photo--frame img {
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.land-flow__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.land-flow__item {
	padding: 22px 24px;
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.05);
}

.land-flow__arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0;
	padding: 23px 0;
	list-style: none;
}

.land-flow__arrow::before {
    content: "";
    display: block;
    width: 80px;
    height: 25px;
    background-color: var(--color-green);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

.land-flow__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-bottom: 10px;
}

.land-flow__num {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 2em;
	height: 2em;
	border-radius: 50%;
	background: var(--color-green);
	color: #fff;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1;
}

.land-flow__head .hm {
	flex: 0 0 auto;
	color: var(--color-green);
	font-size: 1.75rem;
	line-height: 1;
}

.land-flow__head strong {
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.land-flow__item p {
	margin: 0;
	line-height: 1.85;
	color: #2a332a;
}

.land-page .land-found__lead {
	margin: 0 0 var(--fixed-page-stack);
	line-height: 1.85;
	text-align: left;
}

.land-approach__rows {
	display: flex;
	flex-direction: column;
	gap: clamp(32px, 5vw, 56px);
	max-width: var(--fixed-page-width-split);
	margin-inline: auto;
}

.land-approach__rows .sim-split--land-row {
	max-width: none;
	margin-inline: 0;
}

.land-costs__note {
	margin: var(--fixed-page-stack) auto 0;
	max-width: 40em;
	line-height: 1.85;
	text-align: center;
}

.land-costs__note a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.land-flow__links a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.land-split {
	margin-top: 0;
}

.sim-split--land-row {
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: clamp(28px, 5vw, 56px);
	max-width: var(--fixed-page-width-split);
	margin-inline: auto;
}

.land-row__body {
	flex: 1 1 52%;
	min-width: 0;
}

.land-row__photo {
	flex: 0 0 42%;
	max-width: 42%;
	min-width: 0;
}

.land-row__photo img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.land-row__photo--portrait img {
	max-height: min(72vh, 640px);
	margin-inline: auto;
	object-fit: cover;
}

.land-advice__title {
	margin: 0 0 16px;
	text-align: left;
}

.land-advice {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.land-advice li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0;
	padding: 0;
}

.land-advice li + li {
	margin-top: 14px;
}

.land-advice .hm-tick-circle {
	flex: 0 0 auto;
	margin-top: 0.1em;
	color: #69727d;
	font-size: 1.5rem;
	line-height: 1;
}

.land-advice li span {
	line-height: 1.75;
}

@media screen and (max-width: 960px) {
	.sim-split--land-row {
		flex-wrap: wrap;
		gap: var(--fixed-page-stack, 24px);
	}

	.land-row__body,
	.land-row__photo {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.land-page .style-band {
		scroll-margin-top: 88px;
	}

	.land-page .land-photo-lead {
		margin-bottom: 20px;
	}

	.land-page .land-photo-lead img {
		max-height: min(52vw, 220px);
	}

	.land-worry-grid {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-bottom: var(--fixed-page-stack, 24px);
	}

	.land-page .land-worry-card {
		flex-direction: row;
		align-items: center;
		gap: 12px;
		padding: 12px 14px;
		text-align: left;
	}

	.land-page .land-worry-card .hm {
		flex-shrink: 0;
		font-size: 1.75rem;
	}

	.land-page .land-worry-card p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.65;
	}

	.land-page .land-worries__closing {
		margin-top: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.land-page .land-section-lead {
		margin-bottom: 20px;
		padding: 14px 16px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.land-page .land-approach__rows {
		gap: 28px;
	}

	.land-page .land-subheading {
		margin-bottom: 12px;
		padding-bottom: 8px;
		font-size: 1.02rem;
	}

	.land-page .land-prose p {
		margin-bottom: 1em;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.land-page .land-found__lead {
		margin-bottom: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.land-page .land-panel {
		padding: 16px 14px;
	}

	.land-page .land-advice li span {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.land-page .land-advice .hm-tick-circle {
		font-size: 1.25rem;
	}

	.land-page .land-row__photo--portrait img {
		max-height: min(70vw, 360px);
	}

	.land-photo-strip {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
		max-width: 100%;
		margin-inline: 0;
		margin-bottom: 20px;
	}

	.land-page .land-panel--costs .style-checks li {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.land-page .land-costs__note {
		margin-top: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.land-page .land-flow__item {
		padding: 16px 14px;
	}

	.land-page .land-flow__arrow {
		padding: 14px 0;
	}

	.land-page .land-flow__arrow::before {
		width: 56px;
		height: 18px;
	}

	.land-page .land-flow__head strong {
		font-size: 1rem;
	}

	.land-page .land-flow__item p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.land-page .land-flow__links {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		margin-top: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.land-page .land-flow__links span[aria-hidden="true"] {
		display: none;
	}
}

/* page-company.php（.company-page） */

.company-prose {
	margin-inline: auto;
	text-align: left;
}

.company-prose p {
	margin: 0 0 1.2em;
	line-height: 1.9;
}

.company-table {
	width: 100%;
	margin: 0 auto;
	border: 1px solid #e5e0d8;
	border-collapse: collapse;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.05);
	text-align: left;
}

.company-table th,
.company-table td {
	padding: 15px 18px;
	border-bottom: 1px solid #e5e0d8;
	vertical-align: top;
	line-height: 1.85;
}

.company-table tr:last-child th,
.company-table tr:last-child td {
	border-bottom: 0;
}

.company-table th {
	width: 8.5em;
	padding-right: 16px;
	background: #e4d5c3;
	color: var(--color-footer-brand, #2f5d46);
	font-weight: 600;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.company-table td {
	background: #fff;
}

.company-table tr:nth-child(even) td {
	background: #fbfaf8;
}

.company-table a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.company-zeh__chart {
	margin: 8px auto 16px;
}

.company-zeh__chart picture,
.company-zeh__chart img {
	display: block;
	width: 100%;
	height: auto;
}

.company-zeh__link {
	margin: 0;
	text-align: right;
}

.company-zeh__link a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.company-map {
	max-width: var(--fixed-page-width);
	height: clamp(280px, 52vw, 480px);
	margin: 0 auto 32px;
}

.company-map iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.company-access__checks {
	margin: 0 auto;
	max-width: 640px;
	text-align: left;
}
.company-office__photo img {
	width: 100%;
	height: auto;
}

.company-more {
	margin: 36px 0 0;
	text-align: center;
	letter-spacing: 0.08em;
}

.company-more a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

@media screen and (max-width: 960px) {
	.company-table th,
	.company-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	.company-table tr {
		border-bottom: 1px solid #e5e0d8;
	}

	.company-table tr:last-child {
		border-bottom: 0;
	}

	.company-table th {
		padding: 12px 16px;
		border-bottom: 0;
		white-space: normal;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.5;
	}

	.company-table td {
		padding: 10px 16px 18px;
		line-height: 1.85;
	}

	.company-table tr:nth-child(even) td {
		background: #fbfaf8;
	}

	.company-zeh__link {
		text-align: left;
		font-size: var(--fixed-page-font-body, 14px);
	}
}

/* page-basic.php（.basic-page） */

.basic-page {
	color: #1f2c1f;
}

.basic-page .basic-intro {
	padding: 0;
	text-align: center;
}

.basic-intro__catch {
	margin: 0 0 1.5em;
	color: #4a524a;
	font-size: clamp(0.95rem, 2vw, 1.05rem);
	font-weight: 500;
	line-height: 1.75;
	letter-spacing: 0.06em;
}

.basic-intro__text {
	margin: 0 auto;
	color: #3c3f3b;
	line-height: 1.9;
	text-align: left;
}

.basic-intro__text p {
	margin: 0 0 1em;
}

.basic-spec {
	text-align: left;
}

.basic-spec .style-band h2 small {
	font-size: 0.72em;
	font-weight: 500;
}

.basic-spec__text {
	max-width: 52em;
	margin: 0 auto 32px;
	color: #3c3f3b;
	line-height: 1.9;
	text-align: left;
}

.basic-spec__text p {
	margin: 0 0 1.2em;
}

.basic-spec__text p:last-child {
	margin-bottom: 0;
}

.basic-plan {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(20px, 3vw, 28px);
	margin-top: 8px;
}

.basic-plan__figure {
	width: 100%;
	max-width: 771px;
	margin: 0;
}

.basic-plan__sim {
	margin: 0;
	max-width: 36em;
	color: #3c3f3b;
	font-size: 0.9rem;
	line-height: 1.85;
	text-align: center;
}

.basic-plan__sim a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.basic-spec__plan-img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.1);
}

.basic-intro__link {
	margin-top: 3em !important;
	text-align: center;
}

.basic-intro__link a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.basic-section-title {
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--color-green);
	font-size: clamp(1.15rem, 2.2vw, 1.45rem);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
}

.basic-included,
.basic-equip {
	text-align: center;
}

.basic-included__lead,
.basic-equip__lead {
	margin: 0 auto 24px;
	max-width: 40em;
	color: #3c3f3b;
	line-height: 1.85;
	text-align: center;
}

/* コンセプト .concept-prose__housepro と同型（basic 単体でも崩れない） */
.basic-included__panel {
	box-sizing: border-box;
	width: 100%;
	max-width: 640px;
	margin-inline: auto;
	padding: 1.25em 1.5em;
	background: #fff;
	border-left: 4px solid var(--color-green);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
	line-height: 1.9;
}

.basic-included__panel .basic-checks {
	width: 100%;
	margin: 0;
}

.basic-included__panel .basic-checks li:last-child {
	margin-bottom: 0;
}

.basic-checks {
	width: min(640px, 100%);
	margin: 0 auto 20px;
	padding: 0;
	list-style: none;
	text-align: left;
}

.basic-checks li {
	display: flex;
	gap: 0.65em;
	align-items: flex-start;
	margin: 0 0 0.85em;
	color: #3c3f3b;
	font-size: 0.95rem;
	line-height: 1.75;
}

.basic-checks .hm-tick {
	flex-shrink: 0;
	margin-top: 0.15em;
	color: var(--color-green);
}

.basic-included__note {
	width: min(720px, 100%);
	margin: 24px auto 0;
	color: #5a5f58;
	font-size: 0.88rem;
	line-height: 1.75;
	text-align: center;
}

.basic-equip__photos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(14px, 2.5vw, 20px);
	width: min(960px, 100%);
	margin: 0 auto 28px;
	padding: 0;
	list-style: none;
}

.basic-equip__figure {
	margin: 0;
}

.basic-equip__media {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 6px 18px rgba(31, 44, 31, 0.08);
	background: #ebe8e3;
}

.basic-equip__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
}

.basic-equip__caption {
	margin: 8px 0 0;
	color: #3c3f3b;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

.basic-equip__makers-label {
	margin: 0 0 12px;
	color: #3c3f3b;
	font-size: 0.9rem;
	font-weight: 600;
}

.basic-makers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 14px;
	width: min(720px, 100%);
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.basic-makers li {
	padding: 8px 14px;
	border: 1px solid rgba(60, 63, 59, 0.25);
	background: #fff;
	color: #3c3f3b;
	font-size: 0.85rem;
	line-height: 1.3;
}

.basic-disclaimer {
	margin: 20px auto 0;
	color: #6a6f68;
	font-size: 0.8rem;
	line-height: 1.6;
}

.basic-links {
	display: flex;
	justify-content: space-evenly;
	gap: 10px;
	width: min(1200px, calc(100% - 48px));
	margin: 60px auto;
}

.basic-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 34%;
	min-height: 122px;
	padding: 20px 8px 16px;
	border: 1px solid rgba(31, 32, 28, 0.78);
	background: #fff;
	color: #1f2c1f;
	font-size: 16px;
	line-height: 40px;
	text-align: center;
}

.basic-card .hm {
	color: #69727d;
	font-size: 40px;
	line-height: 1;
}

.basic-card:hover {
	border-color: transparent;
	background: rgba(31, 32, 28, 0.42);
	color: #fff;
}

.basic-card:hover .hm {
	color: #fff;
}

.basic-card--fill {
	width: 15%;
	border-color: rgba(31, 32, 28, 0.42);
	background: rgba(31, 32, 28, 0.42);
	color: #fff;
}

.basic-card--fill .hm {
	color: #fff;
}

.basic-card--fill:hover {
	border: 1px solid rgba(31, 32, 28, 0.78);
	background: #fff;
	color: rgba(31, 32, 28, 0.78);
}

.basic-card--fill:hover .hm {
	color: rgba(31, 32, 28, 0.78);
}

@media screen and (max-width: 960px) {
	.basic-name {
		font-size: 1.6rem;
	}

	.basic-links {
		flex-wrap: wrap;
		margin: 24px auto 40px;
	}

	.basic-card {
		width: 100%;
	}

	.basic-card--fill {
		width: calc(50% - 5px);
	}

	.basic-equip__photos {
		grid-template-columns: 1fr;
	}

	.basic-page .style-band {
		scroll-margin-top: 88px;
	}

	.basic-page .basic-intro__catch {
		margin-bottom: 1.15em;
		font-size: clamp(0.9rem, 3.8vw, 1rem);
		line-height: 1.65;
	}

	.basic-page .basic-intro__text {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.basic-page .basic-intro__text p {
		margin-bottom: 0.85em;
	}

	.basic-page .basic-intro__link {
		margin-top: 1.75em !important;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.basic-page .basic-included__lead,
	.basic-page .basic-equip__lead {
		margin-bottom: 18px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.basic-page .basic-included__panel {
		padding: 1em 1.1em;
	}

	.basic-page .basic-checks li {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
		margin-bottom: 0.75em;
	}

	.basic-page .basic-included__note {
		margin-top: 18px;
		font-size: 0.85rem;
		line-height: 1.75;
		text-align: left;
	}

	.basic-page .basic-equip__photos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		margin-bottom: 20px;
	}

	.basic-page .basic-equip__caption {
		margin-top: 6px;
		font-size: 0.78rem;
	}

	.basic-page .basic-equip__makers-label {
		font-size: 0.85rem;
		text-align: left;
	}

	.basic-page .basic-makers {
		justify-content: flex-start;
		gap: 8px 10px;
	}

	.basic-page .basic-makers li {
		padding: 6px 10px;
		font-size: 0.8rem;
	}

	.basic-page .basic-spec__text {
		margin-bottom: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.basic-page .basic-spec__text p {
		margin-bottom: 0.85em;
	}

	.basic-page .basic-plan {
		gap: 16px;
	}

	.basic-page .basic-plan__sim {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}
}

main.fixed-page .style-checks .hm {
	color: var(--color-green);
}

.style-block {
	width: min(1100px, calc(100% - 48px));
	margin: 72px auto;
}

.style-promise {
	display: grid;
	grid-template-columns: minmax(260px, 0.9fr) minmax(280px, 1.1fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}

.style-promise__photos {
	position: relative;
	width: 100%;
	max-width: 440px;
	min-height: clamp(280px, 42vw, 380px);
	margin: 0 auto;
}

.style-promise__photo {
	display: block;
	height: auto;
	object-fit: cover;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.style-promise__photo--main {
	position: relative;
	z-index: 1;
	width: 70%;
	max-width: 300px;
}

.style-promise__photo--accent {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	width: 46%;
	max-width: 200px;
}

.style-promise h2,
.style-block h2,
.style-copy h2 {
	margin: 0 0 30px;
	padding-bottom: 8px;
	border-bottom: 1px solid #3c3f3b;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.style-checks {
	margin: 0;
	padding: 0 4%;
	list-style: none;
}

.style-checks li {
    display: flex;
    gap: 10px;
    margin: 0 0 14px;
    line-height: 1.7;
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
}

.style-checks .hm {
	flex: 0 0 auto;
	margin-top: 0.25em;
	color: #69727d;
}

.style-copy p {
	margin: 0 0 1em;
	line-height: 1.9;
}

.style-band {
	padding: 72px 20px 28px;
	scroll-margin-top: 110px;
	text-align: center;
}

.style-band .hm-tree-square {
	color: #69727d;
	font-size: clamp(28px, 3.6vw, 34px);
}

.style-band h2 {
	margin: 8px 0 0;
	border: 0;
	font-size: clamp(1.125rem, 2.3vw, 26px);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.06em;
}

.style-band p {
	margin: clamp(12px, 2.5vw, 16px) 0 0;
	color: #3c3f3b;
	line-height: 1.75;
}

.style-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: start;
	width: min(1240px, calc(100% - 48px));
	margin: 28px auto 72px;
}

.style-split .style-copy,
.style-split > div {
	width: auto;
	margin: 0;
}

.style-split h2 {
	margin: 30px 0;
	padding-bottom: 8px;
	border-bottom: 1px solid #3c3f3b;
	font-size: 1.45rem;
	font-weight: 500;
}

.style-side-photos {
	display: grid;
	gap: 16px;
}

.style-side-photos img,
.style-illust {
	display: block;
	width: 100%;
	height: auto;
}

.style-split--wood {
	align-items: center;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.style-side-photos--wood {
	position: relative;
	width: 100%;
	min-height: clamp(320px, 34vw, 480px);
	margin: 0;
}

.style-side-photos--wood .style-side-photos__img {
	display: block;
	height: auto;
	object-fit: cover;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.style-side-photos--wood .style-side-photos__img--tall {
	position: relative;
	z-index: 1;
	width: 50%;
}

.style-side-photos--wood .style-side-photos__img--square {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	width: 56%;
}

.style-illust {
	width: min(640px, 100%);
	margin: 20px auto 8px;
}

h3.style-label {
	margin: 8px 0 12px;
	padding: 9px 14px;
	background: #e7ece8;
	font-size: clamp(1.1rem, 2.4vw, 1.22rem);
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.04em;
}

.style-photo {
	display: grid;
	grid-template-columns: 46% 1fr;
	gap: 14px;
	align-items: center;
	margin: 0 0 16px;
}

.style-photo img {
	width: 100%;
	height: 140px;
	object-fit: cover;
}

.style-photo h3,
.style-photo h4 {
	margin: 0 0 6px;
	font-size: 1.05rem;
	font-weight: 500;
}

.style-photo p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.7;
}

.style-copy {
	width: min(860px, calc(100% - 48px));
	margin: 0 auto 40px;
}

.style-copy h3 {
	margin: 36px 0 12px;
	font-size: 1.35rem;
	font-weight: 500;
	text-align: center;
}

.performance-page .performance-body {
	margin-inline: auto;
	max-width: 760px;
}

.performance-page .performance-body > p {
	margin: 0 0 28px;
	line-height: 2;
}

.style-performance__box {
	margin: 0 0 28px;
	padding: 28px 32px;
	border: 1px solid #2f3b40;
	background: #fff;
}

.style-performance__box p {
	margin: 0 0 1.35em;
}

.style-performance__box p:last-child {
	margin-bottom: 0;
}

.style-performance__box--list {
	padding: 26px 32px 22px;
}

.style-performance__box--list .style-checks {
	margin: 0;
	padding: 0 2%;
}

.style-performance__box--list .style-checks li {
	margin-bottom: 12px;
	line-height: 1.85;
}

.style-performance__box--list .style-checks li:last-child {
	margin-bottom: 0;
}

.performance-page .performance-body h3 {
	margin: 40px 0 16px;
	font-family: var(--font-serif);
	font-size: 1.12rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-align: left;
}

.performance-page .performance-body h3:first-of-type {
	margin-top: 0;
}

.performance-page .performance-body h3 small {
	font-size: 0.85em;
	font-weight: 500;
}

.style-performance__note {
	padding-left: 0;
}

.style-performance__note--inline {
	margin: 1.25em 0 0;
	font-size: 0.9rem;
	line-height: 1.85;
	color: #5a6258;
}

.style-performance__note--inline a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.style-performance__note .hm {
	display: none;
}

.style-performance__related {
	margin: 18px 0 0;
	font-size: 15px;
	line-height: 1.75;
}

.style-performance__cert {
	display: grid;
	grid-template-columns: minmax(100px, 160px) 1fr;
	gap: 20px 28px;
	align-items: start;
	margin: 0 0 36px;
}

.style-performance__cert img {
	display: block;
	width: 100%;
	height: auto;
}

.style-performance__cert h3 {
	margin: 0 0 10px;
	font-size: 1.05rem;
}

.style-performance__cert p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.85;
}

.style-steps {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	width: min(1100px, calc(100% - 48px));
	margin: 8px auto 56px;
}

.style-steps a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	min-height: 148px;
	padding: 28px 8px 20px;
	border: 1px solid #d5dbd6;
	background: #fff;
	text-align: center;
	font-weight: 700;
	transition: background 0.2s ease;
}

.style-steps a:hover {
	background: #f7faf4;
}

.style-steps a > .hm:first-of-type {
	color: #69727d;
	font-size: 34px;
}

.style-steps a span {
	font-size: 15px;
	letter-spacing: 0.04em;
}

.style-steps .hm-ellipsis-fill-v {
	margin-top: auto;
	color: var(--color-green);
	font-size: 16px;
}

.style-band--flow {
	padding-top: 48px;
}

/* page-spec.php（.spec-page） */

.spec-page__intro {
	width: 100%;
	margin: 0 auto 40px;
}

.spec-page__lead {
	margin: 0 0 2em!important;
	text-align: center;
}

.spec-page__split {
	width: 100%;
	margin: 0;
	gap: clamp(28px, 4vw, 48px);
}

.spec-page .style-band {
	scroll-margin-top: 110px;
}

@media screen and (max-width: 960px) {
	.spec-page .style-band {
		scroll-margin-top: 88px;
	}

	.spec-page .spec-page__intro.style-copy {
		width: 100%;
		max-width: none;
		margin: 0 auto 24px;
	}

	.spec-page .spec-page__lead {
		margin-bottom: 1.25em !important;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.spec-page .spec-page__intro .style-illust {
		width: 100%;
		max-width: min(100%, 400px);
		margin: 4px auto 0;
	}

	.spec-page .spec-page__split.style-split {
		gap: 28px;
		width: 100%;
		margin: 0;
	}

	.spec-page .spec-page__split .style-copy {
		width: 100%;
		max-width: none;
		margin: 0;
	}

	.spec-page .spec-page__split h2 {
		margin: 0 0 16px;
		padding-bottom: 6px;
		font-size: clamp(1.06rem, 4.4vw, 1.26rem);
		letter-spacing: 0.06em;
	}

	.spec-page .spec-page__split h2:not(:first-child) {
		margin-top: 26px;
	}

	.spec-page .spec-page__split .style-copy p,
	.spec-page .spec-page__split > div > p {
		margin-bottom: 0.85em;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.spec-page .spec-page__split .style-copy ul {
		margin: 0 0 1em;
		padding-left: 1.2em;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.spec-page .spec-page__split .style-copy li {
		margin-bottom: 0.35em;
	}

	.spec-page h3.style-label {
		margin: 20px 0 12px;
		padding: 9px 12px;
		font-size: clamp(1.05rem, 4.2vw, 1.15rem);
	}

	.spec-page .spec-page__split > div > h3.style-label:first-child {
		margin-top: 0;
	}

	.spec-page .style-photo {
		gap: 12px;
		margin-bottom: 14px;
	}

	.spec-page .style-photo img {
		height: auto;
		max-height: 200px;
	}

	.spec-page .style-photo h3,
	.spec-page .style-photo h4 {
		margin-bottom: 4px;
		font-size: 1rem;
	}

	.spec-page .style-photo p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.8;
	}
}

/* page-flow.php（.flow-page） */

.flow-page__overview .style-steps {
	width: 100%;
	margin: 0;
}

.flow-page .flow-steps a {
	border-color: #d0d8d0;
	background: var(--fixed-page-surface);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.07);
}

.flow-page .flow-steps a:hover {
	border-color: #b8c9b8;
	background: #f7faf4;
}

.flow-page .flow-steps a > .hm:first-of-type {
	color: var(--color-wood);
}

.flow-page .flow-step {
	width: 100%;
	margin: 0;
	padding-bottom: 0;
}

.flow-page .style-step h3 {
	padding-bottom: 16px;
	border-bottom: 2px solid var(--color-green);
	text-align: left;
}

.flow-page .style-step__lead {
	text-align: left;
}

.flow-step__photo {
	margin: 0 0 28px;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.1);
}

.flow-step__photo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(52vw, 360px);
	object-fit: cover;
}

/* page-flow.php … SP（文字・余白。レイアウトは .style-step__row の共通 1 列を利用） */
@media screen and (max-width: 960px) {
	.flow-page .style-steps.flow-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		width: 100%;
		margin: 0;
	}

	.flow-page .flow-steps a {
		min-height: 0;
		padding: 14px 8px 10px;
		gap: 6px;
		box-shadow: none;
	}

	.flow-page .flow-steps a > .hm:first-of-type {
		font-size: 26px;
	}

	.flow-page .flow-steps a span {
		font-size: 13px;
		line-height: 1.35;
	}

	.flow-page .flow-steps .hm-ellipsis-fill-v {
		display: none;
	}

	.flow-page .style-step {
		width: 100%;
		margin: 0;
		padding-bottom: 0;
		scroll-margin-top: 88px;
	}

	.flow-page .style-step h3 {
		margin-bottom: 10px;
		padding: 0 5% 10px;
		font-size: clamp(1.05rem, 4.2vw, 1.2rem);
		line-height: 1.45;
	}

	.flow-page .style-step__lead {
		margin-bottom: 18px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
        padding: 0 5%;
	}

	.flow-page .flow-step__photo {
		margin-bottom: 18px;
	}

	.flow-step__photo img {
		max-height: 220px;
	}

	.flow-page .flow-step__row {
		padding: 16px 14px;
		gap: 10px;
	}

	.flow-page .flow-step__row + .flow-step__row {
		margin-top: 10px;
	}

	.flow-page .style-step__head {
		gap: 10px;
	}

	.flow-page .style-step__head .hm {
		font-size: 28px;
	}

	.flow-page .style-step__head h4 {
		font-size: 1rem;
		line-height: 1.4;
	}

	.flow-page .style-step__row > p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}
}

.flow-page .flow-step__row {
	padding: 22px 24px;
	border-bottom: 0;
	background: var(--fixed-page-surface);
	border: 1px solid #e5e0d8;
}

.flow-page .fixed-section--surface .flow-step__row {
	background: var(--fixed-page-bg);
	border-color: #ddd8cf;
}

.flow-page .fixed-section--base .flow-step__row {
	background: var(--fixed-page-surface);
}

.flow-page .flow-step__row + .flow-step__row {
	margin-top: 12px;
}

.flow-page .style-step__head .hm {
	color: var(--color-green);
	font-size: 36px;
}

.style-step {
	width: min(920px, calc(100% - 48px));
	margin: 0 auto 64px;
	padding-bottom: 8px;
	scroll-margin-top: 110px;
}

.style-step h3 {
	margin: 0 0 12px;
	padding-bottom: 14px;
	border-bottom: 1px solid #3c3f3b;
	font-size: clamp(1.25rem, 2.5vw, 1.55rem);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-align: center;
}

.style-step__lead {
	margin: 0 0 28px;
	color: #4a524a;
	font-size: 0.95rem;
	line-height: 1.8;
	text-align: center;
}

.style-step__row {
	display: grid;
	grid-template-columns: minmax(160px, 220px) 1fr;
	gap: 20px 32px;
	align-items: start;
	padding: 26px 0;
	border-bottom: 1px dotted #b8c0b8;
}

.style-step__row:last-child {
	border-bottom: 0;
}

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

.style-step__head .hm {
	flex: 0 0 auto;
	color: #69727d;
	font-size: 40px;
}

.style-step__head h4 {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.35;
}

.style-step__row > p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.85;
}

.style-faq {
	width: min(1000px, calc(100% - 48px));
	margin: 0 auto 80px;
	padding-top: clamp(56px, 10vw, 88px);
	scroll-margin-top: 110px;
}

.style-faq__label {
	margin: 0 0 14px;
	color: var(--color-green);
	font-size: clamp(1.5rem, 3.2vw, 1.85rem);
	letter-spacing: 0.14em;
	text-align: center;
}

.style-faq h2 {
	margin: 0 0 36px;
	font-size: clamp(1.05rem, 2.4vw, 1.2rem);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-align: center;
}

.style-faq__cats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-bottom: clamp(40px, 7vw, 56px);
}

.style-faq__cats a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 18px;
	border: 1px solid #99a398;
	background: #fff;
	color: #1f2c1f;
	font-size: clamp(0.875rem, 2.1vw, 1rem);
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.04em;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.style-faq__cats a:hover,
.style-faq__cats a:focus-visible {
	border-color: var(--color-green);
	background: var(--color-green);
	color: #fff;
}

.style-faq__section {
	scroll-margin-top: 110px;
}

.style-faq__section + .style-faq__section {
	margin-top: 48px;
}

.style-faq__section-title {
	margin: 0 0 20px;
	padding: 16px 20px;
	border-bottom: none;
	background: linear-gradient(135deg, rgba(84, 180, 53, 0.16) 0%, rgba(84, 180, 53, 0.06) 100%);
	border-left: 4px solid var(--color-green);
	color: #2a4a24;
	font-size: clamp(1.15rem, 2.5vw, 1.35rem);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: left;
}

.style-faq__item {
	border-bottom: 1px solid #d5dbd6;
}

.style-faq__item summary {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	padding: 18px 4px 18px 0;
	cursor: pointer;
	font-size: clamp(0.9375rem, 2.1vw, 1.0625rem);
	font-weight: 500;
	line-height: 1.65;
	list-style: none;
}

.style-faq__item summary::-webkit-details-marker {
	display: none;
}

.style-faq__item summary::before {
	flex: 0 0 auto;
	margin-top: 0.35em;
	color: var(--color-green);
	font-size: 0.65em;
	line-height: 1;
	content: "▼";
	transition: transform 0.35s ease;
}

.style-faq__item:not([open]) summary::before {
	transform: rotate(-90deg);
}

.style-faq__answer {
	height: 0;
	overflow: hidden;
	transition: height 0.45s ease;
}

.style-faq__answer-inner {
	overflow: hidden;
}

.style-faq__answer-inner p {
	margin: 0 0 16px;
	padding: 12px 14px 16px 1.5em;
	color: #6b4549;
	font-size: clamp(0.9375rem, 2vw, 1rem);
	line-height: 1.85;
	background-color: rgba(252, 236, 241, 0.75);
}

@media (prefers-reduced-motion: reduce) {
	.style-faq__answer {
		height: auto;
		transition: none;
	}

	.style-faq__item:not([open]) .style-faq__answer {
		display: none;
	}

	.style-faq__item summary::before {
		transition: none;
	}
}

/* 家づくり共通 .style-* … 960px 以下 */
@media screen and (max-width: 960px) {
	.style-steps,
	.style-promise,
	.style-split,
	.style-photo {
		grid-template-columns: 1fr;
	}

	.style-photo img {
		height: 200px;
	}

	.style-promise__photos {
		max-width: 360px;
		min-height: 300px;
		margin-bottom: 8px;
	}

	.style-promise__photo--main {
		width: 68%;
		max-width: none;
	}

	.style-promise__photo--accent {
		width: 44%;
		max-width: none;
	}

	.style-side-photos--wood {
		min-height: 300px;
		margin-top: 24px;
	}

	.style-side-photos--wood .style-side-photos__img--tall {
		width: 48%;
	}

	.style-side-photos--wood .style-side-photos__img--square {
		width: 54%;
	}

	.style-step__row {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.style-step__row > p {
		padding-left: 0;
	}

	.style-faq {
		padding-top: 48px;
	}

	.style-faq__cats a {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
	}

	.style-performance__cert {
		grid-template-columns: 1fr;
	}

	.style-performance__box {
		padding: 22px 20px;
	}
}


/* page-wood.php（.wood-page） */
.wood-page > section {
	padding-block: clamp(40px, 6vw, 72px);
}

.wood-page {
	background: var(--fixed-page-bg);
}

.wood-intro {
	background: var(--fixed-page-bg);
}

.wood-intro__inner {
	padding-block: 0;
}

.wood-section-head {
	margin: 0 0 clamp(28px, 4vw, 40px);
	text-align: center;
}

.wood-section-head--left {
	text-align: left;
}

.wood-section-head--left .wood-section-head__en {
	justify-content: flex-start;
}

.wood-section-head__en {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0 0 0.35em;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #6b7a6e;
}

.wood-section-head__en::before,
.wood-section-head__en::after {
	content: "";
	flex: 0 0 28px;
	height: 1px;
	background: #c5cdc7;
}

.wood-section-head--left .wood-section-head__en::before {
	display: none;
}

.wood-section-head__title {
	margin: 0!important;
}

.wood-section-head__lead {
	margin: 0.75em 0 0;
	font-size: 0.98rem;
	line-height: 1.7;
	color: #4a564c;
}

.wood-prose {
	font-size: 1rem;
	line-height: 1.9;
	color: #2a332a;
}

.wood-prose p {
	margin: 0 0 1em;
}

.wood-prose p:last-child {
	margin-bottom: 0;
}

.wood-prose__note {
	margin-top: 1.5em;
	padding-top: 1.25em;
	border-top: 1px solid #d5dbd6;
	font-size: 0.95rem;
}

.wood-prose a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.wood-prose a:hover {
	color: #1f2c1f;
}

.wood-alive {
	background: #fff;
}

.wood-alive__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: clamp(24px, 4vw, 48px);
	align-items: start;
}

.wood-alive__media {
	min-width: 0;
}

.wood-alive__figure {
	margin: 0;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 12px 32px rgba(31, 44, 31, 0.1);
}

.wood-alive__figure img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.wood-alive__quote {
	margin: 1.5em 0 0;
	padding: 1.1em 1.25em;
	border-left: 3px solid var(--color-green);
	background: #f3f6f4;
}

.wood-alive__quote p {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.85;
	color: #2a332a;
}

.wood-ours {
	background: var(--fixed-page-bg);
	border-top: 1px solid #e5e0d8;
}

.wood-ours__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wood-ours__item {
	padding: clamp(20px, 3vw, 28px);
	background: #fff;
	border: 1px solid #e5e0d8;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.wood-ours__title {
	margin: 0 0 0.65em;
	padding-bottom: 0.5em;
	border-bottom: 2px solid var(--color-green);
	font-size: clamp(1.02rem, 2vw, 1.15rem);
	font-weight: 700;
	line-height: 1.4;
	color: #1f2c1f;
}

.wood-ours__text {
	margin: 0 0 1em;
	font-size: 0.94rem;
	line-height: 1.85;
	color: #2a332a;
}

.wood-ours__more {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.5;
}

.wood-ours__more a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.wood-ours__more a:hover {
	color: #1f2c1f;
}

.wood-ours__faq {
	margin: clamp(24px, 4vw, 32px) 0 0;
	font-size: 0.92rem;
	text-align: center;
	color: #4a564c;
}

.wood-ours__faq a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.wood-strengths {
	background: #fff;
}

.wood-strengths__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 60px 40px;
	padding-top: clamp(36px, 5vw, 52px);
}

.wood-strength {
	min-width: 0;
	padding: clamp(22px, 3vw, 32px) clamp(20px, 2.5vw, 28px) clamp(26px, 3.5vw, 36px);
	background: var(--fixed-page-bg);
	border: 1px solid #e5e0d8;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.wood-strength__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(120px, 38%);
	gap: 8px clamp(12px, 2vw, 20px);
	align-items: start;
	margin-bottom: 1.15em;
}

.wood-strength__titles {
	padding-left: 14px;
	border-left: 2px solid #1f2c1f;
}

.wood-strength__label {
	margin: 0 0 0.35em;
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #3d9d8c;
}

.wood-strength__title {
	margin: 0;
	font-size: clamp(1.05rem, 2.2vw, 1.35rem);
	font-weight: 700;
	line-height: 1.4;
	color: #1a1a1a;
}

.wood-strength__media {
	margin: clamp(-72px, -8vw, -48px) 0 0;
	padding: 5px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(31, 44, 31, 0.12);
}

.wood-strength__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.wood-strength__text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.9;
	color: #2a332a;
}

@media screen and (max-width: 960px) {
	.wood-page > section {
		padding-block: clamp(32px, 8vw, 48px);
	}

	.wood-page .wood-intro__inner.style-split {
		gap: 24px;
		width: 100%;
		margin: 0;
	}

	.wood-page .wood-intro .style-split h2.wood-section-head__title {
		margin: 18px 0 14px;
		font-size: clamp(1.05rem, 4.4vw, 1.22rem);
		line-height: 1.5;
	}

	.wood-page .wood-section-head {
		margin-bottom: 20px;
	}

	.wood-page .wood-section-head__en {
		gap: 8px;
		font-size: 0.68rem;
		letter-spacing: 0.16em;
	}

	.wood-page .wood-section-head__en::before,
	.wood-page .wood-section-head__en::after {
		flex-basis: 20px;
	}

	.wood-page .wood-section-head__title {
		font-size: clamp(1.12rem, 4.6vw, 1.3rem);
		line-height: 1.45;
	}

	.wood-page .wood-section-head__lead {
		margin-top: 0.55em;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.wood-page .wood-prose {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.wood-page .wood-prose p {
		margin-bottom: 0.85em;
	}

	.wood-alive__split {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.wood-page .wood-alive__quote {
		margin-top: 1.1em;
		padding: 0.95em 1em;
	}

	.wood-page .wood-alive__quote p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.wood-ours__grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.wood-page .wood-ours__item {
		padding: 16px 14px;
	}

	.wood-page .wood-ours__title {
		margin-bottom: 0.5em;
		font-size: 1rem;
	}

	.wood-page .wood-ours__text {
		margin-bottom: 0.85em;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.wood-page .wood-ours__more {
		font-size: 0.82rem;
		line-height: 1.55;
	}

	.wood-page .wood-ours__faq {
		margin-top: 20px;
		font-size: 0.85rem;
		line-height: 1.7;
	}

	.wood-strengths__grid {
		grid-template-columns: 1fr;
		gap: 24px;
		padding-top: 20px;
	}

	.wood-page .wood-strength {
		padding: 18px 14px 22px;
	}

	.wood-strength__head {
		grid-template-columns: minmax(0, 1fr) minmax(108px, 40%);
		gap: 6px 10px;
		margin-bottom: 0.9em;
	}

	.wood-page .wood-strength__titles {
		padding-left: 10px;
	}

	.wood-page .wood-strength__label {
		font-size: 0.65rem;
	}

	.wood-page .wood-strength__title {
		font-size: clamp(1rem, 4.2vw, 1.12rem);
	}

	.wood-strength__media {
		margin-top: -36px;
	}

	.wood-page .wood-strength__text {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}
}

/* page-simulation.php（.sim-page）・page-1on1.php（.on1-page）・page-land.php（.land-page） */

/* template-parts/page-hero.php — 固定ページ共通ヒーロー（背景はアイキャッチ or インライン URL） */
.page-hero-band {
	display: block;
	margin: 0 0 50px;
	border-bottom: 0;
}

main.fixed-page > .page-hero-band {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.page-hero {
	min-height: clamp(280px, 42vw, 500px);
	background-color: #cfc6ba;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	background-attachment: fixed;
}

.page-hero-band .page-hero {
	width: 100%;
	margin: 0;
	padding: 0;
}

.page-hero-band .page-hero__title {
	margin: 0;
	padding: 60px var(--fixed-page-gutter, clamp(20px, 4vw, 48px));
	text-align: center;
	background: var(--color-topics);
}

/* ヒーロー直下の sim-lead は白床（topics と続けて見えないように） */
main.fixed-page > .page-hero-band + .sim-lead {
	background-color: var(--color-bg);
}

.page-hero__subtitle {
	margin: 0 0 12px;
	font-family: var(--font-section-en);
	font-size: clamp(0.8rem, 1.9vw, 1rem);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.22em;
	color: var(--color-footer-brand, #2f5d46);
}

.page-hero__heading {
	margin: 0;
	font-size: clamp(1.35rem, 2.8vw, 32px);
	font-weight: 700;
	letter-spacing: 0.12em;
}

.page-hero__lead {
    margin: 50px auto 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.95;
    letter-spacing: 0.04em;
    text-align: center;
}

.page-hero__lead p {
	margin: 0 0 1.2em;
}

.page-hero__lead p:last-child {
	margin-bottom: 0;
}

.style-page > .page-hero-band + .sim-lead,
.basic-page > .page-hero-band + .sim-lead {
	max-width: 40em;
	margin: 0 auto 40px;
	padding: 0 var(--fixed-page-gutter, clamp(20px, 4vw, 48px));
}

@media screen and (max-width: 960px) {
	.page-hero {
		min-height: 300px;
		background-attachment: scroll;
	}

	.page-hero-band .page-hero__title {
		padding: 36px 16px 40px;
	}

	.page-hero__subtitle {
		margin-bottom: 10px;
		font-size: clamp(0.72rem, 3.2vw, 0.85rem);
		letter-spacing: 0.18em;
	}

	.page-hero__heading {
		font-size: clamp(18px, 4.6vw, 22px);
		line-height: 1.65;
		letter-spacing: 0.08em;
	}

	.page-hero__lead {
		margin-top: 24px;
		max-width: 22em;
		font-size: 14px;
		line-height: 1.85;
		letter-spacing: 0.03em;
	}
}

/* page-concept.php（.concept-page） */

.concept-page .flex-sb {
	align-items: flex-start;
	gap: 48px;
}

.concept-page .flex-sb > .concept-figure {
	flex: 0 0 36%;
}

.concept-page .flex-sb > .concept-prose {
	flex: 1 1 58%;
	min-width: 0;
}

.concept-figure {
	margin: 0;
}

.fixed-section--message .concept-figure {
	position: sticky;
	top: calc(var(--header-height) + 24px);
	align-self: flex-start;
}

.concept-figure img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.1);
}

.concept-figure--square img,
.concept-figure--square .concept-figure__placeholder {
	aspect-ratio: 1;
}

.concept-figure--landscape img,
.concept-figure--landscape .concept-figure__placeholder {
	aspect-ratio: 4 / 3;
}

.concept-figure__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background: #e8e4de;
	border: 1px dashed #c5bfb5;
	color: var(--color-muted, #6b6560);
}

.concept-figure__placeholder-text {
	font-size: 13px;
	letter-spacing: 0.2em;
}

.concept-prose {
	margin-inline: auto;
	text-align: left;
	line-height: 1.95;
}

.concept-prose p {
    padding: 0 20px;
}

.concept-prose__lead {
	margin: 0 0 1.5em;
	color: var(--color-wood);
	font-size: clamp(1.2rem, 2.4vw, 1.45rem);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: center;
}

.concept-prose__sign {
	margin-top: 2em;
	text-align: right;
	letter-spacing: 0.12em;
}

.concept-prose__housepro {
	padding: 1.25em 1.5em;
	background: #fff;
	border-left: 4px solid var(--color-green);
	line-height: 1.9;
    margin-bottom: 20px;
}

.concept-prose__rep-label {
    margin: 0 0 0.75em;
    font-weight: 600;
    letter-spacing: 0.08em;
    font-size: 20px;
}

.concept-prose__quals {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.35em 1.5em;
	margin: 0;
	padding: 0;
	list-style: none;
}

.concept-prose__quals li {
	position: relative;
	padding-left: 1em;
	line-height: 1.75;
}

.concept-prose__quals li::before {
	content: "・";
	position: absolute;
	left: 0;
	color: var(--color-green);
}

.concept-prose__more {
	margin-top: 1.75em;
	text-align: center;
}

.concept-prose__more a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.concept-page .concept-promise.style-promise {
	width: 100%;
	max-width: none;
	margin: 0;
	padding-top: 0;
	padding-bottom: 0;
}

@media screen and (max-width: 960px) {
	.concept-page .flex-sb {
		gap: 0;
	}

	.concept-page .flex-sb > * + * {
		margin-top: var(--fixed-page-stack, 24px);
	}

	.concept-page .flex-sb > .concept-prose {
		max-width: none;
        padding: 0 5%;
	}

	.concept-page .flex-sb > .concept-figure.concept-figure--square {
		width: 100%;
		max-width: min(220px, 62vw);
		margin-inline: auto;
	}

	.concept-page .flex-sb > .concept-figure.concept-figure--landscape {
		width: 100%;
		max-width: none;
	}

	.concept-page .concept-prose {
		font-size: var(--fixed-page-font-body, 14px);
	}

	.concept-page .concept-prose p {
		padding: 0;
	}

	.concept-page .concept-prose__lead {
		margin-bottom: 1.25em;
		font-size: clamp(1.05rem, 4.2vw, 1.2rem);
		line-height: 1.55;
	}

	.concept-page .concept-prose__housepro {
		padding: 1em 1.15em;
	}

	.concept-page .concept-prose__rep-label {
		font-size: clamp(1rem, 4vw, 1.25rem);
	}

	.concept-prose__quals {
		grid-template-columns: 1fr;
	}

	.concept-page .concept-promise.style-promise {
		gap: 28px;
	}

	.concept-page .concept-promise .style-checks {
		padding: 0;
	}

	.concept-page .concept-promise .style-checks li {
		margin-bottom: 12px;
		padding-bottom: 12px;
		font-size: var(--fixed-page-font-body, 14px);
	}

	.fixed-section--message .concept-figure {
		position: static;
	}
}

/* page-performance.php（.performance-page）— fixed-section 型 */

.performance-page .style-performance__box {
	border-color: var(--color-line);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.performance-photo-lead {
	margin: 0 auto var(--fixed-page-stack);
	max-width: 920px;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.performance-photo-lead img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(48vw, 360px);
	object-fit: cover;
}

.performance-pillars {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 2.5vw, 20px);
	margin: 0 0 var(--fixed-page-stack);
	padding: 0;
	list-style: none;
}

.performance-pillar {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	padding: clamp(22px, 3vw, 28px) clamp(16px, 2.5vw, 20px);
	border: 1px solid #e5e0d8;
	background: linear-gradient(165deg, #fff 0%, #f3f7f4 100%);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
	text-align: center;
}

.performance-pillar__icon {
	display: grid;
	place-items: center;
	width: clamp(52px, 10vw, 60px);
	height: clamp(52px, 10vw, 60px);
	margin-bottom: 12px;
	border-radius: 50%;
	background: linear-gradient(160deg, #eef4ef 0%, #e2ebe3 100%);
	border: 1px solid #d5dfd6;
	color: var(--color-green);
}

.performance-pillar__icon .hm {
	font-size: clamp(1.45rem, 3vw, 1.65rem);
	line-height: 1;
}

.performance-pillar__label {
	margin: 0 0 4px;
	font-size: 0.88rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: #5a6258;
}

.performance-pillar__value {
	margin: 0 0 10px;
	font-size: clamp(1.05rem, 2.2vw, 1.2rem);
	font-weight: 600;
	line-height: 1.4;
	color: var(--color-footer-brand, #2f5d46);
}

.performance-pillar__text {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.75;
}

.performance-panel {
	box-sizing: border-box;
	margin-inline: auto;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid #e5e0d8;
	background: var(--fixed-page-bg);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.performance-page .fixed-section--surface .performance-panel {
	background: var(--fixed-page-bg);
}

.performance-page .fixed-section--base .performance-panel {
	background: #fff;
	border-left: 4px solid var(--color-green);
}

.performance-panel--spec {
	margin-top: var(--fixed-page-stack);
	max-width: 760px;
}

.performance-panel__title {
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--color-green);
	font-size: clamp(1.05rem, 2vw, 1.15rem);
	font-weight: 600;
	letter-spacing: 0.06em;
}

.performance-split {
	align-items: flex-start;
	gap: clamp(28px, 4vw, 48px);
	max-width: 1100px;
	margin-inline: auto;
}

.performance-split__media {
	flex: 0 1 42%;
	max-width: 42%;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.performance-split__media img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

.performance-split__body {
	flex: 1 1 58%;
	min-width: 0;
}

.performance-prose p {
	margin: 0 0 1.35em;
	line-height: 2;
}

.performance-topics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 24px);
	margin-bottom: var(--fixed-page-stack);
}

.performance-topic {
	display: flex;
	flex-direction: column;
	margin: 0;
	overflow: hidden;
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.performance-topic__media {
	overflow: hidden;
}

.performance-topic__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.performance-topic__body {
	padding: clamp(18px, 2.5vw, 24px);
}

.performance-topic__body h3 {
	margin: 0 0 12px;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.55;
}

.performance-topic__body h3 small {
	display: block;
	margin-top: 4px;
	font-size: 0.82em;
	font-weight: 500;
}

.performance-topic__body p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.85;
}

.performance-quality-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 28px);
	max-width: 1100px;
	margin-inline: auto;
}

.performance-quality-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.performance-quality-card__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.performance-quality-card__body {
	padding: clamp(20px, 3vw, 28px);
}

.performance-quality-card__body h3 {
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--color-green);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.55;
}

.performance-quality-card__body p {
	margin: 0;
	line-height: 1.9;
}

.performance-quality-card__body a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.performance-cert-wrap {
	max-width: 900px;
	margin-inline: auto;
}

.performance-cert-card {
	padding: clamp(20px, 3vw, 28px);
	border: 1px solid #e5e0d8;
	border-radius: 2px;
	background: linear-gradient(165deg, #fff 0%, #f8faf8 100%);
	box-shadow: 0 6px 20px rgba(31, 44, 31, 0.08);
}

.performance-cert-card:last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 960px) {
	.performance-page .style-band {
		scroll-margin-top: 88px;
	}

	.performance-page .performance-photo-lead {
		margin-bottom: 20px;
	}

	.performance-page .performance-photo-lead img {
		max-height: min(52vw, 220px);
	}

	.performance-pillars,
	.performance-topics,
	.performance-quality-grid {
		grid-template-columns: 1fr;
	}

	.performance-page .performance-pillars {
		gap: 10px;
		margin-bottom: var(--fixed-page-stack, 24px);
	}

	/* 3指標カード：SPのみ左アイコン＋右テキストの横並び */
	.performance-page .performance-pillar {
		display: grid;
		grid-template-columns: 46px 1fr;
		grid-template-areas:
			"icon label"
			"icon value"
			"icon text";
		gap: 2px 12px;
		align-items: start;
		padding: 12px 14px;
		text-align: left;
	}

	.performance-page .performance-pillar__icon {
		grid-area: icon;
		align-self: center;
		width: 46px;
		height: 46px;
		margin-bottom: 0;
	}

	.performance-page .performance-pillar__icon .hm {
		font-size: 1.35rem;
	}

	.performance-page .performance-pillar__label {
		grid-area: label;
		margin: 0;
		font-size: 0.8rem;
		line-height: 1.35;
	}

	.performance-page .performance-pillar__value {
		grid-area: value;
		margin: 0;
		font-size: clamp(1rem, 4.2vw, 1.1rem);
		line-height: 1.35;
	}

	.performance-page .performance-pillar__text {
		grid-area: text;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.65;
	}

	.performance-split__media,
	.performance-split__body {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.performance-page .performance-prose > p {
		margin-bottom: 1em;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.performance-page .performance-panel {
		padding: 18px 16px;
	}

	.performance-page .performance-panel__title {
		margin-bottom: 14px;
		padding-bottom: 8px;
		font-size: 1.02rem;
	}

	.performance-page .performance-panel .style-checks li {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.performance-page .style-performance__related {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.performance-page .performance-topics {
		gap: 16px;
		margin-bottom: var(--fixed-page-stack, 24px);
	}

	.performance-page .performance-topic__body {
		padding: 16px 14px;
	}

	.performance-page .performance-topic__body h3 {
		margin-bottom: 8px;
		font-size: 0.98rem;
		line-height: 1.5;
	}

	.performance-page .performance-topic__body p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.performance-page .performance-quality-grid {
		gap: 16px;
	}

	.performance-page .performance-quality-card__body {
		padding: 16px 14px;
	}

	.performance-page .performance-quality-card__body h3 {
		margin-bottom: 10px;
		font-size: 1rem;
	}

	.performance-page .performance-quality-card__body p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.performance-page .performance-cert-card {
		padding: 16px 14px;
	}

	/* BELS（縦長）：article が .style-performance__cert と .performance-cert-card の両方を持つ */
	.performance-page .performance-cert-wrap > .style-performance__cert.performance-cert-card:first-child {
		grid-template-columns: minmax(0, 108px) 1fr;
		gap: 10px 14px;
		align-items: start;
		margin-bottom: 20px;
	}

	.performance-page .performance-cert-wrap > .style-performance__cert.performance-cert-card:first-child > img {
		width: 100%;
		max-width: 108px;
		margin-inline: auto;
	}

	.performance-page .style-performance__cert h3 {
		font-size: 1rem;
	}

	.performance-page .style-performance__cert p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}
}

.aftercare-photo-lead {
	margin: 0 auto clamp(28px, 4vw, 40px);
	max-width: 920px;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.aftercare-photo-lead img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(48vw, 340px);
	object-fit: cover;
}

.aftercare-prose {
	margin-inline: auto;
	max-width: var(--fixed-page-width-narrow);
	line-height: 1.95;
	text-align: left;
}

.aftercare-prose--narrow {
	max-width: var(--fixed-page-width-narrow);
}

.aftercare-prose--wide {
	max-width: 980px;
}

.aftercare-prose p {
	margin: 0 0 1.2em;
}

.aftercare-highlights {
    margin: 3em auto;
    background: #f2f2f2;
    padding: 20px 20px 5px;
}

.aftercare-note {
	margin: 0;
	color: #5a6258;
	font-size: 0.9rem;
	line-height: 1.85;
}

.aftercare-subheading {
	margin: 2.5rem 0 1em;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--color-green);
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.5;
	text-align: left;
    padding-left: 15px;
}

.aftercare-prose .aftercare-subheading:first-child {
	margin-top: 0;
}

.aftercare-cards__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(14px, 2.5vw, 20px);
	max-width: 980px;
	margin: 0 auto;
}

.aftercare-card {
	display: flex;
	flex-direction: column;
	padding: clamp(20px, 3vw, 28px) clamp(18px, 2.5vw, 24px);
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.aftercare-card--wide {
	grid-column: 1 / -1;
}

.aftercare-card h3 {
	margin: 0 0 10px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--color-green);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.55;
	color: #1f2c1f;
}

.aftercare-card p {
	margin: 0 0 0.75em;
	line-height: 1.9;
}

.aftercare-card p:last-child {
	margin-bottom: 0;
}

.aftercare-card__list {
	margin: 0.5em 0 0;
	padding-left: 1.1em;
	line-height: 1.85;
}

.aftercare-card__list li {
	margin-bottom: 0.5em;
}

.aftercare-card__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
	margin-top: auto;
	padding-top: 1.1em;
	border-top: 1px solid #e8e4dc;
}

.aftercare-card__logos--single {
	justify-content: flex-start;
}

.aftercare-card__logo {
	margin: 0;
}

.aftercare-card__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 40px;
	object-fit: contain;
	object-position: left center;
}

.aftercare-card__logo--anshin img {
	height: 38px;
	max-width: min(200px, 100%);
}

.aftercare-card__logo--jio img {
	height: 32px;
	max-width: min(260px, 100%);
}

.aftercare-card__logo--jiban img {
	height: 36px;
	max-width: min(180px, 100%);
}

.aftercare-schedule-split {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: clamp(28px, 5vw, 56px);
	margin-top: 3em;
}

.aftercare-schedule-split__photo {
	flex: 0 0 42%;
	max-width: 42%;
	margin: 0;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.aftercare-schedule-split__photo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(72vh, 520px);
	object-fit: cover;
	object-position: center top;
}

.aftercare-schedule-split__body {
	flex: 1 1 52%;
	min-width: 0;
}

.aftercare-schedule-split__label {
	margin: 0 0 1.25em;
	padding: 10px 14px;
	background: #4a4f4c;
	color: #fff;
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.45;
}

.aftercare-schedule {
	margin: 0;
	padding: 0;
	list-style: none;
}

.aftercare-schedule__item {
	position: relative;
	margin: 0;
	padding: 0 0 1.35em 1.5rem;
	border-left: 2px solid rgba(60, 107, 74, 0.35);
}

.aftercare-schedule__item:last-child {
	padding-bottom: 1.35em;
}

.aftercare-schedule__item::before {
	content: "";
	position: absolute;
	top: 0.4em;
	left: -7px;
	width: 12px;
	height: 12px;
	border: 2px solid var(--color-green);
	border-radius: 50%;
	background: #fff;
}

.aftercare-schedule__when {
	margin: 0 0 0.35em;
	font-weight: 600;
	line-height: 1.5;
}

.aftercare-schedule__desc {
	margin: 0;
	line-height: 1.85;
}

.aftercare-prose a,
.aftercare-related a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.aftercare-related {
	margin: clamp(36px, 6vw, 56px) 0 0!important;
	line-height: 1.85;
}

@media screen and (max-width: 960px) {
	.aftercare-cards__grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.aftercare-card--wide {
		grid-column: auto;
	}

	.aftercare-schedule-split {
		flex-wrap: wrap;
	}

	.aftercare-schedule-split__photo,
	.aftercare-schedule-split__body {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.aftercare-schedule-split__photo img {
		max-height: min(56vw, 360px);
	}

	.aftercare-page .style-band {
		scroll-margin-top: 88px;
	}

	.aftercare-page .aftercare-photo-lead {
		margin-bottom: 20px;
	}

	.aftercare-page .aftercare-photo-lead img {
		max-height: min(52vw, 220px);
	}

	.aftercare-page .aftercare-prose {
		line-height: 1.85;
	}

	.aftercare-page .aftercare-prose p {
		margin-bottom: 0.85em;
		font-size: var(--fixed-page-font-body, 14px);
	}

	.aftercare-page .aftercare-highlights {
		margin: 1.75em auto;
		padding: 14px 14px 4px;
	}

	.aftercare-page .aftercare-highlights.style-checks li {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.aftercare-page .aftercare-note {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.aftercare-page .aftercare-subheading {
		margin: 1.75rem 0 0.85em;
		padding-bottom: 8px;
		padding-left: 12px;
		font-size: 1.02rem;
	}

	.aftercare-page .aftercare-card {
		padding: 16px 14px;
	}

	.aftercare-page .aftercare-card h3 {
		margin-bottom: 8px;
		padding-bottom: 6px;
		font-size: 1rem;
	}

	.aftercare-page .aftercare-card p,
	.aftercare-page .aftercare-card__list {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.aftercare-page .aftercare-card__logo img {
		height: 32px;
	}

	.aftercare-page .aftercare-card__logo--anshin img {
		height: 30px;
	}

	.aftercare-page .aftercare-card__logo--jio img {
		height: 26px;
	}

	.aftercare-page .aftercare-card__logo--jiban img {
		height: 28px;
	}

	.aftercare-page .aftercare-schedule-split {
		gap: var(--fixed-page-stack, 24px);
		margin-top: 1.75em;
	}

	.aftercare-page .aftercare-schedule-split__label {
		margin-bottom: 1em;
		padding: 8px 12px;
		font-size: var(--fixed-page-font-body, 14px);
	}

	.aftercare-page .aftercare-schedule__when,
	.aftercare-page .aftercare-schedule__desc {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.aftercare-page .aftercare-schedule__item {
		padding-bottom: 1.1em;
	}

	.aftercare-page .aftercare-related {
		margin-top: var(--fixed-page-stack, 24px) !important;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}
}

/* page-reform.php（.reform-page）— fixed-section 型 */

.reform-photo-lead {
	margin: 0 auto clamp(28px, 4vw, 40px);
	max-width: 720px;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 10px 28px rgba(31, 44, 31, 0.12);
}

.reform-photo-lead img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(52vw, 380px);
	object-fit: cover;
}

.reform-prose {
	margin-inline: auto;
	max-width: 900px;
	line-height: 1.95;
	text-align: left;
}

.reform-prose--center {
	text-align: center;
}

.reform-prose p {
	margin: 0 0 1.2em;
}

.reform-intro__catch {
	margin: 0 0 1.25em;
	font-size: clamp(1.05rem, 2.2vw, 1.2rem);
	font-weight: 600;
	line-height: 1.85;
	text-align: center;
}

.reform-intro__worries {
	margin: 3em auto;
	max-width: 36em;
}

.reform-strengths__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(14px, 2.5vw, 20px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.reform-strengths__item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: clamp(14px, 2.5vw, 20px);
	align-items: center;
	padding: clamp(18px, 3vw, 24px) clamp(20px, 3vw, 26px);
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.reform-strengths__item:last-child {
	grid-column: 1 / -1;
	max-width: min(100%, 52rem);
	margin-inline: auto;
	width: 100%;
}

.reform-strengths__mark {
	position: relative;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: clamp(52px, 10vw, 60px);
	height: clamp(52px, 10vw, 60px);
	border-radius: 50%;
	background: linear-gradient(160deg, #eef4ef 0%, #e2ebe3 100%);
	border: 1px solid #d5dfd6;
	color: var(--color-green);
}

.reform-strengths__mark .hm {
	font-size: clamp(1.45rem, 3vw, 1.65rem);
	line-height: 1;
}

.reform-strengths__num {
	position: absolute;
	top: -4px;
	right: -4px;
	display: grid;
	place-items: center;
	min-width: 1.35rem;
	height: 1.35rem;
	padding: 0 0.25em;
	border-radius: 999px;
	background: var(--color-green);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.reform-strengths__title {
	margin: 0 0 0.65em;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.65;
}

.reform-strengths__item p {
	margin: 0;
	line-height: 1.9;
}

.reform-menu__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(14px, 2.5vw, 20px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.reform-page .fixed-section--surface .reform-menu__item {
	box-sizing: border-box;
	padding: clamp(18px, 2.8vw, 24px) clamp(18px, 2.8vw, 24px) clamp(18px, 2.8vw, 24px) clamp(20px, 3vw, 26px);
	border: 1px solid #d5cec4;
	border-left: 4px solid var(--color-green);
	background: var(--fixed-page-bg);
	box-shadow: 0 4px 16px rgba(31, 44, 31, 0.09);
	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease,
		border-color 0.22s ease;
}

.reform-page .fixed-section--surface .reform-menu__item:hover {
	transform: translateY(-5px);
	border-color: #c4bbb0;
	box-shadow: 0 14px 32px rgba(31, 44, 31, 0.14);
}

.reform-menu__title {
	margin: 0 0 0.6em;
	padding: 0;
	border: 0;
	font-size: clamp(0.98rem, 2.1vw, 20px);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.02em;
	color: #1a221a;
}

.reform-menu__item p {
	margin: 0;
	line-height: 1.85;
	color: #3a433a;
}

.reform-page .sim-flow-steps.reform-flow__steps {
	flex: none;
	gap: clamp(10px, 2vw, 14px);
	width: 100%;
	max-width: var(--fixed-page-width-narrow);
	margin-inline: auto;
}

.reform-page #reform-flow .fixed-section__inner {
	background: transparent;
}

.reform-page .sim-flow-step {
	box-sizing: border-box;
	padding: clamp(18px, 3vw, 24px) clamp(20px, 3vw, 28px);
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.reform-page .reform-flow__steps .land-flow__arrow {
	margin: 2px auto;
}

.reform-page .sim-flow-step::before,
.reform-page .sim-flow-step::after {
	content: none;
	display: none;
}

.reform-flow__tags {
	margin: 0 0 0.5em;
	color: var(--color-muted);
	font-size: 14px;
	letter-spacing: 0.04em;
}

@media screen and (max-width: 960px) {
	.reform-menu__list {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.reform-strengths__list {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.reform-strengths__item:last-child {
		max-width: none;
	}

	.reform-page .style-band {
		scroll-margin-top: 88px;
	}

	.reform-page .reform-photo-lead {
		margin-bottom: 20px;
	}

	.reform-page .reform-photo-lead img {
		max-height: min(52vw, 220px);
	}

	.reform-page .reform-prose {
		line-height: 1.85;
	}

	.reform-page .reform-intro__catch {
		margin-bottom: 1em;
		font-size: clamp(1rem, 4.2vw, 1.1rem);
		line-height: 1.65;
	}

	.reform-page .reform-intro__worries {
		margin: 1.5em auto;
	}

	.reform-page .reform-intro__worries.style-checks li {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.75;
	}

	.reform-page .reform-prose > p {
		margin-bottom: 0.85em;
		font-size: var(--fixed-page-font-body, 14px);
	}

	.reform-page .reform-strengths__item {
		gap: 12px;
		padding: 14px;
	}

	.reform-page .reform-strengths__mark {
		width: 46px;
		height: 46px;
	}

	.reform-page .reform-strengths__mark .hm {
		font-size: 1.35rem;
	}

	.reform-page .reform-strengths__title {
		margin-bottom: 0.5em;
		font-size: 1rem;
		line-height: 1.55;
	}

	.reform-page .reform-strengths__item p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.reform-page .fixed-section--surface .reform-menu__item {
		padding: 14px 14px 14px 16px;
	}

	.reform-page .fixed-section--surface .reform-menu__item:hover {
		transform: none;
	}

	.reform-page .reform-menu__title {
		margin-bottom: 0.45em;
		font-size: 0.98rem;
	}

	.reform-page .reform-menu__item p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.reform-page .sim-flow-step {
		padding: 16px 14px;
	}

	.reform-page .sim-flow-step h3 {
		margin-bottom: 10px;
		padding-bottom: 6px;
		font-size: 1rem;
		letter-spacing: 0.06em;
	}

	.reform-page .reform-flow__tags {
		font-size: 0.85rem;
	}

	.reform-page .sim-flow-step p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.reform-page .reform-flow__steps .land-flow__arrow {
		padding: 10px 0;
	}

	.reform-page .reform-flow__steps .land-flow__arrow::before {
		width: 56px;
		height: 18px;
	}

}

/* page-faq.php（.faq-page）— fixed-section 型 */

.faq-page .faq-page__body {
	box-sizing: border-box;
	width: min(1000px, calc(100% - 48px));
	margin-inline: auto;
}

.faq-page .faq-page__cats {
	margin-bottom: clamp(32px, 5vw, 48px);
}

.faq-page .style-faq {
	width: 100%;
	margin: 0;
	padding-top: 0;
}

.faq-page .style-faq__cats a {
	border-color: #e5e0d8;
	background: var(--fixed-page-bg);
	box-shadow: 0 2px 8px rgba(31, 44, 31, 0.05);
}

.faq-page .style-faq__item {
	background: #fff;
	border: 1px solid #e5e0d8;
	border-bottom-width: 1px;
	margin-bottom: 10px;
	box-shadow: 0 2px 8px rgba(31, 44, 31, 0.04);
}

.faq-page .style-faq__section .style-faq__item:last-child {
	margin-bottom: 0;
}

.faq-page .style-faq__answer-inner a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.faq-page__footer {
	margin: clamp(40px, 6vw, 56px) 0 0;
	padding-top: clamp(24px, 3vw, 32px);
	border-top: 1px solid var(--color-line);
	line-height: 1.9;
	text-align: center;
}

.faq-page__footer a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

@media screen and (max-width: 960px) {
	/* page-faq.php: 帯直下の inner は共通 padding を付けず、ここでガターだけ */
	main.faq-page .fixed-section__band + .fixed-section__inner.faq-page__body {
		box-sizing: border-box;
		width: 100%;
		max-width: none;
		margin-inline: 0;
		padding: 24px var(--fixed-page-gutter, 16px) 0;
	}

	.faq-page .style-faq__item summary {
		padding: 14px 0;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.65;
	}

	.faq-page .style-faq__answer-inner {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.faq-page .style-faq__section-title {
		padding: 14px 16px;
		font-size: 1.05rem;
	}

	.faq-page__footer {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}
}

/* page-simulation.php（.sim-page）— fixed-section 型 */

.sim-page .fixed-section__inner.width-m {
	margin-inline: auto;
	max-width: var(--fixed-page-width-narrow);
}

.sim-page .sim-flow {
	box-sizing: border-box;
	max-width: var(--fixed-page-width-split);
	margin-inline: auto;
	padding-inline: var(--fixed-page-gutter);
}

.sim-page .sim-checklist .hm {
	color: var(--color-green);
}

#sim-intro .fixed-section__band h2 {
	margin-bottom: 0;
}

#sim-intro .fixed-section__band p {
	box-sizing: border-box;
	width: min(100%, 36em);
	margin: clamp(16px, 2.5vw, 22px) auto 0;
	padding-top: clamp(14px, 2vw, 18px);
	border-top: 1px solid #d5dbd6;
	line-height: 1.85;
	letter-spacing: 0.1em;
}

#sim-intro .sim-intro__deck {
	box-sizing: border-box;
	width: min(100%, 40rem);
	margin: 0 auto clamp(28px, 4vw, 36px);
	padding: clamp(22px, 3.5vw, 30px) clamp(22px, 4vw, 36px);
	border: 1px solid #e5e0d8;
	background: var(--fixed-page-bg);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
	text-align: center;
}

#sim-intro .sim-intro__deck .sim-heading {
	margin: 0 0 0;
	letter-spacing: 0.14em;
}

#sim-intro .sim-intro__deck .sim-lead {
	margin: 0;
	padding-top: clamp(12px, 2vw, 16px);
	border-top: 2px solid var(--color-green);
	color: #4a524a;
	font-size: 0.95rem;
	line-height: 1.85;
}

#sim-intro .sim-checklist {
	width: fit-content;
	max-width: min(100%, 40rem);
	margin-inline: auto;
}

#sim-prep .sim-prep__panel {
	box-sizing: border-box;
	width: min(100%, 40rem);
	margin: 0 auto clamp(24px, 3.5vw, 32px);
	padding: clamp(22px, 3vw, 28px) clamp(24px, 3.5vw, 32px);
	border: 1px solid #e5e0d8;
	border-left: 4px solid var(--color-green);
	background: var(--fixed-page-bg);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

#sim-prep .sim-prep__panel .sim-checklist {
	width: 100%;
	max-width: none;
	margin: 0;
	text-align: left;
}

#sim-prep .sim-prep__panel .sim-checklist li:last-child {
	margin-bottom: 0;
}

.sim-page .sim-faq {
	padding-top: 0;
	padding-bottom: 0;
	background: transparent;
}

.sim-page .sim-faq-item {
	border: 1px solid #e5e0d8;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.sim-page .fixed-section--surface .sim-faq-item {
	background: var(--fixed-page-bg);
}

.sim-page .fixed-section--base .sim-faq-item {
	background: #fff;
}

.sim-page .sim-notice {
	border-left: 4px solid var(--color-green);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.sim-page .sim-reason--card {
	padding: clamp(18px, 3vw, 24px) clamp(20px, 3vw, 26px);
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.sim-page .sim-reason__head {
	display: flex;
	gap: clamp(12px, 2vw, 16px);
	align-items: center;
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--color-green);
}

.sim-page .sim-reason__num {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: clamp(2rem, 4vw, 2.35rem);
	height: clamp(2rem, 4vw, 2.35rem);
	border-radius: 50%;
	background: linear-gradient(160deg, #eef4ef 0%, #e2ebe3 100%);
	border: 1px solid #d5dfd6;
	color: var(--color-green);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
}

.sim-page .sim-reason--card h3 {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: clamp(1.02rem, 2vw, 1.15rem);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: 0.06em;
	text-align: left;
}

.sim-page .sim-reason--card p {
	margin: 0;
	padding-left: 0;
	line-height: 1.9;
}

.sim-page .sim-apply {
	padding-top: 0;
	padding-bottom: 0;
	background: transparent;
}

.sim-page .sim-apply__note {
	margin: 1em 0 0;
	font-size: 0.9rem;
	line-height: 1.85;
	color: #5a6258;
}

.sim-page .sim-merit-item .hm-tick-circle {
	color: var(--color-green);
}

/* page-1on1.php（.on1-page）— fixed-section 型 */

.on1-page .fixed-section__inner.width-m {
	margin-inline: auto;
	max-width: var(--fixed-page-width-narrow);
}

.on1-page .on1-flow {
	box-sizing: border-box;
	max-width: var(--fixed-page-width-split);
	margin-inline: auto;
	padding-inline: var(--fixed-page-gutter);
}

.on1-page .on1-worries__rest {
	margin-inline: auto;
}

.on1-page .on1-apply {
	text-align: center;
}

.on1-page .on1-apply .section__more {
	margin-top: 1.5em;
}

.on1-page .sim-checklist .hm {
	color: var(--color-green);
}

.on1-page .on1-guide__note {
	margin: clamp(28px, 4vw, 40px) 0 0;
	line-height: 1.9;
}

#on1-intro .sim-checklist {
	width: fit-content;
	max-width: min(100%, 40rem);
	margin-inline: auto;
}

/* page-staff.php（.staff-page） */

.staff-prose {
	margin-inline: auto;
	max-width: var(--fixed-page-width-narrow);
	text-align: left;
	line-height: 1.95;
}

.staff-prose p {
	margin: 0 0 1.2em;
}

.staff-prose__more {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.35em 0.65em;
	margin-top: 1.5em;
	text-align: center;
}

.staff-prose__more a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
	white-space: nowrap;
}

.staff-prose__more-part--sep {
	color: var(--color-muted);
}

.staff-list {
	display: flex;
	flex-direction: column;
	gap: clamp(48px, 8vw, 72px);
	margin: 0;
	padding: 0;
}

.staff-card {
	display: grid;
	grid-template-columns: minmax(200px, 280px) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 48px);
	align-items: start;
	padding-bottom: clamp(40px, 6vw, 56px);
	border-bottom: 1px solid var(--color-line);
}

.staff-card:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.staff-card__media {
	flex-shrink: 0;
	width: min(100%, 280px);
}

.staff-card__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	object-position: center top;
	box-shadow: 0 8px 24px rgba(31, 44, 31, 0.1);
}

.staff-card__photo-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1;
	background: #e8e4de;
	border: 1px dashed #c5bfb5;
	color: var(--color-muted);
	font-size: 14px;
	letter-spacing: 0.2em;
}

.staff-card__role {
	margin: 0 0 0.35em;
	color: var(--color-green);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.15em;
}

.staff-card__name {
	margin: 0 0 0.75em;
	font-size: clamp(1.25rem, 2.4vw, 1.5rem);
	font-weight: 600;
	letter-spacing: 0.1em;
}

.staff-card__lead {
	margin: 0 0 1em;
	font-weight: 600;
	line-height: 1.75;
}

.staff-card__creds {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em 0.75em;
	margin: 0 0 1.25em;
	padding: 0;
	list-style: none;
}

.staff-card__creds li {
	padding: 0.2em 0.65em;
	background: #fff;
	border: 1px solid var(--color-line);
	font-size: 14px;
	line-height: 1.5;
}

.staff-card__text p {
	margin: 0 0 1em;
	line-height: 1.9;
}

.staff-card__more {
	margin: 1.25em 0 0;
}

.staff-card__more a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.staff-policy__list {
    margin: 0 0 1.2em;
    padding: 1.25em 1.5em 1em 2.5em;
    background: #fff;
    border-left: 4px solid var(--color-green);
    line-height: 1.9;
    margin-bottom: 20px;
}

.staff-policy__list li {
	margin-bottom: 0.35em;
	line-height: 1.8;
}

@media screen and (max-width: 960px) {
	.staff-card {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.staff-card__media {
		width: min(100%, 220px);
	}

	.staff-card__text {
		text-align: left;
	}

	.staff-prose__more {
		flex-direction: column;
		gap: 0.5em;
	}

	.staff-prose__more-part--sep {
		display: none;
	}
    .staff-card__creds li {
        font-size: 13px;
    }
}

/* page-privacy-policy.php（.privacy-page） */

.privacy-prose {
	margin-inline: auto;
	text-align: left;
	line-height: 1.9;
}

.privacy-prose p {
	margin: 0 0 1.2em;
}

.privacy-prose__heading {
	margin: 2em 0 0.75em;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--color-green);
	color: var(--color-text);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.06em;
}

.privacy-prose__heading:first-of-type {
	margin-top: 0;
}

.privacy-prose__list {
	margin: 0 0 1.2em;
	padding-left: 1.35em;
}

.privacy-prose__list li {
	margin-bottom: 0.35em;
}

.privacy-prose__contact {
	margin-top: 1.5em;
	padding: 1.25em 1.5em;
	background: var(--fixed-page-bg);
	border: 1px solid #e5e0d8;
	line-height: 1.85;
}

.privacy-prose a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.privacy-prose a:hover {
	opacity: 0.85;
}

.sim-band {
	padding-top: var(--fixed-page-pad-y);
	padding-bottom: var(--fixed-page-pad-y);
	background-color: #fff;
	background-image: url("../img/front/back01.png");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
}

.sim-band--tight {
	padding-top: var(--fixed-page-pad-y-tight);
	padding-bottom: var(--fixed-page-pad-y-tight);
}

.sim-band--flow {
	padding-bottom: var(--fixed-page-pad-y-tight);
}

.sim-icon-head {
	max-width: 920px;
	margin: 0 auto;
	text-align: center;
}

.sim-icon-head h2 {
	margin: 0 0 16px;
	font-size: clamp(1.25rem, 2.6vw, 1.8rem);
	font-weight: 500;
	line-height: 1.65;
	letter-spacing: 0.08em;
}

.sim-icon-head p {
	margin: 0;
	line-height: 1.9;
	letter-spacing: 0.3em;
}

.sim-icon-head--icon .hm {
	display: block;
	margin: 0 auto 28px;
	color: #69727d;
	font-size: clamp(3rem, 8vw, 5rem);
	line-height: 1;
}

.sim-icon-head--large .hm {
	margin-bottom: 36px;
}

.sim-wrap {
	width: 100%;
	max-width: var(--fixed-page-width, 960px);
	margin-inline: auto;
}

.sim-wrap--narrow {
	max-width: var(--fixed-page-width-narrow, 860px);
}

.sim-worries {
	text-align: center;
}

.sim-heading {
	margin: 0 0 30px;
	font-size: clamp(1.2rem, 2.4vw, 1.6rem);
	font-weight: 500;
	letter-spacing: 0.35em;
}

.sim-heading--center {
	text-align: center;
}

.sim-heading--line {
	display: inline-block;
	width: 100%;
	padding-bottom: 5px;
	border-bottom: 1px solid #3c3f3b;
}

.sim-lead {
	margin: 0 0 28px;
	color: #4a524a;
	line-height: 1.8;
}

.sim-lead--center {
	text-align: center;
}

.sim-checklist {
	margin: 0 auto 40px;
	padding: 0;
	max-width: 640px;
	list-style: none;
}

.sim-checklist li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 0 12px;
	font-weight: 500;
	line-height: 1.75;
}

.sim-checklist .hm {
	flex: 0 0 auto;
	margin-top: 0.2em;
	color: #69727d;
	font-size: 1rem;
}

.sim-quote {
	margin: 0 auto;
}

.sim-quote--dashed {
	display: flex;
	gap: 16px;
	align-items: flex-end;
	justify-content: center;
	max-width: 720px;
	margin-bottom: 40px;
	padding: 0 0 20px;
	border-bottom: 2px dashed var(--fixed-page-border);
}

.sim-quote__icon {
	flex: 0 0 auto;
	color: #69727d;
	font-size: clamp(2rem, 6vw, 4rem);
	line-height: 1;
}

.sim-quote__text {
	margin: 0;
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: 0.08em;
	text-align: center;
}

.sim-quote--dark {
	max-width: 720px;
	margin-bottom: 0;
	padding: 40px 28px 28px;
	border-radius: 20px 0 20px 0;
	background-image: linear-gradient(154deg, #5a6b58 0%, rgba(0, 0, 0, 0.58) 100%);
	color: #fff;
	text-align: center;
}

.sim-quote--dark p {
	margin: 0;
	font-size: clamp(1rem, 2.2vw, 1.2rem);
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: 0.35em;
}

.sim-quote--dark p + p {
	margin-top: 1.25em;
	font-weight: 500;
	letter-spacing: 0.12em;
}

.sim-split {
	display: flex;
	flex-wrap: wrap;
	gap: var(--fixed-page-stack) clamp(24px, 4vw, 40px);
	align-items: flex-start;
	justify-content: center;
	width: 100%;
	max-width: var(--fixed-page-width-split);
	margin-inline: auto;
}

.sim-split--reasons {
	align-items: stretch;
}

.sim-reasons__body {
	display: flex;
	flex: 1 1 360px;
	flex-direction: column;
	justify-content: flex-start;
	gap: clamp(20px, 3vw, 28px);
	max-width: 65%;
	min-height: 0;
}

.sim-reason {
	margin-bottom: 0;
}

.sim-reason h2 {
	margin: 0 0 16px;
	padding-bottom: 5px;
	border-bottom: 1px solid #3c3f3b;
	font-size: clamp(1.05rem, 2.2vw, 1.6rem);
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.2em;
	text-align: left;
}

.sim-reason p {
	margin: 0;
	padding-left: clamp(0px, 4vw, 60px);
	line-height: 1.9;
}

.sim-reason strong {
	font-weight: 700;
}

.sim-reasons__photos {
	flex: 0 1 380px;
	display: flex;
	flex-direction: column;
	gap: 0;
	max-width: 35%;
}

.sim-reasons__photos img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.sim-merits .sim-icon-head {
	margin-bottom: var(--fixed-page-stack);
}

.sim-split--merit {
	flex-wrap: nowrap;
	align-items: center;
	gap: clamp(24px, 4vw, 40px);
}

.sim-photo-grid {
	flex: 0 0 calc(50% - 20px);
	width: calc(50% - 20px);
	max-width: calc(50% - 20px);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.sim-photo-grid__cell {
	display: block;
	overflow: hidden;
	min-width: 0;
	min-height: 0;
	line-height: 0;
}

.sim-photo-grid__cell img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sim-merit-list {
	flex: 0 0 calc(50% - 20px);
	width: calc(50% - 20px);
	max-width: calc(50% - 20px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--fixed-page-stack);
}

.sim-merit-item {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 0;
}

.sim-merit-item .hm-tick-circle {
	flex: 0 0 auto;
	margin-top: 0.1em;
	color: #69727d;
	font-size: 2rem;
	line-height: 1;
}

.sim-merit-item h3 {
	margin: 0 0 4px;
	font-size: clamp(1rem, 2vw, 1.2rem);
	font-weight: 500;
	letter-spacing: 0.08em;
}

.sim-merit-item p {
	margin: 0;
	line-height: 1.75;
}

.sim-faq {
	padding-top: var(--fixed-page-pad-y-loose);
	padding-bottom: var(--fixed-page-pad-y-loose);
	background: var(--fixed-page-bg);
}

.sim-wrap--faq {
	max-width: var(--fixed-page-width-narrow);
}

.sim-faq .sim-heading {
	margin-bottom: 32px;
	font-size: clamp(1.25rem, 2.5vw, 1.6rem);
	letter-spacing: 0.08em;
}

.sim-faq-item {
	margin-bottom: 24px;
	padding: 30px;
	background: var(--fixed-page-bg);
}

.sim-faq-item:last-child {
	margin-bottom: 0;
}

.sim-faq-item h3 {
	margin: 0 0 8px;
	color: var(--color-wood);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 2;
}

.sim-faq-item p {
	margin: 0;
	padding-top: 8px;
	border-top: 1px solid #d5dbd6;
	font-size: 1.2rem;
	line-height: 1.85;
}

/* 共通: 写真＋ステップ（simulation / 1on1 の .sim-split--flow） */

.sim-split--flow {
	flex-wrap: nowrap;
	align-items: center;
	max-width: var(--fixed-page-width);
	gap: clamp(24px, 4vw, 40px);
}

.sim-flow-photos {
	flex: 0 1 35%;
	display: flex;
	flex-direction: column;
	gap: 30px;
	max-width: 35%;
	margin: 0;
}

.sim-flow-photos figure {
	margin: 0;
}

.sim-flow-photos img {
	display: block;
	width: 100%;
	height: auto;
}

.sim-flow-photos figcaption {
	margin-top: 8px;
	line-height: 1.6;
	text-align: left;
}

.sim-flow-steps {
	flex: 1 1 65%;
	display: flex;
	flex-direction: column;
	gap: var(--fixed-page-flow-step-gap);
	max-width: 65%;
	margin: 0;
	padding: 0;
}

.sim-flow-step {
	position: relative;
	margin-bottom: 0;
	padding-left: 1.6rem;
}

/* ステップ番号の左：丸＋縦線（タイムライン） */
.sim-flow-step::before {
	content: "";
	position: absolute;
	top: 0.8em;
	left: 0;
	box-sizing: border-box;
	width: 10px;
	height: 10px;
	border: 2px solid #8a9489;
	border-radius: 50%;
	background: #fff;
}

.sim-flow-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: calc(0.7em + 12px);
    bottom: calc(-1 * var(--fixed-page-flow-step-gap));
    left: 4.5px;
    width: 1px;
    background: #c8cec9;
}

.sim-flow-step h3 {
    font-size: clamp(1rem, 2vw, 23px);
    font-weight: 500;
    letter-spacing: 0.08em;
    border-bottom: 1px solid;
    padding: 0 5px 5px;
    margin: 0 0 15px;
}

.sim-flow-step p {
	margin: 0;
	line-height: 1.8;
}

.sim-split--on1-worries {
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: center;
	max-width: var(--fixed-page-width);
	gap: clamp(24px, 4vw, 40px);
}

.on1-worries__main {
	flex: 1 1 auto;
	width: 100%;
	max-width: var(--fixed-page-width);
}

.on1-worries__rest {
	margin-top: var(--fixed-page-pad-y);
}

.on1-worries__rest .on1-worries__block + .on1-worries__block {
	margin-top: var(--fixed-page-pad-y);
}

.on1-worries__block--panel {
	background: #fff;
	padding: clamp(32px, 5vw, 48px);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.on1-worries__block--panel .sim-heading {
	margin-top: 0;
}

.on1-worries__block--panel .sim-checklist {
	width: fit-content;
	max-width: min(100%, 42rem);
	margin-inline: auto;
	margin-bottom: 0;
}

.on1-worries__main .sim-checklist {
	max-width: none;
}

.on1-worries .sim-checklist {
	text-align: left;
}

.on1-worries .sim-checklist li {
	margin-bottom: 20px;
	text-align: left;
}

.on1-worries .sim-checklist li:last-child {
	margin-bottom: 0;
}

.land-page .sim-checklist {
	margin-right: 0;
	margin-left: 0;
	max-width: none;
	text-align: left;
}

.land-page .sim-checklist li {
	text-align: left;
}

.sim-split--on1-worries .on1-worries__photos {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
}

.sim-split--on1-worries .on1-worries__photos img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: center;
}

@media screen and (max-width: 960px) {
	.sim-split--on1-worries {
		gap: var(--fixed-page-stack, 24px);
	}

	.sim-split--on1-worries .on1-worries__photos {
		order: -1;
		margin-bottom: 4px;
	}
}

.on1-testimonial {
    margin-top: 20px;
    padding: 40px;
    border: 0 solid #e0b8c4;
    border-width: 0 4px 4px 0;
    background: #faf0f3;
}

.on1-testimonial p {
	margin: 0;
	line-height: 1.9;
	text-align: left;
}

.sim-apply {
	padding-top: var(--fixed-page-pad-y);
	padding-bottom: var(--fixed-page-pad-y-loose);
	background: var(--fixed-page-bg);
	text-align: center;
}

.sim-apply h2 {
	margin: 0 0 24px;
	font-size: clamp(1.25rem, 2.5vw, 1.55rem);
	font-weight: 500;
	letter-spacing: 0.06em;
}

.sim-apply__lead h3 {
	margin: 0 0 12px;
	font-size: clamp(1rem, 2vw, 1.15rem);
	font-weight: 500;
	line-height: 1.6;
}

.sim-apply__lead p {
	margin: 0 0 8px;
	line-height: 1.85;
}

.sim-apply__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
	gap: 10px;
	max-width: 1100px;
	margin: 40px auto 0;
}

.sim-apply-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	min-height: 122px;
	padding: 20px 12px 16px;
	border: 1px solid var(--fixed-page-border);
	background: var(--fixed-page-bg);
	color: #1f2c1f;
	font-size: 16px;
	line-height: 1.45;
	text-align: center;
	text-decoration: none;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease;
}

.sim-apply-card .hm {
	color: #69727d;
	font-size: 40px;
	line-height: 1;
	transition: color 0.25s ease;
}

.sim-apply-card--primary {
	flex: 1 1 280px;
	max-width: 50%;
	margin: 60px 0;
}

.sim-apply-card--fill {
	flex: 0 1 180px;
	max-width: 19%;
	margin: 60px 0;
	border-color: var(--fixed-page-fill);
	background: var(--fixed-page-fill);
	color: #fff;
}

.sim-apply-card--fill .hm {
	color: #fff;
}

.sim-apply-card--primary:hover,
.sim-apply-card--primary:focus-visible {
	border-color: transparent;
	background: var(--fixed-page-fill);
	color: #fff;
}

.sim-apply-card--primary:hover .hm,
.sim-apply-card--primary:focus-visible .hm {
	color: #fff;
}

.sim-apply-card--fill:hover,
.sim-apply-card--fill:focus-visible {
	border: 1px solid var(--fixed-page-border);
	background: var(--fixed-page-bg);
	color: #1f2c1f;
}

.sim-apply-card--fill:hover .hm,
.sim-apply-card--fill:focus-visible .hm {
	color: #69727d;
}

.sim-apply__tel,
.sim-apply__sub {
	margin: 20px 0 0;
	font-size: 15px;
	line-height: 1.85;
}

.sim-apply__tel a,
.sim-apply__sub a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.sim-apply .section__more {
	margin: 28px 0 0;
}

.sim-detail {
	text-align: left;
	line-height: 1.9;
}

.sim-detail p {
	margin: 0 0 1.2em;
}

.sim-detail p:last-child {
	margin-bottom: 0;
}

.sim-detail--center {
	text-align: center;
}

.sim-detail a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.sim-info-list {
	margin: 0;
}

.sim-info-list__row {
	display: grid;
	grid-template-columns: 7.5em 1fr;
	gap: 8px 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--color-line);
}

.sim-info-list__row:first-child {
	padding-top: 0;
}

.sim-info-list dt {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--color-footer-brand, #2f5d46);
}

.sim-info-list dd {
	margin: 0;
	color: #2a332a;
	line-height: 1.85;
}

.sim-info-list a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.sim-compare {
	width: 100%;
	margin: 24px 0 28px;
	border-collapse: collapse;
	font-size: 15px;
	text-align: left;
}

.sim-compare th,
.sim-compare td {
	padding: 14px 10px;
	border: 1px solid var(--color-line);
	vertical-align: top;
	line-height: 1.75;
}

.sim-compare thead th {
	background: #f5f5f3;
	font-weight: 500;
	text-align: center;
}

.sim-compare tbody th[scope="row"] {
	width: 8em;
	background: #fafaf8;
	font-weight: 500;
	white-space: nowrap;
}

.on1-compare .sim-heading {
	margin-bottom: 8px;
}

.sim-notice {
	padding: clamp(20px, 3vw, 28px) clamp(18px, 3vw, 24px);
	border: 1px solid var(--color-line);
	background: #fafaf8;
	text-align: left;
}

.sim-notice__title {
	margin: 0 0 12px;
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 2.2vw, 1.15rem);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.sim-notice p {
	margin: 0;
	line-height: 1.9;
}

.sim-notice a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.sim-step-list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: land-step;
}

.sim-step-list li {
	display: grid;
	gap: 6px;
	padding: 20px 0;
	border-bottom: 1px solid var(--color-line);
}

.sim-step-list li:first-child {
	padding-top: 0;
}

.sim-step-list li strong {
	font-weight: 600;
	letter-spacing: 0.04em;
}

.sim-step-list li span {
	color: var(--color-text);
	line-height: 1.85;
}

.land-steps .sim-detail--center,
.land-steps .land-flow__links {
	margin-top: 28px;
}

/* シミュレーション系共通コンポーネント（.sim-*）… 960px 以下 */
@media screen and (max-width: 960px) {
	.sim-info-list__row {
		grid-template-columns: 1fr;
		gap: 6px;
		padding: 16px 0;
	}

	.sim-info-list__row dt {
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.1em;
		color: var(--color-green, #3d9d8c);
	}

	.sim-info-list__row dd {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		color: #2a332a;
	}

	.sim-compare {
		margin: 20px 0 24px;
		font-size: var(--fixed-page-font-body, 14px);
		border: none;
		border-collapse: separate;
		border-spacing: 0;
	}

	.sim-compare thead {
		display: none;
	}

	.sim-compare tbody {
		display: flex;
		flex-direction: column;
		gap: 14px;
		border: none;
	}

	.sim-compare tr {
		display: block;
		margin-bottom: 0;
		box-sizing: border-box;
		border: 1px solid var(--color-line);
		background: #fff;
	}

	.sim-compare th,
	.sim-compare td {
		display: block;
		width: 100%;
		padding: 10px 14px;
		border: none;
	}

	.sim-compare tbody th[scope="row"] {
		width: auto;
		padding: 10px 14px 8px;
		background: #f5f5f3;
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.1em;
		color: var(--color-green, #3d9d8c);
		white-space: normal;
		border-bottom: 1px solid var(--color-line);
	}

	.sim-compare tbody td {
		line-height: 1.75;
		color: #2a332a;
	}

	.sim-compare tbody td + td {
		border-top: 1px solid var(--color-line);
	}

	.sim-heading {
		letter-spacing: 0.12em;
	}

	.sim-quote--dark p {
		letter-spacing: 0.12em;
	}

	.sim-reasons__body,
	.sim-reasons__photos {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.sim-split--merit {
		flex-wrap: wrap;
	}

	.sim-photo-grid,
	.sim-merit-list {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
	}

	.sim-photo-grid {
		aspect-ratio: 3 / 2;
	}

	.sim-merit-list {
		justify-content: flex-start;
	}

	.sim-split--reasons {
		flex-direction: column;
	}

	.sim-reasons__body {
		justify-content: flex-start;
		min-height: 0;
	}

	.sim-reasons__photos {
		order: 2;
	}

	/* 3理由セクション（simulation）: SP は装飾写真1枚・カードの上 */
	.sim-split--reasons .sim-reasons__photos {
		order: -1;
		flex: 0 0 auto;
		width: 100%;
		max-width: min(100%, 20rem);
		margin-top: 0;
		margin-bottom: 4px;
		margin-inline: auto;
		overflow: hidden;
	}

	.sim-split--reasons .sim-reasons__photos img:not(:first-child) {
		display: none;
	}

	.sim-split--reasons .sim-reasons__photos img:first-child {
		width: 100%;
		aspect-ratio: 3 / 2;
		height: auto;
		object-fit: cover;
		object-position: center;
	}

	/* simulation ページ: フロー・メリットの複数写真も SP は1枚に */
	.sim-page .sim-flow-photos {
		gap: 0;
		max-width: min(100%, 20rem);
		margin-inline: auto;
		margin-bottom: 8px;
	}

	.sim-page .sim-flow-photos figure:not(:first-child) {
		display: none;
	}

	.sim-page .sim-flow-photos img {
		aspect-ratio: 3 / 2;
		object-fit: cover;
		object-position: center;
	}

	.sim-page .sim-flow-photos figcaption {
		margin-top: 6px;
		font-size: 0.8rem;
		line-height: 1.55;
	}

	.sim-page .sim-split--merit .sim-photo-grid {
		flex: 0 0 auto;
		width: 100%;
		max-width: min(100%, 20rem);
		margin-inline: auto;
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		aspect-ratio: 3 / 2;
	}

	.sim-page .sim-photo-grid .sim-photo-grid__cell:not(:first-child) {
		display: none;
	}

	.sim-reason p {
		padding-left: 0;
	}

	.sim-split--flow {
		flex-wrap: wrap;
	}

	.sim-flow-photos,
	.sim-flow-steps {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.sim-flow-step {
		padding-left: 1.85rem;
	}

	.sim-flow-step::before {
		left: 2px;
	}

	.sim-flow-step:not(:last-child)::after {
		left: 6.5px;
	}

	.sim-flow-step h3 {
		padding-left: 0;
	}

	.sim-apply-card--primary,
	.sim-apply-card--fill {
		flex: 1 1 100%;
		max-width: 100%;
		margin: 16px 0;
	}

	/* page-simulation.php（.sim-page）— SP タイポ・余白（1on1 と同系） */
	.sim-page .sim-heading {
		margin-bottom: 18px;
		font-size: clamp(1.05rem, 4.4vw, 1.22rem);
		letter-spacing: 0.1em;
	}

	.sim-page .sim-lead {
		margin-bottom: 18px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	#sim-intro .sim-intro__deck {
		margin-bottom: 20px;
		padding: 18px 16px;
	}

	#sim-intro .sim-intro__deck .sim-heading {
		letter-spacing: 0.08em;
	}

	#sim-intro .sim-intro__deck .sim-lead {
		padding-top: 12px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	#sim-intro .fixed-section__band p {
		margin-top: 14px;
		padding-top: 12px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		letter-spacing: 0.04em;
	}

	.sim-page #sim-intro .sim-checklist,
	#sim-intro .sim-checklist {
		width: 100%;
		max-width: none;
		margin-right: 0;
		margin-bottom: 20px;
		margin-left: 0;
		text-align: left;
	}

	.sim-page .sim-checklist {
		margin-inline: 0;
		text-align: left;
	}

	.sim-page .sim-checklist li {
		margin-bottom: 10px;
		font-size: var(--fixed-page-font-body, 14px);
		font-weight: 400;
		line-height: 1.75;
		text-align: left;
	}

	.sim-page .sim-quote--dashed {
		gap: 12px;
		margin-bottom: 24px;
		padding-bottom: 16px;
        align-items: center;
	}

	.sim-page .sim-quote__icon {
		font-size: clamp(1.75rem, 8vw, 2.5rem);
	}

	.sim-page .sim-quote__text {
		font-size: var(--fixed-page-font-body, 14px);
		font-weight: 600;
		line-height: 1.85;
		letter-spacing: 0.06em;
	}

	.sim-page .sim-quote--dark {
		padding: 22px 16px 18px;
		border-radius: 14px 0 14px 0;
	}

	.sim-page .sim-quote--dark p {
		font-size: var(--fixed-page-font-body, 14px);
		font-weight: 600;
		line-height: 1.85;
		letter-spacing: 0.06em;
	}

	.sim-page .sim-quote--dark p + p {
		margin-top: 0.85em;
		font-weight: 500;
		letter-spacing: 0.04em;
	}

	.sim-page .sim-reasons__body {
		gap: 16px;
	}

	.sim-page .sim-reason--card {
		padding: 16px;
	}

	.sim-page .sim-reason__head {
		margin-bottom: 10px;
		padding-bottom: 10px;
	}

	.sim-page .sim-reason--card h3 {
		font-size: 1rem;
		line-height: 1.55;
		letter-spacing: 0.04em;
	}

	.sim-page .sim-reason--card p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.sim-page .sim-merit-list {
		gap: 20px;
	}

	.sim-page .sim-merit-item {
		gap: 12px;
	}

	.sim-page .sim-merit-item .hm-tick-circle {
		font-size: 1.5rem;
	}

	.sim-page .sim-merit-item h3 {
		font-size: 1rem;
		letter-spacing: 0.04em;
	}

	.sim-page .sim-merit-item p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.sim-page .sim-faq-item {
		margin-bottom: 12px;
		padding: 16px var(--fixed-page-gutter, 16px);
		border-right: 0;
		border-left: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.sim-page .sim-faq-item:last-child {
		margin-bottom: 0;
	}

	.sim-page .sim-faq-item h3 {
		font-size: 1rem;
		line-height: 1.65;
	}

	.sim-page .sim-faq-item p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	#sim-prep .sim-prep__panel {
		margin-bottom: 20px;
		padding: 18px 16px;
	}

	.sim-page .sim-detail--center {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.sim-page .sim-flow {
		padding-inline: var(--fixed-page-gutter, 16px);
	}

	.sim-page .sim-flow-step h3 {
		margin-bottom: 10px;
		padding-bottom: 6px;
		font-size: 1rem;
		letter-spacing: 0.06em;
	}

	.sim-page .sim-flow-step p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.sim-page .sim-apply__lead p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.sim-page .sim-apply__note {
		font-size: 0.9rem;
		line-height: 1.85;
	}

	.sim-page .sim-apply .section__more {
		margin-top: 1.25em;
	}

	.sim-page .sim-apply .section__more .button {
		min-width: 0;
		width: 100%;
		max-width: 300px;
		padding: 13px 22px 13px 26px;
		font-size: 14px;
	}

	.sim-page .sim-apply__tel,
	.sim-page .sim-apply__sub {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.on1-page .style-band {
		scroll-margin-top: 88px;
	}

	.on1-page .sim-heading {
		margin-bottom: 18px;
		font-size: clamp(1.05rem, 4.4vw, 1.22rem);
		letter-spacing: 0.1em;
	}

	.on1-page .sim-heading--line {
		letter-spacing: 0.08em;
	}

	.on1-page .sim-lead {
		margin-bottom: 18px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.on1-page #on1-intro .sim-checklist {
		width: 100%;
		max-width: none;
		margin-bottom: 24px;
	}

	.on1-page .sim-checklist li {
		margin-bottom: 10px;
		font-size: var(--fixed-page-font-body, 14px);
		font-weight: 400;
		line-height: 1.75;
	}

	.on1-page .sim-quote--dark {
		padding: 22px 16px 18px;
		border-radius: 14px 0 14px 0;
	}

	.on1-page .sim-quote--dark p {
		font-size: var(--fixed-page-font-body, 14px);
		font-weight: 600;
		line-height: 1.85;
		letter-spacing: 0.06em;
	}

	.on1-page .sim-quote--dark p + p {
		margin-top: 0.85em;
		font-weight: 500;
		letter-spacing: 0.04em;
	}

	.on1-page .on1-worries__rest {
		margin-top: var(--fixed-page-stack, 24px);
	}

	.on1-page .on1-worries .sim-checklist li {
		margin-bottom: 12px;
	}

	.on1-page .on1-worries__block--panel {
		padding: 20px 16px;
	}

	.on1-page .on1-worries__rest .on1-worries__block + .on1-worries__block {
		margin-top: var(--fixed-page-stack, 24px);
	}

	.on1-page .on1-testimonial {
		padding: 18px 16px;
	}

	.on1-page .on1-testimonial p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.on1-page .on1-flow {
		padding-inline: var(--fixed-page-gutter, 16px);
	}

	.on1-page .sim-flow-step h3 {
		margin-bottom: 10px;
		padding-bottom: 6px;
		font-size: 1rem;
		letter-spacing: 0.06em;
	}

	.on1-page .sim-flow-step p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.on1-page .on1-guide__note {
		margin-top: 20px;
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.on1-page .on1-compare .sim-compare tbody td::before {
		display: block;
		margin-bottom: 4px;
		font-size: 0.7rem;
		font-weight: 600;
		letter-spacing: 0.06em;
		color: #5a6258;
		line-height: 1.4;
	}

	.on1-page .on1-compare .sim-compare tbody td:nth-child(2)::before {
		content: "家づくりの個別相談";
	}

	.on1-page .on1-compare .sim-compare tbody td:nth-child(3)::before {
		content: "無料間取りシミュレーション";
	}

	.on1-page .on1-compare .sim-detail--center {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
		text-align: left;
	}

	.on1-page .sim-apply__lead p {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}

	.on1-page .on1-apply .section__more {
		margin-top: 1.25em;
	}

	.on1-page .on1-apply .section__more .button {
		min-width: 0;
		width: 100%;
		max-width: 300px;
		padding: 13px 22px 13px 26px;
		font-size: 14px;
	}

	.on1-page .sim-apply__tel {
		font-size: var(--fixed-page-font-body, 14px);
		line-height: 1.85;
	}
}

/* ==========================================================================
   10. 一覧・詳細（archive-*.php / single-*.php / single.php）
   ========================================================================== */

.archive-hero img {
	display: block;
	width: 100%;
	height: auto;
}

/* 一覧ヒーロー・導入（archive-*.php 共通クラス） */
.archive-hero {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
	min-height: clamp(320px, 42vw, 520px);
	overflow: hidden;
}

.archive-hero__photo {
	min-height: clamp(280px, 38vw, 450px);
	background-color: #d7ddd8;
	background-position: center bottom;
	background-size: cover;
	background-repeat: no-repeat;
}

.archive-hero__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(24px, 4vw, 48px) clamp(20px, 3vw, 40px);
	background: #fff;
}

.archive-hero__title {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
}

.archive-hero__line {
	width: 100%;
	height: 2px;
	margin-bottom: 16px;
	background: #c5d7a8;
}

.archive-hero__heading {
	margin: 0;
	color: #0f172a;
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 2.4vw, 2.25rem);
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: 0.06em;
}

.archive-body {
	padding: clamp(56px, 8vw, 100px) 0 clamp(48px, 6vw, 80px);
	background: #fff;
}

.event-archive .archive-body {
	background: #f3f4f2;
}

.archive-intro {
	margin-bottom: clamp(32px, 5vw, 48px);
	text-align: center;
}

.archive-lead {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1rem, 2.2vw, 1.125rem);
	font-weight: 500;
	line-height: 1.75;
	letter-spacing: 0.04em;
}

@media screen and (min-width: 961px) {
	.archive-hero__panel .archive-lead {
		margin-top: 1.25em;
		font-weight: 500;
	}
}

.works-archive .archive-hero__photo {
	background-image: url("../../img/archive/works-top.webp");
}

.archive-hero__en {
	margin: 0 0 10px;
	font-family: var(--font-section-en);
	font-size: clamp(0.75rem, 1.6vw, 0.95rem);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.22em;
	color: var(--color-footer-brand, #2f5d46);
}

/* 一覧アーカイブ共通 … SP（パンくず → 写真 → 英字 → h1 → 導入文） */
@media screen and (max-width: 960px) {
	body.archive .breadcrumb.wrap {
		width: 90%;
		max-width: var(--wrap);
	}

	main.site-main[class$="-archive"] .wrap {
		width: 90%;
		max-width: var(--wrap);
	}

	.archive-hero {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
		min-height: 0;
	}

	.archive-hero__photo {
		order: 1;
		width: 100%;
		min-height: clamp(220px, 50vw, 320px);
	}

	.archive-hero__panel {
		order: 2;
		width: 100%;
		box-sizing: border-box;
		padding: 36px 5% 40px;
		text-align: center;
		background: var(--color-topics);
	}

	.archive-hero__line {
		display: none;
	}

	.archive-hero__en {
		margin-bottom: 10px;
		font-size: clamp(0.72rem, 3.2vw, 0.85rem);
		letter-spacing: 0.18em;
	}

	.archive-hero__heading {
		font-size: clamp(18px, 4.6vw, 22px);
		line-height: 1.65;
		letter-spacing: 0.08em;
	}

	.archive-hero__panel .archive-lead {
		margin-top: 24px;
		max-width: 22em;
		margin-inline: auto;
		font-size: 14px;
		font-weight: 400;
		line-height: 1.85;
		letter-spacing: 0.03em;
	}

	main.site-main[class$="-archive"] .archive-body {
		padding-top: clamp(32px, 6vw, 48px);
	}

	main.site-main[class$="-archive"] .archive-intro {
		margin-bottom: clamp(16px, 3vw, 24px);
	}
}

.works-archive__lead {
	margin: 0 0 clamp(24px, 4vw, 32px);
}

.works-filter {
	box-sizing: border-box;
	max-width: min(100%, 52rem);
	margin-inline: auto;
}

.works-filter__group {
	box-sizing: border-box;
	margin: 0 0 clamp(16px, 2.5vw, 20px);
	padding: clamp(18px, 3vw, 22px) clamp(20px, 3vw, 26px);
	border: 1px solid #d5cec4;
	background: #f5f2ed;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.works-filter__title {
	margin: 0 0 clamp(14px, 2.5vw, 18px);
	padding: 0 0 10px;
	border-bottom: 1px solid #e0d9d0;
	font-size: clamp(0.9375rem, 2vw, 1rem);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-align: center;
	color: #1a221a;
}

.works-filter__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.works-filter__list label {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	cursor: pointer;
	font-size: clamp(0.9375rem, 2vw, 1rem);
}

.works-filter__submit {
	margin: clamp(16px, 2.5vw, 22px) 0 clamp(12px, 2vw, 18px);
	text-align: center;
}

.works-filter__submit .button {
	min-width: 0;
	padding: 12px 28px 12px 32px;
	font-size: 15px;
}

.card-grid--works {
	gap: clamp(12px, 2vw, 28px);
}

.works-archive .card > a {
	display: block;
	color: inherit;
	text-decoration: none;
}

.works-archive .card__media + .card__title,
.section--works .card__media + h3 {
	margin-top: 14px;
}

.section--works .card > a {
	display: block;
	color: inherit;
	text-decoration: none;
	text-align: center;
}

.works-archive .card h2.card__title {
	margin: 14px 0 6px;
	font-family: var(--font-serif);
	font-size: clamp(1rem, 2vw, 1.2rem);
	font-weight: 500;
	line-height: 1.35;
}

.works-archive .card__excerpt {
	margin-top: 4px;
}

.works-archive__empty {
	margin: 0;
	padding: 40px 0;
	text-align: center;
	color: var(--color-muted);
}

.works-archive__pagination {
	padding-top: 48px;
	text-align: center;
}

.works-archive .basic-links--cross,
.works-single .basic-links--cross,
.voice-archive .basic-links--cross {
	justify-content: center;
	flex-wrap: wrap;
	gap: clamp(16px, 3vw, 28px);
	margin-top: clamp(40px, 6vw, 72px);
	margin-bottom: 80px;
}

.works-archive .basic-links--cross .basic-card,
.works-single .basic-links--cross .basic-card,
.voice-archive .basic-links--cross .basic-card {
	flex: 0 1 min(300px, calc(50% - 20px));
	width: min(300px, calc(50% - 20px));
	max-width: 100%;
}

/* single-works.php */

.works-single {
	padding-bottom: 0;
}

.works-single__hero {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #e8ebe6;
	cursor: zoom-in;
}

.works-single__hero img {
	display: block;
	width: 100%;
	max-height: min(72vh, 720px);
	object-fit: cover;
}

.works-single__header {
    padding-top: clamp(32px, 5vw, 56px);
    text-align: center;
    margin-bottom: 50px;
}

.works-single__label {
	margin: 0 0 8px;
	color: var(--color-muted);
	font-family: var(--font-serif);
	font-size: 0.8rem;
	letter-spacing: 0.28em;
}

.works-single__title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3.6vw, 2.25rem);
	font-weight: 500;
	line-height: 1.35;
}

.works-single__terms {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.works-single__term {
	padding: 4px 12px;
	border: 1px solid var(--color-line);
	font-size: 0.85rem;
	line-height: 1.4;
}

.works-single__term--category {
	background: rgba(31, 44, 31, 0.06);
}

.works-card__terms {
	justify-content: flex-start;
	margin: 8px 0 10px;
}

.works-card__terms .works-single__term a {
	color: inherit;
	text-decoration: none;
}

.works-card__terms .works-single__term a:hover,
.works-card__terms .works-single__term a:focus-visible {
	color: var(--color-wood);
}

.section--works .card h3 {
	font-size: clamp(1rem, 2vw, 1.2rem);
	line-height: 1.35;
	text-align: center;
}

.works-single__intro {
	padding-bottom: clamp(28px, 4vw, 40px);
}

.works-single__catch {
	margin: 0 0 1.25em;
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 2.4vw, 1.25rem);
	font-weight: 500;
	line-height: 1.75;
	text-align: center;
}

.works-single__content {
	font-size: clamp(0.9375rem, 2vw, 18px);
    text-align: center;
    line-height: 2;
}

.works-single__gallery {
	padding-top: clamp(8px, 2vw, 16px);
	padding-bottom: clamp(40px, 6vw, 64px);
}

.works-single__gallery-inner {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(6px, 1vw, 10px);
	width: min(1400px, calc(100% - clamp(24px, 4vw, 48px)));
	margin: 0 auto;
}

.works-single__gallery-item {
	flex: 1 1 calc(20% - 10px);
	min-width: calc(20% - 10px);
	max-width: calc(25% - 10px);
	margin: 0;
	padding: 0;
	border: 0;
	background: #e8ebe6;
	cursor: zoom-in;
}

.works-single__gallery-item img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
    height: auto;
}

.works-single__voice {
	padding-top: clamp(40px, 6vw, 56px);
	padding-bottom: clamp(40px, 6vw, 56px);
	border-top: 1px solid var(--color-line);
    background: #2F3B400D;
	text-align: center;
}
.works-single__voice .wrap--narrow{
    margin: auto;
    background: #fff;
    padding: 30px 20px;
}
.works-single__voice-title {
	margin: 0 0 1.25em;
	font-family: var(--font-serif);
	font-size: clamp(1.1rem, 2.4vw, 1.35rem);
	font-weight: 500;
}

.works-single__voice-text {
	margin: 0;
	line-height: 1.95;
	text-align: left;
}

.works-single__voice-note {
	margin: 1em 0 0;
	color: var(--color-muted);
	font-size: 0.85rem;
	text-align: left;
}

.works-single__voice-more {
	margin: 1.5em 0 0;
}

.works-single__voice-link {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	color: inherit;
	text-decoration: none;
}

.works-single__voice-link .hm {
	font-size: 1.25rem;
}

/* リフォーム施工実例: BEFORE/AFTER 横並び（取り込み HTML の responbox 等 + ブロック columns） */
.works-single--reform .works-single__content {
	text-align: left;
	line-height: 1.85;
}

.works-single--reform .works-single__content > h3 {
	margin: 0 0 1.5em;
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 2.4vw, 1.2rem);
	font-weight: 500;
	line-height: 1.75;
	text-align: center;
}

.works-single--reform .works-single__content [class*="responbox"] {
	margin: clamp(20px, 3vw, 36px) 0;
}

.works-single--reform .works-single__content [class*="responbox"]::after {
	content: "";
	display: block;
	clear: both;
}

.works-single--reform .works-single__content [class*="responbox"] .lbox,
.works-single--reform .works-single__content [class*="responbox"] .rbox {
	box-sizing: border-box;
}

.works-single--reform .works-single__content [class*="responbox"] h4 {
	margin: 0 0 0.75em;
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-align: center;
}

.works-single--reform .works-single__content [class*="responbox"] .huto {
	font-weight: 700;
}

.works-single--reform .works-single__content [class*="responbox"] img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto 0.75em;
}

.works-single--reform .works-single__content [class*="responbox"] p:last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.works-single--reform .works-single__content [class*="responbox"] {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: clamp(16px, 3vw, 28px);
	}

	.works-single--reform .works-single__content [class*="responbox"] > .lbox,
	.works-single--reform .works-single__content [class*="responbox"] > .rbox {
		flex: 1 1 calc(50% - 14px);
		min-width: 0;
		float: none;
		width: auto;
		padding: 0;
		margin: 0;
	}
}

.works-single--reform .works-single__content .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(12px, 2vw, 20px);
	margin: 1.25em 0 2em;
}

.works-single--reform .works-single__content .wp-block-column {
	flex: 1 1 240px;
	min-width: 0;
}

.works-single--reform .works-single__content .wp-block-column figure {
	margin: 0 0 0.75em;
}

.works-single--reform .works-single__content .wp-block-column img,
.works-single--reform .works-single__content .wp-block-image img {
	width: 100%;
	height: auto;
}

.works-single--reform .works-single__content > h2.wp-block-heading {
	margin: 2em 0 0.75em;
	font-family: var(--font-serif);
	font-size: clamp(1.1rem, 2.5vw, 1.35rem);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-align: center;
}

.works-single--reform .works-single__content > h2.wp-block-heading:first-child {
	margin-top: 0;
}

.works-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(16px, 4vw, 48px);
	background: rgba(15, 18, 15, 0.92);
}

.works-lightbox[hidden] {
	display: none !important;
}

body.works-lightbox-open {
	overflow: hidden;
}

.works-lightbox__stage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 1200px;
	max-height: calc(100vh - 96px);
}

.works-lightbox__img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: calc(100vh - 96px);
	height: auto;
	object-fit: contain;
}

.works-lightbox__close,
.works-lightbox__prev,
.works-lightbox__next {
	position: absolute;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
}

.works-lightbox__close {
	top: 12px;
	right: 16px;
	font-size: 2.25rem;
}

.works-lightbox__prev {
	top: 50%;
	left: 8px;
	transform: translateY(-50%);
}

.works-lightbox__next {
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
}

/* archive-voice.php */
.voice-archive .archive-hero__photo {
	background-image: url("../../img/archive/voice-top.webp");
}
.voice-archive .archive-body {
    background: #f7f8f6;
    margin-top: 80px;
}

.voice-cards--archive {
	margin-bottom: clamp(24px, 4vw, 40px);
}

.voice-archive__empty {
	margin: 0;
	padding: 40px 0;
	text-align: center;
	color: var(--color-muted);
}

.voice-archive__pagination {
	padding-top: 16px;
	text-align: center;
}


/* archive-blog.php */
.blog-archive .archive-hero__photo {
	background-image: url("../../img/archive/blog-top.webp");
}

.blog-cards--archive {
	gap: clamp(20px, 3vw, 28px);
	margin-bottom: clamp(8px, 2vw, 16px);
}

.blog-cards--archive .blog-card__title {
	font-size: clamp(1rem, 2.2vw, 1.125rem);
}

.blog-cards--archive .blog-card__excerpt {
	display: -webkit-box;
	margin: 10px 0 0;
	overflow: hidden;
	color: var(--color-muted);
	font-size: 14px;
	line-height: 1.7;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.blog-archive__empty {
	margin: 0;
	padding: 40px 0;
	text-align: center;
	color: var(--color-muted);
}

.blog-archive__pagination {
	padding-top: clamp(32px, 5vw, 48px);
	text-align: center;
}

/* archive-news.php */
.news-archive .archive-hero__photo {
	background-image: url("../../img/archive/news-top.webp");
}

.news-archive__feed {
	margin: 0 auto;
}

.news-archive__feed .front-news-strip__item {
	padding: 15px 0;
}

.news-archive__feed .front-news-strip__item:first-child {
	padding-top: 15px;
}

.news-archive__feed .front-news-strip__item:last-child {
	padding-bottom: 15px;
	border-bottom: 1px solid var(--color-line);
}

.news-archive__empty {
	margin: 0;
	padding: 40px 0;
	text-align: center;
	color: var(--color-muted);
}

.news-archive__pagination {
	padding-top: clamp(32px, 5vw, 48px);
	text-align: center;
}

@media screen and (max-width: 960px) {
	.news-archive__feed .front-news-strip__item {
		padding: 15px 0;
	}

	.news-archive__feed .front-news-strip__link {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}

/* archive-event.php */
.event-archive .archive-hero__photo {
	background-image: url("../../img/archive/event-top.webp");
}

.event-cards--archive {
	margin-bottom: clamp(24px, 4vw, 40px);
}

.event-archive__empty {
	margin: 0;
	padding: 40px 0;
	text-align: center;
	color: var(--color-muted);
}

.event-archive__pagination {
	padding-top: clamp(16px, 3vw, 32px);
	text-align: center;
}

/* 一覧ページネーション共通（blog / event / news / voice / works） */
.blog-archive__pagination .navigation,
.event-archive__pagination .navigation,
.news-archive__pagination .navigation,
.voice-archive__pagination .navigation {
	margin: 0;
}

.blog-archive__pagination .nav-links,
.event-archive__pagination .nav-links,
.news-archive__pagination .nav-links,
.voice-archive__pagination .nav-links,
.works-archive__pagination .nav-links {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: clamp(6px, 1.2vw, 10px);
	max-width: 100%;
}

.blog-archive__pagination .page-numbers,
.event-archive__pagination .page-numbers,
.news-archive__pagination .page-numbers,
.voice-archive__pagination .page-numbers,
.works-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 12px;
	border: 1px solid var(--color-line);
	background: var(--color-bg);
	color: var(--color-text);
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
	transition: color 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
}

.blog-archive__pagination .page-numbers.current,
.event-archive__pagination .page-numbers.current,
.news-archive__pagination .page-numbers.current,
.voice-archive__pagination .page-numbers.current,
.works-archive__pagination .page-numbers.current {
	background: var(--color-wood);
	border-color: var(--color-wood);
	color: #fff;
	font-weight: 500;
	pointer-events: none;
}

.blog-archive__pagination a.page-numbers:hover,
.event-archive__pagination a.page-numbers:hover,
.news-archive__pagination a.page-numbers:hover,
.voice-archive__pagination a.page-numbers:hover,
.works-archive__pagination a.page-numbers:hover,
.blog-archive__pagination a.page-numbers:focus-visible,
.event-archive__pagination a.page-numbers:focus-visible,
.news-archive__pagination a.page-numbers:focus-visible,
.voice-archive__pagination a.page-numbers:focus-visible,
.works-archive__pagination a.page-numbers:focus-visible {
	border-color: var(--color-wood);
	color: var(--color-wood);
}

.blog-archive__pagination .page-numbers.dots,
.event-archive__pagination .page-numbers.dots,
.news-archive__pagination .page-numbers.dots,
.voice-archive__pagination .page-numbers.dots,
.works-archive__pagination .page-numbers.dots {
	min-width: auto;
	height: auto;
	padding: 0 4px;
	border: 0;
	background: transparent;
	color: var(--color-muted);
}

.blog-archive__pagination .page-numbers.prev,
.blog-archive__pagination .page-numbers.next,
.event-archive__pagination .page-numbers.prev,
.event-archive__pagination .page-numbers.next,
.news-archive__pagination .page-numbers.prev,
.news-archive__pagination .page-numbers.next,
.voice-archive__pagination .page-numbers.prev,
.voice-archive__pagination .page-numbers.next,
.works-archive__pagination .page-numbers.prev,
.works-archive__pagination .page-numbers.next {
	min-width: auto;
	padding-inline: 16px;
	font-size: 13px;
}

@media screen and (min-width: 961px) {
	.card-grid--works {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.blog-cards--archive {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media screen and (max-width: 960px) {
	.card-grid--works {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.blog-cards--archive {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.works-single__gallery-item {
		flex: 1 1 calc(50% - 10px);
		min-width: calc(50% - 10px);
		max-width: calc(50% - 10px);
	}

	.works-archive .works-archive__intro {
		text-align: left;
	}

	.works-archive .works-filter__group {
		margin-bottom: 12px;
		padding: 14px;
	}

	.works-archive .works-filter__title {
		margin-bottom: 12px;
		padding-bottom: 8px;
		font-size: 0.9rem;
		text-align: left;
	}

	.works-archive .works-filter__list {
		justify-content: flex-start;
		gap: 10px 14px;
	}

	.works-archive .works-filter__list label {
		font-size: 14px;
		line-height: 1.45;
	}

	.works-archive .works-filter__submit {
		margin-top: 20px;
		margin-bottom: 24px;
	}

	.works-archive .works-filter__submit .button {
		width: 100%;
		max-width: 200px;
		padding: 10px 22px 10px 26px;
		font-size: 13px;
	}

	.works-archive .works-filter__submit .button::after {
		font-size: 12px;
	}

	.works-archive .works-wide {
		box-sizing: border-box;
		padding-inline: 16px;
	}

	.works-archive .card-grid--works.width-m {
		width: 100%;
		max-width: none;
		gap: 14px 12px;
	}

	.works-archive .card h2.card__title {
		margin: 10px 0 4px;
		font-size: 15px;
		line-height: 1.45;
	}

	.works-archive .works-card__terms {
		margin: 6px 0 8px;
		gap: 6px;
	}

	.works-archive .works-card__terms .works-single__term {
		padding: 3px 8px;
		font-size: 12px;
	}

	.works-archive .card__excerpt {
		font-size: 13px;
		line-height: 1.65;
	}

	.works-archive__empty {
		padding: 32px 16px;
		font-size: 14px;
	}

	.works-archive__pagination {
		padding-top: 32px;
	}

	.works-archive .basic-links--cross,
	.works-single .basic-links--cross,
	.voice-archive .basic-links--cross {
		flex-wrap: nowrap;
		justify-content: center;
		gap: 10px;
		width: calc(100% - 32px);
		max-width: none;
		margin-top: 40px;
		margin-bottom: 48px;
		padding-inline: 0;
	}

	.works-archive .basic-links--cross .basic-card,
	.works-single .basic-links--cross .basic-card,
	.voice-archive .basic-links--cross .basic-card {
		flex: 1 1 calc(50% - 5px);
		width: calc(50% - 5px);
		min-width: 0;
		min-height: 96px;
		padding: 12px 6px 10px;
		font-size: 12px;
		line-height: 1.4;
	}

	.works-archive .basic-links--cross .basic-card .hm,
	.works-single .basic-links--cross .basic-card .hm,
	.voice-archive .basic-links--cross .basic-card .hm {
		font-size: 28px;
	}
}

.page-heading {
	padding: 88px 0 12px;
	text-align: center;
}

.page-heading h1 {
	margin: 10px 0 0;
	font-family: var(--font-serif);
	font-size: clamp(32px, 4vw, 44px);
	font-weight: 500;
	letter-spacing: 0.08em;
}

.page-main .entry {
	padding: 12px 0 100px;
}

.entry__title {
	margin: 0 0 24px;
	font-family: var(--font-serif);
	font-size: 36px;
	font-weight: 500;
	line-height: 1.4;
}

.entry__meta {
	margin: 0 0 8px;
	color: var(--color-muted);
	font-size: 13px;
}

.entry__content table {
	width: 100%;
	border-collapse: collapse;
}

.entry__content th,
.entry__content td {
	padding: 12px 8px;
	border-bottom: 1px solid var(--color-line);
	vertical-align: top;
	text-align: left;
}

.entry__content th {
	width: 8em;
	font-weight: 500;
}

/* single-blog.php / single-news.php / single-event.php / single-voice.php */

.single-post__article {
	padding: 12px 0 100px;
}

.single-post__meta {
	margin: 0 0 8px;
	color: var(--color-muted);
	font-size: 13px;
}

.single-post__title {
	margin: 0 0 24px;
	font-family: var(--font-serif);
	font-size: clamp(1.6rem, 4vw, 2.25rem);
	font-weight: 500;
	line-height: 1.45;
}

.single-post__thumb {
	margin: 0 0 28px;
}

.single-post__thumb img {
	display: block;
	width: 100%;
	height: auto;
}

/*
 * 本文プロース … .single-content（テーマ）＋ .entry__content（WP 慣習の本文ラッパ）
 * ブログ等は両方付与: <div class="single-content entry__content">
 * 見出しは帯・グラデを使わず、余白＋アクセント線（近年の記事 UI 寄り）
 */
.single-content,
.page-main .entry__content {
	color: var(--color-text);
	font-size: clamp(1rem, 1.6vw, 1.0625rem);
	line-height: 1.9;
}

.single-content > *:first-child,
.page-main .entry__content > *:first-child {
	margin-top: 0;
}

.single-content p,
.page-main .entry__content p {
	margin: 0 0 1.35em;
}

.single-content strong,
.single-content b,
.page-main .entry__content strong,
.page-main .entry__content b {
	font-weight: 700;
	color: var(--color-text);
}

.single-content h2,
.single-content h3,
.single-content h4,
.page-main .entry__content h2,
.page-main .entry__content h3,
.page-main .entry__content h4 {
	font-family: var(--font-serif);
	font-weight: 600;
	line-height: 1.55;
	text-wrap: pretty;
}

.single-content h2,
.page-main .entry__content h2 {
	position: relative;
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: clamp(2.75rem, 6vw, 3.5rem) 0 1.25rem;
	padding: 0.9rem 1rem 0.95rem 1.15rem;
	border: 0;
	border-bottom: 2px solid var(--color-green);
	background: linear-gradient(
		105deg,
		rgba(84, 180, 53, 0.11) 0%,
		rgba(237, 251, 226, 0.55) 48%,
		rgba(255, 255, 255, 0) 88%
	);
	color: var(--color-footer-brand);
	font-size: clamp(1.3rem, 2.8vw, 1.5625rem);
	font-weight: 600;
	letter-spacing: 0.03em;
}

.single-content h2::before,
.page-main .entry__content h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	border-radius: 0 2px 2px 0;
	background: linear-gradient(180deg, var(--color-green) 0%, var(--color-footer-brand) 100%);
}

.single-content > h2:first-child,
.page-main .entry__content > h2:first-child {
	margin-top: 0.5rem;
}

.single-content h2 + p,
.page-main .entry__content h2 + p {
	margin-top: 0;
}

.single-content h3,
.page-main .entry__content h3 {
	margin: clamp(1.75rem, 4vw, 2.25rem) 0 0.65rem;
	padding: 0.35rem 0 0.45rem 0.75rem;
	border: 0;
	border-bottom: 1px solid var(--color-line);
	border-left: 3px solid var(--color-green);
	background: none;
	color: var(--color-footer-brand);
	font-size: clamp(1.0625rem, 2.1vw, 1.125rem);
	font-weight: 600;
	letter-spacing: 0.02em;
}

.single-content h3 .fa,
.page-main .entry__content h3 .fa {
	margin-right: 0.4em;
	font-size: 0.92em;
	color: var(--color-green);
	vertical-align: 0.05em;
}

.single-content h4,
.page-main .entry__content h4 {
	position: relative;
	margin: 1.5rem 0 0.45rem;
	padding: 0 0 0 1.15rem;
	border: 0;
	background: none;
	color: var(--color-wood);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.single-content h4::before,
.page-main .entry__content h4::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--color-wood);
	opacity: 0.75;
}

.single-content h4 .fa,
.page-main .entry__content h4 .fa {
	margin-right: 0.35em;
	color: var(--color-wood);
}

.single-content ul,
.single-content ol,
.page-main .entry__content ul,
.page-main .entry__content ol {
	margin: 0 0 1.35em;
	padding-left: 1.35em;
}

.single-content li,
.page-main .entry__content li {
	margin-bottom: 0.5em;
	line-height: 1.85;
}

.single-content li::marker,
.page-main .entry__content li::marker {
	color: var(--color-green);
	font-size: 0.85em;
}

.single-content li > ul,
.single-content li > ol,
.page-main .entry__content li > ul,
.page-main .entry__content li > ol {
	margin-top: 0.45em;
	margin-bottom: 0;
}

.single-content table,
.page-main .entry__content table {
	width: 100%;
	margin: 0 0 1.5em;
	border-collapse: collapse;
}

.single-content th,
.single-content td,
.page-main .entry__content th,
.page-main .entry__content td {
	padding: 12px 8px;
	border-bottom: 1px solid var(--color-line);
	vertical-align: top;
	text-align: left;
}

.single-content th,
.page-main .entry__content th {
	width: 8em;
	font-weight: 500;
}

.single-content a,
.page-main .entry__content a {
	color: var(--color-wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.single-content a:hover,
.page-main .entry__content a:hover {
	color: var(--color-footer-brand);
}

.single-content img,
.page-main .entry__content img {
	max-width: 100%;
	height: auto;
}

/* 記事詳細：前後ナビ・一覧へ戻る（blog / news 等） */
.single-post__nav {
	margin: clamp(3rem, 7vw, 4.5rem) auto;
}

.single-post__nav-adjacent {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid #c8cec4;
	border-bottom: 1px solid #c8cec4;
}

.single-post__nav-item--prev {
	border-right: 1px solid #c8cec4;
}

.single-post__nav-card {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 96px;
	padding: 14px 14px 16px;
	color: var(--color-text);
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.single-post__nav-card:hover,
.single-post__nav-card:focus-visible {
	background: rgba(237, 251, 226, 0.45);
}

.single-post__nav-item--next .single-post__nav-card {
	flex-direction: row-reverse;
	text-align: right;
}

.single-post__nav-thumb {
	flex-shrink: 0;
	width: 72px;
	height: 72px;
	overflow: hidden;
	border-radius: 4px;
	background: var(--color-topics);
}

.single-post__nav-thumb-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-post__nav-thumb-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--color-topics) 0%, #dfe8db 100%);
}

.single-post__nav-text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.single-post__nav-label {
	color: var(--color-footer-brand);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.single-post__nav-title {
	font-size: 0.875rem;
	line-height: 1.55;
}

.single-post__nav-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: clamp(12px, 2.5vw, 20px);
	width: 100%;
	margin: clamp(1.75rem, 4vw, 2.25rem) auto 0;
}

.single-post__nav-actions .basic-card {
	flex: 1 1 min(300px, calc(50% - 10px));
	width: auto;
	min-width: 9rem;
	max-width: min(300px, calc(50% - 10px));
	min-height: 122px;
	margin: 0;
	padding: 14px 6px 12px;
	line-height: 1.35;
	font-size: 15px;
}

.single-post__nav-actions .basic-card .hm {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	height: 40px;
	margin: 0;
}

.single-post__nav-actions .basic-card__label {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-height: 2.75em;
	letter-spacing: -0.04em;
}

.single-post__nav-actions .basic-card__line {
	display: block;
	font-size: 0.9375rem;
	line-height: 1.3;
}

/* お施主さまの声：施工実例カード ＋ 2つの一覧ボタンを横並び（旧 voice-single__related 相当） */
.single-post__nav-actions:not(.single-post__nav-actions--archives-only) {
	width: min(100%, 52rem);
	gap: 10px;
}

.single-post__nav-actions:not(.single-post__nav-actions--archives-only) .basic-card {
	flex: 1 1 9.5rem;
	min-width: 9rem;
	max-width: 11.5rem;
}

.single-post__nav-actions--archives-only .basic-card {
	flex: 0 1 min(300px, calc(50% - 10px));
	max-width: min(300px, calc(50% - 10px));
}

.works-single__post-nav {
	padding-bottom: 48px;
}

@media (max-width: 640px) {
	.single-post__nav-adjacent {
		grid-template-columns: 1fr;
	}

	.single-post__nav-item--prev {
		border-right: 0;
		border-bottom: 1px solid #c8cec4;
	}

	.single-post__nav-item--next .single-post__nav-card {
		flex-direction: row;
		text-align: left;
	}

	.single-post__nav-thumb {
		width: 64px;
		height: 64px;
	}

	.single-post__nav-actions .basic-card,
	.single-post__nav-actions--archives-only .basic-card {
		flex: 1 1 100%;
		max-width: none;
		width: 100%;
	}
}

@media screen and (max-width: 960px) {
	.single-post__nav-actions:not(.single-post__nav-actions--archives-only) {
		width: min(100%, calc(100% - 32px));
	}

	.single-post__nav-actions:not(.single-post__nav-actions--archives-only) .voice-single__works-card {
		flex: 1 1 100%;
	}

	.single-post__nav-actions:not(.single-post__nav-actions--archives-only) .basic-card {
		width: 100%;
		max-width: none;
	}
}

.event-single__meta {
	margin: 0 0 28px;
	padding: clamp(18px, 3vw, 24px) clamp(18px, 3.5vw, 28px);
	border: 1px solid #e5e0d8;
	background: var(--fixed-page-bg, #f5f2ed);
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.event-single__meta-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	margin: 0;
	padding-bottom: clamp(14px, 2.5vw, 18px);
	border-bottom: 1px solid rgba(31, 32, 28, 0.1);
}

.event-single__meta-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1rem, 2.2vw, 1.125rem);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

.event-single__meta-title::before {
	content: "";
	flex: none;
	width: 3px;
	height: 1.15em;
	background: var(--color-green);
}

.event-single__meta-head .event-single__status {
	margin: 0;
	flex: none;
}

.event-single__status {
	margin: 0;
}

.event-single__badge {
	display: inline-block;
	padding: 5px 14px;
	border: 1px solid transparent;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.event-single__badge--open {
	border-color: rgba(45, 90, 61, 0.2);
	background: #e8f0ea;
	color: #2d5a3d;
}

.event-single__badge--closed {
	background: #ececec;
	color: #666;
}

.event-single__summary {
	margin-top: clamp(14px, 2.5vw, 18px);
	padding: 2px clamp(14px, 2.5vw, 20px) 4px;
	border: 1px solid rgba(31, 32, 28, 0.08);
	background: #fff;
}

.event-single__details {
	margin: 0;
}

.event-single__summary .event-slots {
	margin: 0;
}

.event-single__summary .event-single__details:empty {
	display: none;
}

.event-slots:not(.event-slots-open) {
	margin: 0;
}

.event-slots-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	background: #fff;
}

.event-slots-table th,
.event-slots-table td {
	padding: 11px 14px;
	border-bottom: 1px solid rgba(31, 32, 28, 0.1);
	text-align: left;
	vertical-align: middle;
}

.event-slots-table th {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	background: #fff;
	color: var(--color-muted);
}

.event-slots-table .slot-remain {
	white-space: nowrap;
}

.event-slots-table .slot-mark {
	display: inline-block;
	margin-right: 0.35em;
}

.event-slots-table tr.is-few td:not(.is-merged) {
	background: #fce8d6;
}

.event-slots-table tr.is-full td:not(.is-merged) {
	background: #ececec;
	color: #666;
}

.event-single__closed {
	text-align: center;
    background: #ccc;
    padding: 30px;
    margin-top: 50px;
    letter-spacing: 2px;
}

.booking-slot-group .checkbox-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.event-single__row {
	display: grid;
	grid-template-columns: 5.5em 1fr;
	gap: 8px 20px;
	align-items: baseline;
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid rgba(31, 32, 28, 0.1);
}

.event-single__summary > *:last-child .event-single__row:last-child {
	border-bottom: 0;
}

.event-single__row dt {
	margin: 0;
	color: var(--color-muted);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
}

.event-single__row dd {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.75;
}

.event-single__form {
	--event-form-gutter: clamp(20px, 4vw, 48px);
	box-sizing: border-box;
	width: 100%;
	margin-top: clamp(40px, 6vw, 56px);
	padding: clamp(48px, 8vw, 80px) var(--event-form-gutter);
	background-color: var(--fixed-page-bg, #f5f2ed);
	border-top: 1px solid var(--color-line);
}

.event-single__form-width {
	box-sizing: border-box;
}

.event-single__form-band.style-band {
	padding: 0 0 clamp(24px, 3vw, 36px);
	scroll-margin-top: 88px;
}

.event-single__form-band.style-band h2 {
	font-family: var(--font-serif);
}

.event-single__form-panel {
	padding: clamp(28px, 4vw, 48px) clamp(20px, 4vw, 40px);
	border: 1px solid #e5e0d8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(31, 44, 31, 0.06);
}

.event-single__form-panel .contact-page__form {
	padding-bottom: 0;
}

@media screen and (max-width: 960px) {
	.event-single__form {
		--event-form-gutter: 16px;
		margin-top: 32px;
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.event-single__form-width.width-800 {
		width: 100%;
		max-width: none;
	}

	.event-single__form-band.style-band {
		padding-bottom: 20px;
	}

	.event-single__form-band.style-band p {
		margin-top: 14px;
		font-size: 14px;
		letter-spacing: 0.04em;
	}

	.event-single__form-panel {
		padding: 20px 16px;
	}
    .event-single__closed {
        padding: 20px;
        margin-top: 30px;
        letter-spacing: 1px;
    }
    .single-post__article {
        padding: 12px 0 40px;
    }
}

/* single-voice.php（デモ voice-sh 構成） */

.voice-single__article {
	padding: clamp(32px, 5vw, 56px) 0 40px;
}

.voice-single__header {
	margin-bottom: clamp(20px, 3vw, 28px);
	text-align: center;
}

.voice-single__badge {
	margin: 0 0 12px;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
}

.voice-single__title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.1rem, 2.6vw, 1.35rem);
	font-weight: 500;
	line-height: 1.65;
}

.voice-single__lead {
	margin-bottom: clamp(28px, 4vw, 40px);
	padding: clamp(22px, 3.5vw, 32px) clamp(18px, 4vw, 32px);
	text-align: center;
	background: var(--color-support-bg);
	border-top: 3px solid var(--color-green);
	border-bottom: 1px solid var(--color-line);
}

.voice-single__subtitle {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.1rem, 2.6vw, 1.35rem);
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0.04em;
	color: var(--color-navy);
}

.voice-single__thumb {
	margin: 0 0 clamp(25px, 3vw, 50px);
}

.voice-single__thumb img {
    max-height: 750px;
    object-fit: contain;
}

.voice-single__letter {
	margin-top: clamp(32px, 5vw, 48px);
	padding-top: 24px;
	border-top: 1px solid var(--color-line);
	text-align: center;
}

.voice-single__letter-works {
	margin-top: clamp(32px, 5vw, 48px);
	padding-top: 24px;
	border-top: 1px solid var(--color-line);
}

.voice-single__letter-works-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.35fr);
	gap: 10px;
	align-items: stretch;
}

.voice-single__letter--paired {
	margin: 0;
	padding: 8px 12px;
	border: 1px solid var(--color-line);
	background: var(--color-topics);
	text-align: left;
}

.voice-single__letter-paired-body {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 0;
}

.voice-single__letter--paired .voice-single__letter-thumb {
	flex-shrink: 0;
	width: auto;
	max-width: 42%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: zoom-in;
}

.voice-single__letter--paired .voice-single__letter-thumb:hover,
.voice-single__letter--paired .voice-single__letter-thumb:focus-visible {
	box-shadow: none;
	opacity: 0.92;
}

.voice-single__letter--paired .voice-single__letter-thumb img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 132px;
	margin: 0;
	object-fit: contain;
}

.voice-single__letter-paired-copy {
	flex: 1;
	min-width: 0;
}

.voice-single__letter-paired-title {
	margin: 0 0 6px;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-footer-brand);
	letter-spacing: 0.04em;
}

.voice-single__letter-paired-hint {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--color-muted);
}

.voice-single__letter-works .voice-single__works-card {
	flex: none;
	height: 100%;
	min-height: 0;
	margin: 0;
	padding: 10px 12px 12px;
	gap: 6px;
	justify-content: flex-start;
}

.voice-single__letter-works .voice-single__works-card-label {
	margin-bottom: 2px;
	font-size: 0.9375rem;
}

.voice-single__letter-works .voice-single__works-card-panel {
	padding: 8px 10px;
}

.voice-single__letter-works .voice-single__works-card-media {
	flex: 0 0 100px;
}

.voice-single__letter-works .voice-single__works-card-media img {
	width: 100px;
	height: 72px;
}

.voice-single__featured-works {
	margin-top: clamp(32px, 5vw, 48px);
	padding-top: 24px;
	border-top: 1px solid var(--color-line);
}

.voice-single__featured-works-inner {
	max-width: 52rem;
	margin-inline: auto;
}

.voice-single__letter-label {
	margin: 0 0 12px;
	font-size: 0.8rem;
	color: var(--color-muted);
	letter-spacing: 0.06em;
}

.voice-single__letter-thumb {
	display: inline-block;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--color-line);
	background: var(--color-topics);
	cursor: zoom-in;
	line-height: 0;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.voice-single__letter-thumb:hover,
.voice-single__letter-thumb:focus-visible {
	border-color: var(--color-green);
	box-shadow: 0 2px 12px rgba(15, 23, 42, 0.08);
	outline: none;
}

.voice-single__letter-thumb img {
	display: block;
	width: auto;
	max-width: min(240px, 72vw);
	max-height: 180px;
	height: auto;
	object-fit: contain;
}

.works-lightbox--single .works-lightbox__prev,
.works-lightbox--single .works-lightbox__next {
	display: none;
}

.voice-single__footer {
	padding-bottom: 80px;
}

.voice-single__related {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 10px;
	width: min(100%, 52rem);
	margin: clamp(32px, 5vw, 48px) auto clamp(24px, 4vw, 32px);
}

.voice-single__related--archive-only {
	justify-content: center;
}

.voice-single__works-card {
	box-sizing: border-box;
	display: flex;
	flex: 2.2 1 16rem;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	min-height: 122px;
	max-width: 100%;
	padding: 14px 16px 16px;
	border: 1px solid rgba(31, 32, 28, 0.78);
	background: #f5f2ed;
	color: #1f2c1f;
	text-decoration: none;
	transition:
		border-color 0.2s ease,
		background 0.2s ease,
		box-shadow 0.2s ease;
}

.voice-single__works-card:hover,
.voice-single__works-card:focus-visible {
	border-color: var(--color-green);
	background: #f5f2ed;
	box-shadow: 0 8px 22px rgba(31, 44, 31, 0.12);
}

.voice-single__works-card-label {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-align: center;
}

.voice-single__works-card-panel {
	display: block;
	padding: 10px 12px;
	background: #fff;
}

.voice-single__works-card-row {
	display: flex;
	gap: 14px;
	align-items: center;
	min-width: 0;
}

.voice-single__works-card-media {
	flex: 0 0 120px;
	overflow: hidden;
	background: #e8ebe6;
}

.voice-single__works-card-media img {
	display: block;
	width: 120px;
	height: 90px;
	object-fit: cover;
}

.voice-single__works-card-title {
	flex: 1;
	min-width: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: left;
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.voice-single__related .basic-card {
	flex: 1 1 9.5rem;
	gap: 16px;
	width: auto;
	min-width: 9rem;
	max-width: 11.5rem;
	min-height: 122px;
	margin: 0;
	padding: 14px 6px 12px;
	line-height: 1.35;
	font-size: 15px;
}

.voice-single__related .basic-card .hm {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	height: 40px;
	margin: 0;
}

.voice-single__related .basic-card__label {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-height: 2.75em;
	letter-spacing: -0.04em;
}

.voice-single__related .basic-card__line {
	display: block;
	font-size: 0.9375rem;
	line-height: 1.3;
}

.voice-single__related--archive-only .basic-card {
	flex: 0 1 min(300px, calc(50% - 20px));
	max-width: min(300px, calc(50% - 20px));
}

.voice-single__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(20px, 5vw, 48px);
	margin: 0;
	font-size: 0.95rem;
	text-align: center;
}

.voice-single__nav-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.voice-single__nav-link:hover {
	opacity: 0.75;
}

@media screen and (max-width: 960px) {
	.voice-single__related {
		width: min(100%, calc(100% - 32px));
	}

	.voice-single__works-card {
		flex: 1 1 100%;
	}

	.voice-single__related .basic-card {
		width: 100%;
		max-width: none;
	}

	.voice-single__letter-works-inner {
		grid-template-columns: 1fr;
	}
    .voice-single__thumb img {
        max-height: 380px;
    }
}

/* ==========================================================================
   11. フッター・固定UI（footer.php・全ページ）
   ========================================================================== */

.site-footer {
	background: var(--color-bg);
	color: var(--color-footer-text);
}

/* 問い合わせ・資料請求は共通CTAを出さないため、白セクションとフッターがつながる */
main.contact-page + .site-footer,
main.catalog-page + .site-footer {
	border-top: 1px solid #d8d4cc;
	background: #f5f2ed;
}

.site-footer__main {
	width: min(1280px, calc(100% - 40px));
	margin-inline: auto;
	padding: 56px 0 48px;
	text-align: left;
}

@media screen and (max-width: 960px) {
	.site-footer__main {
		padding-top: 40px;
	}
}

.site-nav-map__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px 24px;
}

.site-nav-map__heading {
	margin: 0 0 18px;
	padding: 0 0 14px 14px;
	border-bottom: 1px solid var(--color-footer-line);
	border-left: 3px solid var(--color-wood);
	font-size: inherit;
	font-weight: inherit;
	line-height: 1.4;
}

.site-nav-map--footer .site-nav-map__heading {
	border-left-color: var(--color-footer-brand);
	border-bottom-color: var(--color-footer-line);
}

.site-nav-map--footer .site-nav-map__heading-ja {
	display: block;
	font-family: var(--font-serif);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--color-footer-text);
}

.site-nav-map--footer .site-nav-map__heading-en {
	display: block;
	margin-top: 6px;
	font-family: var(--font-section-en);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-footer-accent);
}

.site-nav-map__heading-ja {
	display: block;
	font-family: var(--font-serif);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.site-nav-map__heading-en {
	display: block;
	margin-top: 6px;
	font-family: var(--font-section-en);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.site-nav-map__list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	line-height: 1.5;
}

.site-nav-map__list li + li {
	margin-top: 16px;
}

.site-nav-map--footer .site-nav-map__list a {
	color: var(--color-footer-muted);
	text-decoration: none;
}

.site-nav-map--footer .site-nav-map__list a:hover,
.site-nav-map--footer .site-nav-map__list a:focus-visible {
	color: var(--color-footer-brand);
	text-decoration: underline;
}

.site-nav-map__list a {
	text-decoration: none;
}

.site-nav-map__list a:hover,
.site-nav-map__list a:focus-visible {
	text-decoration: underline;
}

.site-nav-cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 40px 0 48px;
}

.site-nav-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 160px;
	min-height: 48px;
	padding: 10px 20px;
	border: 1px solid transparent;
	border-radius: 2px;
	font-size: 14px;
	letter-spacing: 0.06em;
	color: #fff;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, filter 0.2s ease;
}

.site-nav-cta--footer .site-nav-cta__btn--event,
.site-nav-cta--footer .site-nav-cta__btn--contact,
.site-nav-cta--footer .site-nav-cta__btn--request,
.site-nav-cta--drawer .site-nav-cta__btn--event,
.site-nav-cta--drawer .site-nav-cta__btn--contact,
.site-nav-cta--drawer .site-nav-cta__btn--request {
	background: var(--color-wood);
}

.site-nav-cta__btn:hover,
.site-nav-cta__btn:focus-visible {
	filter: brightness(1.05);
	color: #fff;
}

@media screen and (max-width: 960px) {
	.site-nav-cta {
		flex-direction: column;
		align-items: stretch;
	}

	.site-nav-cta__btn {
		width: 100%;
	}
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 20px;
	width: 100%;
	margin: 0;
	padding: 20px;
	text-align: center;
	border-top: 1px solid var(--color-line);
	background: var(--color-topics);
}

.site-footer__privacy {
    font-size: 13px;
    color: var(--color-footer-brand);
    text-decoration: underline;
}

.site-footer__privacy:hover,
.site-footer__privacy:focus-visible {
	color: var(--color-footer-text);
	text-decoration: underline;
}

.site-footer__copy {
	margin: 0;
	font-size: 13px;
	color: var(--color-footer-muted);
}

html:has(body.site-drawer-open),
body.site-drawer-open {
	overflow: hidden;
}

body.site-drawer-open .side-nav,
body.site-drawer-open .scroll-top {
	visibility: hidden;
	pointer-events: none;
}

.site-drawer {
	position: fixed;
	top: 0;
	right: -100%;
	z-index: 90;
	width: 100%;
	height: 100vh;
	overflow-y: auto;
	background: #f5f2ed;
	color: var(--color-text);
	box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
	transition: right 0.4s ease;
}

.site-drawer.is-open {
	right: 0;
}

.site-drawer__panel {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	min-height: 100vh;
	min-height: 100dvh;
	padding: 64px 24px 48px;
	background: transparent;
}

.site-drawer__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.site-drawer__close-bar {
	position: absolute;
	width: 22px;
	height: 1px;
	background: var(--color-text);
}

.site-drawer__close-bar:first-child {
	transform: rotate(45deg);
}

.site-drawer__close-bar:last-child {
	transform: rotate(-45deg);
}

.site-drawer__scroll {
	width: min(1200px, 100%);
	margin-inline: auto;
	margin-block: auto;
}

.site-drawer__brand {
	margin-bottom: 28px;
	text-align: center;
}

.site-drawer__logo,
.site-drawer__brand .custom-logo-link {
	display: inline-block;
}

.site-drawer__logo img,
.site-drawer__brand .custom-logo {
	width: auto;
	height: 68px;
	margin-inline: auto;
}

.site-drawer__tel {
	display: block;
	margin-bottom: 16px;
	color: inherit;
	text-align: center;
	text-decoration: none;
}

.site-drawer__tel-label,
.site-drawer__tel-hours {
	display: block;
	font-size: 13px;
	line-height: 1.6;
}

.site-drawer__tel-number {
	display: block;
	margin: 4px 0;
	font-size: clamp(1.6rem, 6vw, 2rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.site-drawer__instagram {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 8px auto 40px;
	color: var(--color-footer-brand, #2f5d46);
	text-decoration: none;
}

.site-drawer__instagram svg {
	width: 36px;
	height: 36px;
	fill: currentColor;
}

.site-drawer__instagram:hover,
.site-drawer__instagram:focus-visible {
	color: #c13584;
}

.site-drawer__brand,
.site-drawer__tel,
.site-drawer__instagram {
	text-align: center;
}

.site-drawer .site-nav-map {
	padding: 36px 40px 32px;
	border-top: 1px solid #d8d4cc;
	background: #fff;
	text-align: left;
}

.site-nav-map--drawer .site-nav-map__grid {
	gap: 32px 24px;
}

@media screen and (max-width: 960px) {
	.site-nav-map__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 16px;
	}

	.site-drawer .site-nav-map {
		padding: 28px 20px 24px;
	}
}

.site-nav-map--drawer .site-nav-map__heading {
	border-bottom-color: var(--color-line);
	border-left-color: var(--color-wood);
}

.site-nav-map--drawer .site-nav-map__heading-ja {
	color: var(--color-text);
	font-size: 15px;
}

.site-nav-map--drawer .site-nav-map__heading-en {
	color: var(--color-wood);
	font-size: 10px;
	letter-spacing: 0.16em;
	opacity: 0.92;
}

.site-nav-map--drawer .site-nav-map__list a {
	color: var(--color-text);
}

.site-nav-cta--drawer .site-nav-cta__btn--event,
.site-nav-cta--drawer .site-nav-cta__btn--contact,
.site-nav-cta--drawer .site-nav-cta__btn--request {
	border-color: transparent;
}

.site-nav-cta--drawer {
	justify-content: stretch;
	flex-direction: column;
	margin: 8px 0 0;
}

.site-nav-cta--drawer .site-nav-cta__btn {
	width: 100%;
}

.side-nav {
	position: fixed;
	right: 0;
	bottom: 80px;
	z-index: 30;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
	/* 折りたたみ時は右60pxだけ当たり判定を残す（フッター右列のリンクを塞がない） */
	width: 60px;
	overflow: hidden;
}

.side-nav:has(.side-nav__item:hover),
.side-nav:has(.side-nav__item:focus-within) {
	width: max-content;
	overflow: visible;
}

.side-nav__item {
	display: flex;
	align-items: center;
	height: 60px;
	color: #fff;
	transform: translateX(calc(100% - 60px));
	transition: transform 0.4s ease, background-color 0.2s linear;
}

.side-nav__icon {
	display: grid;
	place-items: center;
	flex: 0 0 60px;
	width: 60px;
}

.side-nav__icon svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.side-nav__label {
	padding: 0 18px 0 2px;
	font-size: 15px;
	line-height: 1;
	white-space: nowrap;
}

.side-nav__item--request {
	background: rgba(164, 113, 63, 0.65);
}

.side-nav__item--contact {
	background: rgba(163, 120, 78, 0.83);
}

.side-nav__item--instagram {
	background: rgba(193, 53, 132, 0.78);
}

.side-nav__item--request:hover,
.side-nav__item--request:focus-visible {
	background: #a4713f;
}

.side-nav__item--contact:hover,
.side-nav__item--contact:focus-visible {
	background: #a3784e;
}

.side-nav__item--instagram:hover,
.side-nav__item--instagram:focus-visible {
	background: #c13584;
}

.side-nav__item:hover,
.side-nav__item:focus-visible {
	transform: translateX(0);
}

.scroll-top {
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 99;
	display: grid;
	place-items: center;
	width: 2.1em;
	height: 2.1em;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: #1f2c1f;
	color: #fff;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.scroll-top__icon {
	display: grid;
	place-items: center;
	line-height: 0;
}

.scroll-top__svg {
	width: 1.6em;
	height: auto;
	transform: translate(0, -20%) rotate(180deg);
}

.scroll-top.is-visible {
	opacity: 1;
	pointer-events: auto;
}
