@charset "UTF-8";
/*======================================
    font
======================================*/
/*======================================
    color
======================================*/
span.gr {
  display: inline-block;
  background: linear-gradient(to right, #29ACE1, #4DC764);
  background: -webkit-linear-gradient(to right, #29ACE1, #4DC764);
  color: #4CC764;
  -webkit-background-clip: text;
  -webkit-text-fill-color: rgba(255, 255, 255, 0);
}

/*======================================
    common
======================================*/
html {
  font-size: 10px;
  font-family: "Noto Sans JP", sans-serif;
  color: #222;
}

body {
  background-color: #fff;
}

img {
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  cursor: pointer;
}

@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}
.is-nowrap {
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  br.is-pc {
    display: none;
  }
}

br.is-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  br.is-sp {
    display: block;
  }
}

/*======================================
    layout
======================================*/
.wrap {
  overflow: hidden;
  font-size: min(1.1111111111vw, 1.6rem);
}
@media screen and (max-width: 768px) {
  .wrap {
    font-size: min(4.2666666667vw, 1.6rem);
  }
}

.main {
  padding-top: 7.1875em;
}
@media screen and (max-width: 768px) {
  .main {
    padding-top: 5.5625em;
  }
}

.inner {
  width: 95%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .inner {
    width: 87.2%;
  }
}

.inner-md {
  width: 90%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .inner-md {
    width: 87.2%;
  }
}

/*======================================
    section
======================================*/
.section-ttl__wrap {
  text-align: center;
}

.section-ttl__en {
  font-family: "Lato", sans-serif;
  font-size: 1.25em;
  font-weight: 900;
  letter-spacing: 0.02em;
  color: #4CC764;
}
@media screen and (max-width: 768px) {
  .section-ttl__en {
    font-size: 1em;
  }
}

.section-ttl {
  font-size: 2.5em;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-top: 0.7em;
  line-height: 1.3;
  display: inline-block;
  position: relative;
}
@media screen and (max-width: 768px) {
  .section-ttl {
    font-size: 1.5em;
    margin-top: 1em;
  }
}
.section-ttl::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
}
.section-ttl span.lg {
  font-size: 1.2em;
}
@media screen and (max-width: 768px) {
  .section-ttl span.lg {
    font-size: 1em;
  }
}
.section-ttl span.color {
  color: #4CC764;
}
.section-ttl span.logo {
  display: inline-block;
  width: 5em;
  transform: translateY(22%);
  margin-top: -22%;
}
@media screen and (max-width: 768px) {
  .section-ttl span.logo {
    width: 5.54em;
  }
}
.section-ttl.-problem::before {
  background: url(../img/problem_ttl_line.png) no-repeat center/contain;
  width: 13.05em;
  height: 1.575em;
  transform: translate(-50%, 88%);
}
@media screen and (max-width: 768px) {
  .section-ttl.-problem::before {
    width: 14.05em;
    transform: translate(-50%, 112%);
    background: url(../img/problem_ttl_line_sp.png) no-repeat center/contain;
  }
}
.section-ttl.-solution::before {
  background: url(../img/solution_ttl_line.png) no-repeat center/contain;
  width: 11.05em;
  height: 1.575em;
  transform: translate(-50%, 105%);
}
@media screen and (max-width: 768px) {
  .section-ttl.-solution::before {
    background: url(../img/solution_ttl_line_sp.png) no-repeat center/contain;
    width: 11.25em;
    transform: translate(-50%, 100%);
  }
}
.section-ttl.-case::before {
  background: url(../img/case_ttl_line.png) no-repeat center/contain;
  width: 6em;
  height: 0.75em;
  transform: translate(-50%, 124%);
}
.section-ttl.-about::before {
  background: url(../img/about_ttl_line.png) no-repeat center/contain;
  width: 10.3em;
  height: 1.575em;
  transform: translate(-50%, 94%);
}
@media screen and (max-width: 768px) {
  .section-ttl.-about::before {
    width: 13.05em;
    transform: translate(-50%, 122%);
    background: url(../img/problem_ttl_line_sp.png) no-repeat center/contain;
  }
}
.section-ttl.-qa::before {
  background: url(../img/qa_ttl_line.png) no-repeat center/contain;
  width: 6.3em;
  height: 1.575em;
  transform: translate(-50%, 94%);
}

