.head-key .top-key {
  text-align: center;
  padding-top: 127px; }
  .head-key .top-key h2 {
    font-size: 112px;
    color: #413C39;
    line-height: 1;
    margin-bottom: 10px; }
  .head-key .top-key h3 {
    font-size: 40px;
    line-height: 1;
    margin-bottom: 37px; }
    .head-key .top-key h3 span {
      color: #861C3C; }
  .head-key .top-key .catch__text {
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 1px; }
.head-key .catch__deco {
  position: absolute;
  top: 58px;
  left: 50%;
  width: 586px;
  transform: translateX(-50%); }
.head-key .catch__img {
  position: absolute;
  bottom: 0;
  max-width: 1116px;
  margin: 0 auto;
  left: 0;
  right: 0; }
@media only screen and (max-width: 767px) {
  .head-key .top-key {
    padding-top: 37vw; }
    .head-key .top-key h2 {
      font-size: 16vw;
      margin-bottom: 4vw;
      letter-spacing: 0.06em; }
    .head-key .top-key h3 {
      font-size: 6.6vw;
      margin-bottom: 5vw; }
    .head-key .top-key .catch__text {
      font-size: 4vw; }
  .head-key .catch__deco {
    max-width: 586px;
    width: 100vw;
    top: 24vw; }
  .head-key .catch__img {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0; } }

#introduce {
  text-align: center;
  padding: 110px 0 150px;
  position: relative;
  overflow: hidden; }
  #introduce h2 {
    font-size: 30px;
    color: #000;
    margin-bottom: 39px; }
  #introduce .text {
    margin-bottom: 66px; }
  #introduce .text__h3 {
    color: #F3F4FA;
    text-align: center;
    position: absolute;
    bottom: 10px;
    left: 0;
    right: 0;
    z-index: -1;
    letter-spacing: 11px;
    line-height: 1;
    height: 110px;
    overflow: hidden;
    right: 0; }
    #introduce .text__h3 li {
      font-size: 110px;
      font-weight: 700;
      margin: 0 20px; }
  @media only screen and (max-width: 767px) {
    #introduce {
      padding: 15vw 0 25vw; }
      #introduce h2 {
        font-size: 6vw;
        margin-bottom: 10vw; }
      #introduce .text {
        margin-bottom: 10vw; }
      #introduce .text__h3 {
        bottom: 4vw;
        height: 16vw; }
        #introduce .text__h3 li {
          font-size: 18vw;
          margin: 0 2vw; } }

#news-blog {
  background: #F3F4FA;
  padding: 109px 0 101px; }
  #news-blog .wrap {
    max-width: 803px; }
  #news-blog h2 {
    font-size: 40px;
    text-align: center;
    margin-bottom: 42px; }
  #news-blog #news__feed {
    margin-bottom: 32px; }
    #news-blog #news__feed a + a {
      margin-top: 21px; }
    #news-blog #news__feed a {
      display: block;
      position: relative; }
      #news-blog #news__feed a::after {
        content: "";
        background: #000;
        border-top-right-radius: 50px;
        border-bottom-right-radius: 50px;
        width: 56px;
        height: 100%;
        position: absolute;
        top: 0;
        right: -10px;
            box-shadow: 4px 8px 24px rgba(114, 130, 155, 0.15); }
      #news-blog #news__feed a::before {
        content: "";
        background: url(../images/icon_arrow.svg) no-repeat;
        width: 7px;
        height: 10px;
        position: absolute;
        top: 50%;
        margin-top: -5px;
        right: 17px;
        z-index: 2; }
    #news-blog #news__feed dl {
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: -o-flex;
      display: flex;
      font-size: 14px;
      background: #fff;
          box-shadow: 4px 8px 24px rgba(114, 130, 155, 0.15);
      border-top-left-radius: 40px;
      border-bottom-left-radius: 40px;
      overflow: hidden;
      line-height: 1;
      padding: 15px 31px;
      margin-right: 52px;
      justify-content: space-between; }
      #news-blog #news__feed dl dt {
        font-family: "Montserrat", sans-serif;
        font-style: normal;
        font-weight: 400;
        width: 32%; }
        #news-blog #news__feed dl dt .tnews-cate {
          font-weight: 600;
          color: #D9D9D9;
          padding-left: 20px; }
      #news-blog #news__feed dl dd {
        width: 68%;
        overflow: hidden;
        display: block;
        max-height: 2rem;
        -webkit-line-clamp: 1;
        display: box;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        white-space: normal; }
  @media only screen and (max-width: 767px) {
    #news-blog {
      padding: 15vw 0 15vw; }
      #news-blog h2 {
        font-size: 6.6vw;
        letter-spacing: 0.1em;
        text-align: center;
        margin-bottom: 6vw; }
      #news-blog #news__feed {
        margin-bottom: 10vw; }
        #news-blog #news__feed a + a {
          margin-top: 5vw; }
        #news-blog #news__feed a {
          display: block;
          position: relative; }
          #news-blog #news__feed a::after {
            width: 56px;
            top: 0;
            right: -10px;
            border-top-right-radius: 10px;
            border-bottom-right-radius: 10px; }
          #news-blog #news__feed a::before {
            right: 17px; }
        #news-blog #news__feed dl {
          font-size: 14px;
          border-top-left-radius: 10px;
          border-bottom-left-radius: 10px;
          padding: 15px 25px 15px 31px;
          margin-right: 50px;
          display: block;
          margin-bottom: 0; }
          #news-blog #news__feed dl dt {
            width: 100%;
            margin-bottom: 10px; }
            #news-blog #news__feed dl dt .tnews-cate {
              padding-left: 20px; }
          #news-blog #news__feed dl dd {
            width: 100%;
            max-height: 3rem;
            -webkit-line-clamp: 2;
            line-height: 1.5rem; } }

