@charset "utf-8";

/* =====================
  Reset
===================== */
.main {
  .background {
    top: 100px;

    @media not all and (width >=768px) {
      top: 0;
    }
  }

  .u-bg {
    padding-block-end: 130px;

    @media not all and (width >=768px) {
      padding-block-end: calc((100 / 750) * 160 * 1vw);
    }

    .u-head {
      position: relative;
      z-index: 2;
      padding-block: 200px 60px;

      @media not all and (width >= 768px) {
        padding-block: 28vw calc((100 / 750) * 60 * 1vw);
      }
    }

    .contents {
      position: relative;
      z-index: 2;
      padding-block-end: 100px;
      text-align: center;

      @media not all and (width >=768px) {
        padding-block-end: calc((100 / 750) * 100 * 1vw);
        padding-inline: calc((100 / 750) * 40 * 1vw);
      }
    }
  }
}

.policy {
  .policy-wrap {
    @media not all and (width >=768px) {
      padding-inline: calc((100 / 750) * 40 * 1vw);
    }
  }

  & section {
    :where(p, li) {
      font-size: 15px;
      line-height: 1.73;
    }

    & article.unit {
      :where(h2, h3, caption) {
        font-weight: bold;
        text-align: left;
      }

      margin-block-end: 40px;

      h2 {
        position: relative;
        padding-block-end: 2px;
        font-size: 20px;
        border-block-end: 1px solid #cfcfcf;

        &::before {
          position: absolute;
          bottom: 0;
          display: block;
          inline-size: 60px;
          block-size: 3px;
          content: '';
          background: var(--orange);
          translate: 0 50%;
        }
      }

      h2 + p {
        margin-block-start: 21px;
      }

      p + .wrap {
        margin-block-start: calc((100 / 750) * 60 * 1vw);
      }

      ol {
        counter-reset: number;
      }

      li {
        &::before {
          content: '（' counter(number) '）';
          counter-increment: number;
        }
      }

      table {
        inline-size: 100%;
        vertical-align: middle;

        caption {
          margin-block-end: 0.2em;
        }

        :where(th, td) {
          padding-block: 11.4px;
          padding-inline: 19.4px;
          vertical-align: middle;
          border: 1px solid #c3c4c7;

          @media not all and (width >=768px) {
            padding-block: 3.6vw;
            padding-inline: 2.7vw;
          }
        }

        th {
          max-inline-size: 65px;

          @media not all and (width >=768px) {
            inline-size: 22vw;
            max-inline-size: 22vw;
          }

          font-weight: bold;
          white-space: nowrap;
          background: #1a1717;
        }

        td {
          @media not all and (width >=768px) {
            a {
              color: var(--orange);
              text-decoration: underline;
            }
          }
        }
      }

      @media not all and (width >= 768px) {
        :where(p, li) {
          font-size: calc((100 / 750) * 26 * 1vw);
        }

        margin-block-end: calc((100 / 750) * 60 * 1vw);

        h2::before {
          inline-size: calc((100 / 750) * 60 * 1vw);
          block-size: calc((100 / 750) * 3 * 1vw);
        }

        :where(th, td) {
          font-size: calc((100 / 750) * 24 * 1vw);
        }

        td {
          a {
            color: var(--red);
            text-decoration: underline;
          }
        }
      }
    }

    @media not all and (width >= 768px) {
      article.unit :is(h2, h3, caption) {
        font-size: calc((100 / 750) * 30 * 1vw);
      }
    }

    article.unit h3 {
      margin-block-end: 10px;
      font-size: 18px;
      color: #cc3a25;
    }

    @media not all and (width >= 768px) {
      article.unit h3 {
        margin-block-end: calc((100 / 750) * 30 * 1vw);
        font-size: calc((100 / 750) * 30 * 1vw);
      }
    }

    article.unit .wrap {
      margin-block-end: 38px;
    }

    article.unit p + .wrap {
      margin-block-start: 37px;
    }

    @media not all and (width >= 768px) {
      article.unit .wrap {
        margin-block-end: calc((100 / 750) * 60 * 1vw);
      }

      article.unit p + .wrap {
        margin-block-start: calc((100 / 750) * 60 * 1vw);
      }
    }

    article.unit ol {
      counter-reset: number;
    }

    article.unit li::before {
      content: '（' counter(number) '）';
      counter-increment: number;
    }

    article.unit table {
      inline-size: 100%;
      vertical-align: middle;
    }

    article.unit caption {
      margin-block-end: 0.5em;
    }

    article.unit :where(th, td) {
      padding-block: 0.5em;
      padding-inline: 1em;
      font-size: 15px;
      vertical-align: middle;
      border: 1px solid #c3c4c7;
    }

    @media not all and (width >= 768px) {
      article.unit :where(th, td) {
        font-size: calc((100 / 750) * 24 * 1vw);
      }
    }

    @media not all and (width >= 768px) {
      article.unit td a {
        color: var(--red);
        text-decoration: underline;
      }
    }
  }
}
