/* CSS Document */
/*---------- header ----------*/
.first-v {
  align-items: center;
  color: #fff;
  display: flex;
  height: 80vh;
  overflow: hidden;
  position: relative;
  width: 100%; }
  @media screen and (max-width: 991px) {
    .first-v {
      height: 41em; } }
  @media screen and (max-width: 767px) {
    .first-v {
      margin-top: 90px; } }
  @media screen and (max-width: 575px) {
    .first-v {
      height: 32em;
      margin-top: 74px; } }
  .first-v .catchcopy {
    position: absolute;
    right: 6%;
    width: 35%;
    top: 33%; }
    @media screen and (max-width: 991px) {
      .first-v .catchcopy {
        right: 3%;
        width: 50%;
        top: 34%; } }
    @media screen and (max-width: 767px) {
      .first-v .catchcopy {
        right: 3%;
        width: 65%;
        top: 35%; } }
    @media screen and (max-width: 575px) {
      .first-v .catchcopy {
        right: 8%;
        width: 80%;
        top: 35%; } }
    .first-v .catchcopy h1 {
      font-size: 16px;
      font-size: 1.6rem;
      line-height: 2.5rem; }
  .first-v .top-deco {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 40%; }
    @media screen and (max-width: 991px) {
      .first-v .top-deco {
        width: 49%; } }
    .first-v .top-deco img {
      width: 100%;
      height: 100%; }
  .first-v .copyright {
    position: absolute;
    writing-mode: vertical-rl;
    right: 0;
    font-size: 10px;
    font-size: 1rem; }
    .first-v .copyright p {
      margin: 0;
      margin-right: 1rem;
      letter-spacing: 0.15rem; }
  .first-v .gray-box {
    color: #b3b3b3;
    mix-blend-mode: multiply;
    width: 100%;
    height: 100%;
    z-index: -5;
    position: fixed; }
  .first-v video {
    height: 100%;
    left: 0;
    object-fit: cover;
    object-position: center;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -10; }

#news {
  margin-bottom: 10rem;
  margin-top: -8rem;
  position: relative;
  z-index: 0; }
  @media screen and (max-width: 767px) {
    #news {
      margin-bottom: 4rem; } }
  @media screen and (max-width: 575px) {
    #news {
      margin-top: -4rem;
      margin-bottom: 7rem; } }
  #news .news-box {
    background-color: #d6dfeb;
    padding: 4.5rem 7rem; }
    @media screen and (max-width: 1199px) {
      #news .news-box {
        padding: 4.5rem 6rem; } }
    @media screen and (max-width: 991px) {
      #news .news-box {
        padding: 3.5rem 6rem; } }
    @media screen and (max-width: 767px) {
      #news .news-box {
        padding: 3.5rem 4rem; } }
    #news .news-box h2 {
      display: inline-block;
      width: 25%;
      vertical-align: top;
      padding-top: 0.5rem;
      text-align: left;
      margin-bottom: 0rem; }
      @media screen and (max-width: 1199px) {
        #news .news-box h2 {
          width: 20%; } }
      @media screen and (max-width: 991px) {
        #news .news-box h2 {
          margin-bottom: 1rem;
          width: 100%;
          display: block; } }
      @media screen and (max-width: 991px) {
        #news .news-box h2 span {
          display: inline;
          margin-left: 1em; } }
    #news .news-box .news-scroll {
      height: 200px;
      overflow-y: scroll; }
    #news .news-box ul {
      width: 100%;
      display: inline-block;
      margin-bottom: 0; }
      #news .news-box ul li {
        padding: 1rem 0;
        border-bottom: 1px solid #C8C8C8; }
        #news .news-box ul li:last-of-type {
          border-bottom: none; }
        #news .news-box ul li dl {
          display: flex;
          gap: 4rem;
          padding: 0.5rem;
          margin: 0;
          align-items: top; }
          @media screen and (max-width: 575px) {
            #news .news-box ul li dl {
              flex-direction: column;
              gap: 1rem;
              align-items: flex-start; } }
          #news .news-box ul li dl dt {
            color: #003685;
            font-weight: normal;
            line-height: 1.65em; }
          #news .news-box ul li dl dd {
            margin: 0;
            line-height: 1.65em;
            overflow-wrap: anywhere; }
            #news .news-box ul li dl dd a {
              color: #003685;
              transition: 0.3s; }
              #news .news-box ul li dl dd a:hover {
                opacity: 50%; }
            #news .news-box ul li dl dd .strong {
              font-weight: 600;
              color: #003685; }

