:root {
  --font-size-form-title-pc: 0.875rem; /* 14px */
  --font-size-form-title-sp: 0.8125rem; /* 13px */
  --font-size-form-require-pc: 0.875rem; /* 14px */
  --font-size-form-require-sp: 0.8125rem; /* 13px */
  --font-size-form-base-pc: 0.875rem; /* 14px */
  --font-size-form-base-sp: 0.8125rem; /* 13px */
  --font-size-form-small: 0.8125rem; /* 13px */
  --line-height-form-pc: 1.4;
  --line-height-form-sp: 1.4;
  --color-title: #5e5e5e;
  --color-item-border: transparent;
  --color-placeholder: #88a5b6;
  --color-input-background: #fff;
  --color-input-border: transparent;
  --color-select-border: transparent;
  --color-focus: #5e5e5e;
  --color-require: #dc2d2c;
  --color-select-option: #5e5e5e;
  --color-checkBox-border: #5e5e5e;
  --color-checkBox-background: #fcfdff;
  --color-checkBox-mark: #5e5e5e;
  --color-radio-border: transparent;
  --color-radio-background: #fff;
  --color-radio-mark: #5e5e5e;
  --input-height-pc: 2.375rem; /* 38px */
  --input-height-sp: 2.375rem; /* 38px */
  --textarea-height-pc: 12rem; /* 192px */
  --textarea-height-sp: 12rem; /* 192px */
  --input-padding-block-pc: 1rem; /* 16px */
  --input-padding-inline-pc: 1rem; /* 16px */
  --input-padding-block-sp: 0.875rem; /* 14px */
  --input-padding-inline-sp: 0.8125rem; /* 13px */
  --input-border-radius: 0.3125rem; /* 5px */
  --item-padding-block-pc: 1rem; /* 16px */
  --item-padding-block-sp: 0.875rem; /* 14px */
}

/*----------------------------------------
	p-form
----------------------------------------*/
.p-form {
  margin-top: 10.5rem;
  margin-bottom: 9rem;
}

@media screen and (max-width: 767px) {
  .p-form {
    margin-top: 7.5rem;
    margin-bottom: 6rem;
  }
}

/* フォームアイテム */
.p-form__item {
  display: flex;
  flex-direction: column;
  padding-block: var(--item-padding-block-pc);
  gap: 0;
}
@media (max-width: 767px) {
  .p-form__item {
    flex-direction: column;
    margin-inline: auto;
    padding-block: var(--item-padding-block-sp);
  }
}

/* フォームタイトル */
.p-form__title {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  flex-shrink: 0;
  gap: 0 0.5rem;
  align-items: center;
  margin-bottom: 0.5rem;
}
@media (max-width: 767px) {
  .p-form__title {
    width: 100%;
  }
}

.p-form__title-text {
  font-weight: 700;
  font-size: var(--font-size-form-title-pc);
  font-family: var(--font-family-ja);
  color: var(--color-title);
  letter-spacing: 0.2em;
}
@media (max-width: 767px) {
  .p-form__title-text {
    font-size: var(--font-size-form-title-sp);
  }
}

.p-form__title-require {
  display: inline-block;
  border-radius: var(--input-border-radius);
  font-weight: 500;
  font-size: var(--font-size-form-require-pc);
  color: var(--color-require);
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .p-form__title-require {
    font-size: var(--font-size-form-require-sp);
  }
}

.p-form__input {
  width: 100%;
}

.p-form__input-row {
  display: flex;
  align-items: center;
  gap: 0.3125rem 0.9375rem;
}

.p-form__input input,
.p-form__textarea textarea {
  font-family: var(--font-family-ja);
}

.p-form__input input {
  width: 100%;
  height: var(--input-height-pc);
  padding-inline: var(--input-padding-inline-pc);
  border: 1px solid var(--color-input-border);
  font-size: var(--font-size-form-base-pc);
  background-color: var(--color-input-background);
  letter-spacing: var(--letter-spacing);
}
@media (max-width: 767px) {
  .p-form__input input {
    width: 100%;
    height: var(--input-height-sp);
    padding-inline: var(--input-padding-inline-sp);
    font-size: var(--font-size-form-base-sp);
  }
}

.p-form__input input:focus,
.p-form__textarea textarea:focus,
.p-form__select select:focus {
  outline: 0.125rem solid var(--color-focus);
}

/* ファイルアップロード */
.p-form__input-file input {
  max-width: 100%;
  font-size: var(--font-size-form-base-pc);
  line-height: 1;
}
@media (max-width: 767px) {
  .p-form__input-file input {
    font-size: var(--font-size-form-base-sp);
  }
}

.p-form__input-file input[type="file"] {
  display: none;
}

