/* LP（特集ページ）と個別ページ。コンテンツは core ブロックで、レイアウトのみ is-template-N で切り替える。
   構造: .lp-area > 見出し（任意）＋ .lp-sections.is-template-N（1つ以上）＋ 予約ボタン（任意）。
   レイアウト（テンプレート）はエリアではなく各 .lp-sections グループの is-template-N で切り替える。 */

/* カテゴリーエリアは中身（先頭の h2.alignfull）が区切り罫線＋上余白を担うため、
   コンテナ側で余白・擬似要素を持たせない。 */

/* 本文 post-content の上下余白。テンプレート側でインライン margin-top を持たせず、ここで一元管理。
   restaurant の intro-lead と同様、post-content 自身の margin-top で h1 との間隔を作る。 */
.single-main > .wp-block-post-content {
	margin-top: var(--wp--preset--spacing--section, 56px);
	padding-bottom: 56px;
}
/* 先頭が lp-area（lp-intro 無し）の場合は post-content の上余白を持たない。
   先頭 lp-area の h2.alignfull が自前で margin-top を持つため二重取りを防ぐ。 */
.single-main > .wp-block-post-content:has(> .lp-area:first-child) {
	margin-top: 0;
}
.single-main:has(.related-plans, .related-content) > .wp-block-post-content {
	padding-bottom: 0;
}
/* 予約 CTA バーが本文の最後にある場合は、その下に余白を作らない（CTA を本文末尾に密着させる）。
   CTA 自身の上余白（前のコンテンツとの間隔）は .restaurant-reserve-cta の margin-top で持たせる。 */
.single-main > .wp-block-post-content:has(> .restaurant-reserve-cta:last-child) {
	padding-bottom: 0;
}
/* 予約 CTA（sticky 帯・is-static の通常フロー版とも）は、前のコンテンツとの間に section 余白を取る。
   post-content の blockGap（> * + * の 10px、詳細度 0,1,0）に勝つよう、クラス 2 つ（0,2,0）＋
   同プロパティ margin-block-start で上書きする。sticky 版（画面下固定）でもフロー上の上余白として効く。 */
.single-main .restaurant-reserve-cta,
.restaurant-reserve-cta.is-static {
	margin-block-start: var(--wp--preset--spacing--section, 56px);
}
/* post-content の blockGap（コンテナの `> * + *` が付ける margin-block-start:10px）は lp-area には
   効かせない。エリアの上余白は「先頭＝padding-top」「連続＝見出し h2 の mt＋pt」で一元管理するため、
   blockGap 由来の 10px が二重に乗らないよう打ち消す（詳細度 0,3,0 で container の 0,1,0 に勝つ）。 */
.single-main > .wp-block-post-content > .lp-area {
	margin-block-start: 0;
}
@media (max-width: 700px) {
	.single-main > .wp-block-post-content { margin-top: 40px; padding-bottom: 40px; }
}
/* エリア間の区切り罫線は、見出し h2 自身の上罫線（::before）で描く（通常ページの h2.alignfull と
   同方式）。alignfull かどうか・LP テンプレ（.lp-main）か固定ページ（.single-main の page-diamondclub
   等）かに関わらず、前にエリアが続くエリアの見出しなら区切る。先頭エリアは前にエリアが無いので線なし。
   h2 はブロックの heading フィールド由来（.lp-area 直下）と InnerBlocks 由来（.acf-innerblocks-container
   配下）の 2 形態がある。色は地の明暗に追従（--lp-on-bg：暗い地＝白／明るい地＝アクセント／無地＝薄グレー）。 */
.single-main .lp-area + .lp-area > h2.wp-block-heading:first-child,
.single-main .lp-area + .lp-area > .acf-innerblocks-container > h2.wp-block-heading:first-child {
	position: relative; /* ::before の罫線の基準。alignfull でない h2 にも自前で付ける */
	margin-top: 56px;  /* 罫線の上側の余白 */
	padding-top: 56px; /* 罫線の下側の余白 */
}
/* 区切り罫線は画面いっぱい(100vw)に伸ばす（コンテンツ幅で切らない）。 */
.single-main .lp-area + .lp-area > h2.wp-block-heading:first-child::before,
.single-main .lp-area + .lp-area > .acf-innerblocks-container > h2.wp-block-heading:first-child::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	border-top: 1px solid color-mix(in srgb, var(--lp-on-bg, #000) 22%, transparent);
}

/* エリア本文。レイアウト箱 .lp-sections.is-template-N はエリア render が出し（編集する
   InnerBlocks の外側）、その中に投稿側のセクション・h3 が並ぶ。フロントの見た目は従来どおり
   .lp-sections.is-template-N に乗るため、既存のレイアウト CSS（親・子テーマとも）がそのまま効く。 */
.lp-area__body {
	margin-block-start: clamp(2rem, 4vw, 2.75rem);
}
/* ACF の InnerBlocks ラッパー（.acf-innerblocks-container）はレイアウト透過にし、内側の
   セクション・h3 を .lp-sections の直接の flex 子として扱わせる。<InnerBlocks /> 採用で
   フロント／エディターとも内側がこの div に包まれるため、display:contents で参加させる。
   .lp-main 以外（レストラン単体ページ等で lp-area を使う場合）でも効かせる。 */
.lp-sections > .acf-innerblocks-container,
.lp-main .acf-innerblocks-container {
	display: contents;
}
/* InnerBlocks（本文）の先頭要素の上余白・末尾要素の下余白は消す。display:contents でも効く。 */
.lp-main .acf-innerblocks-container > :first-child {
	margin-top: 0;
}
.lp-main .acf-innerblocks-container > :last-child {
	margin-bottom: 0;
}
/* 子カテゴリ見出し（メニュー等・セクションと同列に並ぶ h3）。中央寄せ＋短い罫線。
   .lp-sections の InnerBlocks ラッパー直下の h3 のみ対象（セクション内の見出しは拾わない）。
   flex の .lp-sections 内では独立行にする（全幅）。 */
.lp-main .lp-sections > .acf-innerblocks-container > h3.wp-block-heading {
	flex: 0 0 100%;
	text-align: center;
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	letter-spacing: 0.08em;
	padding-bottom: 16px;
	margin: 0;
	position: relative;
}
.lp-main .lp-sections > .acf-innerblocks-container > h3.wp-block-heading::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 32px;
	height: 1px;
	transform: translateX(-50%);
	background: color-mix(in srgb, var(--lp-on-bg, var(--lp-accent, #b89766)) 60%, transparent);
}
/* lp-sections（カードの flex）直下に来る「裸の」ボタン列（子カテゴリの「詳細はこちら」等）は、
   カード（lp-section）と同じ列に並べず全幅・中央寄せにする（h3 見出しと同じ扱い）。これが無いと
   flex 子として 1 カラム扱いになり、ボタンが右や左に寄って見える。 */
.lp-main .lp-sections > .acf-innerblocks-container > .wp-block-buttons {
	flex: 0 0 100%;
	justify-content: center;
}

/* エディター限定: プラン参照セクションはサーバー描画のプランカード（リンク）をプレビュー表示する。
   そのリンクがクリックを奪うとセクションを選択できず、直後へのブロック追加もしづらい。エディター
   キャンバス（.editor-styles-wrapper）でのみカード内リンクのポインターイベントを無効化し、クリックで
   ブロック選択できるようにする。フロントには .editor-styles-wrapper が無いのでリンクは通常どおり動く。 */
.editor-styles-wrapper .lp-section--plan a {
	pointer-events: none;
}

/* セクションは縦積み（画像 → タイトル/サブ → 本文）。画像を先頭に置く。
   template_3（左右ペア）だけ画像と __text を横並びにする。 */
.lp-section {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 2.6vw, 24px);
}
.lp-section__text {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 2vw, 18px);
}
.lp-section__head {
	text-align: center;
}
/* メディア（画像・スライダー）の上下マージンは持たせない。画像→__text の間隔は .lp-section の
   gap が担うため、WP コア既定の図版下マージン（1em）と二重にしない。 */
.lp-section > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider, .wp-block-embed) {
	margin-block: 0;
}

