/* =============================================================================
   Boen Block — 共通スタイル（フロント / エディタ共通）
   色・余白・フォントは theme.json のプリセット変数を使う
   ============================================================================= */

:root {
	--boen-radius: 20px;
	--boen-radius-sm: 12px;
	--boen-shadow: 0 10px 30px -12px rgba(30, 42, 37, 0.18);
	--boen-shadow-lg: 0 24px 50px -20px rgba(30, 42, 37, 0.28);
	--boen-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { height: auto; }
a { transition: color 0.2s, background-color 0.2s, opacity 0.2s, transform 0.25s var(--boen-ease); }

/* セクションの英字ミニラベル（段落に boen-label クラス、または見出しスタイル「小見出しラベル」） */
.boen-label,
.is-style-label {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 700 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent) !important;
	margin-bottom: 0.4rem !important;
}
.boen-label::before,
.is-style-label::before {
	content: "";
	display: inline-block;
	width: 1.6em;
	height: 1px;
	background: currentColor;
	vertical-align: middle;
	margin-right: 0.6em;
}
.has-text-align-center.boen-label::before,
.has-text-align-center.is-style-label::before { display: none; }
.is-style-band-dark .boen-label { color: var(--wp--preset--color--accent) !important; }

/* -----------------------------------------------------------------------------
   見出しまわりの余白（年配の方が読みやすいよう、区切りをはっきりさせる）
   ・見出しの上は大きく空けて、前の内容と切り離す
   ・見出しの直後は少し詰めて、見出しと本文をひとまとまりに見せる
   ・ブロックで margin-top を指定した場合（style 属性）はそちらが優先される
   ----------------------------------------------------------------------------- */
:is(.is-layout-flow, .is-layout-constrained) > h2:not(:first-child),
:is(.is-layout-flow, .is-layout-constrained) > .boen-label:not(:first-child) {
	margin-block-start: var(--wp--preset--spacing--50);
}
:is(.is-layout-flow, .is-layout-constrained) > h3:not(:first-child) {
	margin-block-start: var(--wp--preset--spacing--40);
}
:is(.is-layout-flow, .is-layout-constrained) > h4:not(:first-child) {
	margin-block-start: 2.2em;
}
:is(.is-layout-flow, .is-layout-constrained) > :is(h2, h3, h4) + * {
	margin-block-start: 1rem;
}
/* カードの中は面積が小さいので、見出しの上余白を控えめにする */
:is(.is-style-card, .is-style-card-tint, .is-style-note, .boen-compare, .boen-plan__body) > :is(h2, h3, h4):not(:first-child) {
	margin-block-start: 1.5rem;
}
/* ラベル（英字の小見出し）の直後の見出しは、ラベルと一体なので詰める */
:is(.is-layout-flow, .is-layout-constrained) > .boen-label + :is(h2, h3, h4) {
	margin-block-start: 0;
}

/* 飾り線つき見出し */
.is-style-lined {
	position: relative;
	padding-bottom: 0.6em;
}
.is-style-lined::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 2.5em;
	height: 2px;
	background: var(--wp--preset--color--accent);
}
.is-style-lined.has-text-align-center::after { left: 50%; transform: translateX(-50%); }

/* -----------------------------------------------------------------------------
   ヘッダー
   ----------------------------------------------------------------------------- */
.site-header {
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
	transition: box-shadow 0.3s, padding 0.3s;
	backdrop-filter: saturate(160%) blur(10px);
	-webkit-backdrop-filter: saturate(160%) blur(10px);
	background-color: rgba(255, 255, 255, 0.86) !important;
}
.site-header.is-scrolled { box-shadow: 0 6px 24px -14px rgba(30, 42, 37, 0.35); }
.site-header .wp-block-site-logo img { max-height: 44px; width: auto; }
.site-header .wp-block-site-title { line-height: 1.2; }
.site-header .wp-block-site-tagline { line-height: 1.3; }
.site-header .wp-block-navigation__responsive-container-open { padding: 6px; }
.site-header .header-cta { margin: 0; flex-shrink: 0; }
.site-header .header-cta .wp-block-button__link { padding: 0.6rem 1.3rem; white-space: nowrap; }
.site-header > .wp-block-group > .wp-block-group:first-child { flex-shrink: 0; }
.site-header .boen-info--phone {
	text-decoration: none;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	line-height: 1;
}
.site-header .boen-info--phone .boen-icon { color: var(--wp--preset--color--primary); }
.site-header .boen-info--phone,
.site-header .header-phone .boen-info { white-space: nowrap; }
.site-header .header-phone { flex-shrink: 0; }
.site-header .wp-block-navigation__container { flex-wrap: nowrap; }
.site-header .wp-block-navigation-item__content { white-space: nowrap; }
.site-header .wp-block-navigation .wp-block-navigation__container { gap: 1.1rem; }
/* ヘッダーの左右余白と要素間の間隔は、本文用の余白（spacing--30）より詰めて固定する */
.site-header { padding-left: clamp(1rem, 2.5vw, 2rem) !important; padding-right: clamp(1rem, 2.5vw, 2rem) !important; }
.site-header > .alignwide { gap: 1.5rem; }
.site-header > .alignwide > .wp-block-group:last-child { gap: 1.25rem; }
/* ヘッダーの中身が入りきらない幅から、優先度の低い要素を順に隠す
   （実測: サイト名 95px / キャッチ 270px / ナビ 758px / 電話 171px / ボタン 202px、ヘッダー内幅は最大 1440px）
   キャッチと電話番号は同時に入らないため、年配の方に役立つ電話番号を優先する */
.site-header .wp-block-site-tagline { display: none !important; }
@media (max-width: 1399px) {
	.site-header .header-phone { display: none !important; }
}
/* ナビが1行に収まらなくなる幅から、コアの既定（600px）より早くハンバーガーへ切り替える
   （iPad は横向きでもここに入り、大きな文字の全画面メニューで操作できる） */
@media (max-width: 1200px) {
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}
@media (max-width: 781px) {
	.site-header .header-cta { display: none; }
	.site-header .wp-block-site-tagline { display: none; }
}

/* メニュー展開中はヘッダーの backdrop-filter を解除する。
   backdrop-filter は containing block を作るため、全画面メニュー（position:fixed）が
   ヘッダーの中に閉じ込められてしまう。 */
