@charset "UTF-8";
/****	---- setting ----
===================================****/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap");
/****	---- general ----
===================================****/
html.lock, body.lock {
  overflow: hidden;
}

html {
  font-size: 62.5%;
}
@media print, screen and (max-width: 1365px) {
  html {
    font-size: 0.7142857143vw;
  }
}
@media print, screen and (max-width: 767px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  color: #000;
  font-size: 1.4rem;
  font-family: "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-family: "Noto Serif JP", serif;
  font-family: "Noto Sans JP", sans-serif;
  font-family: "Zen Maru Gothic", sans-serif;
  line-height: 1.8;
  background: #fff;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%;
}

figure {
  margin: 0;
}

img {
  width: 100%;
  display: block;
}

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  outline: none;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
}

a {
  color: #000;
  text-decoration: none;
  transition: 0.2s;
}

/****	---- js ----
===================================****/
.fadeIn,
.fadeIn_200,
.fadeIn_400,
.fadeIn_600 {
  transition: 0.8s;
  opacity: 0;
  transform: translate(0, 6rem);
  -webkit-transform: translate(0, 6rem);
}

.fadeIn_left {
  transition: 1.2s;
  opacity: 0;
  transform: translate(-10rem, 0);
  -webkit-transform: translate(10rem, 0);
}

.fadeIn_right {
  transition: 1.2s;
  opacity: 0;
  transform: translate(10rem, 0);
  -webkit-transform: translate(10rem, 0);
}

.fadeInMove {
  opacity: 1;
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0);
}

.js-accordion {
  transition: 0.2s;
}

.js-accordion:hover {
  opacity: 0.7;
  cursor: pointer;
}
@media print, screen and (max-width: 767px) {
  .js-accordion:hover {
    opacity: 1;
  }
}

.js-accordionContents {
  display: none;
}

.js-modal-video {
  position: relative;
}
.js-modal-video::after {
  content: "";
  width: 9rem;
  height: 9rem;
  background: url("../img/ico_play.png") center center/contain no-repeat;
  filter: drop-shadow(0.4rem 0.4rem 0.4rem rgba(0, 0, 0, 0.2));
  position: absolute;
  inset: 0;
  margin: auto;
}
@media print, screen and (max-width: 767px) {
  .js-modal-video::after {
    width: 6.4rem;
    height: 6.4rem;
  }
}
.js-modal-video:hover {
  cursor: pointer;
}

/****	---- utility ----
===================================****/
.u-pc {
  display: block;
}
@media print, screen and (max-width: 767px) {
  .u-pc {
    display: none;
  }
}

.u-sp {
  display: none;
}
@media print, screen and (max-width: 767px) {
  .u-sp {
    display: block;
  }
}

.u-mb--em {
  margin: 0 0 1em 0;
}

/****	---- layout ----
===================================****/
.l-inner {
  width: 100rem;
  margin: 0 auto;
}
@media print, screen and (max-width: 767px) {
  .l-inner {
    width: 33.75rem;
  }
}

.l-inner1200 {
  width: 120rem;
  margin: 0 auto;
}
@media print, screen and (max-width: 767px) {
  .l-inner1200 {
    width: 33.5rem;
  }
}

.l-main {
  display: block;
  position: relative;
  overflow: hidden;
}

.l-section {
  box-sizing: border-box;
  padding: 8rem 0;
  position: relative;
}

/****	---- component ----
===================================****/
.c-anchor {
  position: absolute;
  top: 0;
}
@media print, screen and (max-width: 767px) {
  .c-anchor {
    top: -6rem;
  }
}

.c-ttl {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem 0;
}
.c-ttl > span {
  font-weight: bold;
  font-size: 1.4rem;
  line-height: 1.75;
  letter-spacing: 0.5em;
  color: #00a0ff;
  position: relative;
}
.c-ttl > span::after {
  content: "";
  width: 7rem;
  height: 0.4rem;
  background: #fff;
  position: absolute;
  right: 0;
  left: 50%;
  bottom: -0.5em;
  transform: translateX(-54%);
}
.c-ttl > strong {
  font-weight: bold;
  font-size: 3rem;
  line-height: 1.75;
  color: #003461;
}
@media print, screen and (max-width: 767px) {
  .c-ttl > strong {
    font-size: 2.4rem;
    line-height: 1.75;
  }
}

