.contact-form {
  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;
  }
}

.recruit-thanks-hero {
  > h1::before {
    white-space: pre-wrap;
  }
}
.recruit-thanks-button {
  display: grid;
  justify-items: center;
  margin-block-end: var(--spacing-4xl);
}

/* 会社情報 共有 */
.b-corporate-list {
  padding-block: var(--spacing-2xl);
  display: grid;
  grid-template-columns: auto 1fr;

  dt,
  dd {
    padding-block: 0.8rem;
    border-block-end: 1px dashed currentColor;
  }

  dt {
    padding-inline-end: 3rem;
    font-size: var(--text-lg);
  }

  @media (max-width: 600px) {
    grid-template-columns: 1fr;

    dt {
      border-block-end: none;
      padding-block-end: 0;
    }
    dd {
      span {
        display: none;
      }
    }
  }
}

/* 経営理念 */
.b-philosophy {
  background-color: var(--color-gray-50);

  .b-philosophy-inner {
    padding-block: var(--spacing-4xl);
  }
  .b-philosophy-text {
    font-size: var(--text-2xl);

    &:not(:last-child) {
      margin-bottom: var(--spacing-xl);
    }
    strong {
      color: var(--color-primary-300);
    }
  }
  .b-philosophy-box {
    display: flex;
    justify-content: center;
    padding: var(--spacing-md);
    background-color: #fff;
  }
}

/* 沿革 */
.b-history {
  background-color: var(--color-gray-50);
}

/* 会社概要・アクセス */
.aboutus-outline {
  background-color: var(--color-gray-50);
  padding-block: var(--spacing-lg) var(--spacing-xl);

  .gmap {
    margin-top: var(--spacing-sm);
    iframe {
      width: 100%;
      aspect-ratio: 80 / 45;
    }
  }
}

/* ISO登録情報ページ */
.b-iso {
  background-color: var(--color-gray-50);

  .b-iso-inner {
    padding-block: var(--spacing-5xl);
    display: grid;
    row-gap: var(--spacing-2xl);
  }
  .b-iso-group {
    display: grid;
    grid-template-areas: "title" "text";
    row-gap: 1em;

    &:has(img) {
      grid-template-columns: 1fr auto;
      /* grid-template-columns: 650fr 220fr; */
      grid-template-rows: auto 1fr;
      grid-template-areas: "title image" "text image";
      column-gap: 5em;

      @media (width < 640px) {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        grid-template-areas: "title" "image" "text";
        column-gap: 0;
      }
    }

    > h2 {
      grid-area: title;
      font-size: var(--text-lg);
      font-weight: bold;
      color: var(--color-primary-300);
    }

    > p {
      grid-area: text;

      a {
        text-decoration: underline;
      }
    }

    > ol {
      list-style: decimal;
      /* list-style-position: inside; */
      padding-inline-start: 1.5em;
    }
    > img {
      grid-area: image;
      align-self: center;
    }
  }
}
/* サイトポリシー */
.policy {
  padding-block: var(--spacing-4xl);
  background-color: var(--color-gray-50);

  .policy-inner {
    display: grid;
    row-gap: var(--spacing-4xl);
  }

  section {
    display: grid;
    row-gap: var(--spacing-3xl);

    > h2 {
      font-size: var(--text-3xl);
      font-weight: bold;
      text-align: center;
    }

    > ul,
    > ol {
      display: grid;
      row-gap: 4em;

      > li {
        display: grid;
        row-gap: 1.2em;

        > h3 {
          color: var(--color-primary-300);
          font-size: var(--text-lg);
        }

        > ul,
        > ol {
          display: grid;
          row-gap: 0.7em;
        }
      }
    }
  }

  .policy-counter-lv1 {
    counter-reset: counter-lv1;
    .policy-counter-lv1-item {
      counter-increment: counter-lv1;
      &::before {
        content: counter(counter-lv1) ". ";
      }
    }
  }
  .policy-indent-lv1 {
    padding-inline-start: 1.5em;
    text-indent: -1.5em;
  }
  .policy-indent-lv2 {
    padding-inline-start: 1em;
    text-indent: -1em;
  }

  .policy-table-01 {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
    margin-block: 1em;

    th,
    td {
      border: 1px solid var(--color-gray-100);
      padding: 0.5em 1em;
      font-weight: normal;
    }

    thead th {
      font-weight: bold;
      background-color: var(--color-gray-100);
    }
  }
}
