@charset "UTF-8";
@keyframes slideAnime1 {
  0% {
    opacity: 0;
    transform: translateX(-100%); }
  100% {
    opacity: 0.9;
    transform: translateX(0); } }
.home .contents {
  margin-top: 0; }
.home .sec_1 {
  width: 100%;
  position: relative;
  overflow: hidden;
  padding: 110px 0 90px; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_1 {
      padding: 90px 0 90px; } }
  .home .sec_1::before {
    content: "";
    width: calc(100% - 100px);
    height: 200px;
    position: absolute;
    left: 0;
    bottom: 0;
    background: linear-gradient(90deg, #f5a200 0%, #e7380d 100%);
    opacity: 0;
    z-index: -1;
    animation: slideAnime1 1s 2s ease forwards; }
  .home .sec_1 .main_copy {
    position: absolute;
    left: 75%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 10; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .main_copy {
        left: 30px;
        top: auto;
        bottom: 30px;
        transform: translate(0, 0); } }
    .home .sec_1 .main_copy span {
      color: #fff;
      font-size: 7.4rem;
      font-weight: 600;
      line-height: 1.3;
      letter-spacing: 0.08em;
      display: block;
      white-space: nowrap; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_1 .main_copy span {
          font-size: 4.2rem; } }
  .home .sec_1 .img_main {
    width: calc(100% - 100px);
    height: calc((100vw - 100px)/1300*700);
    position: relative;
    margin-left: 100px;
    overflow: hidden;
    border-top-left-radius: 30px;
    border-bottom-left-radius: 30px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .img_main {
        margin-left: 20px;
        width: calc(100% - 20px);
        height: calc(130vw);
        border-top-left-radius: 16px;
        border-bottom-left-radius: 16px; } }
    .home .sec_1 .img_main::before {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
      background-color: #777;
      opacity: 0.15;
      z-index: 1; }
    .home .sec_1 .img_main figure {
      width: 100%;
      height: 100%; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_1 .img_main figure {
          width: 200%; } }
    .home .sec_1 .img_main img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: left; }
