/* =========================================================
   /first-visit/ 固有スタイル
   HIN-147: editorial luxury デザイン全面差し替え基盤
   - HTML 版（first-visit-standalone.html / first-visit.jsx）から
     design tokens / 共通スタイルを抽出した最初の層
   - HIN-147-2 以降のサブイシューで個別セクションスタイルを追記する
   ========================================================= */

/* ---------- Google Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=JetBrains+Mono:wght@400;500&family=Shippori+Mincho+B1:wght@400;500;600&display=swap');

/* ---------- Design tokens（HTML 版 FVC ミラー） ---------- */
/* HIN-157: `.fv-trial` は TOP B-6 でも使われるため、変数定義スコープを
   `.page-first-visit` だけでなく `.fv-trial` 配下にも広げる。
   `.fv-trial` 配下の `.fv-wrap` / `.fv-trial__price` 等は CSS カスケードで
   ここで定義した変数を継承するため、他セレクタへの追加スコープは不要。
   HIN-173: TOP B-7「院長より」抜粋の引用装飾でも `.fv-message__pull` /
   `.fv-message__quote` を再利用するため、同様に `.section-director-teaser`
   配下にも変数を行き渡らせる。 */
.page-first-visit,
.fv-trial,
.section-director-teaser {
	--fv-green: #1f4a40;
	--fv-green-deep: #16352e;
	--fv-green-ink: #0f2823;
	--fv-cream: #f5efe2;
	--fv-cream-soft: #faf6ec;
	--fv-cream-deep: #ede4d0;
	--fv-paper: #ffffff;
	--fv-ivory: #fbf8f1;
	--fv-ink: #2a2926;
	--fv-ink-soft: #6f6a62;
	--fv-ink-mute: #9a9388;
	--fv-gold: #bf9d5c;
	--fv-gold-soft: #a8884a;
	--fv-gold-pale: #d8c08a;
	--fv-line: #06c755;
	--fv-line-dark: #05a847;
	--fv-rule: rgba(31, 74, 64, 0.16);
	--fv-rule-soft: rgba(31, 74, 64, 0.08);
	--fv-rule-hair: rgba(31, 74, 64, 0.05);
	--fv-pill: 999px;

	--fv-font-mincho: 'Shippori Mincho B1', 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
	--fv-font-mono: 'JetBrains Mono', monospace;
	--fv-font-en: 'Cormorant Garamond', serif;

	--fv-wrap-max: 1280px;
	--fv-wrap-pad: clamp(24px, 5vw, 72px);
}

/* ---------- Base layout ---------- */
.page-first-visit {
	background: var(--fv-ivory);
	color: var(--fv-ink);
	font-family: var(--fv-font-mincho);
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.04em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.page-first-visit *,
.page-first-visit *::before,
.page-first-visit *::after {
	box-sizing: border-box;
}
.page-first-visit img {
	max-width: 100%;
	height: auto;
	display: block;
}
.page-first-visit a {
	color: inherit;
	text-decoration: none;
}

/* ---------- Wrap ---------- */
.fv-wrap {
	max-width: var(--fv-wrap-max);
	margin: 0 auto;
	padding: 0 var(--fv-wrap-pad);
}

/* ---------- Common atoms ---------- */
/* eyebrow: "N°XX" の英字ラベル */
.fv-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--fv-gold-soft);
	font-family: var(--fv-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.36em;
	font-weight: 500;
	text-transform: uppercase;
}
.fv-eyebrow::before {
	content: '';
	width: 28px;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}
.fv-eyebrow--dark {
	color: var(--fv-gold-pale);
}

/* section head: eyebrow + h2 + lead をまとめた共通ブロック */
.fv-section-head {
	margin-bottom: clamp(48px, 6vw, 80px);
	text-align: left;
}
.fv-section-head--center {
	text-align: center;
}
.fv-section-head__eyebrow-wrap {
	margin-bottom: 24px;
	display: flex;
	justify-content: flex-start;
}
.fv-section-head--center .fv-section-head__eyebrow-wrap {
	justify-content: center;
}
.fv-section-head__title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(28px, 3.8vw, 48px);
	margin: 0;
	color: var(--fv-green-ink);
	letter-spacing: 0.08em;
	line-height: 1.5;
}
.fv-section-head--dark .fv-section-head__title {
	color: #fff;
}
.fv-section-head__lead {
	margin-top: 22px;
	font-family: var(--fv-font-mincho);
	font-weight: 400;
	/* HIN-170: 本文サイズ +20% (clamp(14,1.1vw,16) → clamp(17,1.3vw,19)) */
	font-size: clamp(17px, 1.3vw, 19px);
	line-height: 2.1;
	color: var(--fv-ink-soft);
	letter-spacing: 0.06em;
	max-width: 720px;
}
.fv-section-head--center .fv-section-head__lead {
	margin-left: auto;
	margin-right: auto;
}
.fv-section-head--dark .fv-section-head__lead {
	color: rgba(255, 255, 255, 0.8);
}

/* photo placeholder（HTML 版 FVPhoto に対応）
 * HIN-187: 実画像（.fv-photo__img）配置時はベースのグラデ／ストライプを出さず、
 * 未設定時（.fv-photo--placeholder）のみプレースホルダー描画を行う。
 */
