@charset "UTF-8";
/*
Theme Name:  Blocksy Child — FPS HP
Theme URI:   https://forestprivatesaunahokkaidou.com/
Description: Forest Private Sauna HOKKAIDOU 本体ホームページ用の Blocksy 子テーマ。設計書 design.md（作業フォルダ）v1.3 のデザイントークンとコンポーネントを実装。⚠ 予約サイトの blocksy-child とは別物。
Author:      FPS HP 管理（fpshp）
Template:    blocksy
Version:     1.0.0
Text Domain: blocksy-child
*/

/* =============================================================================
   目次
   1. デザイントークン（--fpshp-*）— 数値を直接書いてよいのはこのブロックだけ
   2. ベース（書体・色・リンク・フォーカス・モーション）
   3. 帯（fpshp-band）と見出しセット（fpshp-heading）
   4. ヒーロー・風景帯
   5. ボタン
   6. カード・実績バー・ステップ
   7. 棟紹介（スライダー）
   8. 備品・オプション
   9. 料金（会員別情報 → 一般料金 → 会員料金）
   10. NEWS・SNS・アクセス
   11. ヘッダー／フッター（Blocksy の上書き）
   12. 下層ページ（題名帯・FAQ・規約・投稿・404）
   13. 固定 CTA（SP 下部バー・PC 浮遊ボタン）
   14. ユーティリティ・レスポンシブ
   ============================================================================= */

/* =============================================================================
   1. デザイントークン
   ============================================================================= */
:root {
	/* ベース色 */
	--fpshp-dark:        #1A1A17;
	--fpshp-dark-2:      #2C2C25;
	--fpshp-dark-3:      #3D3D33;
	--fpshp-cream:       #FAF8F5;
	--fpshp-warm-white:  #F5F3EF;
	--fpshp-sand:        #E8E6DF;
	--fpshp-white:       #FFFFFF;

	/* ブランド色 */
	--fpshp-olive:       #86866C;
	--fpshp-olive-dark:  #5C5C4A;
	--fpshp-olive-light: #A8A890;
	--fpshp-gold:        #C9A96E;
	--fpshp-gold-light:  #E8D5A8;
	--fpshp-terra:       #C4956A;

	/* 文字色 */
	--fpshp-text:        #3A3A32;
	--fpshp-text-light:  #7A7A6A;
	--fpshp-text-muted:  #9E9E8C;
	--fpshp-text-on-dark:       rgba(255, 255, 255, .92);
	--fpshp-text-on-dark-light: rgba(255, 255, 255, .65);

	/* 状態色 */
	--fpshp-success: #4E7F5E;
	--fpshp-warning: #C89B3F;
	--fpshp-error:   #B85450;
	--fpshp-info:    #6A8AA6;

	/* 透過（オリーブの淡い面） */
	--fpshp-olive-tint-4:  rgba(134, 134, 108, .04);
	--fpshp-olive-tint-8:  rgba(134, 134, 108, .08);
	--fpshp-olive-tint-12: rgba(134, 134, 108, .12);
	--fpshp-olive-tint-20: rgba(134, 134, 108, .20);

	/* ── 文字のルール（2026-11-01 制定。新しく文字を足すときは必ずこの表から選ぶ。px の直書き・em での拡大縮小はしない）──
	   書体 3 種（役割で選ぶ）
	     明朝   --fpshp-font-serif   … 見出し（h1〜h4・棟名・カード見出し）と、写真に重ねる文（ヒーロー・導入・風景帯）
	     ゴシック --fpshp-font-sans    … それ以外の日本語すべて（本文・説明・表・ボタン・メニュー・ラベル・注記・フッター）
	     欧文   --fpshp-font-display … 英字の添え字（Features など）と数字（価格・実績・日付・STEP 番号・Q / A）だけ
	   大きさ 6 段階（役割で選ぶ。スマホ → PC は token が自動で縮む）
	     fs-1 12px        … ラベル・バッジ・注記・日付・コピーライト・下部バー
	     fs-2 14px        … 説明文（カード・表・補足・抜粋）・メニュー・フッターのリンク・英字の添え字
	     fs-3 16px        … 本文（リード・FAQ・規約・記事）・写真に重ねる文・ボタン・小見出し（h4・規約の条）
	     fs-4 20 → 24px   … h3（カード見出し・記事や規約の章・小さな見出しセット）・品物の価格
	     fs-5 28 → 40px   … h1 / h2（ページ題名・帯の見出し）・棟名・実績の数字
	     fs-6 32 → 56px   … 特大（風景帯の一文・料金の大きな金額）
	   例外は 1 つだけ: ヒーロー（1 画面の写真）の中の文字は、スマホでは 1 段下げる（1 画面に収めるため）
	   太さ: 本文 400 ／ メニュー・ボタン・品物名 500 ／ 見出し・強調 700 */
	/* 書体 3 種 */
	--fpshp-font-serif:   "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
	--fpshp-font-sans:    "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	--fpshp-font-display: "Cormorant Garamond", "Noto Serif JP", serif;

	/* 文字サイズ 6 段階 */
	--fpshp-fs-1: .75rem;
	--fpshp-fs-2: .875rem;
	--fpshp-fs-3: 1rem;
	--fpshp-fs-4: clamp(1.25rem, 2.2vw, 1.5rem);
	--fpshp-fs-5: clamp(1.75rem, 3.5vw, 2.5rem);
	--fpshp-fs-6: clamp(2rem, 5vw, 3.5rem);

	/* 行間・字間 */
	--fpshp-lh-tight: 1.4;
	--fpshp-lh-base:  1.8;
	--fpshp-ls-wide:  .3em;
	--fpshp-ls-head:  .05em;
	--fpshp-ls-body:  .03em;

	/* 余白 9 段階（8px グリッド） */
	--fpshp-space-1: 4px;
	--fpshp-space-2: 8px;
	--fpshp-space-3: 12px;
	--fpshp-space-4: 16px;
	--fpshp-space-5: 24px;
	--fpshp-space-6: 32px;
	--fpshp-space-7: 48px;
	--fpshp-space-8: 64px;
	--fpshp-space-9: 96px;
	--fpshp-section-pad:      clamp(64px, 9vw, 120px);
	--fpshp-section-pad-wide: clamp(96px, 13.5vw, 180px);
	/* 余白のルール（3 章の「余白のルール」）。PC 値は下の @media (min-width: 782px) で上書き */
	--fpshp-flow:        48px; /* L2 帯の中のかたまり同士 */
	--fpshp-flow-head:   48px; /* L2 見出しセット → 最初のかたまり */
	--fpshp-flow-tight:  24px; /* L2 かたまりに付く小さな要素（「お知らせ一覧へ」など） */
	--fpshp-col-gap:     24px; /* L3 並び（カード・品物・地図とカード）の間隔 */
	--fpshp-col-gap-media: 24px; /* L3 写真と文の横並び（棟紹介）の間隔 */
	--fpshp-gutter: 24px;

	/* 角丸 */
	--fpshp-radius-sm:   8px;
	--fpshp-radius-md:   12px;
	--fpshp-radius-lg:   16px;
	--fpshp-radius-pill: 50px;

	/* 影 */
	--fpshp-shadow-sm:  0 2px 8px rgba(26, 26, 23, .04);
	--fpshp-shadow-md:  0 4px 20px rgba(26, 26, 23, .06);
	--fpshp-shadow-lg:  0 12px 40px rgba(26, 26, 23, .08);
	--fpshp-shadow-cta: 0 4px 20px rgba(134, 134, 108, .30);
	--fpshp-shadow-cta-hover: 0 6px 30px rgba(134, 134, 108, .40);
	--fpshp-shadow-img-on-dark: 0 20px 60px rgba(0, 0, 0, .45);

	/* モーション */
	--fpshp-ease: cubic-bezier(.16, 1, .3, 1);
	--fpshp-dur-fast: .25s;
	--fpshp-dur-base: .4s;
	--fpshp-dur-slow: .8s;

	/* 幅 */
	--fpshp-container: 1200px;
	--fpshp-article:   900px;
	--fpshp-prose:     680px;
	--fpshp-price-w:   960px;

	/* 部品サイズ */
	--fpshp-btn-h-l: 56px;
	--fpshp-btn-h-m: 48px;
	--fpshp-btn-h-s: 40px;
	--fpshp-icon-l: 56px;
	--fpshp-icon-m: 40px;
	--fpshp-header-h: 72px;
	--fpshp-header-h-sticky: 60px;
	--fpshp-header-h-sp: 56px;
	--fpshp-bottombar-h: 60px;
	--fpshp-person-w: 40px;
	--fpshp-person-h: 80px;

	/* 料金の人数イラスト（mask で使う。色は background で付ける） */
	--fpshp-mask-person: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 80'%3E%3Ccircle cx='20' cy='9' r='8'/%3E%3Cpath d='M11 20H29A6 6 0 0 1 35 26V46A3 3 0 0 1 29 46V30H28V76A4 4 0 0 1 21 76V50H19V76A4 4 0 0 1 12 76V30H11V46A3 3 0 0 1 5 46V26A6 6 0 0 1 11 20Z'/%3E%3C/svg%3E");
	--fpshp-mask-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18'%3E%3Cpath d='M3 17H23L26 5L18.5 10L13 1L7.5 10L0 5Z'/%3E%3C/svg%3E");
}
/* 列ブロックが横に並ぶ幅（コアの 782px）からは PC の余白 */
@media (min-width: 782px) {
	:root { --fpshp-flow: 64px; --fpshp-col-gap: 32px; --fpshp-col-gap-media: 64px; }
}

/* =============================================================================
   2. ベース
   ============================================================================= */
