/*
 * フォームページ専用CSS(page-templates/template-form.php = /inquiry/ /consultation/ /club/)
 * 旧サイトの 3 フォーム(WordPress 外の独自 PHP)を写経したもの。
 * このページだけヘッダーとフッターが最小の形になる(.ns-formhead / .ns-formfoot)。
 */

.ns-formpage {
	background: #f4f7f7;
}

/* ------------------------------------------------------------------
 * 最小のヘッダーとフッター
 * ------------------------------------------------------------------ */

.ns-formhead {
	background: #ffffff;
	box-shadow: 0 6px 6px rgba(0, 0, 0, 0.1);
}

.ns-formhead__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: min(1142px, 100% - 40px);
	margin-inline: auto;
	padding: 10px 0;
}

/* 旧はロゴ画像が inline なので行の下端に 7.6px の隙間がある */
.ns-formhead__logo {
	display: block;
	padding-bottom: 7.6px;
}

.ns-formhead__logo img {
	width: 378px;
	height: auto;
}

.ns-formhead__close {
	padding: 10px 20px;
	background: var(--fh-navy);
	border: 1px solid var(--fh-navy);
	border-radius: 5px;
	box-shadow: 0 3px 0 #12176f;
	color: #ffffff;
	letter-spacing: 0.8px;
	line-height: 1.6;
}

.ns-formfoot {
	padding: 0;
	background: var(--fh-navy);
}

.ns-formfoot__copy {
	color: #ffffff;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 1px;
	line-height: 48px;
	text-align: center;
}

/* ------------------------------------------------------------------
 * ページ本体
 * ------------------------------------------------------------------ */

.ns-form {
	padding-bottom: 30px;
}

.ns-form__inner {
	width: min(1142px, 100% - 40px);
	margin-inline: auto;
}

.ns-form__crumb {
	padding: 13px 0 43px;
	font-size: 12px;
	line-height: 19.2px;
}

.ns-form__crumb a {
	color: #333333;
}

.ns-form__ttl {
	margin-bottom: 40px;
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: 38px;
	font-weight: 700;
	letter-spacing: 1.9px;
	line-height: 1.4;
	text-align: center;
}

/* 旧はバナー画像が inline で行の下端に 7.6px の隙間がある */
.ns-form__hero {
	margin-bottom: 10px;
	padding-bottom: 7.6px;
	text-align: center;
}

/* 事前相談・無料会員登録の見出しは旧が 34px(資料請求は 38px) */
.ns-form--consultation .ns-form__ttl,
.ns-form--club .ns-form__ttl {
	font-size: 34px;
	letter-spacing: 1.7px;
	line-height: 47.6px;
}

.ns-form--consultation .ns-form__ttl {
	margin: 10px 0;
}

.ns-form--consultation .ns-form__hero {
	margin-bottom: 0;
}

.ns-form--club .ns-form__ttl {
	margin: 0;
}

/* 無料会員登録のバナー 2 枚は旧が画像を block で置くので下端の隙間なし */
.ns-form--club .ns-form__hero {
	margin: 30px 0;
	padding-bottom: 0;
}

.ns-form--club .ns-form__hero--sub {
	margin: 0;
}

.ns-form__hero img {
	width: 100%;
	height: auto;
}

.ns-form__lead {
	width: fit-content;
	max-width: 100%;
	margin: 0 auto 20px;
	padding: 8px 16px;
	background: #ffffff;
	border: 3px solid #ee0000;
	color: #000000;
	font-size: 24px;
	font-weight: 700;
	line-height: 42px;
	text-align: center;
}

.ns-form__red {
	color: var(--fh-red);
}

/* 入力の 3 ステップ */

/* 旧サイトと同じく、ステップ図は 1 枚の画像(PC 649×93・SP 566×148)。
   左端の「かんたん入力30秒」は背景画像 easy.png。
   旧は画像が inline なので行の下端に 7.6px の隙間があり、下の余白で同じ高さにしている */
.ns-form__steps {
	position: relative;
	margin-bottom: 20px;
	padding: 20px 212px 27.6px;
	background: url(../../img/form/inquiry_easy.png) no-repeat 0 20px;
	text-align: center;
}

.ns-form__steps picture,
.ns-form__steps img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
}

/* 事前相談だけは旧サイトがステップ図を幅いっぱいに伸ばしている */
.ns-form--consultation .ns-form__steps img {
	width: 100%;
}

