/* ------------------------------
- mailformpro
------------------------------ */
.mfp_element_checkbox,
.mfp_element_radio {
  display: none;
}
form#mailformpro label {
  margin: 0;
}
.mfp_element_text, .mfp_element_number, .mfp_element_select-one, .mfp_element_email, .mfp_element_tel, .mfp_element_textarea, .mfp_element_date, .mfp_element_password {
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
  vertical-align: middle;
}
.mfp_element_all {
  max-width: 100%;
}
div.mfp_err {
  position: absolute;
  background: none;
  padding: 0;
  margin: 0;
}
.mfp_element_submit,
.mfp_element_reset,
.mfp_element_button,
button.mfp_next,
button.mfp_prev {
  border-radius: 0;
  padding: 0;
  border: none;
  background: none;
  background: none;
  background: none;
  background: none;
  text-shadow: none;
}
@media only screen and (max-width: 750px) {
}
/* ------------------------------
- form common
------------------------------ */
.form input,
.form button,
.form textarea,
.form select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.form select::-ms-expand {
	display: none;
}
.form input[type=checkbox],
.form input[type=radio] {
  display: none;
}
#form label:hover {
  cursor: pointer;
}
#form label.radio,
#form label.checkbox {
  position: relative;
	padding-left: 40px;
	cursor: pointer;
}
#form label.checkbox::before {
  -webkit-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
  position: absolute;
  top: 60%;
  left: 27px;
  display: block;
	width: 4px;
	height: 9px;
  margin-top: -9px;
  border-right: 2px solid #d50117;
  border-bottom: 2px solid #d50117;
  content: '';
  opacity: 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  z-index: 1;
}

#form label.checkbox::after {
  -webkit-transition: border-color 0.2s linear;
  transition: border-color 0.2s linear;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  left: 20px;
  display: block;
	width: 15px;
	height: 15px;
  border: 2px solid #707271;
  content: '';
  background-color: #fff;
}
#form label.radio::before{
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 50%;
	content: '';
	display: block;
	height: 20px;
	width: 20px;
	left: 5px;
	margin-top: -8px;
	position: absolute;
	top: 20%;
}
#form label.radio::after{
	background: #d50117;
	border-radius: 50%;
	content: '';
	display: block;
	height: 14px;
	width: 14px;
	left: 9px;
	margin-top: -4px;
	opacity: 0;
	position: absolute;
	top: 20%;
	transform: scale3d(.3,.3,1);
	transition: transform .2s ease-in-out, opacity .2s ease-in-out;
}

#form input[type=checkbox]:checked ~ .checkbox:before {
  opacity: 1;
}
#form input[type=radio]:checked ~ .checkbox:before {
  opacity: 1;
}
#form input[type=radio]:checked ~ .radio:after{
	opacity: 1;
	transform: scale3d(1,1,1);
}
#form input[type=text],
#form input[type=email] {
  height: 40px;
  font-size: 16px;
  padding: 0 10px;
  border-radius: 0;
  border: 1px solid #dedee0;
}
#form select {
  width: 100%;
  height: 40px;
  font-size: 16px;
  padding: 0 10px;
  border-radius: 0;
  border: 1px solid #dedee0;
}
#form .select .select01 {
	background: #fff url(../images/common/form_icon_select01.png) no-repeat center right 20px / 21px 10px;
}