.home .sec_2 {
  position: relative;
  width: 100%;
  padding: 180px 0 370px;
  z-index: 1; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_2 {
      height: auto;
      padding: 60px 0 180px;
      background-color: #F5A200; } }
  .home .sec_2::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: url("../img/home/bg_intro.jpg") no-repeat center top/cover;
    z-index: -1; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2::before {
        background: url("../img/home/bg_intro_sp.jpg") no-repeat center bottom/cover; } }
  .home .sec_2 h2 {
    font-size: 4.2rem;
    font-weight: 500;
    font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    color: #fff;
    line-height: 1.6;
    letter-spacing: 0.05em; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 h2 {
        font-size: 2.8rem;
        line-height: 1.4; } }
  .home .sec_2 p {
    font-size: 2rem;
    font-weight: 500;
    font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    color: #fff;
    letter-spacing: 0.03em;
    line-height: 2.1;
    margin-top: 1.4em; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 p {
        font-size: 1.6rem;
        line-height: 1.9;
        width: 70%; } }
.home .sec_3 {
  background: linear-gradient(90deg, #e7380d 0%, #EE6808 100%);
  padding: 300px 0 0;
  position: relative;
  z-index: 1; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_3 {
      padding: 140px 0 0; } }
  .home .sec_3::before {
    content: "";
    width: 708px;
    height: 100%;
    position: absolute;
    left: -48px;
    top: 0;
    background: url("../img/home/bg_circle_1.svg") no-repeat center top/100% auto;
    z-index: -1; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3::before {
        width: 340px;
        left: -20px; } }
  .home .sec_3 .btn_guide {
    position: absolute;
    top: -210px;
    right: 0;
    display: flex;
    align-items: center;
    width: calc(100vw - (100vw - 1000px)/2);
    height: 420px;
    border-top-left-radius: 30px;
    border-bottom-left-radius: 30px;
    overflow: hidden;
    background-color: #000; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .btn_guide {
        width: calc(100% - 30px);
        height: 180px;
        border-top-left-radius: 16px;
        border-bottom-left-radius: 16px;
        top: -90px; } }
    .home .sec_3 .btn_guide::before {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
      background: url("../img/bg_guide.jpg") no-repeat left top/cover;
      z-index: 1;
      transition: .3s; }
    .home .sec_3 .btn_guide span {
      display: block;
      width: 340px;
      position: absolute;
      left: 70px;
      bottom: 70px;
      z-index: 2; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_3 .btn_guide span {
          width: 170px;
          left: 20px;
          bottom: auto;
          top: 30px; } }
    .home .sec_3 .btn_guide i {
      position: absolute;
      right: -100px;
      top: 0;
      width: 100px;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.7);
      z-index: 5;
      transition: .4s ease; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_3 .btn_guide i {
          right: 15px;
          top: auto;
          bottom: 15px;
          width: 40px;
          height: 40px;
          border-radius: 20px;
          background-color: rgba(0, 0, 0, 0.7); } }
      .home .sec_3 .btn_guide i::before {
        content: "";
        width: 18px;
        height: 3px;
        background-color: #fff;
        position: absolute;
        left: calc(50% - 12px);
        top: calc(50% - 1.5px);
        transition: .3s; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_3 .btn_guide i::before {
            width: 9px;
            height: 1.6px;
            left: calc(50% - 6px);
            top: calc(50% - 0.8px); } }
      .home .sec_3 .btn_guide i::after {
        content: "";
        width: 13px;
        height: 15px;
        background-color: #fff;
        position: absolute;
        left: calc(50% + 5px);
        top: calc(50% - 7.5px);
        clip-path: polygon(0 0, 100% 50%, 0 100%);
        transition: .3s; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_3 .btn_guide i::after {
            width: 7px;
            height: 8px;
            left: calc(50% + 1px);
            top: calc(50% - 4px); } }
    .home .sec_3 .btn_guide:hover::before {
      transform: scale(1.1);
      opacity: 0.8; }
    .home .sec_3 .btn_guide:hover i {
      right: 0; }
  .home .sec_3 .txt_about {
    padding-left: calc(50vw - 510px);
    padding-right: 40px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .txt_about {
        padding-left: 15px;
        padding-right: 15px;
        padding-bottom: 30px; } }
  .home .sec_3 .img_about {
    width: 50vw; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .img_about {
        width: 100%; } }
.home .sec_4 {
  background-color: #777;
  padding: 120px 0;
  position: relative;
  z-index: 1; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_4 {
      padding: 50px 0 0; } }
  .home .sec_4::before {
    content: "";
    width: 388px;
    height: 100%;
    position: absolute;
    right: -50px;
    top: 0;
    background: url("../img/home/bg_circle_2.svg") no-repeat center -60px/100% auto;
    z-index: -1; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_4::before {
        width: 190px;
        right: -20px; } }
  .home .sec_4 .sec_ttl p {
    color: #E7380D;
    opacity: 0.8; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_4 .img_works {
      margin-top: 30px; } }
