@charset "shift_jis";

/* RESET
--------------------------------------------------*/
html {
	width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #fff;
	box-sizing: border-box;
}
html * {
	margin: 0;
	padding: 0;
}
address, caption, cite, code, dfn, em, strong, th, var {
	font-style: normal;
	font-weight: normal;
}
li {
	list-style: none;
}
caption, th {
	text-align: left;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
}
sup {
	vertical-align: text-top;
}
sub {
	vertical-align: text-bottom;
}
form, input, textarea {
	margin: 0;
	padding: 0;
}
input, textarea, select {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	*font-size: 100%;
}
p {
	margin: 0;
}
img {
	vertical-align: bottom;
	width: 100%;
}
/* ========================================
   ヘッダー
   ======================================== */
header {
	max-width: 750px;
	width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
	background: #fff;
	padding: 1.5rem 2rem 1.5rem;
}
header h1 {
	width: min(70.533333333vw, 529px);
	line-height: 0;
}

/* ============================================
   無料相談予約フォーム（.freeCall）
   750pxベース／vw・%方式
   換算：px ÷ 7.5 = vw（min()で750px以上は固定）
============================================ */
body {
	background: #fff;
	min-height: 100vh;
}
.freeCall {
	background: #f7f6f9;
	color: #333;
	font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴシック", "Hiragino Sans", Meiryo, sans-serif;
	font-weight: 300; /* ヒラギノW3相当 */
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
	padding: min(13.3333vw, 100px) 0;
}
.freeCall *,
.freeCall *::before,
.freeCall *::after {
	box-sizing: border-box;
}

/* ----- レイアウト ----- */
.freeCall .container {
	width: 100%;
	max-width: 750px;
	margin: 0 auto;
}
.freeCall #formWrapper {
	width: 89.333%; /* 670px / 750px */
	max-width: 670px;
	margin: 0 auto;
	padding-bottom: min(10.667vw, 80px);
}

/* ----- タイトル周り ----- */
.freeCall .pageTitle {
	/*font-family: "a1-gothic", "A1ゴシック B", "FOT-A1ゴシック Std B", "ヒラギノ角ゴ ProN", sans-serif;
	font-weight: 700;
	font-size: min(9.6vw, 72px);
	color: #0846bd;
	text-align: center;
	line-height: 1.2;*/
	width: min(48.5333333vw, 364px);
	margin: 0 auto min(13.3333vw, 100px);
}

.freeCall .lead {
	font-size: min(3.467vw, 26px);
	line-height: 1.7;
	letter-spacing: 0.01em;
	margin-bottom: min(2.667vw, 20px);
}
.freeCall .leadNote,
.freeCall .leadNote small {
	font-size: min(2.933vw, 22px);
	letter-spacing: 0.01em;
}
.freeCall .leadNote {
	margin-bottom: min(6.667vw, 50px);
}

/* ----- フォームリスト ----- */
.freeCall .formList > li {
	padding: min(5.333333vw, 40px) 0 min(4vw, 30px);
	border-bottom: 1px solid #c6c5c7; /* 各設問下のボーダー */
}

/* 設問ラベル */
.freeCall .formItem > label {
	display: inline-block;
	font-size: min(3.467vw, 26px);
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: 0.01em;
	vertical-align: middle;
}

/* ラベル下の注釈テキスト */
.freeCall .formItem > p {
	font-size: min(2.933vw, 22px);
	margin-top: min(1.6vw, 12px);
}

/* 必須・任意アイコン */
.freeCall .icon{
	display: inline-block;
	font-size: min(2.133vw, 16px);
	font-weight: 600;
	color: #fff;
	line-height: 1;
	padding: min(0.8vw, 6px) min(2vw, 15px) min(0.666666vw, 5px);
	border-radius: 5px;
	vertical-align: middle;
	margin: 0 0 min(0.8vw, 6px) min(1.6vw, 12px);
}
.freeCall .icon {
	background: #0846bd;
}

/* ----- 入力欄 ----- */
.freeCall .formItem input[type="text"],
.freeCall .formItem input[type="tel"],
.freeCall .formItem input[type="email"],
.freeCall .formItem select,
.freeCall .formItem textarea {
	display: block;
	width: 100%;
	font-size: min(3.2vw, 24px);
	color: #333;
	background: #fff;
	border: 1px solid #c6c5c7;
	padding: min(2.4vw, 18px) min(2.667vw, 20px);
	margin-top: min(2vw, 15px);
}
/* ----- プルダウン（Safari対策：標準デザイン無効化） ----- */
.freeCall .formItem select {
	-webkit-appearance: none;
	appearance: none;
	border-radius: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230846bd' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right min(2.667vw, 20px) center;
	background-size: min(1.867vw, 14px) auto;
	padding-right: min(8vw, 60px); /* 矢印と文字が重ならないように */
}
.freeCall .formItem textarea {
	min-height: min(21.333vw, 160px);
	resize: vertical;
}
.freeCall .formItem select {
	cursor: pointer;
}
.freeCall .formItem input:focus,
.freeCall .formItem select:focus,
.freeCall .formItem textarea:focus {
	outline: none;
	border-color: #0846bd;
}
.freeCall .formItem ::placeholder {
	color: #aaa;
}

/* ----- チェックボックス（ご相談内容） ----- */
.freeCall .checkGroup{
	margin-top: min(2.6666666vw, 20px);
}
.freeCall .checkGroup li {
	margin-bottom: min(2.133vw, 16px);
}
.freeCall .checkGroup label {
	display: inline-block;
	font-size: min(3.2vw, 24px);
	font-weight: 300;
	cursor: pointer;
}