#strength {
  padding: 131px 0;
  position: relative; }
  #strength::after {
    content: "";
    background: #F3F4FA;
    top: 200px;
    right: 0;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    bottom: 0;
    position: absolute;
    width: calc(50% - 237px);
    z-index: -1; }
  #strength .title__c {
    margin-bottom: 82px; }
  #strength .slider__s {
    width: 106.5%; }
    #strength .slider__s .slider__in {
      flex-direction: row-reverse; }
      #strength .slider__s .slider__in .photo {
        width: 55%;
        height: 396px;
        margin-right: 0;
        margin-top: 28px; }
      #strength .slider__s .slider__in .box {
        width: 35%;
        padding-left: 3px; }
        #strength .slider__s .slider__in .box .num {
          color: #6B6B6B;
          font-size: 20px;
          font-family: "Montserrat", sans-serif;
          font-style: normal;
          font-weight: 600;
          display: inline-block;
          border-bottom: 4px solid #6B6B6B;
          padding-bottom: 7px;
          line-height: 1; }
        #strength .slider__s .slider__in .box dl {
          padding-top: 42px; }
          #strength .slider__s .slider__in .box dl dt {
            margin-bottom: 30px; }
  #strength .slick-prev, #strength .slick-next {
    bottom: -71px; }
  #strength .slick-prev {
    left: 4px; }
  #strength .slick-next {
    left: 73px; }
  @media only screen and (max-width: 767px) {
    #strength {
      padding: 15vw 0; }
      #strength::after {
        top: 28vw;
        right: 0;
        bottom: 57vw;
        width: 57vw; 
    border-top-left-radius: 16px;
    border-bottom-left-radius: 16px;
		}
      #strength .title__c {
        margin-bottom: 15vw; }
      #strength .slider__s {
        width: auto; }
        #strength .slider__s .slider__in {
          display: block; }
          #strength .slider__s .slider__in .photo {
            width: 100%;
            height: 60vw;
            margin-right: 0;
            margin-top: 0; }
          #strength .slider__s .slider__in .box {
            width: 100%;
            padding-top: 5vw;
            padding-left: 0; }
            #strength .slider__s .slider__in .box .num {
              font-size: 18px;
              border-bottom: 3px solid #6B6B6B;
              padding-bottom: 4vw;
              margin-bottom: 10vw; }
            #strength .slider__s .slider__in .box dl {
              padding-top: 0; }
              #strength .slider__s .slider__in .box dl dt {
                margin-bottom: 10vw; }
      #strength .slick-prev, #strength .slick-next {
        bottom: -71px; }
      #strength .slick-prev {
        left: 4px; }
      #strength .slick-next {
        left: 73px; } }