/* 段階の表示(入力 → 確認 → 完了)。旧の図(649×93)と同じ寸法。
   丸は 3 つとも 60px の枠に置き、今の段階だけ 60px の紺、ほかは 46px の薄紫。
   丸をつなぐ線は、1 つ目と 3 つ目の中心の間だけに引く(背景) */
.ns-form__steps .ns-form__stepnav {
	display: grid;
	grid-template-columns: repeat(3, 228px);
	justify-content: center;
	margin: 0;
	padding: 0 0 0 30px;
	background: linear-gradient(#eaebff, #eaebff) no-repeat calc(50% + 15px) 28px / 456px 4px;
	list-style: none;
}

.ns-form__stepitem {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: rgba(51, 51, 51, 0.5);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 25px;
}

.ns-form__stepnum {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin: 7px 0;
	background: #eaebff;
	border-radius: 50%;
	font-family: "Times New Roman", Times, serif;
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1;
}

.ns-form__steplabel {
	margin-top: 4px;
	white-space: nowrap;
}

.ns-form__stepitem.is-current {
	color: var(--fh-navy);
	font-size: 20px;
	font-weight: 700;
}

.ns-form__stepitem.is-current .ns-form__stepnum {
	width: 60px;
	height: 60px;
	margin: 0;
	background: var(--fh-navy);
	color: #eaebff;
	font-size: 28px;
}

/* 入力欄のパネル */

/* 旧はフォームの直後に 20px の空きがある */
.ns-form__panel {
	position: relative;
	margin-bottom: 20px;
	padding: 40px 46.8px;
	background: #ffffff;
	border: 1px solid #e3e3e3;
}

/* CF7 のスピナーは送信ボタンの直後に入り、そのままだと 24px の行が 1 本増える。送信中だけ右下に出す */
.ns-form .wpcf7-form .wpcf7-spinner {
	position: absolute;
	right: 46.8px;
	bottom: 62px;
	margin: 0;
}

/* 旧 .step_text: 紺 2px の枠、ラベルは紺地 19.2px、本文は 16px(SP はどちらも 14px) */
.ns-form__step1 {
	display: flex;
	align-items: stretch;
	margin-bottom: 24px;
	padding: 0;
	border: 2px solid var(--fh-navy);
	font-size: 16px;
	line-height: 1.6;
}

.ns-form__step1 > span:first-child {
	flex: 0 0 auto;
	margin-right: 16px;
	padding: 6px 12px;
	background: var(--fh-navy);
	color: #ffffff;
	font-size: 19.2px;
	font-weight: 400;
	line-height: 1.6;
}

.ns-form__step1txt {
	padding: 8px;
}

.ns-form__row {
	display: flex;
	align-items: stretch;
	width: min(1046.72px, 100%);
	margin-inline: auto;
}

/* 送付方法で出し分ける行(旧サイトと同じ) */
.ns-form__row[hidden] {
	display: none;
}

.ns-form__label {
	position: relative;
	display: flex;
	flex: 0 0 262px;
	align-items: center;
	padding: 24px 50px 24px 24px;
	border-bottom: 1px dotted var(--fh-navy);
	color: #12176f;
	font-weight: 700;
	line-height: 1.6;
}

.ns-form__badge {
	position: absolute;
	top: 24px;
	right: 10px;
	padding: 4px;
	background: #b7b7b7;
	color: #ffffff;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.6;
}

.ns-form__badge--req {
	background: #e03a3a;
}

.ns-form__field {
	flex: 1 1 auto;
	min-width: 0;
	padding: 24px;
	border-bottom: 1px dotted var(--fh-navy);
	border-left: 1px dotted var(--fh-navy);
	font-size: 17px;
	line-height: 1.76;
}

/* 高さは旧と同じ 42px(旧はブラウザ既定の 2px inset 枠。枠線と角丸だけは意図的に変えている) */
.ns-form__field input[type="text"],
.ns-form__field input[type="email"],
.ns-form__field input[type="tel"],
.ns-form__field input[type="date"],
.ns-form__field select {
	width: calc(100% - 48px);
	margin: 2px 0 2px 4px;
	padding: 10px 12px;
	background: #ffffff;
	border: 1px solid #cfcfcf;
	border-radius: 3px;
	font-size: 15px;
	line-height: 20px;
}

/* 旧の email・tel は幅いっぱいの block */
.ns-form__field input[type="email"],
.ns-form__field input[type="tel"] {
	display: block;
	width: 100%;
	margin: 2px 0;
}

/* 旧の日付欄は 133×30 の小さな枠 */
.ns-form__field input[type="date"] {
	width: 133px;
	height: 30px;
	margin: 0;
	padding: 0 0 0 1px;
	line-height: normal;
}

/* 事前相談だけ旧の入力欄が 48px */
.ns-form--consultation .ns-form__field input[type="text"],
.ns-form--consultation .ns-form__field input[type="email"],
.ns-form--consultation .ns-form__field input[type="tel"] {
	line-height: 26px;
}

/* 旧 select は 736×38(padding 3px・余白なし) */
.ns-form__field select {
	width: 100%;
	height: 38px;
	margin: 0;
	padding: 3px;
}

/* 旧 .custom-control: inline-block・17px/30px・右 30px(SP 20px)。ラジオは margin 3px 3px 0 5px */
.ns-form__field .wpcf7-list-item {
	margin: 0 30px 0 0;
	font-size: 17px;
	line-height: 30px;
}

.ns-form__field .wpcf7-list-item-label {
	font-size: 17px;
	line-height: 30px;
}

.ns-form__field input[type="radio"],
.ns-form__field input[type="checkbox"] {
	margin: 3px 3px 0 5px;
}

/* 姓/名・セイ/メイの 2 列: 旧 .col-xs-6 は inline-block の 48% 幅、間は空白文字ぶん 5.5px。
   入力欄は列の幅から 48px を引いた値で、ラベルとの間 18px(PC 305.3・SP 116.4) */
.ns-form__pair {
	display: inline-block;
	width: 48%;
	font-size: 17px;
	line-height: 30px;
	vertical-align: top;
}

.ns-form__pair + .ns-form__pair {
	margin-left: 5.5px;
}

.ns-form__pairlabel {
	font-size: 17px;
	font-weight: 400;
	line-height: 30px;
}

.ns-form__pair input[type="text"] {
	width: calc(100% - 48px);
	margin: 2px 0 2px 18px;
}

/* フリガナはラベルが「セイ」「メイ」で広いぶん、旧は左余白を 4px に詰めている */
.ns-form__pair input[name="your-sei-kana"],
.ns-form__pair input[name="your-mei-kana"] {
	margin-left: 4px;
}

/* 住所欄(旧サイトの .zipcode-wrap / .btn-zipcode / .warning の実測に合わせた) */
.ns-form__ziplabel {
	display: block;
	font-size: 17px;
	line-height: 30px;
}

.ns-form__zip {
	display: block;
}

.ns-form__zip input[type="text"] {
	width: 353px;
	margin-left: 0;
}

.ns-form__zipbtn {
	margin: 2px 0 2px 7px;
	padding: 10px 30px;
	line-height: 21px;
	background: #f3f3f3;
	border: 1px solid #cccccc;
	border-radius: 5px;
	color: #888888;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.ns-form__addr {
	display: block;
}

/* CF7 が入れる .wpcf7-form-control-wrap はインラインなので、住所欄は block にして幅いっぱいにする */
.ns-form__addr .wpcf7-form-control-wrap {
	display: block;
}

.ns-form__addr input[type="text"] {
	display: block;
	width: 100%;
	margin: 2px 0;
}

.ns-form__warn {
	display: block;
	color: #ff0000;
	font-size: 15px;
	line-height: 1.75;
}

.ns-form__ssl {
	margin-top: 30px;
	font-size: 15px;
	line-height: 1.75;
	text-align: center;
}

.ns-form__privacy {
	margin-top: 20px;
	line-height: 1.65;
	text-align: center;
}

.ns-form__privacy a {
	color: var(--fh-navy);
	text-decoration: underline;
}

.ns-form__missing {
	line-height: 1.7;
	text-align: center;
}

/* 残り必須項目 */

.ns-form__rest {
	position: fixed;
	right: 115.2px;
	bottom: 30px;
	z-index: 100;
	padding: 10px 50px;
	background: rgba(255, 255, 255, 0.8);
	border: 2px solid var(--fh-navy);
	color: var(--fh-navy);
	font-size: 18px;
	font-weight: 700;
	line-height: 28.8px;
	text-align: center;
}

.ns-form__restnum {
	display: block;
	font-family: "Helvetica Neue", Helvetica, "Hiragino Sans", sans-serif;
	font-size: 45px;
	font-weight: 700;
	line-height: 72px;
}

.ns-form__rest strong {
	font-size: inherit;
	font-weight: inherit;
}

.ns-form__restslash {
	font-size: 30px;
	line-height: 48px;
}

.ns-form__restden {
	font-size: 20px;
	line-height: 32px;
}

.ns-form__notes {
	margin-top: 10px;
}

/* 送信ボタン */

.ns-form .wpcf7-submit {
	display: block;
	width: min(942px, 100%);
	/* 旧 .btn_wrap の外側余白 24px と中の input の 30px を足したもの */
	margin: 54px auto 0;
	padding: 4px 10px;
	background: #6dc4bc;
	border: 1px solid #6dc4bc;
	border-radius: 5px;
	box-shadow: 0 4px 0 #3d9f95;
	color: #ffffff;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 2.6px;
	line-height: 60px;
	text-align: center;
}

.ns-form .wpcf7-spinner {
	display: block;
	margin-inline: auto;
}

.ns-form .wpcf7-not-valid-tip {
	margin-top: 4px;
	color: #e03a3a;
	font-size: 13px;
	line-height: 1.7;
}

.ns-form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 12px;
	font-size: 14px;
	line-height: 1.7;
}