#message {
  margin-bottom: 14rem;
  position: relative; }
  @media screen and (max-width: 1199px) {
    #message {
      margin-bottom: 12rem; } }
  @media screen and (max-width: 991px) {
    #message {
      margin-bottom: 10rem; } }
  #message .message-box {
    width: 80%;
    padding-top: 3rem;
    padding-bottom: 6rem; }
    @media screen and (max-width: 767px) {
      #message .message-box {
        padding-bottom: 4rem; } }
    #message .message-box dl dt {
      font-size: 29px;
      font-size: 2.9rem;
      font-weight: 600;
      line-height: 5.5rem;
      letter-spacing: 0.15rem;
      padding-bottom: 3.5rem;
      position: relative; }
      @media screen and (max-width: 1199px) {
        #message .message-box dl dt {
          font-size: 24px;
          font-size: 2.4rem;
          line-height: 5rem;
          padding-bottom: 2.5rem; } }
      @media screen and (max-width: 767px) {
        #message .message-box dl dt {
          font-size: 29px;
          font-size: 2.9rem;
          line-height: 5.5rem; } }
      @media screen and (max-width: 575px) {
        #message .message-box dl dt {
          font-size: 23px;
          font-size: 2.3rem;
          line-height: 4.5rem; } }
      #message .message-box dl dt img {
        position: absolute;
        height: 114px;
        right: -25px;
        top: -60px;
        z-index: -10; }
        @media screen and (max-width: 767px) {
          #message .message-box dl dt img {
            right: -22px;
            top: -15px; } }
        @media screen and (max-width: 575px) {
          #message .message-box dl dt img {
            right: 0px;
            top: -75px; } }
    #message .message-box dl dd {
      margin-bottom: 4rem;
      padding-right: 3rem;
      text-align: justify; }
      @media screen and (max-width: 767px) {
        #message .message-box dl dd {
          margin-bottom: 3rem;
          padding-right: 0; } }
    @media screen and (max-width: 767px) {
      #message .message-box .link-box {
        text-align: center; } }
  #message .message-img {
    height: 490px;
    width: 100%;
    overflow: hidden;
    margin-bottom: 9rem; }
    @media screen and (max-width: 1199px) {
      #message .message-img {
        height: 400px; } }
    @media screen and (max-width: 991px) {
      #message .message-img {
        height: 250px; } }
    @media screen and (max-width: 767px) {
      #message .message-img {
        margin-bottom: 4rem; } }
    #message .message-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 10px; }
  #message .gallery, #message .gallery-s {
    width: 100%; }
  #message .gallery-s {
    margin-top: 2rem; }
  #message .bg-blue {
    position: absolute;
    background: #d6dfeb;
    width: 500px;
    height: 565px;
    right: 0;
    bottom: 22rem;
    z-index: -5; }
    @media screen and (max-width: 1199px) {
      #message .bg-blue {
        bottom: 12rem; } }
    @media screen and (max-width: 991px) {
      #message .bg-blue {
        width: 321px;
        height: 470px; } }
    @media screen and (max-width: 767px) {
      #message .bg-blue {
        width: 515px;
        height: 580px; } }
    @media screen and (max-width: 575px) {
      #message .bg-blue {
        width: 335px;
        height: 410px; } }

#service {
  margin-bottom: 18rem; }
  @media screen and (max-width: 1199px) {
    #service {
      margin-bottom: 16rem; } }
  @media screen and (max-width: 991px) {
    #service {
      margin-bottom: 10rem; } }
  #service h2 {
    margin-bottom: 7rem; }
  #service .service-box {
    display: flex;
    background: linear-gradient(90deg, #fff 0%, #fff 50%, #f0f0f0 50%, #f0f0f0 100%);
    margin-bottom: 10rem; }
    @media screen and (max-width: 991px) {
      #service .service-box {
        margin-bottom: 8rem; } }
    @media screen and (max-width: 767px) {
      #service .service-box {
        display: block;
        background: none; } }
    #service .service-box img {
      width: 60%;
      height: 100%;
      border-radius: 10px;
      margin-top: -3rem; }
      @media screen and (max-width: 767px) {
        #service .service-box img {
          width: 100%;
          margin-left: -2rem;
          position: relative;
          z-index: 1; } }
    #service .service-box .service-text {
      position: relative;
      padding: 5rem;
      height: 345px;
      text-align: justify; }
      @media screen and (max-width: 1199px) {
        #service .service-box .service-text {
          height: 335px; } }
      @media screen and (max-width: 991px) {
        #service .service-box .service-text {
          height: 315px; } }
      @media screen and (max-width: 767px) {
        #service .service-box .service-text {
          background: #f0f0f0;
          margin-right: -2rem;
          margin-top: -2rem;
          padding-top: 7rem;
          height: 280px; } }
      @media screen and (max-width: 575px) {
        #service .service-box .service-text {
          margin-right: 0;
          height: 310px;
          padding: 5rem 3rem; } }
      #service .service-box .service-text .service-deco {
        position: absolute;
        width: 50%;
        right: 5%;
        top: -36%; }
        @media screen and (max-width: 767px) {
          #service .service-box .service-text .service-deco {
            width: 38%;
            right: 5%;
            top: -14%; } }
        @media screen and (max-width: 575px) {
          #service .service-box .service-text .service-deco {
            z-index: -5; } }
      #service .service-box .service-text h3 {
        font-size: 32px;
        font-size: 3.2rem;
        font-weight: 600;
        letter-spacing: 0.15rem;
        margin-bottom: 3rem; }
        @media screen and (max-width: 1199px) {
          #service .service-box .service-text h3 {
            font-size: 28px;
            font-size: 2.8rem; } }
        #service .service-box .service-text h3 span {
          font-family: "Montserrat", sans-serif;
          font-size: 15px;
          font-size: 1.5rem;
          color: #003685;
          display: block;
          margin-bottom: 0.8rem; }
      #service .service-box .service-text p {
        margin-bottom: 3rem; }
      #service .service-box .service-text .link-arrow-box {
        position: absolute;
        bottom: 0;
        right: 0;
        padding-bottom: 5rem;
        padding-right: 11rem; }
        @media screen and (max-width: 767px) {
          #service .service-box .service-text .link-arrow-box {
            padding-right: 13rem; } }
        @media screen and (max-width: 575px) {
          #service .service-box .service-text .link-arrow-box {
            padding-right: 10rem; } }
  #service .service-box:nth-of-type(2) {
    background: linear-gradient(90deg, #f0f0f0 0%, #f0f0f0 50%, #ffff 50%, #fff 100%); }
    @media screen and (max-width: 767px) {
      #service .service-box:nth-of-type(2) {
        background: none; } }
  @media screen and (max-width: 575px) {
    #service .service-box:nth-of-type(3) .service-text {
      height: 252px; } }
  @media screen and (max-width: 767px) {
    #service .service-box:nth-of-type(3) .service-text .service-deco {
      top: -9%; } }