#services {
  position: relative;
  margin-bottom: 118px;
  padding-top: 115px; }
  #services .photo {
    width: 485px;
    height: 964px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    overflow: hidden;
    position: absolute;
    right: calc(50% + 236px); }
  #services .box {
    width: 57%;
    margin-left: auto;
    padding-top: 53px; }
    #services .box .title__c {
      margin-bottom: 83px; }
    #services .box .ttl__c {
      margin-bottom: 38px; }
    #services .box .list__cate {
      margin-bottom: 40px; }
      #services .box .list__cate li {
        position: relative; }
        #services .box .list__cate li::before {
          content: "";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          left: 6px; }
        #services .box .list__cate li.icon1::before {
          background: url(../images/icon_1.svg) no-repeat;
          -webkit-background-size: 100% auto;
          background-size: 100% auto;
          width: 34px;
          height: 34px;
          left: 10px; }
        #services .box .list__cate li.icon2::before {
          background: url(../images/icon_2.svg) no-repeat;
          -webkit-background-size: 100% auto;
          background-size: 100% auto;
          width: 50px;
          height: 50px;
          left: 3px; }
        #services .box .list__cate li.icon3::before {
          background: url(../images/icon_3.svg) no-repeat;
          -webkit-background-size: 100% auto;
          background-size: 100% auto;
          width: 41px;
          height: 43px; }
        #services .box .list__cate li.icon4::before {
          background: url(../images/icon_4.svg) no-repeat;
          -webkit-background-size: 100% auto;
          background-size: 100% auto;
          width: 42px;
          height: 39px; }
        #services .box .list__cate li.icon5::before {
          background: url(../images/icon_5.svg) no-repeat;
          -webkit-background-size: 100% auto;
          background-size: 100% auto;
          width: 38px;
          height: 37px;
          left: 4px; }
        #services .box .list__cate li a {
          display: block;
          position: relative;
          z-index: 2;
          font-size: 20px;
          font-weight: 700;
          border-top: 1px solid #D9D9D9;
          border-bottom: 1px solid #D9D9D9;
          margin-bottom: -1px;
          padding: 30px 10px 33px 67px; }
          #services .box .list__cate li a::before, #services .box .list__cate li a::after {
            content: "";
            background: url(../images/icon_arrow.svg) no-repeat center;
            width: 7px;
            height: 10px;
            -webkit-background-size: 100% auto;
            background-size: 100% auto;
            position: absolute;
            top: 50%;
            right: 23px;
            transform: translateY(-50%); }
          #services .box .list__cate li a::before {
            width: 48px;
            height: 48px;
            background: #861C3C;
            border-radius: 50%;
            box-shadow: var(--box-shadow);
            right: 3px; }
    #services .box .bnr__shared {
      margin-left: 0; }
  @media only screen and (max-width: 767px) {
    #services {
      margin-bottom: 15vw;
      padding-top: 15vw; }
      #services .photo {
        width: 105%;
        height: 80vw;
        border-top-right-radius: 10px;
        border-bottom-right-radius: 10px;
        right: 0;
        margin-left: -22px;
        position: relative; }
      #services .box {
        width: 100%;
        padding-top: 10vw; }
        #services .box .title__c {
          margin-bottom: 12vw; }
        #services .box .ttl__c {
          margin-bottom: 12vw; }
        #services .box .list__cate {
          margin-bottom: 12vw; }
          #services .box .list__cate li::before {
            left: 6px; }
          #services .box .list__cate li.icon1::before {
            width: 30px;
            height: 30px;
            left: 10px; }
          #services .box .list__cate li.icon2::before {
            width: 42px;
            height: 42px;
            left: 3px; }
          #services .box .list__cate li.icon3::before {
            width: 35px;
            height: 38px; }
          #services .box .list__cate li.icon4::before {
            width: 34px;
            height: 31px; }
          #services .box .list__cate li.icon5::before {
            width: 34px;
            height: 33px;
            left: 4px; }
          #services .box .list__cate li a {
            font-size: 18px;
            padding: 25px 10px 25px 50px; }
            #services .box .list__cate li a::before, #services .box .list__cate li a::after {
              top: 50%;
              right: 15px; }
            #services .box .list__cate li a::before {
              width: 40px;
              height: 40px;
              right: 0; }
        #services .box .bnr__shared {
          margin-left: 0; } }

#recruit {
  position: relative;
  padding: 102px 0 65px;
  margin-bottom: 120px; }
  #recruit .photo {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 42px;
    right: 0;
    border-top-left-radius: 15px;
    border-bottom-left-radius: 15px;
    overflow: hidden; }
  #recruit .title__c {
    color: #fff;
    margin-bottom: 36px; }
  #recruit .text {
    margin-bottom: 32px; }
  #recruit .bnr__shared {
    margin-left: 0; }
  @media only screen and (max-width: 767px) {
    #recruit {
      padding: 15vw 0 15vw;
      margin-bottom: 15vw; }
      #recruit .photo {
        left: 10px; }
      #recruit .wrap {
        padding-left: 30px;
        padding-right: 30px; }
      #recruit .title__c {
        margin-bottom: 5vw; }
      #recruit .text {
        margin-bottom: 5vw; } }

@media only screen and (min-width: 768px) and (max-width: 1199px) {
  #services .photo {
    width: 48%;
    right: calc(50% + 120px); }
  #services .box {
    width: 57%; }

  #recruit .wrap {
    padding: 0 50px; } }
