@charset "UTF-8";

/* ========================================
   FNJ フォームページ共通
   /mitsumori/
   /toiawase/
======================================== */

.fnjFormPage {
	padding: 70px 30px 100px;
	background: #fff;
	color: #111;
}

.fnjFormPage *,
.fnjFormPage *::before,
.fnjFormPage *::after {
	box-sizing: border-box;
}


/* ========================================
   2カラム
======================================== */

.fnjFormPage__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(540px, 1.05fr);
	gap: 70px;
	max-width: 1320px;
	margin: 0 auto;
	align-items: start;
}


/* ========================================
   左カラム
======================================== */

.fnjFormPage__lead {
	padding: 34px 0 0;
}

.fnjFormPage__title {
	margin: 0 0 24px;
	color: #111;
	font-size: clamp(32px, 2.7vw, 46px);
	font-weight: 700;
	line-height: 1.38;
	letter-spacing: 0.01em;
}

.fnjFormPage__text {
	margin: 0;
	color: #333;
	font-size: 16px;
	line-height: 2;
}


/* ========================================
   左カラム ビジュアル
======================================== */

.fnjFormPage__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 25px 0 20px;
	min-height: 320px;
}

.fnjFormPage__visual img {
	display: block;
	width: 100%;
	max-width: 540px;
	height: auto;
	object-fit: contain;
}


/* ========================================
   左カラム ご相談例
======================================== */

.fnjFormPage__recommend {
	margin-top: 6px;
}

.fnjFormPage__recommendTitle {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 20px;
	padding-bottom: 13px;
	border-bottom: 1px solid #d6d6d6;
	color: #111;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
}

.fnjFormPage__recommendIcon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	border-radius: 50%;
	background: #111;
	color: #fff;
	font-size: 0;
}

.fnjFormPage__recommendIcon::before {
	content: "";
	width: 13px;
	height: 13px;
	border: 2px solid #fff;
	border-radius: 50%;
}

