/**
 * 技術相談窓口ページ専用スタイル
 *
 * 本番テーマ（n_drain_2025/css/style.css）のトンマナに準拠：
 *   - メインブランド色：#4d85c7（明るめ青）
 *   - 濃いアクセント：#2a5cac（H1見出し色）
 *   - CTAオレンジ：#ea8a43
 *   - 背景アクセント：#f0f4f9（淡青グレー）
 *   - 第2アクセント：#57b2b2（ティール）
 *   - テキスト主色：#1a1a1a
 *   - フォント：Noto Sans JP（本文）/ Roboto（数字・欧文）
 *   - font-feature-settings: "palt"
 *   - border-radius：10px 基本
 *
 * 名前空間：.ndr- prefix で既存テーマと衝突回避
 */

/* ===== Color Variables（本番テーマ準拠） ===== */
.ndr-consultation-page {
	--ndr-primary: #4d85c7;
	--ndr-primary-light: #7db7db;
	--ndr-primary-dark: #2a5cac;
	--ndr-accent: #57b2b2;
	--ndr-accent-light: #f0f4f9;
	--ndr-cta-orange: #ea8a43;
	--ndr-cta-orange-hover: #d97a2e;
	--ndr-text-dark: #1a1a1a;
	--ndr-text-mid: #404040;
	--ndr-text-light: #999999;
	--ndr-text-sub: #696969;
	--ndr-bg-light: #f0f4f9;
	--ndr-bg-grey: #f2f2f2;
	--ndr-border: #e2e2e2;
	--ndr-white: #fff;
	--ndr-success: #57b2b2;
	--ndr-error: #c62828;
	--ndr-radius: 10px;
}

.ndr-consultation-page,
.ndr-consultation-page *,
.ndr-consultation-page *::before,
.ndr-consultation-page *::after {
	box-sizing: border-box;
}

.ndr-consultation-page {
	font-family: "Noto Sans JP", sans-serif;
	font-feature-settings: "palt";
	color: var(--ndr-text-dark);
	background: var(--ndr-white);
	line-height: 1.85;
	font-size: 15px;
	letter-spacing: 0.025em;
}

/* 数字・欧文用 */
.ndr-consultation-page .ndr-num,
.ndr-consultation-page .ndr-en {
	font-family: "Roboto", sans-serif;
	font-feature-settings: "tnum";
}

/* ===== SVGアイコン共通 ===== */
.ndr-consultation-page svg {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 24px;
	max-height: 24px;
}

/* ===== 既存テーマ button::before の打ち消し（当ページ内のみ） =====
 * 既存テーマ style.css は `button { position:relative } button::before { ... }`
 * という青→ティールのグラデーションオーバーレイを持っており、
 * ホバー時に文字が隠れる問題が起きる。
 *
 * 当ページ内（.ndr-consultation-page スコープ）の全 button のみ無効化することで
 * 他ページへの影響をゼロに保つ。
 */
.ndr-consultation-page button::before,
.ndr-consultation-page button::after {
	display: none !important;
	content: none !important;
	opacity: 0 !important;
	background: none !important;
}

/* ul/ol を装飾なしでレイアウト用に使う */
.ndr-consultation-page .ndr-pain-list,
.ndr-consultation-page .ndr-flow-steps,
.ndr-consultation-page .ndr-trust-badges {
	list-style: none;
	padding: 0;
	margin: 0 auto;
}

/* キーボードフォーカス */
.ndr-consultation-page a:focus-visible,
.ndr-consultation-page button:focus-visible,
.ndr-consultation-page [tabindex]:focus-visible,
.ndr-consultation-page input:focus-visible,
.ndr-consultation-page textarea:focus-visible,
.ndr-consultation-page select:focus-visible {
	outline: 3px solid var(--ndr-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

.ndr-consultation-page input:focus-visible,
.ndr-consultation-page textarea:focus-visible,
.ndr-consultation-page select:focus-visible {
	outline-offset: 0;
	box-shadow: 0 0 0 3px rgba(77, 133, 199, 0.25);
}

/* prefers-reduced-motion 対応（モーション過敏症ユーザー向け） */
@media (prefers-reduced-motion: reduce) {

	.ndr-consultation-page *,
	.ndr-consultation-page *::before,
	.ndr-consultation-page *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ===== Utility ===== */
.ndr-container {
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 0px;
}

.ndr-container-narrow {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 0;
}

/* ===== Breadcrumb ===== */
.ndr-breadcrumb {
	padding: 14px 0;
	font-size: 13px;
	color: var(--ndr-text-light);
	border-bottom: 1px solid #f0f0f0;
}

.ndr-breadcrumb a {
	color: var(--ndr-primary);
	text-decoration: none;
	display: inline-block;
	padding: 4px 0;
}

.ndr-breadcrumb span {
	margin: 0 6px;
}

.ndr-breadcrumb-sep {
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
	width: 14px;
	height: 14px;
	color: var(--ndr-text-light);
}

.ndr-breadcrumb-sep svg {
	max-width: 14px;
	max-height: 14px;
}

@media (hover: hover) and (pointer: fine) {
	.ndr-breadcrumb a:hover {
		text-decoration: underline;
	}
}

.page-template-page-consultation #breadcrumb span {
	color: #fff;
}

.page-template-page-consultation div#breadcrumb p span:not(:last-child)::before {
	border-right: 1px solid #fff;
	border-top: 1px solid #fff;
}

/* ===== Section 1: Main Visual（グラデーション＋格子・中央寄せ） ===== */
.ndr-consultation-mv {
	position: relative;
	min-height: clamp(360px, 44vw, 460px);
	overflow: hidden;
	color: #fff;
	background:
		linear-gradient(135deg, #0a4f9e 0%, #0068bd 55%, #0a8ad6 100%);
}

/* レイヤー1：装飾グリッドパターン（白い細線の格子模様） */
.ndr-consultation-mv__grid {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.10) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.10) 1px, transparent 1px);
	background-size: 64px 64px;
	background-position: center center;
	mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.85) 30%, rgba(0, 0, 0, 0.35) 100%);
	-webkit-mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.85) 30%, rgba(0, 0, 0, 0.35) 100%);
}