/* Blocksy が自分で書体を決めている所（フッター・お知らせ一覧の抜粋や日付など）も、ゴシックをサイトの書体に */
:root:root { --theme-font-family: var(--fpshp-font-sans); }
body {
	font-family: var(--fpshp-font-sans);
	font-size: var(--fpshp-fs-3);
	line-height: var(--fpshp-lh-base);
	letter-spacing: var(--fpshp-ls-body);
	color: var(--fpshp-text);
	background-color: var(--fpshp-warm-white);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title, .page-title {
	font-family: var(--fpshp-font-serif);
	font-weight: 700;
	line-height: var(--fpshp-lh-tight);
	letter-spacing: var(--fpshp-ls-head);
	color: var(--fpshp-dark-2);
}
h1 { font-size: var(--fpshp-fs-5); }
h2 { font-size: var(--fpshp-fs-5); }
h3 { font-size: var(--fpshp-fs-4); }
h4, h5, h6 { font-size: var(--fpshp-fs-3); }

.entry-content a:not(.wp-block-button__link):not(.fpshp-btn):not(.fpshp-card):not(.fpshp-news__link) {
	color: var(--fpshp-olive-dark);
	text-decoration: none;
	transition: color var(--fpshp-dur-fast) var(--fpshp-ease);
}
.entry-content a:not(.wp-block-button__link):not(.fpshp-btn):not(.fpshp-card):not(.fpshp-news__link):hover {
	color: var(--fpshp-olive);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.fpshp-band--dark .entry-content a:not(.wp-block-button__link):not(.fpshp-btn),
.fpshp-band--dark a:not(.wp-block-button__link):not(.fpshp-btn) { color: var(--fpshp-gold); }

:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(134, 134, 108, .35);
	border-radius: var(--fpshp-radius-sm);
}
::selection { background: var(--fpshp-gold-light); color: var(--fpshp-dark); }

img { height: auto; }

/* 文字のルール（1 章の表）を、Blocksy や本文の中の決め打ちに勝たせる所（2026-11-01）
   - フッターのリンク・本文: fs-2（PC で 16px になっていた）。ボタン形のリンク（予約まわり 3 つ）は ボタン = fs-3
   - お知らせ一覧: 抜粋 = 説明文 fs-2／カテゴリー名 = ラベル fs-1／日付 = 数字（欧文）fs-1
   - 会員規約（本文の中の <style> が 15px・1.35em などで決めていた）: 本文 fs-3／章 = fs-4 明朝／条・目次の題 = fs-3 明朝／表 fs-2／改定日 fs-1 */
footer.ct-footer .ct-widget, footer.ct-footer .ct-widget p, footer.ct-footer .ct-widget li, footer.ct-footer .ct-widget a { font-size: var(--fpshp-fs-2); }
footer.ct-footer .ct-widget small { font-size: var(--fpshp-fs-1); }
footer.ct-footer [data-column="widget-area-4"] .ct-widget a { font-size: var(--fpshp-fs-3); }
.archive .entry-card .entry-excerpt, .archive .entry-card .entry-excerpt p, .search .entry-card .entry-excerpt p { font-size: var(--fpshp-fs-2); }
.entry-card .entry-meta, .entry-card .entry-meta a { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-1); }
.entry-card .entry-meta time, .single-post .entry-meta time { font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-1); }
body .fpshp-article .fps-terms { font-size: var(--fpshp-fs-3); }
body .fpshp-article .fps-terms .fps-terms-h2 { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-4); }
body .fpshp-article .fps-terms .fps-terms-h3, body .fpshp-article .fps-terms .fps-terms-toc-title { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-3); }
body .fpshp-article .fps-terms table, body .fpshp-article .fps-terms td, body .fpshp-article .fps-terms th { font-size: var(--fpshp-fs-2); }
body .fpshp-article .fps-terms .fps-terms-meta, body .fpshp-article .fps-terms .fps-terms-meta span { font-size: var(--fpshp-fs-1); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* =============================================================================
   3. 帯（fpshp-band）と見出しセット
   - 帯は「グループブロック（全幅）」に追加 CSS クラスを付けて作る。
   - 背景色はブロック側で設定せず、ここで決める（色変更が 1 か所で済む）。
   ============================================================================= */
.fpshp-band {
	padding-top: var(--fpshp-section-pad);
	padding-bottom: var(--fpshp-section-pad);
	padding-left: var(--fpshp-gutter);
	padding-right: var(--fpshp-gutter);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.fpshp-band > * { max-width: var(--fpshp-container); margin-left: auto; margin-right: auto; }
.fpshp-band--light { background: var(--fpshp-warm-white); color: var(--fpshp-text); }
.fpshp-band--cream { background: var(--fpshp-cream); color: var(--fpshp-text); }
.fpshp-band--dark  { background: var(--fpshp-dark); color: var(--fpshp-text-on-dark); }
.fpshp-band--dark h1, .fpshp-band--dark h2, .fpshp-band--dark h4 { color: #fff; }
.fpshp-band--dark h3 { color: var(--fpshp-gold-light); }
.fpshp-band--dark p { color: var(--fpshp-text-on-dark); }
.fpshp-band--wide { padding-top: var(--fpshp-section-pad-wide); padding-bottom: var(--fpshp-section-pad-wide); }
.fpshp-band--tight { padding-top: var(--fpshp-space-8); padding-bottom: var(--fpshp-space-8); }

/* 余白のルール（サイト共通・2026-10-26 制定）
   L1 帯の上下         = --fpshp-section-pad（SP 64 → PC 120）。下層ページの本文帯は --tight（64）
   L2 帯の中の縦の間隔 = 見出しセット → 最初のかたまり 48（--fpshp-flow-head）
                         かたまり同士 SP 48 / PC 64（--fpshp-flow）
                         かたまりに付く「一覧へ」などの小さな要素 24（--fpshp-flow-tight）
   L3 並びの間隔       = カード・品物・地図とカード SP 24 / PC 32（--fpshp-col-gap。縦に積んだときも同じ値）
                         写真と文の横並び（棟紹介）SP 24 / PC 64（--fpshp-col-gap-media）
   L4 カードの内側     = PC 32 / SP 24、カードの中の要素同士 16
   帯の直下の子の上下 margin はブロック側（WP の blockGap・個別の margin）では決めず、ここで一括して決める */
.fpshp-band > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.fpshp-band > * + * { margin-top: var(--fpshp-flow) !important; }
.fpshp-band > .fpshp-heading + * { margin-top: var(--fpshp-flow-head) !important; }
.fpshp-band > .fpshp-news__more { margin-top: var(--fpshp-flow-tight) !important; }

/* 見出しセット: 英字添え字 → 見出し → リード */
.fpshp-heading { margin-bottom: var(--fpshp-space-7); }
.fpshp-heading__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--fpshp-space-3);
	margin: 0 0 var(--fpshp-space-2);
	font-family: var(--fpshp-font-display);
	font-size: var(--fpshp-fs-2);
	font-weight: 400;
	letter-spacing: var(--fpshp-ls-wide);
	text-transform: uppercase;
	color: var(--fpshp-olive);
	line-height: 1;
}
.fpshp-heading__eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; flex: 0 0 auto; }
.fpshp-heading__title {
	margin: 0 0 var(--fpshp-space-5) !important;
	font-family: var(--fpshp-font-serif);
	font-size: var(--fpshp-fs-5);
	font-weight: 700;
	letter-spacing: var(--fpshp-ls-head);
	line-height: var(--fpshp-lh-tight);
	color: var(--fpshp-dark-2);
}
/* 帯の中の小さな見出しセット（「オプションメニュー」など h3）は h3 = fs-4 */
.fpshp-heading--sub .fpshp-heading__title { font-size: var(--fpshp-fs-4); }
.fpshp-heading__lead {
	margin: 0;
	max-width: var(--fpshp-prose);
	font-size: var(--fpshp-fs-3);
	color: var(--fpshp-text-light);
}
.fpshp-heading--center { text-align: center; }
.fpshp-heading--center .fpshp-heading__eyebrow::before { display: none; }
.fpshp-heading--center .fpshp-heading__lead { margin-left: auto; margin-right: auto; }
.fpshp-band--dark .fpshp-heading__eyebrow { color: var(--fpshp-gold); }
.fpshp-band--dark .fpshp-heading__title   { color: #fff; }
.fpshp-band--dark .fpshp-heading__lead    { color: var(--fpshp-text-on-dark-light); }

/* 本文の幅（読みやすさ） */
.fpshp-prose { max-width: var(--fpshp-prose); }
.fpshp-prose p + p { margin-top: var(--fpshp-space-4); }

/* =============================================================================
   4. ヒーロー・風景帯
   - カバーブロック（全幅）にクラス fpshp-hero / fpshp-band--scenery を付ける。
   ============================================================================= */
.fpshp-hero.wp-block-cover {
	min-height: 100svh;
	margin: 0 !important;
	padding: 0 var(--fpshp-gutter) var(--fpshp-space-9);
	display: flex;
	align-items: flex-end;
	background-color: var(--fpshp-dark);
}
.fpshp-hero.wp-block-cover .wp-block-cover__background,
.fpshp-hero.wp-block-cover .wp-block-cover__gradient-background {
	background: linear-gradient(to top, rgba(26, 26, 23, .72) 0%, rgba(26, 26, 23, .35) 38%, rgba(26, 26, 23, .05) 70%, rgba(26, 26, 23, 0) 100%) !important;
	opacity: 1 !important;
}
.fpshp-hero .wp-block-cover__image-background { object-position: 50% 40%; }
.fpshp-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--fpshp-container);
	margin: 0 auto;
	text-align: center;
	color: #fff;
}
.fpshp-hero__lead { margin-left: auto !important; margin-right: auto !important; }
.fpshp-hero__actions.wp-block-buttons { justify-content: center; }
.fpshp-hero__trust { justify-content: center; }
.fpshp-hero__eyebrow {
	margin: 0 0 var(--fpshp-space-4) !important;
	font-family: var(--fpshp-font-display);
	font-size: var(--fpshp-fs-2);
	letter-spacing: var(--fpshp-ls-wide);
	text-transform: uppercase;
	color: var(--fpshp-gold-light);
	line-height: 1;
}
.fpshp-hero__title {
	margin: 0 0 var(--fpshp-space-5) !important;
	font-family: var(--fpshp-font-serif);
	font-size: var(--fpshp-fs-6);
	font-weight: 700;
	line-height: var(--fpshp-lh-tight);
	letter-spacing: .08em;
	color: #fff;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .35);
}
.fpshp-hero__lead {
	margin: 0 auto var(--fpshp-space-6) !important;
	max-width: var(--fpshp-prose);
	text-align: center;
	font-size: var(--fpshp-fs-3);
	color: var(--fpshp-text-on-dark-light);
	text-shadow: 0 1px 12px rgba(0, 0, 0, .4);
}
.fpshp-hero__actions { gap: var(--fpshp-space-4) !important; margin-bottom: var(--fpshp-space-6) !important; }
.fpshp-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: var(--fpshp-space-2) var(--fpshp-space-5);
	margin: 0 !important;
	padding: 0;
	list-style: none;
	font-size: var(--fpshp-fs-1);
	letter-spacing: var(--fpshp-ls-body);
	color: rgba(255, 255, 255, .6);
}
.fpshp-hero__trust li { display: inline-flex; align-items: center; gap: var(--fpshp-space-2); margin: 0; }
.fpshp-hero__trust li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--fpshp-gold); }
.fpshp-hero__scroll {
	position: absolute;
	right: var(--fpshp-gutter);
	bottom: var(--fpshp-space-6);
	margin: 0 !important;
	font-family: var(--fpshp-font-display);
	font-size: var(--fpshp-fs-1);
	letter-spacing: var(--fpshp-ls-wide);
	text-transform: uppercase;
	color: rgba(255, 255, 255, .45);
	writing-mode: vertical-rl;
}
.fpshp-hero__scroll::after { content: ""; display: block; width: 1px; height: 40px; margin: var(--fpshp-space-2) auto 0; background: currentColor; }

/* フェードアップ（予約サイト hfu と同じ） */
@keyframes fpshp-fade-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.fpshp-hero .wp-block-cover__inner-container > * { opacity: 0; animation: fpshp-fade-up 1s var(--fpshp-ease) forwards; }
.fpshp-hero .wp-block-cover__inner-container > :nth-child(1) { animation-delay: .2s; }
.fpshp-hero .wp-block-cover__inner-container > :nth-child(2) { animation-delay: .45s; }
.fpshp-hero .wp-block-cover__inner-container > :nth-child(3) { animation-delay: .7s; }
.fpshp-hero .wp-block-cover__inner-container > :nth-child(4) { animation-delay: .95s; }
.fpshp-hero .wp-block-cover__inner-container > :nth-child(5) { animation-delay: 1.2s; }
@media (prefers-reduced-motion: reduce) { .fpshp-hero .wp-block-cover__inner-container > * { animation: none; opacity: 1; } }

/* ヒーローのスライド（現行 HP のメインビジュアル 2 枚を踏襲）
   - 全幅グループ fpshp-hero fpshp-heroslider の中にカバーブロック fpshp-heroslide を並べる（枚数は自由）
   - 切り替えは mu-plugins/fpshp-hero-slider.php の JS が is-active を付け替える。JS が無いときは 1 枚目だけ表示
   - 切り替え: 現行 HP（VK スライダー・fade・speed 3500）と同じく、次の写真が 3.5 秒かけて上に浮かび上がる。
     前の写真は is-leaving で下に残し、浮かび切ったら消す（途中で背景の黒が透けない）。秒数は --fpshp-hero-fade（JS が PHP の定数から入れる）
   - 写真はゆっくり拡大。文字は表示のたびにフェードアップ */