.p-form__input-file .custom-file-label {
  display: inline-block;
  width: 18.75rem;
  max-width: 100%;
  height: var(--input-height-pc);
  border: 1px solid var(--color-select-border);
  border-radius: var(--input-border-radius);
  background: var(--color-input-background);
  font-family: var(--font-family-ja);
  color: var(--color-placeholder);
  font-size: var(--font-size-form-base-pc);
  line-height: var(--input-height-pc);
  padding-inline: var(--input-padding-inline-pc);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  position: relative;
}
@media (max-width: 767px) {
  .p-form__input-file .custom-file-label {
    width: 100%;
    height: var(--input-height-sp);
    font-size: var(--font-size-form-base-sp);
    padding-inline: var(--input-padding-inline-sp);
  }
}
.p-form__input-file .custom-file-label.has-file {
  color: var(--color-black);
}
.p-form__input-file .custom-file-label:after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.5rem;
  -webkit-mask-image: url(../assets/img/common/upload-icon.svg);
  mask-image: url(../assets/img/common/upload-icon.svg);
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 1.125rem;
  height: 1.125rem;
  background: var(--color-placeholder);
  pointer-events: none;
}
.p-form__input-file .custom-file-label.has-file:after {
  display: none;
}

/* セレクト */
.p-form__select {
  width: 15.9375rem;
  position: relative;
}
.p-form__select select {
  width: 100%;
  height: var(--input-height-pc);
  padding-inline: var(--input-padding-inline-pc);
  border: 1px solid var(--color-select-border);
  border-radius: var(--input-border-radius);
  font-family: var(--font-family-ja);
  color: var(--color-placeholder);
  font-size: var(--font-size-form-base-pc);
  background-color: var(--color-input-background);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
@media (max-width: 767px) {
  .p-form__select select {
    width: 100%;
    height: var(--input-height-sp);
    font-size: var(--font-size-form-base-sp);
    padding-inline: var(--input-padding-inline-sp);
  }
}
.p-form__select:after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.375rem;
  -webkit-mask-image: url(../assets/img/common/arrow-bottom.svg);
  mask-image: url(../assets/img/common/arrow-bottom.svg);
  width: 0.75rem;
  height: 0.4375rem;
  background: var(--color-placeholder);
  pointer-events: none;
}

.p-form__select--selected select {
  color: var(--color-select-option);
}

.p-form__input-calendar input {
  width: 15.625rem;
  height: var(--input-height-pc);
  padding-inline: var(--input-padding-inline-pc);
  border: 1px solid var(--color-input-border);
  border-radius: var(--input-border-radius);
  font-size: var(--font-size-form-base-pc);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--color-input-background);
  position: relative;
}
@media (max-width: 767px) {
  .p-form__input-calendar input {
    width: 100%;
    height: var(--input-height-sp);
    font-size: var(--font-size-form-base-sp);
    padding-inline: var(--input-padding-inline-sp);
  }
}

.p-form__input-calendar input::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  color: transparent;
  background: transparent;
  z-index: 1;
}

/* チェックボックス */
.p-form__input-checkbox input {
  display: none;
}

.p-form__input-checkbox .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}
.p-form__input-checkbox .wpcf7-list-item {
  margin-left: 0;
}
.p-form__input-checkbox input + span {
  font-weight: 500;
  position: relative;
  display: inline-block;
  width: auto;
  padding: 0 0 0 2rem;
  font-size: var(--font-size-form-base-pc);
  font-size: clamp(0.75rem, 3vw, 1rem);
  cursor: pointer;
}
.p-form__input-checkbox input + span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.1875rem;
  display: block;
  width: 0.8125rem;
  height: 0.8125rem;
  border: 1px solid var(--color-checkBox-border);
  background-color: var(--color-white);
  transform: translateY(-50%);
}
.p-form__input-checkbox input + span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.4375rem;
  display: block;
  width: 0.4rem;
  height: 0.75rem;
  margin-top: -0.5rem;
  border-right: 0.125rem solid var(--color-checkBox-mark);
  border-bottom: 0.125rem solid var(--color-checkBox-mark);
  opacity: 0;
  transform: rotate(45deg);
}
@media (max-width: 767px) {
  .p-form__input-checkbox input + span::after {
    top: 56%;
  }
}
.p-form__input-checkbox input:checked + span::after {
  opacity: 1;
}

/* ラジオボタン */
.p-form__input-radio .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-left: clamp(0.75rem, 2vw, 2.25rem);
  margin-top: 0.625rem;
}
.p-form__input-radio .wpcf7-list-item {
  margin: 0;
}
.p-form__input-radio input + span {
  display: flex;
  font-size: var(--font-size-form-base-pc);
  cursor: pointer;
}
@media (max-width: 767px) {
  .p-form__input-radio input + span {
    font-size: var(--font-size-form-base-sp);
  }
}
.p-form__input-radio input[type="radio"] {
  display: none;
}
.p-form__input-radio input + span::before {
  content: "";
  width: 0.875rem;
  height: 0.875rem;
  margin-top: auto;
  margin-right: 0.6em;
  margin-bottom: auto;
  border: 0.125rem solid var(--color-radio-border);
  border-radius: 100%;
  background: var(--color-radio-background);
  flex-shrink: 0;
}
.p-form__input-radio input:checked + span::before {
  background-color: var(--color-radio-mark);
  box-shadow: inset 0 0 0 0.125rem #fff;
}