html.has-modal-open .site-header,
body.has-modal-open .site-header {
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

/* ナビ（オーバーレイメニュー） */
.wp-block-navigation .wp-block-navigation-item__content { padding: 0.35em 0.2em; }
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--surface);
	padding: clamp(3rem, 8vw, 4.5rem) clamp(1.5rem, 6vw, 3rem);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	width: 100%;
	max-width: 480px;
	margin: 0 auto;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.1rem;
	font-size: 1.05rem;
	font-family: var(--wp--preset--font-family--heading);
	align-items: flex-start !important;
	justify-content: flex-start !important;
	text-align: left;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding: 0.2em 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	gap: 0.55rem;
	padding-left: 1rem;
	margin-top: 0.55rem;
	font-size: 0.92rem;
	align-items: flex-start !important;
	font-family: var(--wp--preset--font-family--body);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--contrast); }

/* -----------------------------------------------------------------------------
   ヒーロー
   ----------------------------------------------------------------------------- */
.boen-hero { min-height: min(86vh, 820px); }
.boen-hero .wp-block-cover__inner-container { width: 100%; }
.boen-hero h1 {
	font-size: var(--wp--preset--font-size--huge);
	line-height: 1.3;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}
.boen-hero .boen-hero__lead {
	font-size: var(--wp--preset--font-size--l);
	text-shadow: 0 1px 20px rgba(0, 0, 0, 0.35);
	max-width: 36em;
}
.boen-hero .boen-label { color: #e9d9b0 !important; }
/* 写真の明るい所（本堂の屋根）に見出しが重なっても読めるよう、文字のある左側を濃くする */
/* （濃さはここで決めるので、ブロックの「不透明度 60%」は打ち消す） */
.boen-hero .wp-block-cover__background.has-hero-overlay-gradient-background {
	opacity: 1 !important;
	background:
		linear-gradient(90deg, rgba(20, 32, 27, 0.5) 0%, rgba(20, 32, 27, 0.38) 40%, rgba(20, 32, 27, 0.08) 70%, rgba(20, 32, 27, 0) 100%),
		linear-gradient(180deg, rgba(20, 32, 27, 0) 50%, rgba(20, 32, 27, 0.3) 100%) !important;
}
/* スマホは写真の中央に文字が重なるので、全体を均一に濃くする */
@media (max-width: 781px) {
	.boen-hero .wp-block-cover__background.has-hero-overlay-gradient-background {
		background: linear-gradient(180deg, rgba(20, 32, 27, 0.4) 0%, rgba(20, 32, 27, 0.5) 100%) !important;
	}
}
/* ヒーローの文字が画面の端に寄りすぎないよう、内側に余白を持たせる */
.boen-hero .wp-block-cover__inner-container > .wp-block-group {
	padding-left: 1rem;
	padding-right: 1rem;
}
@media (min-width: 600px) {
	.boen-hero .wp-block-cover__inner-container > .wp-block-group {
		padding-left: 3rem;
		padding-right: 3rem;
	}
}
@media (min-width: 1000px) {
	.boen-hero .wp-block-cover__inner-container > .wp-block-group {
		padding-left: max(5rem, 7vw);
		padding-right: max(5rem, 7vw);
	}
}
.boen-hero .boen-badges { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.4rem; }
.boen-hero .boen-badges .wp-block-button__link,
.boen-badge {
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.45);
	color: #fff;
	font-size: var(--wp--preset--font-size--s);
	padding: 0.45rem 1rem;
	border-radius: 999px;
	backdrop-filter: blur(6px);
	font-weight: 500;
}
.boen-hero .boen-badges .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.28); }

/* 文字を読みやすくするため、写真と文字の間に左から黒のグラデーションを重ねる */
.boen-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	/* 右側の写真は暗くしない（画面の中ほどで消える） */
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.35) 30%, rgba(0, 0, 0, 0) 55%);
}
.boen-hero .wp-block-cover__inner-container { z-index: 2; }
/* 文字が横幅いっぱいに広がる幅では少し先まで伸ばすが、右端にはかけない */
@media (max-width: 1023px) {
	.boen-hero::before {
		background: linear-gradient(90deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.3) 45%, rgba(0, 0, 0, 0) 80%);
	}
}

/* ヒーロー下のクイック情報バー */
.boen-quickbar {
	transform: translateY(-50%);
	margin-bottom: -1.5rem !important;
	position: relative;
	z-index: 2;
}
.boen-quickbar > .wp-block-columns {
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius);
	box-shadow: var(--boen-shadow-lg);
	padding: 1.4rem 1.8rem;
	gap: 0;
}
.boen-quickbar .wp-block-column { padding: 0.4rem 1.2rem; border-left: 1px solid var(--wp--preset--color--line); }
.boen-quickbar .wp-block-column:first-child { border-left: 0; }
.boen-quickbar p { margin: 0; line-height: 1.6; }
.boen-quickbar .wp-block-column { text-align: center; }
/* iPad 縦では 4 列だと「早稲田駅 徒歩5分」が折り返すので 2×2 に */
@media (min-width: 782px) and (max-width: 1023px) {
	.boen-quickbar > .wp-block-columns { flex-wrap: wrap !important; }
	.boen-quickbar .wp-block-column { flex: 0 0 50% !important; box-sizing: border-box; padding: 0.8rem 1.2rem; }
	.boen-quickbar .wp-block-column:nth-child(odd) { border-left: 0; }
	.boen-quickbar .wp-block-column:nth-child(n+3) { border-top: 1px solid var(--wp--preset--color--line); }
}
.boen-quickbar .boen-quickbar__key {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.1em;
}
.boen-quickbar .boen-quickbar__val {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--l);
	font-weight: 600;
}
@media (max-width: 781px) {
	.boen-quickbar { transform: none; margin-top: 1rem !important; margin-bottom: 0 !important; }
	.boen-quickbar > .wp-block-columns { padding: 0.8rem 1rem; }
	.boen-quickbar .wp-block-column { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); }
	.boen-quickbar .wp-block-column:first-child { border-top: 0; }
	.boen-hero { min-height: 78vh; }
}

/* -----------------------------------------------------------------------------
   グループのスタイル（帯・カード）
   ----------------------------------------------------------------------------- */