.fpshp-heroslider {
	position: relative;
	height: 100svh;
	min-height: 560px;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	background: var(--fpshp-dark);
}
.fpshp-heroslider > .fpshp-heroslide.wp-block-cover {
	position: absolute;
	inset: 0;
	min-height: 0;
	margin: 0 !important;
	padding: var(--fpshp-header-h) var(--fpshp-gutter) var(--fpshp-space-8);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: none;
}
.fpshp-heroslider > .fpshp-heroslide.is-leaving { opacity: 1; visibility: visible; z-index: 0; }
.fpshp-heroslider > .fpshp-heroslide.is-active,
.fpshp-heroslider:not(.is-ready) > .fpshp-heroslide:first-child { opacity: 1; visibility: visible; z-index: 1; transition: opacity var(--fpshp-hero-fade, 3.5s) ease; }
.fpshp-heroslide .wp-block-cover__image-background { transform: scale(1); transition: none; }
.fpshp-heroslide.is-active .wp-block-cover__image-background,
.fpshp-heroslide.is-leaving .wp-block-cover__image-background { transform: scale(1.08); transition: transform 10s ease-out; }
.fpshp-heroslide.is-leaving .wp-block-cover__inner-container > * { opacity: 1; }
.fpshp-heroslide .wp-block-cover__inner-container { width: 100%; max-width: var(--fpshp-container); margin: 0 auto; text-align: center; color: #fff; }
.fpshp-heroslide .wp-block-cover__inner-container > * { margin: 0 auto !important; opacity: 0; animation: none; }
.fpshp-heroslide.is-active .wp-block-cover__inner-container > *,
.fpshp-heroslider:not(.is-ready) > .fpshp-heroslide:first-child .wp-block-cover__inner-container > * { animation: fpshp-fade-up 1.2s var(--fpshp-ease) forwards; }
.fpshp-heroslide .wp-block-cover__inner-container > :nth-child(1) { animation-delay: .3s; }
.fpshp-heroslide .wp-block-cover__inner-container > :nth-child(2) { animation-delay: .6s; }
.fpshp-heroslide .wp-block-cover__inner-container > :nth-child(3) { animation-delay: .9s; }
.fpshp-heroslide .wp-block-cover__inner-container > * + * { margin-top: var(--fpshp-space-6) !important; }
.fpshp-heroslide p, .fpshp-heroslide h1 { color: #fff; text-shadow: 0 1px 16px rgba(0, 0, 0, .45); }

/* 1 枚目: ロゴ ＋ キャッチ */
.fpshp-heroslide__logo { width: min(500px, 78vw); }
.fpshp-heroslide__logo img { width: 100%; height: auto; filter: drop-shadow(0 2px 18px rgba(0, 0, 0, .35)); }
.fpshp-heroslide .fpshp-heroslide__catch { margin-top: var(--fpshp-space-8) !important; font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-4); font-weight: 700; letter-spacing: .12em; line-height: 1.9; }

/* 2 枚目: 吹き出し ＋ 説明文 */
.fpshp-heroslide__balloon {
	position: relative;
	display: inline-flex !important;
	align-items: baseline;
	flex-wrap: wrap;
	justify-content: center;
	padding: var(--fpshp-space-4) var(--fpshp-space-6);
	border-radius: var(--fpshp-radius-sm);
	background: rgba(134, 134, 108, .92);
	font-family: var(--fpshp-font-serif);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .04em;
	text-shadow: none !important;
	box-shadow: var(--fpshp-shadow-img-on-dark);
}
.fpshp-heroslide__balloon::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 12px solid transparent; border-top-color: rgba(134, 134, 108, .92); border-bottom: 0; }
.fpshp-heroslide__balloon .is-s { font-size: var(--fpshp-fs-4); }
.fpshp-heroslide__balloon .is-l { font-size: var(--fpshp-fs-5); }
.fpshp-heroslide .fpshp-heroslide__text { max-width: 46em; font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-3); line-height: 2; letter-spacing: .06em; }
.fpshp-heroslide__balloon + .fpshp-heroslide__text { margin-top: var(--fpshp-space-7) !important; }
.fpshp-heroslide__text + .fpshp-heroslide__text { margin-top: var(--fpshp-space-4) !important; }
.fpshp-heroslide__text strong { color: #fff; }
.fpshp-heroslide__text .fpshp-heroslide__mark { font-size: var(--fpshp-fs-4); border-bottom: 1px solid var(--fpshp-gold-light); }

/* 切り替えの操作（JS が生成: ドット ＋ 一時停止） */
.fpshp-heroslider__ui { position: absolute; left: 50%; bottom: var(--fpshp-space-6); z-index: 2; transform: translateX(-50%); display: flex; align-items: center; gap: var(--fpshp-space-3); }
.fpshp-heroslider__dot, .fpshp-heroslider__pause { display: grid; place-items: center; width: 28px; height: 28px; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.fpshp-heroslider__dot::before { content: ""; width: 28px; height: 2px; background: rgba(255, 255, 255, .4); transition: background var(--fpshp-dur-fast) var(--fpshp-ease); }
.fpshp-heroslider__dot[aria-current="true"]::before { background: #fff; }
.fpshp-heroslider__pause { color: rgba(255, 255, 255, .7); font-size: var(--fpshp-fs-1); line-height: 1; }
.fpshp-heroslider__dot:hover::before { background: rgba(255, 255, 255, .8); }
.fpshp-heroslider__pause:hover { color: #fff; }
.fpshp-heroslider > .fpshp-hero__scroll { z-index: 2; }
.fpshp-heroslider__dot:focus-visible, .fpshp-heroslider__pause:focus-visible { outline: 2px solid var(--fpshp-gold-light); outline-offset: 2px; }

/* ブロックエディターでは重ねずに縦に並べる（編集しやすく） */
.editor-styles-wrapper .fpshp-heroslider { height: auto; }
.editor-styles-wrapper .fpshp-heroslider > .fpshp-heroslide.wp-block-cover { position: relative; min-height: 70vh; opacity: 1; visibility: visible; }
.editor-styles-wrapper .fpshp-heroslide .wp-block-cover__inner-container > * { opacity: 1; animation: none; }

/* 導入の帯（ヒーローの直下・現行 HP の 2 つ目のスライダーを踏襲）
   - 全幅グループ fpshp-heroslider fpshp-heroslider--intro の中にカバー 3 枚（地下水／空／雪原の木）。切り替えの動きと速さはヒーローと共通
   - 現行どおり高さ PC 600px / 991px 以下 500px・文は左揃えで横幅の 70%（SP 90%）・明朝
   - 段落の間は 24px、話題の変わり目（段落に is-gap）だけ 48px */
.fpshp-heroslider.fpshp-heroslider--intro { height: 600px; min-height: 0; }
.fpshp-heroslider.fpshp-heroslider--intro > .fpshp-heroslide.wp-block-cover { padding: var(--fpshp-space-8) var(--fpshp-gutter); }
.fpshp-heroslider--intro .fpshp-heroslide .wp-block-cover__inner-container { width: 70%; max-width: none; text-align: left; }
.fpshp-heroslider--intro .fpshp-heroslide p { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-3); line-height: 2; letter-spacing: .06em; text-wrap: pretty; }
.fpshp-heroslider--intro .fpshp-heroslide p strong { font-weight: 700; }
.fpshp-heroslider--intro .fpshp-heroslide .wp-block-cover__inner-container > * + * { margin-top: var(--fpshp-space-5) !important; }
.fpshp-heroslider--intro .fpshp-heroslide .wp-block-cover__inner-container > .is-gap { margin-top: var(--fpshp-space-7) !important; }
@media (max-width: 991px) {
	.fpshp-heroslider.fpshp-heroslider--intro { height: 500px; }
	.fpshp-heroslider--intro .fpshp-heroslide .wp-block-cover__inner-container { width: 100%; }
	.fpshp-heroslider--intro .fpshp-heroslide p { line-height: 1.9; letter-spacing: .02em; }
	.fpshp-heroslider--intro .fpshp-heroslide .wp-block-cover__inner-container > * + * { margin-top: var(--fpshp-space-4) !important; }
	.fpshp-heroslider--intro .fpshp-heroslide .wp-block-cover__inner-container > .is-gap { margin-top: var(--fpshp-space-6) !important; }
}
.editor-styles-wrapper .fpshp-heroslider.fpshp-heroslider--intro { height: auto; }
.editor-styles-wrapper .fpshp-heroslider--intro > .fpshp-heroslide.wp-block-cover { min-height: 500px; }

@media (prefers-reduced-motion: reduce) {
	.fpshp-heroslide.is-active .wp-block-cover__image-background,
	.fpshp-heroslide.is-leaving .wp-block-cover__image-background { transform: none; }
	.fpshp-heroslider > .fpshp-heroslide.is-active { transition: none; }
	.fpshp-heroslide .wp-block-cover__inner-container > * { opacity: 1; animation: none !important; }
}

/* 風景帯: 全幅・60vh・一文だけ */
.fpshp-band--scenery.wp-block-cover {
	min-height: clamp(360px, 60vh, 720px);
	margin: 0 !important;
	padding: var(--fpshp-space-8) var(--fpshp-gutter);
	background-color: var(--fpshp-dark);
}
.fpshp-band--scenery.wp-block-cover .wp-block-cover__background { background: rgba(26, 26, 23, .3) !important; opacity: 1 !important; }
.fpshp-band--scenery .wp-block-cover__inner-container { max-width: var(--fpshp-container); text-align: center; }
.fpshp-band--scenery .fpshp-heading__eyebrow { color: var(--fpshp-gold-light); margin-bottom: var(--fpshp-space-4); }
.fpshp-band--scenery .fpshp-heading__eyebrow::before { display: none; }
.fpshp-scenery__text {
	margin: 0 auto !important;
	max-width: 18em;
	text-wrap: balance;
	font-family: var(--fpshp-font-serif);
	font-size: var(--fpshp-fs-6);
	font-weight: 700;
	letter-spacing: .08em;
	line-height: var(--fpshp-lh-tight);
	color: #fff;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .4);
}
@media (min-width: 1000px) and (prefers-reduced-motion: no-preference) {
	.fpshp-band--scenery.wp-block-cover.has-parallax { background-attachment: fixed; }
}

/* 最終 CTA 帯（風景写真 ＋ 暗めのオーバーレイ） */
.fpshp-band--cta.wp-block-cover {
	min-height: clamp(420px, 70vh, 760px);
	margin: 0 !important;
	padding: var(--fpshp-section-pad) var(--fpshp-gutter);
	background-color: var(--fpshp-dark);
}
.fpshp-band--cta.wp-block-cover .wp-block-cover__background { background: rgba(26, 26, 23, .62) !important; opacity: 1 !important; }
.fpshp-band--cta .wp-block-cover__inner-container { max-width: var(--fpshp-container); text-align: center; }
.fpshp-band--cta .fpshp-heading__eyebrow { color: var(--fpshp-gold-light); }
.fpshp-band--cta .fpshp-heading__eyebrow::before { display: none; }
.fpshp-band--cta .fpshp-heading__title { color: #fff; }
.fpshp-band--cta .fpshp-heading__lead { color: var(--fpshp-text-on-dark-light); margin: 0 auto var(--fpshp-space-6); }
.fpshp-band--cta .wp-block-buttons { justify-content: center; gap: var(--fpshp-space-4) !important; }

/* 写真の横スクロール（料金とお知らせの間。現行 HP の loop-slider を踏襲）
   - 全幅グループ fpshp-loopgallery > グループ fpshp-loopgallery__track の中に画像ブロックを並べる（枚数は自由）
   - functions.php の JS が並びを 1 組複製して is-ready を付け、半分（＝1 組分）流してつなぎ目なく繰り返す
   - 写真の幅は現行と同じ PC 500px / SP 350px・縦横比 100:65・すき間なし。速さもほぼ現行どおり（PC 約 55px/秒）
   - JS が無い・動きを減らす設定のときは流さず、指で横にスクロールできる */
.fpshp-loopgallery {
	--fpshp-loop-w: 500px;
	--fpshp-loop-dur: 90s;
	margin: 0 !important;
	padding: 0 !important;
	overflow-x: auto;
	scrollbar-width: none;
	background: var(--fpshp-dark);
}
.fpshp-loopgallery::-webkit-scrollbar { display: none; }
.fpshp-loopgallery.is-ready { overflow: hidden; }
.fpshp-loopgallery > .fpshp-loopgallery__track { display: flex; width: max-content; max-width: none !important; margin: 0 !important; }
.fpshp-loopgallery__track > .wp-block-image { flex: 0 0 auto; width: var(--fpshp-loop-w); aspect-ratio: 100 / 65; margin: 0 !important; }
.fpshp-loopgallery__track > .wp-block-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fpshp-loopgallery.is-ready > .fpshp-loopgallery__track { animation: fpshp-loop var(--fpshp-loop-dur) linear infinite; }
@keyframes fpshp-loop { to { transform: translateX(-50%); } }
@media (max-width: 999px) { .fpshp-loopgallery { --fpshp-loop-w: 350px; --fpshp-loop-dur: 100s; } }
/* ブロックエディターでは流さず 5 列に並べる（編集しやすく） */
.editor-styles-wrapper .fpshp-loopgallery__track { display: grid; grid-template-columns: repeat(5, 1fr); width: auto; }
.editor-styles-wrapper .fpshp-loopgallery__track > .wp-block-image { width: auto; }

/* =============================================================================
   5. ボタン（3 サイズ × primary / secondary）
   - 標準ボタンブロックにクラスを付ける: fpshp-btn--primary fpshp-btn--l など
   - a.fpshp-btn 単体でも同じ見た目（mu-plugin の固定 CTA が使う）
   ============================================================================= */
.fpshp-btn,
.wp-block-button[class*="fpshp-btn--"] .wp-block-button__link,
.ct-header .ct-button.fpshp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--fpshp-space-2);
	min-height: var(--fpshp-btn-h-m);
	padding: 0 var(--fpshp-space-6);
	border-radius: var(--fpshp-radius-pill);
	border: 1px solid transparent;
	font-family: var(--fpshp-font-sans);
	font-size: var(--fpshp-fs-3);
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--fpshp-dur-base) var(--fpshp-ease), box-shadow var(--fpshp-dur-base) var(--fpshp-ease), background-color var(--fpshp-dur-fast) var(--fpshp-ease), color var(--fpshp-dur-fast) var(--fpshp-ease), border-color var(--fpshp-dur-fast) var(--fpshp-ease);
}
/* ※ 単体のボタンは必ず a.fpshp-btn に修飾子を足す。修飾子だけのセレクターはブロックのラッパー div にも当たって四角い枠になるため使わない */
.fpshp-btn.fpshp-btn--l, .wp-block-button.fpshp-btn--l .wp-block-button__link { min-height: var(--fpshp-btn-h-l); padding: 0 40px; }
.fpshp-btn.fpshp-btn--s, .wp-block-button.fpshp-btn--s .wp-block-button__link { min-height: var(--fpshp-btn-h-s); padding: 0 var(--fpshp-space-5); font-size: var(--fpshp-fs-2); }
.wp-block-button[class*="fpshp-btn--"] { background: none; border: 0; padding: 0; box-shadow: none; }

.fpshp-btn.fpshp-btn--primary,
.wp-block-button.fpshp-btn--primary .wp-block-button__link,
.ct-header .ct-button.fpshp-btn--primary {
	background: linear-gradient(135deg, var(--fpshp-olive-dark), var(--fpshp-olive));
	color: #fff !important;
	box-shadow: var(--fpshp-shadow-cta);
}
.fpshp-btn.fpshp-btn--primary:hover,
.wp-block-button.fpshp-btn--primary .wp-block-button__link:hover,
.ct-header .ct-button.fpshp-btn--primary:hover {
	transform: translateY(-2px);
	box-shadow: var(--fpshp-shadow-cta-hover);
	color: #fff !important;
}

.fpshp-btn.fpshp-btn--secondary,
.wp-block-button.fpshp-btn--secondary .wp-block-button__link {
	background: transparent;
	border-color: var(--fpshp-olive);
	color: var(--fpshp-olive-dark) !important;
}
.fpshp-btn.fpshp-btn--secondary:hover,
.wp-block-button.fpshp-btn--secondary .wp-block-button__link:hover {
	background: var(--fpshp-olive-tint-8);
	border-color: var(--fpshp-olive-dark);
	color: var(--fpshp-olive-dark) !important;
}
/* ダーク上の secondary */
.fpshp-btn.fpshp-btn--on-dark,
.wp-block-button.fpshp-btn--on-dark .wp-block-button__link,
.fpshp-band--dark .wp-block-button.fpshp-btn--secondary .wp-block-button__link,
.fpshp-hero .wp-block-button.fpshp-btn--secondary .wp-block-button__link,
.fpshp-band--cta .wp-block-button.fpshp-btn--secondary .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, .55);
	color: #fff !important;
}
.fpshp-band--dark .wp-block-button.fpshp-btn--secondary .wp-block-button__link:hover,
.fpshp-hero .wp-block-button.fpshp-btn--secondary .wp-block-button__link:hover,
.fpshp-band--cta .wp-block-button.fpshp-btn--secondary .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .1);
	border-color: #fff;
}
/* 矢印 */
.wp-block-button[class*="fpshp-btn--"] .wp-block-button__link::after,
.fpshp-btn.fpshp-btn--arrow::after {
	content: "";
	width: 14px; height: 14px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12h12m-5-6 6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12h12m-5-6 6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
	transition: transform var(--fpshp-dur-fast) var(--fpshp-ease);
}
.wp-block-button[class*="fpshp-btn--"] .wp-block-button__link:hover::after,
.fpshp-btn.fpshp-btn--arrow:hover::after { transform: translateX(4px); }
.wp-block-button.fpshp-btn--noarrow .wp-block-button__link::after { display: none; }

