/**
 * セクション縦余白 — 唯一の定義源（インライン bundle 末尾で読込）
 *
 * - 全 LP の section 間を「上半分 + 下半分」で均一化
 * - HERO 系の直後だけ見出し開始を詰めないように上余白をフル付与
 * - class 個別列挙をやめ、将来セクション追加時も自動で余白を担保
 */

.fmv-lp-shell > section:not(.dpt-hero):not(.fmv-yamanashi-trust):not(.fmv-lp-hero-fv-wrap):not(.fmv-lp-cta-repeat) {
	padding-top: calc(var(--fmv-lp-section-pad-y) / 2) !important;
	padding-bottom: calc(var(--fmv-lp-section-pad-y) / 2) !important;
}

.fmv-lp-shell > :is(.dpt-hero, .fmv-yamanashi-trust, .fmv-lp-hero-fv-wrap, .fmv-lp-cta-repeat) + section {
	padding-top: var(--fmv-lp-section-pad-y) !important;
}

/**
 * 番号ラベルの左詰め統一（TOP / maker / service 含む全 LP）
 */
.fmv-lp-shell :is(
	.fmv-lp-svc-grid__num,
	.fmv-lp-concerns__num,
	.fmv-lp-concerns__num-label,
	.fmv-lp-flow__num,
	.fmv-lp-flow__num-text,
	.fmv-lp-detail__num,
	.fmv-lp-mk-strengths__num,
	.fmv-lp-mk-diag__num
) {
	text-align: left !important;
}

.fmv-lp-shell :is(
	.fmv-lp-svc-grid__body,
	.fmv-lp-svc-grid__heading,
	.fmv-lp-mk-strengths__num-wrap,
	.fmv-lp-mk-diag__num-wrap
) {
	text-align: left !important;
}

.fmv-lp-shell .fmv-lp-svc-grid__body {
	align-items: flex-start !important;
}

