@charset "Shift_JIS";
/* contentsエリア table */
.cmnTable {
	width: 100%;
	table-layout: fixed;
}
.cmnTable_row {
	padding: 20px;
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	border-bottom: 1px solid #CCCCCC;
}
.cmnTable_info {
	width: calc(100% + 40px);
	margin-left: -20px;
	margin-right: -20px;
	margin-bottom: 20px;
	padding-left: 10px;
	padding-right: 10px;
	text-align: left;
	font-weight: normal;
	display: block;
	background-color: #FFF4E9;
}
.cmnTable_label {
	width: 280px;
	margin-top: 6px; /* input エリアとの高さ合わせ*/
	text-align: left;
	font-weight: bold;
}
.cmnTable_label.required::after {
	content: "必須";
	width: 40px;
	height: 20px;
	margin-left: 0.5em;
	background-color: #FF2D2D;
	font-size: 12px;
	color: #fff;
	text-align: center;
	display: inline-block;
}
.cmnTable_body {
	width: calc(100% - 280px);
	min-height: 40px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.cmnTable_body div {
	margin-left: 30px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.cmnTable_body input, .cmnTable_body select {
	width: 100%;
	height: 40px;
	padding-right: 15px;
	padding-left: 15px;
}
.cmnTable_note {
	width: 100%;
	margin-left: 30px;
	margin-top: 0.5em;
	font-size: 13px;
}
.cmnTable_link {
	margin-top: 20px;
	margin-left: 30px;
}
.cmnTable_link i {
	margin-left: 5px;
}
.cmnForm_btnblock {
	margin-top: 40px;
	text-align: center;
}
.cmnForm_btnblock .btnblock_btn {
	width: 200px;
	height: 50px;
	margin: 0 auto;
	font-size: 18px;
	text-align: center;
	line-height: 50px;
	display: block;
}
.cmnForm_btnblock .btnblock_skip,
.cmnForm_btnblock .btnblock_back {
	margin-top: 20px;
	display: inline-block;
}
.cmnForm_btnblock .btnblock_skip i {
	margin-left: 5px;
}
.cmnForm_btnblock .btnblock_back i {
	margin-right: 5px;
}
.cmnForm_btnblock_note {
	width: 100%;
	margin-top: 20px;
	font-size: 13px;
	display: block;
}
.cmnForm_back {
	margin-top: 40px;
}
.cmnForm_back i {
	margin-right: 5px;
}
.cmnLinkBlank i {
	margin-left: 5px;
}
/* 名前フォーム */
.cmnTable_body_name {
	width: calc(50% - 30px);
}
.cmnTable_body_name .cmnTable_sublabel {
	width: 45px;
	display: inline-block;
}
.cmnTable_body_name .cmnTable_sublabel.text-center {
	text-align: center;
}
.cmnTable_body_name input {
	width: calc(100% - 45px);
}
/* 生年月日フォーム */
.cmnTable_body_year input {
	width: 100px;
}
.cmnTable_body_month select, .cmnTable_body_day select {
	width: 80px;
}
.cmnTable_body_year .cmnTable_sublabel {
	margin-right: 15px;
	margin-left: 15px;
}
.cmnTable_body_month .cmnTable_sublabel, .cmnTable_body_day .cmnTable_sublabel {
	margin-right: 15px;
	margin-left: 15px;
}
.cmnTable_body_select {
	margin-left: 0 !important;
	position: relative;
}
.cmnTable_body_select::after {
	content: url(../img/ic_select.svg);
	display: inline-block;
	width: 20px;
	height: 30px;
	position: absolute;
	top: 5px;
	right: 5px;
	pointer-events: none;
}
/* 性別 */
.cmnTable_body_sex input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_sex .cmnTable_sublabel {
	width: 60px;
	margin-left: 15px;
	display: inline-block;
}
/* ローマ字自動入力 */
.cmnTable_body_romaji {
	margin-left: 0 !important;
	flex-direction: column;
	align-items: flex-start !important;
	width: 100%;
}
.cmnTable_body_romaji_radio {
	margin-bottom: 0.5em;
}
.cmnTable_body_romaji_radio input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_romaji_radio .cmnTable_sublabel {
	margin-left: 15px;
	display: inline-block;
}
.cmnTable_body_romaji_input {
	margin-left: 4em !important;
	margin-bottom: 15px;
	width: calc(100% - 4em);
}
.cmnTable_body_romaji_input .cmnTable_sublabel {
	width: 150px;
}
.cmnTable_body_romaji_input input {
	width: calc(100% - 150px);
}
.cmnTable_body_romaji_input .cmnTable_note {
	margin-left: 150px;
}
/* 住所 */
div.cmnTable_address {
	display: block;
}
.cmnTable_address div{
	margin: 0;
	display: block;
}
.cmnTable_address p.address {
	width: 100%;
}
/* 郵便番号 */
.cmnTable_body_zipcode .cmnTable_sublabel {
	width: 120px;
}
.zipcode_zip {
	margin-right: 15px;
}
.zipcode_hyphen {
	margin-left: 15px;
	margin-right: 15px;
}
.cmnTable_body_zipcode .zipcode01 {
	width: 80px;
}
.cmnTable_body_zipcode .zipcode02 {
	width: 100px;
}
.cmnTable_body_zipcode .zipcode-btn {
	width: 100px;
	height: 40px;
	margin-left: 15px;
}
/* 県 */
.cmnTable_body_prefecture {
	width: 100%;
	margin-top: 30px;
}
.cmnTable_body_prefecture .cmnTable_sublabel {
	width: 120px;
}
.cmnTable_body_prefecture select {
	width: 200px;
}
/* 市区町村 */
.cmnTable_body_city {
	width: 100%;
	margin-top: 30px;
}
.cmnTable_body_city .cmnTable_sublabel {
	width: 100%;
}
/* 番地 */
.cmnTable_body_housenumber {
	width: 100%;
	margin-top: 30px;
}
.cmnTable_body_housenumber .cmnTable_sublabel {
	width: 100%;
}
/* 電話番号 */
.cmnTable_body_phone:nth-child(2) {
	margin-top: 30px;
	margin-bottom: 30px;
}
.cmnTable_body_phone .cmnTable_sublabel {
	width: 120px;
}
.cmnTable_body_phone input {
	width: 100px;
}
.cmnTable_body_phone input:first-child {
	width: 80px;
}
.phone_hyphen {
	margin-right: 5px;
	margin-left: 5px;
}
/* 勤務先 */
.cmnTable_body_company {
	width: 100%;
	margin-bottom: 30px;
}
.cmnTable_body_company .cmnTable_sublabel {
	width: 160px;
}
.cmnTable_body_company input {
	width: calc(100% - 160px);
}
/* 内線番号 */
.cmnTable_body_extention-number input {
	width: 100px;
}
/* 送付先ラジオ */
.cmnTable_body_mailing-address input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_mailing-address .cmnTable_sublabel {
	width: 120px;
	margin-left: 15px;
	display: inline-block;
}
/* FP業務従事状況 */
.cmnTable_body_fp-status select {
	width: 100%;
}
/* FP業務従事状況ラジオ */
.cmnTable_body_fp-status input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_fp-status .cmnTable_sublabel {
	width: 120px;
	margin-left: 15px;
}
/* 職位・職種 */
.cmnTable_body_company-info select {
	width: 250px;
}
/* 業態 */
.cmnTable_body_company-category select {
	width: 100%;
}
/* 保有資格 */
.cmnTable_body_license {
	margin-left: 0 !important;
}
.cmnTable_body_license .license_row {
	width: calc(40%);
}
.cmnTable_body_license input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_license .cmnTable_sublabel {
	width: 120px;
	margin-left: 15px;
	display: inline-block;
}
/* 学割 */
.cmnTable_body_student-discount input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_student-discount .cmnTable_sublabel {
	width: 120px;
	margin-left: 15px;
	display: inline-block;
}
/* 過去の会員登録状況 */
.cmnTable_body_old-check input {
	width: 18px;
	margin: 0;
}
.cmnTable_body_old-check .cmnTable_sublabel {
	width: 200px;
	margin-left: 15px;
	display: inline-block;
}
.cmnTable_body_title {
	margin-top: 20px;
	margin-left: 30px;
	font-weight: bold;
}
.cmnTable_body_old-number {
	margin-top: 20px;
}
.cmnTable_body_old-number input {
	width: 150px;
}
.cmnTable_body_old-number .cmnTable_sublabel {
	margin-right: 15px;
}
/* 入会要件 */
.cmnTable_body_requirement select {
	width: 100%;
}
/*フリーコールマーク*/
.cmnPhone {
	display: flex;
	flex-wrap: wrap;
	padding: 15px 20px;
	margin: 20px;
	border-bottom: 2px solid #CCC;
	border-top: 2px solid #CCC;
}
.cmnPhoneNumber_area {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-content: center;
	text-align: center;
	width: 100%;
}
.cmnPhoneNumber {
	color: #1d2c79;
	font-weight: bold;
}
.cmnPhoneNumber .maintext {
	font-size: 1.8em;
}
.cmnPhoneNumber .maintext::before {
	content: "";
	display: inline-block;
    height: 32px;
    width: 54px;
	background-image: url("../img/ico_freecall_s.png");
	background-repeat: no-repeat;
	background-size: contain;
}
.cmnPhoneNumber .subtext {
	all: initial;
	font-size: 15px;
}
.cmnPhoneNumber_text {
	display: inline-block
}
p.pre {
	word-wrap: break-word;
	white-space: pre-wrap;
	width: 100%;
}
.pre_parent{
	width: calc(100% - 30px);
}
@media (min-width:768px) and (max-width:1024px) {
	.cmnTable_row {
		padding: 20px 10px;
	}
	.cmnTable_label {
		width: 180px;
	}
	.cmnTable_body {
		width: calc(100% - 180px);
	}
	/* 生年月日フォーム */
	.cmnTable_body_year input {
		width: 80px;
	}
	.cmnTable_body_month select, .cmnTable_body_day select {
		width: 70px;
		background-color: #ffffff00;
	}
	.cmnTable_body_month, .cmnTable_body_day {
		margin-left: 10px !important;
	}
	/* 住所 */
	/* 郵便番号 */
	.cmnTable_body_zipcode .cmnTable_sublabel {
		width: 100%;
	}
	/* 電話番号 */
	.cmnTable_body_phone .cmnTable_sublabel {
		width: 100%;
	}
}
@media (max-width: 767.8px) {
	.cmnTable_row {
		padding: 15px 0;
		/*flex-direction: column;*/
	}
	.cmnTable_info {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		margin-bottom: 10px;
	}
	.cmnTable_label {
		width: auto;
		margin-top: 0;
		padding-right: 5px;
		padding-left: 5px;
	}
	.cmnTable_body {
		width: 100%;
		min-height: 20px;
		margin-top: 15px;
	}
	.cmnTable_body div {
		margin-left: 5px;
	}
	.cmnTable_body input, .cmnTable_body select {
		height: 30px;
		padding-right: 10px;
		padding-left: 10px;
	}
	.cmnTable_note {
		width: 100%;
		margin-left: 0;
		margin-top: 2px;
		padding-left: 5px;
		padding-right: 5px;
		font-size: 10px;
		font-weight: normal;
		text-align: left;
	}
	.cmnTable_link {
		margin-top: 10px;
		margin-left: 0;
	}
	.cmnForm_btnblock {
		margin-top: 30px;
	}
	.cmnForm_btnblock .btnblock_btn {
		width: 160px;
		height: 36px;
		font-size: 16px;
		line-height: 36px;
	}
	.cmnForm_btnblock .btnblock_skip,
	.cmnForm_btnblock .btnblock_back {
		margin-top: 15px;
	}
	.cmnForm_btnblock_note {
		margin-top: 15px;
		font-size: 10px;
	}
	.cmnForm_back {
		margin-top: 30px;
	}
	/* 名前フォーム */
	.cmnTable_body_name {
		width: calc(50% - 5px);
	}
	.cmnTable_body_name .cmnTable_sublabel {
		width: 35px;
		text-align: center;
	}
	.cmnTable_body_name input {
		width: calc(100% - 45px);
		margin-left: 5px;
	}
	/* 生年月日フォーム */
	.cmnTable_body_year input {
		width: 60px;
	}
	.cmnTable_body_month select, .cmnTable_body_day select {
		width: 55px;
		background-color: #ffffff00;
	}
	.cmnTable_body_year .cmnTable_sublabel {
		margin-right: 5px;
		margin-left: 5px;
	}
	.cmnTable_body_select::after {
		content: url(../img/ic_select.svg);
		display: inline-block;
		width: 15px;
		height: 20px;
		transform: scale(0.8);
	}
	.cmnTable_body_month .cmnTable_sublabel,
	.cmnTable_body_day .cmnTable_sublabel{
		margin-right: 5px;
		margin-left: 5px;
	}
	/* 性別 */
	.cmnTable_body_sex .cmnTable_sublabel {
		margin-left: 10px;
	}
	/* ローマ字自動入力 */
	.cmnTable_body_romaji_radio .cmnTable_sublabel {
		margin-left: 10px;
	}
	.cmnTable_body .cmnTable_body_romaji:nth-child(2) {
		margin-top: 15px;
	}
	.cmnTable_body_romaji_input {
		margin-left: 5px !important;
	}
	.cmnTable_body_romaji_input .cmnTable_sublabel {
		width: 100%;
	}
	.cmnTable_body_romaji_input input {
		width: 100%;
	}
	.cmnTable_body_romaji_input .cmnTable_note {
		margin-left: 0;
	}
	.cmnTable_body_romaji .cmnTable_body_romaji_input:last-child {
		margin-bottom: 0;
	}
	/* 住所 */
	/* 郵便番号 */
	.cmnTable_body_zipcode .cmnTable_sublabel {
		width: 100%;
	}
	.zipcode_zip {
		margin-right: 10px;
	}
	.zipcode_hyphen {
		margin-left: 5px;
		margin-right: 5px;
	}
	.cmnTable_body_zipcode .zipcode01 {
		width: 55px;
	}
	.cmnTable_body_zipcode .zipcode02 {
		width: 60px;
	}
	.cmnTable_body_zipcode .zipcode-btn {
		width: 80px;
		height: 30px;
		margin-left: 10px;
	}
	.cmnTable_body_prefecture {
		margin-top: 15px;
	}
	.cmnTable_body_city {
		margin-top: 15px;
	}
	.cmnTable_body_housenumber {
		margin-top: 15px;
	}
	/* 電話番号 */
	.cmnTable_body_phone {
		margin-bottom: 15px;
	}
	.cmnTable_body_phone .cmnTable_sublabel {
		width: 100%;
	}
	.cmnTable_body_phone .cmnTable_sublabel2 {
		width: 90px;
	}
	.cmnTable_body_phone input {
		width: 65px;
	}
	.cmnTable_body_phone input:first-child {
		width: 60px;
	}
	.phone_hyphen {
		margin-right: 5px;
		margin-left: 5px;
	}
	/* 勤務先 */
	.cmnTable_body_company {
		margin-bottom: 15px;
	}
	.cmnTable_body_company .cmnTable_sublabel {
		width: 100%;
	}
	.cmnTable_body_company input {
		width: 100%;
	}
	/* 送付先ラジオ */
	.cmnTable_body_mailing-address .cmnTable_sublabel {
		width: 80px;
	}
	/* 保有資格 */
	.cmnTable_body_license .cmnTable_sublabel {
		width: 110px;
		margin-left: 10px;
	}
	/* 過去の会員登録状況 */
	.cmnTable_body_title {
		margin-top: 15px;
		margin-left: 0;
	}
	/*フリーコール*/
	.cmnPhone {
		padding: 15px 0;
		margin: 20px 0px;
	}
	.cmnPhone .cmnTable_label {
		margin-bottom: 10px;
	}
	.cmnPhoneNumber {
		font-size: 1.4em;
	}
	.cmnPhoneNumber .maintext {
		font-size: 1em;
	}
	.cmnPhoneNumber .maintext::before {
		background-image: url("../img/ico_freecall_ss.png");
	    height: 22px;
	    width: 36px;
	}
	.cmnPhoneNumber_text {
		width: 278px;
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		margin: auto;
	}
	.cmnPhoneNumber_text .upper-text {
		text-align: left;
	}
	.cmnPhoneNumber_text .under-text {
		text-align: right;
	}
	.cmnPhoneNumber .subtext {
		font-size: 12px;
	}
	.pre_parent{
		width: calc(100% - 5px);
	}
}

.formSection {
	background-color: #E1F7FD;
	box-shadow: 0px 0px 10px 0px #A3E1F4 inset;
	padding: 32px;
	max-width: 647px;
	width: 100%;
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	gap: 24px;
	align-items: center;
	margin: 0 auto;
	margin-bottom: 40px;
	animation: slideUpFade 0.5s 0.8s;
  animation-fill-mode: both;
}

@keyframes slideUpFade {
  0% {
    opacity: 0;
    transform: translate3d(0, 50px, 0);
  }

  to {
    opacity: 1;
    transform: translateZ(0);
  }
}

.formSection .checkBox {
	gap: 8px;
}

.formGroup {
	width: 100%;
}

.formLabel {
	font-weight: 700;
	font-size: 16px;
	line-height: 30px;
	color: #333333;
	margin-bottom: 8px;
}

.formSubtitle {
	font-weight: 700;
	font-size: 18px;
	line-height: 30px;
	color: #333333;
}

.formInput {
	display: flex;
	align-items: center;
	gap: 16px;
}

.formInput input:focus,
.formInput select:focus {
	border: 2px solid #464646;
	background: #fff;
}

.invalid {
	border: 2px solid #BE0000 !important;
}

.formInput__birthday {
	gap: 24px;
}

.formInput input,
.formInput select {
	border: 2px solid #E3E5E8;
	height: 57px;
	border-radius: 6px;
	padding: 16px;
	font-size: 18px;
	width: 100%; 
	flex: 1; 
}

.formInput input[type="checkbox"] {
	border: 2px solid #E3E5E8;
	border-radius: 6px;
	font-size: 16px;
	line-height: 30px;
	position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.formInput label {
	font-size: 16px;
}

.formInput_year,
.formInput_month,
.formInput_day  {
	width: 100%;
	display: flex;
	gap: 8px;
	align-items: end;
}

.formInput_year {
	max-width: 146px;
	width: 100%;
}
.formInput_year input {
	max-width: 120px;
}

.formInput_month,
.formInput_day {
	max-width: 122px;
}

.formInput_month select,
.formInput_day select {
	background-color: #fff;
	line-height: 115%;
}

.formSelect {
	position: relative;
	max-width: 96px;
	width: 100%;
}

.formSelect::after {
	content: url(../img/ico_down.svg);
	display: inline-block;
	width: 16px;
	height: 15px;
	position: absolute;
	top: 30%;
	right: 16px;
	pointer-events: none;
}

.formInput input[type="checkbox"] {
	display: none;
}

.formInput .checkmark {
	width: 28px;
	height: 28px;
	background-color: #fff;
	border: 2px solid #D9D9D9;
	border-radius: 6px;
	position: relative;
	transition: all 0.3s ease;
	cursor: pointer;
}

.formInput:hover .checkmark {
	border-color: #667eea;
	transform: scale(1.05);
}

.formInput input[type="checkbox"]:checked + .checkmark {
	background-color: #1B9AE6;
	border-color: 2px solid #1B9AE6;
}

.formInput .checkmark:after {
	content: url(../img/ico_check.svg);
	position: absolute;
	display: none;
	left: 7px;
	top: -1px;
	width: 13px;
	height: 9px;
}

.formInput input[type="checkbox"]:checked + .checkmark:after {
	display: block;
}

.formNote {
	font-size: 14px;
	font-weight: 700;
	line-height: 30px;
	color: #808080;
	margin-top: 8px;
}

.formInput input::placeholder {
	color: #B8BFC6;
	font-weight: 700;
	font-size: 18px;
	line-height: 140%;
}

.inputError {
	font-size: 14px;
	color: #ff0000;
	font-weight: 500;
}

@media (max-width: 767.8px) {
	.formInput {
    flex-direction: column;
  }
  
  .formInput.formInput__birthday {
    flex-direction: row;
  }

  .formInput_year,
  .formInput_month,
  .formInput_day  {
    gap: 4px;
  }

  .formInput_year input {
    width: 72px;
    padding: 12px;
  }

	.formInput .checkmark {
		flex-shrink: 0;
	}

	.formSection {
		padding: 16px;
	}

	.formSection .checkBox {
		flex-direction: row;
	}

	.formSelect::after {
		right: 8px;
	}
}

@media (max-width: 360px) {
	.formInput__birthday {
		gap: 12px;
	}
}