@charset 'UTF-8';

/* 横並びのボタン */
.p-form__buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(2.86rem, 1fr));
  gap: 0.16rem 0;
  padding: 0.28rem 0 0;
}
.p-form__buttons a {
  min-width: 2.86rem;
  min-height: 0.98rem;
  font-size: 0.2rem;
  text-align: center;
  letter-spacing: 0;
  line-height: 1.5;
}

@media screen and (max-width: 1023px) {
  .p-form__buttons a {
    font-size: 0.14rem;
    min-height: 0.7rem;
  }
}

/* フォームのコンテナ */
:is(.p-form__container, .p-form__extend) {
  display: grid;
  grid-template-columns: 27% 1fr;
  gap: 0.6rem 3%;
  padding: 0.6rem 0 0;
}

@media screen and (max-width: 640px) {
  :is(.p-form__container, .p-form__extend) {
    grid-template-columns: 1fr;
    gap: 0;
  }
  :is(.p-form__container, .p-form__extend) dt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 0.1rem;
  }
  :is(.p-form__container, .p-form__extend) dd:not(:last-child) {
    margin-bottom: 0.55rem;
  }
  :is(.p-form__container, .p-form__extend) .p-form__required {
    margin-top: 0;
  }
}

/* 必須/任意ラベル */
.p-form__required {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 0.44rem;
  height: 0.18rem;
  border-radius: 0.1rem;
  font-size: 0.12rem;
  font-weight: 400;
  border: 1px solid var(--main-color-blue);
  margin: 0.025rem 0 0;
  padding: 0 0 0.01rem;
}
.p-form__required.true {
  background: var(--main-color-blue);
  color: #fff;
}
.p-form__required.false {
  background: #fff;
  color: var(--main-color-blue);
}

/* フィールドのテンプレ */
.p-form__item {
  background: var(--bg-color-gray-A);
  border: 1px solid var(--border-color-gray-A);
  padding: 0.1rem 0.2rem;
  font-size: var(--fs-h5);
  width: 100%;
  flex-shrink: 0;
  word-break: break-all;
}

/* グループ */
.p-form__group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0 0.2rem;
}
.p-form__group--select {
  width: 3rem;
}
.p-form__group--full {
  width: 100%;
}
.p-form__group--name {
  row-gap: 0.12rem;
}
.p-form__group--name .p-form__group-child {
  width: min(3rem, calc(50% - 0.1rem));
}
.p-form__group--tel {
  gap: 0 0.1rem;
}
.p-form__group--tel .sep {
  width: 0.1rem;
  text-align: center;
}
.p-form__group--tel .p-form__item {
  width: min(2rem, calc(33.33% - 0.2rem));
}
.p-form__group--vertical {
  flex-direction: column;
  align-items: flex-start;
}
.p-form__group--check {
  gap: 0 0.16rem;
}
@media screen and (max-width: 640px) {
  .p-form__group--select {
    width: 100%;
  }
  .p-form__group--name {
    flex-direction: column;
    align-items: flex-start;
  }
  .p-form__group--name .p-form__group-child {
    width: 100%;
  }
}

/* 部品 */
.p-form__title {
  line-height: 1.5;
  font-weight: 700;
}
:is(.p-form__title, .p-form__group) .subtext {
  font-size: var(--fs-caution-A);
  font-weight: 400;
}
@media screen and (max-width: 1023px) {
  .p-form__title .subtext {
    display: block;
  }
}

.p-form__select {
  background-color: var(--bg-color-gray-A);
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2015.605%208.51%22%3E%3Cpath%20fill%3D%22%233261dd%22%20d%3D%22M0%20.497A.5.5%200%200%201%20.854.143l6.949%206.949L14.752.143a.5.5%200%201%201%20.707.707L7.803%208.506.147.85A.5.5%200%200%201%200%20.497Z%22%20%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: center right 0.2rem;
  background-size: 0.156rem 0.085rem;
}
.p-form__select:is(:focus, :focus-visible) {
  outline: 1px dotted ButtonText;
  outline-offset: 2px;
}
.p-form__select option {
  background: var(--bg-color-gray-A);
}

.p-form__textarea {
  min-height: 2.05rem;
  resize: vertical;
}

.p-form__check {
  appearance: auto;
  width: 0.2rem;
  height: 0.2rem;
  border: 1px solid var(--border-color-gray-A);
}

.p-form__button:not(:disabled) {
  cursor: pointer;
}
:is(.p-form__button, .p-form__item):disabled {
  filter: grayscale(0.75);
  opacity: 0.4;
  transition: none;
}
.p-form__button:disabled:hover {
  background: var(--main-color-blue);
  border-color: var(--main-color-blue);
  color: #fff;
}
.p-form__button.p-form__button--reverse {
  background: #fff;
  border-color: var(--main-color-blue);
  color: var(--main-color-blue);
}
.p-form__button.p-form__button--reverse:hover {
  background: var(--main-color-blue);
  border-color: var(--main-color-blue);
  color: #fff;
}

/* 確認 */
.p-form__item--confirm {
  display: block;
  border-color: transparent;
  max-width: 100%;
  width: 100%;
  background: rgb(242 244 245 / 0.4);
}

:is(.p-form__group--vertical, .p-form__group--horizontal) .p-form__item--confirm {
  width: fit-content;
}

/* その他 */
.p-form__recaptcha {
  margin: 1rem auto 0;
  width: fit-content;
  max-width: 100%;
}
.p-form__recaptcha + .p-form__error {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  padding: 0.1rem 0 0;
}

.p-form__button-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.22rem 0.15rem;
}
form .p-form__button-group {
  padding: 0.4rem 0 0;
}

/* エラー */
.p-form__error {
  color: var(--sub-color-red);
}
.p-form__item--invalid {
  border-color: var(--sub-color-red);
}

/* 送信完了のメッセージ */
.p-form__complete-message {
  text-align: justify;
}

/* その他のお問い合わせ */
.p-form__phone {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.2rem 0.24rem;
}
@media screen and (max-width: 640px) {
  .p-form__phone {
    grid-template-columns: 1fr;
  }
}
.p-form__phone-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.1rem 0;
  padding: 0.32rem 0;
  background: var(--bg-color-gray-A);
}
.p-form__phone-item :is(h3, p) {
  line-height: 1;
  font-weight: 700;
}
.p-form__phone-item h3 {
  font-size: var(--fs-text-A);
}
.p-form__phone-item p {
  font-size: var(--fs-h2);
  color: var(--main-color-blue);
}

/* ビジネスパートナーの募集・採用に関して */
.p-form__other .layout-description-A {
  margin-bottom: 0.5rem;
}
.p-form__other .layout-button-A {
  text-align: center;
  line-height: 1.5;
}

/* 追加フィールド */
.p-form__extend {
  grid-column: 1 / span 2;
  padding-top: 0;
}
.p-form__extend.hidden {
  display: none;
}
.p-form__extend.hidden.force-visible {
  display: block;
}
.p-form__extend .p-form__group--horizontal + .p-form__group--full,
.p-form__extend .p-form__error + .p-form__group--full {
  margin-top: 0.1rem;
}
@media screen and (max-width: 640px) {
  .p-form__extend {
    grid-column: 1;
    margin-bottom: 0.55rem;
  }
  .p-form__group--horizontal {
    flex-direction: column;
    align-items: flex-start;
  }
}
