@charset "UTF-8";
/* CSS Document */
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
.en {
  font-family: "Roboto Flex", sans-serif;
}

.en {
  font-family: "Roboto Flex", sans-serif;
}

/**
 * デザインの文字サイズ（数値）を分母として、$base-fontsize（28）を割ることでem値を計算する関数。
 * 小数点第2位まで表示し、第3位を四捨五入します。
 * @param {Number} $design-fontsize - デザインで指定されたピクセル値の数値（例: 16, 単位なし）。
 * @return {Number} em値（小数点第2位まで）
 */
/* メインビジュアル */
.mv {
  height: 92vh;
  padding: 0;
  padding-left: 3.75em;
  margin-top: convert-em(140);
  margin-bottom: 5.625em;
  position: relative;
  /*  テキストボックス */
  /* キャッチコピー */
}
@media (max-width: 750px) {
  .mv {
    height: 60vh;
    max-height: 60vh;
    padding-left: calc(70 / 750 * 100vw);
    margin-top: em(144);
    margin-top: 5.14em;
  }
}
.mv-container {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background-image: url(../images/top/kv.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  border-radius: 0 0 0 1em;
  /* h1 */
}
@media (max-width: 750px) {
  .mv-container {
    background-image: url(../images/top/kvSP.jpg);
    border-radius: 1em 0 0 1em;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
  }
}
@media (min-width: 1440px) {
  .mv-container {
    background-position: top 10% center;
  }
}
.mv-container .title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #fff;
  opacity: 0.8;
  font-weight: bold;
}
@media (max-width: 750px) {
  .mv-container .title {
    /* 位置 */
    margin-top: 2em;
    margin-left: 5%;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
  }
}
.mv-container .title .text {
  font-size: 3.625em;
}
@media (max-width: 750px) {
  .mv-container .title .text {
    font-size: 2.07em;
  }
}
.mv-container .title .year {
  display: block;
  font-size: 1.625em;
}
@media (max-width: 750px) {
  .mv-container .title .year {
    font-size: 1.25em;
  }
}
.mv .subtitle {
  font-size: 1.75em;
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.1em;
  /* 位置調整 */
}
@media (max-width: 750px) {
  .mv .subtitle {
    font-size: calc(30 / 750 * 100vw);
    opacity: 1;
    margin-left: 5%;
    /* 位置 */
  }
}
.mv-aside {
  display: inline-block;
  padding: 1.75em;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 1em;
  font-size: 1em;
  font-weight: 500;
  /* 位置調整 */
  position: absolute;
  bottom: 5%;
  right: 8%;
}
@media (max-width: 750px) {
  .mv-aside {
    font-size: 1em;
    /* 位置 */
    bottom: -34%;
    right: 2%;
  }
}
.mv-aside p.nintei {
  color: #fff;
  text-align: center;
  margin-bottom: 0.5em;
  background: linear-gradient(45deg, #7c6e3d 0%, #9b926d 9%, #887c4f 38%, #7f7242 69%, #a9a281 89%, #7f7141 100%);
  mix-blend-mode: multiply;
  -webkit-filter: brightness(0.95);
          filter: brightness(0.95);
}
@media (max-width: 750px) {
  .mv-aside p.nintei {
    font-size: 1.07em;
  }
}
.mv-aside address p {
  color: #313131;
}
@media (max-width: 750px) {
  .mv-aside address p {
    text-align: center;
  }
}
.mv-catch {
  position: absolute;
  top: 33%;
  left: 2%;
}
@media (max-width: 750px) {
  .mv-catch {
    top: 6%;
    left: 4%;
  }
}
.mv-catch p {
  line-height: 0;
  font-size: 0.875em;
  font-weight: bold;
  color: #253D8E;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

.mainvisualTop {
  margin-top: 6.5em;
}
.mainvisualTop img {
  width: 100%;
}
.mainvisualTop .swiper-slide {
  width: 100%;
  height: 70vh;
  min-height: 70vh;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
@media (max-width: 749px) {
  .mainvisualTop .swiper-slide {
    height: 60vw;
    min-height: 60vw;
  }
}
.mainvisualTop .img1 {
  background-image: url(../images/top/kv.jpg);
}

section,
.contentwrap section {
  padding-bottom: 0;
  margin-bottom: 9.375em;
}
@media (max-width: 749px) {
  section,
  .contentwrap section {
    margin-bottom: 7.14em;
  }
}

/* 個別 */
@media (min-width: 751px) {
  .caretaker .imgflex {
    position: relative;
    left: calc(-1 * (100vw - 100%) / 2);
    width: 80vw;
    max-width: 80vw;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
}
@media (max-width: 750px) {
  .caretaker .imgflex .imgbox {
    width: 100vw;
    margin-left: calc(-1 * (100vw - 100%) / 2);
    margin-right: calc(-1 * (100vw - 100%) / 2);
  }
}
.caretaker .imgflex img {
  aspect-ratio: 7/5;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 750px) {
  .caretaker {
    margin-top: 22vh;
  }
}

/* advantages */
.advantages .imgflex .imgbox {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  gap: 0;
}
.advantages .imgflex .imgbox img {
  -o-object-fit: cover;
     object-fit: cover;
}
.advantages .imgflex .textbox p {
  margin-top: 1rem;
}
@media (max-width: 750px) {
  .advantages .imgflex.right {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: left;
  }
}
@media (max-width: 750px) {
  .advantages .imgflex.left {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    text-align: left;
  }
}

/* Solutions */
.solutions .textbox {
  margin-bottom: 3.75em;
}
@media (max-width: 750px) {
  .solutions .textbox {
    margin-bottom: 2.5em;
  }
}
.solutions .card-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3.75em;
}
@media (max-width: 750px) {
  .solutions .card-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.86em;
  }
}
.solutions .card-item a {
  display: initial;
}
@media (max-width: 750px) {
  .solutions .imgbox {
    margin-bottom: 4.64em;
  }
}

/* workflow */
@media (max-width: 750px) {
  .workflow .textbox:first-of-type {
    margin-bottom: 2.5em;
  }
}

/* sumicar */
.sumicar .textbox {
  margin-bottom: 0;
}
.sumicar .textbox p:first-child {
  margin-bottom: 2em;
}
@media (max-width: 750px) {
  .sumicar .mt3em {
    margin-top: 3.57em;
    text-align: center;
  }
}

/* team */
@media (max-width: 750px) {
  .team .mt3em {
    margin-top: 3.57em;
    text-align: center;
  }
}

/* careers */
.careers {
  background: url(../images/top/careers.jpg) center center/cover no-repeat;
  margin-bottom: 0;
}
@media (max-width: 750px) {
  .careers {
    background-image: url(../images/top/careers-SP.jpg);
    background-repeat: no-repeat;
  }
}
.careers .inner {
  padding-block: 6.25em;
}
@media (max-width: 750px) {
  .careers .inner {
    padding-block: 2.5em;
  }
}
.careers .imgflex {
  margin-bottom: 4.375em;
}
@media (max-width: 750px) {
  .careers .imgflex {
    margin-bottom: 2.5em;
  }
}
.careers .imgflex .hgroup {
  margin-bottom: 0;
}
.careers .h2default {
  color: #fff;
}
.careers .textbox {
  max-width: 47.5em;
  padding-top: 0;
}
@media (max-width: 750px) {
  .careers .textbox {
    margin-bottom: 0;
  }
}
.careers .textbox p {
  color: #fff;
}
.careers .textbox p:first-child {
  margin-bottom: 1em;
}
.careers .linkbox-white {
  color: #313131;
}
.careers .linkbox-white:hover, .careers .linkbox-white:focus {
  color: #fff;
}

/* about */
.about {
  padding-top: 9.375em;
}
@media (max-width: 750px) {
  .about {
    padding-top: 7.14em;
  }
}
.about .textbox p:first-child {
  margin-bottom: 1em;
}
.about .textbox p:nth-child(2) {
  margin-bottom: 3.75em;
}

/* news */
/* prohibited */
.prohibited .textbox > :not(:last-child) {
  margin-bottom: 2.5em;
}

/* Denouncement */
.denouncement .textbox > :not(:last-child) {
  margin-bottom: 2.5em;
}