#form .select .select02 {
  background: #fff url(../images/common/form_icon_select02.png) no-repeat center right 13px / 18px 23px;
}
@media only screen and (max-width: 640px) {
  #form select {
    width: 100%;
    height: 40px;
    font-size: 14px;
    padding: 0 3%;
  }
  #form input[type=text],
  #form input[type=email] {
    height: 40px;
    font-size: 16px;
    padding: 0 3%;
	}
	#form .select .select01 {
		background: #fff url(../images/common/form_icon_select01.png) no-repeat center right 5% / 15px;
	}
  #form .select .select02 {
    background: #fff url(../images/common/form_icon_select02.png) no-repeat center right 5% / 14px;
  }
}
/* ------------------------------
- form
------------------------------ */
.form {
}
.bg-main{
	background: #ededed;
}
.form_sub{
	padding: 8.9% 0 4.8%;
}
.form_main_wrap{
	padding: 2.9% 0;
}
.form_main,.form_sub{
	max-width: 600px;
	margin: 0 auto;
}
.form_main h4 {
  font-size: 18px;
  font-weight: bold;
}
@media only screen and (max-width: 640px) {
  .form_sub{
		padding: 11.5% 0 8.2%;
	}
}
/* form heading ------------------------------*/
.form .form_main_heading {
  text-align: center;
  font-size: 22px;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 5%;
}
.form_heading {
  font-size: 17px;
	margin-bottom: 15px;
	font-weight: bold;
}
.form_head--text .form_heading{
	font-size: 20px;
}
.form_subhead--text{
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 2%;
	line-height: 1.8;
}
.form_head--text .u-questionnaire_heading{
	margin-bottom: 37px;
}
.form_sub_heading{
	font-size: 24px;
	text-align: center;
	font-weight: bold;
	margin-bottom: 6%;
}
.form_sub_lead{
	line-height: 1.6;
}
@media only screen and (max-width: 640px) {
	.form .form_main_heading {
    font-size: 18px;
    margin-bottom: 10%;
	}
	.form_heading {
		font-size: 15px;
    margin-bottom: 5%;
	}
	.form_head--text .form_heading,
	.form_subhead--text{
		font-size: 15px;
		line-height: 1.8;
	}
	.form_head--text .u-questionnaire_heading{
		margin-bottom: 24px;
	}
	.form_sub_heading{
		font-size: 17px;
	}
	.form_sub_lead{
		font-size: 14px;
	}
}
@media only screen and (max-width: 340px) {
	.form .form_main_heading {
		font-size: 16px;
	}
	.form_sub_heading{
		font-size: 16px;
	}
	.form_sub_lead{
		font-size: 13px;
	}
}
/* hisu ------------------------------*/
.hisu {
  position: relative;
  display: inline-block;
  padding-right: 75px;
}
.hisu::before {
  content: '必須';
  font-size: 14px;
	background: #ff1957;
	border-radius: 6px;
  color: #fff;
	padding: 12px 16px;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media only screen and (max-width: 640px) {
  .hisu {
    padding-right: 70px;
  }
  .hisu::before {
		font-size: 12px;
    padding: 7px 12px;
	}
}
/* form_present_list ------------------------------*/
#form .form_present_list li label.radio {
  width: 100%;
	font-weight: 500;
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 18px;
}
#form .form_present_list li label.radio .text-sm{
	font-size: 16px;
	font-weight: normal;
	margin-top: 12px;
	display: block;
}
@media only screen and (max-width: 640px) {
  #form .form_present_list li label.radio {
    font-size: 15px;
	}
	#form .form_present_list li label.radio .text-sm{
		font-size: 13px;
	}
}
/* form_mailmagazine_list ------------------------------*/
#form .form_mailmagazine_list li label.radio {
  width: 100%;
	font-weight: 500;
	font-size: 18px;
	line-height: 2;
	margin-bottom: 18px;
}
#form .form_mailmagazine_list li label.radio::before{
	top: 43%;
}
#form .form_mailmagazine_list li label.radio::after{
	top: 43%;
}
@media only screen and (max-width: 640px) {
  #form .form_mailmagazine_list li label.radio {
		font-size: 14px;
		line-height: 1.6;
	}
}
/* form_questionnaire_list ------------------------------*/
#form .form_questionnaire_list li label.checkbox {
  width: 100%;
	font-size: 18px;
	margin-bottom: 18px;
	padding-left: 50px;
	line-height: 30px;
}
#form .form_questionnaire_list li:last-child label.checkbox{
	margin-bottom: 7px;
}
#form .form_questionnaire_list li input[type=text]{
	margin-left: 50px;
}
@media only screen and (max-width: 640px) {
  #form .form_questionnaire_list li label.checkbox {
    font-size: 14px;
		line-height: 28px;
	}
	#form .form_questionnaire_list li input[type=text]{
		width: 85%;
	}
}
/* form_main_item ------------------------------*/
.form_main_item {
	display: block;
  width: 100%;
  margin: 8% 0;
  position: relative;
}
.form_main_item:first-child{
	margin-top: 0;
}
.form_main_item.u-sectionSprit{
	margin-top: 15%;
}
.form_main_list{
	display: table;
  width: 100%;
  margin: 8% 0;
  position: relative;
}
.form_head,
.form_content {
	display: table-cell;
}
.form_head {
	width: 200px;
}
.form_content--faq{
	font-size: 20px;
	font-weight: bold;
}
.form_content--faq .answer_text{
	margin-right: 15px;
}
.form_content.form_content--faq input{
	width: 84%;
}
.form_content input {
  width: 100%;
}
.form_content textarea{
  width: 100%;
}

