.contact__block-ttl {
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.5;
  border-left: 4px solid #00818a;
  padding-left: 16px;
  margin-bottom: 24px
}
.contact__block-box {
  display: grid;
  gap: 8px;
  background-color: #f3f3f3;
  border-radius: 8px;
  padding: 16px
}
.contact__block-nums {
  display: grid;
  gap: 8px
}
.contact__block-unit {
  display: grid;
  grid-template-columns: 40px auto;
  align-items: center;
  gap: 8px
}
.contact__block-icon {
  display: grid;
  place-content: center;
  width: 40px;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 50%
}
.contact__block-num {
  font-weight: 700;
  font-size: 2.2rem;
  letter-spacing: .04em;
  line-height: 1.5;
  color: #00818a
}
.contact__block-note {
  font-size: 1.4rem;
  letter-spacing: .04em
}
.contact-form {
  display: grid;
  gap: 48px;
  letter-spacing: .04em
}
.contact-form__body {
  display: grid;
  gap: 24px
}
.contact-form__row {
  display: grid;
  gap: 8px
}
.contact-form__label {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: start;
  align-items: center;
  gap: 16px
}
.contact-form__label-ttl {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1
}
.contact-form__badge {
  display: grid;
  place-items: center;
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1;
  color: #fff;
  background-color: #e13b3b;
  border-radius: 2px;
  padding: 4px 6px
}
.contact-form__input,
.contact-form__select-menu,
.contact-form__textarea {
  width: 100%;
  font-size: 1.4rem;
  line-height: 1.4;
  color: #333;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 16px 20px
}
.contact-form__input::-moz-placeholder,
.contact-form__select-menu::-moz-placeholder,
.contact-form__textarea::-moz-placeholder {
  color: #8c8c8c
}
.contact-form__input::placeholder,
.contact-form__select-menu::placeholder,
.contact-form__textarea::placeholder {
  color: #8c8c8c
}
.contact-form__group {
  display: grid;
  gap: 16px
}
.contact-form__select {
  display: grid;
  position: relative
}
.contact-form__select::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
  position: absolute;
  top: calc(50% - 3px);
  right: 22px;
  rotate: 45deg;
  pointer-events: none
}
.confirm-screen .contact-form__select::after {
  display: none;
}
.contact-form__select-menu {
  padding-right: 44px;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none
}
.contact-form__textarea {
  height: 326px;
  resize: vertical
}
.contact-form__foot {
  display: grid;
  gap: 40px
}
.contact-form__note {
  display: grid;
  gap: 8px;
  font-size: 1.3rem;
  line-height: 1.4
}
.contact-form__note-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px
}
.contact-form__privacy {
  display: grid;
  gap: 24px
}
.contact-form__privacy-ttl {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1
}
.contact-form__privacy-block {
  display: grid;
  gap: 16px
}
.contact-form__privacy-txt {
  font-size: 1.4rem;
  line-height: 1.4
}
.contact-form__check {
  display: grid;
  grid-template-columns: 22px auto;
  align-items: center;
  gap: 8px;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.5rem;
  line-height: 1.4;
  cursor: pointer
}
.contact-form__check-input {
  opacity: 0;
  position: absolute;
  width: 1px;
  height: 1px
}
.contact-form__check-icon {
  display: grid;
  place-content: center;
  width: 22px;
  height: 22px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px
}
.contact-form__check-icon::before {
  content: "";
  width: 12px;
  height: 10px;
  background-color: #fff;
  -webkit-mask: url(../img/common/icon_check_02.svg) no-repeat center/contain;
  mask: url(../img/common/icon_check_02.svg) no-repeat center/contain;
  opacity: 0
}
.contact-form__check-input:checked + .contact-form__check-icon {
  background-color: #00818a;
  border-color: #00818a
}
.contact-form__check-input:checked + .contact-form__check-icon::before {
  opacity: 1
}
.contact-form__privacy .wpcf7-list-item {
  display: block
}
.contact-form__privacy .wpcf7-list-item label {
  display: grid;
  grid-template-columns: 22px auto;
  align-items: center;
  gap: 8px;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.5rem;
  line-height: 1.4;
  cursor: pointer
}
.contact-form__privacy .wpcf7-list-item input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  width: 22px;
  height: 22px;
  display: grid;
  place-content: center;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer
}
.contact-form__privacy .wpcf7-list-item input[type="checkbox"]::before {
  content: "";
  width: 12px;
  height: 10px;
  background-color: #fff;
  -webkit-mask: url(../img/common/icon_check_02.svg) no-repeat center/contain;
  mask: url(../img/common/icon_check_02.svg) no-repeat center/contain;
  opacity: 0
}
.contact-form__privacy .wpcf7-list-item input[type="checkbox"]:checked {
  background-color: #00818a;
  border-color: #00818a
}
.contact-form__privacy .wpcf7-list-item input[type="checkbox"]:checked::before {
  opacity: 1
}
.input-screen,
.confirm-screen,
.complete-screen {
  display: none
}
.input-screen.is-visible,
.confirm-screen.is-visible {
  display: grid;
  gap: 48px
}
.complete-screen.is-visible {
  display: grid;
  gap: 16px;
  justify-items: center;
  text-align: center
}
.complete-screen svg {
  width: 48px;
  height: 48px
}
.complete-screen svg path {
  fill: #00818a
}
.complete-txt {
  font-weight: 700;
  font-size: 1.6rem
}
.contact-form__submit {
  display: grid;
  justify-content: center;
  gap: 16px
}
.contact-form__btn {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  display: grid;
  justify-items: center;
  align-items: center;
  width: 300px;
  font-weight: 700;
  font-size: 1.7rem;
  letter-spacing: .08em;
  line-height: 1.6;
  text-align: center;
  color: #fff;
  background-color: #00818a;
  border-radius: calc(infinity * 1px);
  padding: 16px 22px;
  position: relative;
  transition: opacity .3s ease-out
}
.contact-form__btn::before {
  content: "";
  width: 21px;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 18px;
  translate: 0 -50%
}
.contact-form__btn::after {
  content: "";
  width: 8px;
  aspect-ratio: 7/11;
  background-color: #00818a;
  -webkit-mask: url(../img/common/icon_arrow_01.svg) no-repeat center/contain;
  mask: url(../img/common/icon_arrow_01.svg) no-repeat center/contain;
  position: absolute;
  top: 50%;
  right: calc(18px + (21px - 8px) / 2);
  translate: 0 -50%
}
.contact-form__btn--back {
  background-color: #fff;
  color: #00818a;
  border: 1px solid #00818a
}
.contact-form__btn--back::before {
  right: auto;
  left: 18px;
  background: #00818a;
}
.contact-form__btn--back::after {
  right: auto;
  left: calc(17px + (21px - 8px) / 2);
  background: #fff;
  scale: -1 1
}
.contact-form__btn-icon {
  display: grid;
  place-content: center;
  width: 21px;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 18px;
  translate: 0 -50%
}
.contact-form__btn-icon::before {
  content: "";
  width: 8px;
  aspect-ratio: 7/11;
  background-color: #00818a;
  -webkit-mask: url(../img/common/icon_arrow_01.svg) no-repeat center/contain;
  mask: url(../img/common/icon_arrow_01.svg) no-repeat center/contain
}
.contact-form__btn:disabled {
  pointer-events: none;
  opacity: .4;
  cursor: not-allowed
}
.wpcf7-response-output {
  display: none;
}
@media screen and (min-width:768px) {
  .contact__block-ttl {
    font-size: 2.4rem;
    margin-bottom: 32px
  }
  .contact__block-box {
    padding: 24px
  }
  .contact__block-nums {
    grid-template-columns: auto 1fr;
    gap: 24px
  }
  .contact-form__label-ttl {
    font-size: 1.6rem
  }
  .contact-form__badge {
    font-size: 1.3rem
  }
  .contact-form__input,
  .contact-form__select-menu,
  .contact-form__textarea {
    font-size: 1.5rem
  }
  .contact-form__note {
    font-size: 1.4rem
  }
  .contact-form__privacy-ttl {
    font-size: 1.6rem
  }
  .contact-form__submit {
    grid-auto-flow: column;
  }
}