@charset "utf-8";

/* ================================================================================
form
================================================================================= */


/* ================================================================================
form　共通パーツ
================================================================================= */
.form_area input[type="text"],
.form_area input[type="email"],
.form_area input[type="tel"],
.form_area input[type="number"],
.form_area button,
.form_area textarea {
  width:100%;
  margin:0;
  padding:6px 10px;
  background:#fff;
  border:1px solid #c9caca;
  outline:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  box-sizing:border-box;
  vertical-align:middle;
  border-radius:0;
  line-height:normal;
}
.form_area input[type="checkbox"] {
  position:relative;
}
.form_area textarea {
  min-height:240px;
}
.form_area input.size_s {
  max-width:170px;
  margin-right:10px;
}
.form_area input.mid {
  max-width:300px;
}

.bt_form {
  display:-webkit-flex;
  display:flex;
  -webkit-justify-content:center;
  justify-content:center;
  margin:60px auto;
  text-align:center;
}
.bt_form li + li {
  margin-left:40px;
}
.bt_form a,
.bt_form button {
  display:-webkit-flex;
  display:flex;
  -webkit-justify-content:center;
  justify-content:center;
  -webkit-align-items:center;
  align-items:center;
  position:relative;
  width:310px;
  height:50px;
  margin:0;
  padding:0 15px;
  background:#e8030c;
  border:none;
  color:#fff;
  font-size:1.8rem;
  font-weight:bold;
  cursor:pointer;
  text-align:center;
  line-height:1.4;
}
.bt_form button span {
  display:block;
  text-align:center;
}
.bt_form .icon_arrow::after {
  content:"";
  display:block;
  position:absolute;
  top:50%;
  width:8px;
  height:16px;
  margin:-8px;
  background:url(../img/bt_form_arrow.svg) no-repeat;
  background-size:contain;
  vertical-align:middle;
}
.bt_form .icon_prev::after {
  left:25px;
}
.bt_form .icon_next::after {
  right:25px;
  transform:scale(-1,1);
}
.bt_form a:hover,
.bt_form button:hover {
  opacity:.65;
}
.bt_form .color {
  color:#e8030c;
  background:#fdebe7;
}
.bt_form .color .icon_arrow::after {
  background:url(../img/bt_form_arrow_red.svg) no-repeat;
}

