@charset "utf-8";
/*========================================
ソウガク 北海道派遣家庭教師 フォーム用 CSS

モバイルファースト設計
  〜599px：スマホ
  〜360px：画面サイズが小さいスマホ
  400px～：画面サイズが大きいスマホ
  600px～：タブレット
  1,025px～：PC
  1,500px～：大型モニターPC
  1,920px～：4KモニターPC
========================================*/

/* formの見た目
==================================================--*/
/*
#form table.form-box,
#form table.form-box tbody,
#form table.form-box tr,
#form table.form-box th,
#form table.form-box td {
	display: block;
	width: 100%;
}

#form table.form-box th {
	margin-bottom: 0.2rem;
}

#form table.form-box tr {
	margin-bottom: 2rem;
}
	*/


/* formの部品
==================================================--*/
#form .pp-note {
	font-size: 0.9rem;
	margin-bottom: 0.5em;
}

#form input[type="text"],
#form input[type="tel"],
#form input[type="email"],
#form textarea,
#form select {
	height: 3.5rem;
	width: 100%;
	font-size: 16px;
	padding: 0.3em;
	color: #333;
	background-color: #FFFFFF;
	border-radius: 0.3em;
	margin-top: 0.2em;
	border: solid 1px #B0B0B0;
}

#form input[type="text"]#zipcode {
	width: 10em;
}

#form input[type="tel"] {
	width: 15em;
}

/*
#form input[type=radio],
#form input[type=checkbox]{
	cursor: pointer;
	width: 1.7rem;
	height: 1.7rem;
	border: solid 1px #B0B0B0;
	margin-right: 0.2rem;
}
*/

#form .checkbox-boxes {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	border: none;
}

#form .checkbox-boxes label {
	display: flex;
	align-items: center;
	gap: 0 0.3em;
	position: relative;
	width: 49%;
	height: 3.5rem;
	margin-bottom: 0.6rem;
	padding: 0 0.7rem;
	border-radius: 3px;
	background-color: #f2f2f2;
	cursor: pointer;
}

#form .checkbox-boxes label:has(:checked) {
	background-color: #b2cbfd;
	font-weight: bold;
}
#form .checkbox-boxes label:hover{
	background-color: #b2cbfd;

}

#form .checkbox-boxes label::before {
	width: 18px;
	height: 18px;
	border-radius: 2px;
	background-color: #fff;
	border: 1px solid #888;
	content: '';
}

#form .checkbox-boxes label:has(:checked)::after {
	position: absolute;
	top: 35%;
	left: 17px;
	transform: rotate(45deg);
	width: 6px;
	height: 12px;
	border: solid #1b2c70;
	border-width: 0 2px 2px 0;
	content: '';
}

#form .checkbox-boxes input {
	appearance: none;
    -webkit-appearance: none;
	-moz-appearance: none;
	-o-appearance: none;
}



#form .vertical-box {
	display: flex;
	align-items: center;
	margin-bottom: 0.5rem;
}

#form .vertical-box input[type=radio] {
	margin: 2px 5px 0 0;
	width: 25px;
	height: 25px;
}

#form .vertical-box label {
	/*	width: calc(100% - 30px);*/
	font-size: 1.1rem;
	font-weight: normal;
}

#form textarea {
	height: 12em;
	margin: 0.2em 0 1rem 0;
}


#form select {
	width: auto;
	padding: 0.3em 1em;
}

#form .item-name-box {
	display: flex;
	align-items: center;
	width: 100%;

	line-height: 1.1;
}

#form .which {
	display: flex;
	align-items: center;
	height: 1.4rem;
	margin-right: 3px;
	padding: 0 4px;
	font-size: 0.8rem;
	font-weight: normal;
	color: #fff;
	white-space: nowrap;
}

#form .which.require {
	background-color: #FA6723;
}

#form .which.optional {
	background-color: #a9a9a9;
}

#form .item-name-box {
	margin: 2rem 0 0.2rem;
}

#form .item-name-box label {
	margin-right: 0.4em;
	font-weight: bold;
	font-size: 1.2rem;
}

#form .item-name-box label .small {
	font-size: 0.7em;
}

::placeholder {
	color: #aaa;
}

/* 旧Edge対応 */
::-ms-input-placeholder {
	color: #aaa;
}

#form input[type="submit"].btn {
	display: block;
	margin: 0 auto;
	font-weight: bold;
	color: #fff;
	padding: 0.8em;
	letter-spacing: 0.05em;
	background-color: #FA6723;
	border: none;
}

#form label.error {
	display: block;
	width: 100%;
	margin-right: 0;
	padding-left: 0;
	border-left: none;
}

#form .error {
	font-size: 1rem;
	font-weight: bold;
	color: #f00;
}