.wp-block-group.is-style-band-tint { background: var(--wp--preset--color--tint); }
.wp-block-group.is-style-band-paper { background: var(--wp--preset--color--surface); }
.wp-block-group.is-style-band-dark {
	background: var(--wp--preset--gradient--primary-band);
	color: #fff;
}
.wp-block-group.is-style-band-dark :is(h1, h2, h3, h4, p, li, .is-style-label) { color: #fff; }
.wp-block-group.is-style-band-dark .is-style-label { color: var(--wp--preset--color--accent) !important; }
.wp-block-group.is-style-band-dark a:not(.wp-block-button__link) { color: #fff; }

.wp-block-group.is-style-card,
.wp-block-group.is-style-card-tint {
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius);
	box-shadow: var(--boen-shadow);
	padding: clamp(1.4rem, 3vw, 2.2rem);
	height: 100%;
	border: 1px solid rgba(226, 221, 211, 0.6);
	transition: transform 0.35s var(--boen-ease), box-shadow 0.35s;
}
.wp-block-group.is-style-card-tint { background: var(--wp--preset--color--tint); box-shadow: none; border-color: transparent; }
.wp-block-group.is-style-card:hover { transform: translateY(-3px); box-shadow: var(--boen-shadow-lg); }
.wp-block-group.is-style-card > :first-child,
.wp-block-group.is-style-card-tint > :first-child { margin-top: 0; }
.wp-block-group.is-style-card h3,
.wp-block-group.is-style-card-tint h3 { font-size: var(--wp--preset--font-size--l); margin-bottom: 0.4em; }

.wp-block-group.is-style-note {
	background: var(--wp--preset--color--accent-soft);
	border-left: 4px solid var(--wp--preset--color--accent);
	border-radius: var(--boen-radius-sm);
	padding: 1rem 1.4rem;
	font-size: var(--wp--preset--font-size--s);
}

/* カラム内のカードは高さを揃える */
.wp-block-columns.is-style-plan-grid { gap: 1.5rem; }
.wp-block-columns.is-style-plan-grid > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-columns.is-style-plan-grid > .wp-block-column > .wp-block-group { flex: 1; }

/* -----------------------------------------------------------------------------
   プランカード（画像 + 名称 + 価格 + ボタン）
   ----------------------------------------------------------------------------- */
.boen-plan {
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius);
	overflow: hidden;
	box-shadow: var(--boen-shadow);
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: transform 0.35s var(--boen-ease), box-shadow 0.35s;
}
.boen-plan:hover { transform: translateY(-4px); box-shadow: var(--boen-shadow-lg); }
.boen-plan > .wp-block-image { margin: 0; }
.boen-plan > .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.boen-plan .boen-plan__body { padding: 1.4rem 1.6rem 1.6rem; display: flex; flex-direction: column; flex: 1; gap: 0.5rem; }
.boen-plan .boen-plan__body > :last-child { margin-top: auto; }
.boen-plan h3 { margin: 0; font-size: var(--wp--preset--font-size--xl); }
.boen-plan .boen-price { margin: 0.2rem 0 0.4rem; }
.boen-plan .wp-block-buttons { margin-top: 0.8rem; }

/* 価格表示 */
.boen-price {
	font-family: var(--wp--preset--font-family--heading);
	color: var(--wp--preset--color--primary-dark);
	line-height: 1.2;
}
.boen-price strong,
.boen-price .boen-price__num { font-size: 1.75em; font-weight: 700; letter-spacing: 0.02em; color: var(--wp--preset--color--primary-dark); }
.boen-price .boen-price__unit,
.boen-price .boen-price__prefix { font-size: 0.85em; color: var(--wp--preset--color--muted); font-family: var(--wp--preset--font-family--body); }
.boen-price .boen-price__prefix { margin-right: 0.3em; }

/* -----------------------------------------------------------------------------
   ボタン
   ----------------------------------------------------------------------------- */
.wp-block-button.is-style-accent .wp-block-button__link {
	background: var(--wp--preset--color--accent);
	color: #fff;
}
.wp-block-button.is-style-accent .wp-block-button__link:hover { background: #a37f3c; }
.wp-block-button.is-style-outline-dark .wp-block-button__link {
	background: transparent;
	border: 1.5px solid rgba(255, 255, 255, 0.8);
	color: #fff;
}
.wp-block-button.is-style-outline-dark .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.14); }
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1.5px solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	background: transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--primary-dark); }
.wp-block-button__link { box-shadow: 0 8px 20px -10px rgba(46, 92, 78, 0.55); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button__link::after { content: ""; }
.wp-block-button.has-arrow .wp-block-button__link::after {
	content: "→";
	margin-left: 0.5em;
	display: inline-block;
	transition: transform 0.25s var(--boen-ease);
}
.wp-block-button.has-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }

/* -----------------------------------------------------------------------------
   リスト
   ----------------------------------------------------------------------------- */
ul.is-style-check { list-style: none; padding-left: 0; }
ul.is-style-check li {
	position: relative;
	padding-left: 1.9em;
	margin-bottom: 0.5em;
}
ul.is-style-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 1.2em;
	height: 1.2em;
	border-radius: 50%;
	background: var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 65% no-repeat;
}

ol.is-style-steps { list-style: none; padding-left: 0; counter-reset: boen-step; }
ol.is-style-steps li {
	counter-increment: boen-step;
	position: relative;
	padding: 1.2rem 1.2rem 1.2rem 4.2rem;
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius-sm);
	margin-bottom: 0.8rem;
	box-shadow: var(--boen-shadow);
}
ol.is-style-steps li::before {
	content: counter(boen-step, decimal-leading-zero);
	position: absolute;
	left: 1.2rem;
	top: 1.1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--wp--preset--color--accent);
	line-height: 1;
}
ol.is-style-steps li strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--l); margin-bottom: 0.2em; }

/* -----------------------------------------------------------------------------
   テーブル（料金表）
   ----------------------------------------------------------------------------- */
