/*=====================================================
  homeVi
=====================================================*/
.homeVi {
  width: 100%;
  margin: 0;
  padding: 0 15px 0 15px;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  color: var(--white);
  position: relative;
  background-color: var(--trust-blue);
}
@media print, screen and (min-width: 768px) {
  .homeVi {
    max-width: 1920px;
    margin: 0 auto;
  }
}
.homeVi .homeVi__slide {
  width: 100%;
  height: 1020px;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__slide {
    height: 1544px;
  }
}
.homeVi .homeVi__slide.is-ready {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.6s ease;
}
.homeVi .homeVi__slide .homeVi__slideNone {
  display: none;
}
.homeVi .homeVi__slide li {
  width: 100%;
  height: 1020px;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 90;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__slide li {
    height: 1544px;
  }
}
.homeVi .homeVi__slide li picture {
  width: 100%;
  display: block;
  position: relative;
  z-index: 100;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__slide li picture {
    width: 1940px;
  }
}
.homeVi .slick-slide:nth-child(1) picture {
  position: absolute;
  left: 0;
  top: -400px;
  opacity: 1;
}
.homeVi .slick-slide:nth-child(1).add-animation picture {
  animation: homeViSlide01 10s linear 0s normal both;
}
@keyframes homeViSlide01 {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(400px);
  }
}
.homeVi .slick-slide:nth-child(1)::before {
  width: 100%;
  height: 1020px;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  z-index: 110;
  background-image: url(/library/images/home/vi_01_bg_sp.png);
  background-size: cover;
  background-position: 0 0;
  background-repeat: no-repeat;
}
@media print, screen and (min-width: 768px) {
  .homeVi .slick-slide:nth-child(1)::before {
    height: 1544px;
    background-size: cover;
    background-image: url(/library/images/home/vi_01_bg.png);
  }
}
.homeVi .slick-slide:nth-child(2) picture {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 1;
}
.homeVi .slick-slide:nth-child(2) picture img {
  width: 775px;
  max-width: initial;
  height: 1020px;
}
@media print, screen and (min-width: 768px) {
  .homeVi .slick-slide:nth-child(2) picture img {
    width: initial;
    height: initial;
  }
}
@keyframes homeViSlide02 {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(-400px, 0);
  }
}
.homeVi .slick-slide:nth-child(2).add-animation picture {
  animation: homeViSlide02 10s linear 0s normal both;
}
.homeVi .slick-slide:nth-child(2)::before {
  width: 100%;
  height: 1020px;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  z-index: 110;
  background-image: url(/library/images/home/vi_02_bg_sp.png);
  background-size: cover;
  background-position: 0 0;
  background-repeat: no-repeat;
}
@media print, screen and (min-width: 768px) {
  .homeVi .slick-slide:nth-child(2)::before {
    height: 1544px;
    background-image: url(/library/images/home/vi_02_bg.png);
  }
}
.homeVi .slick-slide:nth-child(3) picture {
  position: absolute;
  left: -400px;
  top: 0;
  opacity: 1;
}
.homeVi .slick-slide:nth-child(3) picture img {
  max-width: initial;
  height: 1420px;
}
@media print, screen and (min-width: 768px) {
  .homeVi .slick-slide:nth-child(3) picture img {
    height: initial;
  }
}
@keyframes homeViSlide03 {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(400px, -400px);
  }
}
.homeVi .slick-slide:nth-child(3).add-animation picture {
  animation: homeViSlide03 10s linear 0s normal both;
}
.homeVi .slick-slide:nth-child(3)::before {
  width: 100%;
  height: 1020px;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  z-index: 110;
  background-image: url(/library/images/home/vi_03_bg_sp.png);
  background-size: cover;
  background-position: 0 0;
  background-repeat: no-repeat;
}
@media print, screen and (min-width: 768px) {
  .homeVi .slick-slide:nth-child(3)::before {
    height: 1544px;
    background-image: url(/library/images/home/vi_03_bg.png);
  }
}
.homeVi .homeVi__inner {
  width: 100%;
  height: 1020px;
  padding: 60px 0 0 0;
  position: relative;
  z-index: 200;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__inner {
    max-width: 1440px;
    height: 1544px;
    margin: 0 auto;
    padding: 140px 40px 0 40px;
  }
}
@media print, screen and (min-width: 1600px) {
  .homeVi .homeVi__inner {
    padding: 160px 0 0 0;
  }
}
.homeVi .homeVi__idea {
  width: 100%;
  margin: 0;
  padding: 0;
}
.homeVi .homeVi__idea.add-animation .homeVi__heading::before {
  animation: homeVi__headingTextMask1 1s ease-out 1s normal both;
}
.homeVi .homeVi__idea.add-animation .homeVi__heading::after {
  top: 54px;
  animation: homeVi__headingTextMask2 1s ease-out 1.2s normal both;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__idea.add-animation .homeVi__heading::after {
    top: 108px;
  }
}
.homeVi .homeVi__idea.add-animation .homeVi__heading .homeVi__headingText1 {
  animation: homeVi__headingText 1s ease-out 1s normal both;
}
.homeVi .homeVi__idea.add-animation .homeVi__heading .homeVi__headingText2 {
  animation: homeVi__headingText 1s ease-out 1.2s normal both;
}
.homeVi .homeVi__idea.add-animation .homeVi__lead {
  animation: homeVi__lead 0.6s ease-in-out 1.8s normal both;
}
.homeVi .homeVi__idea .homeVi__heading::before {
  width: 280px;
}
@keyframes homeVi__headingTextMask1 {
  0% {
    width: 0px;
    opacity: 1;
  }
  50% {
    width: 280px;
    left: -10px;
  }
  100% {
    width: 0px;
    left: 280px;
    opacity: 1;
  }
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__idea .homeVi__heading::before {
    width: 780px;
    height: 96px;
  }
  @keyframes homeVi__headingTextMask1 {
    0% {
      width: 0px;
      opacity: 1;
    }
    50% {
      width: 780px;
      left: -10px;
    }
    100% {
      width: 0px;
      left: 780px;
      opacity: 1;
    }
  }
}
.homeVi .homeVi__idea .homeVi__heading::after {
  width: 140px;
  background: var(--gradient);
  z-index: 20;
}
@keyframes homeVi__headingTextMask2 {
  0% {
    width: 0px;
    opacity: 1;
  }
  50% {
    width: 140px;
    left: -10px;
  }
  100% {
    width: 0px;
    left: 140px;
    opacity: 1;
  }
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__idea .homeVi__heading::after {
    display: none;
  }
}
.homeVi .homeVi__idea .homeVi__heading .homeVi__headingText1,
.homeVi .homeVi__idea .homeVi__heading .homeVi__headingText2 {
  display: inline-block;
  position: relative;
  opacity: 0;
  z-index: 10;
}
@keyframes homeVi__headingText {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.homeVi .homeVi__idea .homeVi__headingText1 {
  display: block;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__idea .homeVi__headingText1 {
    display: inline;
  }
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__idea .homeVi__headingText1 .spNone {
    display: inline;
  }
}
.homeVi .homeVi__message {
  font-weight: 400;
}
@media print, screen and (min-width: 768px) {
  .homeVi .homeVi__message {
    width: 650px;
  }
}

/*=====================================================
  homeTopVoices
=====================================================*/
.homeTopVoices .homeTopVoices__title {
  font-size: 18px;
  font-size: 1.125rem;
}
@media print, screen and (min-width: 768px) {
  .homeTopVoices .homeTopVoices__title {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

/*=====================================================
  homeService
=====================================================*/
@media print, screen and (min-width: 768px) {
  .homeService .homeService__list li a,
  .homeService .homeService__list li .homeService__dummylink {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.homeService .homeService__list li a .homeService__category,
.homeService .homeService__list li .homeService__dummylink .homeService__category {
  line-height: 1.3;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
@media print, screen and (min-width: 768px) {
  .homeService .homeService__list li a .homeService__category,
  .homeService .homeService__list li .homeService__dummylink .homeService__category {
    font-size: 14px;
    font-size: 0.875rem;
  }
}
.homeService .homeService__list li a .homeService__logo .homeService__logoTextBig,
.homeService .homeService__list li .homeService__dummylink .homeService__logo .homeService__logoTextBig {
  font-weight: normal;
  line-height: 1.3;
}
.homeService .homeService__list li a .homeService__logo .homeService__logoTextSmall,
.homeService .homeService__list li .homeService__dummylink .homeService__logo .homeService__logoTextSmall {
  line-height: 1.3;
  font-weight: normal;
}

/*=====================================================
  homePickUp
=====================================================*/
.homePickUp .homePickUp__recruit a {
  padding: 24px 20px 25px 20px;
  background-image: url(/library/images/home/pickup_recruit_en_bg_sp.png);
}
@media print, screen and (min-width: 768px) {
  .homePickUp .homePickUp__recruit a {
    background-image: url(/library/images/home/pickup_recruit_en_bg.png);
  }
}
.homePickUp .homePickUp__recruit a .homePickUp__recruitTitle {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.2;
}
@media print, screen and (min-width: 768px) {
  .homePickUp .homePickUp__recruit a .homePickUp__recruitTitle {
    margin-bottom: 14px;
    font-size: 34px;
    font-size: 2.125rem;
  }
}
.homePickUp .homePickUp__recruit a .homePickUp__recruitText {
  line-height: 1.4;
}
@media print, screen and (min-width: 768px) {
  .homePickUp .homePickUp__recruit a .homePickUp__recruitText {
    width: 240px;
  }
}

/*=====================================================
  homeIr_heading
=====================================================*/
.homeIr_heading {
  padding: 0;
}
@media print, screen and (min-width: 768px) {
  .homeIr_heading {
    padding: 0;
  }
}

/*=====================================================
  homeIr
=====================================================*/
.homeIr .homeIr__nav .homeIr__navBox a .homeIr__navTitle {
  line-height: 1.4;
}
@media print, screen and (min-width: 768px) {
  .homeIr .homeIr__nav .homeIr__navBox a .homeIr__navTitle {
    display: block;
  }
}
.homeIr .homeIr__nav .homeIr__navBox a .homeIr__navTitle img {
  width: 14px;
  display: inline;
  margin-left: 10px;
  transition: all 0.2s;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .homeIr .homeIr__nav .homeIr__navBox a .homeIr__navTitle img {
    top: -3px;
  }
}