/* テンプレート（並べ方）はエリア render が出す .lp-sections.is-template-N で切り替える。
   .lp-sections の直接の子は ACF の InnerBlocks ラッパー（display:contents）で、その中の
   セクション・h3 が flex 子として並ぶ。セクションを指すルールは子孫結合子で書く（直接子結合子は
   InnerBlocks ラッパーに阻まれるため使わない）。 */
/* template_1：lp-section を flex で 2 カラムに並べるカード（左で 1 セクション・右で 1 セクション）。
   各カードは「中央タイトル → 画像 → 文章 → ボタン」の縦積み。
   grid だとセクションが 1 つのとき左に寄ってしまうため flex＋justify-content:center を使い、
   1 つだけのときはそのカードが中央に置かれるようにする。カードには max-width を設定。 */
.lp-sections.is-template-1 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
}
.lp-sections.is-template-1 .lp-section {
	/* grow:0 にして余ったカード（奇数余りや単独）が他より広く伸びないようにする。
	   全カードを同じ基準幅で揃え、justify-content:center で中央寄せ（列エッジが縦に揃う）。
	   ≤781px は @media で flex-basis:100% に上書きして 1 列化する。 */
	flex: 0 1 calc(50% - clamp(1.5rem, 4vw, 3rem));
	max-width: 520px;
}
/* カード内：画像／スライダーはカード幅いっぱいで中央揃え。 */
.lp-sections.is-template-1 .lp-section > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider, .wp-block-embed) {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* template_2：2 列のカード。template_1 と同じく flex＋justify-content:center で並べ、
   余り（奇数）や単独のカードは中央寄せにする（grid だと左に寄るため）。 */
.lp-sections.is-template-2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
}
.lp-sections.is-template-2 .lp-section {
	flex: 0 1 calc(50% - clamp(1.5rem, 4vw, 3rem));
	max-width: 520px;
}
.lp-sections.is-template-2 .lp-section > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider, .wp-block-embed) {
	margin: 0;
}

/* template_1 / 2 共通：カード本文テキストは左寄せ（読みやすさ優先）。見出しは中央。 */
.lp-sections:is(.is-template-1, .is-template-2) .lp-section__body {
	text-align: left;
}
/* ボタンの左右中央寄せは CSS 上書きではなく core のレイアウト（is-content-justification-center）で
   行う。buttons_block・content_to_blocks・lp-area__booking はいずれも中央クラスを付与している。 */

/* template_3：画像＋テキストの左右ペア。セクション自身を横並びにし、画像と __text を左右に置く。
   セクションごとに左右交互。 */
.lp-sections.is-template-3 {
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 5vw, 4.5rem);
}
.lp-sections.is-template-3 .lp-section--media {
	flex-direction: row;
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
}
.lp-sections.is-template-3 .lp-section--media > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider, .wp-block-embed) {
	flex: 0 0 48%;
	margin: 0;
}
.lp-sections.is-template-3 .lp-section--media .lp-section__text {
	flex: 1 1 0;
}
/* 奇数セクションは画像を右へ（左右交互）。 */
.lp-sections.is-template-3 .lp-section--media:nth-child(odd) {
	flex-direction: row-reverse;
}

/* template_4：テキスト主体。原稿どおり地に直接置き、淡色カード（背景・角丸・内側余白）は
   付けない。幅は 2 カラムカードの 1 列ぶん（min(520px, エリア幅/2 - 列gap)）に揃えて中央寄せ
   （カード・keyvalue 表と同じ幅にする）。狭幅(≤781)は 1 列化カードと同じ 480px。 */