.wp-block-table.is-style-price table {
	border-collapse: separate;
	border-spacing: 0;
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius-sm);
	overflow: hidden;
	box-shadow: var(--boen-shadow);
	border: 0;
}
.wp-block-table.is-style-price th,
.wp-block-table.is-style-price td {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 0.9rem 1rem;
	vertical-align: middle;
}
.wp-block-table.is-style-price thead th {
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.08em;
}
.wp-block-table.is-style-price tbody th,
.wp-block-table.is-style-price tbody td:first-child { font-weight: 600; background: var(--wp--preset--color--base); white-space: nowrap; }
.wp-block-table.is-style-price tbody tr:last-child td,
.wp-block-table.is-style-price tbody tr:last-child th { border-bottom: 0; }
.wp-block-table.is-style-price .boen-soldout { color: var(--wp--preset--color--muted); }
.wp-block-table.is-style-price strong { color: var(--wp--preset--color--primary-dark); font-family: var(--wp--preset--font-family--heading); font-size: 1.15em; white-space: nowrap; }
/* 表の補足（列見出しの（ ）、区画の寸法など）。エディタの書式「補足（小さい文字）」で付ける */
.wp-block-table .boen-sub { font-size: 0.82em; font-weight: 400; }
.wp-block-table thead .boen-sub { font-size: 0.9em; letter-spacing: 0.02em; opacity: 0.85; }
.wp-block-table tbody .boen-sub { color: var(--wp--preset--color--muted); }
/* 金額の列は右揃え（表ブロックの列揃え）。数字の幅をそろえ、金額の途中では折り返さない */
.wp-block-table.is-style-price .has-text-align-right { font-variant-numeric: tabular-nums; word-break: keep-all; }
.wp-block-table figcaption { text-align: left; }

/* -----------------------------------------------------------------------------
   FAQ（details）
   ----------------------------------------------------------------------------- */
.wp-block-details.is-style-faq {
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius-sm);
	box-shadow: var(--boen-shadow);
	padding: 0;
	margin-bottom: 0.8rem;
	border: 1px solid rgba(226, 221, 211, 0.6);
}
.wp-block-details.is-style-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 1.1rem 3.2rem 1.1rem 3.4rem;
	position: relative;
	font-weight: 600;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--l);
	line-height: 1.5;
}
.wp-block-details.is-style-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq summary::before {
	content: "Q";
	position: absolute;
	left: 1.2rem;
	top: 1.05rem;
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.85rem;
	display: grid;
	place-items: center;
}
.wp-block-details.is-style-faq summary::after {
	content: "";
	position: absolute;
	right: 1.3rem;
	top: 50%;
	width: 0.6rem;
	height: 0.6rem;
	border-right: 2px solid var(--wp--preset--color--accent);
	border-bottom: 2px solid var(--wp--preset--color--accent);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.3s var(--boen-ease);
}
.wp-block-details.is-style-faq[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.wp-block-details.is-style-faq > :not(summary) {
	padding: 0 1.6rem 1.2rem 3.4rem;
	margin: 0;
	position: relative;
}
.wp-block-details.is-style-faq > :not(summary)::before {
	content: "A";
	position: absolute;
	left: 1.2rem;
	top: -0.05rem;
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-soft);
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 0.85rem;
	display: grid;
	place-items: center;
}
.wp-block-details.is-style-faq > :not(summary) ~ :not(summary)::before { display: none; }

/* -----------------------------------------------------------------------------
   画像
   ----------------------------------------------------------------------------- */
.wp-block-image.is-style-rounded-lg img { border-radius: var(--boen-radius); }
.wp-block-image img { border-radius: var(--boen-radius-sm); }
.wp-block-cover img { border-radius: 0; }
.wp-block-media-text .wp-block-media-text__media img { border-radius: var(--boen-radius); }
.wp-block-gallery .wp-block-image img { border-radius: var(--boen-radius-sm); }

/* 建墓参考図（線画）: 白背景・切り抜かずに収める */
.wp-block-gallery.boen-drawings .wp-block-image { background: var(--wp--preset--color--surface); border-radius: var(--boen-radius-sm); box-shadow: var(--boen-shadow); padding: 0.8rem; }
/* flex: 0 0 auto … 遅延読み込みの画像（sizes="auto"）にはブラウザが contain: size を付けるため、
   ギャラリー既定の flex-basis: 0 のままだと高さが 0 になって画像が消える */
.wp-block-gallery.boen-drawings.is-cropped figure.wp-block-image:not(#individual-image) img { object-fit: contain; aspect-ratio: 3 / 4; height: auto; flex: 0 0 auto; background: #fff; }
.wp-block-gallery.boen-drawings.has-nested-images figure.wp-block-image:not(#individual-image) figcaption {
	position: static;
	background: none;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-align: center;
	padding: 0.5rem 0 0;
}

/* -----------------------------------------------------------------------------
   お知らせ（Query Loop）
   ----------------------------------------------------------------------------- */
.boen-news .wp-block-post {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 0.9rem 0;
}
.boen-news .wp-block-post:first-child { border-top: 1px solid var(--wp--preset--color--line); }
.boen-news .wp-block-post-date {
	font-family: var(--wp--preset--font-family--heading);
	color: var(--wp--preset--color--accent);
	letter-spacing: 0.06em;
	min-width: 7.5em;
}
.boen-news .wp-block-post-title { font-size: var(--wp--preset--font-size--m); font-family: var(--wp--preset--font-family--body); font-weight: 500; }
.boen-news .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.boen-news .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }

/* -----------------------------------------------------------------------------
   サイト情報ブロック
   ----------------------------------------------------------------------------- */
.boen-info { display: inline-block; }
.boen-info__label {
	display: inline-block;
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	margin-right: 0.8em;
	letter-spacing: 0.08em;
}
.boen-info--phone { text-decoration: none; display: inline-flex; align-items: center; gap: 0.3em; }
.boen-info--map { display: block; width: 100%; }
.boen-info--map iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	min-height: 320px;
	border: 0;
	border-radius: var(--boen-radius);
	display: block;
	box-shadow: var(--boen-shadow);
}

/* フリーダイヤルカード */
.boen-info--freedial {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.15rem;
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius);
	padding: 1.4rem 1.2rem;
	box-shadow: var(--boen-shadow);
	color: var(--wp--preset--color--contrast);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.boen-freedial__label { font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--muted); letter-spacing: 0.06em; }