.fv-photo {
	position: relative;
	aspect-ratio: 4 / 5;
	width: 100%;
	border-radius: 2px;
	overflow: hidden;
}
/* HIN-187: 実画像表示用。<img class="fv-photo__img"> をフレームに敷き詰める。 */
.fv-photo__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* HIN-187: 未設定時のグラデ＋ストライプを placeholder modifier に分離。 */
.fv-photo--placeholder {
	background: linear-gradient(180deg, #ece2c8 0%, #c9b890 100%);
}
.fv-photo--placeholder::before {
	content: '';
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		45deg,
		rgba(31, 74, 64, 0.045) 0 18px,
		transparent 18px 36px
	);
	pointer-events: none;
}
.fv-photo--dark.fv-photo--placeholder {
	background: linear-gradient(180deg, #2a4b43 0%, #16312a 100%);
}
.fv-photo--dark.fv-photo--placeholder::before {
	background: repeating-linear-gradient(
		45deg,
		rgba(191, 157, 92, 0.06) 0 18px,
		transparent 18px 36px
	);
}
.fv-photo__label {
	position: absolute;
	bottom: 16px;
	left: 16px;
	font-family: var(--fv-font-mono);
	font-size: 9.5px;
	letter-spacing: 0.22em;
	color: var(--fv-gold-soft);
}
.fv-photo--dark .fv-photo__label {
	color: var(--fv-gold-pale);
}
/* 角の装飾ティック */
.fv-photo .fv-photo__tick {
	position: absolute;
	width: 14px;
	height: 14px;
	pointer-events: none;
}
.fv-photo .fv-photo__tick--tl {
	top: 10px;
	left: 10px;
	border-top: 1px solid rgba(191, 157, 92, 0.55);
	border-left: 1px solid rgba(191, 157, 92, 0.55);
}
.fv-photo .fv-photo__tick--tr {
	top: 10px;
	right: 10px;
	border-top: 1px solid rgba(191, 157, 92, 0.55);
	border-right: 1px solid rgba(191, 157, 92, 0.55);
}
.fv-photo .fv-photo__tick--bl {
	bottom: 10px;
	left: 10px;
	border-bottom: 1px solid rgba(191, 157, 92, 0.55);
	border-left: 1px solid rgba(191, 157, 92, 0.55);
}
.fv-photo .fv-photo__tick--br {
	bottom: 10px;
	right: 10px;
	border-bottom: 1px solid rgba(191, 157, 92, 0.55);
	border-right: 1px solid rgba(191, 157, 92, 0.55);
}
.fv-photo--dark .fv-photo__tick--tl,
.fv-photo--dark .fv-photo__tick--tr,
.fv-photo--dark .fv-photo__tick--bl,
.fv-photo--dark .fv-photo__tick--br {
	border-color: rgba(216, 192, 138, 0.55);
}

/* pill button（HTML 版 FVPillBtn ミラー） */
.fv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 15px 32px;
	border-radius: var(--fv-pill);
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: 13.5px;
	letter-spacing: 0.14em;
	white-space: nowrap;
	border: 1px solid;
	transition: opacity 200ms ease, background 200ms ease, color 200ms ease;
	cursor: pointer;
}
.fv-btn:hover {
	opacity: 0.88;
}
.fv-btn--line {
	background: var(--fv-line);
	color: #fff;
	border-color: var(--fv-line);
}
.fv-btn--line:hover {
	background: var(--fv-line-dark);
	border-color: var(--fv-line-dark);
	opacity: 1;
}
.fv-btn--green {
	background: var(--fv-green);
	color: #fff;
	border-color: var(--fv-green);
}
.fv-btn--outline {
	background: transparent;
	color: var(--fv-green);
	border-color: var(--fv-green);
}
.fv-btn--ghost {
	background: transparent;
	color: var(--fv-green-deep);
	border-color: rgba(31, 74, 64, 0.3);
}
.fv-btn--on-dark {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.4);
}

/* quiet link（HTML 版 FVQuietLink ミラー） */
.fv-quiet-link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--fv-font-mincho);
	font-size: 13px;
	letter-spacing: 0.18em;
	font-weight: 500;
	color: var(--fv-green-deep);
	padding-bottom: 6px;
	border-bottom: 1px solid var(--fv-gold);
}
.fv-quiet-link--dark {
	color: #fff;
	border-bottom-color: var(--fv-gold-pale);
}
.fv-quiet-link__arrow {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-size: 15px;
	color: var(--fv-gold);
}
.fv-quiet-link--dark .fv-quiet-link__arrow {
	color: var(--fv-gold-pale);
}

/* =========================================================
   個別セクションスタイル:
   - FVHero / FVMessage / FVConcerns / FVValues   → HIN-149（本ファイルで定義）
   - FVFlow / FVTrial / FVMenuGuide               → HIN-150
   - FVFaq / FVClosing / FVCta                    → HIN-151
   ========================================================= */

/* ---------- Photo（landscape variant） ---------- */
.page-first-visit .fv-photo--landscape {
	aspect-ratio: 4 / 3;
}