.lp-sections.is-template-4 {
	/* flex 縦積みにしてセクション間に gap（.lp-main .lp-area .lp-sections の gap）を効かせる。
	   block のままだと gap が効かず、ランチ/ディナー等の連続セクションがくっつく。 */
	display: flex;
	flex-direction: column;
	width: min(520px, calc(min(1256px, 100vw - 64px) / 2 - clamp(1.5rem, 4vw, 3rem)));
	max-width: none;
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 781px) {
	.lp-sections.is-template-4 {
		width: 100%;
		max-width: 480px;
	}
}
.lp-sections.is-template-4 .lp-section {
	background: none;
	border-radius: 0;
	padding: 0;
}

/* セクション単位レイアウト（lp-section の cols フィールド＝旧 template_type）。
   エリアの is-template-N より優先して、このセクションだけ列構成を変える。 */
/* cols=4：2 カラム帯の中でもこのセクションだけ 1 カラム（1 行を占有）。中身はカード 1 列ぶんの
   幅で「中央寄せ」にする（左に寄せない＝見た目上きわめて重要）。幅は固定 520px ではなく 2 カラム
   カードと同じ「50%−gap（上限 520px）」の式にして、中間幅でもカード列とぴったり揃える。 */
.lp-sections .lp-section.lp-section--cols-4 {
	flex: 0 0 100%;
	max-width: none;
}
.lp-sections .lp-section.lp-section--cols-4 > .lp-section__text {
	width: 100%;
	max-width: min(520px, calc(min(1256px, 100vw - 64px) / 2 - clamp(1.5rem, 4vw, 3rem)));
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 781px) {
	.lp-sections .lp-section.lp-section--cols-4 > .lp-section__text {
		max-width: 480px;
	}
}

.lp-section .wp-block-image img {
	width: 100%;
	height: auto;
}
/* 狭幅：カードは 1 列、左右ペアも縦積みに。画像が広がりすぎないよう上限。 */
@media (max-width: 781px) {
	.lp-sections:is(.is-template-1, .is-template-2) .lp-section {
		flex-basis: 100%;
		max-width: 480px;
	}
	/* 1 列化した template-2 の画像は中央寄せ（通常時の margin:0 を打ち消す）。 */
	.lp-sections.is-template-2 .lp-section > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider, .wp-block-embed) {
		margin-left: auto;
		margin-right: auto;
	}
	/* template-3 も狭幅は縦積み（画像 → テキスト）にして、template-1/2 と同じカード見た目に
	   揃える（カード幅 max 480px・中央寄せ）。エリア幅いっぱいに広がって他テンプレと幅が
	   食い違うのを防ぐ。 */
	.lp-sections.is-template-3 {
		align-items: center;
	}
	.lp-sections.is-template-3 .lp-section--media,
	.lp-sections.is-template-3 .lp-section--media:nth-child(odd) {
		flex-direction: column;
		/* 横並び用の align-items:center を解除。縦積みで center のままだと子（テキスト）が
		   コンテンツ幅に縮み、文量によってカードごとに幅が変わってしまう。 */
		align-items: stretch;
		gap: 18px;
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
	}
	/* 縦積み時は画像の row 用 flex-basis（0 0 48%）を解除し、カード幅に収める。
	   解除しないと flex-basis:48% 由来で figure がカード幅をはみ出す。 */
	.lp-sections.is-template-3 .lp-section--media > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider, .wp-block-embed) {
		flex: 0 0 auto;
		width: 100%;
	}
	.lp-section > :is(.wp-block-image, .gallery-slider-wrap, .wp-block-gallery.is-style-hilton-slider) {
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* セクション内フォトスライダー（gallery が複数枚のとき）はコアブロック core/gallery の
   ブロックスタイル「.is-style-hilton-slider」で表現する（スタイルは gallery-slider.css）。 */

/* KV（hilton/key-visual）。main の先頭に置き、100vw ブレイクアウト＋背景ぼかし。 */
.single-main > .hilton-kv {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-bottom: 56px;
}
/* KV が無い（key_visual 未設定）詳細・施設ページでは、KV が無いぶんタイトルがスティッキー
   ヘッダーに密着してしまうため、先頭に来る sec-head（h1）へ上余白を与える。KV がある場合は
   KV が先頭になりこの :first-child は当たらない。title-area パーツ経由（.title-area-wrap=
   display:contents で sec-head を内包）の場合も先頭判定できるよう両系統を対象にする。 */
.single-main:not(.page-main) > .sec-head:first-child,
.single-main:not(.page-main) > .title-area-wrap:first-child > .sec-head {
	margin-top: clamp(32px, 5vw, 56px);
}
@media (max-width: 700px) {
	.single-main:not(.page-main) > .sec-head:first-child,
	.single-main:not(.page-main) > .title-area-wrap:first-child > .sec-head { margin-top: 32px; }
}
@media (max-width: 700px) {
	.single-main > .hilton-kv { margin-bottom: 40px; }
}
.hilton-kv {
	position: relative;
	overflow: hidden;
	background: #000;
	touch-action: pan-y;
}
.hilton-kv .kv-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: blur(24px);
	transform: scale(1.1);
	z-index: 0;
}
.hilton-kv .kv-main {
	position: relative;
	z-index: 1;
	max-width: 1320px;
	margin: 0 auto;
}
.hilton-kv .kv-main figure {
	margin: 0;
}
/* メイン画像は cover で切り抜かず contain で全体表示。 */
.hilton-kv .kv-main img,
.hilton-kv .kv-main picture,
.hilton-kv .kv-main picture img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}
.hilton-kv .kv-slides {
	position: relative;
}
.hilton-kv .kv-slide {
	margin: 0;
}

/* 複数枚はフェード切替。先頭スライドが高さを決め、以降は重ねて透過で待機。 */
.hilton-kv--slideshow .kv-slide {
	opacity: 0;
	transition: opacity 1.2s ease;
}
.hilton-kv--slideshow .kv-slide.is-active {
	opacity: 1;
}
.hilton-kv--slideshow .kv-slide:not(:first-child) {
	position: absolute;
	inset: 0;
}