.boen-freedial__link {
	text-decoration: none;
	color: var(--wp--preset--color--primary-dark);
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.3rem, 3.2vw, 2.4rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	line-height: 1.2;
}
.boen-freedial__link .boen-icon { font-size: 0.8em; color: var(--wp--preset--color--accent); }
.boen-freedial__hours { font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--muted); }
.wp-block-group.is-style-band-dark .boen-info--freedial { color: var(--wp--preset--color--contrast); }
.wp-block-group.is-style-band-dark .boen-info--freedial a.boen-freedial__link { color: var(--wp--preset--color--primary-dark); }
.wp-block-group.is-style-band-dark .boen-info--freedial .boen-freedial__label,
.wp-block-group.is-style-band-dark .boen-info--freedial .boen-freedial__hours { color: var(--wp--preset--color--muted); }

/* -----------------------------------------------------------------------------
   パンくず
   ----------------------------------------------------------------------------- */
.boen-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2em 0.6em; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }
.boen-breadcrumbs li + li::before { content: "›"; margin-right: 0.6em; opacity: 0.6; }
.boen-breadcrumbs a { color: var(--wp--preset--color--muted); text-decoration: none; }
.boen-breadcrumbs a:hover { color: var(--wp--preset--color--primary); }

/* ページタイトル帯 */
.boen-page-hero {
	background: var(--wp--preset--color--tint);
	position: relative;
	overflow: hidden;
}
.boen-page-hero::after {
	content: "";
	position: absolute;
	right: -8%;
	top: -40%;
	width: 42vw;
	height: 42vw;
	max-width: 520px;
	max-height: 520px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(184, 146, 74, 0.16), rgba(184, 146, 74, 0) 70%);
	pointer-events: none;
}
.boen-page-hero .wp-block-post-title { font-size: var(--wp--preset--font-size--xxl); line-height: 1.35; }

/* -----------------------------------------------------------------------------
   CTA 帯・フッター・スマホ固定ボタン
   ----------------------------------------------------------------------------- */
.boen-cta-band .boen-cta-band__inner { max-width: 1000px; margin: 0 auto; }
.boen-cta-band h2 { font-size: var(--wp--preset--font-size--xl); }

.site-footer { border-top: 1px solid var(--wp--preset--color--line); }
.site-footer .wp-block-navigation { gap: 0.6rem 1.6rem; }
.site-footer .wp-block-navigation .wp-block-navigation-item__content { padding: 0.15em 0; font-size: var(--wp--preset--font-size--s); }
.site-footer .footer-copy { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }

.mobile-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	display: none;
	transform: translateY(110%);
	transition: transform 0.35s var(--boen-ease);
	padding: 0.6rem 0.6rem calc(0.6rem + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-top: 1px solid var(--wp--preset--color--line);
	box-shadow: 0 -10px 30px -18px rgba(30, 42, 37, 0.35);
}
.mobile-cta.is-visible { transform: translateY(0); }
.mobile-cta .wp-block-buttons { gap: 0.5rem; flex-wrap: nowrap; }
.mobile-cta .wp-block-button { flex: 1; }
.mobile-cta .wp-block-button__link { width: 100%; padding: 0.85rem 0.5rem; font-size: var(--wp--preset--font-size--s); white-space: nowrap; }
@media (max-width: 781px) {
	.mobile-cta { display: block; }
	body { padding-bottom: 4.5rem; }
}

/* -----------------------------------------------------------------------------
   Contact Form 7
   ----------------------------------------------------------------------------- */
.wpcf7 { max-width: 760px; margin: 0 auto; }
.wpcf7 .cf7-section {
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius);
	box-shadow: var(--boen-shadow);
	padding: 1.4rem 1.6rem;
	margin-bottom: 1.2rem;
}
.wpcf7 .cf7-field { margin-bottom: 1.1rem; }
.wpcf7 .cf7-field:last-child { margin-bottom: 0; }
.wpcf7 .cf7-field > label,
.wpcf7 .cf7-label,
.wpcf7 .cf7-sublabel { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--s); margin-bottom: 0.35rem; }
.wpcf7 .cf7-field--required > label::after,
.wpcf7 .cf7-field--required .cf7-sublabel::after,
.wpcf7 .cf7-field.is-required .cf7-label::after,
.wpcf7 .cf7-section--kibou .cf7-label::after {
	content: "必須";
	display: inline-block;
	margin-left: 0.6em;
	font-size: 0.7rem;
	color: #fff;
	background: #b5443d;
	border-radius: 4px;
	padding: 0.1em 0.5em;
	vertical-align: middle;
	font-weight: 600;
}
/* CF7 の入力欄は label の中にあるため、ラッパーをブロックにしないと
   ラベル文字の分だけ横にはみ出す */
.wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
.wpcf7 input,
.wpcf7 select,
.wpcf7 textarea,
.wpcf7 .wpcf7-form-control-wrap { box-sizing: border-box; max-width: 100%; }
.wpcf7 .cf7-field > label { width: 100%; }
.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	padding: 0.8rem 1rem;
	background: var(--wp--preset--color--base);
	font: inherit;
	font-size: 16px;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus { outline: none; border-color: var(--wp--preset--color--primary); box-shadow: 0 0 0 3px rgba(46, 92, 78, 0.15); background: #fff; }
.wpcf7 .cf7-datetime-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
@media (max-width: 480px) {
	.wpcf7 .cf7-datetime-row { grid-template-columns: 1fr; }
}
.wpcf7 .wpcf7-list-item { display: inline-flex; align-items: center; margin: 0.25rem 1rem 0.25rem 0; }
.wpcf7 .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 0.4em; cursor: pointer; }
.wpcf7 .wpcf7-list-item input { width: 1.15em; height: 1.15em; accent-color: var(--wp--preset--color--primary); }
.wpcf7 .cf7-hint { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); margin: 0.4rem 0 0; line-height: 1.6; }
.wpcf7 .cf7-actions { text-align: center; margin-top: 1.5rem; }
.wpcf7 .wpcf7-submit {
	background: var(--wp--preset--color--accent);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 1rem 3.2rem;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	cursor: pointer;
	box-shadow: 0 10px 24px -10px rgba(184, 146, 74, 0.6);
	transition: transform 0.2s, background 0.2s;
}
.wpcf7 .wpcf7-submit:hover { background: #a37f3c; transform: translateY(-1px); }
.wpcf7 .wpcf7-not-valid-tip { color: #b5443d; font-size: var(--wp--preset--font-size--xs); margin-top: 0.3rem; }
.wpcf7 .wpcf7-response-output { border-radius: 10px; padding: 1rem 1.2rem; margin: 1.5rem 0 0; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--wp--preset--color--primary); background: var(--wp--preset--color--tint); }
.wpcf7 .wpcf7-spinner { display: block; margin: 0.6rem auto 0; }

/* -----------------------------------------------------------------------------
   アニメーション
   ----------------------------------------------------------------------------- */
.boen-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.7s var(--boen-ease), transform 0.7s var(--boen-ease); }
.boen-reveal.is-inview { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.boen-reveal { opacity: 1; transform: none; transition: none; }
	html { scroll-behavior: auto; }
}

