@charset "UTF-8";
/* ==========================================================================
  Home
========================================================================== */
body.--lp01 {
  color: #fff;
  background-color: #212121;
}
body.--lp01 .header {
  position: fixed;
  background-color: transparent;
  border-color: #fff;
  border-bottom: max(0.2564102564vw, 0.9615384615px) solid #fff;
}
@media (768px <= width) {
  body.--lp01 .header {
    border-width: min(0.0694444444vw, 1px);
  }
}
body.--lp01 .header.--active {
  background-color: rgba(255, 255, 255, 0.05);
  border: max(0.2564102564vw, 0.9615384615px) solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 max(1.0256410256vw, 3.8461538462px) max(1.5384615385vw, 5.7692307692px) rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(max(2.5641025641vw, 9.6153846154px));
}
@media (768px <= width) {
  body.--lp01 .header.--active {
    border-width: min(0.0694444444vw, 1px);
    box-shadow: 0 min(0.2777777778vw, 4px) min(0.4166666667vw, 6px) rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(min(0.6944444444vw, 10px));
  }
}
body.--lp01 .header__area1 {
  margin-inline: 0;
}
body.--lp01 .section {
  position: relative;
  padding-block: max(16.4102564103vw, 61.5384615385px);
  overflow: hidden;
}
body.--lp01 .section .container {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: max(12.3076923077vw, 46.1538461538px);
}
@media (768px <= width) {
  body.--lp01 .section {
    padding-block: min(8.3333333333vw, 120px) min(6.6666666667vw, 96px);
    font-size: min(1.1111111111vw, 16px);
  }
  body.--lp01 .section .container {
    gap: min(3.3333333333vw, 48px);
  }
}
body.--lp01 .section__header {
  display: flex;
  flex-direction: column;
  gap: max(6.1538461538vw, 23.0769230769px);
}
@media (768px <= width) {
  body.--lp01 .section__header {
    gap: min(3.3333333333vw, 48px);
    width: 100%;
  }
}
body.--lp01 .section__title {
  font-family: "Jost", sans-serif;
  font-size: max(5.1282051282vw, 19.2307692308px);
  font-weight: 700;
  line-height: 1.7;
}
@media (768px <= width) {
  body.--lp01 .section__title {
    font-size: min(1.6666666667vw, 24px);
  }
}
body.--lp01 .section__lead {
  font-size: max(8.2051282051vw, 30.7692307692px);
  font-weight: 400;
  line-height: 1.3;
}
body.--lp01 .section__lead em {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin-inline: 0.5%;
  color: #212121;
}
body.--lp01 .section__lead em::before {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  display: block;
  width: 106%;
  height: 90%;
  content: "";
  background-color: #b496ff;
  transform: translate(-50%, -50%);
}
@media (768px <= width) {
  body.--lp01 .section__lead {
    font-size: min(3.3333333333vw, 48px);
    line-height: 1.2;
  }
  body.--lp01 .section__lead em::before {
    transform: translate(-50%, -45%);
  }
}
body.--lp01 .section__text {
  font-size: max(3.8461538462vw, 14.4230769231px);
  line-height: 1.7;
}
body.--lp01 .section__text p + p {
  margin-top: 1.7em;
}
@media (768px <= width) {
  body.--lp01 .section__text {
    font-size: min(1.1111111111vw, 16px);
  }
}
body.--lp01 .section__definition {
  display: flex;
  flex-direction: column;
  gap: max(16.4102564103vw, 61.5384615385px);
  font-size: max(4.1025641026vw, 15.3846153846px);
  line-height: 1.7;
  text-align: right;
}
@media (768px <= width) {
  body.--lp01 .section__definition {
    gap: min(3.3333333333vw, 48px);
    margin-bottom: min(1.1111111111vw, 16px);
    font-size: min(1.1111111111vw, 16px);
    line-height: 1.5;
  }
}
body.--lp01 .section__definition .definition__item {
  display: flex;
  flex-direction: column;
}
@media (768px <= width) {
  body.--lp01 .section__definition .definition__item {
    flex-flow: row;
    justify-content: flex-end;
  }
  body.--lp01 .section__definition .definition__item > * {
    flex-shrink: 0;
  }
}
body.--lp01 .section__definition .definition__title {
  padding-bottom: max(6.1538461538vw, 23.0769230769px);
  font-weight: 700;
  color: #b496ff;
}
@media (768px <= width) {
  body.--lp01 .section__definition .definition__title {
    padding-right: min(1.6666666667vw, 24px);
    padding-bottom: 0;
  }
}
@media (width < 768px) {
  body.--lp01 .section__definition .definition__description {
    padding-top: max(6.1538461538vw, 23.0769230769px);
    border-top: max(0.2564102564vw, 0.9615384615px) solid #fff;
  }
}
@media (768px <= width) {
  body.--lp01 .section__definition .definition__description {
    padding-top: 0;
    padding-left: min(1.6666666667vw, 24px);
    border-left: min(0.0694444444vw, 1px) solid #fff;
  }
}
body.--lp01 .section__movie {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  width: 100%;
  height: 100%;
  aspect-ratio: 1920/1080;
  background-color: #212121;
  transform: translate(-50%, -50%);
}
body.--lp01 .section__movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.--lp01 .section__bg {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
}
body.--lp01 .section__bg img,
body.--lp01 .section__bg source {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.--lp01 .section.--rev .container {
  align-items: flex-end;
}
body.--lp01 .section.--rev .section__title,
body.--lp01 .section.--rev .section__lead,
body.--lp01 .section.--rev .section__description {
  text-align: right;
}
@media (768px <= width) {
  body.--lp01 .section.--rev .cta__inner {
    justify-content: flex-end;
  }
}

.cta {
  width: 100%;
}
.cta__inner {
  display: flex;
  flex-direction: column;
  gap: max(2.0512820513vw, 7.6923076923px);
  align-items: center;
  justify-content: center;
}
@media (768px <= width) {
  .cta__inner {
    flex-direction: row;
    gap: min(1.1111111111vw, 16px);
    justify-content: flex-start;
  }
}
.cta__caption {
  text-align: center;
}
@media (width < 768px) {
  .cta__caption {
    flex-shrink: 0;
    width: 100%;
    margin: 0 auto;
    font-size: max(3.5897435897vw, 13.4615384615px);
    line-height: 1.3;
  }
}
@media (768px <= width) {
  .cta__caption {
    margin-bottom: min(0.4166666667vw, 6px);
    font-size: min(1.3888888889vw, 20px);
  }
}
.cta__caption span {
  display: inline-block;
}
.cta__list {
  display: flex;
  flex-wrap: wrap;
  gap: max(3.0769230769vw, 11.5384615385px);
  align-items: center;
  font-weight: bold;
}
@media (width < 768px) {
  .cta__list {
    width: 100%;
  }
}
@media (768px <= width) {
  .cta__list {
    gap: min(0.8333333333vw, 12px);
  }
}
@media (width < 768px) {
  .cta__item {
    width: 100%;
  }
}
.cta__link {
  position: relative;
  display: flex;
  gap: max(4.1025641026vw, 15.3846153846px);
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: max(19.4871794872vw, 73.0769230769px);
  padding-inline: max(6.1538461538vw, 23.0769230769px) max(4.1025641026vw, 15.3846153846px);
  overflow: hidden;
  font-size: max(4.1025641026vw, 15.3846153846px);
  font-weight: 500;
  line-height: 1;
  color: #fff;
  background: #fff;
  border-radius: 100vmax;
}
.cta__link::after {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: linear-gradient(0deg, #6721ff 0%, #af96ff 67%);
}
.cta__link > span {
  position: relative;
  z-index: 2;
  flex: 1;
  line-height: 1.2;
  text-align: center;
}
@media (768px <= width) {
  .cta__link {
    gap: min(1.1111111111vw, 16px);
    width: min(27.7777777778vw, 400px);
    height: min(5.4861111111vw, 79px);
    padding-inline: min(1.6666666667vw, 24px) min(1.1111111111vw, 16px);
    font-size: min(1.3888888889vw, 20px);
    transition: color 0.5s ease;
  }
  .cta__link::after {
    opacity: 1;
    transition: opacity 0.5 ease, background-color 0.5 ease;
  }
  .cta__link:hover, .cta__link:focus {
    color: #212121;
    background-color: #fff;
  }
  .cta__link:hover::after, .cta__link:focus::after {
    opacity: 0.7;
  }
}

.cta2__inner {
  display: flex;
  flex-direction: column;
  gap: max(2.0512820513vw, 7.6923076923px);
  align-items: center;
  justify-content: center;
}
@media (768px <= width) {
  .cta2__inner {
    flex-direction: row;
    gap: min(1.1111111111vw, 16px);
    justify-content: flex-start;
  }
}
.cta2__caption {
  text-align: center;
}
@media (width < 768px) {
  .cta2__caption {
    flex-shrink: 0;
    width: 100%;
    margin: 0 auto;
    font-size: max(3.5897435897vw, 13.4615384615px);
    line-height: 1.3;
  }
}
@media (768px <= width) {
  .cta2__caption {
    margin-bottom: min(0.4166666667vw, 6px);
    font-size: min(1.3888888889vw, 20px);
  }
}
.cta2__caption span {
  display: inline-block;
}
.cta2__list {
  display: flex;
  flex-wrap: wrap;
  gap: max(3.0769230769vw, 11.5384615385px);
  align-items: center;
  font-weight: bold;
}
@media (width < 768px) {
  .cta2__list {
    width: 100%;
  }
}
@media (768px <= width) {
  .cta2__list {
    gap: min(0.8333333333vw, 12px);
  }
}
@media (width < 768px) {
  .cta2__item {
    width: 100%;
  }
}
.cta2__link {
  position: relative;
  display: flex;
  gap: max(4.1025641026vw, 15.3846153846px);
  align-items: center;
  justify-content: space-between;
  width: max(77.6923076923vw, 291.3461538462px);
  height: max(19.4871794872vw, 73.0769230769px);
  padding-inline: max(6.1538461538vw, 23.0769230769px) max(4.1025641026vw, 15.3846153846px);
  overflow: hidden;
  font-size: max(4.1025641026vw, 15.3846153846px);
  font-weight: 500;
  line-height: 1;
  color: #fff;
  background: linear-gradient(0deg, #6721ff 0%, #af96ff 67%);
  border-radius: 100vmax;
}
.cta2__link::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  display: block;
  width: calc(100% - max(2.0512820513vw, 7.6923076923px));
  height: calc(100% - max(2.0512820513vw, 7.6923076923px));
  content: "";
  background-color: #212121;
  border-radius: 100vmax;
  transform: translate(-50%, -50%);
}
.cta2__link > span {
  position: relative;
  z-index: 2;
  flex: 1;
  line-height: 1.2;
  text-align: center;
}
@media (768px <= width) {
  .cta2__link {
    gap: min(1.1111111111vw, 16px);
    width: min(23.2638888889vw, 335px);
    height: min(5.4861111111vw, 79px);
    padding-inline: min(1.6666666667vw, 24px) min(1.1111111111vw, 16px);
    font-size: min(1.1111111111vw, 16px);
    border-width: min(0.2777777778vw, 4px);
    transition: color 0.5s ease;
  }
  .cta2__link::after {
    width: calc(100% - min(0.5555555556vw, 8px));
    height: calc(100% - min(0.5555555556vw, 8px));
    transition: opacity 0.5 ease, background-color 0.5 ease;
  }
  .cta2__link:hover, .cta2__link:focus {
    color: #212121;
  }
  .cta2__link:hover::after, .cta2__link:focus::after {
    background-color: #fff;
    opacity: 0.2;
  }
}

.fv::after {
  display: none;
}
@media (width < 768px) {
  .fv {
    aspect-ratio: 39/72;
    padding-top: max(42.8205128205vw, 160.5769230769px) !important;
  }
  .fv .section__lead {
    font-size: max(12.3076923077vw, 46.1538461538px) !important;
    line-height: 1.2 !important;
  }
  .fv .cta2 {
    margin-top: calc(-1 * max(4.1025641026vw, 15.3846153846px));
  }
}
@media (768px <= width) {
  .fv {
    padding-top: min(13.1944444444vw, 190px) !important;
  }
  .fv .section__lead {
    font-size: min(5vw, 72px) !important;
  }
}
@media (1440px <= width) {
  .fv::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: block;
    width: 10%;
    height: 100%;
    content: "";
    background-color: #212121;
  }
}
.fv__wrap {
  position: relative;
}
.fv__wrap .header {
  position: absolute;
  top: 0;
  left: 0;
}
.fv__shape {
  position: absolute;
  bottom: 0;
  z-index: 5;
  height: 100%;
}
@media (width < 768px) {
  .fv__shape {
    left: 0;
    aspect-ratio: 390/720;
  }
}
@media (768px <= width) {
  .fv__shape {
    right: 50%;
    aspect-ratio: 1836/720;
    transform: translateX(calc(-1 * min(7.2222222222vw, 104px)));
  }
}

.issue::after {
  display: none;
}
@media (1440px <= width) {
  .issue::after {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: block;
    width: 25%;
    height: 100%;
    content: "";
    background-color: #212121;
  }
}
.issue__shape {
  position: absolute;
  bottom: 0;
  z-index: 5;
  height: 100%;
}
@media (width < 768px) {
  .issue__shape {
    right: 0;
    aspect-ratio: 78/135;
  }
}
@media (768px <= width) {
  .issue__shape {
    left: 50%;
    aspect-ratio: 1836/720;
    transform: translateX(calc(-1 * min(26.9444444444vw, 388px)));
  }
}

.solution .solutionList {
  display: flex;
  flex-direction: column;
  gap: max(4.1025641026vw, 15.3846153846px);
}
@media (768px <= width) {
  .solution .solutionList {
    flex-direction: row;
    gap: min(3.3333333333vw, 48px);
    margin-bottom: min(1.1111111111vw, 16px);
  }
}
.solution .solutionList__item {
  padding: max(12.3076923077vw, 46.1538461538px) max(8.2051282051vw, 30.7692307692px);
  line-height: 1.5;
  counter-increment: number;
  background-color: rgba(255, 255, 255, 0.05);
  border: max(0.2564102564vw, 0.9615384615px) solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 max(1.0256410256vw, 3.8461538462px) max(1.5384615385vw, 5.7692307692px) rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(max(2.5641025641vw, 9.6153846154px));
  overflow: hidden;
  border-radius: max(4.1025641026vw, 15.3846153846px);
}
@media (768px <= width) {
  .solution .solutionList__item {
    border-width: min(0.0694444444vw, 1px);
    box-shadow: 0 min(0.2777777778vw, 4px) min(0.4166666667vw, 6px) rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(min(0.6944444444vw, 10px));
  }
}
@media (768px <= width) {
  .solution .solutionList__item {
    border-radius: min(1.1111111111vw, 16px);
  }
}
.solution .solutionList__item::before {
  font-size: max(5.1282051282vw, 19.2307692308px);
  font-weight: 700;
  content: "STEP " counter(number) ":";
}
@media (768px <= width) {
  .solution .solutionList__item {
    padding: min(3.3333333333vw, 48px);
  }
  .solution .solutionList__item::before {
    font-size: min(2.2222222222vw, 32px);
  }
}
.solution .solutionList__title {
  margin-bottom: max(6.1538461538vw, 23.0769230769px);
  font-size: max(4.6153846154vw, 17.3076923077px);
}
@media (768px <= width) {
  .solution .solutionList__title {
    margin-bottom: min(1.6666666667vw, 24px);
    font-size: min(1.6666666667vw, 24px);
  }
}
.solution .solutionList__definition {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  font-size: max(3.8461538462vw, 14.4230769231px);
}
.solution .solutionList__definition dt,
.solution .solutionList__definition dd {
  text-indent: 0;
}
.solution .solutionList__definition dt::after {
  content: "：";
}
.solution .solutionList__definition ul li {
  margin-left: 1em;
  text-indent: -1em;
}
.solution .solutionList__definition ul li::before {
  content: "・ ";
}
@media (768px <= width) {
  .solution .solutionList__definition {
    font-size: min(1.0416666667vw, 15px);
  }
}

@media (width < 768px) {
  .data-driven .section__definition {
    margin-top: max(4.1025641026vw, 15.3846153846px);
  }
}

.comparison .section__title, .comparison .section__lead {
  text-align: center;
}
@media (768px <= width) {
  .comparison .container {
    width: min(50vw, 720px);
  }
  .comparison .section__lead {
    font-size: min(2.7777777778vw, 40px) !important;
  }
}
.comparison__table {
  width: 100%;
  font-weight: 500;
  color: #212121;
  background-color: #fff;
}
.comparison__table th,
.comparison__table td {
  padding: max(8.2051282051vw, 30.7692307692px) max(4.1025641026vw, 15.3846153846px);
  vertical-align: middle;
  border: max(0.2564102564vw, 0.9615384615px) solid #c9c9c9;
}
.comparison__table thead {
  font-size: max(3.3333333333vw, 12.5px);
  line-height: 1.2;
  color: #fff;
  text-align: center;
}
.comparison__table thead th.--items {
  background-color: #b496ff;
}
.comparison__table thead th.--others {
  background-color: #595959;
}
.comparison__table thead th.--addrust {
  background-color: #212121;
}
.comparison__table tbody {
  font-size: max(3.3333333333vw, 12.5px);
}
.comparison__table tbody th {
  line-height: 1.3;
}
.comparison__table tbody td {
  line-height: 1.2;
  text-align: center;
}
.comparison__table tbody td span {
  display: block;
}
.comparison__table tbody td.--others {
  background-color: #ededed;
}
@media (width < 768px) {
  .comparison__table thead th {
    width: 33.3333333333%;
  }
}
@media (768px <= width) {
  .comparison__table th,
  .comparison__table td {
    padding: min(1.6666666667vw, 24px) min(2.2222222222vw, 32px);
    border-width: min(0.0694444444vw, 1px);
  }
  .comparison__table thead {
    font-size: min(1.1111111111vw, 16px);
  }
  .comparison__table thead th {
    line-height: 1.2;
  }
  .comparison__table thead th.--others {
    width: min(18.6805555556vw, 269px);
  }
  .comparison__table thead th.--addrust {
    width: min(18.6805555556vw, 269px);
  }
  .comparison__table tbody {
    font-size: min(1.1111111111vw, 16px);
  }
  .comparison__table tbody td span {
    font-size: min(0.9722222222vw, 14px);
    font-weight: 400;
  }
}

.contact {
  padding-block: max(12.3076923077vw, 46.1538461538px);
}
.contact .container {
  display: flex;
  flex-direction: column;
  gap: max(12.3076923077vw, 46.1538461538px);
  width: max(87.6923076923vw, 328.8461538462px);
}
@media (768px <= width) {
  .contact {
    padding-block: min(4.4444444444vw, 64px);
  }
  .contact .container {
    gap: min(3.3333333333vw, 48px);
    width: min(50vw, 720px);
  }
}
.contact__header {
  display: flex;
  flex-direction: column;
  gap: max(6.1538461538vw, 23.0769230769px);
  align-items: center;
}
@media (768px <= width) {
  .contact__header {
    gap: min(3.3333333333vw, 48px);
  }
}
.contact__title {
  font-size: max(8.7179487179vw, 32.6923076923px);
  line-height: 1.3;
}
@media (768px <= width) {
  .contact__title {
    font-size: min(2.7777777778vw, 40px);
    line-height: 1.4;
  }
}