.fmv-lp-shell .fmv-lp-svc-grid__num {
	display: inline-flex !important;
	width: auto !important;
	min-width: 0 !important;
	align-self: flex-start !important;
	justify-content: flex-start !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* 旧ルールの左ライン(::before)が数字を右へ押していたため撤去 */
.fmv-lp-shell .fmv-lp-svc-grid__num::before {
	content: none !important;
	display: none !important;
}

/* CTA リード内の強調語だけ別サイズ(16px)になる競合を打ち消す */
.fmv-lp-shell .fmv-lp-cta-repeat__lead .fmv-inline-em {
	font-size: inherit !important;
	line-height: inherit !important;
}

/* ===========================================================
   改行ポリシーの最終一元化（全 LP 共通・bundle 末尾で確実に後勝ち）
   - balance による右余白／カタカナ語の語中改行（例: ガレージカープラ/ス）を解消
   - 固有名詞・カタカナ語は割らず、スペース・句読点・／で改行
   - Chrome は文節（auto-phrase）で自動最適化、非対応は keep-all にフォールバック
   - text-wrap: pretty で行頭1文字などの不自然な行を抑制
   - あふれる時だけ anywhere で分割し、画面外には出さない
   =========================================================== */
.fmv-lp-shell :is(
	.fmv-lp-section-head__title,
	.fmv-lp-h2,
	.fmv-lp-concerns__h2,
	.fmv-lp-reasons__display,
	.fmv-lp-storefront__h2,
	.fmv-lp-svc-grid__h2,
	.fmv-lp-inspection__display,
	.fmv-lp-symptoms__h2,
	.fmv-lp-flow__h2,
	.fmv-lp-voices__h2,
	.fmv-lp-detail__display,
	.fmv-lp-brand-cov__h2,
	.fmv-lp-area-access__h2,
	.fmv-lp-svc-lineup__h2,
	.fmv-lp-mk-strengths__h2,
	.fmv-lp-mk-models__h2,
	.fmv-lp-mk-diag__h2,
	.fmv-lp-mk-compare__h2,
	.fmv-lp-faq .fmv-lp-h2,
	.fmv-lp-section-head__lead,
	.fmv-lp-concerns__lead,
	.fmv-lp-reasons__lead,
	.fmv-lp-storefront__lead,
	.fmv-lp-svc-grid__lead,
	.fmv-lp-inspection__lead,
	.fmv-lp-symptoms__lead,
	.fmv-lp-flow__lead,
	.fmv-lp-voices__lead,
	.fmv-lp-detail__lead,
	.fmv-lp-brand-cov__lead,
	.fmv-lp-area-access__lead,
	.fmv-lp-svc-lineup__lead,
	.fmv-lp-mk-strengths__lead,
	.fmv-lp-mk-models__lead,
	.fmv-lp-mk-diag__lead,
	.fmv-lp-mk-compare__lead,
	.dpt-hero__display,
	.dpt-hero__band-h1,
	.dpt-hero__band-lead,
	/* カードの小見出し（h3）も同じ賢い改行で語中分割を防ぐ */
	.fmv-lp-concerns__title,
	.fmv-lp-reasons__title,
	.fmv-lp-svc-grid__title,
	.fmv-lp-detail__title,
	.fmv-lp-maintenance__title,
	.fmv-lp-body-repair__title,
	.fmv-lp-voices__title,
	.fmv-lp-flow__card-title,
	.fmv-lp-symptoms__cat-title,
	.fmv-lp-brand-cov__group-title,
	.fmv-lp-inspection__col-headline
) {
	text-wrap: pretty;
	word-break: normal;
	overflow-wrap: anywhere;
	line-break: strict;
}

/* ===========================================================
   SP レイアウト安全網（最終上書き層 — 全 LP 共通）
   bundle 末尾で読込まれるため、横スクロール/はみ出しの最終防波堤に専念。
   文字サイズ・折返しの整形は流体トークン＋自然折返しに一任（強制改行はしない）。
   =========================================================== */
@media (max-width: 767px) {
	/* 1) シェル＆コンテナを全幅化し、横あふれをクリップ */
	.fmv-lp-shell {
		width: 100%;
		max-width: 100%;
		overflow-x: clip;
	}

	.fmv-lp-shell,
	.fmv-lp-shell section,
	.fmv-lp-shell [class*="__container"],
	.fmv-lp-shell .fmv-lp-container {
		min-width: 0;
		box-sizing: border-box;
	}

	.fmv-lp-shell [class*="__container"]:not(.fmv-lp-voices__viewport):not(.fmv-lp-voices__track),
	.fmv-lp-shell > section .fmv-lp-container {
		width: 100% !important;
		max-width: 100% !important;
	}

	/* 2) ピックアップ行（dt/dd）の収まり */
	.fmv-lp-shell .fmv-lp-pickup__row {
		grid-template-columns: 5.25rem 1fr;
		gap: 0.45rem 0.65rem;
	}
	.fmv-lp-shell .fmv-lp-pickup__row dt,
	.fmv-lp-shell .fmv-lp-pickup__row dd {
		min-width: 0;
		max-width: 100%;
	}

	/* 3) FAQ カードの全幅 */
	.fmv-lp-shell .fmv-lp-faq__list {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	/* 4) 比較表は幅を超えたら横スクロール（潰さず読める） */
	.fmv-lp-shell .fmv-lp-inspection__table-wrap {
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.fmv-lp-shell .fmv-lp-inspection__table {
		font-size: 0.82rem;
	}
	.fmv-lp-shell .fmv-lp-inspection__table th,
	.fmv-lp-shell .fmv-lp-inspection__table td {
		padding: 0.55rem 0.35rem;
	}

	/* 5) 対応エリア・地図・口コミマーキーのはみ出し防止 */
	.fmv-lp-shell .fmv-lp-area-access__coverage-card,
	.fmv-lp-shell .fmv-lp-area-access__coverage-cities {
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}
	.fmv-lp-shell .fmv-lp-area-access__coverage-city {
		max-width: 100%;
	}
	.fmv-lp-shell .fmv-lp-voices,
	.fmv-lp-shell .fmv-lp-voices__viewport {
		max-width: 100%;
		overflow-x: hidden !important;
	}
	.fmv-lp-shell .fmv-lp-area-access__map-wrap,
	.fmv-lp-shell .fmv-lp-area-access__map-wrap iframe {
		max-width: 100%;
		width: 100%;
		box-sizing: border-box;
	}

	/* 6) SP 句読点の行頭孤立を防ぐ（anywhere より break-word＋strict） */
	.fmv-lp-shell :is(
		.fmv-lp-section-head__title,
		.fmv-lp-h2,
		.fmv-lp-concerns__h2,
		.fmv-lp-reasons__display,
		.fmv-lp-storefront__h2,
		.fmv-lp-svc-grid__h2,
		.fmv-lp-inspection__display,
		.fmv-lp-symptoms__h2,
		.fmv-lp-flow__h2,
		.fmv-lp-voices__h2,
		.fmv-lp-detail__display,
		.fmv-lp-brand-cov__h2,
		.fmv-lp-area-access__h2,
		.fmv-lp-svc-lineup__h2,
		.fmv-lp-mk-strengths__h2,
		.fmv-lp-mk-models__h2,
		.fmv-lp-mk-diag__h2,
		.fmv-lp-mk-compare__h2,
		.fmv-lp-faq .fmv-lp-h2,
		.fmv-lp-section-head__lead,
		.fmv-lp-concerns__lead,
		.fmv-lp-reasons__lead,
		.fmv-lp-storefront__lead,
		.fmv-lp-svc-grid__lead,
		.fmv-lp-inspection__lead,
		.fmv-lp-symptoms__lead,
		.fmv-lp-flow__lead,
		.fmv-lp-voices__lead,
		.fmv-lp-detail__lead,
		.fmv-lp-brand-cov__lead,
		.fmv-lp-area-access__lead,
		.fmv-lp-svc-lineup__lead,
		.fmv-lp-mk-strengths__lead,
		.fmv-lp-mk-models__lead,
		.fmv-lp-mk-diag__lead,
		.fmv-lp-mk-compare__lead,
		.dpt-hero__display,
		.dpt-hero__band-h1,
		.dpt-hero__band-lead,
		.fmv-lp-concerns__title,
		.fmv-lp-reasons__title,
		.fmv-lp-svc-grid__title,
		.fmv-lp-detail__title,
		.fmv-lp-maintenance__title,
		.fmv-lp-body-repair__title,
		.fmv-lp-voices__title,
		.fmv-lp-flow__card-title,
		.fmv-lp-symptoms__cat-title,
		.fmv-lp-brand-cov__group-title,
		.fmv-lp-inspection__col-headline,
		.fmv-lp-inspection__closer
	) {
		word-break: normal !important;
		overflow-wrap: anywhere !important;
		line-break: strict !important;
	}

	/* 7) 見出し末尾フレーズ（店名＋助詞／締めの一文）：SP でも帯幅内に収める
	   （nowrap 固定は長い店名・メーカー名で overflow-x:clip により画面外に見切れる） */
	.fmv-lp-head-tail-phrase,
	.fmv-lp-head-store-phrase {
		display: inline;
		max-width: 100%;
		white-space: normal;
		word-break: normal !important;
		overflow-wrap: anywhere !important;
		line-break: strict;
		font-size: clamp(0.92rem, 4.65vw, 1.55rem) !important;
		box-decoration-break: clone;
		-webkit-box-decoration-break: clone;
	}

	.fmv-lp-inspection__col-headline .fmv-lp-head-tail-phrase {
		font-size: clamp(0.88rem, 4.2vw, 1.28rem) !important;
	}

	/* 長い店名行（サービスカタログ等）：折り返し可・vw で収める */
	#fmv-lp-detail-h .fmv-lp-head-store-label {
		display: inline;
		max-width: 100%;
		white-space: normal;
		font-size: clamp(0.88rem, 4.4vw, 1.5rem) !important;
		line-height: 1.45 !important;
	}

	/* 車検見出し：SP 3行・最長行（…山梨店⁠が、）がコンテンツ全幅に収まる流体サイズ */
	#fmv-lp-inspection-h {
		width: 100%;
		max-width: 100%;
		/* コンテナ左右ガター分を除いた幅 ÷ 最長行の字幅（…山梨店⁠が、） */
		font-size: clamp(
			0.88rem,
			calc((100vw - 2 * var(--fmv-lp-sp-gutter, 0.75rem)) / 13.25),
			var(--fmv-lp-head-title-size, 1.95rem)
		) !important;
		line-height: 1.45 !important;
		letter-spacing: 0.01em !important;
	}

	#fmv-lp-inspection-h .fmv-lp-head-store-label,
	#fmv-lp-inspection-h .fmv-lp-inspection__display-lead,
	#fmv-lp-inspection-h .fmv-lp-inspection__display-store,
	#fmv-lp-inspection-h .fmv-lp-inspection__display-hook {
		font-size: inherit !important;
		line-height: inherit !important;
		letter-spacing: inherit !important;
	}

	#fmv-lp-inspection-h .fmv-lp-inspection__display-lead,
	#fmv-lp-inspection-h .fmv-lp-inspection__display-store {
		display: inline-block;
		max-width: 100%;
		white-space: nowrap;
	}

	/* 車検セクション締めコピー：SP は2行構成（リード＋店名） */
	.fmv-lp-inspection__closer .fmv-lp-head-tail-phrase {
		font-size: clamp(0.8rem, 3.95vw, 1.05rem) !important;
	}

	.fmv-lp-inspection__closer-lead {
		display: inline-block;
		max-width: 100%;
	}

	.fmv-lp-inspection__closer .fmv-inline-em {
		display: inline-block;
		max-width: 100%;
	}

	.fmv-lp-inspection__closer-mark {
		display: inline !important;
	}

	/* ABOUT リード：SPは固定行を作らず、画面幅に応じた可変サイズで自然折返し */
	.fmv-lp-about .fmv-lp-section-head__lead {
		max-width: 100% !important;
		font-size: clamp(0.78rem, 3.6vw, 0.95rem) !important;
		line-height: 1.9 !important;
		text-wrap: pretty;
		overflow-wrap: break-word !important;
		word-break: normal !important;
	}
	.fmv-lp-about .fmv-lp-about__store-prefix {
		white-space: nowrap;
		font-size: inherit !important;
		font-weight: inherit !important;
		line-height: inherit !important;
		overflow-wrap: break-word !important;
		word-break: normal !important;
	}

	/* SP：見出し直下の余白が写真の上を空けすぎるため詰める */
	.fmv-lp-about .fmv-lp-section-head {
		margin-bottom: 0 !important;
	}

	/* TOTAL SUPPORT 見出し：SP は2行固定（愛車の…は、／ガレージ…店へ。）
	   各行は折り返さず、最長行が画面幅に収まる可変サイズ（コンテンツ幅 ÷ 最長行字数） */
	#fmv-lp-storefront-h {
		width: 100%;
		max-width: 100%;
		white-space: nowrap !important;
		font-size: clamp(
			1.05rem,
			calc((100vw - 2 * var(--fmv-lp-sp-gutter, 0.75rem)) / 13.75),
			var(--fmv-lp-head-title-size, 1.95rem)
		) !important;
		line-height: 1.55 !important;
		letter-spacing: 0.01em !important;
	}

	#fmv-lp-storefront-h :is(
		.fmv-lp-section-head__accent,
		.fmv-lp-head-keep-pc,
		.fmv-lp-head-tail-phrase
	) {
		font-size: inherit !important;
		line-height: inherit !important;
		letter-spacing: inherit !important;
		white-space: nowrap !important;
	}

	/* SERVICE LINEUP リード：2行目「サービスをお選びください。」を1行に固定
	   （リードが flex で内容幅に縮むため、全幅化して2行目が収まるようにする） */
	.fmv-lp-svc-grid .fmv-lp-section-head__lead {
		width: 100% !important;
		max-width: 100% !important;
	}
	.fmv-lp-svc-grid__lead-line {
		display: inline-block;
		white-space: nowrap !important;
		overflow-wrap: normal !important;
		word-break: keep-all !important;
	}

	/* VOICES 見出し（サービスLP）：SP 2行固定
	   1行目「〇〇をご利用」／2行目「いただいた、確かな声。」
	   （flex 子の h2 が内容幅に縮み、2行目だけ3行に落ちるのを防ぐ） */
	.fmv-lp-voices--service #fmv-lp-svc-voices-h {
		width: 100% !important;
		max-width: 100% !important;
		text-wrap: wrap !important;
	}
	.fmv-lp-voices--service .fmv-lp-head-tail-phrase {
		display: inline-block !important;
		width: 100%;
		max-width: 100%;
		white-space: normal !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
	}
	.fmv-lp-voices--service .fmv-lp-voices__lead-line {
		display: inline-block;
		white-space: nowrap !important;
		overflow-wrap: normal !important;
		word-break: keep-all !important;
	}

	/* FLOW 見出し：SP は意図した行分割（エリア×メーカー／お問合せ…／6 ステップ。） */
	#fmv-lp-flow-h {
		width: 100% !important;
		max-width: 100% !important;
		text-wrap: wrap !important;
	}
	.fmv-lp-flow__title-context {
		display: inline-block;
		max-width: 100%;
		line-break: strict;
		word-break: keep-all;
	}
	#fmv-lp-flow-h .fmv-lp-flow__title-phrase,
	#fmv-lp-flow-h .fmv-lp-flow__title-steps {
		display: inline-block;
		white-space: nowrap !important;
		overflow-wrap: normal !important;
		word-break: keep-all !important;
	}
}