/* レストラン KV は cover で全幅の帯。背景ぼかしは不要なので非表示。 */
.hilton-kv--cover .kv-bg {
	display: none;
}
.hilton-kv--cover .kv-main {
	max-width: none;
}
.hilton-kv--cover .kv-slides {
	height: clamp(320px, 42vw, 560px);
}
.hilton-kv--cover .kv-slide {
	position: absolute;
	inset: 0;
}
.hilton-kv--cover .kv-main img,
.hilton-kv--cover .kv-main picture,
.hilton-kv--cover .kv-main picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* スライド位置のドット（現在表示中を強調・クリックで切替）。 */
.hilton-kv .kv-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 18px;
	z-index: 2;
	display: flex;
	justify-content: center;
	gap: 8px;
}
.hilton-kv .kv-dot {
	width: 28px;
	height: 2px;
	padding: 0;
	border: 0;
	background: rgba(255, 255, 255, 0.4);
	cursor: pointer;
	transition: background 0.3s ease;
}
.hilton-kv .kv-dot.is-active {
	background: #fff;
}

/* === ACF LP ブロック（acf/lp-area, lp-section, lp-slider, lp-nav） === */

/* カテゴリ見出し下のリード文（本文幅・中央寄せ）。 */
.lp-area__lead {
	/* 幅はカード／keyvalue 表と同じ（min(520px, エリア幅/2 - 列gap)）に揃えて中央寄せ。 */
	width: min(520px, calc(min(1256px, 100vw - 64px) / 2 - clamp(1.5rem, 4vw, 3rem)));
	max-width: none;
	margin: 0 auto clamp(16px, 2.4vw, 24px);
	font-family: var(--wp--custom--brand-body);
	line-height: 1.85;
}
@media (max-width: 781px) {
	.lp-area__lead {
		width: 100%;
		max-width: 480px;
	}
}
/* エリアのリードは補足情報が多いため控えめ色で見せる（本文より一段弱める）。サイズは本文と同じ
   （リードなので小さくしない）。.lp-main .lp-area :is(p)（色）に勝つ詳細度で指定。 */