/* ---------- FVHero ---------- */
.page-first-visit .fv-hero {
	position: relative;
	overflow: hidden;
	background: var(--fv-ivory);
	padding-top: clamp(120px, 14vw, 180px);
	padding-bottom: clamp(80px, 10vw, 140px);
}
.page-first-visit .fv-hero__bg {
	position: absolute;
	inset: 0;
	background: radial-gradient(1200px 600px at 80% 0%, var(--fv-cream-soft) 0%, transparent 60%);
	pointer-events: none;
}
.page-first-visit .fv-hero__inner {
	position: relative;
}
.page-first-visit .fv-hero__breadcrumb {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: clamp(40px, 5vw, 64px);
	gap: 24px;
	flex-wrap: wrap;
}
.page-first-visit .fv-hero__index {
	font-family: var(--fv-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.28em;
	color: var(--fv-ink-mute);
	text-align: right;
}
.page-first-visit .fv-hero__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(40px, 6vw, 96px);
	align-items: end;
}
.page-first-visit .fv-hero__en {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(28px, 2.4vw, 36px);
	color: var(--fv-gold);
	letter-spacing: 0.04em;
	margin-bottom: 18px;
}
.page-first-visit .fv-hero__title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(44px, 6.6vw, 88px);
	margin: 0 0 40px;
	color: var(--fv-green-ink);
	letter-spacing: 0.04em;
	line-height: 1.35;
}
.page-first-visit .fv-hero__period,
.page-first-visit .fv-message__period,
.page-first-visit .fv-values__period {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-hero__lead {
	display: flex;
	gap: 22px;
	align-items: flex-start;
	max-width: 560px;
	margin-bottom: 40px;
}
.page-first-visit .fv-hero__lead-bar {
	display: block;
	width: 1px;
	min-width: 1px;
	align-self: stretch;
	background: var(--fv-gold);
	opacity: 0.7;
}
.page-first-visit .fv-hero__lead-text {
	font-family: var(--fv-font-mincho);
	font-weight: 400;
	/* HIN-170: 本文サイズ +20% (clamp(15,1.2vw,17) → clamp(18,1.4vw,20)) */
	font-size: clamp(18px, 1.4vw, 20px);
	line-height: 2.15;
	color: var(--fv-ink);
	letter-spacing: 0.06em;
}
.page-first-visit .fv-hero__cta {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
}
.page-first-visit .fv-hero__cta-btn {
	padding: 17px 34px;
	font-size: 14px;
}
/* HIN-158: `.fv-btn__icon` は `template-parts/first-visit/trial.php` の LINE
   ボタン専用バッジ。TOP B-6 でも同テンプレを共有するため `.page-first-visit`
   プレフィックスを除去してスコープを揃える。`.fv-btn--line` の中でしか
   意味を持たない命名のため、グローバル汚染は発生しない。 */
.fv-btn__icon {
	width: 20px;
	height: 20px;
	border-radius: 5px;
	background: #fff;
	color: var(--fv-line);
	font-size: 11px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}
.page-first-visit .fv-hero__photo {
	position: relative;
}
/* HIN-178: 「N°00.」装飾を PC・SP 両方で非表示にする。今後も表示不要。
   HTML 側 (template-parts/first-visit/hero.php) の `.fv-hero__photo-numeral`
   要素自体は HTML 版との対応関係を保つために残し、CSS で display: none する。 */
.page-first-visit .fv-hero__photo-numeral {
	display: none;
}
.page-first-visit .fv-hero__photo-frame {
	position: relative;
	padding: 10px;
	border: 1px solid var(--fv-rule);
	background: var(--fv-paper);
	z-index: 1;
}
.page-first-visit .fv-hero__photo-outline {
	position: absolute;
	left: -1px;
	top: -1px;
	right: -1px;
	bottom: -1px;
	border: 1px solid var(--fv-gold-pale);
	pointer-events: none;
	transform: translate(14px, 14px);
}
.page-first-visit .fv-hero__photo-sub {
	position: absolute;
	left: -32px;
	bottom: -36px;
	width: 46%;
	padding: 8px;
	border: 1px solid var(--fv-rule);
	background: var(--fv-paper);
	box-shadow: 0 18px 40px -28px rgba(15, 40, 35, 0.35);
	z-index: 2;
}
.page-first-visit .fv-hero__photo-caption {
	position: absolute;
	right: -8px;
	bottom: -28px;
	padding: 10px 16px;
	background: var(--fv-green-deep);
	color: #fff;
	font-family: var(--fv-font-mono);
	font-size: 10px;
	letter-spacing: 0.24em;
	z-index: 3;
}
.page-first-visit .fv-hero__toc {
	margin-top: clamp(60px, 7vw, 96px);
	padding-top: 32px;
	border-top: 1px solid var(--fv-rule);
	display: grid;
	grid-template-columns: auto 1fr 1fr 1fr;
	gap: 24px;
	align-items: baseline;
}
.page-first-visit .fv-hero__toc-label {
	font-family: var(--fv-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.28em;
	color: var(--fv-gold-soft);
}
.page-first-visit .fv-hero__toc-item {
	display: flex;
	align-items: baseline;
	gap: 14px;
	border-left: 1px solid var(--fv-rule);
	padding-left: 22px;
	transition: opacity 200ms ease;
}
.page-first-visit .fv-hero__toc-item:hover {
	opacity: 0.7;
}
.page-first-visit .fv-hero__toc-num {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: 22px;
	color: var(--fv-gold);
}
.page-first-visit .fv-hero__toc-text {
	font-family: var(--fv-font-mincho);
	font-size: 13px;
	letter-spacing: 0.12em;
	color: var(--fv-green-ink);
}

/* ---------- FVMessage ---------- */
.page-first-visit .fv-message {
	background: var(--fv-paper);
	padding: clamp(100px, 12vw, 180px) 0;
	position: relative;
	scroll-margin-top: 80px;
}
.page-first-visit .fv-message__grid {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: clamp(48px, 7vw, 120px);
	align-items: flex-start;
}
.page-first-visit .fv-message__aside {
	position: sticky;
	top: 120px;
}
.page-first-visit .fv-message__photo {
	position: relative;
	max-width: 380px;
}
.page-first-visit .fv-message__photo-frame {
	padding: 10px;
	border: 1px solid var(--fv-rule);
	background: var(--fv-paper);
	position: relative;
	z-index: 1;
}
.page-first-visit .fv-message__photo-outline {
	position: absolute;
	left: -1px;
	top: -1px;
	right: -1px;
	bottom: -1px;
	border: 1px solid var(--fv-gold-pale);
	pointer-events: none;
	transform: translate(14px, 14px);
}
/* HIN-173: `.fv-message__pull` 引用装飾を TOP B-7「院長より」抜粋でも再利用するため
   `.section-director-teaser` 配下のセレクタを併記する（HIN-157 と同パターン）。 */
.page-first-visit .fv-message__pull,
.section-director-teaser .fv-message__pull {
	position: relative;
	padding: 4px 0 32px 36px;
	margin-bottom: 48px;
	border-left: 1px solid var(--fv-gold);
}
.page-first-visit .fv-message__quote,
.section-director-teaser .fv-message__quote {
	position: absolute;
	left: -14px;
	top: -18px;
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: 88px;
	color: var(--fv-gold);
	line-height: 1;
}
.page-first-visit .fv-message__pull-text,
.section-director-teaser .fv-message__pull-text {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(19px, 1.7vw, 26px);
	line-height: 2;
	color: var(--fv-green-ink);
	letter-spacing: 0.06em;
	margin: 0;
}
.page-first-visit .fv-message__p {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +20% (15.5 → 18.5) */
	font-size: 18.5px;
	line-height: 2.25;
	color: var(--fv-ink);
	margin: 0 0 22px;
	letter-spacing: 0.06em;
}
.page-first-visit .fv-message__p--last {
	margin: 0;
}

/* ---------- FVConcerns ---------- */
.page-first-visit .fv-concerns {
	background: var(--fv-green-deep);
	color: #fff;
	padding: clamp(100px, 12vw, 180px) 0;
	position: relative;
	overflow: hidden;
	scroll-margin-top: 80px;
}
.page-first-visit .fv-concerns__deco {
	position: absolute;
	left: clamp(-60px, -3vw, -20px);
	top: -6%;
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(220px, 28vw, 380px);
	color: rgba(191, 157, 92, 0.06);
	line-height: 0.9;
	pointer-events: none;
}
.page-first-visit .fv-concerns__inner {
	position: relative;
}
.page-first-visit .fv-concerns__q {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-concerns__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	border-top: 1px solid rgba(216, 192, 138, 0.22);
	margin: 0;
	padding: 0;
	list-style: none;
}
.page-first-visit .fv-concerns__item {
	display: grid;
	grid-template-columns: 60px 1fr;
	align-items: center;
	gap: 18px;
	padding: clamp(22px, 2.4vw, 32px) clamp(12px, 1.5vw, 24px);
	border-bottom: 1px solid rgba(216, 192, 138, 0.22);
}
.page-first-visit .fv-concerns__item:nth-child(odd) {
	border-right: 1px solid rgba(216, 192, 138, 0.22);
}
.page-first-visit .fv-concerns__num {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: 26px;
	color: var(--fv-gold);
	letter-spacing: 0.02em;
}
.page-first-visit .fv-concerns__text {
	font-family: var(--fv-font-mincho);
	font-weight: 400;
	/* HIN-170: 本文サイズ +20% (clamp(15,1.2vw,17) → clamp(18,1.4vw,20)) */
	font-size: clamp(18px, 1.4vw, 20px);
	line-height: 1.8;
	color: #fff;
	letter-spacing: 0.06em;
}
.page-first-visit .fv-concerns__footer {
	margin-top: clamp(48px, 5vw, 64px);
	text-align: center;
}
.page-first-visit .fv-concerns__footer-text {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +20% (15 → 18) */
	font-size: 18px;
	line-height: 2.1;
	color: rgba(255, 255, 255, 0.75);
	letter-spacing: 0.06em;
	margin: 0 0 28px;
}

/* ---------- FVValues ---------- */
.page-first-visit .fv-values {
	background: var(--fv-cream-soft);
	padding: clamp(100px, 12vw, 180px) 0;
}
.page-first-visit .fv-values__list {
	border-top: 1px solid var(--fv-rule);
	margin: 0;
	padding: 0;
	list-style: none;
}
.page-first-visit .fv-values__item {
	display: grid;
	grid-template-columns: 110px 1fr 1.4fr;
	gap: clamp(24px, 4vw, 64px);
	padding: clamp(40px, 4.5vw, 64px) 8px;
	border-bottom: 1px solid var(--fv-rule);
	align-items: baseline;
}
.page-first-visit .fv-values__numeral {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(48px, 5.4vw, 76px);
	line-height: 1;
	color: var(--fv-gold);
	letter-spacing: 0.02em;
}
.page-first-visit .fv-values__numeral-dot {
	display: inline;
}
.page-first-visit .fv-values__en {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 400;
	font-size: 14px;
	color: var(--fv-gold-soft);
	letter-spacing: 0.16em;
	margin-bottom: 12px;
}
.page-first-visit .fv-values__title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(19px, 1.7vw, 24px);
	color: var(--fv-green-ink);
	margin: 0;
	letter-spacing: 0.08em;
	line-height: 1.65;
}
.page-first-visit .fv-values__body {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14.5 → 17.5) */
	font-size: 17.5px;
	line-height: 2.15;
	color: var(--fv-ink-soft);
	margin: 0;
	letter-spacing: 0.06em;
	max-width: 540px;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.page-first-visit .fv-hero__grid {
		grid-template-columns: 1fr;
		gap: clamp(40px, 8vw, 64px);
	}
	.page-first-visit .fv-hero__photo {
		max-width: 480px;
		margin: 0 auto;
	}
	.page-first-visit .fv-hero__toc {
		grid-template-columns: 1fr 1fr;
		row-gap: 24px;
	}
	.page-first-visit .fv-hero__toc-label {
		grid-column: 1 / -1;
	}
	.page-first-visit .fv-message__grid {
		grid-template-columns: 1fr;
	}
	.page-first-visit .fv-message__aside {
		position: static;
	}
	.page-first-visit .fv-concerns__list {
		grid-template-columns: 1fr;
	}
	.page-first-visit .fv-concerns__item:nth-child(odd) {
		border-right: none;
	}
	.page-first-visit .fv-values__item {
		grid-template-columns: 80px 1fr;
		row-gap: 18px;
	}
	.page-first-visit .fv-values__body {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	.page-first-visit .fv-hero__breadcrumb {
		gap: 12px;
	}
	.page-first-visit .fv-hero__photo-sub {
		display: none;
	}
	.page-first-visit .fv-hero__photo-caption {
		right: 0;
	}
	.page-first-visit .fv-hero__cta {
		flex-direction: column;
		align-items: stretch;
	}
	.page-first-visit .fv-hero__cta-btn {
		width: 100%;
	}
	/* HIN-178: SP では .fv-photo の placeholder が背景 (.fv-hero__bg のクリーム系
	   ラジアル) と同化して「写真エリア」として認識しにくいため、コントラストを
	   強化する。実画像は今回入れず、editorial 感を保ちつつ濃緑〜ゴールドの
	   グラデーションで「写真スペース」と分かるトーンに切り替える。tick 装飾の
	   コントラストも上げて視認性を底上げ。 */
	.page-first-visit .fv-hero__photo .fv-photo {
		background: linear-gradient(135deg, #2a4b43 0%, #4f6f63 45%, #b8a373 100%);
		min-height: 280px;
	}
	.page-first-visit .fv-hero__photo .fv-photo::before {
		background: repeating-linear-gradient(
			45deg,
			rgba(255, 255, 255, 0.05) 0 18px,
			transparent 18px 36px
		);
	}
	.page-first-visit .fv-hero__photo .fv-photo .fv-photo__tick {
		border-color: rgba(255, 255, 255, 0.6) !important;
	}
}

/* ============================================================
   HIN-150: FVFlow — 初回の流れ 5 ステップ
   ============================================================ */
.page-first-visit .fv-flow {
	background: var(--fv-paper);
	padding: clamp(100px, 12vw, 180px) 0;
}
.page-first-visit .fv-flow__period {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-flow__list {
	position: relative;
	list-style: none;
	margin: clamp(40px, 6vw, 72px) 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(56px, 6vw, 84px);
}
.page-first-visit .fv-flow__rule {
	position: absolute;
	top: 0;
	bottom: clamp(40px, 5vw, 64px);
	left: clamp(56px, 8vw, 92px);
	width: 1px;
	background: var(--fv-rule);
	pointer-events: none;
}
.page-first-visit .fv-flow__item {
	display: grid;
	grid-template-columns: clamp(112px, 16vw, 184px) 1fr;
	column-gap: clamp(32px, 4vw, 56px);
	row-gap: 14px;
	align-items: start;
	position: relative;
}
.page-first-visit .fv-flow__numeral-cell {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-top: 4px;
}
.page-first-visit .fv-flow__numeral {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(40px, 4.4vw, 60px);
	color: var(--fv-gold);
	line-height: 1;
	letter-spacing: -0.01em;
}
.page-first-visit .fv-flow__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--fv-paper);
	border: 1px solid var(--fv-gold);
	box-shadow: 0 0 0 4px var(--fv-paper);
	position: relative;
	z-index: 1;
}
.page-first-visit .fv-flow__icon-cell {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}
.page-first-visit .fv-flow__icon-wrap {
	position: relative;
	width: 64px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--fv-green);
}
.page-first-visit .fv-flow__icon-inner {
	position: absolute;
	inset: 0;
	border: 1px solid var(--fv-rule);
	border-radius: 50%;
	background: var(--fv-cream-soft);
}
.page-first-visit .fv-flow__icon-svg {
	position: relative;
	z-index: 1;
}
.page-first-visit .fv-flow__step-label {
	font-family: var(--fv-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	color: var(--fv-gold-soft);
	text-transform: uppercase;
}
.page-first-visit .fv-flow__step-title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(20px, 2vw, 26px);
	color: var(--fv-green-ink);
	margin: 0;
	letter-spacing: 0.1em;
	line-height: 1.5;
}
.page-first-visit .fv-flow__body {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14.5 → 17.5) */
	font-size: 17.5px;
	line-height: 2.15;
	color: var(--fv-ink-soft);
	margin: 6px 0 0;
	letter-spacing: 0.06em;
	grid-column: 2 / -1;
	max-width: 600px;
}