/* 左上の光彩アクセント */
.ndr-consultation-mv::before {
	content: '';
	position: absolute;
	top: -120px;
	left: -120px;
	width: 460px;
	height: 460px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 70%);
	pointer-events: none;
	z-index: 0;
}

/* 右下のティールアクセント */
.ndr-consultation-mv::after {
	content: '';
	position: absolute;
	bottom: -160px;
	right: -120px;
	width: 480px;
	height: 480px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(87, 178, 178, 0.22) 0%, rgba(87, 178, 178, 0) 70%);
	pointer-events: none;
	z-index: 0;
}

.ndr-consultation-mv__inner {
	position: relative;
	width: min(100%, 1080px);
	min-height: clamp(360px, 44vw, 460px);
	margin: 0 auto;
	padding: 64px 24px 68px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}

.ndr-consultation-mv__content {
	position: relative;
	z-index: 1;
	width: min(100%, 800px);
	text-align: center;
}

.ndr-consultation-mv__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	margin: 0 0 24px;
	padding: 5px 22px;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.08em;
}

.ndr-consultation-mv__title {
	margin: 0 0 28px;
	color: #fff;
	font-size: clamp(28px, 3.6vw, 44px);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.05em;
	text-shadow: 0 4px 14px rgba(0, 48, 104, 0.42);
}

.ndr-consultation-mv__lead {
	max-width: 720px;
	margin: 0 auto 36px;
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	text-shadow: 0 2px 9px rgba(0, 48, 104, 0.36);
}

.ndr-consultation-mv__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: center;
	justify-content: center;
}

.ndr-consultation-mv__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-width: 260px;
	min-height: 60px;
	padding: 16px 36px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(0, 45, 95, 0.22);
	transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s, color 0.2s;
}

.ndr-consultation-mv__button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	font-size: 20px;
	line-height: 1;
}

.ndr-consultation-mv__button--form {
	background: #f18a00;
	color: #fff;
}

.ndr-consultation-mv__button--form .ndr-consultation-mv__button-icon {
	color: #fff;
}

.ndr-consultation-mv__button--phone {
	background: #fff;
	color: #0b61aa;
	border: 1px solid rgba(255, 255, 255, 0.9);
}

.ndr-consultation-mv__button--phone .ndr-consultation-mv__button-icon {
	color: #0b61aa;
}

@media (hover: hover) and (pointer: fine) {
	.ndr-consultation-mv__button:hover {
		transform: translateY(-2px);
		box-shadow: 0 14px 28px rgba(0, 45, 95, 0.24);
	}

	.ndr-consultation-mv__button--form:hover {
		background: #e27e00;
		color: #fff;
	}

	.ndr-consultation-mv__button--phone:hover {
		background: #fff;
		color: #0b61aa;
	}
}

.ndr-fv-cta {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
	position: relative;
}

.ndr-btn-main {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 240px;
	padding: 17px 40px;
	border-radius: var(--ndr-radius);
	font-size: 16px;
	font-weight: 500;
	border: none;
	cursor: pointer;
	transition: all 0.2s;
	text-decoration: none;
	text-align: center;
	font-family: inherit;
}

.ndr-btn-main.ndr-btn-small {
	min-width: auto;
	padding: 14px 32px;
	font-size: 14px;
}

.ndr-btn-orange {
	background: var(--ndr-cta-orange);
	color: var(--ndr-white);
	box-shadow: 0 4px 14px rgba(234, 138, 67, 0.35);
}

@media (hover: hover) and (pointer: fine) {
	.ndr-btn-orange:hover {
		background: var(--ndr-cta-orange-hover);
		transform: translateY(-2px);
		color: #fff;
	}
}

.ndr-btn-white-outline {
	background: transparent;
	color: var(--ndr-white);
	border: 2px solid rgba(255, 255, 255, 0.55);
}

@media (hover: hover) and (pointer: fine) {
	.ndr-btn-white-outline:hover {
		background: rgba(255, 255, 255, 0.12);
		border-color: #fff;
		color: #fff;
	}
}

/* ===== Section heading共通 ===== */
.ndr-section-heading {
	text-align: center;
	margin-bottom: 36px;
}

.ndr-section-en {
	font-family: "Roboto", sans-serif;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--ndr-primary);
	text-transform: uppercase;
	font-weight: 500;
	margin-bottom: 6px;
}

.ndr-section-h2 {
	font-size: 28px;
	font-weight: 500;
	color: var(--ndr-primary-dark);
	margin: 0 0 12px;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.ndr-section-sub {
	font-size: 14px;
	color: var(--ndr-text-mid);
	max-width: 580px;
	margin: 0 auto;
	line-height: 1.85;
}

/* ===== Section 2: Pain Points ===== */
.ndr-pain-section {
	padding: 64px 24px;
	background: var(--ndr-white);
}

/* `.ndr-consultation-page .ndr-pain-list` の詳細度に勝つため、
 * このセレクタも .ndr-consultation-page スコープで明示する */
.ndr-consultation-page .ndr-pain-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	max-width: 940px;
	margin-left: auto;
	margin-right: auto;
	padding: 0;
	list-style: none;
}

.ndr-pain-list>.ndr-pain-chip {
	flex: 0 1 calc((100% - 20px) / 2);
	max-width: calc((100% - 20px) / 2);
	min-width: 300px;
}

.ndr-pain-chip {
	display: flex;
	align-items: center;
	gap: 18px;
	background: var(--ndr-bg-light);
	border-radius: var(--ndr-radius);
	padding: 22px 26px;
	border: 1px solid #e6ecf2;
	font-size: 15px;
	color: var(--ndr-text-dark);
	line-height: 1.7;
	transition: box-shadow 0.2s, border-color 0.2s;
}

@media (hover: hover) and (pointer: fine) {
	.ndr-pain-chip:hover {
		box-shadow: 0 4px 16px rgba(77, 133, 199, 0.12);
		border-color: var(--ndr-primary-light);
	}
}