.lp-main .lp-area .lp-area__lead {
	color: var(--lp-text-muted, var(--warm-grey, #6e6e6e));
}
/* ※ で始まるリードは ※ をぶら下げて、折り返した本文が ※ の右に揃う注記体裁にする。 */
.lp-main .lp-area .lp-area__lead--note {
	text-align: left;
	padding-left: 1.5em;
	text-indent: -1.5em;
}

/* カテゴリ予約ボタン（エリアの先頭/末尾）。 */
.lp-area__booking {
	justify-content: center;
	margin: clamp(20px, 3vw, 32px) 0;
}

/* セクションのサブ見出し（見出し直下の小さめキャッチ）。 */
.lp-section__subtitle {
	margin: 0 0 8px;
	font-family: var(--wp--custom--brand-body);
	font-size: 13px;
	line-height: 1.7;
	color: var(--warm-grey, #6e6e6e);
}

/* === LP スライダー（KV 直下の賑やかし・全幅マーキー） ===
   画面いっぱい（100vw）に画像を等速で途切れなく左へ流す。
   画像セットを2連結し、半分ぶん（=1セット）移動して先頭へ戻すことでシームレスにループ。
   PC は4枚相当（各 25vw）、SP（≤768px）は2枚相当（各 50vw）。操作不可・自動再生のみ。 */
/* margin は post-content の blockGap（子への margin-block-start 注入）より詳細度を上げて
   勝たせるため、.lp-main スコープで指定する。 */
.lp-main .lp-slider {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: var(--wp--preset--spacing--section, 56px);
	margin-bottom: var(--wp--preset--spacing--section, 56px);
	overflow: hidden;
}
.lp-slider {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	overflow: hidden;
}
.lp-slider__track {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	width: max-content;
	/* 2セット分の総移動距離を一定速度で。1スライド=25vw、速度はおよそ 5vw/秒。
	   duration は枚数（--lp-slider-count）に比例させ、枚数が増えても流速を一定に保つ。 */
	animation: lp-slider-marquee calc(var(--lp-slider-count, 5) * 5s) linear infinite;
}
.lp-slider__slide {
	/* マーキー（自動スクロール帯）は高さで揃える。幅は画像の比率ぶん（auto）にして
	   トリミングせず縦横とも画像全体を表示する。 */
	flex: 0 0 auto;
	margin: 0;
	height: clamp(150px, 17vw, 240px);
}
.lp-slider__slide img {
	width: auto;
	height: 100%;
	display: block;
}
/* 1セット（全体の半分）ぶん左へ移動して先頭に戻る。 */
@keyframes lp-slider-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
/* SP でも高さ基準（clamp の下限 150px）で全体表示。幅は画像比率ぶん（auto）のまま。
   duration は PC と同じ「枚数×5s」を維持する（SP で縮めると速く感じるため上書きしない）。 */
/* 視覚効果の抑制を希望するユーザーには流れを止める。 */
@media (prefers-reduced-motion: reduce) {
	.lp-slider__track { animation: none; }
}

/* 目次からのジャンプ先（id 付き見出し）が、スティッキーヘッダー（.site-header 約75px）の
   下に隠れないよう、スクロール停止位置を上にずらす。スマホはヘッダーが低い（約53px）ため縮める。 */
.lp-main :is(h2, h3)[id] {
	scroll-margin-top: 92px;
}
@media (max-width: 700px) {
	.lp-main :is(h2, h3)[id] {
		scroll-margin-top: 68px;
	}
}

/* === LP カテゴリ目次（自動生成アンカーナビ acf/lp-nav） ===
   ページ内リンクの「帯（バンド）」型。全幅のアクセント色帯に白文字リンクを横並びし、各項目を
   左右の区切り線で仕切る。ホバーは薄い背景でハイライト。
   スマホは縦 1 列（区切り線は上罫線へ切替）。目次は lp-nav.js が本文の lp-sechead／h2 から生成。 */
.lp-main .lp-nav,
nav.lp-nav {
	margin: 56px 0 0;
	/* ビューポート全幅の帯。背景は LP のアクセント色、文字は白。 */
	width: 100vw;
	max-width: 100vw;
	/* 親幅・padding に依存しないフルブリード。constrained レイアウトの親（main 直下に置く
	   access/single 等）は直下子へ margin-inline:auto を当てるため、!important で打ち消して
	   コンテンツ box 基準の負マージンを効かせる。calc(50% - 50vw) は親 padding（--gutter）の
	   大小に関係なく帯の左右端をビューポート端へ合わせる。 */
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding: 0;
	border: 0;
	background: var(--lp-accent, var(--aureate, #b89766));
	display: flex;
	align-items: stretch;
	/* ページ内ナビ帯はヘッダー直下に sticky（スクロール追従）。位置は JS が実測する
	   --header-h（実際のヘッダー高）に貼り付ける。未測定時はロゴ高ベースの概算をフォールバック。 */
	position: sticky;
	top: var(--header-h, calc(var(--wp--custom--logo-header, 32px) + var(--wp--custom--header-pad-y, 16px) * 2));
	z-index: 29;
}
.lp-nav::before {
	content: none; /* 帯デザインでは INDEX ラベルは出さない。 */
}
/* 内側コンテナ。帯の地色／背景画像・高さなど固有部分だけ各ページ（子テーマCSS）側で持つ。 */
.lp-nav__list {
	max-width: 1256px;
	width: 100%;
	margin: 0 auto;
	padding-block: 9px;
	padding-inline: 16px;
	box-sizing: border-box;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 14px 0;
}
.lp-nav__item {
	margin: 0;
	display: flex;
	align-items: stretch;
	justify-content: center;
	border-left: 1px solid rgba(255, 255, 255, 0.5);
}
.lp-nav__item:last-child {
	border-right: 1px solid rgba(255, 255, 255, 0.5);
}
.lp-nav__item a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6px 16px;
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	color: #fff;
	background: none;
	border: 0;
	text-decoration: none;
	transition: background-color 0.2s;
}
.lp-nav__item a:hover {
	background: rgba(255, 255, 255, 0.15);
	text-decoration: none;
}
/* 子項目（h3）はやや小さく、先頭にダッシュで従属を示す。 */
.lp-nav__item--h3 a {
	font-size: 12px;
	font-weight: 500;
}
.lp-nav__item--h3 a::before {
	content: "–";
	margin-right: 6px;
	opacity: 0.7;
}
/* 開閉トグル（SP/タブレットのみ表示。PC は常時展開のため非表示）。ラベル＋シェブロン。 */
.lp-nav__toggle {
	display: none;
	width: 100%;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 16px;
	background: none;
	border: 0;
	color: #fff;
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	cursor: pointer;
}
.lp-nav__toggle::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s;
}
.lp-nav.is-open .lp-nav__toggle::after {
	transform: translateY(2px) rotate(-135deg);
}
/* タブレット／スマホ（〜1024px）：縦 1 列＋折りたたみ。区切り線は上罫線へ切替。リンクは全幅。 */
@media (max-width: 1024px) {
	.lp-main .lp-nav,
	nav.lp-nav {
		min-height: 0;
		flex-direction: column; /* トグルバーの下にリストを積む。 */
	}
	.lp-nav__list {
		flex-direction: column;
		padding: 0;
		gap: 0; /* 上罫線で仕切るため項目間の隙間は作らない（折返し行用の row-gap を解除）。 */
	}
	.lp-nav__item {
		width: 100%;
		border-left: 0;
		border-right: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.5);
	}
	.lp-nav__item:first-child {
		border-top: 0;
	}
	.lp-nav__item:last-child {
		border-right: 0;
	}
	.lp-nav__item a {
		width: 100%;
		padding: 14px 18px;
	}
	/* 2行ラベル（目次ラベルの改行）はスマホでは1行に畳む（縦1列で十分なため）。 */
	.lp-nav__item a br {
		display: none;
	}
	/* 折りたたみは JS が .is-collapsible を付与したときだけ有効。無 JS では従来どおり常時表示。 */
	.lp-nav.is-collapsible .lp-nav__toggle {
		display: flex;
	}
	.lp-nav.is-collapsible .lp-nav__list {
		display: none;
	}
	.lp-nav.is-collapsible.is-open .lp-nav__list {
		display: flex;
		border-top: 1px solid rgba(255, 255, 255, 0.5); /* トグルバーと展開リストの境界。 */
	}
}
@media (max-width: 768px) {
	.lp-nav--hide-sp {
		display: none;
	}
	.lp-nav--hide-child-sp .lp-nav__item--h3 {
		display: none;
	}
}
/* SP（〜700px）はヘッダーの上下 padding が 8px に縮みヘッダーが低くなるため、帯の sticky 位置も
   ヘッダー高（logo-header + 16px。base.css の scroll-padding-top と同値）に合わせる。これがないと
   貼り付き時にヘッダーと帯の間に隙間ができる。 */
@media (max-width: 700px) {
	.lp-main .lp-nav,
	nav.lp-nav {
		top: var(--header-h, calc(var(--wp--custom--logo-header, 32px) + 16px));
	}
}

/* === LP テンプレート（lp.html）専用：地色に直接載せる（白カードなし） ===
   --lp-accent（color）と --lp-accent-bg（color_bg）、地の明暗から決めた --lp-text /
   --lp-on-bg は wp_head が .lp-main に注入する（inc/lp-blocks.php）。
   ・main 全体＝地色（color_bg）。白カードは使わない。
   ・本文文字＝--lp-text（明るい地は濃文字／暗い地は白）。
   ・見出し・罫線・目次＝--lp-on-bg（明るい地はアクセント色／暗い地は白）。
   ・ボタン＝アクセント色背景。
   色未設定の LP は既定（白地・濃文字・ブランド色）にフォールバックする。 */
.lp-main {
	background: var(--lp-accent-bg, #fff);
	color: var(--lp-text, var(--wp--preset--color--text, #111));
}
/* 本文テキスト（段落・リスト・テーブル等）は --lp-text を継承。 */
.lp-main .lp-area :is(p, li, td, th, dd, dt, figcaption),
.lp-main .lp-notes :is(p, li, td, th, dd, dt),
.lp-main .lp-intro p {
	color: var(--lp-text, var(--wp--preset--color--text, #111));
}
/* keyvalue（仕様表）の見出し列（td:first-child）は既定 --aureate 固定だが、暗い地に LP の
   アクセント色を注入すると見出し列が地と同系色になり文字が埋もれる（人数/料金等が読めない）。
   見出し・罫線と同じ --lp-on-bg（暗い地=白／明るい地=アクセント）に追従させて常に可読にする。 */
.lp-main .wp-block-table.is-style-hilton-keyvalue td:first-child {
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
}
/* リード文の先頭行が太字だった場合のタイトル（キャッチ）。本文より大きく太い見出し体裁にし、
   続く本文段落と区切る。色はリード本文と同じ（--lp-text）を継承する。 */
.lp-main .lp-intro__title {
	font-family: var(--serif, var(--wp--custom--brand-heading));
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 clamp(12px, 1.6vw, 20px);
}
/* 従属テキスト（サブ見出し・キャプション・※注記）は控えめ文字色（--lp-text-muted）。
   本文より一段弱めて主従の階層を付ける。色未設定 LP は既定のグレーにフォールバック。 */
.lp-main .lp-section__subtitle,
.lp-main figcaption,
.lp-main .lp-area li.is-style-note,
.lp-main .lp-notes li.is-style-note {
	color: var(--lp-text-muted, var(--warm-grey, #6e6e6e));
}
/* 本文リンクは見出し（hX）と同じ色（--lp-on-bg：明るい地=アクセント／暗い地=白）にし、
   下線で「リンク」と分かるようにする。ボタン・カード全体リンク（.plan-card）は除く
   （カードは全体がリンクのため文章全体に下線が付くのを防ぐ）。地に対して常に十分なコントラスト。 */
.lp-main .lp-area a:not(.wp-block-button__link):not(.plan-card),
.lp-main .lp-notes a:not(.wp-block-button__link):not(.plan-card),
.lp-main .lp-intro a:not(.wp-block-button__link):not(.plan-card) {
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	text-decoration: underline;
	text-underline-offset: 0.18em;
}
/* カード全体リンク（.plan-card）は下線を付けない（既定の a 下線も含めて打ち消す）。 */
.lp-main .plan-card {
	text-decoration: none;
}
/* LP 内のプラン参照カードはカード自身に背景を持たず地に直接乗るため、テキスト・枠線の色を
   地の明暗（--lp-on-bg／--lp-text）に追従させる。既定の濃色テキストやアクセント色のままだと、
   アクセントと同系の地（暗い地など）でタイトル・本文・枠線が埋もれて見えなくなる。 */
.lp-main .plan-card .plan-card__title {
	color: var(--lp-on-bg, var(--lp-accent, var(--text, #000)));
}
.lp-main .plan-card .body p {
	color: var(--lp-text, #333);
}
.lp-main .plan-card .tag {
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	background: color-mix(in srgb, var(--lp-on-bg, var(--lp-accent, #b89766)) 10%, transparent);
	border-color: color-mix(in srgb, var(--lp-on-bg, var(--lp-accent, #b89766)) 28%, transparent);
}
/* 詳細ボタン（is-style-outline）の枠線・文字も地に映える色（--lp-on-bg）で描く。
   ホバー時はカード全体ホバー（plans.css）でアクセント反転する。 */
.lp-main .plan-card .plan-detail-btn .wp-block-button__link {
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	border-color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
}
/* notes（ご利用にあたって等）は地に直接。h2 を持たないので、エリア間と同じ区切り罫線を上に引いて
   前のエリアと同じ見た目に揃える。上下にゆったり余白を取る。 */
/* margin は margin-block-start＋詳細度高め（.wp-block-group.lp-notes）で指定する。margin-top や
   低詳細度だと、エディターの blockGap 注入（.block-editor-block-list__layout.is-root-container > *
   { margin-block-start:10px }、詳細度 0,2,0）に同点後勝ちされ、エディターだけ 10px に潰れるため。 */
.lp-main .wp-block-group.lp-notes {
	margin-block-start: 56px; /* 罫線の上側の余白（前エリアは pb を持たない） */
}
.lp-main .lp-notes {
	position: relative;
	padding-top: 56px; /* 罫線の下側の余白 */
	padding-bottom: 0; /* 下余白は持たず、フッター間隔は post-content の pb に一元化 */
}
/* 区切り罫線は画面いっぱい(100vw)に（エリア間と同じ）。 */
.lp-main .lp-notes::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	border-top: 1px solid color-mix(in srgb, var(--lp-on-bg, #000) 22%, transparent);
}
/* notes 内の見出しも中央寄せ＋短い罫線で統一（注意事項なので少し控えめ）。 */
.lp-main .lp-notes h3.wp-block-heading {
	text-align: center;
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	letter-spacing: 0.08em;
	margin-top: 0; /* 最初の h3 は notes の上 padding と二重にならないよう mt を持たせない */
	padding-bottom: 14px;
	margin-bottom: clamp(20px, 3vw, 30px);
	position: relative;
}
.lp-main .lp-notes h3.wp-block-heading::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 28px;
	height: 1px;
	transform: translateX(-50%);
	background: color-mix(in srgb, var(--lp-on-bg, var(--lp-accent, #b89766)) 60%, transparent);
}
/* notes の本文（注意事項の複数行・リスト）はテキストを左揃えにし、中央寄せの見出しの下で
   共通の左端に揃える。ブロックごとに fit-content で中央寄せすると、長短の注記がそれぞれ別の
   位置で中央に寄ってバラバラに見えるため、列幅いっぱい（constrained の中央列）に左揃えする。 */
.lp-main .lp-notes p,
.lp-main .lp-notes ul.wp-block-list {
	width: auto;
	margin-left: 0;
	margin-right: 0;
	text-align: left;
}
/* 2 つ目以降の見出し（ご予約・お問い合わせ）は前のブロックから少し離す。 */
.lp-main .lp-notes h3.wp-block-heading:not(:first-child) {
	margin-top: clamp(28px, 4vw, 44px);
}
/* ボタンは原則アクセント色（--lp-btn-bg＝通常は --lp-accent）。アクセントが地に埋もれる LP では
   PHP が地に映える配色（暗い地=白ボタン×地色文字 等）へ --lp-btn-bg/fg を切り替える。
   未設定 LP はアクセント→ブランド色にフォールバック。 */
.lp-main .wp-block-button__link {
	background-color: var(--lp-btn-bg, var(--lp-accent, var(--wp--preset--color--brand-primary, #bc9b6a)));
	color: var(--lp-btn-fg, #fff);
}
.lp-main .wp-block-button__link:hover {
	background-color: color-mix(in srgb, var(--lp-btn-bg, var(--lp-accent, var(--wp--preset--color--brand-primary, #bc9b6a))) 85%, #000);
}

/* LP レベルの予約 CTA はレストラン詳細と同じ .restaurant-reserve-cta を流用する
   （inc/lp-blocks.php の the_content で render_reserve_cta を呼ぶ）。CSS は restaurants.css に集約。 */
/* 予約 CTA の上余白（前のコンテンツとの間隔）。post-content の blockGap 注入
   （.wp-container-…> * + * { margin-block-start:10px }）と同詳細度で負けるため、
   .lp-main スコープ（詳細度を1つ上げる）で margin-block-start を上書きして勝たせる。 */
.lp-main .restaurant-reserve-cta {
	margin-block-start: var(--wp--preset--spacing--section, 56px);
}

/* H1（投稿タイトル）：地に直接。中央揃え・地の上での表示色（--lp-on-bg）。 */
.lp-main .sec-head h1.wp-block-post-title {
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	text-align: center;
}
/* タイトル直下のサブタイトル（lead_text）＋開催期間（period_text）。中央寄せ。
   lead_text／period_text 内の改行は render フィルタ（nl2br）が <br> に変換して描画するため、
   white-space:pre-line は不要（残すと nl2br の改行と二重になる）。 */
.lp-main .sec-head .lead {
	text-align: center;
	font-size: clamp(16px, 1.8vw, 19px);
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
}

/* === LP 見出しの体裁（dessert-bar 風：中央寄せ＋下に短い罫線＋ゆったり余白） === */
/* h2（カテゴリ見出し・acf/lp-area が出力）。エリア間の区切り罫線が区切りを担うため、
   見出し自体は下線を持たず中央寄せ・アクセント色のみとする（下線は h3 側に一本化）。 */
/* .lp-main（LP テンプレ）に限らず、固定ページ等で lp-area を使う場合も中央寄せにする。
   色のフォールバックは --lp-on-bg → --lp-accent → --aureate（テーマのブランド色）。 */
.lp-area > h2.wp-block-heading {
	text-align: center;
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	letter-spacing: 0.1em;
	margin-top: 0;
	margin-bottom: clamp(22px, 3.5vw, 36px);
	padding: 0;
}
/* エリア見出し h2 の上罫線（blocks.css の h2.alignfull::before）はデフォルトで抑制する。
   先頭エリアの見出しに区切り線が出ないようにするため。連続エリア（.lp-area + .lp-area）の
   見出しだけ、上の規則で罫線＋上下余白を復活させる。
   blocks.css の :is(…,.single-main…) h2.alignfull::before（詳細度 0,3,2）に勝つよう
   .single-main を冠して詳細度を上げる（single-main 配下の lp-area で罫線が残るのを防ぐ）。 */
.single-main .lp-area > h2.wp-block-heading::before,
.lp-area > h2.wp-block-heading::before {
	content: none;
	border-top: 0;
}
/* セクション見出し（h3）。画像の下に置き、中央寄せ・アクセント色。下線は付けない
   （タイトルのみのセクションもあり、罫線が不要なため）。head→body の間隔は __text の gap が担う。 */
.lp-main .lp-section h3.wp-block-heading {
	text-align: center;
	color: var(--lp-on-bg, var(--lp-accent, var(--aureate, #b89766)));
	letter-spacing: 0.08em;
	margin-top: 0;
	margin-bottom: 0;
}
/* サブ見出し・本文も中央寄せでゆったり見せる。タイトル併存時は少し離す。 */
.lp-main .lp-section__subtitle {
	text-align: center;
	margin-top: 6px;
}
/* LP 内に埋め込まれたプラン参照カード（.lp-section--plan > .plan-card）は、共有コンポーネントの
   既定（小さめ・左寄せ）のままだと同ページの他セクション見出し（h3 中央・19px）と不揃いになる。
   LP 文脈に限り、カードのタイトルを他セクション見出しと同じ体裁（中央・同サイズ）に、本文も
   セクション本文と同じサイズ（15px）に揃える。共有コンポーネント自体（一覧等）には影響させない。 */
.lp-main .lp-section--plan .plan-card .plan-card__title {
	text-align: center;
	font-size: clamp(17px, 1.6vw, 19px);
	line-height: 1.5;
}
.lp-main .lp-section--plan .plan-card .body,
.lp-main .lp-section--plan .plan-card .body p {
	font-size: 15px;
}
/* カード内の縦リズムを隣接する通常セクションに合わせる（2 段階）。
   ・カード外側（画像→本文）＝テンプレ1セクション（.lp-section）と同じ clamp(16px,2.6vw,24px)。
   ・本文内（タイトル→タグ→本文→ボタン）＝.lp-section__text と同じ clamp(12px,2vw,18px)。
   プランカードだけ別リズムだと「ここだけ違う」状態になるため、隣のセクションの実測値に揃える。 */
.lp-main .lp-section--plan .plan-card {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 2.6vw, 24px);
}
.lp-main .lp-section--plan .plan-card > * {
	margin-top: 0;
	margin-bottom: 0;
}
.lp-main .lp-section--plan .plan-card .body {
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 2vw, 18px);
	padding-top: 0;
	margin-top: 0;
	margin-bottom: 0;
}
.lp-main .lp-section--plan .plan-card .body > * {
	margin-top: 0;
	margin-bottom: 0;
}
/* タグ（カテゴリチップ）と本文の間は詰める。flex gap の標準間隔だとタグが本文から離れすぎて
   見えるため、タグ直後だけ負マージンで間隔を 4px 程度に寄せる。 */
.lp-main .lp-section--plan .plan-card .body .tags {
	margin-bottom: calc(4px - clamp(12px, 2vw, 18px));
}
/* カテゴリ内のセクション間隔を広げてリズムを作る。 */
.lp-main .lp-area .lp-sections {
	gap: clamp(2.5rem, 6vw, 5rem);
}
/* lp-area 自体は縦余白を持たない（通常ページと同じく、見出し h2.alignfull が全ての縦余白を持つ）。
   末尾エリアの下に余分な余白を出さず、フッターとの間隔は post-content の pb に一元化する。 */
.lp-area {
	padding-top: 0;
	padding-bottom: 0;
}
/* 先頭エリア（前にエリアが無い＝区切り線なし）の見出しは上余白を 56px に固定する。
   alignfull の h2 は blocks.css が margin-top:56＋padding-top:56 を与え 112px になってしまうため、
   margin-top を 0 にして padding-top:56 のみにする。alignfull でない h2 は blocks.css の余白が
   付かないので、padding-top:56 を明示して同じ上余白（ナビ／イントロとの間隔＝56px）にする。
   連続エリアの見出し（.lp-area + .lp-area）は上の区切り規則が mt56＋pt56＋罫線を持つので対象外。 */
.single-main > .wp-block-post-content > .lp-area:first-child > h2.wp-block-heading:first-child,
.single-main > .wp-block-post-content > .lp-area:first-child > .acf-innerblocks-container > h2.wp-block-heading:first-child,
.lp-nav + .lp-area > h2.wp-block-heading:first-child,
.lp-nav + .lp-area > .acf-innerblocks-container > h2.wp-block-heading:first-child,
.lp-intro + .lp-area > h2.wp-block-heading:first-child,
.lp-intro + .lp-area > .acf-innerblocks-container > h2.wp-block-heading:first-child {
	margin-top: 0;
	padding-top: 56px;
}

/* lp-area 内で画像だけを並べた list（旧本文の <ul><li><img></li></ul>）は、箇条書きにせず
   画像グリッド（PC2列・SP1列）で見せる。ダイヤモンドクラブ利用例等の並び画像に適用。 */
.lp-main .lp-area ul:has(> li > img:only-child) {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.lp-main .lp-area ul:has(> li > img:only-child) > li { margin: 0; }
.lp-main .lp-area ul:has(> li > img:only-child) > li > img { width: 100%; height: auto; display: block; }
@media (max-width: 600px) {
	.lp-main .lp-area ul:has(> li > img:only-child) { grid-template-columns: 1fr; max-width: 470px; margin-inline: auto; }
}

/* lp-area 内の料金表（diamondclub 利用例等。is-style-hilton-keyvalue 流用）は、
   品目=左(通常テキスト)・料金=右寄せの価格表として見せる。先頭列の200px見出し風は使わない。
   ※ 料金表だけを対象にする：合計/小見出しの結合セル（td:only-child）を持つ表に限定。
   結合セルを持たない通常のキーバリュー表（入会案内の入会金/年会費… 等。長文の値が入る）は
   既定の is-style-hilton-keyvalue（ラベル列＋折り返す値列）のままにし、nowrap で溢れさせない。 */
/* 通常のキーバリュー表（料金表でない＝結合セル無し）は通常幅(760)で。長い値は折り返す（既定）。 */
.lp-main .lp-area .wp-block-table.is-style-hilton-keyvalue:not(:has(td:only-child)) {
	max-width: var(--wp--style--global--content-size, 760px);
}
.lp-main .lp-area .wp-block-table.is-style-hilton-keyvalue:has(td:only-child) { max-width: 560px; }
.lp-main .lp-area .wp-block-table.is-style-hilton-keyvalue:has(td:only-child) td:first-child {
	width: auto;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0;
	color: #111;
	padding-right: 24px;
}
.lp-main .lp-area .wp-block-table.is-style-hilton-keyvalue:has(td:only-child) td:last-child:not(:first-child) {
	text-align: right;
	white-space: nowrap;
	font-weight: 700;
}
/* 単一セル行（「通常料金で計算すると」小見出し・「合計」行）は全幅で中央寄せ（colspan 無し対応）。 */
.lp-main .lp-area .wp-block-table.is-style-hilton-keyvalue tr:has(> td:only-child) > td {
	display: block;
	width: 100%;
	text-align: center;
	font-weight: 700;
	color: var(--aureate, #b89766);
	padding-right: 0;
}
/* 「合計　約◯◯円」行（金額=<b>を含む単一セル行）は、上の各料金行の価格列に揃えて右寄せにする。
   小見出し（「通常料金で計算すると」等の <b> を持たない単一セル行）は中央寄せのまま。 */
.lp-main .lp-area .wp-block-table.is-style-hilton-keyvalue tr:has(> td:only-child) > td:has(b) {
	text-align: right;
	padding-right: 18px; /* 価格列(td:last-child)の右パディングに合わせ、金額の右端を上の各行と揃える */
}