/* SNS ボタン（枠線・ブランド色は hover 時だけ） */
.wp-block-button.fpshp-btn--sns .wp-block-button__link { gap: var(--fpshp-space-2); }
.wp-block-button.fpshp-btn--sns .wp-block-button__link::after { display: none; }
.wp-block-button.fpshp-btn--sns.is-instagram .wp-block-button__link:hover { border-color: #C13584; color: #C13584 !important; background: rgba(193, 53, 132, .06); }
.wp-block-button.fpshp-btn--sns.is-line .wp-block-button__link:hover { border-color: #06C755; color: #06C755 !important; background: rgba(6, 199, 85, .06); }
.wp-block-button.fpshp-btn--sns.is-youtube .wp-block-button__link:hover { border-color: #FF0000; color: #FF0000 !important; background: rgba(255, 0, 0, .06); }

/* =============================================================================
   6. カード・実績バー・ステップ
   ============================================================================= */
.fpshp-grid.wp-block-columns { gap: var(--fpshp-col-gap); align-items: stretch; }
.fpshp-grid.wp-block-columns > .wp-block-column { display: flex; flex-direction: column; }
.fpshp-grid.wp-block-columns > .wp-block-column > .fpshp-card { flex: 1 1 auto; }

.fpshp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--fpshp-space-4);
	padding: var(--fpshp-space-6) !important;
	background: var(--fpshp-white);
	border: 1px solid var(--fpshp-olive-tint-8);
	border-radius: var(--fpshp-radius-lg);
	box-shadow: var(--fpshp-shadow-sm);
	transition: transform .5s var(--fpshp-ease), box-shadow .5s var(--fpshp-ease);
}
.fpshp-card:hover { transform: translateY(-4px); box-shadow: var(--fpshp-shadow-md); }
.fpshp-card--center { text-align: center; align-items: center; }
.fpshp-card > * { margin: 0 !important; }
.fpshp-card__icon {
	width: var(--fpshp-icon-l); height: var(--fpshp-icon-l);
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--fpshp-olive-tint-8);
	color: var(--fpshp-olive);
}
.fpshp-card__icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.fpshp-card__icon--m { width: var(--fpshp-icon-m); height: var(--fpshp-icon-m); }
.fpshp-card__icon--m svg { width: 20px; height: 20px; }
.fpshp-card__title { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-4); color: var(--fpshp-olive-dark); }
.fpshp-card__text { font-size: var(--fpshp-fs-2); color: var(--fpshp-text-light); line-height: var(--fpshp-lh-base); }
.fpshp-card__eyebrow { font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-2); letter-spacing: var(--fpshp-ls-wide); text-transform: uppercase; color: var(--fpshp-olive); line-height: 1; }
.fpshp-band--dark .fpshp-card { background: var(--fpshp-dark-2); border-color: var(--fpshp-dark-3); box-shadow: none; }
.fpshp-band--dark .fpshp-card__title { color: var(--fpshp-gold-light); }
.fpshp-band--dark .fpshp-card__text { color: var(--fpshp-text-on-dark-light); }
.fpshp-band--dark .fpshp-card__icon { background: rgba(255, 255, 255, .06); color: var(--fpshp-gold); }
.fpshp-card .wp-block-image { margin: calc(-1 * var(--fpshp-space-6)) calc(-1 * var(--fpshp-space-6)) 0 !important; }
.fpshp-card .wp-block-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--fpshp-radius-lg) var(--fpshp-radius-lg) 0 0; }

/* 実績バー（数字は display・テラコッタ） */
.fpshp-stats.wp-block-columns {
	gap: 0;
	max-width: 960px;
	margin-left: auto !important; margin-right: auto !important; /* 上下は 3 章の余白のルール */
	text-align: center;
	background: var(--fpshp-white);
	border: 1px solid var(--fpshp-olive-tint-8);
	border-radius: var(--fpshp-radius-lg);
	box-shadow: 0 4px 30px var(--fpshp-olive-tint-8);
	overflow: hidden;
}
.fpshp-stats .wp-block-column { padding: var(--fpshp-space-6) var(--fpshp-space-5); text-align: center; }
.fpshp-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--fpshp-sand); }
.fpshp-stats__num { margin: 0 !important; font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-5); font-weight: 700; line-height: 1.2; color: var(--fpshp-terra); }
.fpshp-stats__num small { font-size: var(--fpshp-fs-2); font-family: var(--fpshp-font-sans); font-weight: 500; margin-left: .2em; color: var(--fpshp-text-light); }
.fpshp-stats__label { margin: var(--fpshp-space-1) 0 0 !important; font-size: var(--fpshp-fs-1); letter-spacing: .08em; color: var(--fpshp-text-light); }

/* ステップ（横並びカード・STEP 01 は display） */
.fpshp-steps.wp-block-columns { gap: var(--fpshp-col-gap); align-items: stretch; counter-reset: fpshp-step; }
.fpshp-steps .wp-block-column { position: relative; display: flex; flex-direction: column; }
.fpshp-steps .fpshp-card { flex: 1 1 auto; text-align: center; align-items: center; padding-top: var(--fpshp-space-7) !important; }
.fpshp-steps .fpshp-card::before {
	counter-increment: fpshp-step;
	content: "STEP 0" counter(fpshp-step);
	position: absolute; top: var(--fpshp-space-4); left: 0; right: 0;
	font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-1); letter-spacing: var(--fpshp-ls-wide); color: var(--fpshp-olive); text-align: center;
}
.fpshp-steps .wp-block-column:not(:last-child)::after {
	content: ""; position: absolute; top: 50%; right: calc(-1 * var(--fpshp-col-gap) / 2 - 7px); width: 14px; height: 14px;
	border-top: 1.5px solid var(--fpshp-olive); border-right: 1.5px solid var(--fpshp-olive); transform: translateY(-50%) rotate(45deg); opacity: .6;
}
.fpshp-steps .fpshp-card--accent { background: linear-gradient(135deg, var(--fpshp-olive-dark), var(--fpshp-olive)); border-color: transparent; }
.fpshp-steps .fpshp-card--accent::before { color: var(--fpshp-gold-light); }
.fpshp-steps .fpshp-card--accent .fpshp-card__title { color: #fff; }
.fpshp-steps .fpshp-card--accent .fpshp-card__text { color: rgba(255, 255, 255, .8); }
.fpshp-steps .fpshp-card--accent .fpshp-card__icon { background: rgba(255, 255, 255, .15); color: #fff; }

/* 流れの詳細（details で折りたたむ長文） */
/* 3つの特徴・ご利用の流れのカード: 説明文だけ左揃え（アイコン・見出しは中央のまま） */
.fpshp-grid .fpshp-card__text, .fpshp-steps .fpshp-card__text { align-self: stretch; text-align: left; }
/* カードの注記（STEP 5 の「ご利用の際には…」。2026-11-01 にサウナの入り方の末尾から移動）: 小さめ・細い線で区切る */
.fpshp-card__note { align-self: stretch; margin: 0 !important; padding-top: var(--fpshp-space-3); border-top: 1px solid var(--fpshp-sand); font-size: var(--fpshp-fs-1); line-height: 1.7; text-align: left; color: var(--fpshp-text-light); }
/* STEP 3 のカードを押すと下の「サウナの入り方」が開閉する（JS は functions.php） */
.fpshp-card--toggle { cursor: pointer; }
.fpshp-details { scroll-margin-top: calc(var(--fpshp-header-h) + var(--fpshp-space-4)); }
.fpshp-card--toggle:focus-visible { outline: 2px solid var(--fpshp-olive); outline-offset: 3px; }
.fpshp-card__more { display: inline-flex; align-items: center; gap: var(--fpshp-space-2); margin-top: auto !important; padding-top: var(--fpshp-space-2); font-size: var(--fpshp-fs-1); font-weight: 700; letter-spacing: .02em; white-space: nowrap; color: var(--fpshp-olive-dark); }
.fpshp-card__more::after { content: "+"; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; border: 1px solid currentColor; font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-3); line-height: 1; transition: transform var(--fpshp-dur-fast) var(--fpshp-ease); }
.fpshp-card--toggle[aria-expanded="true"] .fpshp-card__more::after { transform: rotate(45deg); }
.fpshp-card--toggle[aria-expanded="true"] { border-color: var(--fpshp-olive-light); }
.fpshp-details.wp-block-details { margin-top: var(--fpshp-space-7); border: 1px solid var(--fpshp-sand); border-radius: var(--fpshp-radius-md); background: var(--fpshp-white); }
.fpshp-details > summary { padding: var(--fpshp-space-4) var(--fpshp-space-5); font-weight: 500; color: var(--fpshp-olive-dark); cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.fpshp-details > summary::-webkit-details-marker { display: none; }
.fpshp-details > summary::after { content: "+"; font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-4); color: var(--fpshp-olive); transition: transform var(--fpshp-dur-fast) var(--fpshp-ease); }
.fpshp-details[open] > summary::after { transform: rotate(45deg); }
.fpshp-details > :not(summary) { padding: 0 var(--fpshp-space-5); }
.fpshp-details > :last-child { padding-bottom: var(--fpshp-space-5); }
.fpshp-details h4 { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-3); font-weight: 700; color: var(--fpshp-olive-dark); margin: var(--fpshp-space-5) 0 var(--fpshp-space-2); }
.fpshp-details p { font-size: var(--fpshp-fs-2); color: var(--fpshp-text-light); margin: 0 0 var(--fpshp-space-2); }
.fpshp-details .wp-block-columns { gap: var(--fpshp-space-5); }
.fpshp-details .wp-block-image img { border-radius: var(--fpshp-radius-md); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
/* STEP が縦並び（781px 以下）のときは JS が詳細ブロックを STEP 3 の列の中（カードの直後）へ移す。
   見出し行（summary）は出さず、カードを押すと、カードの下にひと続きの枠として開く（2026-11-01） */
.fpshp-steps .fpshp-details.wp-block-details { margin: -1px 0 0 !important; padding-top: var(--fpshp-space-2); border-color: var(--fpshp-olive-light); border-top: 0; border-radius: 0 0 var(--fpshp-radius-md) var(--fpshp-radius-md); text-align: left; }
.fpshp-steps .fpshp-details > summary { display: none; }
.fpshp-steps .fpshp-details:not([open]) { display: none; }
.fpshp-steps .fpshp-card--toggle { margin-bottom: 0 !important; }
.fpshp-steps .fpshp-card--toggle[aria-expanded="true"]:has(+ .fpshp-details) { flex-grow: 0; box-shadow: none; border-bottom-color: transparent; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }

/* =============================================================================
   7. 棟紹介
   ============================================================================= */
/* 3 棟: ブロックを中央に寄せる。文の列（棟名・ひとこと・バッジ・説明文）は列の中で左詰め（2026-10-27 西田様指示）
   色は白の濃淡だけ（2026-10-27 西田様「金色が多くカラフルでチープ → シックで高級感のある感じに」）:
   棟名 白 ／ 読み・ローマ字 白 45〜50% ／ ひとこと 白 80% ／ 棟名の下に細い罫線 ／ バッジは細い白枠
   （導入「丘の上に、三棟だけ。」は 2026-10-27 に 3 枚の切り替え＝4 章へ） */
.fpshp-bldg.wp-block-columns { gap: var(--fpshp-col-gap-media); align-items: center; max-width: 1040px; margin-left: auto; margin-right: auto; text-align: left; }
.fpshp-bldg .fpshp-bldg__name {
	display: flex; align-items: baseline; justify-content: flex-start; flex-wrap: wrap; gap: var(--fpshp-space-2) var(--fpshp-space-4);
	margin: 0 0 var(--fpshp-space-4) !important; padding-bottom: var(--fpshp-space-4);
	border-bottom: 1px solid rgba(255, 255, 255, .14);
	font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-5); font-weight: 500; letter-spacing: .08em; color: var(--fpshp-text-on-dark);
}
.fpshp-bldg__name small { font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-2); font-weight: 400; letter-spacing: .24em; text-transform: uppercase; color: rgba(255, 255, 255, .45); }
.fpshp-bldg__sub { margin: 0 0 var(--fpshp-space-4) !important; font-size: var(--fpshp-fs-2); color: rgba(255, 255, 255, .8); }
.fpshp-badges { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: var(--fpshp-space-2); margin: 0 0 var(--fpshp-space-5) !important; padding: 0; list-style: none; }
.fpshp-badges li, .fpshp-badge {
	display: inline-flex; align-items: center; height: 24px; padding: 0 var(--fpshp-space-3); margin: 0;
	border-radius: var(--fpshp-radius-pill); border: 1px solid rgba(255, 255, 255, .2);
	font-size: var(--fpshp-fs-1); font-weight: 400; letter-spacing: .06em; color: rgba(255, 255, 255, .72); background: none;
}
.fpshp-bldg__text p { font-size: var(--fpshp-fs-2); color: var(--fpshp-text-on-dark-light); margin: 0 0 var(--fpshp-space-3); }
.fpshp-bldg__text { text-align: left; }
/* 棟名の読み（瞑想 めいそう MEISO） */
.fpshp-bldg__kana { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-2); font-weight: 400; letter-spacing: .12em; color: rgba(255, 255, 255, .5); }
/* ひとことは 1 行で読ませる: 文の区切り（<wbr>）以外では折り返さない。PC は文の列を 48% に広げて 1 行に収める */
.fpshp-bldg__sub { word-break: keep-all; overflow-wrap: anywhere; }
@media (min-width: 782px) {
	#feature .fpshp-bldg > .wp-block-column:has(.fpshp-bldg__sub) { flex-basis: 48% !important; }
	#feature .fpshp-bldg > .wp-block-column:not(:has(.fpshp-bldg__sub)) { flex-basis: 52% !important; }
}
@media (min-width: 1100px) { .fpshp-bldg__sub { white-space: nowrap; } }