.ndr-pain-chip-text {
	flex: 1;
	font-weight: 500;
}

.ndr-pain-chip-icon {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	background: var(--ndr-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ndr-primary);
	box-shadow: 0 2px 8px rgba(77, 133, 199, 0.12);
}

.ndr-pain-chip-icon svg {
	width: 32px;
	height: 32px;
	max-width: 32px;
	max-height: 32px;
}

.ndr-pain-chip-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	padding: 3px 12px;
	border-radius: 4px;
	letter-spacing: 0.08em;
	flex-shrink: 0;
}

.ndr-pain-chip-tag.t-owner {
	background: #e3f0fa;
	color: var(--ndr-primary-dark);
}

.ndr-pain-chip-tag.t-designer {
	background: #e0f0f0;
	color: #2d7878;
}

/* ===== Section 3: Help ===== */
.ndr-help-section {
	padding: 64px 24px;
	background: var(--ndr-bg-light);
}

.ndr-help-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	max-width: 1000px;
	margin: 0 auto;
}

.ndr-help-grid>.ndr-help-card {
	flex: 0 1 calc((100% - 40px) / 3);
	max-width: calc((100% - 40px) / 3);
	min-width: 260px;
}

.ndr-help-card {
	background: var(--ndr-white);
	border-radius: var(--ndr-radius);
	padding: 32px 24px 28px;
	text-align: center;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
	transition: transform 0.2s, box-shadow 0.2s;
	border: 1px solid #eaeef3;
}

@media (hover: hover) and (pointer: fine) {
	.ndr-help-card:hover {
		transform: translateY(-3px);
		box-shadow: 0 6px 20px rgba(77, 133, 199, 0.12);
	}
}

/* 相談できる内容：PNG素材アイコン版 */
.ndr-help-card-icon {
	width: 88px;
	height: 88px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
}

.ndr-help-card-icon img {
	width: 100%;
	height: 100%;
	max-width: 88px;
	max-height: 88px;
	object-fit: contain;
	display: block;
}

.ndr-help-card-title {
	font-size: 17px;
	font-weight: 600;
	color: var(--ndr-text-dark);
	margin: 0 0 12px;
	letter-spacing: 0.04em;
}

.ndr-help-card-desc {
	font-size: 14px;
	color: var(--ndr-text-mid);
	line-height: 1.85;
	margin: 0;
}

/* ===== Section 5: Flow（PNGアイコン+番号バッジ版） ===== */
.ndr-flow-section {
	padding: 64px 24px;
	background: var(--ndr-bg-light);
}

.ndr-flow-steps {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
	max-width: 960px;
	margin: 0 auto;
	position: relative;
}

.ndr-flow-step {
	flex: 1 1 calc((100% - 48px) / 3);
	max-width: calc((100% - 48px) / 3);
	min-width: 240px;
	text-align: center;
	padding: 32px 20px 28px;
	background: var(--ndr-white);
	border: 1px solid #e6ecf2;
	border-radius: var(--ndr-radius);
	box-shadow: 0 4px 14px rgba(77, 133, 199, 0.08);
	position: relative;
}

/* ステップ間の点線 */
.ndr-flow-step:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 50%;
	right: -18px;
	width: 12px;
	height: 12px;
	border-top: 2px solid var(--ndr-primary-light);
	border-right: 2px solid var(--ndr-primary-light);
	transform: translateY(-50%) rotate(45deg);
	z-index: 1;
}

.ndr-flow-icon {
	position: relative;
	width: 88px;
	height: 88px;
	margin: 0 auto 14px;
}

.ndr-flow-icon img {
	width: 100%;
	height: 100%;
	max-width: 88px;
	max-height: 88px;
	object-fit: contain;
	display: block;
}

.ndr-flow-num {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ndr-primary);
	color: var(--ndr-white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: "Roboto", sans-serif;
	font-size: 15px;
	font-weight: 700;
	box-shadow: 0 4px 10px rgba(77, 133, 199, 0.35);
	border: 3px solid #fff;
}

.ndr-flow-step-label {
	font-family: "Roboto", sans-serif;
	font-size: 11px;
	letter-spacing: 0.2em;
	color: var(--ndr-primary);
	font-weight: 500;
	margin: 0 0 6px;
	text-transform: uppercase;
}

.ndr-flow-title {
	font-size: 17px;
	font-weight: 600;
	color: var(--ndr-text-dark);
	margin: 0 0 12px;
	letter-spacing: 0.04em;
}

.ndr-flow-desc {
	font-size: 14px;
	color: var(--ndr-text-mid);
	line-height: 1.85;
	margin: 0;
}

/* ===== Section 5: Form Methods ===== */
/* Flow と Form が両方淡青になるので、Form を白に変更してリズムを保つ */
.ndr-form-section {
	padding: 64px 24px;
	background: var(--ndr-white);
}

.ndr-form-methods {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	max-width: 840px;
	margin: 0 auto;
}

.ndr-form-method-card {
	background: var(--ndr-white);
	border-radius: var(--ndr-radius);
	padding: 36px 28px;
	text-align: center;
	border: 1px solid #eaeef3;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.ndr-form-method-icon {
	width: 56px;
	height: 56px;
	margin: 0 auto 16px;
	color: var(--ndr-primary);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ndr-form-method-icon svg {
	width: 36px;
	height: 36px;
	max-width: 36px;
	max-height: 36px;
}

.ndr-form-method-title {
	font-size: 18px;
	font-weight: 500;
	color: var(--ndr-text-dark);
	margin: 0 0 8px;
	letter-spacing: 0.04em;
}

.ndr-form-method-desc {
	font-size: 13px;
	color: var(--ndr-text-mid);
	line-height: 1.85;
	margin: 0 0 20px;
}

.ndr-form-method-phone {
	display: inline-block;
	font-family: "Roboto", sans-serif;
	font-size: 28px;
	font-weight: 500;
	color: var(--ndr-primary-dark);
	letter-spacing: 0.05em;
	text-decoration: none;
	min-height: 44px;
	padding: 6px 12px;
	font-feature-settings: "tnum";
}

@media (hover: hover) and (pointer: fine) {
	.ndr-form-method-phone:hover {
		color: var(--ndr-primary);
	}
}

.ndr-form-method-time {
	font-size: 12px;
	color: var(--ndr-text-light);
	margin-top: 4px;
}

/* ===== Form container ===== */
.ndr-form-container {
	max-width: 760px;
	margin: 120px auto 0;
	background: var(--ndr-white);
	border-radius: var(--ndr-radius);
	padding: 56px 56px 48px;
	box-shadow: 0 4px 18px rgba(77, 133, 199, 0.08);
	border: 1px solid #e6ecf2;
	/* 既存テーマのヘッダー固定要素（logo等）と被らないよう
	 * アンカースクロール時に上部マージンを確保 */
	scroll-margin-top: 100px;
}

/* 確認画面・完了画面にもスクロールマージン */
.ndr-consultation-page .mw_wp_form_confirm,
.ndr-consultation-page .mw_wp_form_complete,
.ndr-consultation-page #form {
	scroll-margin-top: 100px;
}