.c-txt {
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.75;
}
@media print, screen and (max-width: 767px) {
  .c-txt {
    font-size: 1.4rem;
    line-height: 1.75;
  }
}

.c-btn-right {
  display: flex;
  justify-content: flex-end;
}
@media print, screen and (max-width: 767px) {
  .c-btn-right {
    width: 27.75rem;
    margin: 0 auto;
    display: block;
  }
}

.c-btn {
  font-weight: bold;
  font-size: 1.6rem;
  color: #fff;
  width: 30rem;
  height: 6rem;
  background: #003461;
  border: 3px solid #003461;
  border-radius: 1rem;
  box-sizing: border-box;
  padding: 0 0 0 2rem;
  display: flex;
  align-items: center;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .c-btn {
    font-size: 1.4rem;
    width: 100%;
    height: 5.6rem;
  }
}
.c-btn:after {
  content: "";
  width: 2.8rem;
  height: 2.8rem;
  background: #fff url("../img/arw_btn.svg") center center/1rem no-repeat;
  border-radius: 100%;
  position: absolute;
  top: 0;
  right: 2rem;
  bottom: 0;
  margin: auto;
}
@media print, screen and (max-width: 767px) {
  .c-btn:after {
    right: 1.5rem;
  }
}
.c-btn:hover {
  background: #fff;
  color: #003461;
}
.c-btn:hover:after {
  background: #003461 url("../img/arw_btn_white.svg") center center/1rem no-repeat;
}
.c-btn.--white {
  color: #003461;
  background: #fff;
}
.c-btn.--white:after {
  background: #003461 url("../img/arw_btn_white.svg") center center/1rem no-repeat;
}
.c-btn.--white:hover {
  background: #003461;
  color: #fff;
}
.c-btn.--white:hover:after {
  background: #fff url("../img/arw_btn.svg") center center/1rem no-repeat;
}

/****	---- project ----
===================================****/
.p-hdg {
  padding: 6.8rem 0 0 0;
  position: relative;
  z-index: 1;
}
.p-hdg::before {
  content: "";
  width: 7.6rem;
  height: 3.8rem;
  background: url("../img/ico_top.svg") center top/contain no-repeat;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
}
.p-hdg.--navy::before {
  background: url("../img/ico_top_navy.svg") center top/contain no-repeat;
}
.p-hdg__sub {
  font-weight: bold;
  font-size: 1.6rem;
  color: #003461;
  border-bottom: 2px dotted #003461;
  position: absolute;
  top: 2.5rem;
  left: calc(50% - 27.5rem);
  transform: rotate(-15deg);
}
@media print, screen and (max-width: 767px) {
  .p-hdg__sub {
    top: -0.5em;
    left: 0;
  }
}
.p-hdg__ttl {
  font-weight: bold;
  font-size: 3rem;
  line-height: 1.28;
  text-align: center;
  color: #fff;
  margin: 0 0 0.25em 0;
}
@media print, screen and (max-width: 767px) {
  .p-hdg__ttl {
    font-size: 2.4rem;
    line-height: 1.6;
  }
}
.--navy .p-hdg__ttl {
  color: #003461;
}
.p-hdg__txt {
  font-weight: bold;
  font-size: 1.8rem;
  line-height: 1.75;
  text-align: center;
  color: #fff;
}
@media print, screen and (max-width: 767px) {
  .p-hdg__txt {
    font-size: 1.6rem;
    line-height: 1.75;
  }
}
.--navy .p-hdg__txt {
  color: #003461;
}