/*======================================
    CTA
======================================*/
.cta {
  background-color: #29ABE2;
  color: #fff;
  text-align: center;
  padding: 4em 0 4.75em;
}
@media screen and (max-width: 768px) {
  .cta {
    padding: 4em 0;
  }
}

.cta__wrap {
  padding: 7em 0 5em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .cta__wrap {
    padding: 7.75em 0 4.25em;
  }
  .cta__wrap .cta__head {
    font-size: 1.5em;
  }
}
.cta__wrap .cta__btns {
  transform: translateX(-2%);
  margin-top: 2.85em;
}
@media screen and (max-width: 768px) {
  .cta__wrap .cta__btns {
    margin-top: 2.5em;
    transform: translate(0);
  }
}

.cta__head {
  font-size: 2.5em;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 768px) {
  .cta__head {
    font-size: 1.25em;
  }
}
.cta__head .logo {
  display: inline-block;
  width: 4.55em;
  margin: 0 0.25em;
}
@media screen and (max-width: 768px) {
  .cta__head .logo {
    width: 6.05em;
  }
}
@media screen and (max-width: 768px) {
  .cta__head span.lg {
    font-size: 1.2em;
    display: inline-block;
    margin-top: 0.55em;
  }
  .cta__head span.lg .logo {
    margin-right: 0.5em;
    margin-left: 0;
  }
}

.cta__text {
  font-size: 1.5em;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-top: 0.75em;
}
@media screen and (max-width: 768px) {
  .cta__text {
    font-size: 1.25em;
    margin-top: 1.35em;
  }
}

.cta__btns {
  max-width: 54.625em;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 1.125em;
  margin-top: 3.5em;
}
@media screen and (max-width: 768px) {
  .cta__btns {
    grid-template-columns: 1fr;
    margin-top: 2em;
    row-gap: 0.75em;
  }
}

.cta__btn:nth-child(1) a {
  background-color: #fff;
  color: #29ABE2;
}
.cta__btn:nth-child(1) a::before {
  background-image: url(../img/icon_arrow_blue.svg);
}
.cta__btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3.85em;
  font-weight: 700;
  font-size: 1.25em;
  border: 0.15em solid #fff;
  border-radius: 0.3em;
  position: relative;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 768px) {
  .cta__btn a {
    max-width: 16.35em;
    margin-left: auto;
    margin-right: auto;
  }
}
.cta__btn a:hover {
  opacity: 0.7;
}
.cta__btn a:hover::before {
  right: 0.5em;
}
.cta__btn a::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.7em;
  transform: translateY(-50%);
  width: 0.7em;
  height: 0.7em;
  background: url(../img/icon_arrow_white.svg) no-repeat center/contain;
  transition: right 0.3s ease;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 300;
  transition: backdrop-filter 0.3s ease;
}
.header.is-blur {
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.h__inner {
  display: flex;
  justify-content: space-between;
  column-gap: 2em;
  padding-top: 1.5em;
}
@media screen and (max-width: 768px) {
  .h__inner {
    padding-top: 1.25em;
  }
}

.h__logo {
  width: 11.25em;
}
@media screen and (max-width: 768px) {
  .h__logo {
    width: 8.5em;
  }
}
.h__logo a {
  display: block;
}

.h__contents {
  display: flex;
  align-items: center;
  column-gap: 2.5em;
  padding-top: 0.25em;
}
@media screen and (max-width: 768px) {
  .h__contents {
    display: none;
  }
}

.h__links {
  display: flex;
  align-items: center;
  column-gap: 2.5em;
}

.h__link a {
  display: block;
  font-weight: 700;
  transition: opacity 0.3s ease;
}
.h__link a:hover {
  opacity: 0.7;
}

.h__pages {
  display: flex;
  column-gap: 0.75em;
}

.h__page a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.5em;
  height: 3.5em;
  background-color: #fff;
  font-weight: 700;
  color: #29ABE2;
  border-radius: 0.375em;
  border: 0.125em solid #29ABE2;
  position: relative;
  transition: opacity 0.3s ease;
}
.h__page a:hover {
  opacity: 0.7;
}
.h__page a:hover::before {
  right: 1em;
}
.h__page a::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.25em;
  transform: translateY(-50%);
  width: 0.612em;
  height: 0.612em;
  background: url(../img/icon_arrow_blue.svg) no-repeat center/contain;
  transition: right 0.3s ease;
}
.h__page:nth-child(2) a {
  background-color: #29ABE2;
  color: #fff;
}
.h__page:nth-child(2) a::before {
  background-image: url(../img/icon_arrow_white.svg);
}