/* ============================================================
   HIN-150 / HIN-156: FVTrial — 初回体験 2 メニュー（深緑背景）
   `.page-first-visit` プレフィックスを外し、/first-visit/ と
   TOP B-6 で同マークアップを共有できる単独セレクタへ変更（HIN-156）
   ============================================================ */
.fv-trial {
	background: var(--fv-green-deep);
	color: #fff;
	padding: clamp(100px, 12vw, 180px) 0;
	position: relative;
	overflow: hidden;
}
.fv-trial__watermark {
	position: absolute;
	right: clamp(-60px, -3vw, -20px);
	top: -4%;
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(240px, 30vw, 420px);
	color: rgba(191, 157, 92, 0.07);
	line-height: 0.9;
	pointer-events: none;
	user-select: none;
}
.fv-trial__inner {
	position: relative;
}
.fv-trial__lead {
	max-width: 720px;
	margin: 0 0 clamp(48px, 6vw, 80px);
}
.fv-trial__limit {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 28px;
}
.fv-trial__limit-bar {
	width: 28px;
	height: 1px;
	background: var(--fv-gold);
}
.fv-trial__limit-en {
	font-family: var(--fv-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	color: var(--fv-gold-pale);
	text-transform: uppercase;
}
.fv-trial__limit-ja {
	font-family: var(--fv-font-mincho);
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--fv-gold-pale);
	margin-bottom: 14px;
}
/* HIN-158: TOP B-6 では `front-page.css` の `.front-page h2` (specificity 0,1,1)
   が `.fv-trial__title` (0,1,0) を上書きして暗色になるため、
   `.fv-trial .fv-trial__title` (0,2,0) で specificity を +1 して勝たせる。
   `/first-visit/` 側では body に `.front-page` が付かないため挙動不変。 */
