@charset "UTF-8";

.ec-label {
  margin-bottom: 11px;
  font-size: 14px;
  font-weight: 500;
}

.ec-required {
  border: 1px solid #B70000;
  color: #B70000;
  font-size: 13px;
  padding: 1px 7px;
  margin-left: .46em;
}

.ec-select,
.ec-input {
  line-height: 1;
}

.ec-input input,
.ec-birth input,
.ec-select input,
.ec-halfInput input,
.ec-numberInput input,
.ec-zipInput input,
.ec-telInput input {
  border-radius: 0;
}

.ec-input input::-webkit-input-placeholder,
.ec-birth input::-webkit-input-placeholder,
.ec-select input::-webkit-input-placeholder,
.ec-halfInput input::-webkit-input-placeholder,
.ec-numberInput input::-webkit-input-placeholder,
.ec-zipInput input::-webkit-input-placeholder,
.ec-telInput input::-webkit-input-placeholder {
  color: #C1C1C1;
  font-size: 14px;
  font-weight: 400;
}

.ec-input input,
.ec-birth input,
.ec-select input,
.ec-halfInput input,
.ec-numberInput input,
.ec-zipInput input,
.ec-telInput input {
  margin-bottom: 12px;
}

.ec-borderedDefs dt {
  margin-top: 20px;
}

.ec-borderedDefs dd {
  margin-bottom: 0;
  padding-bottom: 8px;
  line-height: 2.5;
}

/* 小見出し */
.entry__page-subttl {
  font-weight: 500;
  color: #000000;
}

/* 入力スペースを幅100％にする */
input#entry_address_addr01,
input#entry_address_addr02,
input#entry_phone_number {
  max-width: 100%;
  width: 100%;
}

/* 性別 */
input[name="entry[sex]"],
input#entry_sex_2 {
  display: none;
}

label[for="entry_sex_3"],
label[for="entry_sex_4"] {
  display: none;
}

#entry_sex {
  display: flex;
  margin-bottom: 20px;
}

#entry_sex label {
  border: 1px solid #C1C1C1;
  width: 100%;
  margin-right: 0;
  text-align: center;
  font-size: 14px;
  height: 40px;
  color: #C1C1C1;
  background-color: #fff;
  margin-left: 5px;
}

#entry_sex label:first-of-type {
  margin-left: 0;
}

input#entry_sex_1:checked+label {
  background-color: #62839D;
  color: #fff;
  border-color: #62839D;
}

input#entry_sex_2:checked+label {
  background-color: #D84C4C;
  color: #fff;
  border-color: #D84C4C;
}

/* 生年月日 */
.ec-birth {
  display: flex;
  justify-content: space-between;
}

input#entry_birth_year {
  width: 110px;
}

input#entry_birth_month,
input#entry_birth_day {
  width: 64px;
}

.ec-birth span {
  font-size: 14px;
  color: #000;
  margin-left: 0;
  height: 40px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

/* 住所 */
.ec-zipInput {
  width: 100%;
}

.ec-zipInput span {
  color: #000;
  font-size: 14px;
}

.ec-zipInputHelp {
  display: block;
}

input#entry_postal_code {
  width: calc(100% - 31px);
  max-width: 100%;
  margin-top: 6px;
}

.ec-zipInputHelp .ec-zipInputHelp__icon {
  background: #000;
  width: 18px;
  height: 18px;
  margin-top: 0;
  top: -3px;
}

.ec-zipInputHelp .ec-zipInputHelp__icon .ec-icon img {
  width: 0.9em;
  height: 0.9em;
}

.ec-zipInputHelp__link {
  color: #000;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
}

.ec-zipInput__btn {
  display: block;
  text-align: center;
  width: 224px;
  height: 45px;
  color: #fff;
  background-color: #000;
  font-weight: 500;
  border-radius: 25px;
  margin-bottom: 19px;
  font-size: 14px;
  line-height: 45px;
}

.ec-select select {
  width: 100%;
  background-color: #fff;
  border-radius: 0;
  /* 初期値の三角矢印を非表示にする */
  appearance: none;
}

.ec-select {
  position: relative;
}

.ec-select::before {
  position: absolute;
  top: 15px;
  right: 8px;
  content: "";
  width: 0;
  height: 0;
  border-left: 7.5px solid transparent;
  border-right: 7.5px solid transparent;
  border-top: 10px solid black;
}

input#entry_address_addr01,
input#entry_address_addr02 {
  max-width: 100%;
  width: 100%;
}

.ec-halfInput {
  display: flex;
}

.ec-halfInput input[type=text] {
  width: 100%;
}

.ec-halfInput input[type=text]+input[type=text] {
  margin-left: 5px;
}

/* 利用規約 */
/* 利用規約 */
.ec-checkbox label {
  font-size: 14px;
  line-height: 1.875;
  display: inline-block;
  position: relative;
  padding-left: 34px;
  margin-bottom: 0;
}

.ec-checkbox label::before {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 25px;
  height: 25px;
  border: 2px solid #000000;
  border-radius: 6px;
  content: '';
  box-sizing: border-box;
}

.ec-checkbox input[type=checkbox]:checked+label::after {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  width: 25px;
  height: 25px;
  content: '✔';
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.ec-registerRole .ec-registerRole__actions label {
  text-align: left;
  margin-bottom: 20px;
}


@media (min-width:768px) {

  .ec-borderedDefs dt {
    margin-top: 0;
  }

  .ec-borderedDefs dl {
    padding: 25px 0 0;
  }

  .ec-input input,
  .ec-birth input,
  .ec-select input,
  .ec-halfInput input,
  .ec-numberInput input,
  .ec-zipInput input,
  .ec-telInput input,
  .ec-radio input,
  #entry_sex {
    margin-bottom: 25px;
    box-sizing: border-box;
  }

  .ec-halfInput input[type=text] {
    width: 100%;
    height: 40px;
  }

  .ec-halfInput input[type=text]+input[type=text] {
    margin-left: 38px;
  }

  .ec-required {
    position: relative;
    top: 2px;
  }

  /* 性別 */
  #entry_sex label {
    width: 165px;
    margin-left: 8px;
  }

  /* 住所 */
  .ec-zipInputHelp {
    display: inline-block;
  }

  input#entry_postal_code {
    width: 241px;
    height: 40px;
    margin-top: 0;
  }

  .ec-select select {
    width: 209px;
  }

  .ec-select::before {
    left: 210px;
    top: 20px;
  }

  input#entry_address_addr01,
  input#entry_address_addr02 {
    box-sizing: border-box;
  }

  .ec-zipInput {
    width: 100%;
  }

  .ec-zipInputHelp .ec-zipInputHelp__icon {
    top: -6px;
  }

  /* 生年月日 */
  input#entry_birth_year,
  input#entry_birth_month,
  input#entry_birth_day {
    width: 116px;
    height: 40px;
  }

  .ec-birth {
    justify-content: flex-start;
  }

  .ec-birth span {
    padding-left: 8px;
    padding-right: 31px;
  }

  /* 電話番号 */
  input#entry_phone_number {
    width: 241px;
  }

  .ec-borderedDefs dd {
    padding-bottom: 0;
  }

  /* 利用規約 */
  .ec-checkbox label::before {
    top: 0;
    transform: translateY(0);
  }

  .ec-checkbox input[type=checkbox]:checked+label::after {
    top: 25%;
  }

}