.footer {
  padding: 3em 0;
}

.f__wrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
@media screen and (max-width: 768px) {
  .f__wrap {
    flex-direction: column;
    align-items: center;
  }
}

.f__logo {
  width: 15.9375em;
}

@media screen and (max-width: 768px) {
  .f__links--wrap {
    margin-top: 2.2em;
  }
}

.f__links {
  display: flex;
  align-items: center;
  column-gap: 2.5em;
}

.f__link a {
  display: block;
  font-weight: 500;
  transition: opacity 0.3s ease;
}
.f__link a:hover {
  opacity: 0.7;
}

/*======================================
    TOP
======================================*/
.mv {
  font-size: 1.1111111111vw;
  position: relative;
  background: linear-gradient(to bottom, #fff 0%, #fff calc(100% - 3em), #EFF8FD calc(100% - 3em), #EFF8FD 100%);
}
@media screen and (max-width: 768px) {
  .mv {
    font-size: 4.2666666667vw;
    background: unset;
    margin-bottom: -0.1em;
  }
}
.mv::before {
  content: "";
  position: absolute;
  bottom: 1.5em;
  left: 0;
  width: 100%;
  height: 17.25em;
  background: url(../img/mv_bg_line.png) no-repeat center/contain;
}
@media screen and (max-width: 768px) {
  .mv::before {
    display: none;
  }
}

.mv__inner {
  width: 88.89%;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .mv__inner {
    width: 87.2%;
  }
}

.mv__contents {
  padding-left: 0.25em;
  margin-right: calc(50% - 50vw);
  height: 43.75em;
  position: relative;
  padding-top: 3em;
}
@media screen and (max-width: 768px) {
  .mv__contents {
    padding-left: 0;
    height: auto;
    padding-top: 1.7em;
    margin-right: auto;
  }
}

.mv__bg {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 58.125em;
  transform: translateX(1%);
}
@media screen and (max-width: 768px) {
  .mv__bg {
    position: static;
    width: 24.875em;
    transform: translateX(-11%);
    margin-top: 1.25em;
  }
}

.mv__lead {
  font-size: 3em;
  font-weight: 700;
  margin-top: 0.8em;
}
@media screen and (max-width: 768px) {
  .mv__lead {
    font-size: 1.75em;
  }
}
.mv__lead .gr {
  display: inline-block;
  font-size: 1.275em;
  margin-top: 0.3em;
}
@media screen and (max-width: 768px) {
  .mv__lead .gr {
    font-size: 1.35em;
  }
  .mv__lead .gr span.is-sp {
    display: inline-block;
    margin-left: -0.25em;
    margin-top: 0.1em;
    font-size: 1.05em;
    letter-spacing: -0.005em;
  }
}

.mv__text {
  font-size: 1.25em;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.9;
  margin-top: 2.25em;
}
@media screen and (max-width: 768px) {
  .mv__text {
    font-size: 0.875em;
    margin-right: -1em;
    line-height: 1.7142857143;
    margin-top: 1.75em;
  }
}

.lead {
  background-color: #EFF8FD;
  padding-top: 4em;
  padding-bottom: 20.1388888889vw;
  position: relative;
}
@media screen and (max-width: 768px) {
  .lead {
    padding-top: 2.5em;
    padding-bottom: 18.6666666667vw;
  }
}
.lead::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 17.3611111111vw;
  background: url(../img/lead_bg_line.png) no-repeat center/contain;
  transform: translateY(3%);
}
@media screen and (max-width: 768px) {
  .lead::before {
    height: 20vw;
    background: url(../img/lead_bg_line_sp.png) no-repeat center/contain;
    transform: translateY(0);
  }
}

.sponsor__lists {
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 7em;
  border-radius: 1.25em;
}
@media screen and (max-width: 768px) {
  .sponsor__lists {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    height: 6.3125em;
    padding-top: 1em;
    font-size: 4.2666666667vw;
  }
}

