/*
** .contact__inner
*/

.contact__intro {
  font-size: calc(20 / var(--standard-font-size) * 1em);
  font-weight: 700;
  margin-bottom: calc(45 * 100vw / var(--standard-width));
}

.contact__guidance {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-row-gap: calc(10 * 100vw / var(--standard-width));
  margin-bottom: calc(45 * 100vw / var(--standard-width));
}

.contact__guidance-headline {
  font-size: calc(15 / var(--standard-font-size) * 1em);
  font-weight: 500;
}

.contact__guidance-body a {
  font-size: calc(30 / var(--standard-font-size) * 1em);
  font-weight: 700;
  color: var(--dark);
  line-height: 1;
}


/*
** .contact__contents
*/

.contact__form-desc {
  margin-bottom: calc(30 * 100vw / var(--standard-width));
}

.contact__form-desc .required {
  color: var(--dark);
}


/*
** .contact__form
*/

.contact__form-inputs {
  display: grid;
  grid-template-columns: max-content 1fr;
  grid-auto-rows: max-content;
  font-size: calc(13 / var(--standard-font-size) * 1em);
  border-top: 1px solid var(--gray);
  margin-bottom: calc(30 * 100vw / var(--standard-width));
}

.contact__form-label,
.contact__form-input {
  padding: calc(10 * 100vw / var(--standard-width)) calc(8 * 100vw / var(--standard-width));
}

.contact__form-label {
  display: flex;
  align-items: center;
  font-weight: 500;
  background-color: #F5F5F5;
  border-right: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
}

.contact__form-label--required::after {
  content: '\02a';
  color: var(--dark);
}

.contact__form-input {
  background-color: #fff;
  border-bottom: 1px solid var(--gray);
}

.contact__form-input--category .wpcf7-form-control {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-row-gap: calc(5 * 100vw / var(--standard-width));
}

.contact__form-input--category .wpcf7-list-item,
.contact__form-privacy .wpcf7-list-item {
  margin: 0;
}

.contact__form-input--category .wpcf7-list-item label,
.contact__form-privacy .wpcf7-list-item label {
  display: flex;
  align-items: center;
  column-gap: calc(5 * 100vw / var(--standard-width));
}

.contact__form-input--category .wpcf7-list-item input,
.contact__form-privacy .wpcf7-list-item input {
  margin: 0;
}

.contact__form-input--name {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-row-gap: calc(5 * 100vw / var(--standard-width));
}

.contact__form-input--name > * {
  display: grid;
  grid-template-columns: max-content 1fr;
  grid-auto-rows: max-content;
  align-items: center;
  column-gap: calc(5 * 100vw / var(--standard-width));
}

.contact__form-input--contents textarea {
  height: calc(288 * 100vw / var(--standard-width));
}

.contact__form-privacy {
  margin-bottom: calc(10 * 100vw / var(--standard-width));
}

.contact__form-privacy-headline {
  font-size: calc(18 / var(--standard-font-size) * 1em);
  font-weight: 700;
  color: var(--dark);
  margin-bottom: calc(10 * 100vw / var(--standard-width));
}

.contact__form-privacy-desc {
  margin-bottom: calc(10 * 100vw / var(--standard-width));
}

.contact__form-privacy-desc a {
  all: revert;
}

.contact__form-submit {
  transition: var(--transition);
}

.contact__form-submit:has(.wpcf7-submit[disabled]) {
  background-color: var(--gray);
}

.contact__form-submit .wpcf7-submit {
  color: inherit;
  border: none;
  background-color: unset;
}

@media (hover: hover) and (pointer: fine) {

  .contact__form-submit:has(.wpcf7-submit:not([disabled])),
  .contact__form-submit:has(.wpcf7-submit:not([disabled])) .wpcf7-submit {
    cursor: pointer;
  }

  .contact__form-submit:has(.wpcf7-submit[disabled]):hover::before {
    width: 0;
  }

}

.contact__form-submit::after {
  content: '\f061';
  padding-right: calc(20 * 100vw / var(--standard-width));
  padding-left: calc(50 * 100vw / var(--standard-width));
}

.contact__form-submit .wpcf7-spinner {
  position: absolute;
  bottom: -24px;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -ms-transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateX(-50%);
  padding: 0;
  margin: 0;
}