.ndr-form-title {
	font-size: 22px;
	font-weight: 600;
	color: var(--ndr-primary-dark);
	margin: 0 0 36px;
	text-align: center;
	letter-spacing: 0.06em;
	line-height: 1.5;
}

/* ===== MW WP Form 出力のスタイル上書き ===== */
.ndr-form-container .mw_wp_form,
.ndr-form-container form {
	display: block;
}

.ndr-form-container .mw_wp_form .horizontal-item+.horizontal-item {
	margin-left: 0 !important;
}

.ndr-form-container .ndr-form-row,
.ndr-form-container p {
	margin: 0 0 28px;
}

.ndr-form-container label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--ndr-text-dark);
	margin-bottom: 10px;
	letter-spacing: 0.04em;
	line-height: 1.6;
}

.ndr-form-container input[type="text"],
.ndr-form-container input[type="email"],
.ndr-form-container input[type="tel"],
.ndr-form-container input[type="url"],
.ndr-form-container input[type="number"],
.ndr-form-container textarea,
.ndr-form-container select {
	width: 100%;
	padding: 14px 18px;
	border: 1px solid var(--ndr-border);
	border-radius: var(--ndr-radius);
	font-size: 15px;
	font-family: inherit;
	transition: border-color 0.2s, box-shadow 0.2s;
	background: #fafbfc;
	letter-spacing: 0.025em;
	line-height: 1.6;
}

.ndr-form-container input:focus,
.ndr-form-container textarea:focus,
.ndr-form-container select:focus {
	border-color: var(--ndr-primary);
	outline: none;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(77, 133, 199, 0.15);
}

.ndr-form-container textarea {
	min-height: 140px;
	resize: vertical;
	line-height: 1.85;
}

.ndr-form-container input[type="file"] {
	display: block;
	padding: 8px 0;
	font-size: 14px;
}

.ndr-form-container .ndr-form-required,
.ndr-form-container .required {
	font-size: 11px;
	background: var(--ndr-error);
	color: var(--ndr-white);
	padding: 3px 10px;
	border-radius: 4px;
	font-weight: 600;
	margin-left: 8px;
	letter-spacing: 0.06em;
	vertical-align: middle;
}

.ndr-form-container .ndr-form-optional,
.ndr-form-container .any {
	font-size: 11px;
	background: #e0e0e0;
	color: var(--ndr-text-mid);
	padding: 3px 10px;
	border-radius: 4px;
	font-weight: 600;
	margin-left: 8px;
	letter-spacing: 0.06em;
	vertical-align: middle;
}

.ndr-form-container .ndr-form-hint {
	display: block;
	font-size: 13px;
	color: var(--ndr-text-light);
	margin-top: 8px;
	line-height: 1.7;
}

.ndr-form-container .error,
.ndr-form-container .mw_wp_form .error,
.ndr-form-container span.error {
	display: block;
	color: var(--ndr-error);
	font-size: 13px;
	font-weight: 500;
	margin-top: 8px;
	line-height: 1.6;
}

/* チェックボックス／ラジオ
 * MW WP Form の出力は以下のいずれかのパターン：
 *   <span class="mwform-radio-field"><label><input type="radio"> 急ぎ</label></span>
 *   <span class="mwform-radio-field"><input id="x"><label for="x">急ぎ</label></span>
 * どちらでも横並びになるよう label と input を強制的にインラインフレックスに。
 */
/* チェックボックス/ラジオを含む <p> のホワイトスペース崩しを除去
 * inline-flex 要素間の HTML 上の改行・スペースが約4px の隙間として
 * 描画されるため、親の font-size を 0 にして消す。
 * 子要素は自前で font-size を持つため影響なし。
 * 親の <label>（フィールド見出し）は自前で font-size を再指定して復元。
 */
.ndr-form-container p:has(> .mwform-checkbox-field),
.ndr-form-container p:has(> .mwform-radio-field) {
	font-size: 0;
	line-height: 0;
}

.ndr-form-container p:has(> .mwform-checkbox-field)>label,
.ndr-form-container p:has(> .mwform-radio-field)>label {
	font-size: 15px;
	line-height: 1.6;
}

.ndr-form-container .mwform-checkbox-field,
.ndr-form-container .mwform-radio-field {
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	color: var(--ndr-text-dark);
	padding: 8px 14px;
	border: 1px solid var(--ndr-border);
	border-radius: var(--ndr-radius);
	cursor: pointer;
	transition: all 0.2s;
	background: #fafbfc;
	margin: 0 4px 4px 0;
	line-height: 1.5;
	vertical-align: top;
}

@media (hover: hover) and (pointer: fine) {

	.ndr-form-container .mwform-checkbox-field:hover,
	.ndr-form-container .mwform-radio-field:hover {
		border-color: var(--ndr-primary);
		background: var(--ndr-bg-light);
	}
}

/* 内部 label は親のフィールドラベル（display:block）を継承させない */
.ndr-form-container .mwform-checkbox-field label,
.ndr-form-container .mwform-radio-field label {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	font-size: inherit !important;
	font-weight: 400 !important;
	color: inherit !important;
	letter-spacing: inherit !important;
	cursor: pointer;
	line-height: 1.5;
}