.sponsor__list:nth-child(1) {
  width: 14.3125em;
}
@media screen and (max-width: 768px) {
  .sponsor__list:nth-child(1) {
    width: 7.5625em;
    margin-left: auto;
    margin-right: 1.15em;
  }
}
.sponsor__list:nth-child(2) {
  width: 16.375em;
  margin-left: 2em;
  transform: translateY(0.25em);
}
@media screen and (max-width: 768px) {
  .sponsor__list:nth-child(2) {
    width: 8.75em;
    margin-left: auto;
    margin-right: 1.5em;
    margin-top: -0.5em;
  }
}
.sponsor__list:nth-child(3) {
  width: 8.0625em;
  margin-left: 2.5625em;
  transform: translateY(0.25em);
}
@media screen and (max-width: 768px) {
  .sponsor__list:nth-child(3) {
    width: 4.25em;
    margin-left: auto;
    margin-right: auto;
    transform: translateY(-0.5em);
  }
}
.sponsor__list:nth-child(4) {
  width: 13em;
  margin-left: 1.875em;
  transform: translateY(0.25em);
}
@media screen and (max-width: 768px) {
  .sponsor__list:nth-child(4) {
    width: 6.875em;
    margin-left: auto;
    margin-right: auto;
    transform: translate(-1em, -0.6em);
  }
}

.lead__head {
  text-align: center;
  font-size: 2.5em;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.8666666667;
  font-feature-settings: "palt";
  margin-top: 1.6em;
  transform: translateX(1%);
}
@media screen and (max-width: 768px) {
  .lead__head {
    font-size: 1.5em;
    margin-top: 2.4em;
  }
}
.lead__head span.quote {
  display: inline-block;
  position: relative;
}
@media screen and (max-width: 768px) {
  .lead__head span.quote::before, .lead__head span.quote::after {
    transform: translateY(-30%);
  }
}
.lead__head span.quote::before {
  content: "“";
  position: absolute;
  top: 0;
  left: 0;
}
.lead__head span.quote::after {
  content: "”";
  position: absolute;
  top: 0;
  right: 0;
}
.lead__head span.gr {
  padding: 0 0.5em;
  font-size: 1.275em;
}
@media screen and (max-width: 768px) {
  .lead__head span.gr {
    font-size: 1.45em;
    margin-top: -0.5em;
  }
}

.lead__text {
  font-size: 1.125em;
  font-weight: 700;
  line-height: 2;
  text-align: center;
  margin-top: 0.8em;
}
@media screen and (max-width: 768px) {
  .lead__text {
    font-size: 0.875em;
    margin-top: 1.35em;
    letter-spacing: 0.06em;
  }
}

.lead__contents {
  display: grid;
  grid-template-columns: 29em auto;
  column-gap: 5.75em;
  margin-top: 5em;
}
@media screen and (max-width: 768px) {
  .lead__contents {
    grid-template-columns: 1fr;
    margin-top: 4.2em;
  }
}

.lead__logo {
  margin-left: auto;
  width: 27.375em;
}
@media screen and (max-width: 768px) {
  .lead__logo {
    width: 12.125em;
    margin-right: auto;
  }
}

@media screen and (max-width: 768px) {
  .lead__contents--texts {
    margin: 2.75em calc(50% - 50vw) 0;
    transform: translateX(1%);
  }
}

.lead__contents--head {
  font-size: 2em;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.03em;
  padding-top: 0.25em;
}
@media screen and (max-width: 768px) {
  .lead__contents--head {
    font-size: 1.25em;
    text-align: center;
    margin-top: 0;
  }
}
.lead__contents--head span.gr {
  display: inline-block;
  font-feature-settings: "palt";
}
.lead__contents--head span.gr span {
  display: inline-block;
  font-size: 1.2em;
  line-height: 1;
}

.lead__contents--text {
  font-size: 1.125em;
  font-weight: 700;
  line-height: 2;
  margin-top: 1.75em;
  margin-right: -1em;
}
@media screen and (max-width: 768px) {
  .lead__contents--text {
    font-size: 0.875em;
    text-align: center;
    line-height: 1.7142857143;
    margin-top: 2.5em;
    margin-right: 0;
  }
}
.lead__contents--text span.gr {
  font-size: 1.25em;
  line-height: 1;
  padding: 0 0.75em;
  letter-spacing: 0.075em;
}
@media screen and (max-width: 768px) {
  .lead__contents--text span.gr {
    margin-top: 0.25em;
  }
}
.lead__contents--text span.quote {
  display: inline-block;
  position: relative;
}
.lead__contents--text span.quote::before {
  content: "“";
  position: absolute;
  top: -0.5em;
  left: 0.25em;
}
.lead__contents--text span.quote::after {
  content: "”";
  position: absolute;
  top: -0.5em;
  right: 0;
  color: #222;
}
.lead__contents--text.-second {
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .lead__contents--text.-second {
    margin-top: 1.9em;
  }
}

