/* 本文（投稿コンテンツ）のコアブロック・タイポグラフィ。フロント／エディタ両方に効くよう
   .entry-content と [class*="wp-block-post-content"] の両方にスコープする。 */

/* 見出し H1〜H6 はブランドの display フォントとウェイト／字間／行送りを theme.json から参照。
   margin はショートハンドではなく margin-block で指定（左右 0 が alignfull/alignwide の
   フルブリードマージンを打ち消すのを防ぐため）。 */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-heading { font-family: var(--wp--custom--brand-heading); font-weight: var(--wp--custom--heading-weight, 700); color: var(--aureate); line-height: var(--wp--custom--heading-lh, 1.4); letter-spacing: var(--wp--custom--heading-ls, normal); }
:is(.entry-content, [class*="wp-block-post-content"]) h1.wp-block-heading { font-size: clamp(24px, 2.6vw, 30px); line-height: 1.3; letter-spacing: 0.08em; margin-block: 32px 12px; }
:is(.entry-content, [class*="wp-block-post-content"]) h2.wp-block-heading { font-size: clamp(20px, 2vw, 23px); line-height: 1.4; letter-spacing: 0.06em; margin-block: 32px 12px; }
:is(.entry-content, [class*="wp-block-post-content"]) h3.wp-block-heading { font-size: clamp(17px, 1.6vw, 19px); line-height: 1.45; letter-spacing: 0.04em; margin-block: 48px 14px; }
:is(.entry-content, [class*="wp-block-post-content"]) h4.wp-block-heading { font-size: clamp(15px, 1.3vw, 16px); line-height: 1.5; letter-spacing: 0.04em; margin-block: 24px 8px; }
:is(.entry-content, [class*="wp-block-post-content"]) h5.wp-block-heading { font-size: 13px; line-height: 1.5; letter-spacing: 0.04em; margin-block: 20px 8px; }
:is(.entry-content, [class*="wp-block-post-content"]) h6.wp-block-heading { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; margin-block: 20px 8px; }

/* alignfull はコンテンツ内容幅 1256（=ヘッダー/フッター .wrap の内容幅）でキャップして中央寄せ。
   100vw ブレイクアウトしたい帯（restaurant-section / hilton-kv / db-* / restaurant-reserve-cta）は除外。 */
:is(.entry-content, [class*="wp-block-post-content"], .single-main, .page-main, .archive-main, .access-main, .archive-head, .about-wrap) .alignfull:not(.restaurant-section):not(.hilton-kv):not(.db-hero):not(.db-cta):not(.restaurant-reserve-cta):not(.contact-card):not(.lp-slider):not(.nv-activity-lp):not(.lp-kv):not(.lp-nav):not(.lp-sechead):not(.coupons) {
	max-width: 1256px;
	margin-left: auto;
	margin-right: auto;
}

/* dessert-bar LP のフルブリード帯（ヒーロー／CTA）。100vw ブレイクアウト。 */
.db-hero,
.db-cta {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
:is(.entry-content, [class*="wp-block-post-content"]) .alignwide {
	max-width: var(--wp--style--global--wide-size, 1256px);
	margin-left: auto;
	margin-right: auto;
}

/* アーカイブ頭のリード文（h1 タイトル直下のリード）は h1 から 56px（spacing.section）空ける。
   単一段落の .lead と、リード＋本文の .intro-lead グループの両方を対象にする（constrained
   レイアウトのコンテナリセットが子要素のマージンを 0 にするため、子セレクタで上書きする）。 */
.archive-head > .lead,
.archive-head > .intro-lead {
	margin-top: var(--wp--preset--spacing--section);
}

/* セクション区切り見出し（h2.alignfull）: 上罫線は ::before で 100vw、前後余白は spacing.section。 */
:is(.entry-content, [class*="wp-block-post-content"], .single-main, .page-main, .access-main, .archive-main, .about-wrap) h2.wp-block-heading.alignfull {
	position: relative;
	margin-top: var(--wp--preset--spacing--section);
	margin-bottom: 28px;
	padding-top: var(--wp--preset--spacing--section);
	/* セクション区切り見出しは中央寄せに統一する（LP の lp-area > h2 と揃える）。 */
	text-align: center;
}
:is(.entry-content, [class*="wp-block-post-content"], .single-main, .page-main, .access-main, .archive-main, .about-wrap) h2.wp-block-heading.alignfull::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	border-top: 1px solid var(--wp--preset--color--line, #ececec);
}
/* 本文先頭の h2 は上 margin だけ消す（直接 or group 内の先頭）。padding-top と罫線は残す。 */
:is(.entry-content, [class*="wp-block-post-content"]) > h2.wp-block-heading:first-child,
:is(.entry-content, [class*="wp-block-post-content"]) > *:first-child > h2.wp-block-heading:first-child {
	margin-top: 0;
}
/* ページ内リンク帯（.lp-nav）直後のセクション見出しは、帯自体が区切りになるので
   区切り罫線（::before）と二重の上余白を出さない。間隔は帯の下 + 見出しの padding-top で取る。 */
:is(.entry-content, [class*="wp-block-post-content"], .single-main, .page-main, .access-main) .lp-nav + h2.wp-block-heading.alignfull {
	margin-top: 0;
}
:is(.entry-content, [class*="wp-block-post-content"], .single-main, .page-main, .access-main) .lp-nav + h2.wp-block-heading.alignfull::before {
	content: none;
}
/* 全幅の h3 ラベル（罫線なし）は前の要素から少し離す。 */
:is(.entry-content, [class*="wp-block-post-content"], .single-main, .page-main, .access-main, .archive-main, .about-wrap) h3.wp-block-heading.alignfull {
	margin-top: 48px;
}

/* box（本文コンテナ・住所グループ等）の最初/最後の要素は上下マージンを消す（箱の内側で余分に空かない）。
   コンテナの padding が縦余白を担うので、先頭の mt と末尾の mb はブロック側に持たせない。
   全幅の区切り見出し(alignfull)は自前の上余白を持つので対象外。 */
:is(.entry-content, [class*="wp-block-post-content"]) > :first-child:not(.alignfull),
.access-info > :first-child,
.about-access-grid .access-info > :first-child {
	margin-top: 0;
}
:is(.entry-content, [class*="wp-block-post-content"]) > :last-child:not(.alignfull) {
	margin-bottom: 0;
}

/* 本文画像・inline 動画は上下 14px。見出し直後の画像は見出し側 mb と二重にしないため上 0。
   entry-content 直下に加え、lp-area 直下や lp-section__body 直下の画像にも同じ余白を効かせる。 */
:is(.entry-content, [class*="wp-block-post-content"]) > .wp-block-image,
:is(.entry-content, [class*="wp-block-post-content"]) > .local-video,
.lp-area > .wp-block-image,
.lp-section__body > .wp-block-image { margin-top: 14px; margin-bottom: 14px; }
:is(.entry-content, [class*="wp-block-post-content"]) > .wp-block-heading + .wp-block-image,
.lp-area > .wp-block-heading + .wp-block-image,
.lp-section__body > .wp-block-heading + .wp-block-image { margin-top: 0; }
/* 画像ブロックの配置（core/image の align）。テーマのリセットが figure に display:table; margin:0 を
   当てており、WP コアの aligncenter（margin:auto）が打ち消されるため、ここで明示的に復活させる。
   left/right は左右に寄せる（display:table＋片側 auto）。 */
.wp-block-image.aligncenter { margin-left: auto; margin-right: auto; }
.wp-block-image.alignleft { margin-right: auto; margin-left: 0; }
.wp-block-image.alignright { margin-left: auto; margin-right: 0; }

/* セクション先頭の通常見出しは上 margin 0（エリア padding との二重防止）。alignfull は対象外。 */
:is(.entry-content, [class*="wp-block-post-content"]) > .wp-block-heading:first-child:not(.alignfull),
.lp-section > .wp-block-heading:first-child:not(.alignfull),
.lp-area > .wp-block-heading:first-child:not(.alignfull) { margin-top: 0; }

/* 段落・文字サイズプリセット */
:is(.entry-content, [class*="wp-block-post-content"]) p { font-family: var(--wp--custom--brand-body); font-size: 15px; line-height: 1.85; color: var(--text); letter-spacing: 0; }
/* 本文段落の前後余白。エディター（テンプレート/投稿）とフロントの両方に効かせる。
   テンプレートの blockGap だけだと段落間が詰まりすぎるため、段落側に最低限の縦リズムを持たせる。 */
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) .wp-block-paragraph { margin-block: 0.9em; }
:is(.entry-content, [class*="wp-block-post-content"]) .has-small-font-size  { font-size: 13px; }
:is(.entry-content, [class*="wp-block-post-content"]) .has-medium-font-size { font-size: 17px; }
:is(.entry-content, [class*="wp-block-post-content"]) .has-large-font-size  { font-size: 21px; line-height: 1.5; }
:is(.entry-content, [class*="wp-block-post-content"]) .has-x-large-font-size { font-size: 28px; line-height: 1.3; font-family: var(--wp--custom--brand-heading); font-weight: 500; letter-spacing: -0.01em; }