/* input 自体のサイズ・マージン正規化（input[type=text]の100%幅ルールから除外） */
.ndr-form-container .mwform-checkbox-field input[type="checkbox"],
.ndr-form-container .mwform-checkbox-field input[type="radio"],
.ndr-form-container .mwform-radio-field input[type="checkbox"],
.ndr-form-container .mwform-radio-field input[type="radio"],
.ndr-form-container input[type="checkbox"],
.ndr-form-container input[type="radio"] {
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	accent-color: var(--ndr-primary);
	cursor: pointer;
	flex-shrink: 0;
	background: transparent !important;
	border: 1px solid var(--ndr-border);
	box-shadow: none !important;
}

/* 個人情報同意ブロック（同意チェック＋説明文） */
.ndr-form-container p.ndr-form-consent {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.ndr-form-container p.ndr-form-consent a {
	color: var(--ndr-primary);
	text-decoration: underline;
}

/* 送信ボタン */
.ndr-form-container input[type="submit"],
.ndr-form-container button[type="submit"] {
	display: block;
	margin: 40px auto 0;
	min-width: 280px;
	min-height: 60px;
	padding: 18px 64px;
	border-radius: var(--ndr-radius);
	font-size: 16px;
	font-weight: 700;
	border: none;
	cursor: pointer;
	background: var(--ndr-cta-orange);
	color: var(--ndr-white);
	box-shadow: 0 4px 14px rgba(234, 138, 67, 0.35);
	transition: all 0.2s;
	font-family: inherit;
	letter-spacing: 0.06em;
	line-height: 1.3;
}

@media (hover: hover) and (pointer: fine) {

	.ndr-form-container input[type="submit"]:hover,
	.ndr-form-container button[type="submit"]:hover {
		background: var(--ndr-cta-orange-hover);
		transform: translateY(-2px);
		box-shadow: 0 6px 18px rgba(217, 122, 46, 0.4);
	}
}

.ndr-form-container input[name="submitBack"] {
	background: var(--ndr-bg-grey);
	color: var(--ndr-text-mid);
	box-shadow: none;
	border: 1px solid var(--ndr-border);
	margin-right: 12px;
	padding: 14px 32px;
}

/* ===== 確認画面（MW WP Form: .mw_wp_form_confirm） =====
 * MW WP Form の確認画面は <p>label + 値テキスト</p> 構造。
 * テキストノード前後の改行・空白を抑制し、コンパクトな2カラム表示にする。
 */
.ndr-form-container .mw_wp_form_confirm {
	background: var(--ndr-white);
}

/* 必須/任意バッジ・ヒントは非表示 */
.ndr-form-container .mw_wp_form_confirm .required,
.ndr-form-container .mw_wp_form_confirm .any,
.ndr-form-container .mw_wp_form_confirm .ndr-form-required,
.ndr-form-container .mw_wp_form_confirm .ndr-form-optional,
.ndr-form-container .mw_wp_form_confirm .ndr-form-hint {
	display: none !important;
}

/* 各フィールド行：ラベル｜値 の2カラム */
.ndr-form-container .mw_wp_form_confirm>form>p,
.ndr-form-container .mw_wp_form_confirm form>p {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 0 16px;
	align-items: baseline;
	padding: 10px 0;
	margin: 0;
	border-bottom: 1px solid #f0f0f0;
	font-size: 15px;
	color: var(--ndr-text-dark);
	line-height: 1.6;
	word-break: break-word;
	/* テキストノード前後の改行を圧縮 */
	white-space: normal;
}

.ndr-form-container .mw_wp_form_confirm>form>p:last-of-type,
.ndr-form-container .mw_wp_form_confirm form>p:last-of-type {
	border-bottom: none;
}

/* 送信ボタン行は中央寄せ・罫線解除 */
.ndr-form-container .mw_wp_form_confirm>form>p:has(input[type="submit"]),
.ndr-form-container .mw_wp_form_confirm form>p:has(input[type="submit"]) {
	display: block;
	border-bottom: none;
	text-align: center;
	padding: 24px 0 0;
	margin-top: 8px;
}

/* ラベル（左カラム） */
.ndr-form-container .mw_wp_form_confirm>form>p>label,
.ndr-form-container .mw_wp_form_confirm form>p>label {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--ndr-text-mid);
	letter-spacing: 0.04em;
	line-height: 1.6;
}

/* レスポンシブ */
@media (max-width: 600px) {

	.ndr-form-container .mw_wp_form_confirm>form>p,
	.ndr-form-container .mw_wp_form_confirm form>p {
		grid-template-columns: 1fr;
		gap: 2px;
		padding: 10px 0;
	}

	.ndr-form-container .mw_wp_form_confirm>form>p>label,
	.ndr-form-container .mw_wp_form_confirm form>p>label {
		color: var(--ndr-primary-dark);
		font-size: 12px;
	}
}

/* ===== ファイル添付ドロップゾーン（追加・個別削除UI） ===== */
.ndr-file-dropzone {
	position: relative;
	border: 2px dashed var(--ndr-border);
	border-radius: var(--ndr-radius);
	background: #fafbfc;
	transition: border-color 0.2s, background 0.2s;
	overflow: hidden;
}

.ndr-file-dropzone.is-dragover {
	border-color: var(--ndr-cta-orange);
	background: rgba(234, 138, 67, 0.06);
}

/* CTAエリア（クリックでファイル選択） */
.ndr-file-dropzone-cta-area {
	padding: 24px;
	text-align: center;
	cursor: pointer;
}

@media (hover: hover) and (pointer: fine) {
	.ndr-file-dropzone-cta-area:hover {
		background: var(--ndr-bg-light);
	}
}

.ndr-file-dropzone-icon {
	font-size: 28px;
	margin-bottom: 8px;
	display: block;
}

.ndr-file-dropzone-text {
	font-size: 14px;
	color: var(--ndr-text-mid);
	margin: 0 0 4px;
}