.fv-trial .fv-trial__title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(34px, 4.4vw, 56px);
	margin: 0 0 32px;
	color: #fff;
	letter-spacing: 0.1em;
	line-height: 1.5;
}
.fv-trial__period {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.fv-trial__lead-body {
	border-left: 1px solid var(--fv-gold);
	padding-left: 22px;
	margin-bottom: 44px;
	max-width: 460px;
}
/* HIN-158: `<p>` 要素のため TOP B-6 では `front-page.css` の `.front-page p`
   (specificity 0,1,1) が勝ち、暗色化される。`.fv-trial .fv-trial__lead-text`
   (0,2,0) で specificity を +1 して .front-page p を上回らせる。 */
.fv-trial .fv-trial__lead-text {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +20% (15 → 18) */
	font-size: 18px;
	line-height: 2.2;
	color: rgba(255, 255, 255, 0.82);
	margin: 0;
	letter-spacing: 0.06em;
}
.fv-trial__cta {
	padding: 17px 34px;
}
.fv-trial__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(24px, 3vw, 40px);
}
.fv-trial__card {
	position: relative;
	padding: clamp(8px, 1vw, 12px);
	border-top: 1px solid var(--fv-gold);
	border-bottom: 1px solid var(--fv-gold);
}
.fv-trial__card-inner {
	padding: clamp(36px, 4vw, 56px) clamp(28px, 3.5vw, 48px);
	background: rgba(255, 255, 255, 0.025);
	height: 100%;
}
.fv-trial__card-meta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 32px;
}
.fv-trial__card-tag,
.fv-trial__card-time {
	font-family: var(--fv-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.28em;
	color: var(--fv-gold-pale);
}
.fv-trial__price-row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 24px;
}
.fv-trial__category {
	font-family: var(--fv-font-mincho);
	font-size: 13.5px;
	letter-spacing: 0.18em;
	color: var(--fv-gold-pale);
	line-height: 1.6;
}
.fv-trial__price {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(56px, 6vw, 88px);
	color: var(--fv-gold);
	line-height: 0.95;
	letter-spacing: -0.01em;
}
/* HIN-158: 各カード説明文も `<p>` のため `.front-page p` に負ける。
   `.fv-trial .fv-trial__card-note` (0,2,0) で specificity を +1 する。 */