.p-link-list {
  display: flex;
  flex-direction: column;
  gap: 4rem 0;
  position: relative;
  z-index: 1;
}
.p-link-list__item {
  background: #fff;
  border-radius: 8rem 0 0 8rem;
  padding: 4rem 0 4rem 12rem;
  margin: 0 0 0 calc(50% - 50rem);
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__item {
    border-radius: 6rem 0 0 6rem;
    padding: 4.8rem 4.8rem 5.6rem 3rem;
    margin: 0 0 0 1.9rem;
    flex-direction: column;
  }
}
.p-link-list__item.--reverse {
  border-radius: 0 8rem 8rem 0;
  padding: 4rem 12rem 4rem 0;
  margin: 0 calc(50% - 50rem) 0 0;
  flex-direction: row;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__item.--reverse {
    border-radius: 0 6rem 6rem 0;
    padding: 4.8rem 3rem 5.6rem 4.8rem;
    flex-direction: column;
    margin: 0 1.9rem 0 0;
  }
}
.p-link-list__item.--reason {
  border-radius: 0 8rem 8rem 0;
  padding: 0 0 0 12rem;
  margin: 0 calc(50% - 50rem) 0 0;
  justify-content: flex-start;
  overflow: hidden;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__item.--reason {
    border-radius: 0 6rem 6rem 0;
    padding: 0;
    margin: 0 1.9rem 0 0;
    flex-direction: column;
  }
}
.p-link-list__img {
  width: 55rem;
  height: 29.2rem;
  background: #f2f5f7;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__img {
    width: 100%;
    height: 14.7rem;
  }
}
.--reason .p-link-list__img {
  height: auto;
  background: none;
}
@media print, screen and (max-width: 767px) {
  .--reason .p-link-list__img {
    width: 100%;
  }
}
.p-link-list__img img.--img {
  width: 21.6rem;
  filter: drop-shadow(0.4rem 0.4rem 0.4rem rgba(0, 0, 0, 0.2));
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-8deg);
}
@media print, screen and (max-width: 767px) {
  .p-link-list__img img.--img {
    width: 10.9rem;
  }
}
.p-link-list__content {
  width: 53rem;
  box-sizing: border-box;
  padding: 0 6rem 0 0;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__content {
    width: 100%;
    padding: 4rem 0 0 0;
  }
}
.p-link-list__item.--reverse .p-link-list__content {
  padding: 0 0 0 6rem;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__item.--reverse .p-link-list__content {
    padding: 4rem 0 0 0;
  }
}
.--reason .p-link-list__content {
  width: 45rem;
  padding: 0 8rem 0 0;
}
@media print, screen and (max-width: 767px) {
  .--reason .p-link-list__content {
    width: 100%;
    padding: 3rem 3rem 4rem 4.8rem;
  }
}
.p-link-list__ttl {
  font-weight: bold;
  font-size: 2.4rem;
  line-height: 1.4;
  color: #003461;
  margin: 0 0 0.5em 0;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__ttl {
    font-size: 2rem;
    line-height: 1.68;
  }
}
.p-link-list__ttl.--fs30 {
  font-size: 3rem;
  line-height: 1.28;
}
@media print, screen and (max-width: 767px) {
  .p-link-list__ttl.--fs30 {
    font-size: 2rem;
    line-height: 1.68;
  }
}
.p-link-list__txt {
  color: #4d4d4d;
  margin: 0 0 2em 0;
}
.p-link-list__txt.--navy {
  color: #003461;
}
.p-link-list__txt.--mb {
  margin: 0;
}

/****	---- header ----
===================================****/
.l-header {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
}
.l-header__logo {
  width: 18.74715vw;
  position: absolute;
  top: 1.8571428571vw;
  left: 2vw;
}
@media print, screen and (max-width: 767px) {
  .l-header__logo {
    width: 15.4rem;
    top: 0.4rem;
    left: 0.6rem;
  }
}