.lead__message {
  font-size: 2.5em;
  margin-top: 2.75em;
  letter-spacing: 0.075em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .lead__message {
    font-size: 1.875em;
    margin: 1.7em calc(50% - 50vw);
    letter-spacing: normal;
  }
}
.lead__message span {
  font-weight: 700;
}

.problem {
  position: relative;
  z-index: 2;
}

.problem__head {
  background-color: #F4F4F4;
  padding-bottom: 9em;
  clip-path: polygon(0% 0%, 100% 0, 100% calc(100% - 9.6875em), 50% 100%, 0 calc(100% - 9.6875em));
}
@media screen and (max-width: 768px) {
  .problem__head {
    padding-top: 5.2em;
    clip-path: polygon(0% 0%, 100% 0, 100% calc(100% - 3.25em), 50% 100%, 0 calc(100% - 3.25em));
    background-color: #F7F7F7;
  }
}

.problem__lists {
  display: flex;
  justify-content: flex-end;
  margin-top: 5.25em;
  padding-right: 2.5em;
}
@media screen and (max-width: 768px) {
  .problem__lists {
    display: block;
    padding-right: 0;
    margin-top: 5.65em;
  }
}

@media screen and (min-width: 769px) {
  .problem__list:nth-child(2) {
    margin-left: 6.875em;
  }
  .problem__list:nth-child(3) {
    margin-left: 3.875em;
  }
}
@media screen and (max-width: 768px) {
  .problem__list:nth-child(n+2) {
    margin-top: 2.65em;
  }
}

.problem__img {
  width: 13.5em;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .problem__img {
    width: 9.875em;
  }
}

.problem__text {
  font-size: 1.25em;
  line-height: 1.6;
  letter-spacing: 0.03em;
  font-weight: 700;
  text-align: center;
  margin-top: 1.75em;
}
@media screen and (max-width: 768px) {
  .problem__text {
    max-width: 18.75em;
    margin-left: auto;
    margin-right: auto;
    font-size: 1em;
    margin-top: 1em;
  }
}

.problem__body {
  position: relative;
}
.problem__body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 7.75em;
  width: 3.375em;
  background: url(../img/nayami_arrow.png) no-repeat center/contain;
}
.problem__body::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 100%);
  width: 1.875em;
  height: 1.5em;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  background-color: #fff;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .problem__body::after {
    width: 1.5em;
    height: 1.125em;
  }
}

.problem__body {
  padding: 5.25em 0 4.25em;
  box-shadow: 0 33px 36px rgba(2, 47, 0, 0.16);
}
@media screen and (max-width: 768px) {
  .problem__body {
    padding: 7.5em 0 3.5em;
  }
}

.problem__solved--text {
  font-size: 2.5em;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 768px) {
  .problem__solved--text {
    font-size: 1.5em;
    margin: 0 calc(50% - 50vw);
  }
}

.problem__solved--img {
  display: block;
  width: 7.825em;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: -1.2em;
}
@media screen and (max-width: 768px) {
  .problem__solved--img {
    width: 8em;
    margin-bottom: -1em;
  }
}