/* エディタ内ではアニメーション無効・固定ボタン非表示 */
.editor-styles-wrapper .boen-reveal { opacity: 1; transform: none; }
.editor-styles-wrapper .mobile-cta { position: static; transform: none; display: block; }
.editor-styles-wrapper .boen-quickbar { transform: none; margin-bottom: 0 !important; }
.editor-styles-wrapper .site-header { position: static; }

/* -----------------------------------------------------------------------------
   404 / 検索
   ----------------------------------------------------------------------------- */
.wp-block-search__button { border-radius: 999px; }
.wp-block-search__input { border-radius: 999px; padding-left: 1rem; }

/* -----------------------------------------------------------------------------
   相場比較カード（.boen-compare）
   グループに boen-compare、中の段落に各クラスを付けて使う
   ----------------------------------------------------------------------------- */
.boen-compare {
	background: var(--wp--preset--color--surface);
	border-radius: var(--boen-radius);
	box-shadow: var(--boen-shadow);
	padding: 1.6rem 1.4rem 1.8rem;
	height: 100%;
	text-align: center;
	border: 1px solid rgba(226, 221, 211, 0.6);
	position: relative;
	overflow: hidden;
}
.boen-compare > * { margin-block: 0; }
.boen-compare h3 {
	font-size: var(--wp--preset--font-size--l);
	margin-bottom: 1rem !important;
	padding-bottom: 0.8rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.boen-compare__label {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.06em;
	margin-bottom: 0.15rem !important;
}
.boen-compare__market {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	line-height: 1.2;
	margin-bottom: 0.9rem !important;
}
.boen-compare__arrow {
	color: var(--wp--preset--color--accent);
	font-size: 1.2rem;
	line-height: 1;
	margin-bottom: 0.6rem !important;
}
.boen-compare__ours {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(2rem, 5vw, 2.6rem);
	font-weight: 700;
	color: var(--wp--preset--color--primary-dark);
	line-height: 1.15;
	letter-spacing: 0.01em;
	margin-bottom: 0.2rem !important;
}
.boen-compare__ours small { font-size: 0.45em; font-family: var(--wp--preset--font-family--body); font-weight: 500; }
.boen-compare__note {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.9rem !important;
}
.boen-compare__badge {
	display: inline-block;
	background: var(--wp--preset--color--accent-soft);
	color: #8a6a2c;
	font-size: var(--wp--preset--font-size--s);
	font-weight: 700;
	border-radius: 999px;
	padding: 0.35em 1.1em;
	letter-spacing: 0.02em;
}

/* 料金表: 1200px 以下では列幅を中身に合わせる（等幅の列だと 1 列目の区画の寸法が収まらない） */
@media (max-width: 1200px) {
	.wp-block-table.is-style-price table,
	.wp-block-table.is-style-price table.has-fixed-layout { table-layout: auto; }
}

/* 料金表: 狭い画面では横スクロール（列が潰れて重なるのを防ぐ） */
.wp-block-table.is-style-price { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 900px) {
	.wp-block-table.is-style-price table,
	.wp-block-table.is-style-price table.has-fixed-layout {
		table-layout: auto;
		width: max-content;
		min-width: 100%;
	}
	.wp-block-table.is-style-price th,
	.wp-block-table.is-style-price td {
		max-width: 13em;
		padding: 0.8rem 0.9rem;
	}
	.wp-block-table.is-style-price figcaption { max-width: 100vw; }
}

.wp-block-table.is-style-price.is-scrollable::before {
	content: "横にスクロールできます →";
	display: block;
	position: sticky;
	left: 0;
	width: 100%;
	max-width: 100vw;
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	text-align: right;
	margin-bottom: 0.35rem;
}

/* -----------------------------------------------------------------------------
   ルート要素（ヘッダー／メイン／CTA帯／フッター）の間に
   ブロック間ギャップが入らないようにする
   ----------------------------------------------------------------------------- */
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }

/* 本文最初のブロックが全幅の帯・カバーのとき、上に隙間を作らない */
.entry-content > .alignfull:first-child,
.entry-content > .wp-block-cover:first-child { margin-block-start: 0; }
.wp-block-cover.boen-hero { padding-top: 0; padding-bottom: 0; }

/* -----------------------------------------------------------------------------
   トップページの相場比較の帯（深緑背景）
   ----------------------------------------------------------------------------- */
.boen-price-band h2 strong {
	color: var(--wp--preset--color--accent);
	font-weight: 700;
	font-size: 1.15em;
}
.wp-block-group.boen-price-band .boen-price-band__lead {
	max-width: 42em;
	margin-inline: auto;
	color: rgba(255, 255, 255, 0.88);
}
.boen-price-band .boen-price-band__lead strong {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15em;
	white-space: nowrap;
}
.wp-block-group.boen-price-band .boen-price-band__reason {
	font-size: var(--wp--preset--font-size--s);
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.9;
}
.boen-price-band .boen-price-band__reason strong {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	color: #fff;
	margin-bottom: 0.3em;
	position: relative;
	padding-top: 2.2rem;
}
.boen-price-band .boen-price-band__reason strong::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 62% no-repeat;
}
.wp-block-group.boen-price-band .boen-price-band__note {
	font-size: var(--wp--preset--font-size--xs);
	color: rgba(255, 255, 255, 0.6);
	max-width: 44em;
	margin-inline: auto;
	margin-top: var(--wp--preset--spacing--40);
}