/* 入力の点検で出す注意(項目の下・ボタンの上) */

.ns-form__tip {
	display: block;
	margin-top: 4px;
	color: #e03a3a;
	font-size: 13px;
	line-height: 1.7;
}

.ns-form__alert {
	margin: 24px 0 0;
	color: #e03a3a;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.7;
	text-align: center;
}

/* 確認画面と完了。入力の行・注意書き・送信ボタン・残り必須項目は隠す */

.ns-form.is-confirm .wpcf7-form > .ns-form__row,
.ns-form.is-confirm .ns-form__notes,
.ns-form.is-confirm .wpcf7-submit,
.ns-form.is-confirm .wpcf7-spinner,
.ns-form.is-confirm .ns-form__rest,
.ns-form.is-done .wpcf7-form > .ns-form__row,
.ns-form.is-done .ns-form__notes,
.ns-form.is-done .wpcf7-submit,
.ns-form.is-done .wpcf7-spinner,
.ns-form.is-done .wpcf7-response-output,
.ns-form.is-done .ns-form__rest {
	display: none;
}

.ns-form__step1:focus {
	outline: 0;
}

.ns-form__confirmval {
	overflow-wrap: anywhere;
	white-space: pre-wrap;
}

.ns-form__confirmval--empty {
	color: #999999;
}

