#visual {
  background: #fff;
  position: relative; }
  #visual .visual__img {
    position: relative;
    width: 100%;
    height: 100vh; }
    @media (max-width: 480px) {
      #visual .visual__img {
        height: auto;
        aspect-ratio: 780/1150; } }
    #visual .visual__img img {
      height: 100%;
      -o-object-fit: cover;
         object-fit: cover; }
      @media (max-width: 480px) {
        #visual .visual__img img {
          height: auto; } }
  #visual .visual__ttl {
    width: 677px;
    position: absolute;
    bottom: 100px;
    left: 100px; }
    @media (max-width: 480px) {
      #visual .visual__ttl {
        width: 90%;
        left: 5%;
        bottom: 5%; } }

.top-content-block01 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 25px; }
  @media (max-width: 480px) {
    .top-content-block01 {
      -webkit-box-orient: vertical;
      -webkit-box-direction: reverse;
          -ms-flex-direction: column-reverse;
              flex-direction: column-reverse;
      gap: 36px; } }
  .top-content-block01 .top-content-block01__img {
    width: 400px; }
    @media (max-width: 480px) {
      .top-content-block01 .top-content-block01__img {
        width: 100vw;
        margin: 0 -4vw; } }
  .top-content-block01 .top-content-block01__txt {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding-left: 30px; }
    @media (max-width: 480px) {
      .top-content-block01 .top-content-block01__txt {
        padding: 0 4vw; } }
    .top-content-block01 .top-content-block01__txt .ttl {
      height: 310px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin-bottom: 45px;
      padding-left: 34px;
      border: 1px solid #bec5d5;
      border-top: 0;
      border-right: 0;
      position: relative; }
      @media (max-width: 480px) {
        .top-content-block01 .top-content-block01__txt .ttl {
          height: auto;
          padding: 1em;
          margin-bottom: 20px; } }
      .top-content-block01 .top-content-block01__txt .ttl .txt {
        font-size: 4.4rem;
        font-weight: 900;
        color: #243974; }
        @media (max-width: 480px) {
          .top-content-block01 .top-content-block01__txt .ttl .txt {
            font-size: 2rem; } }
      .top-content-block01 .top-content-block01__txt .ttl::before {
        content: attr(data-text);
        font-family: "Poppins", sans-serif;
        color: #bec5d5;
        font-size: 1.2rem;
        font-weight: 300;
        position: absolute;
        top: 0;
        left: 0;
        -webkit-transform: translateX(-100%);
                transform: translateX(-100%);
        -webkit-writing-mode: sideways-lr;
            -ms-writing-mode: sideways-lr;
                writing-mode: sideways-lr;
        padding: 1em 1em 0 0;
        border-top: 1px solid #bec5d5; }
        @media (max-width: 480px) {
          .top-content-block01 .top-content-block01__txt .ttl::before {
            padding: 0.5em 0 0; } }
    .top-content-block01 .top-content-block01__txt .msg:not(:last-child) {
      margin-bottom: 2em; }
    .top-content-block01 .top-content-block01__txt .list {
      padding: 25px;
      background-color: #f1f2f6;
      margin-bottom: 20px; }
      @media (max-width: 480px) {
        .top-content-block01 .top-content-block01__txt .list {
          padding: 4vw 8vw;
          margin: 0 -4vw;
          margin-bottom: 30px; } }
      .top-content-block01 .top-content-block01__txt .list li {
        text-indent: -0.5em; }
        @media (max-width: 480px) {
          .top-content-block01 .top-content-block01__txt .list li:not(:last-child) {
            margin-bottom: 1em; } }
        .top-content-block01 .top-content-block01__txt .list li::before {
          content: "";
          width: 6px;
          height: auto;
          aspect-ratio: 6/8;
          background-color: #c81432;
          -webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
                  clip-path: polygon(0 0, 0% 100%, 100% 50%);
          display: inline-block;
          margin-right: 0.2em; }

.sec-top-message .top-message__set01 {
  padding: 100px 0 65px;
  background: url(../img/top-message-bg01.jpg) no-repeat center bottom/cover; }
  @media (max-width: 480px) {
    .sec-top-message .top-message__set01 {
      padding: 40px 0 35px;
      background-image: url(../img/top-message-bg01-sp.jpg);
      background-size: contain;
      background-position: top; } }

.sec-top-works .top-works__set01 {
  padding: 70px 0 75px; }
  @media (max-width: 480px) {
    .sec-top-works .top-works__set01 {
      padding: 25px 0 0; } }
  @media (min-width: 480px) {
    .sec-top-works .top-works__set01 .top-content-block01 {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: reverse;
          -ms-flex-direction: row-reverse;
              flex-direction: row-reverse; }
      .sec-top-works .top-works__set01 .top-content-block01 .top-content-block01__txt {
        padding-left: 0;
        padding-right: 34px; }
        .sec-top-works .top-works__set01 .top-content-block01 .top-content-block01__txt .ttl {
          padding-left: 0;
          border-left: 0;
          border-right: 1px solid #bec5d5; }
          .sec-top-works .top-works__set01 .top-content-block01 .top-content-block01__txt .ttl::before {
            left: 100%;
            -webkit-transform: translateX(0%);
                    transform: translateX(0%);
            padding: 1em 0 0 1em;
            -webkit-writing-mode: sideways-rl;
                -ms-writing-mode: sideways-rl;
                    writing-mode: sideways-rl; } }

.sec-top-recruit .top-recruit__set01 {
  padding-bottom: 100px; }
  @media (max-width: 480px) {
    .sec-top-recruit .top-recruit__set01 {
      padding-bottom: 0; } }
  .sec-top-recruit .top-recruit__set01 .top-recruit-block01 {
    background: url(../img/top-recruit-bg01.jpg) no-repeat center/cover;
    padding: 47px 0; }
    @media (max-width: 480px) {
      .sec-top-recruit .top-recruit__set01 .top-recruit-block01 {
        background-image: url(../img/top-recruit-bg01-sp.jpg);
        padding: 85px 8vw 100%;
        margin: 0 -4vw; } }
    .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set {
      width: 50%;
      margin-left: auto;
      color: #fff; }
      @media (max-width: 480px) {
        .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set {
          width: 100%; } }
      .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .ttl {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column; }
        .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .ttl .sub {
          font-family: "Poppins", sans-serif;
          font-size: 1.3rem;
          font-weight: 300;
          color: #a7b0c7;
          margin-bottom: 0.5em; }
        .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .ttl .main {
          font-size: 3rem;
          font-weight: bold;
          margin-bottom: 1em;
          letter-spacing: 0.2em; }
          @media (max-width: 480px) {
            .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .ttl .main {
              font-size: 2rem; } }
      .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .msg {
        margin-bottom: 2em; }
      .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .btn {
        margin: 0 auto; }
        .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .btn::after {
          background-color: #fff; }
        .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .btn .inner {
          border-color: #fff;
          color: #fff; }
          @media (max-width: 480px) {
            .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .btn .inner {
              background-color: #c81432;
              border-color: #c81432; } }
          .sec-top-recruit .top-recruit__set01 .top-recruit-block01 .top-recruit-block01__set .btn .inner::before {
            background-color: #c81432; }