/* VK スライダー（既存の fpshp-slider-linear と ease-out は維持） */
.vk_slider.fpshp-slider-linear .swiper-wrapper { -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; }
.fpshp-bldg .vk_slider { border-radius: var(--fpshp-radius-md); overflow: hidden; box-shadow: var(--fpshp-shadow-img-on-dark); }
.fpshp-bldg .vk_slider img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.fpshp-bldg .swiper-button-prev, .fpshp-bldg .swiper-button-next {
	width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; backdrop-filter: blur(4px);
}
.fpshp-bldg .swiper-button-prev::after, .fpshp-bldg .swiper-button-next::after { font-size: 14px; font-weight: 700; }
.fpshp-bldg .swiper-pagination-bullet { background: #fff; opacity: .5; }
.fpshp-bldg .swiper-pagination-bullet-active { background: #fff; opacity: 1; }

/* =============================================================================
   8. 備品・オプション（写真 1:1 のカード）
   ============================================================================= */
.fpshp-items.wp-block-columns { gap: var(--fpshp-col-gap); }
.fpshp-item { display: flex; flex-direction: column; gap: var(--fpshp-space-3); margin: 0 !important; text-align: center; }
.fpshp-item .wp-block-image { margin: 0 !important; }
.fpshp-item .wp-block-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--fpshp-radius-md); background: var(--fpshp-white); }
.fpshp-item__name { margin: 0 !important; font-size: var(--fpshp-fs-3); font-weight: 500; color: var(--fpshp-text); }
.fpshp-item__price { margin: 0 !important; font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-4); font-weight: 700; color: var(--fpshp-terra); line-height: 1.2; }
.fpshp-item__price small { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-1); font-weight: 400; color: var(--fpshp-text-light); margin-left: .3em; }
.fpshp-item__note { margin: 0 !important; font-size: var(--fpshp-fs-1); color: var(--fpshp-text-muted); }
/* 正方形に切り抜くとき右寄りを残す（手ぶらセット: 右端のペットボトルが切れないように） */
.fpshp-item .fpshp-item__img--r img { object-position: 68% 50%; }
/* 品物が 4 つ以上の並び（オプションメニュー）は、WP 標準で 1 列になる 781px 以下で 2 列に。3 つの並び（ご用意しているもの）は 1 列のまま。
   WP 標準の .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column（flex-basis 100% !important）より強く書く */
@media (max-width: 781px) {
	.fpshp-items.wp-block-columns:has(> .wp-block-column:nth-child(4)) { flex-wrap: wrap !important; }
	.fpshp-items.wp-block-columns:has(> .wp-block-column:nth-child(4)) > .wp-block-column { flex-basis: calc(50% - var(--fpshp-col-gap) / 2) !important; }
	/* 2 列では品物名を 2 行分の高さにそろえて価格の位置を合わせる。折り返しは「（」の前など語の切れ目で */
	.fpshp-items.wp-block-columns:has(> .wp-block-column:nth-child(4)) .fpshp-item__name { display: flex; align-items: center; justify-content: center; min-height: 3.4em; font-size: var(--fpshp-fs-2); line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere; }
	.fpshp-items.wp-block-columns:has(> .wp-block-column:nth-child(4)) .fpshp-item__note { word-break: keep-all; overflow-wrap: anywhere; }
}

/* =============================================================================
   9. 料金
   - 構成: 見出しセット → ①会員別情報（比較表）→ ②一般料金（表 ＋ 人数別イラスト ＋ 予約ボタン）
     → ③会員料金（VIP の要点 ＋ 表 ＋ イラスト ＋ 会員登録ボタン）。各部は fpshp-pricesec
   - 2026-10-25: 「1 画面に収める」をやめて原稿サイトと同じ 3 部構成に（DECISIONS.md）
   - VIP は「オリーブの地 ＋ ゴールドの線」で表の列・タグ・イラストの人・ボタンまで一貫させる
   ============================================================================= */
.fpshp-band--price .fpshp-heading { margin-bottom: var(--fpshp-space-7); }

/* 各部（中央寄せの縦積み。子の余白は gap で揃える） */
.fpshp-pricesec {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--fpshp-space-5);
	max-width: var(--fpshp-price-w) !important;
	padding-top: var(--fpshp-flow); /* 上の線から中身まで（線の上は L2 の --fpshp-flow） */
	border-top: 1px solid var(--fpshp-dark-3);
	text-align: center;
}
.fpshp-band--price .fpshp-heading + .fpshp-pricesec { padding-top: 0; border-top: 0; }
.fpshp-pricesec > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.fpshp-pricesec > .wp-block-table, .fpshp-pricesec > .fpshp-split, .fpshp-pricesec > .fpshp-vipspec { align-self: stretch; }
.fpshp-pricesec > .fpshp-pricesec__eyebrow { margin-bottom: calc(-1 * var(--fpshp-space-4)) !important; }
.fpshp-pricesec__eyebrow { font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-2); letter-spacing: var(--fpshp-ls-wide); text-transform: uppercase; color: var(--fpshp-gold) !important; line-height: 1; }
.fpshp-band--dark .fpshp-pricesec__title {
	display: inline-flex;
	align-items: center;
	gap: var(--fpshp-space-4);
	font-family: var(--fpshp-font-serif);
	font-size: var(--fpshp-fs-4);
	font-weight: 700;
	color: #fff;
}
.fpshp-pricesec__title::before, .fpshp-pricesec__title::after { content: ""; width: 40px; height: 1px; background: var(--fpshp-gold); opacity: .6; }
.fpshp-pricesec__lead { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: var(--fpshp-space-3); font-size: var(--fpshp-fs-3); }
.fpshp-pricesec__text { max-width: var(--fpshp-prose); font-size: var(--fpshp-fs-2); line-height: var(--fpshp-lh-base); }
.fpshp-pricesec__text small { display: inline-block; margin-top: var(--fpshp-space-1); font-size: var(--fpshp-fs-1); color: var(--fpshp-text-on-dark-light); }
.fpshp-price__cta { margin-top: var(--fpshp-space-3) !important; justify-content: center; }
.fpshp-price__cta .wp-block-button__link { min-width: 280px; }
.fpshp-price__note { font-size: var(--fpshp-fs-1); color: var(--fpshp-text-on-dark-light) !important; text-align: center; }
.fpshp-pricesec > .wp-block-table + .fpshp-price__note { margin-top: calc(-1 * var(--fpshp-space-3)) !important; }
.fpshp-price__note strong { color: var(--fpshp-gold-light); font-weight: 500; }

/* 会員種別のタグ（VIP = オリーブ、一般 = グレー） */
.fpshp-tag { display: inline-block; padding: 2px 10px; border-radius: 4px; font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); font-weight: 700; line-height: 1.6; letter-spacing: .06em; color: #fff; vertical-align: middle; }
.fpshp-tag--vip { background: var(--fpshp-olive-dark); box-shadow: inset 0 0 0 1px var(--fpshp-gold); color: var(--fpshp-gold-light); }
.fpshp-tag--general { background: rgba(255, 255, 255, .16); }