/* テキストエリア */
.p-form__textarea textarea {
  width: 100%;
  min-height: var(--textarea-height-pc);
  padding-block: 1rem;
  padding-inline: var(--input-padding-inline-pc);
  border: 1px solid var(--color-input-border);
  font-size: var(--font-size-form-base-pc);
  background: var(--color-input-background);
  white-space: pre;
}
@media (max-width: 767px) {
  .p-form__textarea textarea {
    width: 100%;
    min-height: var(--textarea-height-sp);
    padding-inline: var(--input-padding-inline-sp);
    font-size: var(--font-size-form-base-sp);
  }
}
.p-form__input-textarea span {
  white-space: pre;
}

/* プライバシーポリシー */
.p-form__acceptance {
  margin-top: 0.625rem;
  text-align: center;
}
.p-form__acceptance .wpcf7-list-item-label {
  font-size: var(--font-size-form-base-pc);
  letter-spacing: 0.2em;
}
@media screen and (max-width: 767px) {
  .p-form__acceptance .wpcf7-list-item-label {
    font-size: var(--font-size-form-base-sp);
  }
}
.p-form__acceptance a {
  text-decoration: underline;
  transition: 0.4s;
}
@media (hover: hover) {
  .p-form__acceptance a:hover {
    opacity: 0.7;
  }
}

/* 送信ボタン */
.p-formBtn {
  position: relative;
}
.p-form__submit {
  margin-top: 2.5rem;
  flex-wrap: wrap;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.9375rem;
}
@media (max-width: 767px) {
  .p-form__submit {
    margin-top: 1.875rem;
  }
}
.p-form__button input,
.p-form__button button {
  cursor: pointer;
}
@media (hover: hover) {
  .p-form__button input:disabled:hover,
  .p-form__button button:disabled:hover {
    cursor: not-allowed;
  }
}

/* 送信後のメッセージ */
.wpcf7 form.sent .wpcf7-response-output {
  padding: 0.9375rem 0.625rem;
  border-color: #2c94de;
  font-size: var(--font-size-form-base-pc);
  display: none;
}
@media (max-width: 767px) {
  .wpcf7 form.sent .wpcf7-response-output {
    font-size: var(--font-size-form-base-sp);
  }
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  padding: 0.9375rem 0.625rem;
  border-color: red;
  font-size: var(--font-size-form-base-pc);
}
@media (max-width: 767px) {
  .wpcf7 form.invalid .wpcf7-response-output,
  .wpcf7 form.unaccepted .wpcf7-response-output,
  .wpcf7 form.payment-required .wpcf7-response-output {
    font-size: var(--font-size-form-base-sp);
  }
}
.wpcf7-spinner {
  display: none;
}
/* バリデーション */
.wpcf7-not-valid-tip {
  display: block;
  color: red;
  font-size: var(--font-size-form-base-pc);
  font-weight: normal;
}
@media (max-width: 767px) {
  .wpcf7-not-valid-tip {
    font-size: var(--font-size-form-base-sp);
  }
}
.p-form__input .is-disabled {
  pointer-events: none;
  opacity: 0.3;
}
.wpcf7-spinner {
  display: none !important;
}

/* 確認画面 */
.p-form__content-confirm {
  display: none;
}

.p-form__text {
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: 0.2em;
  text-align: center;
}

.p-form__content-confirm span[class^="confirm_"] {
  font-size: var(--font-size-form-base-pc);
}

@media screen and (max-width: 767px) {
  .p-form__text {
    font-size: 0.8125rem;
  }
}

.p-form__list {
  max-width: 42.5rem;
  margin-inline: auto;
  margin-top: 2rem;
}

@media screen and (max-width: 767px) {
  .p-form__list {
    margin-top: 2.5rem;
  }
}

.p-form__buttons {
  margin-top: 4rem;
  display: flex;
  justify-content: center;
  gap: 1rem 2rem;
}

.p-form__button {
  border-bottom: 1px solid #5e5e5e;
  display: block;
  font-size: 0.875rem;
  letter-spacing: 0.2857em;
  line-height: 2.2857142857;
  position: relative;
  color: #5e5e5e;
  transition: 0.4s;
  width: 7.5rem;
}

@media screen and (max-width: 767px) {
  .p-form__button {
    font-size: 0.75rem;
  }
}

.p-form__button:has(.p-form__button-back) input {
  text-align: right;
}

.p-form__button::after {
  background-image: url("../images/common/btn_arrow.png");
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 0.5rem;
  position: absolute;
  right: 0;
  top: 35%;
  transform: translateY(-35%);
  width: 0.4375rem;
}

.p-form__button:has(.p-form__button-back)::after {
  transform: translateY(-35%) rotate(180deg);
  right: auto;
  left: 0;
}

.p-form__button input,
.p-form__button button {
  width: 100%;
  text-align: left;
  color: #5e5e5e;
  letter-spacing: 0.2em;
  padding: 0;
  padding-bottom: 0.625rem;
}

@media (any-hover: hover) {
  .p-form__button:hover {
    opacity: 0.6;
  }
}

.p-form__content-title {
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 1.5rem;
}
