@charset "UTF-8";

/* =======================================================
* sub_main
* ======================================================= */
#sub_main {
  background: url(../images/bg-contact.jpg) no-repeat center/cover;
}

/* =======================================================
* contact
* ======================================================= */
.flow {
  margin: 30px auto 0;
  max-width: 700px;
}

.flow dt {
  width: 150px;
  height: 150px;
  text-align: center;
  background: rgb(46 113 98 / 80%);
  border-radius: 50%;
  padding: 10px;
  box-sizing: border-box;
  margin-bottom: 30px;
}

.flow dt .step_num {
  text-transform: capitalize;
  font-size: 1.7rem;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: bold;
  color: #fff;
}

.flow dt img {
  width: 90px;
  height: 80px;
  object-fit: contain;
}

.flow dd {
  width: 73%;
  position: relative;
  margin-bottom: 30px;
}

.flow dd span {
  color: var(--color-theme);
  font-weight: bold;
  font-size: 1.6rem;
}

.flow dd:not(:last-child)::after {
  position: absolute;
  font-family: "Font Awesome 5 Free";
  content: "\f103";
  font-weight: 900;
  bottom: -70px;
  left: 60px;
  color: var(--color-theme);
  font-size: 2.5rem;
}

.caption {
  max-width: 700px;
  margin: 0px auto 70px;
  text-align: center;
  color: var(--color-theme-accent);
  font-weight: bold;
  font-size: 1.4rem;
}


/* フォーム */
form {
  max-width: 700px;
  margin: 0px auto;
}

label {
  display: block;
  margin: 35px auto 10px;
}

label small {
  font-size: 11px;
}

input,
select {
  vertical-align: text-top;
  font-size: 30px;
  margin: 3px;
}

input[type="email"],
input[type="number"],
input[type="text"],
input[type="tel"],
input[type="zipcode"],
input[type="date"],
input[type="city"],
input[type="address"],
select,
textarea {
  width: 100%;
  display: block;
  border: 1px solid #ccc;
  outline: none;
  height: 5.5rem;
  line-height: 1.8;
  background: #f9f9f9;
  font-size: 1.5rem;
  padding-left: 10px;
  border-radius: 5px;
  box-sizing: border-box;
  font-family: 'Noto Sans JP', Arial, Verdana, 游ゴシック, YuGothic, 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', メイリオ, Meiryo, sans-serif;
}


textarea {
  height: 300px;
  padding: 10px;
}

form sup {
  background-color: #e65a5a;
  color: #fff;
  font-size: 10px;
  margin-left: 4px;
  padding: 1px 5px;
  border-radius: 5px;
  vertical-align: text-top;
}

form sup.any {
  background-color: #959796;
}

button {
  background: #52b12b;
  border: 2px solid #52b12b;
  padding: 15px 80px;
  color: #fff;
  font-weight: bold;
  font-size: 1.6rem;
  border-radius: 5px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  letter-spacing: .1em;
}

button:hover {
  background: #fff;
  color: #52b12b;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  opacity: 1;
}

@media screen and (max-width:768px) {
  .flow {
    align-items: flex-start !important;
  }

  .flow dt {
    width: 90px;
    height: 90px;
    margin-bottom: 50px;
  }

  .flow dt .step_num {
    font-size: 1.4rem;
    margin-bottom: 0;
  }

  .flow dt img {
    width: 60px;
    height: 50px;
  }

  .flow dd {
    width: 65%;
    margin-bottom: 50px;
  }

  .flow dd:not(:last-child)::after {
    bottom: -50px;
    font-size: 2rem;
  }

  .caption {
    text-align: left;
    font-size: 1.3rem;
  }

}