.form_address_list li {
  display: table;
  width: 100%;
}
.form_address_list li + li {
  margin-top: 20px;
}
.form_address_head,
.form_address_content {
  display: table-cell;
}
.form_address_head {
  font-weight: 500;
  font-size: 16px;
  width: 110px;
	text-align: center;
	vertical-align: middle;
}
@media only screen and (max-width: 640px) {
	.form_main,.form_sub{
		width: 91.4%;
	}
  .form_main h4 {
    font-size: 14px;
    font-weight: bold;
  }
  .form_main_list .form_main_item {
    display: block;
    width: 100%;
    margin: 8% 0;
    position: relative;
	}
	.form_main_item.u-sectionSprit{
		margin-top: 8%;
	}
  .form_head,
  .form_content {
    display: block;
  }
  .form_head {
    width: 210px;
	}
	.form_content--faq{
		align-items: center;
		font-size: 16px;
	}
	.form_content--faq .answer_text{
		margin-right: 8px;
	}
	.form_content.form_content--faq input{
		width: 80%;
	}
  .form_content input {
    width: 100%;
  }
  .form_address_list li {
    display: table;
    width: 100%;
  }
  .form_address_list li + li {
    margin-top: 7%;
  }
  .form_address_head,
  .form_address_content {
    display: table-cell;
  }
  .form_address_head {
    font-weight: bold;
    font-size: 13px;
    width: 85px;
    text-align: center;
	}
}

/* privacy_check ------------------------------*/
.privacy_text{
	line-height: 1.6;
	color: #922;
}
.privacy_checkBox{
	text-align: center;
}
.privacy_checkBox label{
	font-size: 30px;
	font-weight: bold;
}
#form .privacy_checkBox label.checkbox::before{
	width: 9px;
	height: 14px;
	top: 47%;
	left: 9px;
}
#form .privacy_checkBox label.checkbox::after{
	width: 25px;
	height: 25px;
	left: 0;
}
.privacy_check {
  text-align: center;
  font-weight: bold;
  margin: 30px 0 0;
  position: relative;
}
.privacy_check div.mfp_err {
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  bottom: -25px;
}
.privacypolicy {
  background: #fff;
  padding: 23px 3.5%;
	border: 1px solid #dedee1;
}
.privacypolicy h5 {
  margin-bottom: 30px;
  font-size: 20px;
  line-height: 1.8;
}
.privacypolicy p {
  font-weight: normal;
  text-align: left;
  font-size: 18px;
  line-height: 1.5;
}