.home .sec_5 {
  position: relative;
  padding: 40px 0 100px; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_5 {
      padding: 40px 0 50px; } }
  .home .sec_5::before {
    content: "";
    width: 444px;
    height: 100%;
    position: absolute;
    left: -44px;
    top: 0;
    background: url("../img/home/bg_circle_3.svg") no-repeat center top/100% auto;
    z-index: -1; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_5::before {
        width: 220px;
        left: -20px; } }
  .home .sec_5 .sec_ttl {
    text-align: center;
    display: block; }
    .home .sec_5 .sec_ttl p {
      color: #F5A200;
      opacity: 0.2;
      text-align: center; }
    .home .sec_5 .sec_ttl h2 {
      color: #000;
      text-align: center; }
  .home .sec_5 .slick_people {
    margin-top: 4em;
    margin-bottom: 2.5em; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_5 .slick_people {
        margin-top: 3em;
        margin-bottom: 1em; } }
    .home .sec_5 .slick_people .slick-track {
      left: -240px; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_5 .slick_people .slick-track {
          left: 25px; } }
    .home .sec_5 .slick_people li a {
      display: block;
      position: relative;
      transition: .4s ease;
      width: 390px; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_5 .slick_people li a {
          width: 208px;
          padding-top: 100px; } }
      .home .sec_5 .slick_people li a figure {
        transition: .4s ease;
        overflow: hidden;
        border-radius: 20px;
        transform: scale(0.75);
        transform-origin: left bottom 0;
        border: solid 6px rgba(231, 56, 13, 0); }
        .home .sec_5 .slick_people li a figure img {
          width: 390px;
          height: 510px;
          transition: .4s ease;
          object-fit: cover; }
          @media only screen and (max-width: 768px), print and (min-width: 2cm) {
            .home .sec_5 .slick_people li a figure img {
              width: 208px;
              height: 272px; } }
      .home .sec_5 .slick_people li a .txt {
        margin-top: 0.8em; }
        .home .sec_5 .slick_people li a .txt span:nth-child(2) {
          font-weight: 500;
          line-height: 1.4; }
        .home .sec_5 .slick_people li a .txt span:nth-child(2) {
          line-height: 1.4; }
      .home .sec_5 .slick_people li a .message {
        position: absolute;
        right: -25px;
        top: 0px;
        z-index: 10;
        background-color: #E7380D;
        color: #fff;
        padding: 12px 20px;
        border-radius: 8px;
        min-width: 300px;
        transform: translateX(0);
        opacity: 0;
        line-height: 1.6;
        font-size: 1.8rem;
        transition: .4s; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_5 .slick_people li a .message {
            font-size: 1.5rem;
            right: auto;
            left: 50%;
            transform: translateX(-50%); } }
        .home .sec_5 .slick_people li a .message::before {
          content: "";
          width: 16px;
          height: 16px;
          background-color: #E7380D;
          position: absolute;
          left: -15px;
          top: 25px;
          clip-path: polygon(0 0, 100% 0, 100% 100%); }
          @media only screen and (max-width: 768px), print and (min-width: 2cm) {
            .home .sec_5 .slick_people li a .message::before {
              clip-path: polygon(0 0, 100% 0, 0 100%);
              left: 50%;
              top: auto;
              bottom: -15px; } }
    .home .sec_5 .slick_people li.slick-center a {
      transform: translateX(-45px); }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_5 .slick_people li.slick-center a {
          transform: translateX(-25px); } }
      .home .sec_5 .slick_people li.slick-center a figure {
        border: solid 6px #E7380D;
        transform: scale(1); }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_5 .slick_people li.slick-center a figure {
            border: solid 4px #E7380D; } }
      .home .sec_5 .slick_people li.slick-center a .message {
        animation: showMessage 0.4s 0.4s ease forwards; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_5 .slick_people li.slick-center a .message {
            animation: showMessageSP 0.4s 0.4s ease forwards; } }
@keyframes showMessage {
  0% {
    opacity: 0;
    transform: translateX(80%); }
  100% {
    opacity: 1;
    transform: translateX(100%); } }
@keyframes showMessageSP {
  0% {
    opacity: 0;
    top: 30px; }
  100% {
    opacity: 1;
    top: 0; } }
.home .sec_6 {
  background-color: #eee;
  position: relative;
  padding: 130px 0 200px; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_6 {
      padding: 60px 0 110px; } }
  .home .sec_6 .sec_ttl {
    margin-bottom: 140px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_6 .sec_ttl {
        margin-bottom: 90px; } }
    .home .sec_6 .sec_ttl p {
      color: #E7380D;
      opacity: 1;
      letter-spacing: -0.02em; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_6 .sec_ttl p {
          font-size: 5rem; } }
    .home .sec_6 .sec_ttl h2 {
      color: #000;
      margin-top: -0.3em;
      margin-left: 0.3em; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_6 .sec_ttl h2 {
          margin-top: -0.1em; } }
  .home .sec_6 .img_envi01 {
    width: 652px;
    position: absolute;
    left: calc(50vw - 150px);
    top: 100px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_6 .img_envi01 {
        width: 326px;
        left: calc(50vw - 45px);
        top: 50px; } }
  .home .sec_6 .img_envi02 {
    width: 775px;
    position: absolute;
    left: -160px;
    top: 330px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_6 .img_envi02 {
        width: 388px;
        left: -60px;
        top: 290px; } }
  .home .sec_6 .btn_envi {
    width: 490px;
    height: 120px;
    position: relative;
    background-color: #fff;
    font-size: 2.2rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3em;
    transition: .3s;
    border: solid 1px #fff; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_6 .btn_envi {
        width: 100%;
        height: 80px;
        font-size: 1.7rem;
        justify-content: space-between;
        padding: 0 1.5em; } }
    .home .sec_6 .btn_envi i {
      width: 29px;
      height: 15px;
      position: relative;
      transition: .3s; }
      .home .sec_6 .btn_envi i::before {
        content: "";
        width: 18px;
        height: 3px;
        background-color: #000;
        position: absolute;
        left: 0;
        top: calc(50% - 1.5px);
        transition: .3s; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_6 .btn_envi i::before {
            width: 14px;
            height: 2px;
            left: calc(50% - 8px);
            top: calc(50% - 1px); } }
      .home .sec_6 .btn_envi i::after {
        content: "";
        width: 13px;
        height: 15px;
        background-color: #000;
        position: absolute;
        right: 0;
        top: calc(50% - 7.5px);
        clip-path: polygon(0 0, 100% 50%, 0 100%);
        transition: .3s; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_6 .btn_envi i::after {
            width: 8px;
            height: 11px;
            left: calc(50% + 4px);
            top: calc(50% - 5.5px); } }
    .home .sec_6 .btn_envi:hover {
      color: #E7380D;
      gap: 2em;
      border: solid 4px #E7380D; }
      .home .sec_6 .btn_envi:hover i::before {
        background-color: #E7380D; }
      .home .sec_6 .btn_envi:hover i::after {
        background-color: #E7380D; }
.home .global__footer_recruit h2 {
  font-size: 4.0rem;
  font-weight: 500;
  color: #fff;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .global__footer_recruit h2 {
      font-size: 2.6rem; } }
.home .global__footer_recruit .btn_info {
  width: 560px;
  height: 120px;
  position: relative;
  background-color: #fff;
  font-size: 2.6rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  margin: 50px auto;
  border: solid 1px #fff;
  transition: .3s; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .global__footer_recruit .btn_info {
      width: 100%;
      height: 80px;
      font-size: 2.2rem;
      margin: 30px auto; } }
  .home .global__footer_recruit .btn_info::before {
    content: "";
    width: 56px;
    height: 56px;
    background: url("../img/home/icon_info.svg") no-repeat center/contain; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .global__footer_recruit .btn_info::before {
        width: 46px;
        height: 46px; } }
  .home .global__footer_recruit .btn_info:hover {
    color: #E7380D;
    border: solid 4px #E7380D; }
.home .sec_ttl {
  display: inline-block;
  text-align: left;
  margin-bottom: 2em;
  position: relative;
  z-index: 20; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_ttl {
      margin-bottom: 1.5em; } }
  .home .sec_ttl p {
    font-size: 13.0rem;
    font-weight: 500;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    color: #fff;
    line-height: 1;
    opacity: 0.15; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_ttl p {
        font-size: 6.4rem; } }
  .home .sec_ttl h2 {
    font-size: 2.8rem;
    font-weight: 500;
    font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 0.15em;
    margin-top: -1.2em;
    position: relative;
    z-index: 10; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_ttl h2 {
        font-size: 2.0rem;
        font-weight: 600;
        margin-top: -1em; } }
.home .sec_lead {
  color: #fff;
  margin-bottom: 2em; }

@keyframes showTextFromBottom {
  0% {
    opacity: 0;
    transform: translateY(100%); }
  100% {
    opacity: 1;
    transform: translateY(0px); } }
.textanimation span {
  display: inline-block; }

.textanimation > span {
  overflow: hidden; }

.textanimation > span > span {
  animation: showTextFromBottom 0.3s backwards; }

/*# sourceMappingURL=home.css.map */
