@charset "UTF-8";
/***********************共通設定************************/
/*----------------------------------------------------
kv
----------------------------------------------------*/
#kv {
  position: relative;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  z-index: 2;
  overflow: hidden;
  /* -750 */
  /* 751- */
  /* 1017- */
}
#kv:before {
  position: absolute;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: url(../images/top/rainbow_sp.png) no-repeat left bottom;
  background-size: 100% auto;
  z-index: 2;
  /* 751- */
}
@media all and (min-width: 751px) {
  #kv:before {
    background-image: url(../images/top/rainbow_pc.png);
  }
}
#kv .kv_inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}
@media all and (max-width: 750px) {
  #kv .slide-img source,
  #kv .slide-img img {
    -o-object-fit: cover;
       object-fit: cover;
  }
}
#kv .swiper-container {
  position: relative;
}
#kv .swiper-pagination {
  display: none;
}
#kv .swiper-pagination-bullet {
  width: 6px;
  height: 6px;
}
#kv .innerBig {
  position: relative;
}
#kv .catch {
  position: absolute;
  bottom: 20px;
  left: 0;
  width: 100%;
  text-align: left;
  z-index: 2;
  background: transparent;
  padding: 0;
}
#kv .catch p {
  color: #FFFFFF;
  font-weight: 500;
  font-size: 4.6vw;
  letter-spacing: 0.05em;
  line-height: 1.3;
  -webkit-filter: drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.4));
          filter: drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.4));
}
#kv .catch h1 {
  position: relative;
  line-height: 0;
  width: 100%;
  max-width: 340px;
}
#kv .catch h1::before {
  display: block;
  content: "";
  padding-top: 19.337%;
  background: url(../images/top/mv_catch_bg.svg) no-repeat left bottom;
  background-size: auto 100%;
}
#kv .catch h1 img {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  width: auto;
  height: 100%;
  opacity: 0;
  margin-top: 40px;
  -webkit-transition: all 1s;
  transition: all 1s;
  -webkit-transition-timing-function: cubic-bezier(0.92, 0.01, 0.46, 1);
          transition-timing-function: cubic-bezier(0.92, 0.01, 0.46, 1);
}
#kv .catch h1 img.current {
  opacity: 1;
  margin-top: 0;
}
@media screen and (min-width: 421px) {
  #kv .catch p {
    font-size: 18px;
  }
}
@media all and (min-width: 751px) {
  #kv .catch {
    bottom: 30px;
  }
  #kv .catch p {
    font-size: 26px;
    margin-bottom: 0.3em;
  }
  #kv .catch h1 {
    max-width: 480px;
  }
}
@media all and (min-width: 1017px) {
  #kv .catch p {
    font-size: 34px;
  }
  #kv .catch h1 {
    max-width: 696px;
  }
  #kv .catch h1 img {
    margin-top: 60px;
  }
}

.scrDown {
  /* -750 */
  /* 751- */
}
@media all and (max-width: 750px) {
  .scrDown {
    padding: 40px 0 50px;
  }
  .scrDown a {
    position: relative;
    display: inline-block;
    padding-bottom: 24px;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: 0.1em;
  }
  .scrDown a:hover {
    text-decoration: none;
  }
  .scrDown a::before {
    position: absolute;
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    left: 50%;
    bottom: 0;
    margin-left: -15px;
    width: 30px;
    height: 30px;
    border-right: 1px solid #2D2D2D;
    border-bottom: 1px solid #2D2D2D;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
}
@media all and (min-width: 751px) {
  .scrDown {
    display: none;
  }
}

/*----------------------------------------------------
topTitle
----------------------------------------------------*/
.topTitle {
  text-align: left;
  /* 751- */
}
.topTitle span {
  position: relative;
  display: inline-block;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 500;
  letter-spacing: 0.1em;
  background: url(../images/top/message_title_bg.png) no-repeat center bottom;
  background-size: 100% 10px;
}
@media all and (min-width: 751px) {
  .topTitle span {
    font-size: 50px;
    background-size: 100% 14px;
  }
}

#service .topTitle span::before {
  background-image: url(../images/top/service_title_bg.png);
}

#interview .topTitle span::before {
  background-image: url(../images/top/interview_title_bg.png);
}

#talk .topTitle span::before {
  background-image: url(../images/top/talk_title_bg.png);
}