.fv-trial .fv-trial__card-note {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14 → 17) */
	font-size: 17px;
	line-height: 1.95;
	color: rgba(255, 255, 255, 0.78);
	letter-spacing: 0.04em;
	margin: 0;
}
/* HIN-159: .fv-trial__rule（ゴールドライン）と .fv-trial__features 系（4 項目の特徴一覧）はクライアント要望で削除 */

/* ============================================================
   HIN-150: FVMenuGuide — メニュー選びの導線
   ============================================================ */
.page-first-visit .fv-menu-guide {
	background: var(--fv-cream-soft);
	padding: clamp(100px, 12vw, 180px) 0;
}
.page-first-visit .fv-menu-guide__qmark {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-menu-guide__grid {
	margin-top: clamp(40px, 6vw, 72px);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	border-top: 1px solid var(--fv-rule);
}
.page-first-visit .fv-menu-guide__item {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 24px;
	align-items: center;
	padding: clamp(28px, 3vw, 40px) clamp(20px, 2vw, 32px);
	border-bottom: 1px solid var(--fv-rule);
	color: inherit;
	text-decoration: none;
	background: var(--fv-cream-soft);
	transition: background 220ms ease;
}
.page-first-visit .fv-menu-guide__item--left {
	border-right: 1px solid var(--fv-rule);
}
.page-first-visit .fv-menu-guide__item:hover,
.page-first-visit .fv-menu-guide__item:focus-visible {
	background: var(--fv-paper);
}
.page-first-visit .fv-menu-guide__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}
.page-first-visit .fv-menu-guide__tag {
	font-family: var(--fv-font-mincho);
	font-size: 12.5px;
	letter-spacing: 0.18em;
	color: var(--fv-ink-soft);
}
.page-first-visit .fv-menu-guide__menu-row {
	display: flex;
	align-items: baseline;
	gap: 18px;
	flex-wrap: wrap;
}
.page-first-visit .fv-menu-guide__menu {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(20px, 1.8vw, 24px);
	color: var(--fv-green-ink);
	margin: 0;
	letter-spacing: 0.08em;
	line-height: 1.5;
}
.page-first-visit .fv-menu-guide__en {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 400;
	font-size: 14px;
	color: var(--fv-gold-soft);
	letter-spacing: 0.12em;
}
.page-first-visit .fv-menu-guide__arrow {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-size: 24px;
	color: var(--fv-gold);
	padding-left: 18px;
}
.page-first-visit .fv-menu-guide__footer {
	margin-top: clamp(48px, 5vw, 64px);
	text-align: center;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}
.page-first-visit .fv-menu-guide__footer-text {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14.5 → 17.5) */
	font-size: 17.5px;
	line-height: 2.15;
	color: var(--fv-ink-soft);
	letter-spacing: 0.06em;
	margin: 0 0 28px;
}

/* ============================================================
   HIN-150: Responsive overrides
   ============================================================ */
@media (max-width: 900px) {
	.page-first-visit .fv-flow__item {
		grid-template-columns: clamp(72px, 14vw, 112px) 1fr;
		column-gap: 20px;
	}
	.page-first-visit .fv-flow__numeral {
		font-size: clamp(32px, 7vw, 44px);
	}
	.page-first-visit .fv-flow__rule {
		left: clamp(34px, 6vw, 56px);
	}
	.page-first-visit .fv-flow__icon-wrap {
		width: 54px;
		height: 54px;
	}
	.fv-trial__cards {
		grid-template-columns: 1fr;
		gap: clamp(24px, 5vw, 40px);
	}
	.page-first-visit .fv-menu-guide__grid {
		grid-template-columns: 1fr;
	}
	.page-first-visit .fv-menu-guide__item--left {
		border-right: none;
	}
}