.ns-form__confirmbtns {
	display: flex;
	gap: 24px;
	width: min(942px, 100%);
	margin: 54px auto 0;
}

.ns-form__btn {
	display: block;
	padding: 4px 10px;
	border-radius: 5px;
	font-weight: 700;
	line-height: 60px;
	text-align: center;
	cursor: pointer;
}

.ns-form__btn--send {
	flex: 1 1 auto;
	background: #6dc4bc;
	border: 1px solid #6dc4bc;
	box-shadow: 0 4px 0 #3d9f95;
	color: #ffffff;
	font-size: 26px;
	letter-spacing: 2.6px;
}

.ns-form__btn--back {
	flex: 0 0 260px;
	background: #ffffff;
	border: 1px solid #b7b7b7;
	box-shadow: 0 4px 0 #d6d6d6;
	color: #555555;
	font-size: 20px;
	letter-spacing: 2px;
}

.ns-form__btn[disabled] {
	cursor: default;
}

.ns-form__btn--back[disabled] {
	opacity: 0.5;
}

/* 送信中の印(ボタンの中) */
.ns-form__spin {
	display: inline-block;
	width: 22px;
	height: 22px;
	margin-right: 14px;
	border: 3px solid rgba(255, 255, 255, 0.45);
	border-top-color: #ffffff;
	border-radius: 50%;
	vertical-align: -3px;
	animation: ns-form-spin 0.8s linear infinite;
}

.ns-form__spin[hidden] {
	display: none;
}

@keyframes ns-form-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ns-form__spin {
		animation: none;
	}
}