/* リスト（項目間の余白は付けない＝詰めて表示）。行間は本文段落（p）と同じ 1.85 に揃える。
   リストブロックの上下マージンは控えめに（エディタの UA 既定 1em を 0.5em に統一。フロント／編集画面共通）。 */
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) .wp-block-list { font-family: var(--wp--custom--brand-body); font-size: 15px; line-height: 1.85; padding-left: 1.4em; margin-block: 0.5em; color: var(--text); }
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) .wp-block-list ul, :is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) .wp-block-list ol { padding-left: 1.4em; margin-block: 0; }
/* 項目に上マージンは付けない（行間のみで詰める）。注記（is-style-note）の意図的な余白は個別ルールが上書き。 */
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) .wp-block-list > li { margin-top: 0; }
/* 通常の箇条書き（順序なしリスト）は ・ を行頭マーカーにし、※注記（is-style-note）と同じ字下げ
   （マーカー left:0／本文 1.5em）に揃える。移行時にすべての <ul> へ wp-block-list を付与するため、
   表セル内の素のリストも含め一律に適用される。順序付きリスト(ol)は番号のまま。 */
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) ul.wp-block-list:not(.is-style-plain) { padding-left: 0; list-style: none; }
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) ul.wp-block-list:not(.is-style-plain) > li:not(.is-style-note) { position: relative; padding-left: 1.5em; list-style: none; }
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) ul.wp-block-list:not(.is-style-plain) > li:not(.is-style-note)::before { content: "・"; position: absolute; left: 0; top: 0; }
/* ブロックスタイル「マーカーなし」（is-style-plain）: 横並び・ナビ等、行頭マーカー（・）を出さない素のリスト。 */
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) ul.wp-block-list.is-style-plain { list-style: none; padding-left: 0; }
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) ul.wp-block-list.is-style-plain > li { margin-top: 0; padding-left: 0; }
:is(.entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) ul.wp-block-list.is-style-plain > li::before { content: none; }