.solution {
  color: #fff;
  padding: 6.5em 0 0;
  position: relative;
  background: linear-gradient(to top, #27ABE2, #4CC868);
  z-index: 1;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .solution {
    padding: 4.75em 0 0;
  }
}
.solution::before {
  content: "";
  position: absolute;
  top: 6.5em;
  left: 50%;
  transform: translate(-49%);
  width: min(102.4305555556vw, 1475px);
  height: min(68.3333333333vw, 984px);
  background: url(../img/solution_bg.png) no-repeat center/contain;
  z-index: -1;
  mix-blend-mode: screen;
}
@media screen and (max-width: 768px) {
  .solution::before {
    width: min(278.4vw, 1044px);
    height: min(185.6vw, 696px);
    left: 0;
    top: 28.5em;
    transform: translate(-42%);
  }
}
.solution .section-ttl__en {
  color: #fff;
}
.solution .section-ttl {
  font-size: 3em;
  margin-top: 0.6em;
}
@media screen and (max-width: 768px) {
  .solution .section-ttl {
    font-size: 1.5em;
    letter-spacing: 0.03em;
    margin-top: 1em;
    line-height: 1.5;
  }
}

.solution__lists {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 2.1875em;
  margin-top: 7em;
}
@media screen and (max-width: 768px) {
  .solution__lists {
    display: block;
    margin-top: 5.25em;
  }
}

.solution__list {
  background-color: #fff;
  color: #222;
  border-radius: 1.875em;
  border: 0.25em solid #222;
  padding: 1.5em 1.6em 2em;
}
@media screen and (max-width: 768px) {
  .solution__list {
    padding: 1em 2em 2em;
  }
  .solution__list:nth-child(n+2) {
    margin-top: 1em;
  }
}
.solution__list:nth-child(1) .solution__img {
  width: 13.9375em;
}
@media screen and (max-width: 768px) {
  .solution__list:nth-child(1) .solution__img {
    width: 11.9375em;
    transform: translateX(-2%);
  }
}
.solution__list:nth-child(2) .solution__img {
  width: 12.25em;
  transform: translateX(7%);
}
.solution__list:nth-child(3) .solution__img {
  width: 11.8125em;
}

.solution__img {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  align-items: center;
  height: 14.375em;
}
@media screen and (max-width: 768px) {
  .solution__img {
    height: auto;
  }
}

.solution__ttl {
  text-align: center;
  font-size: 1.25em;
  line-height: 1.6;
  letter-spacing: 0.03em;
  font-weight: 700;
  margin-top: 0.5em;
}
@media screen and (max-width: 768px) {
  .solution__ttl {
    margin-top: 0.7em;
  }
}

.solution__text {
  font-size: 0.875em;
  line-height: 1.7142857143;
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .solution__text {
    letter-spacing: 0.04em;
  }
}

.solution__message {
  font-size: 2.5em;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.03em;
  text-align: center;
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .solution__message {
    font-size: 1.25em;
    line-height: 1.7;
    margin-top: 2.25em;
  }
}

.feature {
  padding: 6.5em 0;
}
@media screen and (max-width: 768px) {
  .feature {
    padding: 5.2em 0;
  }
}
.feature .section-ttl {
  margin-top: 0.8em;
}
@media screen and (max-width: 768px) {
  .feature .section-ttl {
    margin-top: 1.25em;
  }
}

.feature__lists {
  margin-top: 7em;
}
@media screen and (max-width: 768px) {
  .feature__lists {
    margin-top: 5.5em;
  }
}

@media screen and (min-width: 769px) {
  .feature__list {
    display: flex;
  }
  .feature__list:nth-child(odd) {
    flex-direction: row-reverse;
  }
  .feature__list:nth-child(odd) .feature__img {
    padding-right: 0.625em;
    width: 47.42%;
  }
  .feature__list:nth-child(odd) .feature__contents {
    padding-left: 4.125em;
  }
  .feature__list:nth-child(even) .feature__img {
    width: 50%;
    padding-left: 2.6875em;
  }
  .feature__list:nth-child(even) .feature__contents {
    padding-left: 4.25em;
  }
  .feature__list:nth-child(1) .feature__contents--text {
    max-width: 33.625em;
  }
  .feature__list:nth-child(2) {
    margin-top: 3em;
  }
  .feature__list:nth-child(2) .feature__contents--number {
    margin-top: 1.3em;
  }
  .feature__list:nth-child(2) .feature__contents--text {
    max-width: 35.625em;
  }
  .feature__list:nth-child(3) {
    margin-top: 2em;
  }
  .feature__list:nth-child(3) .feature__contents--number {
    margin-top: 3.2em;
  }
  .feature__list:nth-child(3) .feature__contents {
    padding-left: 5.5em;
  }
  .feature__list:nth-child(3) .feature__contents--text {
    max-width: 32.1875em;
  }
  .feature__list:nth-child(4) {
    margin-top: 3em;
  }
  .feature__list:nth-child(4) .feature__contents--number {
    margin-top: 0.6em;
  }
  .feature__list:nth-child(4) .feature__contents--text {
    max-width: 33em;
  }
}
@media screen and (max-width: 768px) {
  .feature__list:nth-child(n+2) {
    margin-top: 2.75em;
  }
}

.feature__contents {
  flex: 1;
}

.feature__contents--number {
  font-size: 1.25em;
  font-weight: 900;
  color: #4CC764;
  font-family: "Lato", sans-serif;
  letter-spacing: 0.02em;
  margin-top: 1.75em;
}
@media screen and (max-width: 768px) {
  .feature__contents--number {
    font-size: 1em;
    margin-top: 2em;
  }
}

.feature__contents--ttl {
  font-size: 2em;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.5;
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .feature__contents--ttl {
    font-size: 1.25em;
    line-height: 1.6;
    margin-top: 1em;
  }
}

.feature__contents--text {
  line-height: 2;
  letter-spacing: 0.04em;
  margin-top: 1.75em;
}
@media screen and (max-width: 768px) {
  .feature__contents--text {
    font-size: 0.875em;
    line-height: 1.7142857143;
    margin-top: 1em;
  }
}

.case {
  background-color: #F7F7F7;
  padding: 5.25em 0;
}
.case .section-ttl {
  margin-top: 0.45em;
}
@media screen and (max-width: 768px) {
  .case .section-ttl {
    margin-top: 0.7em;
  }
}

.case__lists {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 1.875em;
  margin-top: 5em;
}
@media screen and (max-width: 768px) {
  .case__lists {
    grid-template-columns: 1fr;
    row-gap: 1.25em;
    margin-top: 3.5em;
  }
}

.case__list {
  background-color: #fff;
  border-radius: 0.625em;
  overflow: hidden;
  border: 0.25em solid #222;
}

.case__list--img {
  position: relative;
}
.case__list--img::before {
  content: "";
  display: block;
  padding-top: 50.2463054187%;
  background-color: lightgray;
}
.case__list--img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.case__list--body {
  padding: 1.75em 2.25em 2em;
}
@media screen and (max-width: 768px) {
  .case__list--body {
    padding: 1em 1.25em 2.2em;
  }
}

.case__list--ttl {
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 768px) {
  .case__list--ttl {
    font-size: 1em;
    line-height: 1.625;
  }
}

.case__list--client {
  font-size: 0.75em;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.5;
  color: #4CC764;
  margin-top: 1em;
}

.case__list--details {
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .case__list--details {
    margin-top: 0.9em;
  }
}

.case__list--detail:nth-child(n+2) {
  margin-top: 0.5em;
}
.case__list--detail dl {
  display: grid;
  grid-template-columns: 9.25em auto;
}
@media screen and (max-width: 768px) {
  .case__list--detail dl {
    grid-template-columns: 7.5em auto;
  }
}
.case__list--detail dl dt, .case__list--detail dl dd {
  font-size: 0.875em;
  line-height: 1.5;
  letter-spacing: 0.03em;
}
.case__list--detail dl dt {
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .case__list--detail dl dd {
    font-size: 0.8125em;
    margin-right: -1em;
  }
}

.case__list--link {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #4CC764;
  font-size: 0.875em;
  height: 3em;
  border: 1px solid #4CC764;
  border-radius: 0.43em;
  margin-top: 1.75em;
  transition: color 0.3s ease, background-color 0.3s ease;
}
.case__list--link:hover {
  color: #fff;
  background-color: #4CC764;
}
@media screen and (max-width: 768px) {
  .case__list--link {
    margin-top: 1.5em;
    height: 3.14em;
  }
}

.about {
  padding: 5.4em 0 7em;
}
@media screen and (max-width: 768px) {
  .about {
    padding: 4.4em 0 4.5em;
  }
}

.about__head--ttl {
  width: 15.5625em;
  margin-left: auto;
  margin-right: auto;
  transform: translateX(-13%);
}
@media screen and (max-width: 768px) {
  .about__head--ttl {
    transform: translate(0);
    width: 9.625em;
  }
}
.about__head--ttl span {
  display: block;
  font-size: 1.25em;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-align: center;
  margin-top: -0.2em;
}
@media screen and (max-width: 768px) {
  .about__head--ttl span {
    font-size: 0.875em;
    margin-top: -0.5em;
  }
}

.about__head--text {
  text-align: center;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  margin-top: 2.25em;
  transform: translateX(-2.5%);
}
@media screen and (max-width: 768px) {
  .about__head--text {
    transform: translate(0);
    margin: 2.25em calc(50% - 50vw) 0;
    font-size: 1em;
    line-height: 1.75;
  }
}

.about__head--img {
  width: 70.25em;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2.5em;
}
@media screen and (max-width: 768px) {
  .about__head--img {
    width: 113vw;
    margin: 3.5em calc(50% - 50vw) 0;
    transform: translateX(-5.75%);
  }
}

.about__body {
  padding-top: 5.25em;
}
@media screen and (max-width: 768px) {
  .about__body {
    padding-top: 6em;
  }
}
.about__body .section-ttl {
  margin-top: 0.5em;
}
@media screen and (max-width: 768px) {
  .about__body .section-ttl {
    margin-top: 0.75em;
  }
}

.about__container {
  display: grid;
  grid-template-columns: 36.375em auto;
  column-gap: 4.25em;
  margin-top: 6.25em;
}
@media screen and (max-width: 768px) {
  .about__container {
    grid-template-columns: 1fr;
    margin-top: 5.6em;
  }
}

.about__logo--wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.625em;
  border: 0.25em solid #222;
}
@media screen and (max-width: 768px) {
  .about__logo--wrap {
    border: 0.1875em solid #222;
    height: 11.3125em;
  }
}