/* 表（枠線は「外枠 = figure」「内側 = セルの右と下」の 1 系統だけ。Blocksy 既定のセル枠線は消す） */
.fpshp-table { --theme-table-border-color: var(--fpshp-dark-3); }
.wp-block-table.fpshp-table thead { border-bottom: 0; }
.fpshp-table { margin: 0 !important; border: 1px solid var(--fpshp-dark-3); border-radius: var(--fpshp-radius-md); overflow: hidden; background: var(--fpshp-dark); }
.fpshp-table table { width: 100%; border-collapse: collapse; border-spacing: 0; border: 0; background: transparent; font-size: var(--fpshp-fs-2); }
.fpshp-table th, .fpshp-table td { border: 0; border-right: 1px solid var(--fpshp-dark-3); border-bottom: 1px solid var(--fpshp-dark-3); text-align: center !important; }
.fpshp-table tr > :last-child { border-right: 0; }
.fpshp-table tbody tr:last-child > * { border-bottom: 0; }
.fpshp-table thead th { height: 48px; padding: var(--fpshp-space-2) var(--fpshp-space-4); background: var(--fpshp-dark-2); color: var(--fpshp-gold-light); font-family: var(--fpshp-font-sans); font-weight: 700; font-size: var(--fpshp-fs-2); letter-spacing: .08em; line-height: 1.4; vertical-align: middle; }
.fpshp-table thead th small { display: block; margin-top: 2px; font-size: var(--fpshp-fs-1); font-weight: 400; letter-spacing: .02em; color: var(--fpshp-text-on-dark-light); }
.fpshp-table tbody td, .fpshp-table tbody th { height: 56px; padding: var(--fpshp-space-2) var(--fpshp-space-4); color: var(--fpshp-text-on-dark); vertical-align: middle; background: var(--fpshp-dark); font-weight: 400; line-height: 1.4; }
.fpshp-table tbody th { font-weight: 500; color: #fff; white-space: nowrap; }
.fpshp-table tbody th small { display: block; font-size: var(--fpshp-fs-1); font-weight: 400; color: var(--fpshp-text-on-dark-light); line-height: 1.2; }
.fpshp-table tbody tr:hover > * { background: var(--fpshp-dark-2); }
.fpshp-table .num, .fpshp-table td:not(:first-child) { font-family: var(--fpshp-font-display); font-variant-numeric: lining-nums; font-size: var(--fpshp-fs-4); font-weight: 700; color: #fff; letter-spacing: .02em; white-space: nowrap; }
.fpshp-table td .unit { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-1); font-weight: 400; color: var(--fpshp-text-on-dark-light); margin-left: .15em; }
.fpshp-table td .pending { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); font-weight: 400; color: var(--fpshp-text-on-dark-light); }
.fpshp-table .fpshp-badge--rec { display: inline-flex; align-items: center; height: 20px; padding: 0 var(--fpshp-space-2); margin-left: var(--fpshp-space-2); border-radius: var(--fpshp-radius-pill); background: var(--fpshp-terra); color: #fff; font-size: var(--fpshp-fs-1); font-weight: 500; letter-spacing: .04em; vertical-align: middle; border: 0; }
.fpshp-table--rate th:first-child, .fpshp-table--vip th:first-child { width: 30%; }

/* ① 会員別情報: VIP 列をオリーブの地 ＋ ゴールドの枠で「おすすめ列」に */
.fpshp-table--compare table { table-layout: fixed; border-collapse: separate; }
/* 角丸の内側でも VIP 列の金線が切れないように、四隅のセルにも角丸を付ける（collapse だとセルの角丸が効かないので separate） */
.fpshp-table--compare thead tr > :last-child { border-top-right-radius: calc(var(--fpshp-radius-md) - 1px); }
.fpshp-table--compare thead tr > :first-child { border-top-left-radius: calc(var(--fpshp-radius-md) - 1px); }
.fpshp-table--compare tbody tr:last-child > :last-child { border-bottom-right-radius: calc(var(--fpshp-radius-md) - 1px); }
.fpshp-table--compare tbody tr:last-child > :first-child { border-bottom-left-radius: calc(var(--fpshp-radius-md) - 1px); }
.fpshp-table--compare tr > :first-child { width: 28%; }
.fpshp-table--compare thead th:nth-child(2) { background: var(--fpshp-dark-3); color: #fff; }
.fpshp-table--compare thead th:nth-child(3) { background: var(--fpshp-olive-dark); color: #fff; }
.fpshp-table--compare thead th:nth-child(3) small { color: var(--fpshp-gold-light); font-family: var(--fpshp-font-sans); }
.fpshp-table--compare tbody td:nth-child(3), .fpshp-table--compare tbody tr:hover > td:nth-child(3) { background: rgba(134, 134, 108, .16); color: var(--fpshp-gold-light); }
.fpshp-table--compare tr > :nth-child(3) { box-shadow: inset 1px 0 0 var(--fpshp-gold), inset -1px 0 0 var(--fpshp-gold); }
.fpshp-table--compare thead tr > :nth-child(3) { box-shadow: inset 1px 0 0 var(--fpshp-gold), inset -1px 0 0 var(--fpshp-gold), inset 0 1px 0 var(--fpshp-gold); }
.fpshp-table--compare tbody tr:last-child > :nth-child(3) { box-shadow: inset 1px 0 0 var(--fpshp-gold), inset -1px 0 0 var(--fpshp-gold), inset 0 -1px 0 var(--fpshp-gold); }
.fpshp-table--compare tbody td:not(:first-child) { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-3); font-weight: 500; }
.fpshp-table--compare tbody td:nth-child(2) { color: var(--fpshp-text-on-dark-light); }
.fpshp-table thead small, .fpshp-table--compare tbody tr:last-child td { word-break: keep-all; overflow-wrap: anywhere; }
.fpshp-table--compare tbody tr:last-child td:not(:first-child) { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); font-weight: 500; white-space: normal; line-height: 1.6; }

/* ③ VIP の表は見出しをオリーブに */
.fpshp-table--vip thead th { background: var(--fpshp-olive-dark); color: #fff; }
.fpshp-table--vip thead th small { color: var(--fpshp-gold-light); }

/* ③ VIP の要点（入会金・月会費・回数券・特典の 4 マス） */
.fpshp-vipspec { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 0 !important; padding: 0 !important; list-style: none; background: var(--fpshp-dark-3); border: 1px solid var(--fpshp-gold); border-radius: var(--fpshp-radius-md); overflow: hidden; }
.fpshp-vipspec li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--fpshp-space-1); margin: 0 !important; padding: var(--fpshp-space-4) var(--fpshp-space-3); background: var(--fpshp-dark-2); }
.fpshp-vipspec__k { font-size: var(--fpshp-fs-1); letter-spacing: .12em; color: var(--fpshp-gold); }
.fpshp-vipspec__v { font-family: var(--fpshp-font-display); font-variant-numeric: lining-nums; font-size: var(--fpshp-fs-4); font-weight: 700; line-height: 1.2; color: #fff; white-space: nowrap; }
.fpshp-vipspec__v small { margin-left: .15em; font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-1); font-weight: 400; color: var(--fpshp-text-on-dark-light); }
.fpshp-vipspec__v--text { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); font-weight: 500; }

/* 人数別イラスト（2 枚のカード。右＝お得な側をゴールドで強調し、間に矢印） */
.fpshp-split { margin-top: var(--fpshp-space-5) !important; }
.fpshp-split > * { margin: 0 !important; }
.fpshp-split__caption { margin-bottom: var(--fpshp-space-6) !important; font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-4); font-weight: 700; color: #fff !important; }
.fpshp-split__caption strong { color: var(--fpshp-gold-light); }
.fpshp-split__caption small { margin-left: .3em; font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); font-weight: 400; color: var(--fpshp-text-on-dark-light); }
.fpshp-split__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: var(--fpshp-space-7); }
.fpshp-split__grid::after {
	content: "→";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--fpshp-gold);
	background: var(--fpshp-dark);
	color: var(--fpshp-gold);
	font-size: var(--fpshp-fs-3);
	line-height: 1;
}
.fpshp-split__case { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--fpshp-space-2); padding: var(--fpshp-space-7) var(--fpshp-space-5) var(--fpshp-space-6); border: 1px solid var(--fpshp-dark-3); border-radius: var(--fpshp-radius-lg); background: var(--fpshp-dark-2); }
.fpshp-split__case > * { margin: 0 !important; }
.fpshp-split__case.is-best { border-color: var(--fpshp-gold); background: radial-gradient(120% 80% at 50% 0%, rgba(201, 169, 110, .16), transparent 70%), var(--fpshp-dark-2); box-shadow: 0 0 0 1px rgba(201, 169, 110, .25), var(--fpshp-shadow-img-on-dark); }
.fpshp-split__badge { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); padding: 4px var(--fpshp-space-4); border-radius: var(--fpshp-radius-pill); background: var(--fpshp-gold); color: var(--fpshp-dark) !important; font-size: var(--fpshp-fs-1); font-weight: 700; letter-spacing: .06em; white-space: nowrap; }
.fpshp-split__who { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: var(--fpshp-space-2); font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-3); letter-spacing: .1em; }
.fpshp-split__label { margin-top: var(--fpshp-space-2) !important; font-size: var(--fpshp-fs-2); letter-spacing: .1em; color: var(--fpshp-text-on-dark-light) !important; }
.fpshp-split__price { font-family: var(--fpshp-font-display); font-variant-numeric: lining-nums; font-size: var(--fpshp-fs-6); font-weight: 400; line-height: 1; letter-spacing: .03em; color: #fff !important; white-space: nowrap; }
.fpshp-split__price .yen { margin-right: .08em; font-size: var(--fpshp-fs-4); }
.fpshp-split__case.is-best .fpshp-split__price { color: var(--fpshp-gold-light) !important; font-weight: 700; }
.fpshp-split__sub { font-size: var(--fpshp-fs-1); color: var(--fpshp-text-on-dark-light) !important; }

/* 人のピクトグラム（span 1 つ ＝ 1 名。VIP は金色 ＋ 王冠 ＋ 胸の VIP 札） */
.fpshp-people { display: flex; justify-content: center; align-items: flex-end; gap: 6px; padding-top: 26px; margin: var(--fpshp-space-2) 0 !important; }
.fpshp-person { position: relative; display: block; width: var(--fpshp-person-w); height: var(--fpshp-person-h); }
.fpshp-person::before { content: ""; position: absolute; inset: 0; background: rgba(255, 255, 255, .88); -webkit-mask: var(--fpshp-mask-person) center / contain no-repeat; mask: var(--fpshp-mask-person) center / contain no-repeat; }
.fpshp-person.is-vip::before { background: linear-gradient(180deg, var(--fpshp-gold-light), var(--fpshp-gold)); }
.fpshp-person.is-vip::after { content: ""; position: absolute; left: 50%; bottom: calc(100% + 4px); width: 26px; height: 18px; transform: translateX(-50%); background: var(--fpshp-gold); -webkit-mask: var(--fpshp-mask-crown) center / contain no-repeat; mask: var(--fpshp-mask-crown) center / contain no-repeat; }
.fpshp-person__tag { position: absolute; top: 38%; left: 50%; transform: translateX(-50%); padding: 0 5px; border-radius: 3px; background: var(--fpshp-olive-dark); box-shadow: 0 0 0 1px var(--fpshp-gold); color: #fff; font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-1); font-weight: 700; line-height: 1.5; letter-spacing: .06em; }

/* ボタン: 会員登録は VIP の金色 */
.wp-block-button.fpshp-btn--gold .wp-block-button__link { background: linear-gradient(135deg, var(--fpshp-gold), var(--fpshp-gold-light)); color: var(--fpshp-dark) !important; box-shadow: 0 4px 20px rgba(201, 169, 110, .30); }
.wp-block-button.fpshp-btn--gold .wp-block-button__link:hover { color: var(--fpshp-dark) !important; box-shadow: 0 6px 30px rgba(201, 169, 110, .45); }

/* =============================================================================
   10. NEWS・SNS・アクセス
   ============================================================================= */
.fpshp-news .wp-block-post-template { gap: 0 !important; }
.fpshp-news .wp-block-post { margin: 0; border-bottom: 1px solid var(--fpshp-sand); }
.fpshp-news .wp-block-post:first-child { border-top: 1px solid var(--fpshp-sand); }
.fpshp-news .fpshp-news__row { display: flex; align-items: baseline; gap: var(--fpshp-space-5); padding: var(--fpshp-space-4) var(--fpshp-space-3); transition: background var(--fpshp-dur-fast) var(--fpshp-ease); margin: 0 !important; }
.fpshp-news .wp-block-post:hover .fpshp-news__row { background: var(--fpshp-olive-tint-4); }
.fpshp-news .wp-block-post-date { flex: 0 0 auto; margin: 0 !important; font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-2); letter-spacing: .06em; color: var(--fpshp-olive); }
.fpshp-news .wp-block-post-title { flex: 1 1 auto; margin: 0 !important; font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-3); font-weight: 500; line-height: var(--fpshp-lh-tight); }
.fpshp-news .wp-block-post-title a { color: var(--fpshp-text); text-decoration: none; }
.fpshp-news .wp-block-post-title a:hover { color: var(--fpshp-olive-dark); }
.fpshp-news__more { margin-top: var(--fpshp-space-5) !important; text-align: right; }
.fpshp-news__more a { font-size: var(--fpshp-fs-2); letter-spacing: .06em; color: var(--fpshp-olive-dark); text-decoration: none; }
.fpshp-news__more a:hover { text-decoration: underline; text-underline-offset: .2em; }

.fpshp-sns .wp-block-buttons { gap: var(--fpshp-space-4) !important; }
.fpshp-sns #sb_instagram { max-width: var(--fpshp-container); margin: 0 auto; }

.fpshp-access.wp-block-columns { gap: var(--fpshp-col-gap); align-items: stretch; }
.fpshp-access .wp-block-column { display: flex; flex-direction: column; }
.fpshp-access__map { flex: 1 1 auto; min-height: 320px; border-radius: var(--fpshp-radius-lg); overflow: hidden; background: var(--fpshp-sand); margin: 0 !important; }
.fpshp-access__map iframe { width: 100%; height: 100%; min-height: 320px; display: block; border: 0; filter: saturate(.8); }
.fpshp-access .fpshp-card { flex: 1 1 auto; }
.fpshp-access dl { display: grid; grid-template-columns: auto 1fr; gap: var(--fpshp-space-2) var(--fpshp-space-5); margin: 0; font-size: var(--fpshp-fs-2); }
.fpshp-access dt { color: var(--fpshp-text-light); font-weight: 400; white-space: nowrap; }
.fpshp-access dd { margin: 0; color: var(--fpshp-text); }
.fpshp-access dd a { color: var(--fpshp-olive-dark); text-decoration: none; }
.fpshp-access__note { font-size: var(--fpshp-fs-1); color: var(--fpshp-text-muted); }

/* =============================================================================
   11. ヘッダー／フッター（Blocksy の上書き・色と高さは主にカスタマイザー側で設定）
   ============================================================================= */
