@charset "UTF-8";

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

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

/* =====================
  solutions
===================== */
.solutions {
  padding-block: 148px 160px;

  @media (width <=768px) {
    padding-block: var(--nudge-7);
  }

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

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

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

    /* ==== u-hgroup ==== */
    .u-hgroup {
      grid-row: 1 / 2;
      grid-column: 1 / 3;

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

      @media (width <=768px) {
        margin-block-end: var(--nudge-2);
      }
    }

    /* ==== catch ==== */
    >.catch {
      grid-row: 2 / 3;
      grid-column: 1 / 2;
      font-size: 36px;
      font-weight: 600;
      line-height: 1.5;

      @media (width <=768px) {
        margin-inline: auto;
        font-size: calc((100 / 390) * 22 * 1vw);
        text-align: center;
      }
    }

    /* ==== body ==== */
    >.body {
      grid-row: 2 / 3;
      grid-column: 2 / 3;

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

  /* ==== wrapper ==== */
  .wrapper {
    display: block grid;
    grid-row: 3 / 4;
    grid-column: 1 / 3;
    gap: 99px;

    @media (width > 768px) {
      margin-block-start: 119px;
    }

    @media (width <=768px) {
      gap: var(--nudge-6);
      margin-block-start: var(--nudge-3);
    }
  }

  /* ==== section ==== */
  section {
    position: relative;
    padding-block-start: 22px;

    @media (width <=768px) {
      padding-block-start: var(--nudge-2);
    }

    &::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);
      }
    }

    /* ==== h3 ==== */
    h3 {
      font-family: var(--serif);
      font-size: 26px;
      font-weight: 600;
      color: var(--primary);

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

    /* ==== contents ==== */
    .contents {
      display: block flex;
      gap: 0 40px;
      align-items: center;
      margin-block-start: 28px;

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

      img {
        flex-shrink: 0;

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

      .text {
        display: block grid;
        gap: 40px;
        padding-inline: 40px 0;

        @media (width <=768px) {
          gap: var(--nudge-2);
          padding-inline: 0;
        }

        .catch {
          inline-size: fit-content;
          font-family: var(--serif);
          font-size: 30px;
          font-weight: 600;
          line-height: 1.5;

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

        .body {
          padding-inline-end: 0;
          line-height: 1.8;
        }

        .u-anchor {
          @media (width <=768px) {
            margin-block-start: var(--nudge-2);margin-inline: auto;
          }
        }
      }
    }
  }

  @media (width > 768px) {
    section:nth-child(odd) {
      .contents {
        flex-direction: row-reverse;

        .text {
          padding-inline: 40px;
        }
      }
    }
  }
}

/* =====================
  management
===================== */
.management {
  padding-block: 148px 160px;
  background: var(--bg2);

  @media (width <=768px) {
    padding-block: var(--nudge-7);
  }

  /* ==== u-inner ==== */
  .u-inner {
    display: block grid;
    gap: 0 60px;
    align-content: start;
    align-items: center;

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

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

  /* ==== u-hgroup ==== */
  .u-hgroup {
    grid-row: 1 / 2;
    grid-column: 1 / 3;

    @media (width <=768px) {
      [lang='en'] {
        font-size: calc((100 / 390) * 39 * 1vw);
      }
    }
  }

  /* ==== img ==== */
  img {
    grid-row: 2 / 3;
    grid-column: 1 / 3;
    margin-block: 72px 40px;
    margin-inline: auto;

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

  /* ==== body ==== */
  .body {
    grid-row: 3 / 4;
    grid-column: 1 / 2;
  }

  /* ==== u-anchor ==== */
  .u-anchor {
    grid-row: 3 / 4;
    grid-column: 2 / 3;
    align-self: flex-start;

    @media (width <=768px) {
      margin-inline: auto;
    }
  }
}