.fnjFormPage__recommendList {
	display: grid;
	gap: 13px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fnjFormPage__recommendList li {
	position: relative;
	margin: 0;
	padding-left: 30px;
	color: #222;
	font-size: 16px;
	line-height: 1.7;
}

.fnjFormPage__recommendList li::before {
	content: "✓";
	position: absolute;
	top: 3px;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: #4fad7c;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}


/* ========================================
   右カラム
======================================== */

.fnjFormPage__form {
	position: relative;
}

.fnjForm {
	padding: 38px 42px 40px;
	border: 1px solid #e3e3e3;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 10px 32px rgba(0, 0, 0, 0.05);
}

.fnjForm__heading {
	margin-bottom: 28px;
}

.fnjForm__heading h2 {
	margin: 0 0 8px;
	color: #111;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.45;
}

.fnjForm__heading p {
	margin: 0;
	color: #555;
	font-size: 14px;
	line-height: 1.8;
}


/* ========================================
   Zoho Form
======================================== */

.fnjForm #crmWebToEntityForm {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
	color: #111;
	text-align: left;
}

.fnjForm__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.fnjForm__field {
	margin-bottom: 21px;
}

.fnjForm__field label,
.fnjForm__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	color: #111;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}


/* ========================================
   必須・任意
======================================== */

.fnjForm__required,
.fnjForm__optional {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	height: 20px;
	padding: 0 5px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

.fnjForm__required {
	background: #111;
	color: #fff;
}

.fnjForm__optional {
	background: #eee;
	color: #555;
}


/* ========================================
   Input
======================================== */

.fnjForm input[type="text"],
.fnjForm input[type="email"],
.fnjForm input[type="url"],
.fnjForm input[type="tel"],
.fnjForm select,
.fnjForm textarea {
	display: block;
	width: 100%;
	margin: 0;
	border: 1px solid #d4d4d4;
	border-radius: 5px;
	background: #fff;
	color: #111;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	outline: none;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.fnjForm input[type="text"],
.fnjForm input[type="email"],
.fnjForm input[type="url"],
.fnjForm input[type="tel"],
.fnjForm select {
	height: 50px;
	padding: 0 15px;
}

.fnjForm textarea {
	min-height: 125px;
	padding: 13px 15px;
	resize: vertical;
}

.fnjForm input::placeholder,
.fnjForm textarea::placeholder {
	color: #aaa;
	opacity: 1;
}

.fnjForm input:focus,
.fnjForm select:focus,
.fnjForm textarea:focus {
	border-color: #555;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
}


/* ========================================
   ご相談内容チェックボックス
======================================== */

.fnjForm__services {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 24px;
	margin-top: 3px;
}

.fnjForm__service {
	display: flex !important;
	align-items: flex-start !important;
	gap: 9px !important;
	margin: 0 !important;
	padding: 0;
	color: #333 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
	cursor: pointer;
}

.fnjForm__service input[type="checkbox"] {
	width: 17px;
	height: 17px;
	margin: 2px 0 0;
	flex: 0 0 17px;
	accent-color: #111;
	cursor: pointer;
}

.fnjForm__service span {
	display: block;
}


/* Zohoへの送信用。画面には表示しない */

.fnjForm__zohoMulti {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}


/* ========================================
   Privacy
======================================== */

.fnjForm__privacy {
	margin: 5px 0 20px;
}

.fnjForm__privacy > label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	color: #333;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	cursor: pointer;
}

.fnjForm__privacy input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	flex: 0 0 18px;
	accent-color: #111;
}

.fnjForm__privacy a {
	color: #222;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fnjForm__privacy a:hover {
	text-decoration: none;
}


/* ========================================
   Error
======================================== */

.fnjForm__error {
	margin-top: 8px;
	color: #b42318;
	font-size: 13px;
	line-height: 1.6;
}


/* ========================================
   reCAPTCHA
======================================== */

.fnjForm__recaptcha {
	margin: 0 0 22px;
}

.fnjForm__recaptcha .g-recaptcha {
	transform-origin: top left;
}


/* ========================================
   Submit
======================================== */

.fnjForm__submit {
	margin-top: 10px;
}

.fnjForm__button {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	min-height: 58px;
	padding: 12px 55px;
	border: 1px solid #111;
	border-radius: 4px;
	background: #111;
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	transition:
		background 0.2s ease,
		color 0.2s ease,
		opacity 0.2s ease;
}

.fnjForm__button:hover {
	background: #333;
}

.fnjForm__button.is-disabled,
.fnjForm__button:disabled {
	opacity: 0.55;
	cursor: default;
}

.fnjForm__arrow {
	position: absolute;
	top: 50%;
	right: 23px;
	font-size: 23px;
	font-weight: 400;
	line-height: 1;
	transform: translateY(-52%);
}


/* ========================================
   Tablet
======================================== */

@media screen and (max-width: 1100px) {

	.fnjFormPage__inner {
		grid-template-columns:
			minmax(0, 0.9fr)
			minmax(480px, 1.1fr);
		gap: 40px;
	}

	.fnjForm {
		padding: 32px;
	}

	.fnjFormPage__visual {
		min-height: 280px;
	}

}


/* ========================================
   Mobile
======================================== */

@media screen and (max-width: 900px) {

	/*
	 * 固定ヘッダーとの重なりを回避。
	 * 入力画面・サンクス画面共通。
	 */
	body:has(.fnjFormPage) .page-container,
	body:has(.fnjFormThanks) .page-container {
		padding-top: 70px;
	}

	.fnjFormPage {
		padding: 40px 20px 70px;
	}

	.fnjFormPage__inner {
		display: block;
		max-width: 680px;
		margin: 0 auto;
	}

	.fnjFormPage__lead {
		padding-top: 0;
	}

	.fnjFormPage__title {
		font-size: 32px;
		line-height: 1.45;
	}

	.fnjFormPage__text {
		font-size: 15px;
		line-height: 1.9;
	}

	.fnjFormPage__visual {
		margin: 18px auto 10px;
		min-height: 0;
	}

	.fnjFormPage__visual img {
		max-width: 480px;
	}

	.fnjFormPage__recommend {
		margin: 10px 0 45px;
	}

	.fnjForm {
		padding: 28px 24px 30px;
	}

	.fnjForm__heading h2 {
		font-size: 24px;
	}

}


/* ========================================
   Small Mobile
======================================== */

@media screen and (max-width: 600px) {

	body:has(.fnjFormPage) .page-container,
	body:has(.fnjFormThanks) .page-container {
		padding-top: 68px;
	}

	.fnjFormPage {
		padding-right: 15px;
		padding-left: 15px;
	}

	.fnjFormPage__title {
		font-size: 23px;
		line-height: 1.5;
		letter-spacing: 0;
	}

	.fnjFormPage__title br {
		display: none;
	}

	.fnjFormPage__visual img {
		max-width: 390px;
	}

	.fnjFormPage__recommendTitle {
		font-size: 20px;
	}

	.fnjFormPage__recommendList li {
		font-size: 15px;
	}

	.fnjForm {
		padding: 24px 18px 26px;
		border-radius: 8px;
	}

	.fnjForm__row {
		display: block;
	}

	.fnjForm__services {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.fnjForm__field {
		margin-bottom: 18px;
	}

	.fnjForm input[type="text"],
	.fnjForm input[type="email"],
	.fnjForm input[type="url"],
	.fnjForm input[type="tel"],
	.fnjForm select {
		height: 48px;
		font-size: 16px;
	}

	.fnjForm textarea {
		font-size: 16px;
	}

	.fnjForm__recaptcha {
		overflow: hidden;
	}

	.fnjForm__recaptcha .g-recaptcha {
		transform: scale(0.90);
		transform-origin: top left;
		margin-bottom: -8px;
	}

}


/* ========================================
   パンくず下
   入力フォーム上部余白
======================================== */

body:has(.fnjFormPage) .fnjFormPage {
	padding-top: 0;
}


/* ========================================
   サンクスページ共通
   /mitsumori/thanks/
   /toiawase/thanks/
======================================== */

/*
 * パンくずではサンクスページ名を表示せず、
 * 「ホーム > お見積り・ご相談」
 * 「ホーム > お問い合わせ」
 * までとする。
 */
body:has(.fnjFormThanks)
.Breadcrumb
.aioseo-breadcrumbs > .aioseo-breadcrumb:last-child {
	display: none;
}

body:has(.fnjFormThanks)
.Breadcrumb
.aioseo-breadcrumbs > .aioseo-breadcrumb-separator:nth-last-child(2) {
	display: none;
}


/* ========================================
   サンクスページ本体
======================================== */

.fnjFormThanks {
	padding: 60px 20px 90px;
	background: #fff;
}

.fnjFormThanks *,
.fnjFormThanks *::before,
.fnjFormThanks *::after {
	box-sizing: border-box;
}

.fnjFormThanks__inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 58px 70px 52px;
	background: #fff;
	border: 1px solid #dedede;
	border-radius: 4px;
	box-sizing: border-box;
	text-align: center;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.045);
}