.about__logo {
  width: 24.0625em;
}
@media screen and (max-width: 768px) {
  .about__logo {
    width: 14.6875em;
  }
}

.about__text {
  line-height: 2;
  letter-spacing: 0.03em;
  max-width: 35.3125em;
}
@media screen and (max-width: 768px) {
  .about__text {
    font-size: 0.875em;
    line-height: 1.7142857143;
    max-width: 100%;
    margin-top: 1.5em;
  }
}

.faq {
  background-color: #F7F7F7;
  padding: 6.25em 0 8.75em;
}
@media screen and (max-width: 768px) {
  .faq {
    padding: 5em 0 5em;
  }
}
.faq .section-ttl {
  margin-top: 0.25em;
}
@media screen and (max-width: 768px) {
  .faq .section-ttl {
    margin-top: 0.75em;
  }
}

.faq__lists {
  max-width: 59.4375em;
  margin-left: auto;
  margin-right: auto;
  margin-top: 6.25em;
}
@media screen and (max-width: 768px) {
  .faq__lists {
    margin-top: 3.8em;
  }
}

.faq__list {
  background-color: #fff;
  padding: 1.75em 3em;
  border-radius: 1.25em;
  border: 0.1875em solid #222;
}
@media screen and (max-width: 768px) {
  .faq__list {
    padding: 1.75em 1.25em;
  }
}
.faq__list:nth-child(n+2) {
  margin-top: 1em;
}
@media screen and (max-width: 768px) {
  .faq__list:nth-child(n+2) {
    margin-top: 1.25em;
  }
}
.faq__list dl dt {
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.7;
  padding-left: 2em;
  position: relative;
}
@media screen and (max-width: 768px) {
  .faq__list dl dt {
    font-size: 1em;
    line-height: 1.5;
  }
}
.faq__list dl dt:hover {
  cursor: pointer;
}
.faq__list dl dt.is-active::after {
  transform: rotate(180deg);
}
.faq__list dl dt::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 1.5em;
  height: 1.8em;
  background: url(../img/question.png) no-repeat center/contain;
}
.faq__list dl dt::after {
  content: "";
  position: absolute;
  top: 0.7em;
  right: 0;
  width: 0.75em;
  height: 0.5em;
  background: url(../img/qa_arrow.png) no-repeat center/contain;
  transition: transform 0.3s ease;
}
@media screen and (max-width: 768px) {
  .faq__list dl dt::after {
    display: none;
  }
}
.faq__list dl dd {
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1.7142857143;
  padding-top: 1em;
  margin-top: 1.25em;
  border-top: 0.14em solid #222;
  display: none;
}
@media screen and (max-width: 768px) {
  .faq__list dl dd {
    display: block;
    margin-top: 1em;
  }
}
.faq__list dl dd.show {
  display: block;
}