/* 深緑の帯の中でも比較カードは白地のまま読ませる
   （帯の「中の文字を白にする」ルールより詳細度を高くしておく） */
.wp-block-group.is-style-band-dark .boen-compare :is(h3, h4, p, li) { color: var(--wp--preset--color--contrast); }
.wp-block-group.is-style-band-dark .boen-compare .boen-compare__label,
.wp-block-group.is-style-band-dark .boen-compare .boen-compare__note,
.wp-block-group.is-style-band-dark .boen-compare .boen-compare__market { color: var(--wp--preset--color--muted); }
.wp-block-group.is-style-band-dark .boen-compare .boen-compare__ours { color: var(--wp--preset--color--primary-dark); }
.wp-block-group.is-style-band-dark .boen-compare .boen-compare__arrow { color: var(--wp--preset--color--accent); }
.wp-block-group.is-style-band-dark .boen-compare .boen-compare__badge { color: #8a6a2c; }

/* -----------------------------------------------------------------------------
   読みやすさの調整（老眼の方を前提に、文字の周りにゆとりを持たせる）
   ----------------------------------------------------------------------------- */
.boen-label,
.is-style-label { margin-bottom: 0.6rem !important; }

.wp-block-group.is-style-card,
.wp-block-group.is-style-card-tint { padding: clamp(1.6rem, 3.5vw, 2.5rem); }
.wp-block-group.is-style-note { padding: 1.2rem 1.6rem; }
.wp-block-columns.is-style-plan-grid { gap: clamp(1.5rem, 3vw, 2.25rem); }
.boen-plan .boen-plan__body { padding: 1.7rem 1.9rem 2rem; gap: 0.7rem; }

ul.is-style-check li { margin-bottom: 0.75em; }
ul.is-style-check li::before { top: 0.4em; }
ol.is-style-steps li { padding: 1.5rem 1.6rem 1.5rem 4.8rem; margin-bottom: 1rem; }
ol.is-style-steps li::before { left: 1.5rem; top: 1.45rem; font-size: 1.55rem; }

.wp-block-details.is-style-faq { margin-bottom: 1rem; }
.wp-block-details.is-style-faq summary { padding: 1.35rem 3.4rem 1.35rem 3.8rem; }
.wp-block-details.is-style-faq summary::before { top: 1.35rem; width: 1.9rem; height: 1.9rem; font-size: 1rem; }
.wp-block-details.is-style-faq > :not(summary) { padding: 0 1.8rem 1.5rem 3.8rem; }
.wp-block-details.is-style-faq > :not(summary)::before { width: 1.9rem; height: 1.9rem; font-size: 1rem; }

.wp-block-table.is-style-price th,
.wp-block-table.is-style-price td { padding: 1rem 1.2rem; }
.wp-block-table figcaption { margin-top: 0.8rem; line-height: 1.8; }

.boen-news .wp-block-post { padding: 1.2rem 0; }
.site-footer .wp-block-navigation { gap: 0.8rem 1.8rem; }

/* 深緑の帯の注記は薄すぎると読めないので、白の濃さを上げる */
.wp-block-group.boen-price-band .boen-price-band__note { color: rgba(255, 255, 255, 0.8); }

/* 全画面メニューは指で押しやすい大きさに */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.4rem; font-size: 1.3rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { gap: 0.8rem; font-size: 1.05rem; }

/* ヘッダーのナビは文字を大きくすると1行に収まらないため、ここだけ個別に指定する */
.site-header .wp-block-navigation { font-size: 0.95rem; }

/* お問い合わせフォーム */
.wpcf7 .cf7-section { padding: 1.8rem 2rem; margin-bottom: 1.5rem; }
.wpcf7 .cf7-field { margin-bottom: 1.4rem; }
.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea { font-size: 1.0625rem; padding: 0.9rem 1.1rem; }
.wpcf7 .cf7-field--required > label::after,
.wpcf7 .cf7-field--required .cf7-sublabel::after,
.wpcf7 .cf7-field.is-required .cf7-label::after,
.wpcf7 .cf7-section--kibou .cf7-label::after { font-size: 0.8rem; }
@media (max-width: 600px) {
	.wpcf7 .cf7-section { padding: 1.4rem 1.2rem; }
}

/* -----------------------------------------------------------------------------
   タブレット（iPad 縦〜横 ほぼ 782〜1100px）のレイアウト
   コアは 782px 以上で列を横並びにするため、iPad 縦では 4 列・3 列が窮屈になる。
   ----------------------------------------------------------------------------- */
/* 4 列のカード（トップの「選ばれる4つの理由」など）は PC でも 2×2 に（1 枚が狭いと文字が詰まるため） */
@media (min-width: 782px) {
	.wp-block-columns.is-style-plan-grid:has(> .wp-block-column:nth-child(4)) { flex-wrap: wrap !important; }
	.wp-block-columns.is-style-plan-grid:has(> .wp-block-column:nth-child(4)) > .wp-block-column {
		flex: 0 0 calc(50% - clamp(1.5rem, 3vw, 2.25rem) / 2) !important;
	}
}
/* 3 列のカード（比較カード以外）は 1 列に */
@media (min-width: 782px) and (max-width: 1023px) {
	.wp-block-columns.is-style-plan-grid:not(:has(> .wp-block-column:nth-child(4))):not(:has(.boen-compare)) { flex-wrap: wrap !important; }
	.wp-block-columns.is-style-plan-grid:not(:has(> .wp-block-column:nth-child(4))):not(:has(.boen-compare)) > .wp-block-column { flex: 0 0 100% !important; }
}
/* プランカードは縦に積むと写真が大きくなりすぎるので、写真を左に置く */
@media (min-width: 600px) and (max-width: 1023px) {
	.boen-plan { flex-direction: row; }
	.boen-plan > .wp-block-image { flex: 0 0 42%; position: relative; min-height: 16rem; }
	.boen-plan > .wp-block-image img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; border-radius: 0; }
}
/* 写真（または地図）と説明が並ぶ 2 列は、iPad 縦では左右が窮屈でバランスが悪いので
   1 列にし、写真・地図を説明の下へ（カードの列 is-style-plan-grid は対象外） */