.fnjFormThanks__eyebrow {
	margin: 0 0 12px;
	color: #444;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.22em;
	line-height: 1;
}

.fnjFormThanks__mark {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0 auto 24px;
}

.fnjFormThanks__mark::before,
.fnjFormThanks__mark::after {
	content: "";
	display: block;
	width: 24px;
	height: 1px;
	background: #777;
}

.fnjFormThanks__mark span {
	color: #222;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
}

.fnjFormThanks__title {
	margin: 0 0 26px;
	color: #1f1f1f;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.fnjFormThanks__lead {
	margin: 0;
	color: #333;
	font-size: 16px;
	line-height: 2;
}


/* ========================================
   サンクスページ
   受付確認メール
======================================== */

.fnjFormThanks__notice {
	margin-top: 36px;
	padding: 25px 30px;
	background: #f7f7f7;
	border: 1px solid #eee;
	border-radius: 2px;
	box-sizing: border-box;
	text-align: left;
}

.fnjFormThanks__notice h3 {
	position: relative;
	margin: 0 0 14px;
	padding-left: 16px;
	color: #222;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.6;
}

.fnjFormThanks__notice h3::before {
	position: absolute;
	top: 0.35em;
	bottom: 0.35em;
	left: 0;
	width: 1px;
	background: #777;
	content: "";
}

.fnjFormThanks__notice ul {
	margin: 0;
	padding-left: 1.5em;
}