/* チェックボックス共通（カスタム描画：チェック時 青背景×白チェック） */
.freeCall .checkGroup input[type="checkbox"],
.freeCall .agreementCheck input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	width: min(3.733vw, 28px);
	height: min(3.733vw, 28px);
	background: #fff;
	border: 2px solid #c6c5c7;
	border-radius: 3px;
	vertical-align: max(-0.667vw, -5px);
	margin-right: min(1.333vw, 10px);
	position: relative;
	cursor: pointer;
}
.freeCall .checkGroup input[type="checkbox"]:checked,
.freeCall .agreementCheck input[type="checkbox"]:checked {
	background: #0846bd;
	border-color: #0846bd;
}
.freeCall .checkGroup input[type="checkbox"]:checked::after,
.freeCall .agreementCheck input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 45%;
	width: 30%;
	height: 55%;
	border-right: min(0.533vw, 4px) solid #fff;
	border-bottom: min(0.533vw, 4px) solid #fff;
	transform: translate(-50%, -55%) rotate(45deg);
}

/* ----- 同意チェック部分 ----- */
.freeCall .agreementCheck {
	width: 100%;
	max-width: 670px;
	margin: 0 auto;           /* 左右中央揃え */
	background: #fff;         /* 白背景 */
	text-align: center;
	padding: min(6.667vw, 50px) 0; 
	margin: min(13.333333vw, 100px) 0 min(8vw, 60px);
}
.freeCall .agreementCheck p {
	font-size: min(3.467vw, 26px);
	font-weight: 300;
}
.freeCall .agreementCheck a {
	color: inherit;
	text-decoration: underline; /* 個人情報の取り扱い：アンダーライン */
	text-underline-offset: min(0.533vw, 4px);
}
.freeCall .agreementCheck .checkBox {
	margin-top: min(3.2vw, 24px);
}
.freeCall .agreementCheck .checkBox label {
	font-size: min(4vw, 30px);
	font-weight: 600; /* ヒラギノW6 */
	cursor: pointer;
	vertical-align: middle;
}
/* 同意するのチェックボックスはテキストに合わせて大きめ */
.freeCall .agreementCheck input[type="checkbox"] {
	width: min(4.267vw, 32px);
	height: min(4.267vw, 32px);
	vertical-align: max(-0.8vw, -6px);
}

/* ----- 送信ボタン ----- */
.freeCall .submitBtn {
	display: block;
	width: 56%; /* 420px / 750px */
	max-width: 420px;
	margin: 0 auto;
	padding: min(3.333vw, 25px) 0;
	font-family: inherit;
	font-size: min(3.733vw, 28px);
	font-weight: 600; /* ヒラギノW6 */
	color: #fff;
	text-align: center;
	background: #666;        /* 非アクティブ：濃いグレー */
	border: 2px solid #666;
	border-radius: 0;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
/* アクティブ時 */
.freeCall .submitBtn.active {
	background: #0846bd;
	border-color: #0846bd;
}
.freeCall .submitBtn.active:hover {
	background: #fff;   /* ホバーで色反転（アクティブ時のみ） */
	color: #0846bd;
}

/* ----- エラーテキスト（JS実装時に使用） ----- */
.freeCall .err_text {
	color: #e53935;
	font-size: min(2.667vw, 20px);
	margin-top: min(1.067vw, 8px);
}

/* ========================================
   サンクス
   ======================================== */
.thanksImgV2{
	max-width: 670px;
	width: 89.3333333%;
	margin: 0 auto;
}
.thanksImgV2 h2{
	width: min(54.133333vw, 406px);
	margin: 0 auto min(13.333vw, 100px);
}
.thanksImgV2 > p{
	font-size: min(3.467vw, 26px);
	line-height: 1.7;
	letter-spacing: 0.01em;
	text-align: left;
	margin-bottom: min(6.6666vw, 50px);
}
.thanksImgV2 section.address h3{
	font-size: min(3.467vw, 26px);
	font-weight: 800;
	text-align: left;
}
.thanksImgV2 section.address{
	background: #fff;
	padding: min(5.33333333vw, 40px);
}
.thanksImgV2 section.address address{
	font-size: min(3.467vw, 26px);
	font-weight: 800;
	text-align: left;
	margin-bottom: min(2.6666666vw, 20px);
}
.thanksImgV2 section.address address a{
	font-size: min(3.467vw, 26px);
	text-decoration: none;
	color: #000;
}
.thanksImgV2 section.address > p{
	font-size: min(3.467vw, 22px);
}
/* ========================================
   フッター
   ======================================== */
footer {
	max-width: 750px;
	margin: 0 auto;
	padding: 2rem 3rem 1.5rem;
	text-align: center;
}

@media (max-width: 750px) {
	footer {
		padding: 1.5rem 1.5rem 1rem;
	}
}

footer nav {
	margin-bottom: 1rem;
}

footer nav a {
	display: inline-block;
	margin: 0 0.75rem;
	color: #666;
	text-decoration: none;
	font-size: 13px;
	transition: color 0.2s ease;
}

@media (max-width: 750px) {
	footer nav a {
		display: block;
		margin: 0.5rem 0;
		font-size: 12px;
	}
}

footer nav a:hover {
	color: #0066cc;
	text-decoration: underline;
}

footer small {
	display: block;
	color: #999;
	font-size: 11px;
	line-height: 1.6;
}

@media (max-width: 750px) {
	footer small {
		font-size: 10px;
	}
}