/****	---- main ----
===================================****/
.mv {
  height: 50.9285714286vw;
  background: url("../img/mv.jpg") center center/cover no-repeat;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .mv {
    height: 79.5rem;
    background: url("../img/mv_sp.jpg") center center/cover no-repeat;
  }
}
.mv__ttl {
  width: 41.8178857143vw;
  position: absolute;
  top: 16.1428571429vw;
  left: 26.2857142857vw;
  z-index: 1;
}
@media print, screen and (max-width: 767px) {
  .mv__ttl {
    width: 31.2rem;
    position: absolute;
    top: 37.2rem;
    left: 2.5rem;
  }
}
.mv__txt {
  font-weight: bold;
  font-size: 1.4285714286vw;
  line-height: 1.75;
  text-align: center;
  color: #fff;
  width: 100%;
  position: absolute;
  top: 35.7142857143vw;
  left: 0;
  z-index: 1;
}
@media print, screen and (max-width: 767px) {
  .mv__txt {
    font-size: 1.6rem;
    line-height: 1.75;
    top: 51.5rem;
  }
}
.mv__img {
  width: 41.2857142857vw;
  position: absolute;
  right: 0;
  bottom: 0;
}
@media print, screen and (max-width: 767px) {
  .mv__img {
    display: none;
  }
}
.mv__img figcaption {
  width: 12.7857142857vw;
  position: absolute;
  right: 4.7142857143vw;
  bottom: 8.5714285714vw;
  transform: rotate(-10deg);
}
.mv__figcaption {
  display: none;
}
@media print, screen and (max-width: 767px) {
  .mv__figcaption {
    display: block;
    width: 10.4rem;
    position: absolute;
    top: 27.2rem;
    right: 4.4rem;
    transform: rotate(-6deg);
  }
}

.movie {
  background: url("../img/bg_movie.jpg") center center/cover no-repeat;
}
@media print, screen and (max-width: 767px) {
  .movie {
    background: url("../img/bg_movie_sp.jpg") center center/cover no-repeat;
  }
}
.movie__chara {
  width: 20.4rem;
  position: absolute;
  top: 14rem;
  left: calc(50% - 70.8rem);
  z-index: 1;
}
@media print, screen and (max-width: 767px) {
  .movie__chara {
    width: 16.6rem;
    top: auto;
    bottom: -27.2rem;
    left: -2rem;
    z-index: 2;
  }
}
.movie__content {
  margin: 5rem 0 0 0;
  display: flex;
  justify-content: space-between;
}
@media print, screen and (max-width: 767px) {
  .movie__content {
    margin: 4rem 0 0 0;
    flex-direction: column;
    gap: 4rem 0;
  }
}
.movie__thumb {
  width: 48rem;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .movie__thumb {
    width: 100%;
  }
}
.movie__thumb figcaption {
  font-weight: bold;
  font-size: 1.6rem;
  text-align: center;
  color: #fff;
  height: 3rem;
  background: #003461;
  border-radius: 1rem 1rem 0 0;
  padding: 0 1em;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: -3rem;
  right: 0;
}
@media print, screen and (max-width: 767px) {
  .movie__thumb figcaption {
    font-size: 1.2rem;
  }
}