#form input[type="text"].error,
#form input[type="tel"].error,
#form input[type="email"].error,
#form select.error,
#form textarea.error {
	border: 3px solid #f00;
	background: #FFF0F0;
	color: #333;
	font-weight: normal;
	font-size: 16px;
}

#form input[type="submit"],
#form input[type="button"] {
	text-align: center;
	width: 80%;
	max-width: 400px;
	font-size: 1.1rem;
	padding: 1rem 0;
	border-radius: 5px;
	box-shadow: 0px 5px 5px -2px rgba(50, 50, 50, 0.2);

}

#form input[type="submit"]:hover,
#form input[type="button"]:hover {
	opacity: 0.8;
	cursor: pointer;
}

#form input[type="submit"].col1,
#form input[type="button"].col1 {
	width: 80%;
	margin: 0 auto;
}

#form .btn-box {
	width: 90%;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

#form input[type="submit"].col2,
#form input[type="button"].col2 {
	width: 46%;
}

#form .col2-space {
	margin-right: 6px;
}

#form input[type="submit"].go,
#form input[type="button"].go {
	background-color: #FA6723;
	color: #fff;
	border: none;
}




#form input[type="submit"].back,
#form input[type="button"].back {
	background-color: #eee;
	color: #555;
	border: 1px solid #aaa;
}


#form .radio-group {
  margin: 10px 0 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#form .radio-item {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

#form .radio-item input[type="radio"] {
  transform: scale(1.2);
}

/* ラジオボタンを大きくする */
#form .radio-group input[type="radio"] {
  width: 20px;
  height: 20px;
  margin-right: 6px;
  cursor: pointer;
}

/* テキストと縦位置を合わせる */
#form .radio-item {
  display: flex;
  align-items: center;
  font-size: 15px;
  line-height: 1.1;
	margin-top: 10px;
  margin-bottom: 6px;
}


#form .item-note {
  font-size: 18px;      /* 通常より少し小さめ */
  color: #555;          /* 濃すぎないグレー */
  margin: 4px 0 8px;    /* タイトルとの間を少しだけ空ける */
  line-height: 1.5;
}



/* 確認画面
==================================================--*/
#formWrap {
	width: 90%;
	margin: 1.5rem auto;
}

#form table.formTable {
	width: 100%;
	margin: 15px auto 10px;
	font-size: 0.9rem;
}

#form table.formTable th,
#form table.formTable td {
	border: 2px solid #fff;
	display: table-cell;
}

#form table.formTable th {
	width: 30%;
}

#form table.formTable td {
	width: 70%;
}

#form table.formTable th {
	background-color: #e5f2fc;
	font-weight: bold;
	margin-bottom: 0;
}

#form table.formTable td {
	background-color: #f3faff;
	margin-bottom: 0;
}

#formWrap h4 {
	color: #f00;
	margin-bottom: 15px;
}

#formWrap .error_messe {
	margin-bottom: 15px;
}



/* 600px〜：タブレット用CSS ======================================================================================================================================================--*/
@media screen and (min-width: 600px) {

	#form .pp-note a:hover {
		text-decoration: underline;
	}


	/* ↓ 600px〜：タブレット用CSS 閉じタグ */
}

/* 1025px〜：PC用CSS ======================================================================================================================================================--*/
@media screen and (min-width: 1025px) {

	/* formの見た目
==================================================--*/
	/*
	#form table.form-box {
		width: 90%;
		margin: 0 auto;
	}

	#form table.form-box tr {
		display: flex;
	}

	#form table.form-box th,
	#form table.form-box td {
		display: flex;
		align-items: center;
		margin-bottom: 0;
	}

	#form table.form-box th {
		width: 25%;
	}

	#form table.form-box td {
		flex-direction: column;
		align-items: flex-start;
		width: 75%;
	}
*/


	/* formの部品
==================================================--*/
	#form .pp-note a:hover {
		text-decoration: underline;
	}

	#form .checkbox-boxes {
		justify-content: flex-start;
	}

	#form .checkbox-boxes label {
		width: 32%;
		margin-right: 2%;
	}
	#form .checkbox-boxes label:has(:checked)::after{
		top: 37%;
		left: 19px;
	}
	#form .checkbox-boxes label:nth-child(3n) {
		margin-right: 0;
	}


	#form input[type="text"],
	#form input[type="tel"],
	#form select {
		height: 3rem;
		font-size: 1rem;
	}

	#form textarea {
		font-size: 1rem;
	}


	#form .radio-box .vertical-box:not(last-child) {
		margin-right: 3rem;
	}


#form .radio-item {
  font-size: 20px;
}
	

	/* ↓ 1025px〜：PC用CSS 閉じタグ */
}