header#header [data-row] .ct-container,
header#header [data-row] .ct-container-fluid { --fpshp-unused: 0; }
header#header .menu > li > a { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); letter-spacing: .08em; font-weight: 500; }
header#header .site-logo-container { --logo-max-height: 60px; }
header#header .site-logo-container img { max-height: var(--logo-max-height); width: auto; height: auto; }
header#header [data-sticky*="yes"] .site-logo-container { --logo-max-height: 44px; }
@media (max-width: 999px) { header#header .site-logo-container { --logo-max-height: 44px; } }
header#header .site-title { font-family: var(--fpshp-font-display); letter-spacing: .08em; }
/* ヘッダーの予約ボタン（要素の「追加クラス」で fpshp-btn fpshp-btn--primary fpshp-btn--m を付ける） */
header#header .ct-button.fpshp-btn { min-height: var(--fpshp-btn-h-m); padding: 0 var(--fpshp-space-5); font-size: var(--fpshp-fs-2); border: 0; }
header#header [data-sticky*="yes"] .ct-button.fpshp-btn { min-height: var(--fpshp-btn-h-s); }
/* スマホ・タブレットのヘッダー（Blocksy の mobile 用ヘッダー＝999px 以下）: ロゴを中央に。メニューボタンは右のまま（2026-11-01） */
header#header [data-device="mobile"] [data-row*="middle"] .ct-container { position: relative; }
header#header [data-device="mobile"] [data-id="logo"] { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
/* オフキャンバス（SP メニュー） */
#offcanvas .ct-panel-inner { background: var(--fpshp-dark); }
/* 項目は白。現在地（本当のページへのリンクだけ。ページ内の場所へのリンクは functions.php で現在地の印を外している）は
   金色の文字＋左の短い線（Blocksy 既定のくすんだオリーブ色は暗い背景で「押せない」ように見えたため・2026-11-01）。
   Blocksy の構造は nav.mobile-menu > ul > li > a.ct-menu-link（以前の「.mobile-menu > li > a」は当たっていなかった） */
#offcanvas .mobile-menu .ct-menu-link { font-family: var(--fpshp-font-sans); color: #fff; letter-spacing: .06em; }
#offcanvas .mobile-menu .ct-menu-link:hover { color: var(--fpshp-gold-light); }
#offcanvas .mobile-menu .current-menu-item > .ct-menu-link { color: var(--fpshp-gold-light); }
#offcanvas .mobile-menu .current-menu-item > .ct-menu-link::before { content: ""; flex: 0 0 auto; width: 16px; height: 1px; margin-right: var(--fpshp-space-3); background: currentColor; }
#offcanvas .ct-toggle-close { color: var(--fpshp-gold-light); }
.fpshp-offcanvas-foot { padding: var(--fpshp-space-6) 0 0; border-top: 1px solid var(--fpshp-dark-3); margin-top: var(--fpshp-space-6); }
.fpshp-offcanvas-foot p { font-size: var(--fpshp-fs-1); color: var(--fpshp-olive-light); letter-spacing: .08em; margin: 0 0 var(--fpshp-space-2); }
.fpshp-offcanvas-foot a { display: block; padding: var(--fpshp-space-2) 0; font-size: var(--fpshp-fs-2); color: var(--fpshp-gold-light); text-decoration: none; }

/* フッター */
footer.ct-footer { font-size: var(--fpshp-fs-2); }
footer.ct-footer [data-row] { color: var(--fpshp-gold-light); }
footer.ct-footer .ct-widget a, footer.ct-footer a { color: var(--fpshp-gold-light); text-decoration: none; transition: color var(--fpshp-dur-fast) var(--fpshp-ease); }
footer.ct-footer .ct-widget a:hover, footer.ct-footer a:hover { color: #fff; }
footer.ct-footer .widget-title, footer.ct-footer .wp-block-heading { font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-2); font-weight: 400; letter-spacing: var(--fpshp-ls-wide); text-transform: uppercase; color: var(--fpshp-gold); margin-bottom: var(--fpshp-space-4); }
footer.ct-footer ul { list-style: none; padding: 0; margin: 0; }
footer.ct-footer li { margin: 0 0 var(--fpshp-space-2); line-height: 1.6; }
footer.ct-footer .fpshp-footer__brand img { width: 180px; max-width: 100%; height: auto; margin-bottom: var(--fpshp-space-4); }
footer.ct-footer .fpshp-footer__brand p { margin: 0 0 var(--fpshp-space-2); font-size: var(--fpshp-fs-2); color: var(--fpshp-olive-light); line-height: 1.7; }
footer.ct-footer .fpshp-footer__brand p small { font-size: var(--fpshp-fs-1); }
footer.ct-footer .ct-footer-copyright { font-size: var(--fpshp-fs-1); letter-spacing: .04em; color: var(--fpshp-olive-light); }
footer.ct-footer [data-row="bottom"] { border-top: 1px solid var(--fpshp-dark-3); }
/* SP 下部バーの分だけフッターに余白（余白の部分もフッターと同じ暗色に） */
@media (max-width: 999px) { footer.ct-footer { padding-bottom: var(--fpshp-bottombar-h); } footer#footer.ct-footer { background-color: var(--fpshp-dark); } }
/* 旧 SWELL のテキストウィジェット（[blog_parts]・中身は空）がテーマ切替時に自動でフッターへ移ってくるため隠す。フッターはブロックウィジェットだけを使う */
footer.ct-footer .widget_text { display: none; }

/* フッター（タブレット・スマホ）
   - PC の 4 列をそのまま縦に積むと約 1,200px になる → 一般的な「ロゴと所在地を中央 → 案内リンク 2 列 → 主要ボタン → SNS → コピーライト」の形に
   - リンクは指で押しやすい高さ（1 行 40px 前後）を確保する */
@media (max-width: 999px) {
	[data-footer*="type-1"] footer.ct-footer [data-row*="middle"] > div { --container-spacing: var(--fpshp-space-7); }
	footer.ct-footer [data-row*="middle"] .ct-container { grid-template-columns: 1fr 1.4fr !important; gap: var(--fpshp-space-6) var(--fpshp-space-3) !important; }
	footer.ct-footer [data-column="widget-area-1"], footer.ct-footer [data-column="widget-area-4"] { grid-column: 1 / -1; text-align: center; }
	footer.ct-footer .fpshp-footer__brand img { width: 150px; margin: 0 auto var(--fpshp-space-3); }
	footer.ct-footer .fpshp-footer__brand p { margin-bottom: var(--fpshp-space-1); }
	footer.ct-footer .wp-block-heading { margin-bottom: var(--fpshp-space-2) !important; }
	footer.ct-footer li { margin: 0; }
	footer.ct-footer [data-column="widget-area-2"] a, footer.ct-footer [data-column="widget-area-3"] a { display: block; padding: calc(var(--fpshp-space-2) + 2px) 0; font-size: var(--fpshp-fs-2); letter-spacing: .02em; line-height: 1.5; }
	/* 予約まわりの 3 つは枠付きのボタンにして横に並べる */
	footer.ct-footer [data-column="widget-area-4"] ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--fpshp-space-2); }
	footer.ct-footer [data-column="widget-area-4"] a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--fpshp-space-4); border: 1px solid rgba(232, 213, 168, .4); border-radius: var(--fpshp-radius-pill); }
	footer.ct-footer [data-column="widget-area-4"] a:hover { border-color: #fff; }
	/* 下段: SNS（押しやすい大きさ）→ コピーライトの順に中央 */
	footer.ct-footer [data-row*="bottom"] .ct-container { display: flex !important; flex-direction: column-reverse; align-items: center; gap: var(--fpshp-space-3); }
	footer.ct-footer .ct-footer-socials .ct-social-box { --theme-icon-size: 20px; gap: var(--fpshp-space-2); }
	footer.ct-footer .ct-footer-socials .ct-social-box a { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}

/* =============================================================================
   12. 下層ページ
   ============================================================================= */
/* 題名帯（固定ページはコンテンツ先頭のグループ・投稿は Blocksy の Page Title） */
/* 題名帯（下層ページ）: 中身を上下中央にし、上下の余白を同じに（リード文の有無で位置がずれない） */
.fpshp-pagehead {
	min-height: 200px;
	display: flex; flex-direction: column; justify-content: center;
	padding: var(--fpshp-space-7) var(--fpshp-gutter);
	background: var(--fpshp-dark);
	color: #fff;
	margin: 0 !important;
}
.fpshp-pagehead > * { max-width: var(--fpshp-container); width: 100%; margin-left: auto; margin-right: auto; }
.fpshp-pagehead { text-align: center; }
.fpshp-pagehead .fpshp-heading { margin-bottom: 0; }
.fpshp-pagehead .fpshp-heading__eyebrow::before { display: none; }
.fpshp-pagehead .fpshp-heading__lead { margin-left: auto; margin-right: auto; }
/* Blocksy の題名帯（会員規約・特商法・投稿・一覧）も中央揃え */
.hero-section[data-type="type-1"] { text-align: center; }
.hero-section[data-type="type-1"] .entry-meta, .hero-section[data-type="type-1"] .ct-breadcrumbs { justify-content: center; }
.fpshp-pagehead .fpshp-heading__eyebrow { color: var(--fpshp-gold); }
.fpshp-pagehead .fpshp-heading__title { color: #fff; margin-bottom: 0 !important; }
.fpshp-pagehead .fpshp-heading__lead { color: var(--fpshp-text-on-dark-light); margin-top: var(--fpshp-space-4); }

/* 投稿の題名帯（Blocksy hero type-1 を上書き） */
.single-post .hero-section, .archive .hero-section, .search .hero-section, .page .hero-section {
	background: var(--fpshp-dark);
	padding: calc(var(--fpshp-space-7)) var(--fpshp-gutter) var(--fpshp-space-7);
}
.single-post .hero-section .page-title, .archive .hero-section .page-title, .page .hero-section .page-title { color: #fff; font-size: var(--fpshp-fs-5); }
/* お知らせ一覧・投稿・検索の題名帯も、下層ページの題名帯（fpshp-pagehead）と同じ形に:
   Blocksy の題名帯はコンテナの内側にあるので、画面の端まで広げてヘッダーの真下に付け、中身を上下中央に */
.archive .hero-section, .single-post .hero-section, .search .hero-section {
	display: flex; flex-direction: column; justify-content: center;
	min-height: 200px; max-width: none !important; width: auto !important;
	margin: calc(-1 * var(--theme-content-vertical-spacing, 60px)) calc(50% - 50vw) var(--fpshp-space-8) !important;
	padding: var(--fpshp-space-7) var(--fpshp-gutter) !important;
	text-align: center;
}
.category-news .hero-section .page-title::before, .single-post .hero-section .page-title::before {
	content: "News"; display: block; margin-bottom: var(--fpshp-space-2);
	font-family: var(--fpshp-font-display); font-size: var(--fpshp-fs-2); font-weight: 400; letter-spacing: var(--fpshp-ls-wide); text-transform: uppercase; color: var(--fpshp-gold); line-height: 1;
}
/* お知らせ一覧のカード: 並びの間隔は L3、題名は見出し 4 段目の大きさ、投稿者名は出さない（日付だけ） */
.archive .entries, .search .entries { --grid-columns-gap: var(--fpshp-col-gap); }
.archive .entry-card .entry-title, .search .entry-card .entry-title { font-size: var(--fpshp-fs-4); line-height: var(--fpshp-lh-tight); }
.entry-card .meta-author, .single-post .hero-section .meta-author, .single-post .hero-section .meta-categories { display: none; } /* 投稿の題名帯は日付だけ（「News」は添え字で示す） */
.single-post .hero-section .entry-meta li::after, .entry-card .entry-meta li::after { content: none !important; } /* 隠した項目の区切り「/」も消す */
/* 旧 SWELL の「白文字」指定（特商法ページなど）はライト背景では読めないので本文色に戻す */
.entry-content .has-white-color, .entry-content .swl-inline-color { color: var(--fpshp-olive-dark) !important; }
.fpshp-band--dark .has-white-color { color: #fff !important; }
.entry-content .has-white-color a { color: var(--fpshp-olive-dark) !important; text-decoration: underline; text-underline-offset: .2em; }
.single-post .hero-section .entry-meta, .single-post .hero-section .entry-meta a, .archive .hero-section .page-description { color: var(--fpshp-gold-light); font-family: var(--fpshp-font-display); letter-spacing: .06em; }

/* 本文の幅（規約・投稿） */
.fpshp-article { max-width: var(--fpshp-article); margin-left: auto; margin-right: auto; }
/* 本文の最初と最後の要素の外側余白は帯の上下（L1）に任せる（会員規約の .fps-terms の margin など） */
.fpshp-article > :first-child, .fpshp-article > style:first-child + * { margin-top: 0 !important; }
.fpshp-article > :last-child, .fpshp-article > .fps-terms { margin-bottom: 0 !important; }
.fpshp-article > .fps-terms { margin-top: 0 !important; }
.fpshp-article > p:empty { display: none; } /* クラシック本文の自動整形で入る空の段落 */
.fpshp-article h2 { position: relative; padding-left: var(--fpshp-space-4); margin: var(--fpshp-space-8) 0 var(--fpshp-space-5); font-size: var(--fpshp-fs-4); color: var(--fpshp-dark-2); }
.fpshp-article h2::before { content: ""; position: absolute; left: 0; top: .15em; bottom: .15em; width: 3px; border-radius: 2px; background: var(--fpshp-olive); }
.fpshp-article h3 { font-size: var(--fpshp-fs-3); font-family: var(--fpshp-font-sans); color: var(--fpshp-olive-dark); margin: var(--fpshp-space-6) 0 var(--fpshp-space-3); }
.fpshp-article p, .fpshp-article li { font-size: var(--fpshp-fs-3); color: var(--fpshp-text); }
.fpshp-article p { margin: 0 0 var(--fpshp-space-4); }
.fpshp-article ul, .fpshp-article ol { margin: 0 0 var(--fpshp-space-5); padding-left: 1.4em; }
.fpshp-article li { margin-bottom: var(--fpshp-space-2); }
.fpshp-article li::marker { color: var(--fpshp-olive); }
.fpshp-article .fpshp-note { padding: var(--fpshp-space-5) var(--fpshp-space-6); background: var(--fpshp-white); border: 1px solid var(--fpshp-sand); border-radius: var(--fpshp-radius-md); font-size: var(--fpshp-fs-2); color: var(--fpshp-text-light); }
.fpshp-article .fpshp-note p:last-child { margin-bottom: 0; }

/* FAQ（VK Blocks faq2） */
.fpshp-faq .vk_faq { margin: 0 0 var(--fpshp-space-4); background: var(--fpshp-white); border: 1px solid var(--fpshp-sand); border-radius: var(--fpshp-radius-md); padding: var(--fpshp-space-4) var(--fpshp-space-5); --vk-color-primary: var(--fpshp-olive); }
.fpshp-faq .vk_faq_title { font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-3); font-weight: 700; color: var(--fpshp-dark-2); }
.fpshp-faq .vk_faq_title::before { color: var(--fpshp-olive); font-family: var(--fpshp-font-display); font-weight: 700; }
.fpshp-faq .vk_faq_content { font-size: var(--fpshp-fs-2); color: var(--fpshp-text-light); }
.fpshp-faq .vk_faq_content::before { color: var(--fpshp-gold); font-family: var(--fpshp-font-display); font-weight: 700; }
.fpshp-faq .vk_faq_content p { margin: 0; }

/* 投稿（NEWS 詳細）・一覧 */
.single-post .entry-content { max-width: var(--fpshp-article); margin-left: auto; margin-right: auto; }
.single-post .entry-content p { font-size: var(--fpshp-fs-3); }
.ct-related-posts, .post-navigation { max-width: var(--fpshp-article); margin-left: auto; margin-right: auto; }

/* 404 */
/* 404（透明ヘッダーは Blocksy の表示条件で 404 を除外している） */
.error404 .hero-section { background: var(--fpshp-dark); padding: var(--fpshp-space-8) var(--fpshp-gutter); text-align: center; }
.error404 .hero-section .page-title { font-family: var(--fpshp-font-serif); font-size: var(--fpshp-fs-5); color: #fff; }
.error404 .hero-section .page-description, .error404 .hero-section p { color: var(--fpshp-gold-light); }
.error404 .ct-no-results { text-align: center; padding-top: var(--fpshp-space-8); padding-bottom: var(--fpshp-space-9); }
.error404 .ct-no-results p { color: var(--fpshp-text-light); }
.error404 .ct-search-form { max-width: 480px; margin: var(--fpshp-space-5) auto 0; }

/* =============================================================================
   13. 固定 CTA
   ============================================================================= */
/* SP 下部バー */
.fpshp-bottombar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
	display: none;
	grid-template-columns: 1fr 1.2fr 1fr;
	align-items: end;
	height: var(--fpshp-bottombar-h);
	padding-bottom: env(safe-area-inset-bottom);
	background: var(--fpshp-dark);
	border-top: 1px solid var(--fpshp-dark-3);
	transform: translateY(0);
	transition: transform var(--fpshp-dur-base) var(--fpshp-ease);
}
.fpshp-bottombar[data-hidden="true"] { transform: translateY(calc(100% + 8px)); }
.fpshp-bottombar__item {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	height: var(--fpshp-bottombar-h); padding: 0; margin: 0; border: 0; background: transparent;
	font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-1); letter-spacing: .04em; color: var(--fpshp-gold-light); text-decoration: none; cursor: pointer;
}
.fpshp-bottombar__item svg { width: 22px; height: 22px; fill: currentColor; }
.fpshp-bottombar__item[aria-current="page"] { color: #fff; }
.fpshp-bottombar__item--cta { position: relative; }
.fpshp-bottombar__cta {
	position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%);
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 50%;
	background: linear-gradient(135deg, var(--fpshp-olive-dark), var(--fpshp-olive));
	color: #fff; font-size: var(--fpshp-fs-1); font-weight: 700; letter-spacing: .02em; line-height: 1.2; text-align: center;
	box-shadow: var(--fpshp-shadow-cta); border: 3px solid var(--fpshp-dark);
}
@media (max-width: 999px) { .fpshp-bottombar { display: grid; } }


/* PC 浮遊 CTA */
.fpshp-floating {
	position: fixed; right: var(--fpshp-space-6); bottom: var(--fpshp-space-6); z-index: 900;
	display: none; align-items: center; gap: var(--fpshp-space-2);
	min-height: var(--fpshp-btn-h-m); padding: 0 var(--fpshp-space-6);
	border-radius: var(--fpshp-radius-pill);
	background: linear-gradient(135deg, var(--fpshp-olive-dark), var(--fpshp-olive));
	color: #fff !important; font-family: var(--fpshp-font-sans); font-size: var(--fpshp-fs-2); font-weight: 500; letter-spacing: .1em; text-decoration: none;
	box-shadow: var(--fpshp-shadow-cta);
	transition: transform var(--fpshp-dur-base) var(--fpshp-ease), opacity var(--fpshp-dur-base) var(--fpshp-ease), box-shadow var(--fpshp-dur-base) var(--fpshp-ease);
}
.fpshp-floating:hover { transform: translateY(-2px); box-shadow: var(--fpshp-shadow-cta-hover); }
.fpshp-floating[data-hidden="true"] { opacity: 0; transform: translateY(16px); pointer-events: none; }
@media (min-width: 1000px) { .fpshp-floating { display: inline-flex; } }

/* =============================================================================
   14. ユーティリティ・レスポンシブ
   ============================================================================= */
.fpshp-sp-only { display: none; }
.fpshp-pc-only { display: initial; }
@media (max-width: 689px) { .fpshp-sp-only { display: initial; } .fpshp-pc-only { display: none; } .fpshp-sp-left { text-align: left !important; } }
.fpshp-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fpshp-mt-0 { margin-top: 0 !important; }
.fpshp-mb-0 { margin-bottom: 0 !important; }
.fpshp-center { text-align: center; }
.fpshp-muted { color: var(--fpshp-text-light); }
.fpshp-small { font-size: var(--fpshp-fs-2); }
.fpshp-xs { font-size: var(--fpshp-fs-1); }

/* タブレット以下 */
@media (max-width: 999px) {
	.fpshp-steps .wp-block-column:not(:last-child)::after { display: none; }
	.fpshp-hero__scroll { display: none; }
}
/* 列ブロックが縦積みになる幅（コアの 781px）: 3 棟は「説明文 → 写真」の順に（座禅 = reverse は元から文が先） */
@media (max-width: 781px) {
	#feature .fpshp-bldg:not(.fpshp-bldg--reverse) > .wp-block-column:first-child { order: 2; }
}
/* スマホ */
@media (max-width: 689px) {
	:root { --fpshp-gutter: 24px; }
	.fpshp-card { padding: var(--fpshp-space-5) !important; }
	.fpshp-card .wp-block-image { margin: calc(-1 * var(--fpshp-space-5)) calc(-1 * var(--fpshp-space-5)) 0 !important; }
	.fpshp-hero.wp-block-cover { padding-bottom: var(--fpshp-space-8); min-height: 92svh; }
	.fpshp-hero .wp-block-cover__image-background { object-position: 60% 50%; }
	.fpshp-hero__actions .wp-block-button { width: 100%; }
	.fpshp-hero__actions .wp-block-button__link { width: 100%; }
	.fpshp-heroslider > .fpshp-heroslide.wp-block-cover { padding: var(--fpshp-header-h-sp) var(--fpshp-gutter) var(--fpshp-space-8); }
	/* ヒーローの中の文字はスマホで 1 段下げる（文字のルールの唯一の例外） */
	.fpshp-heroslide .fpshp-heroslide__catch { margin-top: var(--fpshp-space-6) !important; font-size: var(--fpshp-fs-3); letter-spacing: .06em; }
	.fpshp-heroslide__balloon .is-s { font-size: var(--fpshp-fs-3); }
	.fpshp-heroslide__balloon .is-l { font-size: var(--fpshp-fs-4); }
	.fpshp-heroslide__balloon { flex-direction: column; align-items: center; padding: var(--fpshp-space-3) var(--fpshp-space-4); }
	.fpshp-heroslide .fpshp-heroslide__text { font-size: var(--fpshp-fs-2); line-height: 1.9; letter-spacing: .02em; }
	.fpshp-heroslide__balloon + .fpshp-heroslide__text { margin-top: var(--fpshp-space-6) !important; }
	/* 「道東初」は 1 行に単独で中央（文の頭に付くと左に寄って見えるため・2026-11-01） */
	.fpshp-heroslide__text .fpshp-heroslide__mark { display: table; margin: 0 auto var(--fpshp-space-2); font-size: var(--fpshp-fs-3); }
	/* 導入の帯（四季折々の…）は文の左右を広めに（24px → 40px・2026-11-01） */
	.fpshp-heroslider.fpshp-heroslider--intro > .fpshp-heroslide.wp-block-cover { padding-left: 40px; padding-right: 40px; }
	.fpshp-stats.wp-block-columns { flex-wrap: nowrap !important; }
	.fpshp-stats .wp-block-column { padding: var(--fpshp-space-4) var(--fpshp-space-2); flex-basis: 33.33% !important; }
	.fpshp-stats__num { font-size: var(--fpshp-fs-4); }
	.fpshp-table thead th, .fpshp-table tbody td, .fpshp-table tbody th { padding: 0 var(--fpshp-space-3); }
	.fpshp-table td:not(:first-child) { font-size: var(--fpshp-fs-3); }
	.fpshp-table .fpshp-badge--rec { display: block; width: max-content; margin: 2px 0 0; }
	.fpshp-table thead th, .fpshp-table tbody td, .fpshp-table tbody th { padding-left: var(--fpshp-space-2); padding-right: var(--fpshp-space-2); }
	.fpshp-table--compare tr > :first-child { width: 24%; }
	.fpshp-table--compare tbody tr:last-child td:not(:first-child) { font-size: var(--fpshp-fs-1); }
	.fpshp-vipspec { grid-template-columns: repeat(2, 1fr); }
	:root { --fpshp-person-w: 26px; --fpshp-person-h: 52px; }
	.fpshp-people { gap: 4px; padding-top: 20px; }
	.fpshp-person.is-vip::after { width: 20px; height: 14px; }
	.fpshp-person__tag { padding: 0 3px; }
	.fpshp-split__grid { gap: var(--fpshp-space-3); }
	.fpshp-split__grid::after { width: 28px; height: 28px; font-size: var(--fpshp-fs-1); }
	.fpshp-split__case { padding: var(--fpshp-space-6) var(--fpshp-space-2) var(--fpshp-space-5); }
	.fpshp-split__who { flex-direction: column; gap: var(--fpshp-space-1); font-size: var(--fpshp-fs-2); letter-spacing: .04em; }
	.fpshp-split__who .fpshp-tag { font-size: var(--fpshp-fs-1); padding: 1px 6px; }
	.fpshp-split__label { font-size: var(--fpshp-fs-1); }
	.fpshp-split__badge { font-size: var(--fpshp-fs-1); padding: 3px var(--fpshp-space-3); }
	.fpshp-pagehead { padding-top: var(--fpshp-space-6); padding-bottom: var(--fpshp-space-6); min-height: 160px; }
	.archive .hero-section, .single-post .hero-section, .search .hero-section { min-height: 160px; padding-top: var(--fpshp-space-6) !important; padding-bottom: var(--fpshp-space-6) !important; }
	.fpshp-access__map, .fpshp-access__map iframe { min-height: 240px; }
}