/*----------------------------------------------------
message
----------------------------------------------------*/
#message {
  /* -750 */
  /* -340 */
  /* 751- */
  /* 1097- */
}
#message .body {
  margin-top: 40px;
  font-size: 14px;
  line-height: 2.14;
  text-align: left;
}
#message .body p {
  margin-top: 2.4em;
}
#message .body p:first-child {
  margin-top: 0;
}
#message .body strong {
  font-size: 136%;
  line-height: 1.1;
  font-weight: 500;
}
#message .body strong span {
  background: -webkit-gradient(linear, left top, right top, from(#ff6666), color-stop(15%, #ff6666), color-stop(40%, #678ede), color-stop(83%, #33b5a0), to(#4dbf6e));
  background: linear-gradient(90deg, #ff6666 0%, #ff6666 15%, #678ede 40%, #33b5a0 83%, #4dbf6e 100%);
  background: -webkit-linear-gradient(0deg, #ff6666 0%, #ff6666 15%, #678ede 40%, #33b5a0 83%, #4dbf6e 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media all and (max-width: 750px) {
  #message {
    padding: 0 20px;
  }
  #message .inner {
    position: relative;
  }
  #message .logo {
    margin-top: 40px;
    margin-left: -30px;
    width: 220px;
  }
  #message .readMore {
    position: absolute;
    bottom: 140px;
    right: 0;
  }
}
@media all and (min-width: 751px) {
  #message {
    margin-top: 120px;
  }
  #message .inner {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  #message .head {
    width: 40%;
    margin-right: 10%;
  }
  #message .logo {
    margin-top: 30px;
  }
  #message .body {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-top: 10px;
    padding-bottom: 120px;
  }
  #message .readMore {
    position: absolute;
    bottom: 0;
    right: 0;
  }
}
@media all and (min-width: 1097px) {
  #message .head {
    width: 456px;
    margin-right: 35px;
    margin-right: 0;
  }
  #message .logo {
    margin-left: -100px;
    width: 456px;
  }
  #message .body {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-left: -30px;
    margin-top: 10px;
    padding-bottom: 140px;
  }
}

/*----------------------------------------------------
imageScroll
----------------------------------------------------*/
#imageScroll {
  margin-top: 70px;
  /* スライドの動き等速 */
  /* 画像のサイズ調整 */
  /* 751- */
}
#imageScroll .swiper-wrapper {
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
}
#imageScroll .swiper-slide img {
  height: auto;
  width: 100%;
}
#imageScroll .swiper-slide:nth-child(odd) {
  padding: 30px 0 0;
}
#imageScroll .swiper-slide:nth-child(even) {
  padding: 0 0 30px;
}
@media all and (min-width: 751px) {
  #imageScroll {
    margin-top: 150px;
  }
  #imageScroll .swiper-slide:nth-child(odd) {
    padding: 65px 0 0;
  }
  #imageScroll .swiper-slide:nth-child(even) {
    padding: 0 0 65px;
  }
}

/*----------------------------------------------------
interview
----------------------------------------------------*/
#interview {
  /* スライドの動き等速 */
  /* 画像のサイズ調整 */
  /* 751- */
}
#interview .topTitle {
  margin-top: 70px;
  text-align: center;
}
#interview .swiper {
  margin-top: 30px;
}
#interview a {
  display: block;
}
#interview .swiper-wrapper {
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
}
#interview .swiper-slide img {
  height: auto;
  width: 100%;
  padding-bottom: 5px;
}
#interview .swiper-slide {
  position: relative;
  padding: 40px 0 0 45px;
  overflow: visible;
}
#interview .number {
  position: absolute;
  top: 0;
  left: 5px;
  width: 50px;
  height: 50px;
  border-radius: 100vh;
  border: solid 1px #2D2D2D;
  text-align: center;
  line-height: 50px;
  font-size: 22px;
  letter-spacing: 0;
  background: #FFFFFF;
  z-index: 2;
}
#interview picture {
  z-index: 1;
}
#interview .info {
  position: absolute;
  top: 60px;
  left: 0;
  width: 30px;
}
#interview .text {
  position: absolute;
  bottom: 5px;
  right: 0;
  width: 72%;
  font-size: 12px;
  line-height: 1.66;
  text-align: left;
  font-weight: 500;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
#interview .text span {
  display: block;
  position: relative;
  background: #FFFFFF;
  padding: 1.5em;
  z-index: 2;
}
#interview .text::after {
  position: absolute;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  bottom: -5px;
  right: -5px;
  width: calc(100% + 5px);
  height: calc(100% + 5px);
  background: url(../images/top/interview_text_bg.png) no-repeat right bottom;
  background-size: 100% 100%;
  z-index: 1;
}
#interview .readMore {
  margin-top: 40px;
}
@media all and (min-width: 751px) {
  #interview .topTitle {
    margin-top: 130px;
  }
  #interview .swiper {
    margin-top: 60px;
  }
  #interview .info {
    top: 70px;
    width: 11%;
  }
  #interview .text {
    width: 80%;
    font-size: 16px;
    line-height: 1.75;
  }
  #interview .text span {
    padding: 0.7em 0.5em 0.7em 0.7em;
  }
  #interview a .number,
  #interview a .text {
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
  }
  #interview a:hover .text {
    margin-bottom: 20px;
  }
  #interview a:hover .number {
    color: #FFFFFF;
    background: #2D2D2D;
  }
  #interview .readMore {
    margin-top: 80px;
  }
}