@media only screen and (max-width: 640px) {
	.privacy_text{
		font-size: 12px;
	}
	.privacy_checkBox label{
		font-size: 18px;
	}
	#form .privacy_checkBox label.checkbox::before{
    width: 7px;
    height: 12px;
    top: 47%;
    left: 16px;
	}
	#form .privacy_checkBox label.checkbox::after{
		width: 20px;
    height: 20px;
    left: 8px;
	}
  .privacy_check {
    margin: 10% 0 0;
    font-size: 14px;
  }
  .privacy_check div.mfp_err {
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    bottom: -25px;
  }
  .privacypolicy {
		padding: 13px 3.5%;
    margin-top: 5%;
  }
  .privacypolicy h5 {
    margin-bottom: 5%;
    font-size: 14px;
  }
  .privacypolicy p {
    font-size: 13px;
    line-height: 1.5;
  }
}
@media only screen and (max-width: 340px) {
	.privacy_checkBox label{
		font-size: 16px;
	}
}
/* submit_btn ------------------------------*/
.submit_btnwrap button.submit_btn {
  width: 100%;
	font-size: 30px;
	font-weight: bold;
  color: #fff;
  background: #009933;
  /* background: #aaa; */
  height: 100px;
  border-radius: 5px;
  box-shadow: 0 5px #006633;
  /* box-shadow: 0 5px #666; */
  transition: .2s;
  border: none;
  user-select: none;
}
.submit_btnwrap button.submit_btn:hover {
  opacity: .8;
}
.submit_btnwrap div {
  width: 100%;
  font-size: 18px;
  color: #fff;
  background: #aaa;
  height: 75px;
  border-radius: 5px;
  box-shadow: 0 5px #666;
  transition: .2s;
  border: none;
  text-align: center;
  padding: 30px 0;
  user-select: none;
}
@media only screen and (max-width: 640px) {
  .submit_btnwrap button.submit_btn {
    font-size: 16px;
    height: 55px;
    font-weight: normal;
  }
  .submit_btnwrap div {
    font-size: 12px;
    height: 55px;
    padding: 20px 0;
  }
}
@media only screen and (max-width: 340px) {
  .submit_btnwrap div {
		font-size: 10px;
	}
}
/* overlay ------------------------------*/
div#mfp_overlay_inner {
  padding: 50px;
  max-width: 800px;
  width: 80%;
}
div#mfp_overlay_inner h4 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 30px;
}
table#mfp_confirm_table tr th, table#mfp_confirm_table tr td {
  text-align: left;
  font-size: 16px;
  border-top: solid 1px #CCC;
  padding: 20px 20px;
}
table#mfp_confirm_table tr th {
  white-space: nowrap;
  width: 200px;
  font-weight: bold;
}
table#mfp_confirm_table tr.mfp_colored {
  background: #fff;
}
.mfp_element_button {
    width: 45%;
}
.mfp_element_submit, .mfp_element_reset, .mfp_element_button, button.mfp_next, button.mfp_prev {
  width: 45%;
  border-radius: 5px;
  padding: 20px 20px;
  color: #FFF;
  border-bottom: solid 3px #006633;
  background: #009933;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
}
div.mfp_buttons button#mfp_button_cancel {
  background: #DDD;
  color: #000;
  border-bottom: solid 3px #BBB;
}
.mfp_element_submit:hover, .mfp_element_reset:hover, .mfp_element_button:hover, button.mfp_next:hover, button.mfp_prev:hover {
  background: #009933;
  box-shadow: none;
  opacity: .8;
}
@media only screen and (max-width: 640px) {
  div#mfp_overlay_inner {
    padding: 8% 6%;
    width: 91.5625%;
  }
  div#mfp_overlay_inner h4 {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 30px;
  }
  table#mfp_confirm_table tr th, table#mfp_confirm_table tr td {
    font-size: 13px;
    padding: 5% 1%;
  }
  table#mfp_confirm_table tr th {
    white-space: unset;
    width: 40%;
    font-weight: bold;
  }
  table#mfp_confirm_table tr.mfp_colored {
    background: #fff;
  }
  .mfp_element_button {
      width: 45%;
  }
  .mfp_element_submit, .mfp_element_reset, .mfp_element_button, button.mfp_next, button.mfp_prev {
    width: 49%;
    padding: 20px 20px;
  }
  div.mfp_buttons button#mfp_button_cancel {
    background: #DDD;
    color: #000;
    border-bottom: solid 3px #BBB;
  }
  .mfp_element_submit:hover, .mfp_element_reset:hover, .mfp_element_button:hover, button.mfp_next:hover, button.mfp_prev:hover {
    background: #009933;
    box-shadow: none;
    opacity: .8;
  }
}
/* ------------------------------
- thanks
------------------------------ */
.thanks {
  padding: 7%;
}
.thanks_inner {
  width: 90%;
  box-sizing: border-box;
  border: 1px dotted #BBB;
  padding: 7%;
  max-width: 800px;
  background: #fff;
  margin: 0 auto;
}
.thanks h2 {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 40px;
}
.thanks p {
  font-size: 16px;
  line-height: 1.8;
}
.thanks_btn {
  width: 100%;
  font-size: 18px;
  color: #fff;
  background: #009933;
  border-radius: 5px;
  box-shadow: 0 5px #006633;
  transition: .2s;
  padding: 20px;
  display: block;
  text-align: center;
  margin-top: 40px;
}
@media only screen and (max-width: 750px) {
  .thanks {
    padding: 10% 4.21875%;
  }
  .thanks_inner {
    width: 100%;
    padding: 10% 8%;
  }
  .thanks h2 {
    font-size: 16px;
    margin-bottom: 10%;
  }
  .thanks p {
    font-size: 14px;
  }
  .thanks_btn {
    font-size: 14px;
    margin-top: 10%;
  }
}
.error_messe{
	color:red;
}
.err_btn{
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
}
.kakunin_content input{
		text-align: center;
    padding: 5px 20px;
		width: 100%;
    margin-top: 3rem;
}
.formTable{
	text-align:left;
  line-height: 20px;
}
table.formTable th{
	padding:10px;
	border-bottom: 1px dotted #ddd;
}
table.formTable td{
	padding:10px;
	border-bottom: 1px dotted #ddd;
}
.btnarea{
		display: table;
    width: 100%;
    max-width: 360px;
    margin: 3rem auto 0;
}
.btnarea .btnitem{
    display: table-cell;
    width: 50%;
}
.btnarea .btnitem input{
		margin: 2%;
    width: 96%;
    padding: 15px 30px;
}
.btnarea .btnitem-back input{
    border-radius: 5px;
    box-shadow: 0 5px #ddd;
    transition: .2s;
    border: none;

}
.btnarea .btnitem-submit input{
		color: #fff;
    background: #009933;
    border-radius: 5px;
    box-shadow: 0 5px #006633;
    transition: .2s;
    border: none;
}
.hisumark{
		font-size: 14px;
    background: #ff1957;
    border-radius: 6px;
    color: #fff;
    padding: 12px 16px;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-right: 20px;
}
@media only screen and (max-width: 750px) {
.formTable{
	font-size:12px;
  line-height: 20px;
}
.hisumark{
		font-size: 12px;
    padding: 7px 12px;
    margin-right: 10px;
}
}