#works {
  margin-bottom: 7.5rem;
  background-image: url("../img/works-bg.jpg");
  background-size: cover;
  background-position: center;
  height: 395px;
  display: flex;
  align-items: center; }
  @media screen and (max-width: 991px) {
    #works {
      height: 295px; } }
  @media screen and (max-width: 767px) {
    #works {
      height: 375px; } }
  #works .works-right {
    display: flex;
    justify-content: flex-end;
    padding-right: 10rem; }
    @media screen and (max-width: 767px) {
      #works .works-right {
        justify-content: center;
        padding-right: revert; } }
    #works .works-right .works-box {
      text-align: center;
      background-color: #fff;
      width: 30%;
      padding: 3rem;
      box-shadow: 5px 5px 0px 0px #bf9a0e; }
      @media screen and (max-width: 1199px) {
        #works .works-right .works-box {
          width: 35%; } }
      @media screen and (max-width: 991px) {
        #works .works-right .works-box {
          width: 38%; } }
      @media screen and (max-width: 767px) {
        #works .works-right .works-box {
          width: 65%; } }
      @media screen and (max-width: 575px) {
        #works .works-right .works-box {
          width: 75%; } }
      #works .works-right .works-box h2 {
        margin-bottom: 0rem; }
      #works .works-right .works-box p {
        padding: 1.5rem 0; }

#recruit {
  margin-bottom: 9rem; }
  #recruit .recruit-img {
    height: 355px;
    width: 100%;
    overflow: hidden; }
    @media screen and (max-width: 991px) {
      #recruit .recruit-img {
        height: 225px; } }
    #recruit .recruit-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 10px; }
  #recruit .recruit-box {
    display: flex;
    justify-content: center; }
    #recruit .recruit-box h2 {
      background-color: #fff;
      display: inline-block;
      width: 30%;
      margin-top: -5rem;
      padding: 2rem 1rem;
      position: relative; }
      @media screen and (max-width: 991px) {
        #recruit .recruit-box h2 {
          margin-bottom: 2rem; } }
      @media screen and (max-width: 767px) {
        #recruit .recruit-box h2 {
          width: 55%; } }
      @media screen and (max-width: 575px) {
        #recruit .recruit-box h2 {
          margin-bottom: 1rem; } }
      #recruit .recruit-box h2 img {
        position: absolute;
        width: 40%;
        right: -19%;
        top: -38%; }
  #recruit .recruit-catchcopy {
    font-size: 35px;
    font-size: 3.5rem;
    color: #003685;
    font-family: YuMincho,"Hiragino Mincho ProN",serif;
    line-height: 5rem;
    font-weight: 100;
    letter-spacing: 0.5rem;
    display: flex;
    justify-content: center; }
    @media screen and (max-width: 575px) {
      #recruit .recruit-catchcopy {
        font-size: 28px;
        font-size: 2.8rem;
        line-height: 4rem; } }
  @media screen and (max-width: 767px) {
    #recruit .recruit-text {
      text-align: center; } }
  #recruit .recruit-text p {
    margin-bottom: 2rem; }
    @media screen and (max-width: 767px) {
      #recruit .recruit-text p {
        margin-top: 2rem; } }
    @media screen and (max-width: 575px) {
      #recruit .recruit-text p {
        text-align: justify; } }