/* プレスホルダーカラー　*/
::-webkit-input-placeholder { color:#c9caca; }
::-moz-placeholder { color:#c9caca; opacity: 1; }
:-ms-input-placeholder { color:#c9caca; }
:placeholder-shown { color:#c9caca; }

/* SP調整 ----------------------------　*/
@media (max-width:768px) {
.form_area input[type="text"],
.form_area input[type="email"],
.form_area input[type="tel"],
.form_area textarea {
  max-width:100%;
  padding:2px 10px;
}
.form_area textarea {
  min-height:200px;
}
.form_area input.size_s {
  max-width:170px;
  margin-right:10px;
}
.bt_form {
  display:block;
  max-width:360px;
  margin:30px auto;
  padding:0 15px;
}
.bt_form li {
   margin:0 auto;
}
.bt_form li + li {
  margin:10px auto 0;
}
.bt_form button,
.bt_form a {
  width:100%;
  height:auto;
  margin:0;
  padding:15px;
  font-size:1.6rem;
  text-align:center;
}
.bt_form span {
  text-align:center;
}
.bt_form .icon_arrow:after {
  width:23px;
  height:14px;
  margin-left:0;
}
}


/* ================================================================================
select
================================================================================= */
select::-ms-expand {
  display:none;
}
.select_wrap {
  width:290px;
  position:relative;
  display:inline-block;
}
.select_wrap + .select_wrap {
  margin-left:30px;
}
.select_wrap::after {
  content:"";
  display:block;
  position:absolute;
  top:0;
  right:0;
  width:36px;
  height:100%;
  background:#c9caca;
  z-index:-2;
}
.select_wrap::before {
  content:"";
  display:block;
  position:absolute;
  top:50%;
  right:12px;
  width:0;
  height:0;
  margin-top:-4px;
  border-style:solid;
  border-width:10px 6px 0 6px;
  border-color:#fff transparent transparent transparent;
  z-index:-1;
}
.select {
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  width:100%;
  height:36px;
  padding:0 10px;
  background:transparent;
  position:relative;
  z-index:1;
  border:1px solid #c9caca;
  border-radius:0;
  font-size:1.5rem;
}
.select_none {
  display:none;
}

/* SP調整 ----------------------------　*/
@media (max-width:768px) {
.select_wrap + .select_wrap {
  margin:15px 0 0 0;
}
.select_wrap::after {
  width:33px;
}
.select_wrap::before {
  right:11px;
}
.select {
  height:30px;
  font-size:1.4rem;
}
}


/* ================================================================================
form_list
================================================================================= */
.form_list {
  max-width:900px;
  margin:0 auto;
  color:#000;
  font-size:1.5rem;
}
.form_list dt {
  position:relative;
}
.form_list .icon_required {
  display:inline-block;
  padding:4px 7px;
  background:#e8030c;
  color:#fff;
  line-height:1;
  border-radius:5px;
}
.form_list .supp {
  color:#c9caca;
}
.form_list #address1 {
  margin-top:15px;
}
.form_list > div:not(:first-child) {
  border-top:1px solid #e4e4e4;
}

/* PC調整 ----------------------------　*/
@media (min-width:769px) {
.form_list > div {
  display:-webkit-flex;
  display:flex;
}
.form_list dt {
  width:200px;
  padding:22px 0;
}
.form_list dd {
  -webkit-flex:1;
  flex:1;
  padding:17px 0;
}
.form_list .icon_required {
  position:absolute;
  top:23px;
  right:25px;
}
}

/* SP調整 ----------------------------　*/
@media (max-width:768px) {
.form_list > div {
  padding:0 15px;
}
.form_list > div + div {
  margin-top:0;
}
.form_list dt {
  margin:10px 0 7px;
  font-size:1.4rem;
}
.form_list dd {
  margin:0 0 12px;
}
.form_list .icon_required {
  margin-left:.65em;
  font-size:1.2rem;
}
.form_list .supp {
  display:block;
  margin-top:5px;
  font-size:1.3rem;
  line-height:1.4;
}
.form_list #address1 {
  margin-top:10px;
}
}


/* ================================================================================
tmpl_form テンプレート設定
================================================================================= */
.tmpl_form .tmpl_ttl {
  margin-bottom:70px;
  padding:6px;
  text-align:center;
  font-size:2.4rem;
  letter-spacing:.1em;
  font-weight:bold;
  background:#e8030c;
  color:#fff;
}
.tmpl_form .tmpl_ttl.icon:before {
  content:"";
  display:block;
  width:54px;
  height:42px;
  margin:0 auto 29px;
  background:url(../img/icon_mail.svg) no-repeat;
  background-size:contain;
}
.tmpl_form .txt_supp {
  text-align:center;
}
.tmpl_form .form_list .msg {
  color:#e8030c;
}
.tmpl_form .form_list dd:empty {
  height:52px;
}

/* PC調整 ----------------------------　*/
@media (min-width:769px) {
.tmpl_form .form_contents {
  max-width:1040px;
  margin:0 auto 100px;
}
.tmpl_form .form_list dt {
  padding:17px 0;
}
.tmpl_form .txt_supp {
  margin-bottom:40px;
}
}

/* SP調整 ----------------------------　*/
@media (max-width:768px) {
.tmpl_form .form_contents {
  margin:0 auto 60px;
}
.tmpl_form .tmpl_ttl {
  margin:0 auto 30px;
  font-size:1.8rem;
}
.tmpl_form .form_list {
  margin:30px 0;
}
.tmpl_form .form_list dt {
  margin:10px 0 2px;
}
.tmpl_form .form_list dd:empty {
  height:25px;
}
.tmpl_form .bt_form {
  margin-top:30px;
}
}