.ndr-file-dropzone-hint {
	font-size: 12px;
	color: var(--ndr-text-light);
	margin: 0 0 14px;
}

/* 既存テーマの button { width:300px; height:50px; ... } を打ち消すため詳細度を上げて !important */
.ndr-consultation-page .ndr-file-dropzone .ndr-file-dropzone-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 10px 22px !important;
	background: var(--ndr-white) !important;
	background-image: none !important;
	color: var(--ndr-primary) !important;
	border: 1.5px solid var(--ndr-primary) !important;
	border-radius: var(--ndr-radius) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	text-shadow: none !important;
	box-shadow: none !important;
	transition: background 0.15s, color 0.15s, border-color 0.15s !important;
	line-height: 1.5 !important;
	min-width: auto !important;
	height: auto !important;
	width: auto !important;
	position: relative !important;
	overflow: visible !important;
}

@media (hover: hover) and (pointer: fine) {

	.ndr-consultation-page .ndr-file-dropzone .ndr-file-dropzone-button:hover,
	.ndr-consultation-page .ndr-file-dropzone .ndr-file-dropzone-button:focus {
		background: var(--ndr-primary) !important;
		background-image: none !important;
		color: #fff !important;
		border-color: var(--ndr-primary) !important;
	}
}

.ndr-consultation-page .ndr-file-dropzone .ndr-file-dropzone-button:active {
	background: var(--ndr-primary-dark) !important;
	color: #fff !important;
}

/* input は隠す */
.ndr-file-dropzone input[type="file"] {
	position: absolute !important;
	left: -9999px !important;
	opacity: 0 !important;
	width: 1px !important;
	height: 1px !important;
	pointer-events: none !important;
}

/* ファイルリスト（×削除ボタン付き） */
.ndr-file-list {
	list-style: none;
	margin: 0;
	padding: 0 16px 16px;
	border-top: 1px solid #eef2f7;
}

.ndr-file-list:empty {
	display: none;
}

.ndr-file-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	background: var(--ndr-white);
	border: 1px solid var(--ndr-border);
	border-radius: var(--ndr-radius);
	margin-top: 10px;
	font-size: 13px;
}

.ndr-file-item-icon {
	flex-shrink: 0;
	color: var(--ndr-primary);
}

.ndr-file-item-name {
	flex: 1;
	word-break: break-all;
	color: var(--ndr-text-dark);
}

.ndr-file-item-size {
	flex-shrink: 0;
	color: var(--ndr-text-light);
	font-size: 12px;
}

/* 既存テーマの button{width:300px;height:50px;...} を打ち消す */
.ndr-consultation-page .ndr-file-item .ndr-file-item-remove {
	flex-shrink: 0 !important;
	width: 28px !important;
	height: 28px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: transparent !important;
	background-image: none !important;
	color: var(--ndr-text-light) !important;
	border: 1px solid var(--ndr-border) !important;
	border-radius: 50% !important;
	font-size: 18px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	transition: background 0.15s, color 0.15s, border-color 0.15s !important;
	font-family: inherit !important;
	min-width: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

@media (hover: hover) and (pointer: fine) {
	.ndr-consultation-page .ndr-file-item .ndr-file-item-remove:hover {
		background: var(--ndr-error) !important;
		color: #fff !important;
		border-color: var(--ndr-error) !important;
	}
}

/* JSバリデーションエラー */
.ndr-js-error {
	margin: 0 16px 12px;
	padding: 8px 12px;
	color: var(--ndr-error);
	background: #fce4e4;
	border: 1px solid #f4caca;
	border-radius: var(--ndr-radius);
	font-size: 13px;
}

/* ===== 確認画面のファイル名一覧 [ndr_files_display] ===== */
.ndr-files-display-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ndr-files-display-list li {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	background: var(--ndr-bg-light);
	border: 1px solid #e6ecf2;
	border-radius: 6px;
	font-size: 13px;
	color: var(--ndr-text-dark);
	word-break: break-all;
}

.ndr-files-display-list li::before {
	content: '📎';
	margin-right: 6px;
	font-size: 12px;
}

/* ===== 個人情報リンク注記 ===== */
.ndr-form-privacy-notice {
	max-width: 720px;
	margin: 12px auto 0;
	text-align: center;
}

.ndr-form-privacy-notice p {
	font-size: 12px;
	color: var(--ndr-text-light);
	line-height: 1.8;
}

.ndr-form-privacy-notice a {
	color: var(--ndr-primary);
	text-decoration: underline;
}

/* 逆導線 */
.ndr-form-alt {
	max-width: 720px;
	margin: 20px auto 0;
	text-align: center;
}

.ndr-form-alt p {
	font-size: 13px;
	color: var(--ndr-text-light);
	line-height: 1.8;
}

.ndr-form-alt a {
	color: var(--ndr-primary);
	font-weight: 500;
	text-decoration: underline;
}

/* ===== Section 6: Trust（Help/Flow と同じテキストスケール基準に統一） ===== */
.ndr-trust-section {
	padding: 64px 24px;
	background: var(--ndr-white);
}

.ndr-trust-stats {
	display: flex;
	gap: 0;
	justify-content: center;
	max-width: 880px;
	margin: 0 auto;
}

.ndr-trust-stat {
	flex: 1;
	text-align: center;
	padding: 28px 20px;
	border-right: 1px solid var(--ndr-border);
}

.ndr-trust-stat:last-child {
	border-right: none;
}

.ndr-trust-stat-num {
	font-family: "Roboto", sans-serif;
	font-feature-settings: "tnum";
	font-size: 52px;
	font-weight: 600;
	color: var(--ndr-primary-dark);
	line-height: 1.1;
	letter-spacing: 0.02em;
}

.ndr-trust-stat-num span {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 15px;
	font-weight: 500;
	margin-left: 6px;
	color: var(--ndr-text-mid);
	letter-spacing: 0.04em;
}

.ndr-trust-stat-label {
	font-size: 14px;
	font-weight: 500;
	color: var(--ndr-text-mid);
	margin-top: 14px;
	letter-spacing: 0.04em;
	line-height: 1.6;
}

.ndr-trust-badges {
	display: flex;
	gap: 16px;
	justify-content: center;
	margin-top: 40px;
	flex-wrap: wrap;
}

.ndr-trust-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ndr-text-dark);
	padding: 12px 24px;
	background: var(--ndr-bg-light);
	border-radius: var(--ndr-radius);
	border: 1px solid #e6ecf2;
	letter-spacing: 0.04em;
}