.fnjFormThanks__notice li {
	margin: 0 0 7px;
	color: #444;
	font-size: 14px;
	line-height: 1.8;
}

.fnjFormThanks__notice li:last-child {
	margin-bottom: 0;
}


/* ========================================
   サンクスページ
   担当者からの連絡
======================================== */

.fnjFormThanks__support {
	margin-top: 36px;
	padding-top: 34px;
	border-top: 1px solid #cfcfcf;
}

.fnjFormThanks__support h3 {
	margin: 0 0 17px;
	color: #222;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.7;
}

.fnjFormThanks__support p {
	margin: 0;
	color: #444;
	font-size: 14px;
	line-height: 2;
}

.fnjFormThanks__hours {
	margin-top: 12px !important;
	font-weight: 600;
}


/* ========================================
   サンクスページ
   ボタン
======================================== */

.fnjFormThanks__button {
	margin-top: 26px !important;
}

.fnjFormThanks__button a {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 360px;
	max-width: 100%;
	min-height: 54px;
	padding: 12px 54px 12px 30px;
	background: #1f1f1f;
	border: 1px solid #1f1f1f;
	border-radius: 2px;
	box-sizing: border-box;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none !important;
	transition: all 0.25s ease;
}

.fnjFormThanks__button a::after {
	position: absolute;
	right: 24px;
	content: "→";
	font-size: 19px;
	font-weight: 400;
	line-height: 1;
}

.fnjFormThanks__back {
	margin: 26px 0 0;
}

.fnjFormThanks__back a {
	color: #444 !important;
	font-size: 13px;
	text-decoration: none !important;
	transition: opacity 0.25s ease;
}

.fnjFormThanks__back a::before {
	margin-right: 8px;
	content: "⌃";
	font-size: 13px;
}

@media (hover: hover) {

	.fnjFormThanks__button a:hover {
		background: #fff;
		color: #1f1f1f !important;
	}

	.fnjFormThanks__back a:hover {
		opacity: 0.6;
	}

}


/* ========================================
   サンクスページ
   Tablet / Mobile
======================================== */

@media screen and (max-width: 767px) {

	/*
	 * パンくずとの間を狭くする。
	 * 従来の40pxではなく14px。
	 */
	.fnjFormThanks {
		padding: 14px 20px 65px;
	}

	.fnjFormThanks__inner {
		padding: 45px 35px 42px;
	}

	.fnjFormThanks__title {
		font-size: 28px;
	}

	.fnjFormThanks__lead {
		font-size: 15px;
	}

	.fnjFormThanks__support h3 {
		font-size: 19px;
	}

}


/* ========================================
   サンクスページ
   Small Mobile
======================================== */

@media screen and (max-width: 480px) {

	/*
	 * 添付画像で空いていた
	 * パンくず～カード間の余白を10pxに縮小。
	 */
	.fnjFormThanks {
		padding: 10px 15px 50px;
	}

	.fnjFormThanks__inner {
		padding: 36px 20px 34px;
	}

	.fnjFormThanks__eyebrow {
		font-size: 11px;
	}

	.fnjFormThanks__mark {
		margin-bottom: 20px;
	}

	.fnjFormThanks__title {
		margin-bottom: 20px;
		font-size: 23px;
		line-height: 1.55;
		letter-spacing: 0.02em;
	}

	.fnjFormThanks__lead {
		font-size: 14px;
		line-height: 1.9;
	}

	.fnjFormThanks__notice {
		margin-top: 28px;
		padding: 20px 18px;
	}

	.fnjFormThanks__notice h3 {
		font-size: 16px;
	}

	.fnjFormThanks__notice li {
		font-size: 13px;
	}

	.fnjFormThanks__support {
		margin-top: 30px;
		padding-top: 28px;
	}

	.fnjFormThanks__support h3 {
		font-size: 17px;
	}

	.fnjFormThanks__support p {
		font-size: 13px;
	}

	.fnjFormThanks__button a {
		width: 100%;
		min-height: 52px;
		padding-left: 20px;
		padding-right: 48px;
		font-size: 14px;
	}

	.fnjFormThanks__button a::after {
		right: 18px;
	}

}