@charset "utf-8";

#smtb {

  /* ↓↓↓ fv ↓↓↓ */
  .fv {
    width: 100%;
    aspect-ratio: 1280/590;
    height: auto;
    margin: -80px auto 0;
    position: relative;

    @media (max-width: 768px) {
      aspect-ratio: unset;
      margin-top: 0;
    }

    picture {
      display: block;
    }
  }

  .fv-image {
    width: 100%;
    position: relative;

    .splide__pagination--ttb {
      position: absolute;
      top: 41%;
      right: 2em;
      flex-direction: column;
      display: inline-flex;

      @media (max-width: 768px) {
        display: none;
      }
    }

    /* 各ドットのボタン */
    .splide__pagination__page {
      position: relative;
      width: 24px;
      height: 24px;
      margin: 10px 0;
      background: transparent;
      border: none;
      padding: 0;
      opacity: 1;
      cursor: pointer;
    }

    /* 中心のドット（非アクティブ） */
    .splide__pagination__page::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      translate: -50% -50%;
      width: 5px;
      height: 5px;
      background: #fff;
      border-radius: 50%;
      transition: background-color 0.3s;
    }

    /* アクティブ時の中心ドット */
    .splide__pagination__page.is-active::after {
      background: #fff;
    }

    /* プログレスSVGのスタイル */
    .splide__pagination__page svg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      transform: rotate(-90deg);
      fill: transparent;
      stroke: #fff;
      stroke-width: 2;
      stroke-linecap: round;
      pointer-events: none;
      /* visibility: hidden; */
      visibility: visible;
      transition: stroke-dashoffset 0.1s linear;
    }
  }

  .fv-deco {
    position: absolute;
    top: 80px;
    left: 0;
    width: 722px;
    height: 90px;

    @media (max-width: 768px) {
      top: 0;
      width: 226px;
    }
  }

  .fv-catch {
    position: absolute;
    top: 30%;
    left: 88px;

    @media (max-width: 768px) {
      top: unset;
      bottom: 32px;
      left: 20px;
    }

    p {
      font-size: 48px;
      font-weight: 500;
      letter-spacing: 0.04em;
      line-height: 1.583;
      color: #fff;
      text-shadow: 0 1px 6px rgba(0, 0, 0, 0.25);
      clip-path: inset(0 0 0 0);
      white-space: nowrap;

      @media (max-width: 768px) {
        font-size: 32px;
        letter-spacing: 0;
        line-height: 1.625;
      }
    }
  }

  .event-pop {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 440px;
    height: 230px;
    padding: 26px 40px 32px;
    border-top: 1px solid var(--color-green);
    border-left: 1px solid var(--color-green);
    background-color: rgba(255, 255, 255, 0.95);

    @media (max-width: 768px) {
      bottom: -185px;
      width: 355px;
      height: 201px;
      padding: 24px 21px 25px 32px;
      border-bottom: 1px solid var(--color-green);
    }

    .text {
      font-size: 20px;
      font-weight: 500;
      letter-spacing: 0.015em;
      line-height: 1.8;

      @media (max-width: 768px) {
        font-size: 16px;
        letter-spacing: 0.02em;
        line-height: 1.75;
      }
    }

    .day {
      padding-left: 19px;
      font-size: 24px;
      font-weight: 600;
      letter-spacing: 0;
      line-height: 2.167;
      color: var(--color-green);
      position: relative;

      &::before {
        content: '';
        position: absolute;
        top: 23px;
        left: 0;
        width: 10px;
        aspect-ratio: 1/1;
        border-radius: 10px;
        background-color: var(--color-green);
      }

      .small {
        display: inline-block;
        margin-left: 4px;
        font-size: 16px;
      }

      .small + .small {
        margin-left: 16px;
      }
    }

    .link-btn {
      width: 100%;
      height: 48px;
      padding-left: 74px;
      background-color: var(--color-green);
      display: flex;
      align-items: center;
      font-size: 16px;
      font-weight: 500;
      letter-spacing: 0.02em;
      line-height: 1;
      color: #fff;
      border: 1px solid var(--color-green);
      position: relative;
      transition: all 300ms 0s ease;

      @media (max-width: 768px) {
        padding-left: 0;
        justify-content: center;
      }

      &::before {
        content: '';
        position: absolute;
        top: 17px;
        right: 74px;
        width: 14px;
        height: 14px;
        background-color: #fff;
        mask-image: url('../img/common/other-link-icon.svg');
        mask-repeat: no-repeat;
        mask-size: contain;
        mask-position: center;
        transition: background-color 300ms 0s ease;

        @media (max-width: 768px) {
          right: 14px;
        }
      }

      @media (min-width: 769px) {
        &:hover {
          background-color: #fff;
          color: var(--color-green);

          &::before {
            background-color: var(--color-green);
          }
        }
      }
    }
  }

  /* ↑↑↑ fv ↑↑↑ */

  /* ↓↓↓ courses-box ↓↓↓ */
  .courses-box {
    width: 100%;
    padding-block: 100px;
    background: url('../img/top/courses-box-bg.jpg')no-repeat;
    background-size: cover;

    @media (max-width: 768px) {
      padding-block: 274px 80px;
    }
  }

  .courses-box_inner {
    width: 1104px;
    margin-inline: auto;
    padding: 52px 93px 65px;
    background-color: rgba(255, 255, 255, 0.5);
    position: relative;

    @media (max-width: 768px) {
      width: 100%;
      padding: 24px 20px 0 20px;
      background-color: transparent;
    }

    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      translate: -50% 0;
      width: 164px;
      height: 4px;
      background-color: var(--color-green);

      @media (max-width: 768px) {
        width: 77px;
      }
    }

    .ttl {
      display: block;
      margin-inline: auto;
      font-size: 24px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1.833;
      color: var(--color-green);
      text-align: center;

      @media (max-width: 768px) {
        font-size: 20px;
        line-height: 1.8;
      }
    }

    .point-list {
      width: 100%;
      margin-top: 48px;

      .item {
        width: 100%;
        position: relative;
        padding-left: 186px;

        @media (max-width: 768px) {
          padding-left: 0;
        }

        .wrap {
          display: contents;
        }

        @media (max-width: 768px) {
          .wrap {
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 16px;
          }
        }

        .circle {
          position: absolute;
          top: 0;
          left: 0;
          width: 120px;
          aspect-ratio: 1/1;
          border: 1px solid var(--color-green);
          border-radius: 120px;

          @media (max-width: 768px) {
            position: relative;
            width: 76px;
          }

          span {
            display: block;
            position: absolute;
            left: 50%;
            translate: -50% 0;

            &:nth-of-type(1) {
              top: 30px;
              font-size: 16px;
              font-weight: 500;
              letter-spacing: 0.02em;
              line-height: 1;
              color: var(--color-green);

              @media (max-width: 768px) {
                top: 21px;
                width: 100%;
                font-size: 12px;
                text-align: center;
              }
            }

            &:nth-of-type(2) {
              top: 57px;
              font-size: 40px;
              font-weight: 500;
              letter-spacing: 0;
              line-height: 0.7;
              color: var(--color-green);

              @media (max-width: 768px) {
                top: 39px;
                font-size: 20px;
              }
            }
          }
        }

        .head {
          font-size: 32px;
          font-weight: 500;
          letter-spacing: 0;
          line-height: 1.625;

          @media (max-width: 768px) {
            flex: 1;
            font-size: 24px;
            line-height: 1.5;
            text-align: center;
          }
        }

        & + .item {
          margin-top: 42px;

          @media (max-width: 768px) {
            margin-top: 40px;
          }
        }
      }

      .text {
        padding-top: 15px;
        font-family: var(--text-zenkaku);
        font-size: 20px;
        letter-spacing: 0.01em;
        line-height: 1.8;
        text-align: justify;
        word-break: break-all;

        @media (max-width: 768px) {
          padding-top: 20px;
          font-size: 16px;
          line-height: 2;
        }
      }
    }
  }

  /* ↑↑↑ courses-box ↑↑↑ */

  /* ↓↓↓ anker-box ↓↓↓ */
  .anker-box {
    width: 100%;
    height: 333px;
    padding: 100px 0;
    background-color: var(--color-green2);

    @media (max-width: 768px) {
      height: auto;
      padding: 48px 20px;
    }

    .inner {
      width: 1104px;
      margin-inline: auto;
      display: flex;
      gap: 24px;

      @media (max-width: 768px) {
        width: 100%;
        max-width: 335px;
        flex-direction: column;
        gap: 8px;
      }

      .link {
        display: block;
        width: calc((100% - 48px)/3);
        height: 133px;
        background-color: #fff;
        border-radius: 10px;
        position: relative;
        transition: background-color 300ms 0s ease;

        @media (max-width: 768px) {
          width: 100%;
          height: 100px;
        }

        &::before {
          content: '';
          position: absolute;
          bottom: 17px;
          left: 50%;
          translate: -50% 0;
          width: 18px;
          height: 11px;
          background-color: var(--color-green);
          mask-image: url('../img/common/down-arrow.svg');
          mask-repeat: no-repeat;
          mask-size: contain;
          mask-position: center;
          transition: bottom 300ms 0s ease;

          @media (max-width: 768px) {
            bottom: 50%;
            left: unset;
            right: 24px;
            translate: 0 50%;
          }
        }

        .text {
          padding-top: 25px;
          font-size: 16px;
          font-weight: 500;
          letter-spacing: 0.02em;
          line-height: 1.8;
          text-align: center;

          @media (max-width: 768px) {
            height: 100%;
            padding-top: 0;
            padding-left: 20px;
            text-align: left;
            display: flex;
            align-items: center;
          }

          .line {
            background-image: linear-gradient(transparent calc(100% - 1px), currentColor 1px);
            background-size: 0 95%;
            background-repeat: no-repeat;
            transition: background-size 300ms 0s ease;
          }

          b {
            font-size: 24px;
            font-weight: 500;
          }
        }

        @media (min-width: 769px) {
          &:hover {
            &::before {
              bottom: 12px;
            }

            .text {
              .line {
                background-size: 100% 95%;
              }
            }
          }
        }
      }
    }
  }

  /* ↑↑↑ anker-box ↑↑↑ */

  /* ↓↓↓ sec-box ↓↓↓ */
  .sec-box {
    width: 100%;

    .inner {
      width: 916px;
      margin: 0 auto;

      @media (max-width: 768px) {
        width: 100%;
      }
    }
  }

  .sec-box .ttl-wrap {
    width: 100%;
    height: 400px;
    position: relative;

    @media (max-width: 768px) {
      height: 250px;
    }

    .group {
      position: absolute;
      top: 50%;
      left: 50%;
      translate: -50% -60%;

      @media (max-width: 768px) {
        width: 100%;
      }

      .en,
      .ttl {
        display: block;
        font-weight: 500;
        line-height: 1;
        color: #fff;
        text-align: center;
      }

      .en {
        font-size: 16px;
        letter-spacing: 0.02em;
      }

      .ttl {
        margin-top: 16px;
        font-size: 48px;
        letter-spacing: 0;

        @media (max-width: 768px) {
          font-size: 32px;
        }
      }
    }
  }

  .sec-box.company .ttl-wrap {
    background: url('../img/top/sec-box-ttl-bg01_pc.jpg')no-repeat;
    background-size: cover;
    background-position: center;

    @media (max-width: 768px) {
      background: url('../img/top/sec-box-ttl-bg01_sp.jpg')no-repeat;
      background-size: cover;
      background-position: center;
    }
  }

  .sec-box.career .ttl-wrap {
    background: url('../img/top/sec-box-ttl-bg02_pc.jpg')no-repeat;
    background-size: cover;
    background-position: center;

    @media (max-width: 768px) {
      background: url('../img/top/sec-box-ttl-bg02_sp.jpg')no-repeat;
      background-size: cover;
      background-position: center;
    }
  }

  .sec-box.work .ttl-wrap {
    background: url('../img/top/sec-box-ttl-bg03_pc.jpg')no-repeat;
    background-size: cover;
    background-position: center;

    @media (max-width: 768px) {
      background: url('../img/top/sec-box-ttl-bg03_sp.jpg')no-repeat;
      background-size: cover;
      background-position: center;
    }
  }

  .sec-box.company {
    .inner {
      padding-block: 100px 150px;

      @media (max-width: 768px) {
        padding-block: 80px 100px;
      }
    }
  }

  .sec-box .set_group01 {
    width: 100%;
    display: flex;

    @media (max-width: 768px) {
      flex-direction: column;
      padding-inline: 20px;
    }

    .head-wrap {
      width: 470px;

      @media (max-width: 768px) {
        width: 100%;
      }

      .subhead {
        padding: 2px 16px 3px;
        font-size: 20px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 1;
        color: #fff;
        background-color: var(--color-green);
      }

      .mainhead {
        margin-top: 24px;
        font-size: 40px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1.6;

        @media (max-width: 768px) {
          font-size: 32px;
        }
      }
    }

    .text {
      flex: 1;
      font-family: var(--text-zenkaku);
      font-size: 16px;
      font-weight: 400;
      letter-spacing: 0.02em;
      line-height: 2.25;
      text-align: justify;
      word-break: break-all;

      @media (max-width: 768px) {
        margin-top: 40px;
      }
    }
  }

  .set_group02 {
    width: 100%;
    margin-top: 80px;
    padding: 53px 94px 72px;
    background-color: #DFECEF;
    position: relative;

    @media (max-width: 768px) {
      width: calc(100% - 40px);
      margin-top: 64px;
      margin-inline: auto;
      padding: 28px 20px 40px;
    }

    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      translate: -50% 0;
      width: 164px;
      height: 4px;
      background-color: var(--color-green2);
    }

    .group02-head {
      font-size: 24px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1.833;
      color: var(--color-green2);
      text-align: center;

      @media (max-width: 768px) {
        font-size: 20px;
      }
    }

    .group02-subhead {
      display: block;
      margin-top: 10px;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.02em;
      line-height: 1;
      color: var(--color-green2);
      text-align: center;

      @media (max-width: 768px) {
        margin-top: 25px;
      }
    }

    .read-group {
      width: 100%;
      margin-top: 48px;
      padding: 24px 120px;
      background-color: #fff;

      @media (max-width: 768px) {
        margin-top: 30px;
        padding: 24px 10px;
      }

      .read-ttl {
        font-size: 20px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 1;
        text-align: center;
        color: var(--color-green2);

        @media (max-width: 768px) {
          line-height: 1.8;
        }

        @media (max-width: 768px) {
          .sp-s {
            font-size: 13px;
            letter-spacing: 0;
          }
        }
      }

      .read-text {
        margin-top: 16px;
        font-family: var(--text-zenkaku);
        font-size: 14px;
        letter-spacing: 0.02em;
        line-height: 1.857;
        text-align: center;
        color: var(--color-green2);

        @media (max-width: 768px) {
          text-align: justify;
          word-break: break-all;
        }
      }
    }

    .areas {
      width: 100%;
      margin-top: 48px;

      @media (max-width: 768px) {
        margin-top: 40px;
      }

      .areas-ttl {
        font-size: 20px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 1;
        text-align: center;
        color: var(--color-green2);
      }

      .areas-inner {
        width: 100%;
        margin-top: 12px;
        display: flex;
        gap: 16px;

        @media (max-width: 768px) {
          max-width: 400px;
          margin-inline: auto;
          flex-direction: column;
          gap: 32px;
        }

        .areas-group {
          width: calc((100% - 32px)/3);

          @media (max-width: 768px) {
            width: 100%;
          }

          .item1 {
            width: 100%;
            height: 103px;
            background-color: var(--color-green);
            display: grid;
            place-content: center;

            @media (max-width: 768px) {
              height: auto;
              padding-block: 12px;
            }

            p {
              font-size: 15px;
              font-weight: 500;
              letter-spacing: 0.02em;
              line-height: 1.5;
              color: #fff;
              text-align: center;

              @media (max-width: 768px) {
                font-size: 16px;
              }

              .s {
                font-size: 13px;
              }
            }
          }

          .item2 {
            width: 100%;
            height: 131px;
            margin-top: 30px;
            display: grid;
            place-content: center;
            position: relative;

            @media (max-width: 768px) {
              margin-top: 22px;
              height: 94px;
              display: block;
            }

            &::before {
              content: '';
              position: absolute;
              top: -22px;
              left: 50%;
              translate: -50% 0;
              width: 0;
              height: 0;
              border-style: solid;
              border-width: 14px 8px 0 8px;
              border-color: #949494 transparent transparent transparent;

              @media (max-width: 768px) {
                top: -17px;
              }
            }

            &.-orange {
              background-color: #EE8800;
            }

            &.-green {
              background-color: #99CC00;
            }

            &.-blue {
              background-color: #3399CC;
            }

            p {
              font-family: var(--text-zenkaku);
              font-size: 14px;
              letter-spacing: 0.02em;
              line-height: 1.857;
              color: #fff;
              text-align: center;

              @media (max-width: 768px) {
                width: 100%;
                height: 100%;
                padding-left: 84px;
                padding-right: 10px;
                text-align: left;
                position: relative;
                display: flex;
                align-items: center;
              }

              b {
                display: block;
                margin-bottom: 12px;
                font-family: var(--text-shippori);
                font-size: 24px;
                font-weight: 500;
                letter-spacing: 0;
                line-height: 1;
                text-align: center;

                @media (max-width: 768px) {
                  position: absolute;
                  top: 50%;
                  left: 14px;
                  translate: 0 -50%;
                  font-size: 20px;
                }
              }

              .s {
                font-size: 12px;
                letter-spacing: 0;
                display: contents;

                @media (max-width: 768px) {
                  font-size: 11px;
                }
              }
            }
          }
        }
      }
    }
  }

  .sec-box .set_group03 {
    width: 100%;
    margin-top: 150px;
    display: flex;

    @media (max-width: 768px) {
      flex-direction: column;
      margin-top: 100px;
      padding-inline: 20px;
    }

    .head-wrap {
      width: 470px;

      @media (max-width: 768px) {
        width: 100%;
      }

      .subhead {
        padding: 2px 16px 3px;
        font-size: 20px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 1;
        color: #fff;
        background-color: var(--color-green);
      }

      .mainhead {
        margin-top: 24px;
        font-size: 40px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1.6;

        @media (max-width: 768px) {
          font-size: 32px;
        }
      }
    }

    .text {
      flex: 1;
      font-family: var(--text-zenkaku);
      font-size: 16px;
      font-weight: 400;
      letter-spacing: 0.02em;
      line-height: 2.25;
      text-align: justify;
      word-break: break-all;

      @media (max-width: 768px) {
        margin-top: 40px;
      }
    }
  }

  .set_group04 {
    width: 100%;
    margin-top: 80px;
    padding: 53px 94px 72px;
    background-color: #DFECEF;
    position: relative;

    @media (max-width: 768px) {
      width: calc(100% - 40px);
      margin-top: 40px;
      margin-inline: auto;
      padding: 28px 20px 40px;
    }

    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      translate: -50% 0;
      width: 164px;
      height: 4px;
      background-color: var(--color-green2);
    }

    .group02-head {
      font-size: 24px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1.833;
      color: var(--color-green2);
      text-align: center;

      @media (max-width: 768px) {
        font-size: 20px;
      }
    }

    .group02-subhead {
      display: block;
      margin-top: 10px;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.02em;
      line-height: 2;
      color: var(--color-green2);
      text-align: justify;
      word-break: break-all;

      @media (max-width: 768px) {
        margin-top: 25px;
      }
    }

    .image01 {
      display: block;
      width: 540px;
      margin: 48px auto 0;

      @media (max-width: 768px) {
        width: 100%;
        max-width: 400px;
        margin-top: 30px;
      }
    }
  }

  .set_group05 {
    width: 100%;
    margin-top: 150px;

    @media (max-width: 768px) {
      margin-top: 80px;
    }

    .group05-head {
      padding-bottom: 30px;
      font-size: 32px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1;
      color: var(--color-green);
      text-align: center;
      position: relative;

      @media (max-width: 768px) {
        padding-bottom: 25px;
        font-size: 20px;
        line-height: 1.8;
      }

      &::before {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        translate: -50% 0;
        width: 70px;
        height: 1px;
        background-color: var(--color-green);
      }
    }

    .group05-read {
      width: 728px;
      margin-top: 32px;
      margin-inline: auto;
      font-family: var(--text-zenkaku);
      font-size: 16px;
      letter-spacing: 0.02em;
      line-height: 2.25;
      text-align: justify;
      word-break: break-all;
      color: #333;

      @media (max-width: 768px) {
        width: calc(100% - 40px);
      }
    }

    .image01 {
      width: 100%;
      margin: 48px auto 0;
      position: relative;

      @media (max-width: 768px) {
        width: calc(100% - 40px);
        max-width: 335px;
        margin-top: 40px;
      }

      picture {
        display: block;
        width: 100%;
      }

      .modal-btn {
        position: absolute;
        top: 14px;
        width: 142px;
        height: 90px;
        background-color: #fff;
        border-radius: 3px;
        box-shadow: 0 3px 3px rgba(0, 0, 0, 0.25);
        overflow: hidden;
        font-family: var(--text-zenkaku);
        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1.571;
        text-align: center;
        display: grid;
        place-content: center;
        cursor: pointer;
        transition: all 300ms 0s ease;

        @media (max-width: 768px) {
          top: unset;
          right: 10px;
          width: 133px;
          height: 80px;
          font-size: 13px;
        }

        &::before {
          content: '';
          position: absolute;
          bottom: 0;
          right: 0;
          width: 24px;
          aspect-ratio: 1/1;
          background-image: url('../img/top/modal-btn-plus.png');
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-color: var(--color-green);

          @media (max-width: 768px) {
            width: 22px;
          }
        }

        @media (min-width: 769px) {
          &:hover {
            translate: 0 -3px;
            box-shadow: 0 6px 3px rgba(0, 0, 0, 0.25);
          }
        }
      }

      .modal-btn[data-target="modal01"] {
        left: 195px;

        @media (max-width: 768px) {
          left: unset;
          top: 48px;
        }
      }

      .modal-btn[data-target="modal02"] {
        left: 345px;

        @media (max-width: 768px) {
          left: unset;
          top: 138px;
        }
      }

      .modal-btn[data-target="modal03"] {
        left: 495px;

        @media (max-width: 768px) {
          left: unset;
          top: 228px;
        }
      }

      .modal-btn[data-target="modal04"] {
        left: 645px;

        @media (max-width: 768px) {
          left: unset;
          top: 318px;
        }
      }
    }
  }

  .js-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 30;
  }

  .modal__bg {
    width: 100%;
    height: 100vh;
    height: 100svh;
    background: rgba(216, 216, 216, 0.85);
    position: absolute;
  }

  .modal__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(90%, 728px);
    padding: 48px 48px 74px;
    background: #fff;

    @media (max-width: 768px) {
      width: calc(100% - 40px);
      padding: 48px 20px;
    }

    .modal-ttl {
      padding-bottom: 15px;
      font-size: 24px;
      font-weight: 500;
      letter-spacing: 0.06em;
      line-height: 1;
      border-bottom: 1px solid #B4B4B4;
    }

    .modal-text {
      max-height: 60vh;
      overflow-y: scroll;
      padding-top: 28px;
      font-family: var(--text-zenkaku);
      font-size: 14px;
      letter-spacing: 0.04em;
      line-height: 1.857;
      text-align: justify;
      word-break: break-all;

      @media (max-width: 768px) {
        padding-top: 25px;
      }
    }
  }

  .modal-close-btn {
    position: absolute;
    top: -40px;
    right: -40px;
    width: 40px;
    aspect-ratio: 1/1;
    border: 0;
    background-color: transparent;
    cursor: pointer;

    @media (max-width: 768px) {
      right: 0px;
    }
  }

  .interview-link-btn {
    width: 100%;
    display: flex;
    margin-top: 150px;
    background-color: var(--color-green);
    transition: opacity 300ms 0s ease;
    position: relative;

    @media (max-width: 768px) {
      width: calc(100% - 40px);
      margin-top: 80px;
      margin-inline: auto;
      flex-direction: column;
    }

    @media (min-width: 769px) {
      &:hover {
        opacity: .7 !important;
      }
    }

    .image {
      width: 511px;

      @media (max-width: 768px) {
        width: 100%;
      }
    }

    .text {
      flex: 1;
      padding-left: 53px;
      font-size: 20px;
      font-weight: 500;
      letter-spacing: 0.02em;
      line-height: 1.8;
      color: #fff;
      display: flex;
      align-items: center;
      position: relative;
      overflow: hidden;

      @media (max-width: 768px) {
        flex: unset;
        width: 100%;
        height: 160px;
        padding-left: 20px;
      }

      &::before {
        content: 'Interview';
        position: absolute;
        top: 29px;
        left: 27px;
        font-size: 72px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        color: #fff;
        opacity: 0.2;

        @media (max-width: 768px) {
          top: 12px;
          left: 10px;
          font-size: 48px;
        }
      }
    }

    &.comingsoon {
      cursor: none;
      pointer-events: none;
      filter: grayscale(1);

      &::after {
        content: 'Coming soon';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(28, 28, 28, 0.4);
        display: grid;
        place-content: center;
        font-size: 32px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        color: #fff;

        @media (max-width: 768px) {
          font-size: 24px;
        }
      }

      @media (min-width: 769px) {
        &:hover {
          opacity: 1 !important;
        }
      }
    }
  }

  .sec-box.career {
    background: url('../img/top/sec-box_career-bg.jpg')no-repeat;
    background-size: cover;

    .inner {
      padding-block: 157px 150px;

      @media (max-width: 768px) {
        padding-block: 80px 100px;
      }

      .top-read {
        width: 728px;
        margin-inline: auto;
        font-family: var(--text-zenkaku);
        font-size: 16px;
        letter-spacing: 0.02em;
        line-height: 2.25;
        text-align: justify;
        word-break: break-all;
        color: #333;

        @media (max-width: 768px) {
          width: calc(100% - 40px);
        }
      }

      .system-group {
        width: 100%;
        margin-top: 100px;

        @media (max-width: 768px) {
          width: calc(100% - 40px);
          margin-top: 80px;
          margin-inline: auto;
        }

        .group-ttl {
          padding-bottom: 30px;
          display: block;
          font-size: 32px;
          font-weight: 500;
          letter-spacing: 0;
          line-height: 1;
          color: var(--color-green);
          text-align: center;
          position: relative;

          @media (max-width: 768px) {
            font-size: 20px;
            padding-bottom: 25px;
            line-height: 1.8;
          }

          &::before {
            content: '';
            position: absolute;
            bottom: 0;
            left: 50%;
            translate: -50% 0;
            width: 70px;
            height: 1px;
            background-color: var(--color-green);
          }
        }

        .group-read {
          width: 728px;
          margin: 20px auto 0;
          font-family: var(--text-zenkaku);
          font-size: 16px;
          letter-spacing: 0.02em;
          line-height: 2.25;
          text-align: justify;
          word-break: break-all;

          @media (max-width: 768px) {
            width: 100%;
          }
        }

        .image {
          display: block;
          margin-top: 48px;

          @media (max-width: 768px) {
            width: 100%;
            max-width: 335px;
            margin-top: 40px;
            margin-inline: auto;
          }
        }
      }
    }
  }

  .sec-box.work {

    .inner {
      padding-block: 100px;

      @media (max-width: 768px) {
        padding-block: 80px;
      }

      .system-group {
        width: 100%;

        @media (max-width: 768px) {
          width: calc(100% - 40px);
          margin-inline: auto;
        }

        & + .system-group {
          margin-top: 100px;

          @media (max-width: 768px) {
            margin-top: 80px;
          }
        }

        .group-ttl {
          padding-bottom: 30px;
          display: block;
          font-size: 32px;
          font-weight: 500;
          letter-spacing: 0;
          line-height: 1;
          color: var(--color-green);
          text-align: center;
          position: relative;

          @media (max-width: 768px) {
            font-size: 20px;
            padding-bottom: 25px;
            line-height: 1.8;
          }

          &::before {
            content: '';
            position: absolute;
            bottom: 0;
            left: 50%;
            translate: -50% 0;
            width: 70px;
            height: 1px;
            background-color: var(--color-green);
          }
        }

        .group-read {
          width: 728px;
          margin: 20px auto 0;
          font-family: var(--text-zenkaku);
          font-size: 16px;
          letter-spacing: 0.02em;
          line-height: 2.25;
          text-align: justify;
          word-break: break-all;

          @media (max-width: 768px) {
            width: 100%;
          }
        }

        .image1 {
          display: block;
          margin-top: 48px;

          @media (max-width: 768px) {
            width: 100%;
            max-width: 335px;
            margin-top: 40px;
            margin-inline: auto;
          }
        }

        .image2 {
          display: block;
          margin-top: 52px;

          @media (max-width: 768px) {
            width: 100%;
            max-width: 335px;
            margin-top: 40px;
            margin-inline: auto;
          }
        }

        .system-note {
          margin-top: 10px;
          font-family: var(--text-zenkaku);
          font-size: 14px;
          letter-spacing: 0.02em;
          line-height: 1;
          color: #333;

          @media (max-width: 768px) {
            width: 100%;
            max-width: 335px;
            margin-inline: auto;
            text-align: right;
          }

          &.-r {
            text-align: right;
          }
        }
      }

      .select-work {
        width: 100%;
        margin-top: 48px;
        display: flex;
        gap: 24px;
        position: relative;

        @media (max-width: 768px) {
          max-width: 335px;
          margin-top: 35px;
          margin-inline: auto;
          flex-direction: column;
          gap: 48px;
        }

        &::after {
          content: '';
          position: absolute;
          top: 127px;
          left: 50%;
          translate: -50% 0;
          width: 48px;
          aspect-ratio: 1/1;
          background: url('../img/top/select-work-cross-icon.png')no-repeat;
          background-size: contain;
          background-position: center;

          @media (max-width: 768px) {
            top: 50%;
            translate: -50% -50%;
            width: 32px;
          }
        }

        .home_ground,
        .location {
          width: calc((100% - 24px)/2);
          background-color: #DCEEF2;

          @media (max-width: 768px) {
            width: 100%;
          }

          .cap {
            width: 100%;
            height: 40px;
            background-color: var(--color-green);
            display: grid;
            place-content: center;
            font-size: 20px;
            font-weight: 500;
            letter-spacing: 0.02em;
            line-height: 1;
            color: #fff;
          }

          .inside {
            width: 100%;
            padding: 32px 47px 40px;
            background-color: #DFECEF;
            display: flex;
            flex-direction: column;
            gap: 8px;

            @media (max-width: 768px) {
              padding: 16px 20px;
              flex-direction: row;
            }
          }
        }
      }

      .home_ground .item {
        width: 100%;
        height: 48px;
        background-color: #fff;
        font-size: 24px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        color: var(--color-green2);
        display: grid;
        place-content: center;

        @media (max-width: 768px) {
          font-size: 20px;
        }

        &:last-of-type {
          color: #626262;
          background-color: #D8D8D8;
        }
      }

      .location .item {
        width: 100%;
        height: 76px;
        background-color: #fff;
        font-size: 24px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        color: var(--color-green2);
        display: grid;
        place-content: center;
        position: relative;

        @media (max-width: 768px) {
          height: 48px;
          font-size: 20px;
        }

        &:nth-of-type(1)::before {
          content: '';
          position: absolute;
          top: 50%;
          left: 50%;
          translate: -50% -50%;
          width: 44px;
          aspect-ratio: 1/1;
          background: url('../img/top/select-work-possible-icon.png')no-repeat;
          background-size: contain;
          background-position: center;

          @media (max-width: 768px) {
            width: 36px;
          }
        }

        &:nth-of-type(2)::before {
          content: '';
          position: absolute;
          top: 50%;
          left: 50%;
          translate: -50% -50%;
          width: 40px;
          aspect-ratio: 1/1;
          background: url('../img/top/select-work-notpossible-icon.png')no-repeat;
          background-size: contain;
          background-position: center;

          @media (max-width: 768px) {
            width: 30px;
          }
        }

        span {
          position: relative;
        }
      }
    }

    .system-numbers {
      width: 100%;
      margin-top: 48px;
      display: flex;
      flex-wrap: wrap;
      gap: 24px 23px;

      @media (max-width: 768px) {
        max-width: 400px;
        margin-top: 40px;
        margin-inline: auto;
        gap: 8px;
        flex-direction: column;
      }

      .numbers-item {
        width: calc((100% - 46px) /3);
        height: 156px;
        background-color: #DFECEF;
        position: relative;
        display: grid;
        place-content: center;

        @media (max-width: 768px) {
          width: 100%;
        }
      }

      .cap {
        position: absolute;
        top: 0;
        left: 0;
        width: fit-content;
        height: 27px;
        padding-inline: 8px;
        background-color: var(--color-green);
        display: flex;
        align-items: center;
        font-size: 16px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 1;
        color: #fff;

        .s {
          font-size: 13px;
        }
      }

      .num {
        display: block;
        margin-top: 5px;
        font-size: 72px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 0.9;
        color: var(--color-green2);

        .unit {
          margin-left: 2px;
          font-size: 40px;
        }
      }
    }
  }

  .event-box {
    width: 100%;
    padding-block: 285px 166px;
    position: relative;
    background: url('../img/top/event-box-bg_pc.jpg')no-repeat;
    background-size: cover;
    background-position: top center;

    @media (max-width: 768px) {
      padding-block: 137px 80px;
      background: url('../img/top/event-box-bg_sp.jpg')no-repeat;
      background-size: cover;
      background-position: top center;
    }

    .event-top-deco {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 136px;
      background: url('../img/top/event-top-deco.png')no-repeat;
      background-size: 100% 100%;
      background-position: bottom center;

      @media (max-width: 768px) {
        height: 40px;
      }
    }

    .event-subttl {
      width: fit-content;
      margin-inline: auto;
      padding-bottom: 28px;
      font-size: 32px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1;
      color: #fff;
      display: block;
      position: relative;

      @media (max-width: 768px) {
        width: 100%;
        max-width: 335px;
        padding-bottom: 24px;
        font-size: 16px;
        text-align: center;
      }

      &::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 14px;
        background: url('../img/top/event-ttl-deco_pc.png')no-repeat;
        background-size: contain;

        @media (max-width: 768px) {
          height: 10px;
          background: url('../img/top/event-ttl-deco_sp.png')no-repeat;
          background-size: contain;
        }
      }
    }

    .event-ttl {
      width: fit-content;
      margin-top: 24px;
      margin-inline: auto;
      font-size: 48px;
      font-weight: 500;
      letter-spacing: -2px;
      line-height: 1;
      color: #fff;
      display: block;
      position: relative;

      @media (max-width: 768px) {
        margin-top: 8px;
        font-size: 24px;
      }
    }

    .event-day {
      width: 540px;
      height: 156px;
      margin: 45px auto 0;
      background-color: rgba(255, 255, 255, 0.25);
      display: grid;
      place-content: center;

      @media (max-width: 768px) {
        width: 335px;
        height: 100px;
        margin: 32px auto 0;
      }

      .day {
        font-size: 48px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        color: #fff;

        @media (max-width: 768px) {
          font-size: 32px;
        }

        .s {
          margin-left: 8px;
          font-size: 32px;

          @media (max-width: 768px) {
            margin-left: 4px;
            font-size: 20px;
          }
        }

        .time {
          font-size: 32px;
          letter-spacing: 0;
          line-height: 1;
          text-align: center;
          display: block;
          width: 100%;
          margin-top: 15px;

          @media (max-width: 768px) {
            font-size: 20px;
            margin-top: 12px;
          }
        }
      }
    }

    .image {
      display: block;
      width: 100%;
      margin: 64px auto 0;
    }

    .event-outline {
      width: 916px;
      margin: 80px auto 0;
      padding: 64px 94px;
      background-color: #fff;
      position: relative;

      @media (max-width: 768px) {
        width: calc(100% - 40px);
        padding: 48px 20px;
      }

      .event-outline-ttl {
        padding-bottom: 25px;
        font-size: 32px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1.625;
        color: var(--color-green);
        text-align: center;
        position: relative;

        @media (max-width: 768px) {
          font-size: 20px;
          line-height: 1.0;
        }

        &::before {
          content: '';
          position: absolute;
          bottom: 0;
          left: 50%;
          translate: -50% 0;
          width: 70px;
          height: 1px;
          background-color: var(--color-green);
        }
      }

      .event-outline-text {
        margin-top: 30px;
        font-size: 16px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 2.25;
        text-align: justify;
        word-break: break-all;
        color: #333;

        @media (max-width: 768px) {
          margin-top: 25px;
        }
      }

      .event-outline-program {
        width: 100%;
        margin-top: 48px;
        padding: 30px 70px;
        background-color: #DFECEF;
        font-family: var(--text-zenkaku);
        font-size: 14px;
        letter-spacing: 0.02em;
        line-height: 1.857;
        color: var(--color-green2);
        text-align: justify;
        word-break: break-all;

        @media (max-width: 768px) {
          padding: 30px 20px;
        }

        b {
          display: block;
          margin-bottom: 15px;
          font-family: var(--text-shippori);
          font-size: 20px;
          font-weight: 500;
        }

        strong {
          display: inline-block;
          margin-bottom: 3px;
          font-family: var(--text-zenkaku);
          font-size: 16px;
          font-weight: 500;
          letter-spacing: 0.02em;
          line-height: 2.25;
          color: var(--color-green2);
        }
      }
    }

    .event-reservation {
      width: 916px;
      height: 120px;
      margin: 48px auto 0;
      background-color: var(--color-green);
      display: grid;
      place-content: center;
      border: 1px solid var(--color-green);
      transition: background-color 300ms 0s ease;

      @media (max-width: 768px) {
        width: 335px;
      }

      span {
        padding-right: 45px;
        font-size: 32px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        color: #fff;
        position: relative;
        transition: color 300ms 0s ease;

        @media (max-width: 768px) {
          font-size: 20px;
        }

        &::before {
          content: '';
          position: absolute;
          top: 12px;
          right: 0;
          width: 14px;
          height: 14px;
          background-color: #fff;
          mask-image: url('../img/common/other-link-icon.svg');
          mask-repeat: no-repeat;
          mask-size: contain;
          mask-position: center;
          transition: background-color 300ms 0s ease;

          @media (max-width: 768px) {
            top: 4px;
          }
        }
      }

      &:hover {
        background-color: #fff;

        span {
          color: var(--color-green);

          &::before {
            background-color: var(--color-green);
          }
        }
      }
    }
  }

  .bot-box {
    width: 100%;
    padding-block: 111px 100px;
    background-color: #E8E8E8;

    @media (max-width: 768px) {
      padding-block: 80px;
    }

    .bot-ttl {
      font-size: 32px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1;
      text-align: center;

      @media (max-width: 768px) {
        font-size: 24px;
        line-height: 1.6667;
      }
    }

    .bot-link {
      display: block;
      width: 446px;
      margin: 72px auto 0;
      transition: opacity 300ms 0s ease;

      @media (max-width: 768px) {
        width: 335px;
        margin-top: 40px;
      }

      .txt {
        display: block;
        width: fit-content;
        font-size: 16px;
        font-weight: 500;
        letter-spacing: 0.02em;
        line-height: 1;
        padding: 15px 33px 0 0;
        position: relative;

        @media (max-width: 768px) {
          font-size: 14px;
        }

        &::before {
          content: '';
          position: absolute;
          bottom: 0;
          right: 0;
          width: 14px;
          height: 14px;
          background-color: var(--text-color);
          mask-image: url('../img/common/other-link-icon.svg');
          mask-repeat: no-repeat;
          mask-size: contain;
          mask-position: center;
          transition: background-color 300ms 0s ease;
        }
      }

      @media (min-width: 769px) {
        &:hover {
          opacity: .7;
        }
      }
    }
  }

  /* ↑↑↑ sec-box ↑↑↑ */
}