@charset "UTF-8";

#form {
  margin-top: 50px; }
  #form .topText {
    margin: 5px 0 40px;
    font-weight: 700; }
  #form dl {
    background-color: #E9E9E9;
    padding: 30px;
    display: flex;
    flex-wrap: wrap;
    border-top: none;
    text-align: justify;
    text-justify: inter-ideograph;
    margin: 40px 0; }
  #form dt {
    width: 25%;
    padding: 25px 15px;
    box-sizing: border-box;
    border-bottom: solid 1px #DDD; }
  #form dd {
    padding: 25px 15px;
    margin: 0;
    width: 75%;
    box-sizing: border-box;
    border-bottom: solid 1px #DDD; }
  #form input[type="tel"], #form input[type="text"], #form input[type="email"] {
    height: 45px;
    font-size: 16px;
    border: 1px solid #CCC;
    padding: 3px 10px;
    background-color: #FFF; }
  #form textarea {
    font-size: 16px;
    border-radius: 5px;
    border: 1px solid #CCC;
    padding: 3px 10px;
    width: 100%;
    background-color: #FFF;
    color: #000; }
  #form select {
    height: 40px;
    border: 1px solid #CCC;
    padding: 3px 10px;
    background-color: #FFF; }
  #form input, #form select {
    vertical-align: middle;
    border-radius: 5px; }
  #form .boxW100 input, #form .boxW100 textarea {
    width: 100%;
    box-sizing: border-box; }
  #form .boxW49 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
  #form .boxW49 input {
    width: 49%;
    box-sizing: border-box; }
  #form .boxW50 input {
    width: 49%;
    box-sizing: border-box; }
  #form .boxW50 select {
    width: 49%;
    box-sizing: border-box; }
  #form .boxW20 input {
    width: 20%;
    box-sizing: border-box; }
  #form .boxW20 span {
    padding-left: 10px; }
  #form .radio input {
    height: auto;
    transform: scale(1.7);
    vertical-align: inherit; }
  #form .must {
    display: inline-block;
    background-color: red;
    font-size: 10px;
    line-height: 1.5em;
    color: #FFF;
    margin: 0 0 0 10px;
    padding: 2px 5px; }
  #form #image-btn input {
    cursor: pointer;
    display: block;
    border: 1px solid #111;
    padding: 10px 50px;
    margin: 30px auto 0;
    background-color: #111;
    color: #ffffff;
    transition: all .5s ease;
  width: 50%; }
    #form #image-btn input:hover {
    background-color: #fff;
    color: #111;
    transition: all .5s ease; }
  #form .submitBtn, #form .backBtn {
    cursor: pointer;
    display: block;
    border: 1px solid #111;
    padding: 10px 50px;
    background-color: #111;
    color: #ffffff;
    transition: all .5s ease; }
    #form .submitBtn:hover, #form .backBtn:hover {
    background-color: #fff;
    color: #111;
    transition: all .5s ease; }
  @media screen and (max-width: 767px) {
    #form dl {
      flex-direction: column;
      display: block;
      margin: 25px auto;
      padding: 25px; }
    #form dt {
      width: 100%;
      padding: 15px 0 10px;
      border-bottom: none; }
    #form dd {
      padding: 0 0 15px;
      width: 100%; }
    #form #image-btn input{
      width: 100%;
    } }

.formBtn {
  display: flex;
  justify-content: center;
  margin-top: 20px; }
  .formBtn input {
    background-color: #E9E9E9;
    font-weight: 700;
    padding: 10px 20px;
    border-radius: 5px;
    display: inline-block;
    margin: 0 10px;
    color: #FFF; }

/*チェックボックス*/
.checkBox {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }

.inputGroup {
  width: 49.5%;
  display: inline-block;
  margin: 0 0 5px;
  position: relative; }
  @media screen and (max-width: 767px) {
    .inputGroup {
      width: 100%; } }

.inputGroup label {
  padding: 12px 15px;
  width: 100%;
  box-sizing: border-box;
  display: block;
  text-align: left;
  color: #3C454C;
  cursor: pointer;
  position: relative;
  z-index: 2;
  transition: color 200ms ease-in;
  overflow: hidden;
  background-color: #FFF; }

.inputGroup label:before {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  content: '';
  background-color: #E9E9E9;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale3d(1, 1, 1);
  transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  z-index: -1; }

.inputGroup label:after {
  width: 26px;
  height: 26px;
  content: '';
  border: 2px solid #D1D7DC;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.414 11L4 12.414l5.414 5.414L20.828 6.414 19.414 5l-10 10z' fill='%23fff' fill-rule='nonzero'/%3E%3C/svg%3E ");
  background-repeat: no-repeat;
  background-position: -1px 0px;
  border-radius: 50%;
  z-index: 2;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  transition: all 200ms ease-in; }

.inputGroup input:checked ~ label:before {
  transform: translate(-50%, -50%) scale3d(56, 56, 1);
  opacity: 1; }

.inputGroup input:checked ~ label:after {
  background-color: #333;
  border-color: #333; }

.inputGroup input {
  width: 26px;
  height: 26px;
  order: 1;
  z-index: 2;
  position: absolute;
  left: 30px;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  visibility: hidden; }

@media screen and (min-width: 767px) {
  #tel .telNum a {
    pointer-events: none;
    cursor: default;
    text-decoration: none; } }
@media screen and (max-width: 767px) {
  #tel .telNum span {
    font-size: 2.5rem; }
  #tel .telNum svg {
    width: 30px;
    height: 30px; } }