@media (max-width: 600px) {
	.page-first-visit .fv-flow__list {
		gap: clamp(40px, 8vw, 56px);
	}
	.page-first-visit .fv-flow__item {
		grid-template-columns: 60px 1fr;
		column-gap: 16px;
	}
	.page-first-visit .fv-flow__rule {
		left: 28px;
	}
	.page-first-visit .fv-flow__numeral {
		font-size: 28px;
	}
	.page-first-visit .fv-flow__icon-wrap {
		width: 48px;
		height: 48px;
	}
	.page-first-visit .fv-flow__body {
		/* HIN-170: 本文サイズ +22% (13.5 → 16.5) */
		font-size: 16.5px;
	}
	.fv-trial__title {
		font-size: clamp(28px, 7vw, 38px);
	}
	.fv-trial__card-inner {
		padding: 32px 22px;
	}
	.fv-trial__price {
		font-size: clamp(48px, 11vw, 72px);
	}
	.page-first-visit .fv-menu-guide__item {
		grid-template-columns: 1fr auto;
		padding: 24px 16px;
	}
	.page-first-visit .fv-menu-guide__arrow {
		padding-left: 8px;
	}
	/* HIN-180: SP では「どのメニューを選べばいい」セクションのメニューを 4 件までに制限。
	   先頭 4 件（症状改善術 / 腰痛専門術 / 疲労回復リラクゼーション / 体質改善ストレッチ）
	   のみ表示し、5-6 件目（月に一度のメンテナンス / 総合身体チェック）は SP のみ非表示。
	   PHP 改修なし、PC（≥601px）には影響しない。 */
	.page-first-visit .fv-menu-guide__item:nth-child(n+5) {
		display: none;
	}
}

/* ============================================================
   HIN-151: FVFaq — よくある質問
   ============================================================ */
.page-first-visit .fv-faq {
	background: var(--fv-paper);
	padding: clamp(100px, 12vw, 180px) 0;
}
.page-first-visit .fv-faq__grid {
	display: grid;
	grid-template-columns: 0.85fr 1.4fr;
	gap: clamp(48px, 7vw, 120px);
	align-items: flex-start;
}
.page-first-visit .fv-faq__aside {
	position: sticky;
	top: 120px;
}
.page-first-visit .fv-faq__period {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-faq__lead {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14 → 17) */
	font-size: 17px;
	line-height: 2.15;
	color: var(--fv-ink-soft);
	letter-spacing: 0.06em;
	margin: clamp(20px, 2vw, 28px) 0 24px;
}
.page-first-visit .fv-faq__list {
	border-top: 1px solid var(--fv-rule);
}
.page-first-visit .fv-faq__item {
	border-bottom: 1px solid var(--fv-rule);
}
.page-first-visit .fv-faq__summary {
	display: grid;
	grid-template-columns: 48px 1fr auto;
	gap: 20px;
	align-items: center;
	padding: clamp(24px, 2.4vw, 32px) 4px;
	background: transparent;
	border: none;
	cursor: pointer;
	font-family: inherit;
	list-style: none;
}
.page-first-visit .fv-faq__summary::-webkit-details-marker {
	display: none;
}
.page-first-visit .fv-faq__summary::marker {
	display: none;
}
.page-first-visit .fv-faq__q-mark {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: 28px;
	color: var(--fv-gold);
	line-height: 1;
}
.page-first-visit .fv-faq__q-text {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(16px, 1.3vw, 18px);
	color: var(--fv-green-ink);
	letter-spacing: 0.08em;
	line-height: 1.65;
}
.page-first-visit .fv-faq__toggle {
	width: 24px;
	height: 24px;
	position: relative;
	transition: transform 260ms ease;
}
.page-first-visit .fv-faq__item[open] .fv-faq__toggle {
	transform: rotate(45deg);
}
.page-first-visit .fv-faq__toggle-bar {
	position: absolute;
	background: var(--fv-gold);
}
.page-first-visit .fv-faq__toggle-bar--h {
	left: 0;
	right: 0;
	top: 50%;
	height: 1px;
	transform: translateY(-50%);
}
.page-first-visit .fv-faq__toggle-bar--v {
	top: 0;
	bottom: 0;
	left: 50%;
	width: 1px;
	transform: translateX(-50%);
}
.page-first-visit .fv-faq__answer {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 20px;
	padding-left: 4px;
	padding-bottom: clamp(20px, 2vw, 28px);
}
.page-first-visit .fv-faq__a-mark {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: 22px;
	color: var(--fv-gold-soft);
	line-height: 1.4;
}
.page-first-visit .fv-faq__a-text {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14.5 → 17.5) */
	font-size: 17.5px;
	line-height: 2.15;
	color: var(--fv-ink-soft);
	margin: 0;
	letter-spacing: 0.06em;
}

/* ============================================================
   HIN-151: FVClosing — A Final Note
   ============================================================ */