/* 引用 */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-quote { font-family: var(--wp--custom--brand-body); font-size: 15px; line-height: 1.85; color: var(--text); margin: 40px 0; padding: 8px 24px; border-left: 3px solid var(--aureate); }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-quote p { font-family: inherit; font-size: inherit; line-height: inherit; margin: 0; font-style: inherit; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-quote cite { display: block; margin-top: 10px; font-family: var(--wp--custom--brand-body); font-style: normal; font-size: 12px; color: var(--warm-grey); letter-spacing: 0.04em; }

/* プルクオート */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-pullquote { text-align: center; padding: 32px 24px; border-top: 1px solid var(--aureate); border-bottom: 1px solid var(--aureate); margin: 32px 0; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-pullquote p { font-family: var(--wp--custom--brand-heading); font-size: clamp(20px, 2.6vw, 26px); font-weight: 500; line-height: 1.4; color: var(--aureate); letter-spacing: -0.01em; margin: 0; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-pullquote cite { display: block; margin-top: 14px; font-family: var(--wp--custom--brand-body); font-style: normal; font-size: 11px; color: var(--warm-grey); letter-spacing: 0.1em; text-transform: uppercase; }

/* テーブル（既定）。縦罫線は引かず、行ごとの横罫線のみのクリーンなデータ表にする。 */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table table { width: 100%; border-collapse: collapse; border: 0; border-top: 1px solid var(--line); font-family: var(--wp--custom--brand-body); font-size: 14px; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table th, :is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table td { padding: 12px 16px; border: 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; letter-spacing: 0; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table th { font-weight: 700; color: var(--aureate); letter-spacing: 0.02em; }
/* セル文字色はブランドの本文色を明示する（色を継承に任せるとダーク系ブランドの背景で
   見出し列（人数・料金等）が不可視になるため）。 */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table td { color: var(--wp--preset--color--text, #111); }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table figcaption { margin-top: 10px; font-family: var(--wp--custom--brand-body); font-size: 12px; color: var(--warm-grey); }

/* 旧本文の回り込み画像（<img class="right"/"left">、表セル内などで使用）。テキストの右／左に回り込ませる。 */
:is(.entry-content, [class*="wp-block-post-content"]) img.right { float: right; margin: 0 0 1em 1.25em; max-width: 50%; height: auto; }
:is(.entry-content, [class*="wp-block-post-content"]) img.left { float: left; margin: 0 1.25em 1em 0; max-width: 50%; height: auto; }
@media (max-width: 600px) {
	:is(.entry-content, [class*="wp-block-post-content"]) img.right,
	:is(.entry-content, [class*="wp-block-post-content"]) img.left { float: none; display: block; margin: 0 auto 1em; max-width: 100%; }
}

/* core/table ブロックスタイル「is-style-hilton-keyvalue」: 先頭列をブランド色の小見出し風にした
   キー・バリュー表。横罫線のみのクリーンな体裁（先頭列を見出しにできない core/table 制約への対応）。 */
/* キー・バリュー表は固定幅（is-style-hilton-keyvalue）と幅自動（is-style-hilton-keyvalue-auto）の
   2 バリアントがあり、見た目（罫線・配色・先頭列のラベル体裁）は共通、先頭列の幅指定だけが異なる。 */
.wp-block-table[class*="is-style-hilton-keyvalue"] { margin: clamp(14px, 2.4vw, 24px) auto; }
.wp-block-table.is-style-hilton-keyvalue.transaction-keyvalue { max-width: var(--wp--style--global--content-size, 760px); }
.wp-block-table[class*="is-style-hilton-keyvalue"] table { width: 100%; border-collapse: collapse; border: 0; border-top: 1px solid color-mix(in srgb, var(--aureate, #b89766) 25%, transparent); }
.wp-block-table[class*="is-style-hilton-keyvalue"] td { vertical-align: top; font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body)); font-size: 14px; line-height: 1.85; color: var(--wp--preset--color--text, #111); letter-spacing: 0; padding: 14px 0; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--aureate, #b89766) 25%, transparent); }
/* 先頭列（キー）はブランド色の小見出し風。幅は各バリアントで指定する。 */
.wp-block-table[class*="is-style-hilton-keyvalue"] td:first-child { font-weight: 700; font-size: 12px; letter-spacing: 0.1em; color: var(--aureate, #b89766); padding-right: 32px; }
.wp-block-table.is-style-hilton-keyvalue td:first-child { width: 200px; }
/* 英語は見出し語（"Implementation Date & Time:" 等）が長く 200px だと窮屈に折り返すため、先頭列を広げる。 */
html[lang^="en"] .wp-block-table.is-style-hilton-keyvalue td:first-child { width: 280px; }
/* 幅自動バリアント：先頭列を内容に合わせて自動幅にし、キー（作家名等）が折り返さないようにする。 */
.wp-block-table.is-style-hilton-keyvalue-auto td:first-child { width: auto; white-space: nowrap; }
/* セル内ブロックの上下 margin を消し、セル padding だけで間隔を取る（margin との二重防止）。 */
.wp-block-table[class*="is-style-hilton-keyvalue"] td > :first-child { margin-top: 0; }
.wp-block-table[class*="is-style-hilton-keyvalue"] td > :last-child { margin-bottom: 0; }

/* スペック表（is-style-hilton-spec）: 会場スペック等の多列データ表。先頭列と見出し行だけ強調し、
   表本体は通常のグリッド。図(figure)を横スクロールコンテナにして、はみ出しはスクロール表示（スマホ）。 */
.wp-block-table.is-style-hilton-spec { margin: clamp(14px, 2.4vw, 24px) 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wp-block-table.is-style-hilton-spec table { width: 100%; border-collapse: collapse; border: 0; font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body)); font-size: 13px; }
.wp-block-table.is-style-hilton-spec th, .wp-block-table.is-style-hilton-spec td { border: 1px solid var(--line); padding: 8px 12px; text-align: center; vertical-align: middle; white-space: nowrap; color: var(--wp--preset--color--text, #111); letter-spacing: 0; }
/* 見出し行（thead）と先頭列を強調する。 */
.wp-block-table.is-style-hilton-spec thead td, .wp-block-table.is-style-hilton-spec thead th { font-weight: 700; background: color-mix(in srgb, var(--aureate, #b89766) 8%, transparent); }
.wp-block-table.is-style-hilton-spec tbody td:first-child, .wp-block-table.is-style-hilton-spec tbody th:first-child { font-weight: 700; color: var(--aureate, #b89766); text-align: left; background: color-mix(in srgb, var(--aureate, #b89766) 6%, transparent); white-space: nowrap; }

/* ボックス（padding を持つ箱）内の先頭要素の上余白・末尾要素の下余白は作らない。padding 内に余分な
   margin がはみ出さないようにする共通処理。has-background の有無に依らず、グループ／カラム／カバー／
   ACF InnerBlocks など一般的なコンテナ全般に一括適用する。enqueue_block_assets で読むためフロント・
   エディタ共通。 */
:is(.wp-site-blocks, .entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) :is(
	.wp-block-group,
	.wp-block-columns,
	.wp-block-column,
	.wp-block-cover__inner-container,
	.acf-innerblocks-container,
	.lp-section__head,
	.lp-section__body,
	.lp-section__text,
	[class*="__inner-container"]
) > :first-child {
	margin-block-start: 0;
}
:is(.wp-site-blocks, .entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) :is(
	.wp-block-group,
	.wp-block-columns,
	.wp-block-column,
	.wp-block-cover__inner-container,
	.acf-innerblocks-container,
	.lp-section__head,
	.lp-section__body,
	.lp-section__text,
	[class*="__inner-container"]
) > :last-child {
	margin-block-end: 0;
}
/* lp-section の見出し（タイトル）は、エディタでは後ろに空のサブタイトル <p> がレンダリングされ h3 が
   last-child でなくなり上の共通リセットで下マージンが拾えない。見出し自身の上下マージンを 0 にして
   （間隔は head の gap / 親 lp-section の gap で取る）フロント・エディタとも余白を一致させる。 */
:is(.wp-site-blocks, .entry-content, [class*="wp-block-post-content"], .editor-styles-wrapper) .lp-section__head > .wp-block-heading {
	margin-block: 0;
}
/* 画像と並ぶ左右レイアウトの lp-section 内に置かれた場合と、SP 幅では横方向が狭いため縦積みに切替。 */
@media (max-width: 600px) {
	.wp-block-table[class*="is-style-hilton-keyvalue"] table,
	.wp-block-table[class*="is-style-hilton-keyvalue"] tbody,
	.wp-block-table[class*="is-style-hilton-keyvalue"] tr,
	.wp-block-table[class*="is-style-hilton-keyvalue"] td { display: block; width: auto; }
	.wp-block-table[class*="is-style-hilton-keyvalue"] td:first-child { border-bottom: 0; padding: 12px 0 2px; white-space: normal; }
	.wp-block-table[class*="is-style-hilton-keyvalue"] td:not(:first-child) { padding: 0 0 12px; }
}
.lp-section--media .wp-block-table[class*="is-style-hilton-keyvalue"] table,
.lp-section--media .wp-block-table[class*="is-style-hilton-keyvalue"] tbody,
.lp-section--media .wp-block-table[class*="is-style-hilton-keyvalue"] tr,
.lp-section--media .wp-block-table[class*="is-style-hilton-keyvalue"] td { display: block; width: auto; }
.lp-section--media .wp-block-table[class*="is-style-hilton-keyvalue"] td:first-child { border-bottom: 0; padding: 12px 0 2px; white-space: normal; }
.lp-section--media .wp-block-table[class*="is-style-hilton-keyvalue"] td:not(:first-child) { padding: 0 0 12px; }

/* 動画埋め込みはメディア枠いっぱいに 16:9 でレスポンシブ表示（画像と同様に枠幅へ追従）。 */
.lp-section .wp-block-embed.is-type-video { margin: 0; }
.lp-section .wp-block-embed.is-type-video .wp-block-embed__wrapper { position: relative; padding-top: 56.25%; }
.lp-section .wp-block-embed.is-type-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* LP セクション内の表（スタイル種別を問わず）は、幅を template-4 と同じ
   「2 カラムカードの 1 列ぶん（min(520px, エリア幅/2 - 列gap)）」＋狭幅(≤781)の 1 列化（@media）に
   揃え、レスポンシブにブレークポイントで幅を変える。 */
.lp-section .wp-block-table {
	width: min(520px, calc(min(1256px, 100vw - 64px) / 2 - clamp(1.5rem, 4vw, 3rem)));
	max-width: none;
	margin-left: auto;
	margin-right: auto;
}
/* キー・バリュー表はテンプレートを問わずセルを縦積みにする（横並びだと項目名＋内容が窮屈なため。
   原稿の表は項目を縦に並べた体裁が読みやすい）。 */
.lp-section .wp-block-table[class*="is-style-hilton-keyvalue"] table,
.lp-section .wp-block-table[class*="is-style-hilton-keyvalue"] tbody,
.lp-section .wp-block-table[class*="is-style-hilton-keyvalue"] tr,
.lp-section .wp-block-table[class*="is-style-hilton-keyvalue"] td { display: block; width: auto; }
.lp-section .wp-block-table[class*="is-style-hilton-keyvalue"] td:first-child { border-bottom: 0; padding: 12px 0 2px; white-space: normal; }
.lp-section .wp-block-table[class*="is-style-hilton-keyvalue"] td:not(:first-child) { padding: 0 0 12px; }
/* 狭幅（≤781）では template-4 と同じく 1 列化（width:100%・max 480px）。base の /2 式のままだと
   ビューポートの半分（例 600px で約244px）になり狭すぎて崩れるため、width も上書きする。 */
@media (max-width: 781px) {
	.lp-section .wp-block-table { width: 100%; max-width: 480px; }
}

/* 区切り */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-separator { border: 0; height: 1px; background: var(--aureate); margin: 24px auto; max-width: 80px; opacity: 1; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-separator.is-style-wide { max-width: 100%; }

/* 画像キャプション */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-image figcaption { margin-top: 10px; font-family: var(--wp--custom--brand-body); font-size: 12px; color: var(--warm-grey); line-height: 1.55; text-align: center; }
.wp-block-image :where(figcaption) { margin-bottom: 0; }

/* コード／整形済み */
:is(.entry-content, [class*="wp-block-post-content"]) code { font-family: SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9em; padding: 2px 6px; background: color-mix(in srgb, var(--aureate) 6%, #fff); color: var(--aureate); border-radius: 2px; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-code { background: #1a1a1a; color: #f0f0f0; padding: 20px 22px; border-radius: 4px; overflow-x: auto; font-size: 13px; line-height: 1.65; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-code code { background: transparent; color: inherit; padding: 0; }

/* ドロップキャップ */
:is(.entry-content, [class*="wp-block-post-content"]) .has-drop-cap::first-letter { font-family: var(--wp--custom--brand-heading); font-size: 3.6em; line-height: 0.85; font-weight: 700; float: left; margin: 0.1em 0.14em 0 0; color: var(--aureate); }

/* インライン書式・本文リンク */
:is(.entry-content, [class*="wp-block-post-content"]) a { color: var(--aureate); text-decoration: underline; text-underline-offset: 3px; }
/* ボタンは本文リンク色の対象外（ボタン背景＋白文字を維持。本文内だと金色＝背景と同化して消えるため） */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-button__link { color: var(--wp--preset--color--base, #fff); text-decoration: none; }
:is(.entry-content, [class*="wp-block-post-content"]) .btn { text-decoration: none; }
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-buttons { margin-top: clamp(14px, 2.4vw, 24px); margin-bottom: clamp(14px, 2.4vw, 24px); gap: 12px 16px; }
:is(.entry-content, [class*="wp-block-post-content"]) mark { background: color-mix(in srgb, var(--aureate) 18%, #fffce0); color: inherit; padding: 0 4px; }
:is(.entry-content, [class*="wp-block-post-content"]) strong { font-weight: 700; }
:is(.entry-content, [class*="wp-block-post-content"]) em { font-style: italic; }

/* イントロ（中央寄せのリード＋本文）。hilton/intro-lead パターンで使用。 */
.intro-lead {
	margin: clamp(8px, 2vw, 20px) 0 var(--wp--preset--spacing--section, 56px);
}
/* リード（intro-lead）は本文・アーカイブ頭（constrained）内でも常に wide 幅で見せる。
   ブロックの align 指定有無に関わらず一律 alignwide 幅にする（WP の constrained 既定幅 760 を
   クラス2つ分の詳細度で上書き）。下マージンは次セクションまでの 56px を確保する。 */
.is-layout-constrained > .intro-lead {
	max-width: var(--wp--style--global--wide-size, 1080px);
	margin-left: auto;
	margin-right: auto;
	margin-bottom: var(--wp--preset--spacing--section, 56px);
}
.intro-lead .intro-lead__lead {
	font-family: var(--wp--custom--brand-heading);
	font-weight: 700;
	font-size: clamp(20px, 2.2vw, 26px);
	line-height: 1.55;
	letter-spacing: 0.14em;
	color: var(--text, #111);
	/* キャッチは wide 幅まで使い、長い見出しが折り返さず1行に収まりやすくする。 */
	max-width: var(--wp--style--global--wide-size, 1080px);
	margin: 0 auto;
}
/* 本文のみのイントロ（キャッチ無し・説明文だけ）では body が先頭に来るため上余白を持たせない。 */
.intro-lead > .intro-lead__body:first-child {
	margin-top: 0;
}
.intro-lead .intro-lead__body {
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-weight: 400;
	font-size: 15px;
	line-height: 2;
	letter-spacing: 0;
	color: var(--text, #111);
	max-width: var(--wp--style--global--wide-size, 1080px);
	margin: 32px auto 0;
}
/* リード末尾の資料リンク（PDF・360°ビュー等）。各行に PDF/別窓アイコンが付く。 */
.intro-lead .intro-lead__links {
	margin-top: 24px;
	font-size: 14px;
	line-height: 2.2;
}
/* リード内のリンクは本文同様にブランド色＋下線で「リンクだと分かる」見た目にする。 */
.intro-lead a {
	color: var(--aureate);
	text-decoration: underline;
	text-underline-offset: 3px;
}
@media (max-width: 700px) {
	.intro-lead .intro-lead__lead { font-size: 18px; letter-spacing: 0.1em; }
	.intro-lead .intro-lead__body { font-size: 14px; line-height: 1.9; margin-top: 24px; }
}

/* 注意・お知らせ（コールアウト）。枠付き＋ブランド色のアクセント。
   ブロックスタイル「囲み」（is-style-notice）と、移行が付ける旧クラス（.notice）の両方に効かせる。 */
.wp-block-group.notice,
.wp-block-group.is-style-notice {
	border: 1px solid color-mix(in srgb, var(--aureate, #b89766) 35%, transparent);
	background: color-mix(in srgb, var(--aureate, #b89766) 5%, #fff);
	padding: clamp(16px, 2vw, 24px) clamp(18px, 2.4vw, 28px);
	margin: clamp(32px, 4vw, 48px) 0;
}
/* 囲み内の小見出し（例: お子様のご利用について／ドレスコード）。移行コンテンツは
   .notice__title を付けるが、エディタで「囲み」を選んだ場合は素の見出しのままなので、
   is-style-notice 内の h3/h4 はクラス無しでも同じタイトル見た目にする。 */
.wp-block-group.notice .notice__title,
.wp-block-group.is-style-notice .notice__title,
.wp-block-group.is-style-notice :is(h3, h4).wp-block-heading {
	/* 見出しは前の小節から離し、自分の本文へは近づける（上 margin > 下 margin）。 */
	margin: 20px 0 6px;
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.04em;
	color: var(--aureate, #b89766);
}
.notice p,
.is-style-notice p {
	margin: 6px 0 0;
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-size: 13px;
	line-height: 1.85;
	color: #333;
}
/* ボックスの最初の要素は上 margin なし、最後の要素は下 margin なし。
   見出し（:is(h3,h4).wp-block-heading）のタイトル規則より詳細度を上げて確実に勝たせる。 */
.wp-block-group.notice > :first-child,
.wp-block-group.is-style-notice > :first-child,
.wp-block-group.is-style-notice > :is(h3, h4).wp-block-heading:first-child,
.wp-block-group.is-style-notice > .notice__title:first-child { margin-top: 0; }
.wp-block-group.notice > :last-child,
.wp-block-group.is-style-notice > :last-child,
.wp-block-group.is-style-notice > p:last-child { margin-bottom: 0; }

/* タイトル帯（h1＋ページ内リンク）。ヘッダー直下に sticky、横並びはテンプレ側 layout:flex に委譲。 */
.title-band { gap: 16px 32px; position: sticky; top: calc(var(--wp--custom--logo-header, 32px) + var(--wp--custom--header-pad-y, 16px) * 2); z-index: 30; padding-top: 0; padding-bottom: 0; transition: padding 0.25s ease; }
/* 固定前はナビの padding 分を相殺し、帯が h1 より高くならないようにする。 */
.title-band:not(.is-stuck) .title-band-nav { margin-top: -8px; margin-bottom: -8px; }
/* 100vw の背景帯（中身は動かさず ::before で敷く）。 */
.title-band::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: #fff; z-index: -1; transition: box-shadow 0.25s ease, border-color 0.25s ease; }
.title-band.is-stuck { padding-top: 10px; padding-bottom: 10px; align-items: center; }
.title-band.is-stuck::before { border-bottom: 1px solid var(--line); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04); }
.title-band h1 { flex: 1 1 auto; min-width: 0; transition: font-size 0.25s ease, letter-spacing 0.25s ease; }
/* WP の `:root :where(.is-layout-flex){gap:0}` に勝つよう2クラスで gap を再指定。
   これが無いと row-gap が 0 になり、ページ内ナビが折り返した際に h1 へ密着する。 */
.sec-head.title-band { gap: 24px 32px; }
.title-band.is-stuck h1 { font-size: 18px; letter-spacing: 0.08em; line-height: 1.3; margin: 0; }
.title-band-nav { display: flex; align-items: center; gap: 4px 16px; min-width: 0; flex-shrink: 1; max-width: 100%; justify-content: flex-end; }
/* SP は縦並び＋左寄せ。.sec-head.title-band の2クラス指定で WP layout:flex の align-items:center を上書き。 */
@media (max-width: 700px) {
	.sec-head.title-band { flex-direction: column; align-items: flex-start; }
	.title-band-nav { width: 100%; justify-content: flex-start; }
}
/* リンク列はコア core/navigation のコンテナ（wp-block-navigation__container > -item）で構成。
   page-nav / diamondclub-nav（動的）も CSR の core/navigation も同じマークアップ・CSS を共有する。 */
.title-band-nav .wp-block-navigation__container { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; gap: 4px 28px; align-items: center; overflow-x: auto; overflow-y: hidden; min-width: 0; flex-shrink: 1; scrollbar-width: thin; }
.title-band-nav .wp-block-navigation-item { margin: 0; }
.title-band-nav .wp-block-navigation-item__content { white-space: nowrap; flex-shrink: 0; }
.title-band-nav a { font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body)); font-size: 12px; font-weight: 500; letter-spacing: 0.12em; color: #555; text-decoration: none; padding: 6px 0; position: relative; transition: color 0.2s; font-variant-numeric: tabular-nums; }
.title-band-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--aureate); transform: scaleX(0); transform-origin: left; transition: transform 0.25s ease; }
.title-band-nav a:hover { color: var(--aureate); }
.title-band-nav a:hover::after { transform: scaleX(1); }
/* 現在ページのリンクはブランド色＋下線を表示して位置を示す（ダイヤモンドクラブ等の相互導線で active 強調）。 */
.title-band-nav a[aria-current="page"] { color: var(--aureate); }
.title-band-nav a[aria-current="page"]::after { transform: scaleX(1); }
/* コア core/navigation の style.css は .wp-block-navigation .content.content（詳細度0,3,0）で
   リンク色を inherit に固定する。CSR の core/navigation でも色を効かせるため同じ二重クラスで色だけ上書き。 */
.title-band-nav a.wp-block-navigation-item__content.wp-block-navigation-item__content { color: #555; }
.title-band-nav a.wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.title-band-nav a.wp-block-navigation-item__content.wp-block-navigation-item__content[aria-current="page"] { color: var(--aureate); }
.title-band-nav .title-band-reserve { flex-shrink: 0; background: var(--aureate); color: #fff; padding: 8px 18px; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; }
.title-band-nav .title-band-reserve::after { display: none; }
.title-band-nav .title-band-reserve:hover { background: color-mix(in srgb, var(--aureate) 80%, #000); color: #fff; }
@media (max-width: 782px) {
	/* 縦並び。張り付き時も h1 は必ず左（is-stuck の align-items:center を打ち消す）。 */
	.title-band,
	.title-band.is-stuck { flex-direction: column; align-items: stretch; gap: 14px; }
	.title-band-nav { width: 100%; max-width: 100%; margin-left: 0; justify-content: flex-start; }
}

/* core/button is-style-outline: 枠線をブランド色で上書き、ホバーで反転。 */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--aureate, #b89766);
	border: 1px solid var(--aureate, #b89766);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--aureate, #b89766);
	color: var(--wp--preset--color--base, #fff);
	border-color: var(--aureate, #b89766);
}

/* hilton/local-video variant=inline: 親幅に収まり、アスペクト比を保つ。 */
.local-video--inline {
	margin: 0 auto;
	max-width: 100%;
}
.local-video--inline video {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

/* お知らせ詳細: タイトル直下に「日付＋カテゴリバッジ」を1行で中央寄せ（.news-meta は flex）。
   日付は core/post-date を small font-size＋text-muted、カテゴリは小バッジ風（brand-primary）。 */
.news-meta > * {
	margin: 0;
}
.news-meta .wp-block-post-date {
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--text-muted, #6e6e6e);
	font-variant-numeric: tabular-nums;
}
.news-cat {
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	/* カテゴリバッジ（inline-block）を中央寄せ。日付(post-date)も中央に揃える。 */
	text-align: center;
}
.news-cat .news-cat__label {
	display: inline-block;
	padding: 2px 12px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--brand-primary, #b89766);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--brand-primary, #b89766) 50%, transparent);
	border-radius: 2px;
}

/* 部門共通の問い合わせカード（hilton/contact-card パターン）。
   surface 背景を 100vw に全幅ブリードし、内側コンテンツは 620px に絞って中央寄せ。
   枠線・区切り線・装飾は使わず、ブランド色は事務局名と電話番号アクセントにのみ。 */
.contact-card {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: clamp(40px, 5vw, 64px);
	margin-bottom: clamp(40px, 5vw, 64px);
	padding: clamp(24px, 3vw, 36px) max(16px, calc(50vw - 310px));
	background: var(--wp--preset--color--surface, #f4f2f3);
	text-align: center;
}
.contact-card .contact-card__primary {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	max-width: 620px;
	margin-inline: auto;
}
/* 事務局名：ブランド色のラベル風（字間強め）。
   h3.wp-block-heading のグローバル margin-block を打ち消すため詳細度を上げる。 */
.contact-card h3.contact-card__name,
.contact-card .contact-card__name {
	margin: 0;
	padding-top: 0;
	font-family: var(--wp--custom--brand-heading);
	font-size: clamp(15px, 1.4vw, 17px);
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.4;
	color: var(--wp--preset--color--brand-primary, var(--aureate, #b89766));
	border-top: 0;
}
.contact-card .contact-card__name::before {
	content: none;
}
/* 電話番号：主役。weight は light で抜け感を出し、字間を整える。
   事務局名との間は読み物の見出し→本文同等に少し空ける（14px）。
   p タグ込みでグローバル .wp-block-paragraph に勝つ詳細度を確保。 */
.contact-card p.contact-card__tel {
	margin: 14px 0 0;
	font-family: var(--wp--custom--brand-heading);
	font-size: clamp(28px, 3.4vw, 36px);
	font-weight: 300;
	letter-spacing: 0.06em;
	line-height: 1;
	color: var(--text, #111);
	font-variant-numeric: tabular-nums;
}
.contact-card .contact-card__tel a {
	color: inherit;
	text-decoration: none;
	border-bottom: 0;
}
/* 受付時間：番号直下に詰めて。 */
.contact-card p.contact-card__hours {
	margin: 6px 0 0;
	font-family: var(--wp--custom--brand-body);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.06em;
	color: var(--warm-grey, #6e6e6e);
}
/* メール：受付時間から少しだけ離す。 */
.contact-card p.contact-card__email {
	margin: 10px 0 0;
	font-family: var(--wp--custom--brand-body);
	font-size: 14px;
	letter-spacing: 0.02em;
	color: var(--text, #111);
}
.contact-card .contact-card__email a {
	color: var(--wp--preset--color--brand-primary, var(--aureate, #b89766));
	text-decoration: none;
	transition: opacity 0.2s;
}
.contact-card .contact-card__email a:hover {
	opacity: 0.75;
}
/* 補足注記：装飾なしで余白だけで主情報と切り分ける。
   横幅は親 .contact-card の padding が既に内側を 620px に絞っているため自前 max-width は不要。 */
.contact-card p.contact-card__note {
	margin: clamp(20px, 3vw, 28px) 0 0;
	font-family: var(--wp--custom--brand-body);
	font-size: 12px;
	line-height: 1.8;
	color: var(--warm-grey, #6e6e6e);
}
.contact-card .contact-card__note a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ============================================================
   ダイヤモンドクラブ「特典」ページの組版。
   ・「その他の特典」: ul > li > .img + .info（カードグリッド）
   ・「参加ホテルの特典」: h3（ホテルグループ）→ h4（特典）→ 注記 → ホテル画像リスト
   wp-block-list 直下の li が独自構造を持つ場合は箇条書きではなくレイアウト扱いにする。 */

/* === カードグリッド：その他の特典など（li 内に .img と .info の 2 ブロック） ===
   max-width はサイト標準（content-size = 760）。狭い箱で 2 列に収まる。 */
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list:has(> li > .img + .info) {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 28px 20px;
	margin: 24px auto;
	max-width: var(--wp--style--global--content-size, 760px);
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li:has(> .img + .info) {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--surface, #f4f2f3);
}
ul.wp-block-list > li > .img {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #eee;
}
ul.wp-block-list > li > .img img,
ul.wp-block-list > li > .img a img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease;
}
ul.wp-block-list > li > .img a:hover img {
	transform: scale(1.04);
}
ul.wp-block-list > li > .info {
	padding: 18px 20px 24px;
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li > .info h3 {
	margin: 0 0 8px;
	padding: 0;
	font-family: var(--wp--custom--brand-heading);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.04em;
	color: var(--text, #111);
	border: 0;
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li > .info h3::before {
	content: none;
}
ul.wp-block-list > li > .info h3 a {
	color: inherit;
	text-decoration: none;
	border: 0;
	transition: color 0.2s;
}
ul.wp-block-list > li > .info h3 a:hover {
	color: var(--wp--preset--color--brand-primary, var(--aureate, #b89766));
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li > .info p {
	margin: 0;
	font-family: var(--wp--custom--brand-body);
	font-size: 13px;
	line-height: 1.75;
	color: var(--warm-grey, #555);
}

/* === ホテル画像リスト：参加ホテルの特典（li 内に img + h5） === */
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list:has(> li > div > img) {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 24px 20px;
	margin: 16px auto 32px;
	max-width: var(--wp--style--global--content-size, 760px);
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li:has(> div > img) {
	margin: 0;
	padding: 0;
	text-align: center;
}
ul.wp-block-list > li > div > img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li > h5 {
	margin: 10px 0 0;
	font-family: var(--wp--custom--brand-heading);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--text, #111);
}

/* === 参加ホテルセクション（hotel_area の h3 → h4 リズム） ===
   alignfull h2「参加ホテルの特典」配下のグループ見出しは control 色のラベル風に。
   グループ見出しの体裁: h3 は中央寄せのバッジ、h4 はブランド色の左ボーダー。 */
:is(.entry-content, [class*="wp-block-post-content"]) h3.wp-block-heading + h4.wp-block-heading,
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list + h4.wp-block-heading {
	margin-top: 24px;
}

/* === 注記リスト（ul の中が ※ 始まりの短い行） ===
   benefits の各セクション末尾にある「※○○○」リストは本文より弱く小さく出す。 */
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li:where(:not(:has(> div)):not(:has(> .img))) {
	/* 通常の箇条書きはそのまま。ここではホテル/カードでない一般 li を保護 */
}
:is(.entry-content, [class*="wp-block-post-content"]) ul.wp-block-list > li:first-child:where(:not(:has(> div)):not(:has(> .img + .info))) {
	/* ※始まりの注釈はサイズ・色を控えめに */
}

/* === ダイヤモンドクラブ 特典利用例 の料金計算テーブル ===
   2 列の料金比較表。
   - 単独 td 行（「通常料金で計算すると」「合計 約 XXX 円」）は colspan されていないが
     left/right の自然分割で見栄えが崩れるため、:has(> tr:has(> td:only-child)) で
     行ごとにスタイルを切り替える。 */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-table table:has(tr > td:only-child) {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 760px);
	margin: 12px auto;
	border-top: 0;
	font-family: var(--wp--custom--brand-body);
	font-size: 14px;
	border-collapse: separate;
	border-spacing: 0;
}
/* 単独 td 行（ヘッダー／合計）は背景帯にして 2 列分の幅を取る */
.wp-block-table table:has(tr > td:only-child) tr:has(> td:only-child) {
	display: block;
}
.wp-block-table table:has(tr > td:only-child) tr:has(> td:only-child) td {
	display: block;
	border: 0;
	padding: 12px 18px;
	background: var(--wp--preset--color--surface, #f4f2f3);
	text-align: center;
	font-family: var(--wp--custom--brand-heading);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--text, #111);
}
/* ヘッダー行（先頭）はブランド色ラベル、合計行は通常テキスト＋強調 */
.wp-block-table table:has(tr > td:only-child) tr:first-child:has(> td:only-child) td {
	color: var(--wp--preset--color--brand-primary, var(--aureate, #b89766));
	background: transparent;
	border-bottom: 1px solid color-mix(in srgb, var(--aureate, #b89766) 40%, transparent);
	padding-bottom: 14px;
	letter-spacing: 0.1em;
}
.wp-block-table table:has(tr > td:only-child) tr:last-child:has(> td:only-child) td {
	background: color-mix(in srgb, var(--aureate, #b89766) 8%, var(--wp--preset--color--surface, #f4f2f3));
	font-size: 17px;
}
.wp-block-table table:has(tr > td:only-child) tr:last-child:has(> td:only-child) td b {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--text, #111);
}
.wp-block-table table:has(tr > td:only-child) tr:last-child:has(> td:only-child) td b.red {
	color: #c0392b;
}
/* 2 列のアイテム行（明細）：item 左寄せ／price 右寄せ・tabular-numbers */
.wp-block-table table:has(tr > td:only-child) tr:has(> td + td) {
	display: grid;
	grid-template-columns: 1fr auto;
}
.wp-block-table table:has(tr > td:only-child) tr:has(> td + td) td {
	border: 0;
	padding: 12px 18px;
	border-bottom: 1px solid color-mix(in srgb, var(--aureate, #b89766) 12%, transparent);
	font-size: 14px;
	line-height: 1.6;
}
.wp-block-table table:has(tr > td:only-child) tr:has(> td + td) td:first-child {
	color: var(--text, #111);
}
.wp-block-table table:has(tr > td:only-child) tr:has(> td + td) td:last-child {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--text, #111);
	font-weight: 500;
}

/* === lp-area 直下のテキスト系コンテンツは標準幅（content-size = 760）に絞る ===
   alignfull な h2 と alignwide な lp-section / カードグリッド以外は、本文として
   読みやすい 760 幅に揃える。h3／h4／本文 p／注記 ul のフラット並びを補正。 */
:is(.entry-content, [class*="wp-block-post-content"]) .lp-area > h3.wp-block-heading:not(.alignfull):not(.alignwide),
:is(.entry-content, [class*="wp-block-post-content"]) .lp-area > h4.wp-block-heading:not(.alignfull):not(.alignwide),
:is(.entry-content, [class*="wp-block-post-content"]) .lp-area > h5.wp-block-heading:not(.alignfull):not(.alignwide),
:is(.entry-content, [class*="wp-block-post-content"]) .lp-area > p.wp-block-paragraph:not(.alignfull):not(.alignwide):not(.dc-coupon-callout),
:is(.entry-content, [class*="wp-block-post-content"]) .lp-area > ul.wp-block-list:not(.alignfull):not(.alignwide):not(:has(> li > .img + .info)):not(:has(> li > div > img)) {
	max-width: var(--wp--style--global--content-size, 760px);
	margin-inline: auto;
}

/* === core/list-item ブロックスタイル「注記（※）」===
   先頭が ※ で始まる注記項目を控えめ表示にする。デフォルトのバレットを消し、
   ※ 自体を行頭マーカーに見せる。文字は控えめサイズ＋ muted カラー。
   通常項目と混在するリストでも、注記項目だけが個別に控えめになる。 */
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) .wp-block-list > li.is-style-note {
	position: relative;
	padding-left: 1.5em;
	font-size: 13px;
	line-height: 1.65;
	color: #383838;
	list-style: none;
}
/* 段落版の注記・備考（is-style-note を付けた p）。コピーライト／権利表記／備考などの
   小さな但し書きを ※注記の li と同じ控えめサイズ・色に揃える（行頭 ※ マーカーは付けない）。 */
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) p.is-style-note {
	font-size: 13px;
	line-height: 1.65;
	color: #383838;
}
/* ※ マーカーはリストスタイルとして ::before で左端に固定描画する。
   本文は padding-left:1.5em で右に開始し、折り返し2行目以降も本文左端に揃う。
   migration 側で li テキスト先頭の ※ は除去済み（マーカーの二重表示を防ぐ）。 */
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) .wp-block-list > li.is-style-note::before {
	content: "※";
	position: absolute;
	left: 0;
	top: 0;
}
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) .wp-block-list > li.is-style-note + li.is-style-note {
	margin-top: 1px;
}
/* 通常項目の直後に注記が続く場合は、注記ブロックを本文から少し離す。 */
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) .wp-block-list > li:not(.is-style-note) + li.is-style-note {
	margin-top: 10px;
}
/* 全項目が注記の <ul> はリスト既定の左パディング（バレット用）を消し、
   ※ の文字を本文と同じ左端に揃える。 */
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) ul.wp-block-list:has(> li.is-style-note):not(:has(> li:not(.is-style-note))) {
	padding-left: 0;
}
/* ※注記の中に入れ子の通常リスト（※のサブ項目。例: キャンセル料の内訳）がある場合、
   入れ子項目も注記本体と同じ控えめなサイズ・行間・色に揃える（本文サイズに戻って浮かないように）。
   色は親の注記項目から継承する（地色に応じた muted 色を引き継ぐ）。 */
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) .wp-block-list > li.is-style-note ul.wp-block-list,
:is(.entry-content, [class*="wp-block-post-content"], .intro-lead) .wp-block-list > li.is-style-note ul.wp-block-list li {
	font-size: 13px;
	line-height: 1.65;
	color: inherit;
}
/* 隣接するリスト同士は余白を取る（blockGap=0 環境で ul が連続すると詰まって
   別リストの境界が分からなくなるため）。特に単独 ※段落が別 ul に分離されたケースで
   直前リストにくっついて見えるのを防ぐ。 */
:is(.entry-content, [class*="wp-block-post-content"]) .wp-block-list + .wp-block-list {
	margin-top: 12px;
}

/* === 見出し（h1〜h5）のウェイトとサイズ ===
   階層感のため weight を見出しレベルで変える：上位（h1/h2）は太く、下位（h3〜h5）はやや太く。
   ウェイトは theme.json の custom 変数で一元管理する（直値は使わない）:
   - h1/h2：var(--wp--custom--heading-weight)
   - h3/h4/h5：var(--wp--custom--heading-weight-sub)
   - h4：本文よりわずかに大きい（17〜18px）
   - h5：本文と同じ 15px（小見出しとして抑え、weight だけで本文と区別）
   フロント／エディタ両方に効かせる。h5 はコアの medium プリセット(clamp 14-20px)を
   上書きするため十分な詳細度で 15px を当てる。alignfull の h2 区切りはサイズ別管理（既存）。 */
:is(.entry-content, [class*="wp-block-post-content"]) :is(h1, h2).wp-block-heading,
.editor-styles-wrapper :is(h1, h2).wp-block-heading {
	font-weight: var(--wp--custom--heading-weight, 900);
}
:is(.entry-content, [class*="wp-block-post-content"]) :is(h3, h4, h5).wp-block-heading,
.editor-styles-wrapper :is(h3, h4, h5).wp-block-heading {
	font-weight: var(--wp--custom--heading-weight-sub, 800);
}
:is(.entry-content, [class*="wp-block-post-content"]) h4.wp-block-heading,
.editor-styles-wrapper h4.wp-block-heading {
	font-size: clamp(17px, 1.6vw, 18px);
	line-height: 1.55;
}
:is(.entry-content, [class*="wp-block-post-content"]) h5.wp-block-heading,
.editor-styles-wrapper h5.wp-block-heading {
	font-size: 15px;
	line-height: 1.7;
}

/* 本文リンクの種別アイコン（テンプレート/ブロックは変更せず CSS のみで付与）。
   - PDF へのリンク（href が .pdf）: 文書（file-text）アイコン（白黒・文字色に追従）
   - 別ウィンドウ（target="_blank"・PDF以外）: 外部リンク（別窓）アイコン（文字色に追従）
   ボタン・画像リンク・SNS アイコン（.social-link）には付けない。両条件が重なる場合は PDF を
   優先（1要素 ::after は1つのため）。いずれも mask＋background-color:currentColor で文字色追従。
   SNS は中身が inline SVG（:has(img) で弾けない）ため、エディタ canvas（.editor-styles-wrapper を
   スコープに含む）で誤ってアイコンが付かないよう .social-link を明示除外する。 */
:is(.entry-content, [class*="wp-block-post-content"], .lp-area, .lp-section__body, .intro-lead, .editor-styles-wrapper)
	a[href$=".pdf" i]:not(.wp-element-button):not(:has(img))::after {
	content: "";
	display: inline-block;
	width: 0.82em;
	height: 0.82em;
	margin-left: 0.3em;
	vertical-align: -0.12em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3Cline x1='9' y1='9' x2='11' y2='9'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3Cline x1='9' y1='9' x2='11' y2='9'/%3E%3C/svg%3E") center / contain no-repeat;
}
:is(.entry-content, [class*="wp-block-post-content"], .lp-area, .lp-section__body, .intro-lead, .editor-styles-wrapper)
	a[target="_blank"]:not([href$=".pdf" i]):not(.wp-element-button):not(.social-link):not(:has(img))::after {
	content: "";
	display: inline-block;
	width: 0.78em;
	height: 0.78em;
	margin-left: 0.28em;
	vertical-align: -0.04em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 個室一覧（hilton/restaurant-private-list）。レストランごとに導入帯＋個室カード
   （3列・8:5）＋個室プランカード。色/フォントはテーマトークンで統一。 */
.restaurant-private-list .private-list-nav {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px;
	margin-bottom: var(--wp--preset--spacing--section, 56px);
}
.restaurant-private-list .private-list-nav a {
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-size: 13px; font-weight: 600; letter-spacing: 0.08em;
	color: var(--aureate, #b89766); text-decoration: none; padding-bottom: 2px;
	border-bottom: 1px solid transparent;
}
.restaurant-private-list .private-list-nav a:hover { border-bottom-color: currentColor; }
.restaurant-private-list .private-rest-section { scroll-margin-top: 120px; }
.restaurant-private-list .private-rest-section + .private-rest-section { margin-top: 64px; }
/* 導入帯：スノー地は 100vw でフルブリード、右に店舗画像（左へグラデでフェード）、本文は左寄せ。 */
.restaurant-private-list .private-rest-intro {
	position: relative; isolation: isolate; margin-bottom: 32px; padding: 36px 0;
}
.restaurant-private-list .private-rest-intro::before {
	content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 100vw;
	transform: translateX(-50%); background: var(--wp--preset--color--surface, #f4f2f3); z-index: -2;
}
/* 右側の装飾画像（左→透明のグラデでスノー地へフェード）。画像は --rest-img で渡す。 */
.restaurant-private-list .private-rest-intro[data-has-img]::after {
	content: ""; position: absolute; top: 0; bottom: 0; z-index: -1; pointer-events: none;
	/* ガター（padding）分まで右に張り出して画面端側まで画像を見せる。 */
	right: calc(-1 * var(--gutter, 32px));
	width: clamp(220px, 34vw, 460px);
	background-image:
		linear-gradient(to right, var(--wp--preset--color--surface, #f4f2f3) 0%,
			color-mix(in srgb, var(--wp--preset--color--surface, #f4f2f3) 50%, transparent) 28%, transparent 60%),
		var(--rest-img);
	background-size: cover; background-position: right center; background-repeat: no-repeat;
}
.restaurant-private-list .private-rest-intro .text {
	display: flex; flex-direction: column; gap: 20px; align-items: flex-start;
	padding-right: clamp(220px, 34vw, 460px);
}
/* テキスト群（アイブロウ・店名・導入文・注記）。内側は詰めの縦リズム。 */
.restaurant-private-list .private-rest-prose {
	display: flex; flex-direction: column; gap: 8px; align-items: flex-start;
}
.restaurant-private-list .private-rest-prose > * { margin: 0; }
/* 予約ボタン群：折り返し時も含め上下左右に間隔を空ける。 */
.restaurant-private-list .private-room-buttons {
	display: flex; flex-wrap: wrap; gap: 12px; margin: 0;
}
.restaurant-private-list .private-rest-intro[data-has-img] .private-room-lead { max-width: none; }
.restaurant-private-list .private-rest-intro .eyebrow {
	font-family: var(--wp--custom--brand-ui, var(--wp--custom--brand-body));
	font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--aureate, #b89766); margin: 0;
}
.restaurant-private-list .private-rest-intro h2 {
	font-family: var(--wp--custom--brand-heading);
	font-weight: 700; font-size: clamp(17px, 1.8vw, 21px); line-height: 1.4; letter-spacing: 0.06em;
	color: var(--aureate, #b89766); margin: 0;
}
.restaurant-private-list .private-rest-intro .private-room-lead {
	font-size: 14px; line-height: 1.95; color: #333; margin: 0;
}
.restaurant-private-list .private-rest-intro .restaurant-link { margin: 0; }
.restaurant-private-list .private-rest-intro .restaurant-link .wp-block-button__link { font-size: 13px; padding: 8px 20px; }
.restaurant-private-list .restaurant-link .wp-block-button__link:hover { text-decoration: none; }
/* 個室／個室プランの見出し：要素は h3（階層維持）だが、他ページの区切り見出し h2 と同じ
   装飾（フォント・色・上罫線・中央寄せ・セクション余白）に揃える。値は h2 と同一。 */
.restaurant-private-list .private-section-head.wp-block-heading {
	position: relative;
	font-family: var(--wp--custom--brand-heading);
	font-weight: var(--wp--custom--heading-weight, 700);
	font-size: clamp(20px, 2vw, 23px);
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--aureate, #b89766);
	text-align: center;
	margin: var(--wp--preset--spacing--section) auto 28px;
	padding-top: var(--wp--preset--spacing--section);
}
.restaurant-private-list .private-section-head.wp-block-heading::before {
	content: ""; position: absolute; top: 0; left: 50%; width: 100vw;
	transform: translateX(-50%); border-top: 1px solid var(--wp--preset--color--line, #ececec);
}
/* 導入帯の直後（最初の「個室」見出し）は罫線・上余白を出さない（帯が区切りを担う）。 */
.restaurant-private-list .private-rest-intro + .private-section-head.wp-block-heading {
	margin-top: 0; padding-top: 0;
}
.restaurant-private-list .private-rest-intro + .private-section-head.wp-block-heading::before {
	display: none;
}
/* 個室カードグリッド（3列・8:5 cover） */
.restaurant-private-list .private-rooms-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 24px; max-width: 1080px; margin: 0 auto;
}
.restaurant-private-list .private-room-card { display: flex; flex-direction: column; margin: 0; }
.restaurant-private-list .private-room-card .ph {
	aspect-ratio: 8 / 5; overflow: hidden; background: var(--wp--preset--color--surface, #f4f2f3);
}
.restaurant-private-list .private-room-card .ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.restaurant-private-list .private-room-card .body { padding: 14px 0 0; }
.restaurant-private-list .private-room-card h3 {
	font-family: var(--wp--custom--brand-heading);
	font-weight: 700; font-size: 15px; line-height: 1.5; letter-spacing: 0.04em; color: #111; margin: 0;
}
.restaurant-private-list .private-room-card p { font-size: 13px; line-height: 1.85; color: #333; margin-top: 10px; }
/* 個室プランカード（320＋1fr、全体リンク） */
.restaurant-private-list .private-plan-card {
	display: grid; grid-template-columns: 320px 1fr; gap: 28px; text-decoration: none; color: inherit;
	align-items: center; max-width: 880px; margin: 0 auto;
}
.restaurant-private-list .private-plan-card .ph { overflow: hidden; background: var(--wp--preset--color--surface, #f4f2f3); }
.restaurant-private-list .private-plan-card .ph img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; transition: transform .6s ease; }
.restaurant-private-list .private-plan-card:hover .ph img { transform: scale(1.04); }
.restaurant-private-list .private-plan-card .body { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.restaurant-private-list .private-plan-card h4 {
	font-family: var(--wp--custom--brand-heading);
	font-weight: 700; font-size: 15px; line-height: 1.55; letter-spacing: 0.04em; color: #111; margin: 0;
}
.restaurant-private-list .private-plan-card p { font-size: 13px; line-height: 1.9; color: #333; margin: 0; }
.restaurant-private-list .private-plan-card .tags { display: flex; flex-wrap: wrap; gap: 4px; }
.restaurant-private-list .private-plan-card .tag {
	font-size: 10px; font-weight: 600; padding: 3px 8px; letter-spacing: 0.04em;
	background: color-mix(in srgb, var(--aureate, #b89766) 10%, #fff); color: var(--aureate, #b89766);
	border: 1px solid color-mix(in srgb, var(--aureate, #b89766) 25%, transparent);
}
.restaurant-private-list .private-plan-card .plan-detail-btn {
	font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--aureate, #b89766);
	padding: 10px 24px; border: 1px solid var(--aureate, #b89766); margin-top: 6px; transition: background .2s, color .2s;
}
.restaurant-private-list .private-plan-card:hover .plan-detail-btn { background: var(--aureate, #b89766); color: #fff; }
@media (max-width: 900px) {
	.restaurant-private-list .private-rooms-grid { grid-template-columns: 1fr 1fr; }
	.restaurant-private-list .private-plan-card { grid-template-columns: 1fr; gap: 14px; max-width: 480px; }
}
@media (max-width: 800px) {
	/* 狭幅では装飾画像を隠し、本文を全幅に。 */
	.restaurant-private-list .private-rest-intro[data-has-img]::after { display: none; }
	.restaurant-private-list .private-rest-intro .text { padding-right: 0; }
}
@media (max-width: 600px) {
	.restaurant-private-list .private-rooms-grid { grid-template-columns: 1fr; max-width: 400px; }
}

/* タイトル(h1)直下の言語切替（Polylang）。日本語 ／ English を中央寄せで控えめに。 */
.title-lang-switcher.wp-block-polylang-language-switcher {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.title-lang-switcher.wp-block-polylang-language-switcher li { margin: 0; }
.title-lang-switcher.wp-block-polylang-language-switcher li + li::before {
	content: "／";
	opacity: 0.4;
	margin: 0 8px;
}
.title-lang-switcher.wp-block-polylang-language-switcher a {
	font-size: 13px;
	letter-spacing: 0.04em;
	opacity: 0.7;
	text-decoration: none;
}
.title-lang-switcher.wp-block-polylang-language-switcher a:hover { opacity: 1; }
.title-lang-switcher.wp-block-polylang-language-switcher .current-lang a { font-weight: 700; opacity: 1; }

/* 言語切り替えのおすすめ帯（hilton/lang-suggest）。ヘッダー直下に出る控えめな全幅バー。
   既定は hidden（PHP 出力）で、ブラウザ第一言語が一致したときだけ JS が表示する。 */
.lang-suggest { background: var(--wp--preset--color--surface, #f6f3ee); }
.lang-suggest__inner { max-width: 1320px; margin: 0 auto; padding: 9px 32px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 16px; font-family: var(--wp--custom--brand-body); font-size: 13px; color: var(--wp--preset--color--text, #111); letter-spacing: 0.02em; }
.lang-suggest__msg { opacity: 0.85; }
.lang-suggest__cta { font-weight: 700; color: var(--aureate, #b89766); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.lang-suggest__cta:hover { opacity: 0.8; }
.lang-suggest__close { margin-left: 4px; background: none; border: 0; cursor: pointer; font-size: 18px; line-height: 1; color: var(--wp--preset--color--text, #111); opacity: 0.5; padding: 0 4px; }
.lang-suggest__close:hover { opacity: 1; }
@media (max-width: 600px) {
	.lang-suggest__inner { padding: 8px 16px; font-size: 12px; }
}