.ndr-trust-badge-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: var(--ndr-primary);
}

.ndr-trust-badge-icon svg {
	width: 22px;
	height: 22px;
	max-width: 22px;
	max-height: 22px;
}

/* ===== Final CTA（要望により非表示） ===== */
.ndr-final-cta {
	display: none !important;
}

.ndr-final-cta-removed-original {
	padding: 56px 24px;
	text-align: center;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
	color: var(--ndr-white);
	position: relative;
	overflow: hidden;
}

.ndr-final-cta::before {
	content: '';
	position: absolute;
	top: -100px;
	left: -100px;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
}

.ndr-final-cta-heading {
	font-size: 28px;
	font-weight: 500;
	margin: 0 0 14px;
	position: relative;
	line-height: 1.5;
	color: #fff;
	letter-spacing: 0.04em;
}

.ndr-final-cta-desc {
	font-size: 15px;
	opacity: 0.9;
	margin: 0 0 28px;
	position: relative;
	line-height: 1.9;
}

.ndr-final-cta .ndr-fv-cta {
	position: relative;
}

/* ===== 送信中ローディングオーバーレイ =====
 * body 直下に動的挿入されるため、.ndr-consultation-page スコープから外れるが、
 * 他ページに影響しないよう全てのセレクタに #ndr-loading-overlay または
 * .ndr-loading-* プレフィックスを付与している。
 */
#ndr-loading-overlay.ndr-loading-overlay {
	position: fixed;
	inset: 0;
	background: rgba(255, 255, 255, 0.94);
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	font-family: "Noto Sans JP", sans-serif;
}

#ndr-loading-overlay.ndr-loading-overlay.is-visible {
	display: flex;
	animation: ndr-loading-fade-in 0.2s ease;
}

#ndr-loading-overlay .ndr-loading-overlay-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: 480px;
	text-align: center;
}

#ndr-loading-overlay .ndr-loading-spinner {
	width: 64px;
	height: 64px;
	border: 4px solid #e2e2e2;
	border-top-color: #4d85c7;
	border-radius: 50%;
	animation: ndr-loading-spin 0.8s linear infinite;
}

#ndr-loading-overlay .ndr-loading-message {
	font-size: 17px;
	font-weight: 500;
	color: #2a5cac;
	letter-spacing: 0.04em;
	line-height: 1.6;
}

#ndr-loading-overlay .ndr-loading-sub {
	font-size: 13px;
	color: #404040;
	line-height: 1.85;
	white-space: pre-line;
}

@keyframes ndr-loading-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes ndr-loading-fade-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

/* prefers-reduced-motion 対応 */
@media (prefers-reduced-motion: reduce) {
	#ndr-loading-overlay.ndr-loading-overlay.is-visible {
		animation: none;
	}

	#ndr-loading-overlay .ndr-loading-spinner {
		animation: ndr-loading-spin 2s linear infinite;
	}
}

/* ===== 完了画面（独立ページ /consultation-thanks/ 用ラッパー） ===== */
.ndr-thanks-section {
	padding: 60px 24px;
	background: var(--ndr-bg-light);
	min-height: calc(100vh - 400px);
}

.ndr-thanks-section .ndr-complete {
	margin: 0 auto;
}

/* ===== 完了画面 ===== */
.ndr-complete {
	max-width: 640px;
	margin: 60px auto;
	background: var(--ndr-white);
	border-radius: var(--ndr-radius);
	padding: 56px 20px;
	text-align: center;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
	border: 1px solid #eaeef3;
}

.ndr-complete-icon {
	width: 80px;
	height: 80px;
	margin: 0 auto 20px;
	background: var(--ndr-accent);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 38px;
	font-weight: 500;
}

.ndr-complete-icon svg {
	width: 40px;
	height: 40px;
	max-width: 40px;
	max-height: 40px;
	stroke-width: 2.5;
}

.ndr-complete-title {
	font-size: 24px;
	font-weight: 500;
	color: var(--ndr-primary-dark);
	margin: 0 0 16px;
	letter-spacing: 0.04em;
}

.ndr-complete-desc {
	color: var(--ndr-text-mid);
	margin: 0 0 28px;
	line-height: 1.95;
}

.ndr-complete-receipt {
	display: inline-block;
	background: var(--ndr-bg-light);
	border: 2px solid var(--ndr-primary);
	border-radius: var(--ndr-radius);
	padding: 16px 36px;
	margin: 0 auto 16px;
}

.ndr-complete-receipt-label {
	font-size: 12px;
	color: var(--ndr-text-mid);
	margin-bottom: 4px;
}

.ndr-complete-receipt-number {
	font-family: "Roboto", "Courier New", monospace;
	font-feature-settings: "tnum";
	font-size: 22px;
	font-weight: 500;
	color: var(--ndr-primary-dark);
	letter-spacing: 0.05em;
}

.ndr-complete-note {
	font-size: 12px;
	color: var(--ndr-text-light);
	margin: 0 0 28px;
	line-height: 1.85;
}

.ndr-complete-mail-info {
	background: var(--ndr-bg-light);
	border-radius: var(--ndr-radius);
	padding: 16px 20px;
	margin-bottom: 28px;
	font-size: 13px;
	color: var(--ndr-primary-dark);
	line-height: 1.85;
	text-align: left;
}

.ndr-complete-mail-info p {
	margin: 0;
}

.ndr-complete-mail-info p+p {
	margin-top: 6px;
}

.ndr-complete-cta {
	margin-top: 24px;
}

.ndr-complete-cta .ndr-btn-white-outline {
	color: var(--ndr-primary);
	border-color: var(--ndr-primary);
}

