@charset "UTF-8";

/* =====================
  header active
===================== */
@layer style {
  [data-page='green'] .header ul {
    --active-anchor: --company;

    &::before {
      opacity: 1;
    }
  }
}

/* =====================
  wrapper
===================== */
.wrapper {
  display: block grid;
  gap: 129px;
  padding-block: 159px;

  @media (width <=768px) {
    display: block flex;
    flex-direction: column;
    gap: var(--nudge-7);
    padding-block: var(--nudge-7);
  }

  article {
    position: relative;

    /* ==== u-inner ==== */
    .u-inner {
      display: block grid;
      align-items: start;

      @media (width > 768px) {
        padding-inline: 80px;
      }

      @media (width <=768px) {
        display: block flex;
        flex-direction: column;
        gap: var(--nudge-2);
      }
    }
  }

  h2 {
    position: relative;
    padding-block-start: 22px;
    font-family: var(--serif);
    font-size: 26px;
    font-weight: 600;
    color: var(--primary);

    @media (width <=768px) {
      inline-size: 100%;
      padding-block-start: var(--nudge-1);
      font-size: calc((100 / 390) * 19 * 1vw);
    }

    &::before,
    &::after {
      position: absolute;
      inset-block-start: 0;
      inset-inline-start: 0;
      display: block flow;
      inline-size: 100%;
      block-size: 2px;
      content: '';

      @media (width <=768px) {
        block-size: calc((100 / 390) * 2 * 1vw);
      }
    }

    &::before {
      background: #e6e6e6;
    }

    &::after {
      inline-size: 40px;
      background: var(--primary);

      @media (width <=768px) {
        inline-size: calc((100 / 390) * 20 * 1vw);
      }
    }
  }
}

/* =====================
  philosophy
===================== */
.philosophy {
  .u-inner {
    grid-template-columns: 770px 1fr;
    gap: 0 70px;

    @media (width <=768px) {
      gap: 0;
    }
  }

  h2 {
    grid-row: 1 / 2;
    grid-column: 1 / 3;

    @media (width > 768px) {
      margin-block-end: 39px;
    }
  }

  img {
    grid-row: 2 / 3;
    grid-column: 1 / 2;
  }

  p {
    grid-row: 2 / 3;
    grid-column: 2 / 3;
  }
}

/* =====================
  action
===================== */
.action {
  .contents {
    display: block grid;
    gap: 15px;
    padding-block: 35px 40px;
    padding-inline: 40px;
    margin-block-start: 38px;
    border: 1px solid #afb7bd;
    border-radius: 20px;

    @media (width > 768px) {
      inline-size: 960px;
      margin-inline: auto;
    }

    @media (width <=768px) {
      gap: var(--nudge-1);
      padding-block: var(--nudge-3);
      padding-inline: var(--nudge-2);
      margin-block-start: var(--nudge-1);
      border-radius: calc((100 / 390) * 20 * 1vw);
    }

    h3 {
      font-family: var(--serif);
      font-size: 30px;
      font-weight: 600;

      @media (width <=768px) {
        font-size: calc((100 / 390) * 18 * 1vw);
      }
    }

    h4 {
      font-size: 20px;
      font-weight: 500;
      color: var(--primary);

      @media (width <=768px) {
        font-size: calc((100 / 390) * 16 * 1vw);
      }
    }

    ol {
      margin-block-start: 5px;
      counter-reset: number;

      @media (width <=768px) {
        margin-block-start: 0;
      }

      li {
        position: relative;
        padding-inline-start: 23px;

        @media (width <=768px) {
          padding-inline-start: 5.3vw;
          font-size: calc((100 / 390) * 14 * 1vw);
        }

        &::before {
          position: absolute;
          inset-block-start: 0;
          inset-inline-start: 5px;
          content: counter(number) '.';
          counter-increment: number;

          @media (width <=768px) {
            inset-inline-start: 1vw;
          }
        }
      }
    }
  }

  .figure {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-block-start: 90px;

    @media (width <=768px) {
      display: block flex;
      flex-direction: column;
      gap: var(--nudge-4);
      margin-block-start: var(--nudge-3);
    }

    .img {
      position: relative;

      &:last-child {
        figcaption {
          @media (width > 768px) {
            place-content: center start;
            inline-size: 100%;
            padding-inline-start: 30px;
          }
        }
      }
    }

    figcaption {
      display: block grid;
      place-content: center;
      inline-size: fit-content;
      min-block-size: 68px;
      padding-inline: 20px;
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 600;
      line-height: 1.2;
      color: white;
      background: #3c6baf;
      border-radius: 20px 20px 0 0;

      @media (width <=768px) {
        min-block-size: auto;
        padding-block: calc((100 / 390) * 14 * 1vw);
        padding-inline: calc((100 / 390) * 16 * 1vw);
        font-size: calc((100 / 390) * 16 * 1vw);
        line-height: 1.8;
        border-radius: calc((100 / 390) * 20 * 1vw) calc((100 / 390) * 20 * 1vw) 0 0;
      }
    }

    figure {
      display: block grid;

      img {
        @media (width <=768px) {
          inline-size: 100%;
        }
      }
    }

    p {
      position: absolute;
      inset-block-start: 11%;
      inset-inline-end: 0;
      font-size: 15px;

      @media (width <=768px) {
        inset-block-start: 6%;
        font-size: calc((100 / 390) * 15 * 1vw);
      }
    }
  }
}

/* =====================
  authentication
===================== */
.authentication {
  .contents {
    display: block grid;
    gap: 15px;
    padding-block: 35px 38px;
    padding-inline: 40px;
    margin-block-start: 38px;
    border: 1px solid #afb7bd;
    border-radius: 20px;

    @media (width > 768px) {
      inline-size: 960px;
      margin-inline: auto;
    }

    @media (width <=768px) {
      gap: var(--nudge-1);
      inline-size: 100%;
      padding-block: var(--nudge-3);
      padding-inline: var(--nudge-2);
      margin-block-start: 0;
      border-radius: calc((100 / 390) * 20 * 1vw);
    }

    dl {
      display: block grid;
      grid-template-columns: 97px 1fr;
      gap: 1px 0;
      margin-block-start: 4px;

      @media (width <=768px) {
        grid-template-columns: unset;
        gap: var(--nudge-1);
        margin-block-start: 0;
      }

      /* ==== tr ==== */
      .tr {
        position: relative;
        display: block grid;
        grid-template-columns: subgrid;
        grid-column: 1 / -1;
        align-content: center;
        align-items: center;
      }

      dd {
        @media (width <=768px) {
          padding-inline-start: 1em;
        }
      }
    }
  }
}
