.contact-hero-phone {
  display: flex;
  place-content: center;
  flex-wrap: wrap;
  align-items: center;
  column-gap: var(--spacing-xs);
  font-size: var(--text-lg);
  margin-block-start: var(--spacing-2xl);
  > a {
    display: flex;
    align-items: center;
    column-gap: 0.1em;
    font-size: 32px;
    font-weight: bold;
    font-family: var(--font-family-roboto);
    color: var(--color-primary-300);

    &::before {
      --size: 0.7em;
      content: "";
      display: inline-block;
      background-color: currentColor;
      mask-image: url("../images/common/icon-contact-phone.svg");
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: contain;
      width: var(--size);
      height: var(--size);
    }
  }
}

.contact-hero-mail {
  display: flex;
  place-content: center;
  flex-wrap: wrap;
  align-items: center;
  column-gap: var(--spacing-lg);
  font-size: var(--text-lg);
  > a {
    display: flex;
    align-items: center;
    column-gap: 0.3em;
    font-size: 1.3em;
    font-weight: bold;
    font-family: var(--font-family-roboto);
    color: var(--color-primary-300);

    &::before {
      --size: 0.9em;
      content: "";
      display: inline-block;
      background-color: currentColor;
      mask-image: url("../images/common/icon-contact-mail.svg");
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: contain;
      width: var(--size);
      height: var(--size);
    }
  }
}

.contact-form {
  background-color: var(--color-gray-50);
  padding-block: var(--spacing-2xl);

  .contact-form-title {
    color: var(--color-primary-300);
    font-size: var(--text-3xl);
    font-weight: bold;
    text-align: center;
    padding-block: var(--spacing-2xl);
  }

  form {
    display: grid;
    row-gap: var(--spacing-sm);
  }

  a {
    color: var(--color-primary-300);
    text-decoration: underline;
  }

  .forminator-label {
    display: flex !important;
    align-items: center;
    line-height: 1 !important;
    column-gap: 0.5em;
    font-size: var(--text-lg) !important;
    padding-bottom: 1em;

    &:has(.forminator-required) {
      > span {
        display: none;
      }
      &::after {
        content: "必須";
        color: var(--color-white);
        font-size: var(--text-xs);
        padding: 0.3em 0.7em;
        background-color: var(--color-black);
      }
    }
  }
  .forminator-description {
    padding-bottom: 1em !important;
  }

  .forminator-input,
  .forminator-textarea {
    width: 100%;
    border: 1px solid var(--color-gray-200);
    border-radius: 0.33rem !important;
    padding: 0.7em 1em !important;
  }

  .forminator-row-last > *:has(.forminator-button-submit) {
    display: flex;
    place-content: center;
  }

  .forminator-button-submit {
    --color-positive: var(--color-primary-300);
    --color-negative: var(--color-white);
    display: inline-grid !important;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-md) !important;
    border: 1px solid currentcolor !important;
    border-radius: 0px !important;
    min-width: 21rem !important;
    color: var(--color-positive) !important;
    font-size: var(--text-lg) !important;
    font-weight: bold !important;
    text-align: center !important;
    text-decoration: none !important;
    background-color: unset;

    @media (hover: hover) {
      &:hover {
        color: var(--color-negative) !important;
        background-color: var(--color-positive);
        border: 1px solid var(--color-positive) !important;
        box-shadow: none !important;
      }
    }
  }
  .forminator-error-message {
    margin-top: 1em !important;
    border-radius: 0.5em !important;
    padding: 0.7em 1em !important;
    color: red !important;
  }
}

.contact-thanks-hero {
  > h1::before {
    white-space: pre-wrap;
  }
}

.contact-thanks {
  .contact-thanks-title {
    font-size: var(--text-3xl);
    font-weight: bold;
    text-align: center;
    padding-block: var(--spacing-2xl);
  }
  .contact-thanks-catalogList {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
    gap: var(--spacing-4xl) var(--spacing-xl);

    > li {
      display: grid;
      row-gap: var(--spacing-xl);

      figure {
        display: grid;
        justify-items: center;

        img {
          width: 80%;
          height: auto;
          object-fit: cover;
          border: 1px solid var(--color-gray-100);
        }
      }

      a {
        min-width: unset;
        &::after {
          --size: 1.4em;
        }
      }
    }
  }
  .contact-thanks-button {
    display: grid;
    justify-items: center;
    margin-block: var(--spacing-4xl);
  }
}