.page-first-visit .fv-closing {
	background: var(--fv-cream-soft);
	padding: clamp(100px, 12vw, 180px) 0;
	position: relative;
	overflow: hidden;
}
.page-first-visit .fv-closing__watermark {
	position: absolute;
	right: clamp(-40px, -2vw, -10px);
	bottom: -8%;
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(220px, 26vw, 360px);
	color: rgba(191, 157, 92, 0.1);
	line-height: 0.9;
	pointer-events: none;
	user-select: none;
}
.page-first-visit .fv-closing__inner {
	position: relative;
	text-align: center;
	max-width: 960px;
}
.page-first-visit .fv-closing__eyebrow-wrap {
	display: inline-flex;
	margin-bottom: 32px;
}
.page-first-visit .fv-closing__title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(28px, 3.4vw, 42px);
	margin: 0 0 40px;
	color: var(--fv-green-ink);
	letter-spacing: 0.08em;
	line-height: 1.7;
}
.page-first-visit .fv-closing__title-line {
	display: inline-block;
	white-space: nowrap;
}
.page-first-visit .fv-closing__period {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-closing__body {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +20% (clamp(15,1.2vw,17) → clamp(18,1.4vw,20)) */
	font-size: clamp(18px, 1.4vw, 20px);
	line-height: 2.2;
	color: var(--fv-ink);
	letter-spacing: 0.06em;
	margin: 0 auto;
	max-width: 620px;
}
.page-first-visit .fv-closing__body + .fv-closing__body {
	margin-top: 1.6em;
}
.page-first-visit .fv-closing__flag {
	margin-top: 56px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
}
.page-first-visit .fv-closing__flag-bar {
	width: 60px;
	height: 1px;
	background: var(--fv-gold);
}
.page-first-visit .fv-closing__flag-name {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
	font-size: 26px;
	color: var(--fv-gold);
}

/* ============================================================
   HIN-151: FVCta — Reservation N°08
   ============================================================ */
.page-first-visit .fv-cta {
	background: var(--fv-green-deep);
	color: #fff;
	padding: clamp(110px, 13vw, 200px) 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.page-first-visit .fv-cta__frame {
	position: absolute;
	inset: clamp(20px, 3vw, 40px);
	pointer-events: none;
}
.page-first-visit .fv-cta__corner {
	position: absolute;
	width: 18px;
	height: 18px;
	opacity: 0.6;
}
.page-first-visit .fv-cta__corner--tl {
	top: 0;
	left: 0;
	border-top: 1px solid var(--fv-gold-pale);
	border-left: 1px solid var(--fv-gold-pale);
}
.page-first-visit .fv-cta__corner--tr {
	top: 0;
	right: 0;
	border-top: 1px solid var(--fv-gold-pale);
	border-right: 1px solid var(--fv-gold-pale);
}
.page-first-visit .fv-cta__corner--bl {
	bottom: 0;
	left: 0;
	border-bottom: 1px solid var(--fv-gold-pale);
	border-left: 1px solid var(--fv-gold-pale);
}
.page-first-visit .fv-cta__corner--br {
	bottom: 0;
	right: 0;
	border-bottom: 1px solid var(--fv-gold-pale);
	border-right: 1px solid var(--fv-gold-pale);
}
.page-first-visit .fv-cta__inner {
	max-width: 820px;
	margin: 0 auto;
	padding: 0 clamp(24px, 5vw, 60px);
	position: relative;
}
.page-first-visit .fv-cta__eyebrow-wrap {
	display: flex;
	justify-content: center;
	margin-bottom: 28px;
}
.page-first-visit .fv-cta__title {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: clamp(30px, 4vw, 52px);
	margin: 0 0 32px;
	color: #fff;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
.page-first-visit .fv-cta__period {
	color: var(--fv-gold);
	font-family: var(--fv-font-en);
	font-style: italic;
	font-weight: 300;
}
.page-first-visit .fv-cta__lead {
	font-family: var(--fv-font-mincho);
	/* HIN-170: 本文サイズ +21% (14.5 → 17.5) */
	font-size: 17.5px;
	line-height: 2.2;
	color: rgba(255, 255, 255, 0.78);
	margin: 0 0 52px;
	letter-spacing: 0.06em;
}
.page-first-visit .fv-cta__buttons {
	display: flex;
	gap: 18px;
	justify-content: center;
	flex-wrap: wrap;
}
.page-first-visit .fv-cta__btn {
	padding: 18px 38px;
	font-size: 14px;
}
.page-first-visit .fv-cta__hours {
	margin: 72px 0 0;
	padding-top: 32px;
	border-top: 1px solid rgba(216, 192, 138, 0.32);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	text-align: left;
}
.page-first-visit .fv-cta__hours-row {
	border-left: 1px solid rgba(216, 192, 138, 0.24);
	padding-left: 22px;
}
.page-first-visit .fv-cta__hours-label {
	font-family: var(--fv-font-mono);
	font-size: 10px;
	letter-spacing: 0.28em;
	color: var(--fv-gold-pale);
	margin: 0 0 12px;
}
.page-first-visit .fv-cta__hours-value {
	font-family: var(--fv-font-mincho);
	font-weight: 500;
	font-size: 18px;
	color: #fff;
	letter-spacing: 0.06em;
	margin: 0;
}
.page-first-visit .fv-cta__hours-value--en {
	font-family: var(--fv-font-en);
	font-style: italic;
	font-size: 22px;
}

/* ============================================================
   HIN-151: Responsive overrides
   ============================================================ */
@media (max-width: 900px) {
	.page-first-visit .fv-faq__grid {
		grid-template-columns: 1fr;
		gap: clamp(40px, 7vw, 64px);
	}
	.page-first-visit .fv-faq__aside {
		position: static;
	}
	.page-first-visit .fv-cta__hours {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.page-first-visit .fv-closing__title-line {
		white-space: normal;
	}
}

@media (max-width: 600px) {
	.page-first-visit .fv-faq__summary {
		grid-template-columns: 36px 1fr 20px;
		gap: 14px;
		padding: 22px 4px;
	}
	.page-first-visit .fv-faq__q-mark {
		font-size: 22px;
	}
	.page-first-visit .fv-faq__answer {
		grid-template-columns: 36px 1fr;
		gap: 14px;
	}
	.page-first-visit .fv-faq__a-mark {
		font-size: 18px;
	}
	.page-first-visit .fv-closing__title {
		font-size: clamp(22px, 6vw, 30px);
	}
	.page-first-visit .fv-cta__title {
		font-size: clamp(24px, 7vw, 34px);
	}
	.page-first-visit .fv-cta__buttons {
		flex-direction: column;
		align-items: stretch;
	}
	.page-first-visit .fv-cta__btn {
		width: 100%;
		padding: 16px 22px;
	}
}