@media (hover: hover) and (pointer: fine) {
	.ndr-complete-cta .ndr-btn-white-outline:hover {
		background: var(--ndr-primary);
		color: #fff;
	}
}

/* ===== Responsive ===== */
@media (max-width: 900px) {
	.ndr-consultation-mv__inner {
		padding: 48px 40px 52px;
	}

	.ndr-consultation-mv__label {
		min-height: 28px;
		margin-bottom: 18px;
		padding: 4px 16px;
		font-size: 13px;
	}

	.ndr-consultation-mv__title {
		margin-bottom: 22px;
		line-height: 1.4;
	}

	.ndr-consultation-mv__lead {
		max-width: 100%;
		margin-bottom: 28px;
		font-size: 15px;
		line-height: 1.85;
	}

	.ndr-consultation-mv__button {
		min-width: 220px;
		min-height: 54px;
		padding: 14px 28px;
		font-size: 15px;
	}

	.ndr-pain-list {
		grid-template-columns: 1fr;
	}

	.ndr-help-grid {
		grid-template-columns: 1fr 1fr;
	}

	.ndr-flow-steps {
		flex-direction: column;
		gap: 20px;
	}

	.ndr-flow-step {
		flex: 0 0 100%;
		max-width: 100%;
		min-width: 0;
	}

	/* 縦並び時はステップ間矢印を下向きに */
	.ndr-flow-step:not(:last-child)::after {
		top: auto;
		bottom: -20px;
		right: 50%;
		transform: translateX(50%) rotate(135deg);
	}

	.ndr-form-methods {
		grid-template-columns: 1fr;
	}

	.ndr-trust-stats {
		flex-direction: column;
	}

	.ndr-trust-stat {
		border-right: none;
		border-bottom: 1px solid var(--ndr-border);
	}

	.ndr-trust-stat:last-child {
		border-bottom: none;
	}

	.ndr-fv-heading {
		font-size: 28px;
	}

	.ndr-section-h2 {
		font-size: 24px;
	}
}

@media (max-width: 600px) {

	/* モバイル時は各セクション余白さらに控えめに */
	.ndr-pain-section,
	.ndr-help-section,
	.ndr-flow-section,
	.ndr-form-section,
	.ndr-trust-section {
		padding: 48px 20px;
	}

	.ndr-final-cta {
		padding: 44px 20px;
	}

	.ndr-section-heading {
		margin-bottom: 28px;
	}

	.ndr-consultation-mv {
		background: linear-gradient(135deg, #0a4f9e 0%, #0068bd 100%);
	}

	.ndr-consultation-mv__grid {
		background-size: 48px 48px;
	}

	.ndr-consultation-mv__inner {
		padding: 40px 24px 44px;
	}

	.ndr-consultation-mv__label {
		font-size: 12px;
		min-height: 26px;
		padding: 4px 14px;
		margin-bottom: 16px;
	}

	.ndr-consultation-mv__title {
		font-size: 26px;
		line-height: 1.5;
		margin-bottom: 18px;
	}

	.ndr-consultation-mv__lead {
		font-size: 14px;
		line-height: 1.85;
		margin-bottom: 24px;
	}

	.ndr-consultation-mv__lead br {
		display: none;
	}

	.ndr-consultation-mv__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
	}

	.ndr-consultation-mv__button {
		width: 100%;
		min-width: auto;
		min-height: 52px;
		font-size: 15px;
	}

	.ndr-help-grid {
		grid-template-columns: 1fr;
	}

	.ndr-fv-cta {
		flex-direction: column;
		align-items: center;
	}

	.ndr-btn-main {
		width: 100%;
		min-width: auto;
		justify-content: center;
	}

	.ndr-form-container {
		padding: 32px 20px 28px;
		margin-top: 64px;
	}

	.ndr-form-title {
		font-size: 18px;
		margin-bottom: 24px;
	}

	.ndr-form-container .ndr-form-row,
	.ndr-form-container p {
		margin-bottom: 22px;
	}

	.ndr-form-container label {
		font-size: 14px;
	}

	.ndr-form-container input[type="text"],
	.ndr-form-container input[type="email"],
	.ndr-form-container input[type="tel"],
	.ndr-form-container input[type="url"],
	.ndr-form-container input[type="number"],
	.ndr-form-container textarea,
	.ndr-form-container select {
		font-size: 14px;
		padding: 12px 14px;
	}

	.ndr-form-container input[type="submit"],
	.ndr-form-container button[type="submit"] {
		width: 100%;
		min-width: auto;
		padding: 16px 24px;
		font-size: 15px;
	}

	.ndr-trust-stat-num {
		font-size: 40px;
	}

	.ndr-trust-stat-num span {
		font-size: 13px;
		margin-left: 4px;
	}

	.ndr-trust-stat-label {
		font-size: 13px;
		margin-top: 10px;
	}

	.ndr-trust-badges {
		gap: 10px;
		margin-top: 28px;
	}

	.ndr-trust-badge {
		padding: 10px 18px;
		font-size: 13px;
	}

	/* === Pain Section: スマホ時は発注者グループ→設計者グループの順に並べる === */
	.ndr-consultation-page .ndr-pain-list {
		flex-direction: column;
		gap: 14px;
	}

	.ndr-pain-list>.ndr-pain-chip {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.ndr-pain-chip:has(.t-owner) {
		order: 0;
	}

	.ndr-pain-chip:has(.t-designer) {
		order: 1;
	}

	/* スマホ時のチップ内余白／文字サイズを最適化 */
	.ndr-pain-chip {
		gap: 14px;
		padding: 18px 20px;
		font-size: 14px;
	}

	.ndr-pain-chip-icon {
		width: 52px;
		height: 52px;
	}

	.ndr-pain-chip-icon svg {
		width: 26px;
		height: 26px;
		max-width: 26px;
		max-height: 26px;
	}

	/* 日本語の不自然な改行を抑制（語句単位での折り返しを優先） */
	.ndr-pain-chip-text {
		word-break: auto-phrase;
		line-break: strict;
		overflow-wrap: break-word;
	}
}