.ns-form__done {
	padding: 30px 0 14px;
	text-align: center;
}

.ns-form__donetxt {
	font-size: 17px;
	line-height: 1.9;
}

.ns-form__doneback {
	margin-top: 36px;
}

.ns-form__doneback .ns-form__btn--back {
	display: inline-block;
	min-width: 260px;
	text-decoration: none;
}

/* ------------------------------------------------------------------
 * SP(767px 以下)
 * ------------------------------------------------------------------ */

@media (max-width: 767px) {

	.ns-formhead__inner {
		width: 96%;
		padding: 10px 0;
	}

	/* 旧のフォーム 3 ページは SP だけ字送り 0.5px(PC は 0.8px) */
	body.ns-formpage {
		letter-spacing: 0.5px;
	}

	.ns-form__field .wpcf7-list-item {
		margin-right: 20px;
	}

	.ns-formhead__logo img {
		width: 190px;
	}

	.ns-formhead__close {
		padding: 8px 12px;
		font-size: 12px;
	}

	.ns-form__inner {
		width: min(1150px, 100% - 24px);
	}

	.ns-form__ttl {
		margin-bottom: 20px;
		font-size: 30px;
		letter-spacing: 1.5px;
		line-height: 42px;
	}

	.ns-form--consultation .ns-form__ttl,
	.ns-form--club .ns-form__ttl {
		font-size: 32px;
		letter-spacing: 1.6px;
		line-height: 44.8px;
	}

	.ns-form--consultation .ns-form__ttl {
		margin: 10px 0 15px;
	}

	.ns-form--club .ns-form__ttl {
		margin: 0;
	}

	/* 事前相談・無料会員登録は SP でもパンくずの下が 40px。無料会員登録は上にも 20px(旧 .inner の padding-top) */
	.ns-form--consultation .ns-form__crumb {
		padding: 13px 0 43px;
	}

	.ns-form--club .ns-form__crumb {
		padding: 33px 0 43px;
	}

	.ns-form__step1 {
		margin-bottom: 12px;
		font-size: 14px;
	}

	.ns-form__step1 > span:first-child {
		display: flex;
		align-items: center;
		margin-right: 0;
		font-size: 14px;
	}

	/* 旧 .wrap_form は SP で 12px 15px */
	.ns-form__panel {
		padding: 12px 15px;
	}

	.ns-form__inner {
		width: min(1142px, 96%);
	}

	.ns-form__lead {
		width: 100%;
		margin-bottom: 7px;
		padding: 8px;
		border-width: 2px;
		font-size: 15px;
		letter-spacing: 0;
		line-height: 15px;
	}

	.ns-form {
		padding-bottom: 20px;
	}

	.ns-form__crumb {
		padding: 13px 0;
	}

	.ns-form__hero {
		margin-bottom: 10px;
	}

	/* 旧サイトの「かんたん入力30秒」は SP では 97.5px に縮めた背景画像 */
	.ns-form__steps {
		padding: 10px 7.8px 7.6px 93.6px;
		background-size: 97.5px auto;
	}

	.ns-form__steps img {
		width: 100%;
	}

	/* 旧は SP でも下端の固定バーぶんの余白を持つ */
	.ns-formfoot {
		padding-bottom: 56px;
	}

	/* 旧サイトは SP で画面下端に固定される */
	.ns-form__rest {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 12px;
		right: 0;
		bottom: 0;
		left: 0;
		padding: 5px 0 10px;
		background: rgba(255, 255, 255, 0.95);
		border-bottom: 0;
		border-radius: 20px 20px 0 0;
	}

	.ns-form__rest {
		gap: 0;
	}

	.ns-form__restnum {
		display: inline-block;
		margin-left: 20px;
		font-size: 25px;
		line-height: 40px;
	}

	.ns-form__restslash,
	.ns-form__restden {
		font-size: 16px;
		line-height: 25.6px;
	}

	.ns-form__row {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.ns-form__label {
		flex: 0 0 auto;
		justify-content: flex-start;
		padding: 20px 50px 0 0;
		border-bottom: 0;
	}

	.ns-form__badge {
		top: 22px;
	}

	.ns-form__field {
		padding: 8px 0 20px;
		border-left: 0;
	}

	/* 旧 SP の郵便番号は入力 184.9(54%)とボタン 150.7(44%)が 1 行。ボタンは padding 5px 0 で 33px */
	.ns-form__zip input[type="text"] {
		width: 54%;
	}

	.ns-form__zipbtn {
		width: 44%;
		margin: 2px 0 2px 6px;
		padding: 5px 0;
	}

	.ns-form .wpcf7-submit {
		margin: 44px 0 20px;
		padding: 12px 0;
	}
}

@media (max-width: 767px) {

	/* 段階の表示。旧の図(566×148 を幅いっぱいに縮めたもの)に合わせ、3 等分に置く */
	.ns-form__steps .ns-form__stepnav {
		grid-template-columns: repeat(3, 1fr);
		padding: 0;
		background-position: 50% 17.5px;
		background-size: 66.667% 3px;
	}

	.ns-form__stepitem {
		font-size: 11px;
		letter-spacing: 0.3px;
		line-height: 14px;
	}

	.ns-form__stepnum {
		width: 29px;
		height: 29px;
		margin: 4.5px 0;
		font-size: 15px;
	}

	.ns-form__steplabel {
		margin-top: 4px;
		text-align: center;
	}

	.ns-form__stepbr {
		display: block;
	}

	.ns-form__stepitem.is-current {
		font-size: 13px;
	}

	.ns-form__stepitem.is-current .ns-form__stepnum {
		width: 38px;
		height: 38px;
		margin: 0;
		font-size: 18px;
	}

	.ns-form__confirmbtns {
		flex-direction: column-reverse;
		gap: 16px;
		margin: 36px 0 20px;
	}

	.ns-form__btn--send {
		padding: 12px 0;
		font-size: 22px;
		letter-spacing: 2px;
		line-height: 44px;
	}

	.ns-form__btn--back {
		flex: 0 0 auto;
		padding: 6px 0;
		font-size: 17px;
		line-height: 40px;
	}

	.ns-form__done {
		padding: 20px 0 10px;
	}

	.ns-form__donetxt {
		font-size: 16px;
	}

	.ns-form__doneback .ns-form__btn--back {
		display: block;
		min-width: 0;
	}
}

/* ------------------------------------------------------------------
 * 個人情報保護指針(フォームから小窓で開く)
 * 旧の実測: 本文 15px/24px・字送り 0.75px(SP 0.5px)・色 #223851。見出し 24px/33.6 の上下 30px。
 * 導入文は 15px/26.25 の上下 15px。小見出しは 23px/32.2 の上 30px 下 10px。
 * 導入文と本文の箱は 1200px(コンテナより 57.6px 広い。旧の右余白が負の値)。
 * ------------------------------------------------------------------ */

.ns-privacy {
	color: #223851;
	font-size: 15px;
	letter-spacing: 0.75px;
	line-height: 24px;
}

.ns-privacy__h {
	margin: 30px 0;
	color: #223851;
	font-family: var(--fh-sans);
	font-size: 24px;
	font-weight: 700;
	line-height: 33.6px;
	text-align: center;
}

.ns-privacy__lead {
	width: calc(100% + 57.6px);
	padding: 15px 0;
	line-height: 26.25px;
	text-align: center;
}

.ns-privacy__body {
	width: calc(100% + 57.6px);
}

.ns-privacy__ttl {
	margin: 30px 0 10px;
	color: #223851;
	font-family: var(--fh-sans);
	font-size: 23px;
	font-weight: 700;
	line-height: 32.2px;
	text-align: left;
}

.ns-privacy__txt {
	line-height: 26.25px;
}

/* 旧は本文のあとに改行 5 行ぶん(24px × 5)でお問合せ先を置く */
.ns-privacy__contact {
	padding-bottom: 24px;
}

@media (max-width: 767px) {
	.ns-privacy {
		letter-spacing: 0.5px;
	}

	.ns-privacy__lead,
	.ns-privacy__body {
		width: auto;
		margin: 0 22.47px;
	}

	.ns-formpage--privacypolicy .ns-formhead__logo img {
		width: 168px;
	}

	/* 旧の指針ページの SP フッターには固定バーぶんの余白がなく、文字も 10px */
	.ns-formpage--privacypolicy .ns-formfoot {
		padding-bottom: 0;
	}

	.ns-formpage--privacypolicy .ns-formfoot__copy {
		font-size: 10px;
	}
}

/* 無料会員特典の表(/club/ のみ) */

.ns-form__hero--sub {
	margin-bottom: 25px;
}

/* 旧 .free-benefits の実測: 箱は薄いベージュに 3px の枠、見出し 34px、
   li は flex で「プラン名(15%・色地) / 割引額(30%・2 列の grid) / 内訳」。SP は各部品を 1 列に積む */
.ns-form__benefits {
	margin: 30px 0;
	padding: 20px 30px;
	background: #fef9f6;
	border: 3px solid #f9ede5;
}

.ns-form__benefitsttl {
	margin-bottom: 20px;
	color: var(--fh-navy);
	font-family: var(--fh-sans);
	font-size: 34px;
	font-weight: 700;
	letter-spacing: 1.7px;
	line-height: 47.6px;
	text-align: center;
}

.ns-form__benefits .ns-form__benefitslist {
	padding: 0;
	list-style: none;
}

.ns-form__benefit {
	display: flex;
	align-items: center;
	background: #ffffff;
	border: 1px solid #cfcfcf;
	color: #222222;
	font-size: 20px;
	line-height: 32px;
}

.ns-form__benefitplan {
	flex: 0 0 15%;
	padding: 20px 0;
	background: var(--ns-plan);
	color: #ffffff;
	font-weight: 700;
	text-align: center;
}

.ns-form__benefitoff {
	display: grid;
	flex: 0 0 30%;
	grid-template-columns: 69.2% 30.8%;
	color: #dd0000;
	font-size: 20px;
	font-weight: 700;
	line-height: 32px;
	text-align: right;
}

.ns-form__benefitp1 {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
}

.ns-form__benefitp2 {
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	font-size: 16px;
	font-weight: 400;
	line-height: 25.6px;
}

.ns-form__benefitp3 {
	display: flex;
	grid-row: 1 / 3;
	grid-column: 2;
	align-items: center;
	justify-content: flex-end;
	font-size: 30px;
	line-height: 48px;
}

.ns-form__benefitdetail {
	display: flex;
	align-items: center;
	column-gap: 10px;
}

.ns-form__benefitmini {
	font-size: 14px;
	line-height: 22.4px;
}

.ns-form__benefitd1 {
	font-size: 16px;
	line-height: 28px;
}

.ns-form__benefitd2 {
	font-size: 18px;
	font-weight: 700;
	line-height: 31.5px;
}

.ns-form__benefitsub {
	display: block;
	font-size: 14px;
	font-weight: 400;
	line-height: 14px;
	text-align: right;
}

.ns-form__benefitsfoot {
	margin-top: 5px;
	font-size: 12px;
	letter-spacing: normal;
	line-height: 21px;
}

@media (max-width: 767px) {

	.ns-form__benefits {
		padding: 10px;
	}

	.ns-form__benefitsttl {
		margin-bottom: 10px;
		font-size: 20px;
		letter-spacing: 1px;
		line-height: 28px;
	}

	.ns-form__benefit {
		flex-wrap: wrap;
		margin-bottom: 20px;
		font-size: 18px;
		line-height: 28.8px;
	}

	.ns-form__benefitplan {
		flex: 0 0 100%;
		padding: 5px 0;
	}

	.ns-form__benefitoff {
		flex: 0 0 100%;
		grid-template-columns: 67.5% 32.5%;
		text-align: center;
	}

	.ns-form__benefitp1,
	.ns-form__benefitp3 {
		justify-content: center;
	}

	.ns-form__benefitp2 {
		justify-content: flex-end;
		text-align: right;
	}

	.ns-form__benefitdetail {
		flex: 0 0 100%;
		flex-wrap: wrap;
		justify-content: center;
		font-size: 13px;
		line-height: 20.8px;
	}

	.ns-form__benefitmini {
		font-size: 12px;
		line-height: 19.2px;
	}
}

/* 事前相談・無料会員登録の旧フッターは position: absolute。PC は本文の下の空きが 12px 広く、SP は本文の下端 44px に重なる */
.ns-formpage--consultation .ns-form,
.ns-formpage--club .ns-form {
	padding-bottom: 42px;
}

@media (max-width: 767px) {
	.ns-formpage--consultation .ns-form,
	.ns-formpage--club .ns-form {
		padding-bottom: 0;
	}

	.ns-formpage--consultation .ns-formfoot,
	.ns-formpage--club .ns-formfoot {
		position: relative;
		margin-top: -24px;
	}
}