.link {
  background: #ccd6df;
}
.link::before {
  pointer-events: none;
  content: "";
  width: 100%;
  height: 177.9rem;
  background: url("../img/bg_link.png") center top/100% 100% no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
@media print, screen and (max-width: 767px) {
  .link::before {
    height: 100%;
    background: url("../img/bg_link_sp.png") center top/100% 100% no-repeat;
  }
}
.link__content {
  position: relative;
  z-index: 2;
}

.bg {
  position: relative;
}
.bg::before {
  content: "";
  width: 100%;
  height: 191rem;
  background: url("../img/bg01.png") center top/100% 100% no-repeat;
  position: absolute;
  top: 38rem;
  left: 0;
}
@media print, screen and (max-width: 767px) {
  .bg::before {
    height: 354.8rem;
    background: url("../img/bg01_sp.png") center top/100% 100% no-repeat;
  }
}
.bg::after {
  content: "";
  width: 100%;
  height: 170.9rem;
  background: url("../img/bg02.png") center top/100% 100% no-repeat;
  position: absolute;
  top: 138rem;
  left: 0;
  z-index: -1;
}
@media print, screen and (max-width: 767px) {
  .bg::after {
    height: 163.3rem;
    background: url("../img/bg02_sp.png") center top/100% 100% no-repeat;
    top: 330rem;
  }
}

.intro {
  padding: 10rem 0 0 0;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .intro {
    padding: 7.5rem 0 0 0;
  }
}
.intro::before {
  content: "";
  width: 100%;
  height: 38rem;
  background: url("../img/bg_intro.jpg") center center/cover no-repeat;
  position: absolute;
  top: 0;
  left: 0;
}
@media print, screen and (max-width: 767px) {
  .intro::before {
    height: 49.8rem;
    background: url("../img/bg_intro_sp.png") center center/cover no-repeat;
  }
}
.intro__list {
  margin: 5rem 0 0 0;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
@media print, screen and (max-width: 767px) {
  .intro__list {
    margin: 4rem 0 0 0;
    flex-direction: column;
    gap: 3rem 0;
  }
}
.intro__list-item {
  width: 30.8rem;
}
@media print, screen and (max-width: 767px) {
  .intro__list-item {
    width: 100%;
  }
}
.intro__list-img {
  width: 26.8rem;
  margin: 0 auto;
}
.intro__list-content {
  height: 36.8rem;
  background: #f2faff;
  border-radius: 2rem;
  box-sizing: border-box;
  padding: 7rem 3rem 0;
  margin: -5.5rem 0 0 0;
}
@media print, screen and (max-width: 767px) {
  .intro__list-content {
    height: auto;
    padding: 7rem 3rem 3rem;
  }
}
.intro__list-ttl {
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.4;
  text-align: center;
  color: #003461;
  margin: 0 0 0.5em 0;
}
@media print, screen and (max-width: 767px) {
  .intro__list-ttl {
    font-size: 1.8rem;
    line-height: 1.3333333333;
  }
}
.intro__list-txt {
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #4d4d4d;
  margin: 0 0 1em 0;
}
.intro__list-notes {
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.4;
  color: #4d4d4d;
  margin: 0 -0.5em 0 0;
}

.reason {
  padding: 11.5rem 0 0 0;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .reason {
    padding: 7.5rem 0 0 0;
  }
}
.reason__content {
  margin: 5rem 0 8rem;
}
.reason__ttl {
  font-weight: bold;
  font-size: 2.4rem;
  line-height: 1.6;
  text-align: center;
  color: #fff;
  height: 15rem;
  border: 1px solid #fff;
  border-radius: 2rem;
  box-sizing: border-box;
  padding: 1em 0 0 0;
}
@media print, screen and (max-width: 767px) {
  .reason__ttl {
    height: 15.5rem;
    background: url("../img/bg_reason_ttl.png") center top/100% auto no-repeat;
    border: none;
    padding: 4rem 0 0 0;
  }
}
.reason__list {
  margin: -5.8rem 0 0 0;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
@media print, screen and (max-width: 767px) {
  .reason__list {
    background: url("../img/bg_reason_bottom.png") center bottom/100% auto no-repeat;
    padding: 0 0 6rem 0;
    margin: 0;
    flex-direction: column;
    gap: 3rem 0;
  }
}
.reason__list-item {
  width: 30.8rem;
}
@media print, screen and (max-width: 767px) {
  .reason__list-item {
    width: 100%;
  }
}
.reason__list-img {
  width: 26.8rem;
  margin: 0 auto;
}
.reason__list-content {
  height: 25.3rem;
  background: #f2faff;
  border-radius: 2rem;
  box-sizing: border-box;
  padding: 7rem 3rem 0;
  margin: -5.5rem 0 0 0;
}
@media print, screen and (max-width: 767px) {
  .reason__list-content {
    height: auto;
    padding: 7rem 3rem 3rem;
  }
}
.reason__list-ttl {
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.4;
  text-align: center;
  color: #003461;
  height: 5.6rem;
  margin: 0 0 0.5em 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media print, screen and (max-width: 767px) {
  .reason__list-ttl {
    font-size: 1.8rem;
    line-height: 1.2222222222;
    height: 4.4rem;
  }
}
.reason__list-txt {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #4d4d4d;
}

.result {
  padding: 11.5rem 0;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .result {
    padding: 6.5rem 0 9rem;
  }
}
.result::before {
  content: "";
  width: 100%;
  height: 100%;
  background: #708da7;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.result__row {
  margin: 5rem 0 0 0;
  display: flex;
  justify-content: space-between;
}
@media print, screen and (max-width: 767px) {
  .result__row {
    margin: 4rem 0 0 0;
    flex-direction: column;
    gap: 4rem 0;
  }
}
.result__col {
  width: 48rem;
}
@media print, screen and (max-width: 767px) {
  .result__col {
    width: 100%;
  }
}
.result__ttl {
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  margin: 0.75em 0 0.5em;
}
@media print, screen and (max-width: 767px) {
  .result__ttl {
    font-size: 1.8rem;
    line-height: 1.5555555556;
  }
}
.result__txt {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.6;
  text-align: center;
  color: #fff;
}
@media print, screen and (max-width: 767px) {
  .result__txt {
    text-align: left;
  }
}

.tech {
  padding: 12rem 0 8rem;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .tech {
    padding: 6rem 0 10rem;
  }
}
.tech::before {
  content: "";
  width: 100%;
  height: 100%;
  background: #e5ebef;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.tech__list {
  border-top: 2px solid #003461;
  border-bottom: 2px solid #003461;
  margin: 5rem 0 4rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .tech__list {
    flex-direction: column;
    align-items: center;
  }
}
.tech__list::before {
  content: "";
  width: 100%;
  height: 2px;
  background: #003461;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
@media print, screen and (max-width: 767px) {
  .tech__list::before {
    content: none;
  }
}
.tech__list-item {
  width: 28rem;
  padding: 3.5rem 0;
  position: relative;
}
.tech__list-item::after {
  content: "";
  width: 2px;
  height: calc(100% - 7rem);
  background: #003461;
  position: absolute;
  top: 0;
  right: -4rem;
  bottom: 0;
  margin: auto;
}
@media print, screen and (max-width: 767px) {
  .tech__list-item::after {
    width: 100%;
    height: 2px;
    top: auto;
    right: 0;
    bottom: 0;
  }
}
.tech__list-item:nth-child(3n)::after {
  content: none;
}
@media print, screen and (max-width: 767px) {
  .tech__list-item:nth-child(3n)::after {
    content: "";
  }
}
@media print, screen and (max-width: 767px) {
  .tech__list-item:nth-child(5)::after {
    content: none;
  }
}
.tech__list-sub {
  font-weight: bold;
  font-size: 1.8rem;
  color: #003461;
  margin: 0 0 0.5em 0;
}
.tech__list-sub > span {
  border-bottom: 2px dotted #003461;
  padding: 0 0 0.25em 0;
}
.tech__list-ttl {
  white-space: nowrap;
  font-weight: bold;
  font-size: 2.4rem;
  line-height: 1.75;
  color: #003461;
  margin: 0 0 0.25em 0;
}
@media print, screen and (max-width: 767px) {
  .tech__list-ttl {
    font-size: 2rem;
    line-height: 1.75;
  }
}
.tech__list-txt {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #4d4d4d;
}
.tech__list-txt.--ls {
  letter-spacing: -0.05em;
  margin: 0 -1em 0 0;
}
.tech__img {
  width: 47.2rem;
  position: absolute;
  bottom: 0;
  right: calc(50% - 62.2rem);
}
@media print, screen and (max-width: 767px) {
  .tech__img {
    width: 19.2rem;
    top: 18.3rem;
    bottom: auto;
    right: -3.2rem;
  }
}

.voice__list {
  padding: 7.5rem 0 9.6rem;
}
@media print, screen and (max-width: 767px) {
  .voice__list {
    padding: 6rem 0 7.8rem;
  }
}
.voice__list-item {
  width: 42rem;
  height: 22.2rem;
  background: url("../img/bg_voice_txt.png") center center/100% 100% no-repeat;
  box-sizing: border-box;
  padding: 4rem 4.5rem 0;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .voice__list-item {
    width: 30.55rem;
    height: 27.2rem;
    background: url("../img/bg_voice_txt_sp.png") center center/100% 100% no-repeat;
    padding: 3.5rem 3.5rem 0;
  }
}
.voice__list-ttl {
  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.75;
  text-align: center;
  color: #00a0ff;
  width: 23.6rem;
  height: 3.8rem;
  border: 0.4rem solid #00a0ff;
  border-radius: 9999px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  transform: translateY(-50%);
}
@media print, screen and (max-width: 767px) {
  .voice__list-ttl {
    font-size: 1.2rem;
    width: 18.2rem;
    border: 0.3rem solid #00a0ff;
  }
}
.voice__list-copy {
  white-space: nowrap;
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.75;
  text-align: center;
  color: #003461;
  margin: 0 0 0.5em 0;
}
@media print, screen and (max-width: 767px) {
  .voice__list-copy {
    font-size: 1.8rem;
    line-height: 1.4166666667;
  }
}
.voice__list-txt {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #4d4d4d;
}
@media print, screen and (max-width: 767px) {
  .voice__list-txt {
    font-size: 1.395rem;
    line-height: 1.6007168459;
  }
}
.voice .swiper-button {
  width: 15.2rem;
  display: flex;
  justify-content: space-between;
  position: absolute;
  bottom: 0;
  right: calc(50% - 34rem);
}
@media print, screen and (max-width: 767px) {
  .voice .swiper-button {
    width: 11rem;
    right: 1.8rem;
  }
}
.voice .swiper-button .swiper-button-prev,
.voice .swiper-button .swiper-button-next {
  width: 5.6rem;
  height: 5.6rem;
  background-color: #00a0ff;
  background-image: url("../img/arw_prev_white.svg");
  background-position: center center;
  background-size: 1.8rem;
  background-repeat: no-repeat;
  border-radius: 100%;
  margin: 0;
  position: static;
}
@media print, screen and (max-width: 767px) {
  .voice .swiper-button .swiper-button-prev,
  .voice .swiper-button .swiper-button-next {
    width: 4.5rem;
    height: 4.5rem;
    background-size: 1.4rem;
  }
}
.voice .swiper-button .swiper-button-prev::after,
.voice .swiper-button .swiper-button-next::after {
  content: none;
}
.voice .swiper-button .swiper-button-next {
  background-image: url("../img/arw_btn_white.svg");
}
.voice__notes {
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.8666666667;
  color: #4d4d4d;
  margin: -4rem 0 0 0;
}
@media print, screen and (max-width: 767px) {
  .voice__notes {
    margin: 2em 0 0 0;
  }
}

.support {
  background: #e5ebef;
}
.support__list {
  margin: 5.5rem 0 0 0;
  display: flex;
  justify-content: space-between;
}
@media print, screen and (max-width: 767px) {
  .support__list {
    margin: 6rem 0 0 0;
    flex-direction: column;
    gap: 5.5rem 0;
  }
}
.support__list-item {
  width: 30.8rem;
  height: auto;
  background: #fff;
  border-radius: 2rem;
  box-sizing: border-box;
  padding: 4rem 3rem 2.5rem;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .support__list-item {
    width: 100%;
  }
}
.support__list-ico {
  width: 8rem;
  position: absolute;
  top: -3rem;
  right: 0;
  left: 0;
  margin: auto;
}
.support__list-ttl {
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.4;
  text-align: center;
  color: #003461;
  height: 5.6rem;
  margin: 0 0 0.5em 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .support__list-ttl {
    font-size: 1.8rem;
    line-height: 1.4444444444;
    height: 5.2rem;
  }
}
.support__list-txt {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #4d4d4d;
}

.cm {
  height: 72.8rem;
  background: url("../img/bg_cm.jpg") center center/cover no-repeat;
}
@media print, screen and (max-width: 767px) {
  .cm {
    height: 52.1rem;
    background: url("../img/bg_cm_sp.jpg") center center/cover no-repeat;
  }
}
.cm__container {
  width: 88rem;
  height: 56.7rem;
  background: url("../img/bg_cm_thumb.png") center center/contain no-repeat;
  box-sizing: border-box;
  padding: 10rem 0 0 0;
  position: absolute;
  top: 8rem;
  right: 0;
  left: 0;
  margin: auto;
}
@media print, screen and (max-width: 767px) {
  .cm__container {
    width: 33.65rem;
    height: 38.3rem;
    background: url("../img/bg_cm_thumb_sp.png") center center/contain no-repeat;
    padding: 13rem 0 0 0;
  }
}
.cm__thumb {
  width: 72rem;
  margin: 0 auto;
}
@media print, screen and (max-width: 767px) {
  .cm__thumb {
    width: 33.75rem;
  }
}

.cv {
  background: #ccd6df;
}
@media print, screen and (max-width: 767px) {
  .cv {
    padding: 5rem 0 0 0;
  }
}
.cv__container {
  height: 75.6rem;
  background: url("../img/bg_cv.jpg") center center/cover no-repeat;
  margin: -10.5rem 0 -8rem;
  position: relative;
}
@media print, screen and (max-width: 767px) {
  .cv__container {
    height: 66.1rem;
    background: url("../img/bg_cv_sp.jpg") center center/cover no-repeat;
    box-sizing: border-box;
    padding: 18rem 0 0 0;
    margin: -9rem 0 0 0;
  }
}
.cv__content {
  position: absolute;
  top: 50%;
  right: calc(50% - 50rem);
  transform: translateY(-50%);
}
@media print, screen and (max-width: 767px) {
  .cv__content {
    position: static;
    transform: translateY(0);
  }
}
.cv__ttl {
  font-weight: bold;
  font-size: 3rem;
  line-height: 1.75;
  text-align: right;
  color: #fff;
  margin: 0 0 1.5em 0;
}
@media print, screen and (max-width: 767px) {
  .cv__ttl {
    font-size: 2.4rem;
    line-height: 1.75;
    text-align: center;
  }
}

/****	---- footer ----
===================================****/
.l-footer {
  padding: 7rem 0 4rem;
}
@media print, screen and (max-width: 767px) {
  .l-footer {
    padding: 2rem 0 10rem;
  }
}
.l-footer__content {
  margin: 0 0 3rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media print, screen and (max-width: 767px) {
  .l-footer__content {
    margin: 0 0 2rem 0;
  }
}
.l-footer__logo {
  width: 26.2rem;
}
@media print, screen and (max-width: 767px) {
  .l-footer__logo {
    width: 16.6rem;
  }
}
.l-footer__sns {
  display: flex;
  align-items: center;
  gap: 0 1.2rem;
}
@media print, screen and (max-width: 767px) {
  .l-footer__sns {
    gap: 0 1.8rem;
  }
}
.l-footer__sns a.--ig {
  width: 3.6rem;
}
@media print, screen and (max-width: 767px) {
  .l-footer__sns a.--ig {
    width: 2.5rem;
  }
}
.l-footer__sns a.--yt {
  width: 4.3rem;
}
@media print, screen and (max-width: 767px) {
  .l-footer__sns a.--yt {
    width: 2.5rem;
  }
}
.l-footer__list {
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.75;
  color: #4d4d4d;
  margin: 0 0 1rem 0;
  display: flex;
  justify-content: flex-end;
  gap: 0 2em;
}
@media print, screen and (max-width: 767px) {
  .l-footer__list {
    font-size: 1.2rem;
    margin: 0 0 1.5rem 0;
    flex-wrap: wrap;
    gap: 0.5em 2em;
  }
}
.l-footer__list-item {
  position: relative;
}
.l-footer__list-item::after {
  content: "";
  width: 1px;
  height: 1em;
  background: #4d4d4d;
  position: absolute;
  top: 0;
  right: -1em;
  bottom: 0;
  margin: auto;
}
.l-footer__list-item:last-child::after {
  content: none;
}
.l-footer__copy {
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.75;
  text-align: right;
  color: #4d4d4d;
}

.fixed {
  display: none;
}
@media print, screen and (max-width: 767px) {
  .fixed {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 0 3.25rem 2rem;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6rem);
    transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
  }
  .fixed .c-btn {
    height: 6rem;
  }
  .fixed.is-show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

/****	---- end ----
===================================****//*# sourceMappingURL=style.css.map */