@media (min-width: 782px) and (max-width: 1024px) {
	.wp-block-columns:not(.is-style-plan-grid):has(> .wp-block-column:nth-child(2):last-child):has(.wp-block-image, .boen-info--map) {
		flex-wrap: wrap !important;
		row-gap: var(--wp--preset--spacing--40);
	}
	.wp-block-columns:not(.is-style-plan-grid):has(> .wp-block-column:nth-child(2):last-child):has(.wp-block-image, .boen-info--map) > .wp-block-column {
		flex: 0 0 100% !important;
	}
	.wp-block-columns:not(.is-style-plan-grid):has(> .wp-block-column:nth-child(2):last-child):has(.wp-block-image, .boen-info--map) > .wp-block-column:has(.wp-block-image, .boen-info--map) {
		order: 2;
	}
	/* 縦長の画像（キャンペーンのバナーなど）は全幅にすると画面を占領するので、高さを抑えて中央に置く */
	.wp-block-columns:not(.is-style-plan-grid):has(> .wp-block-column:nth-child(2):last-child):has(.wp-block-image, .boen-info--map) .wp-block-image img {
		display: block;
		width: auto;
		max-width: 100%;
		max-height: 42rem;
		margin-inline: auto;
	}
	/* リンク付き画像は a がインラインのままだと中央に寄らない */
	.wp-block-columns:not(.is-style-plan-grid):has(> .wp-block-column:nth-child(2):last-child):has(.wp-block-image, .boen-info--map) .wp-block-image > a {
		display: block;
	}
}
/* 地図と説明の 2 列（トップのアクセス）は PC でも 1 列にし、地図を説明の下へ */
.wp-block-columns:has(.boen-info--map) { flex-wrap: wrap !important; row-gap: var(--wp--preset--spacing--40); }
.wp-block-columns:has(.boen-info--map) > .wp-block-column { flex: 0 0 100% !important; }
.wp-block-columns:has(.boen-info--map) > .wp-block-column:has(.boen-info--map) { order: 2; }

/* PhotoSwipe（画像の拡大表示）のキャプション。
   図版の出典は figcaption に書いてあるので、拡大表示でも読めるようにする */
.pswp__boen-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10;
	box-sizing: border-box;
	padding: 1rem max(1rem, 4vw) calc(1rem + env(safe-area-inset-bottom));
	background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0));
	color: #fff;
	font-size: var(--wp--preset--font-size--xs, 0.8rem);
	line-height: 1.7;
	text-align: center;
	pointer-events: none;
}
.pswp__boen-caption:empty,
.pswp__boen-caption[hidden] { display: none; }
.pswp__boen-caption a { color: #fff; pointer-events: auto; }

/* 図版のマウスオーバー切り替え（明治東京全図 → 宝祥寺の位置入り）。
   2枚を同じマスに重ね、カーソルが乗っている間だけ上の1枚を出す。
   どちらも通常の画像ブロックなので、拡大表示では別々のスライドとして送れる */
.boen-hover-swap { display: grid; }
/* ブロック間ギャップが 2 枚目に付くと上下にずれるので、グループ側より強く打ち消す */
.wp-block-group.boen-hover-swap > *,
.wp-block-group.boen-hover-swap > * + * {
	grid-area: 1 / 1;
	margin-block: 0;
}
.boen-hover-swap .boen-hover-swap__alt {
	opacity: 0;
	transition: opacity 0.25s ease;
	/* 見えていない側をタップすると拡大表示の行き先がずれるので、当たり判定も消す */
	pointer-events: none;
}
/* マウスのある環境だけ、カーソルを重ねている間だけ切り替える */
@media (hover: hover) {
	.boen-hover-swap:hover .boen-hover-swap__alt,
	.boen-hover-swap:focus-within .boen-hover-swap__alt {
		opacity: 1;
		pointer-events: auto;
	}
}
/* タッチ環境はボタンで切り替える */
.boen-hover-swap.is-marked .boen-hover-swap__alt {
	opacity: 1;
	pointer-events: auto;
}
/* 切り替えボタンは地図の右下に重ねる。グループの高さにはキャプションも
   含まれてしまうので、画像と同じ縦横比の透明な枠を画像にぴったり重ね、
   その右下にボタンを置いている（縦横比は HTML 側の --boen-swap-ratio で指定） */
.wp-block-group.boen-hover-swap > .boen-hover-swap__control {
	display: none;
	grid-area: 1 / 1;
	align-self: start;
	aspect-ratio: var(--boen-swap-ratio, 3 / 2);
	margin-block: 0;
	padding: 0.9rem;
	align-items: flex-end;
	justify-content: flex-end;
	/* 枠自体は地図のタップを邪魔しない */
	pointer-events: none;
}
/* hover できない＝スマホ・タブレットのときだけボタンを出す */
@media (hover: none) {
	.wp-block-group.boen-hover-swap > .boen-hover-swap__control { display: flex; }
}
.boen-hover-swap__toggle {
	pointer-events: auto;
	appearance: none;
	cursor: pointer;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1;
	padding: 0.9em 1.5em;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	/* 地図の上に載るので下地を敷いて読ませる */
	background: rgba(255, 255, 255, 0.93);
	color: var(--wp--preset--color--primary);
	box-shadow: 0 2px 10px rgba(30, 42, 37, 0.18);
}
.boen-hover-swap__toggle[aria-pressed="true"] {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
}
/* エディタでは重なっていると編集できないので、普通に縦へ並べる */
.editor-styles-wrapper .boen-hover-swap { display: block; }
.editor-styles-wrapper .wp-block-group.boen-hover-swap > *,
.editor-styles-wrapper .wp-block-group.boen-hover-swap > * + * { grid-area: auto; }
.editor-styles-wrapper .boen-hover-swap .boen-hover-swap__alt { opacity: 1; pointer-events: auto; }
.editor-styles-wrapper .wp-block-group.boen-hover-swap > .boen-hover-swap__control { display: block; aspect-ratio: auto; padding: 0; }

/* 価格帯の3つ目だけ歴史ページへのボタンを添えている。
   左右2つと重さを揃えたいので、ボタンは小さめに */
.boen-price-band__more .wp-block-button__link {
	font-size: var(--wp--preset--font-size--xs);
	padding-block: 0.65em;
	padding-inline: 1.5em;
}
