@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Noto+Serif+JP:wght@200..900&display=swap");

:root {
  --colorDarkRed: #e33434;
  --colorRed: #f96363;
  --colorWhite: #fff;
  --colorTraBlack: rgba(0, 0, 0, 0.1);
  --colorFooterBrack: #1d1d1d;
  --colorGrad: linear-gradient(to right, var(--colorDarkRed) 0%, var(--colorRed) 100%);
  --colorGray: #f3f3f3;

  --fontDm: "DM Sans", sans-serif;
}

/* 任意のテキストで改行 */
.sp-br-word {
  display: inline-block;
}

/* 表示・非表示 */
@media screen and (max-width: 767px) {
  .sp-hidden {
    display: none !important;
  }
}

@media screen and (min-width: 768px) {
  .pc-hidden {
    display: none !important;
  }
}

/* lp-header */
.lp-header {
  font-weight: 800;
  height: 80px;
  box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.25);
  position: relative;
  z-index: 100;
  background: #fff;
  position: fixed;
  width: 100%;
  @media screen and (max-width: 768px) {
    height: 55px;
  }
}

.header-logo {
  @media screen and (max-width: 768px) {
    width: 166px;
  }
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: 40px;
  @media screen and (max-width: 768px) {
    padding-left: 14px;
  }
}

.headerLink {
  display: flex;
}

.headerLink-inner {
  position: relative;

  &::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
  }
}

@media (any-hover: hover) {
  .lp-header .headerLink-inner:hover {
    &::before {
      opacity: 1;
    }
  }
}

.headerLink p {
  font-size: 2.2rem;
  line-height: 1.545;
  height: 80px;
  padding-inline: 20px;
  color: var(--colorWhite);
  display: flex;
  align-items: center;
  gap: 0.7rem;
  @media screen and (max-width: 768px) {
    font-size: 1.2rem;
    line-height: 1.4;
    letter-spacing: -0.04em;
    text-align: center;
    height: 55px;
    padding-inline: 8px;
    gap: unset;
  }
}

.headerLink p {
  &::after {
    content: "";
    width: 30px;
    height: 30px;
    display: block;
    background: url(../../../assets/images/lp/icon-arrow.svg) no-repeat center / contain;
    @media screen and (max-width: 768px) {
      display: none;
    }
  }
}

.headerLink-download {
  background: var(--colorRed);
}

.headerLink-contact {
  background: var(--colorDarkRed);
}

/* lp-header ここまで*/

/* 共通 */
.lp {
  background-image: unset;
  font-family: "Noto Sans", "Noto Sans JP";
  padding-top: 80px;

  @media screen and (max-width: 768px) {
    padding-top: 55px;
  }
}

.ttlSection-wrap {
  text-align: center;
}

.lpTtl {
  position: relative;
  display: inline-block;

  img {
    vertical-align: middle;
    margin-right: 0.2em;

    @media screen and (max-width: 767px) {
      width: 50%;
    }
  }
}

.lpTtl._ttl1 .lpTtl-inner {
  background: #fff;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.lpTtl._ttl2 {
  &::before {
    mix-blend-mode: exclusion;
  }
}

.lpTtl._ttl3 {
  &::before {
    mix-blend-mode: normal;
  }
}

.lpTtl._ttl4 .lpTtl-inner {
  background: #fff;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.lpTtl._ttl5 {
  &::before {
    mix-blend-mode: normal;
    background: url(../../../assets/images/lp/bg-ttl-yellow.svg) no-repeat center / contain;
  }
}

.lpTtl._ttl5 .lpTtl-inner {
  background: #000;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.lpTtl._ttl6::before {
  mix-blend-mode: exclusion;
}

.lpTtl {
  &::before {
    content: "";
    aspect-ratio: 560 / 270;
    width: 506px;
    display: block;
    background: url(../../../assets/images/lp/bg-ttl.svg) no-repeat center / contain;

    @media screen and (max-width: 768px) {
      width: 314px;
    }
  }
}

.lpTtl-inner {
  font-size: 4.2rem;
  font-weight: bold;
  line-height: 1.2;
  background: var(--colorGrad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  position: absolute;
  top: 39%;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  text-align: center;
  @media screen and (max-width: 768px) {
    font-size: 2.8rem;
    top: 28%;
  }
}

._center {
  text-align: center;
}

/* list */
.lpList-item {
  position: relative;
  font-size: 1.5rem;
  font-weight: 500;
  align-items: center;
  border-bottom: 1px solid var(--colorTraBlack);
  padding-block: 18px;
  line-height: 1.46;
  padding-left: 1.5em;

  &::before {
    content: "";
    width: 15px;
    height: 15px;
    background: var(--colorGrad);
    border-radius: 50%;
    aspect-ratio: 1 /1;
    position: absolute;
    top: 22px;
    left: 0;
  }

  &:first-child {
    border-top: 1px solid var(--colorTraBlack);
  }
}

.lpListSub {
  border-bottom: unset;
  .lpList-item {
    border-bottom: none;
  }

  .lpListSub-txt {
    border-bottom: 1px solid var(--colorTraBlack);
    padding-bottom: 18px;
  }
}

/* button */
.btn-wrap .lp-btn {
  &:last-child {
    margin-bottom: 0;
  }
}

.btn-wrap._flex {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;

  @media screen and (max-width: 767px) {
    gap: 10px;
    flex-direction: column;
  }
}

.btn-wrap._flex .lp-btn {
  margin: unset;
}

.btn-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 16px;
}

.lp-btn {
  width: 466px;
  height: 100px;
  display: grid;
  place-items: center;
  background: var(--colorGrad);
  border-radius: calc(1px / 0);
  position: relative;
  box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.3);
  transition: 0.3s;

  &::before {
    content: "";
    width: calc(100% - 6px);
    height: calc(100% - 6px);
    background: transparent;
    border-radius: calc(1px / 0);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: 0.3s;
  }

  &::after {
    content: "";
    width: clamp(28px, 3vw, 40px);
    height: auto;
    aspect-ratio: 1;
    background: var(--colorWhite);
    mask: url(../../../assets/images/lp/icon-arrow.svg) no-repeat center / contain;
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translateY(-50%);
    z-index: 3;

    @media screen and (max-width: 767px) {
      right: 16px;
    }
  }

  @media screen and (max-width: 768px) {
    width: 297px;
    height: 64px;
  }
}

.lp-btn span {
  display: inline-block;
  font-size: clamp(2.2rem, 2.5vw, 3.4rem);
  font-weight: bold;
  position: relative;
  z-index: 2;
  display: inline-block;
  background: var(--colorWhite);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

@media (any-hover: hover) {
  .lp-btn:hover {
    box-shadow: 0px 0px 18px rgba(0, 0, 0, 0);
  }

  .lp-btn:hover {
    &::before {
      background: #fff;
    }
    &::after {
      background: var(--colorGrad);
    }
  }

  .lp-btn:hover span {
    background: var(--colorGrad);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

/* marker-ttl */
.markerTtl {
  background: var(--colorGrad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

.markerTtl-marker {
  background: url(../../../assets/images/lp/bg-feature-marker.svg) no-repeat center / contain;
  background-repeat: repeat-x;
  background-size: 100% 100%;
  padding-bottom: 1.1em;
}

/* inner */
.inner {
  width: 1100px;
  margin: 0 auto;

  @media screen and (max-width: 1100px) {
    max-width: 1100px;
    width: 100%;
    padding: 0 20px;
  }
}

/* 共通ここまで */

/* fv */
.fv {
  padding: 32px 0 100px;
  background: var(--colorGrad);
  position: relative;

  @media screen and (max-width: 1024px) {
    padding-block: 32px 0;
  }

  &::before {
    content: "";
    width: 150%;
    height: 400px;
    display: block;
    background: linear-gradient(to right, #efefef 0%, #fff 100%);
    position: absolute;
    bottom: -200px;
    left: -25%;
    right: 0;
    transform: rotate(-10deg);
    z-index: 2;

    @media screen and (max-width: 767px) {
      height: 86px;
      bottom: 90px;
    }
  }

  &::after {
    content: "";
    mix-blend-mode: darken;
    width: 100%;
    height: auto;
    aspect-ratio: 1440 / 810;
    background: url(../../../assets/images/lp/bg-fv.webp) no-repeat center / contain;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    @media screen and (max-width: 767px) {
      &::after {
        background: url(../../../assets/images/lp/bg-fv.webp) no-repeat left top / cover;
        height: 100%;
      }
    }
  }
}

.fv-inner {
  position: relative;
  z-index: 3;

  @media screen and (max-width: 1440px) {
    padding-left: 96px;
  }

  @media screen and (max-width: 767px) {
    padding-left: 10px;
  }
}

.fv-img {
  margin-top: -215px;

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    margin-left: 8px;
    margin-top: -10px;
  }

  @media screen and (max-width: 768px) {
    margin-top: -57px;
    margin-left: 37px;
    margin-right: -44px;
    width: 96%;
  }
  img {
    width: auto;
    height: auto;
    max-height: 638px;
  }
}

.fvTtl {
  font-size: clamp(4.3rem, 6vw, 5.3rem);
  font-weight: 700;
  line-height: 1.8;
  color: var(--colorWhite);
  transform: skewX(-8deg);
  position: relative;
  z-index: 10;
  margin-left: 3%;
  margin-top: -22px;

  @media screen and (max-width: 767px) {
    margin-left: 48px;
    transform: skewX(-3deg);
    margin-top: unset;
  }
}

.fvTtl-small {
  font-size: clamp(3.6rem, 5vw, 4.6rem);
  display: inline-block;
  color: var(--colorWhite);
}

.fvTtl-marker {
  position: relative;
  &::before {
    content: "";
    display: block;
    position: absolute;
    bottom: -0.2em;
  }

  &:first-child {
    &::before {
      width: 100%;
      height: auto;
      background: url(../../../assets/images/lp/bg-fv-marker-top.svg) no-repeat center / contain;
      aspect-ratio: 315/20;
    }
  }

  &:nth-of-type(2) {
    &::before {
      width: 100%;
      height: auto;
      background: url(../../../assets/images/lp/bg-fv-marker-bottom.svg) no-repeat center / contain;
      aspect-ratio: 675/25;
    }
  }

  @media screen and (max-width: 767px) {
    &:last-child {
      &::before {
        width: 100%;
        height: auto;
        background: url(../../../assets/images/lp/bg-fv-marker-top.svg) no-repeat center / contain;
        aspect-ratio: 315/20;
      }
    }
  }
}

.fvBadge {
  display: flex;
  justify-content: end;
  align-items: center;
  position: absolute;
  bottom: 7%;
  right: 3vw;
  gap: 8px;

  @media screen and (max-width: 768px) {
    margin-top: -35px;
    margin-left: 10px;
    padding-bottom: 10px;
    justify-content: center;
    position: static;
    bottom: inherit;
    right: inherit;
  }
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    bottom: -7px;
  }

  img {
    aspect-ratio: 1 / 1;
    width: 100%;
    height: auto;
  }
}

.fvBadge-img {
  width: min(20%, 160px);
  @media screen and (max-width: 768px) {
    width: 157px;
    width: 100%;
  }
}

.fv-logo {
  position: absolute;
  top: 0;
  left: 30px;
  z-index: 5;
  rotate: 90deg;
  transform-origin: left;
  width: min(45%, 690px);
  margin-top: -63px;

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    width: min(68%, 522px);
  }

  @media screen and (max-width: 767px) {
    width: min(97%, 362px);
    top: 0px;
    left: 12px;
  }
}

.fvCta {
  background: var(--colorGrad);
  margin-top: -40px;
  margin-inline: auto;
  padding: 30px;
  border-radius: 10px;
  width: 80%;
  position: relative;
  z-index: 5;

  &::before {
    content: "";
    width: calc(100% - 16px);
    height: calc(100% - 16px);
    border-radius: 10px;
    background: linear-gradient(to bottom, #ffffa5 0%, #fff75d 100%);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  @media screen and (max-width: 1920px) {
    margin-top: -120px;
  }

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    margin-top: 19px;
  }

  @media screen and (max-width: 767px) {
    width: 96%;
    margin-top: 0;
    padding: 25px;
  }
}

.fvCta-ttl {
  font-size: clamp(1.5rem, 2vw, 2.6rem);
  font-weight: bold;
  width: fit-content;
  margin: 0 auto 20px;
  padding-inline: 40px;
  position: relative;

  &::before {
    content: "";
    width: 23px;
    height: auto;
    aspect-ratio: 23/36;
    background: url(../../../assets/images/lp/icon-fv-line.svg) no-repeat center / contain;
    position: absolute;
    left: 0;
    top: 0.2em;
  }

  &::after {
    content: "";
    width: 23px;
    height: auto;
    aspect-ratio: 23/36;
    background: url(../../../assets/images/lp/icon-fv-line.svg) no-repeat center / contain;
    position: absolute;
    right: 0.5em;
    top: 0.2em;
    transform: scale(-1, 1);
  }

  @media screen and (max-width: 767px) {
    &::before {
      width: 14px;
    }
    &::after {
      width: 14px;
    }
  }
}
/* fvここまで */

/* issue */
.issue .lpTtl-inner {
  @media screen and (max-width: 768px) {
    width: 100%;
  }
}

.issue {
  padding-block: 500px 115px;
  background: url(../../../assets/images/lp/bg-issue.webp) no-repeat bottom / cover;
  clip-path: polygon(0 32%, 100% 0, 100% 100%, 0 100%);
  margin-top: -347px;

  @media screen and (max-width: 767px) {
    padding-block: 420px 115px;
    clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 100%);
    margin-top: -380px;
  }
}

.issue-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 72px;

  @media screen and (max-width: 767px) {
    grid-template-columns: min(305px, 100%);
    justify-content: center;
    gap: 25px;
  }
}

.issue-list li {
  text-align: center;
  font-size: min(2vw, 2.4rem);
  font-weight: bold;
  line-height: 1.4;
  background: #fff;
  border-radius: 10px;
  padding: 20px;
  position: relative;

  @media screen and (max-width: 767px) {
    font-size: 2.1rem;

    &:nth-child(even) {
      &::before {
        left: 24px;
        right: inherit;
        transform: scale(-1, 1);
      }
    }
  }
}

.issue-list li {
  &::before {
    content: "";
    width: 35px;
    height: 23px;
    background: url(../../../assets/images/lp/deco-fukidashi.svg) no-repeat center / contain;
    position: absolute;
    top: 95%;
    right: 32px;
  }
}

.issue-txtBlock {
  color: #fff;
  font-size: clamp(2.4rem, 2.5vw, 3.2rem);
  font-weight: bold;
  text-align: center;
}

.issue-txt {
  font-size: clamp(2.4rem, 2.5vw, 3.2rem);
}

.issue-txtLg {
  font-size: clamp(3.6rem, 3.8vw, 4.2rem);

  img {
    margin-right: 0.2em;
  }
}

.issue-mark {
  position: relative;
  display: inline-block;
}

.issue-mark {
  &::after {
    content: "";
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 577 / 14;
    background: url(../../../assets/images/lp/bg-issue-marker.svg) no-repeat center / cover;
    position: absolute;
    bottom: -0.2em;
  }
}
/* issueここまで*/

/* function */
.function {
  padding-block: 270px 0;
  background: url(../../../assets/images/lp/bg-function.webp) no-repeat top / contain;
  margin-top: -160px;
}

.functionFeature {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row-reverse;
  gap: 102px;
  margin-bottom: 93px;

  @media screen and (max-width: 767px) {
    flex-direction: column;
    gap: 32px;
    margin-bottom: 55px;
  }
}

.functionFeature-img {
  margin-right: -24vw;

  img {
    aspect-ratio: 894 / 527;
    width: 100%;
    height: auto;
  }

  @media screen and (max-width: 767px) {
    margin-right: 0;
  }
}

.functionList {
  flex-shrink: 0;

  @media screen and (max-width: 767px) {
    width: 100%;
  }
}

.functionList-item {
  font-size: clamp(1.6rem, 2vw, 2.4rem);
  line-height: 1.4;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 20px;
  background: var(--colorGray);
  margin-bottom: 14px;
  padding: clamp(16px, 2vw, 28px) 20px clamp(16px, 2vw, 28px) 24px;
  border-radius: 16px;
  border: 1px solid var(--colorTraBlack);
  position: relative;

  @media screen and (max-width: 767px) {
    border-radius: 10px;
  }
}

.functionList-item::before {
  content: "";
  width: 102px;
  height: 2px;
  background: #dedede;
  position: absolute;
  top: 50%;
  left: 101%;
  transform: translateY(-50%);

  @media screen and (max-width: 767px) {
    left: inherit;
    right: 101%;
  }
}

.functionList-num {
  font-size: clamp(3rem, 3.5vw, 4.2rem);
  font-family: var(--fontDm);
  background: var(--colorGrad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.functionList-circle {
  display: inline-block;
  width: 20px;
  height: auto;
  aspect-ratio: 1;
  background: rgba(255, 217, 217);
  position: absolute;
  top: 50%;
  left: 98%;
  transform: translateY(-50%);
  border-radius: 50%;
  z-index: 3;

  @media screen and (max-width: 767px) {
    left: inherit;
    right: 98.5%;
  }
}

.functionList-circle::before {
  content: "";
  width: 10px;
  height: auto;
  aspect-ratio: 1;
  background: var(--colorGrad);
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

.functionCard {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-content: center;
  column-gap: 44px;
  row-gap: 48px;
  @media screen and (max-width: 768px) {
    grid-template-columns: auto;
  }
}
.functionCard-item {
  align-items: center;
  img {
    border-radius: 8px;
    aspect-ratio: 476 / 252;
    width: 100%;
    height: auto;
  }

  .functionCard-ttl {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.4;
    margin-block: 16px;
    background: var(--colorGrad);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: flex;
    gap: 14px;
    align-items: center;
    margin-block: 24px;

    @media screen and (max-width: 768px) {
      margin-block: 20px;
      letter-spacing: -0.03em;
      font-size: 2rem;
    }
  }

  .functionCard-num {
    font-size: clamp(4rem, 4.5vw, 5rem);
    font-weight: 400;
    letter-spacing: 0.06em;
    font-family: var(--fontDm);
  }
}
/* function ここまで*/

/* select-point */
.selectPoint .inner {
  position: relative;
  z-index: 2;
}

.selectPoint {
  padding-block: 290px 0;
  background: url(../../../assets/images/lp/bg-select.webp) no-repeat top / contain;
  position: relative;
  z-index: 2;

  &::before {
    content: "";
    width: 100%;
    height: 266px;
    background: #efefef;
    clip-path: polygon(100% 0, 0 0, 0 100%);
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    right: 0;
  }

  &::after {
    content: "";
    width: 100%;
    height: calc(100% - 65vw);
    background: #efefef;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
  }

  @media screen and (max-width: 767px) {
    padding-block: 150px 0;
    &::before {
      height: 73px;
    }
  }
}

.selectPoint-txt {
  margin-bottom: 56px;
  text-align: center;
  @media screen and (max-width: 768px) {
    margin-bottom: 40px;
  }
}

.selectPointCard {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-content: center;
  column-gap: 44px;
  row-gap: 48px;
  @media screen and (max-width: 768px) {
    grid-template-columns: auto;
    column-gap: 0;
    row-gap: 40px;
  }
}

.selectPointCard .lpList-item {
  &:first-child {
    border-top: none;
  }
}

.selectPointCard-img {
  position: relative;
  img {
    border-radius: 8px;
    aspect-ratio: 476 / 252;
    width: 100%;
    height: auto;
  }
}

.selectPointCard-ttl {
  display: flex;
  align-items: center;
  color: var(--colorWhite);
  font-size: 2.4rem;
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: 0;
  padding: 0 24px 18px;
  line-height: 1.45;
  gap: 3px;
  @media screen and (max-width: 768px) {
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 20px;
    padding-inline: 16px;
    font-size: 2rem;
    line-height: 1.15;
  }
}

.selectPointCard-num {
  font-size: 3.6rem;
  font-family: var(--fontDm);
  line-height: 1.3;
  letter-spacing: 0.06em;
}

.selectPointCard-ttl.multiple {
  align-items: end;
  gap: 8px;
  @media screen and (max-width: 768px) {
    align-items: flex-start;
  }
}
/* select-point ここまで*/

/* featurePoint */
.featurePoint .markerTtl {
  margin-bottom: 40px;
  font-size: clamp(2.2rem, 2.5vw, 3.2rem);
  line-height: 1.58;
  font-weight: 700;

  &::before {
    mix-blend-mode: normal;
  }
}

.featurePoint {
  padding-block: 230px 260px;
  background: var(--colorGrad);
  clip-path: polygon(100% 0, 100% 96%, 50% 100%, 0 96%, 0 0);
  position: relative;
  z-index: 1;

  &::before {
    content: "";
    width: 1411px;
    height: 955px;
    background: url(../../../assets/images/lp/deco-dot.webp) no-repeat center;
    position: absolute;
    top: 0;
    left: 0;
  }

  &::after {
    content: "";
    width: 1411px;
    height: 955px;
    background: url(../../../assets/images/lp/deco-dot-bottom.webp) no-repeat center;
    position: absolute;
    bottom: 0;
    right: 0;
  }

  @media screen and (max-width: 960px) {
    clip-path: polygon(100% 0, 100% 98%, 50% 100%, 0 98%, 0 0);
  }

  @media screen and (max-width: 767px) {
    clip-path: polygon(100% 0, 100% 99%, 50% 100%, 0 99%, 0 0);
    padding-block: 110px;
  }
}

.featurePoint-inner {
  position: relative;
  z-index: 2;
}

.featurePoint-wrap {
  margin-top: 120px;
  background-color: #fff;
  position: relative;
  border-radius: 16px;
  &::before {
    content: "";
    width: 130px;
    height: 130px;
    border-radius: 50%;
    display: block;
    background: #fff;
    position: absolute;
    margin-top: -50px;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
  }
}

.featurePoint-wrap:first-of-type {
  margin-top: 60px;
}

.featurePoint-cont {
  padding: 45px 50px;
  margin: 0 auto;

  @media screen and (max-width: 767px) {
    padding: 45px 24px;
  }
}

.featurePoint-wrap {
  &::before {
    content: "";
    width: 130px;
    height: auto;
    aspect-ratio: 1;
    background: #fff;
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: -2;
  }
}

.featurePoint-num {
  font-size: clamp(3.4rem, 4.2vw, 5rem);
  line-height: 1.3;
  font-family: var(--fontDm);
  display: inline-block;
  margin: 0 auto;
  background: var(--colorGrad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  position: absolute;
  margin-top: -86px;
  left: 50%;
  transform: translateX(-50%);
}

.featurePointList-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 45px;
  border-bottom: 1px solid var(--colorTraBlack);
  padding-block: 28px;

  &:first-of-type {
    border-top: 1px solid var(--colorTraBlack);
  }

  @media screen and (max-width: 767px) {
    flex-direction: column;
  }
}

.featurePointList-img {
  max-width: 318px;
  align-items: center;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  img {
    aspect-ratio: 318 / 199;
    width: 100%;
    height: auto;
  }
}

.featurePointList-ttl {
  font-size: 2.2rem;
  line-height: 1.1;
  font-weight: 800;
  margin-bottom: 30px;
}
.featurePointList-txt {
  line-height: 2;
}

.featurePoint-catch {
  margin-top: 28px;
  font-size: clamp(2.2rem, 2.5vw, 2.8rem);
  line-height: 1.2;
  font-weight: 700;
  text-align: center;
  background: var(--colorGrad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  &::before {
    content: "";
    width: 208px;
    height: auto;
    display: block;
    aspect-ratio: 208 / 46;
    background: url(../../../assets/images/lp/bg-feature-arrow.svg) no-repeat center / contain;
    margin: 0 auto 16px;
  }
}
/* featurePoint ここまで*/

/* contact */
.contact .ttlSection-wrap {
  margin-left: -14em;
  @media screen and (max-width: 768px) {
    margin-inline: auto;
  }
}

.contact {
  padding-block: 120px 96px;
  background: linear-gradient(to bottom, #ffffa5 0%, #fff75d 100%);
  position: relative;

  &::before {
    content: "";
    width: 100%;
    height: 100%;
    background: url(../../../assets/images/lp/bg-contact.webp) no-repeat center / cover;
    mix-blend-mode: hard-light;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
}

.contact-inner {
  position: relative;
  z-index: 2;
}

.contact-group {
  display: flex;
  align-items: center;
  gap: 40px;

  @media screen and (max-width: 767px) {
    flex-direction: column-reverse;
    gap: 24px;
  }
}

.contact-cont {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
}

.contact-img {
  margin-right: -24vw;

  @media screen and (max-width: 767px) {
    margin-right: 0;
  }

  img {
    aspect-ratio: 840 / 495;
    width: 100%;
    height: auto;
  }
}

.contact-txtBlock {
  @media screen and (max-width: 767px) {
    width: 100%;
  }
}

.contact-txt {
  font-weight: 500;
  margin-bottom: 36px;

  @media screen and (max-width: 767px) {
    font-size: 1.4rem;
    margin-bottom: 24px;
  }
}

.contact-txtBold {
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 40px;

  @media screen and (max-width: 960px) {
    font-size: 1.6rem;
    margin-bottom: 24px;
  }
}

.contact._top {
  padding-block: 180px 96px;
  margin-top: -180px;
  position: relative;

  &::after {
    content: "";
    width: 100%;
    height: 11px;
    background: var(--colorGrad);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
  }
}
/* contact ここまで*/

/* record */
.record {
  padding-block: 100px;
  background: url(../../../assets/images/lp/bg-record.webp) no-repeat top / cover;

  .ttlSection-wrap {
    margin-bottom: 32px;
    @media screen and (max-width: 767px) {
      margin-bottom: 100px;
    }

    img {
      vertical-align: middle;
      margin-right: 0.2em;
    }
  }
}

.recordFeature {
  border: solid 1px var(--colorTraBlack);
  position: relative;
  background: #fff;
  border-radius: 10px;
  padding-inline: 40px 80px;
  margin-bottom: 32px;
  position: relative;

  @media screen and (max-width: 767px) {
    padding: 0;
    border-radius: 0 0 10px 10px;
    border: none;
    box-shadow:
      inset 1px 0 0 0 var(--colorTraBlack),
      inset -1px 0 0 0 var(--colorTraBlack),
      inset 0 -1px 0 0 var(--colorTraBlack);
  }
}

.recordFeature-ttl {
  position: absolute;
  top: -6%;
  left: 50%;
  width: 80%;
  color: #fff;
  font-size: clamp(1.2rem, 2vw, 2.4rem);
  font-weight: 600;
  text-align: center;
  background: var(--colorGrad);
  padding: 0.5rem 1rem;
  border-radius: 10px;
  margin-inline: auto;
  transform: translate(-50%, 0);
  border: 1px solid var(--colorDarkRed);

  @media screen and (max-width: 767px) {
    padding: 1rem 1rem 1rem 11rem;
    border-radius: 10px 10px 0 0;
    width: 100%;
    bottom: 100%;
    top: unset;
  }
}

.recordFeature-group {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  flex-direction: row-reverse;

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    gap: 16px;
  }
}

.recordFeature-block {
  padding-bottom: 40px;

  @media screen and (max-width: 767px) {
    position: relative;
  }
}

.recordFeature-img {
  flex-shrink: 0;
  width: min(25vw, 364px);

  @media screen and (max-width: 767px) {
    width: 149px;
    position: absolute;
    top: -100px;
    left: 0;
  }

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.recordFeature-heading {
  font-size: clamp(1.8rem, 3.5vw, 4.5rem);
  font-weight: bold;
  margin: 0 auto;
  display: inline-block;
  padding-top: 38px;

  &::before {
    mix-blend-mode: normal;
  }

  @media screen and (min-width: 1025px) {
    margin-left: 16px;
  }

  @media screen and (max-width: 767px) {
    text-align: center;
    line-height: 1.4;
    margin-left: 124px;
    display: block;
    padding-top: 0;
  }

  em {
    @media screen and (max-width: 767px) {
      font-size: 3.4rem;
    }
  }
}
/* 
  .markerTtl {
    @media screen and (max-width: 768px) {
      &::before {
        display: none !important;
        height: 0;
        width: 0;
        background: none !important;
        mix-blend-mode: normal !important;
      }
    }
  } */

.recordFeature-heading.markerTtl {
  &::before {
    bottom: 0;
  }
  @media screen and (max-width: 767px) {
    padding-block: 24px;
  }
}

.recordList {
  padding-inline: 16px;
  margin-top: 24px;

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    padding-left: 0;
  }

  @media screen and (max-width: 767px) {
    position: relative;
    margin-top: 0;
  }
}

.recordFeature-img.pc-hidden {
  @media screen and (max-width: 767px) {
    position: absolute;
    bottom: 100%;
    left: 0;
    top: unset;
    img {
      width: auto;
      height: auto;
      object-fit: cover;
    }
  }
}

.recordList-feature {
  display: flex;
  align-items: center;
  gap: 10px;
  @media screen and (max-width: 960px) {
    display: block;

    img {
      width: 64px;
    }
  }

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    display: flex;
  }
}

.recordList-item {
  border-bottom: solid 1px var(--colorTraBlack);
  padding: 1.5rem 0;

  &:first-of-type {
    border-top: solid 1px var(--colorTraBlack);
  }

  &:first-child {
    border-top: solid 1px var(--colorTraBlack);
  }

  @media screen and (max-width: 767px) {
    text-align: center;
  }
}

.recordList-circle {
  color: #fff;
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
  display: grid;
  place-items: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--colorGrad);
  flex-shrink: 0;

  @media screen and (max-width: 767px) {
    width: 100%;
    height: auto;
    border-radius: 40px;
    padding: 0.8em;
    margin-bottom: 16px;
  }
}

.recordList-num {
  font-size: clamp(2.4rem, 3.8vw, 4.5rem);
  font-weight: bold;

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    font-size: clamp(2.4rem, 3.6vw, 4.5rem);
  }

  @media screen and (max-width: 767px) {
    display: inline-block;
  }
}

.recordList-num em {
  color: var(--colorRed);
  padding-right: 0.2em;
}

.recordList-num em span {
  font-size: clamp(4rem, 6vw, 7.8rem);
  font-family: var(--fontDm);
  letter-spacing: 0.06em;
  line-height: 1.2;
}

.recordList-deco {
  @media screen and (max-width: 767px) {
    display: inline-block;
  }
}

.recordList-txt {
  @media screen and (max-width: 767px) {
    margin-top: 16px;
  }
}

.recordCompany {
  background: #fff;
  border: solid 1px var(--colorTraBlack);
  border-radius: 10px;
  padding: 3rem 1rem;
}

.recordCompany-ttl {
  font-size: clamp(2.2rem, 2.4vw, 2.6rem);
  font-weight: 600;
  text-align: center;
  margin-bottom: 2rem;

  &::after {
    content: "";
    width: 50px;
    height: 4px;
    background: var(--colorGrad);
    display: block;
    margin: 0 auto;
  }
}

.recordCompany-txt {
  text-align: center;
  font-weight: bold;
}

/* record ここまで*/

/* compare */
.compare {
  background: var(--colorGray);
  padding-block: 50px 80px;
}

.compareImg {
  overflow-x: auto;
}

.compareImg-inner {
  margin-bottom: 20px;
  @media screen and (max-width: 768px) {
    margin-bottom: 30px;
    width: 800px;
  }
  img {
    width: 100%;
  }
}

.compare-txt {
  text-align: right;
  @media screen and (max-width: 768px) {
    text-align: center;
  }
}

/* compare ここまで*/

/* usage */
.usage {
  padding-block: 30px;
  position: relative;

  &::before {
    content: "";
    width: 1411px;
    height: 955px;
    background: url(../../../assets/images/lp/deco-dot.webp) no-repeat center;
    position: absolute;
    top: 0;
    left: 0;
    mix-blend-mode: exclusion;
    opacity: 0.4;
    z-index: -1;
  }

  &::after {
    content: "";
    width: 100%;
    height: auto;
    aspect-ratio: 1440 / 122;
    background: #fff;
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    right: 0;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    z-index: 2;
  }

  @media screen and (max-width: 767px) {
    padding-block: 30px 64px;
  }
}

.usageTxt {
  font-size: clamp(1.8rem, 2.4vw, 2.8rem);
  font-weight: bold;
  text-align: center;
  margin-bottom: 78px;

  @media screen and (max-width: 767px) {
    margin-bottom: 40px;
  }
}

.usageTxt-markerTop {
  background: url(../../../assets/images/lp/bg-usage-marker-top.svg) no-repeat center / contain;
  background-repeat: repeat-x;
  background-size: 100% 100%;
  padding-bottom: 1.7em;
}

.usageTxt-markerBottom {
  background: url(../../../assets/images/lp/bg-usage-marker-bottom.svg) no-repeat center / contain;
  background-repeat: repeat-x;
  background-size: 100% 100%;
  padding-bottom: 1.7em;
}

/* lpSlide */
.lpSlide-ttl {
  font-size: min(3vw, 3.6rem);
  font-weight: bold;
  text-align: center;
  margin-bottom: 48px;

  @media screen and (max-width: 767px) {
    display: none;
  }
}

.lpSlide-inner {
  display: flex;
  align-items: center;
  gap: 48px;

  @media screen and (max-width: 767px) {
    flex-direction: column;
    gap: 24px;
  }
}

.lpSlide-img {
  flex-shrink: 0;
  border-radius: 10px;
  overflow: hidden;

  @media screen and (max-width: 767px) {
    width: 100%;
    height: auto;
    aspect-ratio: 305/170;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

.lpSlide-item {
  background: #fff;
  border: solid 1px #dedede;
  border-radius: 20px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
  position: relative;

  &::before {
    content: "";
    width: 125px;
    height: 6px;
    background: var(--colorGrad);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
}

.slick-list {
  padding: 0px !important;
}
.slick-slide {
  padding: 0px !important;
  margin: 10px 20px;
}

.slick-arrow {
  border-radius: 50%;
  z-index: 10;
  width: 65px !important;
  height: auto !important;
  aspect-ratio: 1;

  @media screen and (max-width: 767px) {
    width: 47px !important;
    top: inherit !important;
    bottom: -88px;
  }
}

.slick-prev {
  @media screen and (max-width: 767px) {
    left: 80px !important;
  }
}

.slick-next {
  transform: translate(0, -50%) scale(-1) !important;
  @media screen and (max-width: 767px) {
    right: 80px !important;
  }
}

.slick-arrow::before {
  content: "" !important;
  opacity: 1 !important;
  width: 100%;
  height: 100%;
  background: url(../../../assets/images/lp/icon-arrow-black.svg) no-repeat center / contain !important;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  border-radius: 50%;
  transition: 0.3s;

  @media screen and (max-width: 767px) {
    transform: translate(-100%, -50%);
  }
}

@media (any-hover: hover) {
  .slick-arrow:hover::before {
    background: url(../../../assets/images/lp/icon-arrow-white.svg) no-repeat center / contain !important;
  }
}

.slick-dots {
  @media screen and (max-width: 767px) {
    bottom: -55px !important;
  }
}

.slick-dots li {
  @media screen and (max-width: 768px) {
    margin: 0 !important;
  }
}

.slick-dots li button:before {
  font-size: 10px !important;
}

.slick-dots li.slick-active button:before {
  color: var(--colorDarkRed) !important;
}

.lpSlide-group {
  padding: 50px;
  position: relative;

  @media screen and (max-width: 767px) {
    padding: 16px;
  }
}

.lpSlide-badge {
  color: #fff;
  font-size: clamp(1.8rem, 2vw, 2.4rem);
  font-weight: bold;
  background: var(--colorGrad);
  border-radius: 40px;
  padding: 0 3rem;
  width: fit-content;
  margin-bottom: 1rem;

  @media screen and (max-width: 767px) {
    position: absolute;
    top: 24px;
    left: 24px;
  }
}

.lpSlide-scene {
  font-size: 2.2rem;
  font-weight: bold;
  margin-bottom: 1rem;

  @media screen and (max-width: 767px) {
    font-size: 2rem;
  }
}

.lpSlideTxtList {
  margin-bottom: 20px;
}

.lpSlideTxtList-item {
  font-size: clamp(1.6rem, 1.8vw, 2rem);
  font-weight: bold;
  text-indent: -1.5em;
  padding-left: 1.5em;
  border-bottom: solid 1px var(--colorTraBlack);
  padding-block: 0.5em;

  &:first-child {
    border-top: solid 1px var(--colorTraBlack);
  }

  &::before {
    content: "";
    width: 14px;
    height: 12px;
    display: inline-block;
    background: url(../../../assets/images/lp/icon-check.svg) no-repeat center / contain;
    vertical-align: middle;
    margin-right: 1rem;
  }
}

.lpSlide-block {
  background: #f6f6f6;
  border: solid 1px #dedede;
  border-radius: 10px;
  padding: 2em;
}

.lpSlide-after {
  color: var(--colorDarkRed);
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 1rem;

  @media screen and (max-width: 767px) {
    font-size: 1.8rem;
  }
}
/* usage ここまで*/

/* case */
.case {
  padding-block: 170px;
  background: var(--colorDarkRed);
  position: relative;
  z-index: 1;

  @media screen and (max-width: 767px) {
    padding-block: 72px;
  }

  &::before {
    content: "";
    width: 1411px;
    height: 955px;
    background: url(../../../assets/images/lp/deco-dot.webp) no-repeat center;
    position: absolute;
    top: 0;
    left: 0;
  }

  &::after {
    content: "";
    width: 1411px;
    height: 955px;
    background: url(../../../assets/images/lp/deco-dot-bottom.webp) no-repeat center;
    position: absolute;
    bottom: 0;
    right: 0;
  }

}

.case-inner {
  position: relative;
  z-index: 2;
}

.case-cont {
  background: #fff;
  border-radius: 10px;
  padding: 50px;

  @media screen and (max-width: 767px) {
    padding: 16px;
  }

  &:not(:last-child) {
    margin-bottom: 48px;
  }

}

.caseAbove {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  margin-bottom: 2rem;

  @media screen and (max-width: 960px) {
    align-items: center;
  }
  @media screen and (max-width: 767px) {
    flex-direction: column;
    gap: 24px;
  }
}
.caseAbove-figure {
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}

.caseAbove-logo {
  border-radius: 10px 0 0 0;
  position: absolute;
  bottom: 0;
  right: 0;
  overflow: hidden;
}

.caseAbove-img {
  width: min(40vw, 440px);
  overflow: hidden;
  border-radius: 10px;

  @media screen and (max-width: 767px) {
    width: 100%;
  }

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.caseAbove-company {
  color: var(--colorRed);
  font-size: clamp(2rem, 2.5vw, 3.2rem);
  font-weight: bold;
  margin-bottom: 1rem;
}

.caseAbove-desc {
  font-size: 1.4rem;
  font-weight: 500;
  padding-bottom: 1em;
  border-bottom: solid 1px #dedede;
}

.caseAbove-voice {
  color: var(--colorRed);
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 1rem;
  margin-top: 1em;
  padding-left: 32px;
  position: relative;

  @media screen and (max-width: 767px) {
    font-size: 1.8rem;

    &::before {
      display: none;
    }
  }
}

.caseAbove-voice {
  &::before {
    content: "";
    width: 102px;
    height: 2px;
    background: #dedede;
    position: absolute;
    top: 50%;
    right: 100%;
    transform: translateY(-50%);
  }
}

.caseAbove-circle {
  display: inline-block;
  width: 20px;
  height: auto;
  aspect-ratio: 1;
  background: rgba(255, 217, 217);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  border-radius: 50%;
  z-index: 3;
}

.caseAbove-circle {
  &::before {
    content: "";
    width: 10px;
    height: auto;
    aspect-ratio: 1;
    background: var(--colorGrad);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
  }
}

.caseAbove-comment {
  font-size: 1.4rem;
  font-weight: 500;
  padding-bottom: 1em;
  border-bottom: solid 1px #dedede;
}

.caseBelow {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;

  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
    gap: 78px;
  }
}

.caseBelow-ttl {
  color: #fff;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  border-radius: 40px;
  margin-bottom: 10px;

  &._black {
    background: #363636;
  }

  &._pink {
    background: var(--colorGrad);
  }
}

.caseBelow-list {
  background: #f7f7f7;
  border: solid 1px #dedede;
  border-radius: 10px;
  padding: 1.5rem;
}

.caseBelow-item {
  font-size: 1.4rem;
  font-weight: 500;
  text-indent: -2em;
  padding-left: 2em;
  padding-block: 1.2em;

  &:not(:last-child) {
    border-bottom: solid 1px #dedede;
  }

  &::before {
    content: "";
    width: 14px;
    height: 12px;
    display: inline-block;
    background: url(../../../assets/images/lp/icon-check.svg) no-repeat center / contain;
    vertical-align: middle;
    margin-right: 1rem;
  }
}

.caseBelow-list._black .caseBelow-item {
  &::before {
    display: inline-block;
    background: #1d1d1d;
    mask: url(../../../assets/images/lp/icon-check.svg) no-repeat center / contain;
  }
}

.caseBelowBack {
  position: relative;

  &::before {
    content: "";
    width: 26px;
    height: 33px;
    background: linear-gradient(to left, rgba(231, 60, 60, 1) 0%, rgba(231, 60, 60, 0) 100%);
    position: absolute;
    top: 3px;
    left: calc(100% + 12px);
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
  }

  @media screen and (max-width: 767px) {
    &::before {
      width: 35px;
      height: 148px;
      top: calc(100% - 32px);
      left: 50%;
      transform: translateX(-50%) rotate(90deg);
    }
  }
}

/* case ここまで*/

/* lp-footer*/
.lp-footer {
  font-weight: 600;
  background: var(--colorFooterBrack);
  color: var(--colorWhite);
  padding: 28px;
  @media screen and (max-width: 768px) {
    padding: 32px;
  }
  .lpFooter-inner {
    margin: 0 auto;
  }
  .lpFooter-cont {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin-bottom: 24px;
    @media screen and (max-width: 768px) {
      flex-direction: column;
      align-items: baseline;
      margin-bottom: 18px;
      font-size: 1.4rem;
      line-height: 1.3;
    }
  }
  .lpFooter-company {
    font-size: 1.8rem;
    line-height: 1.7;
  }
  .lpFooter-access,
  .lpFooter-address {
    display: block;
  }

  .lpFooter-access {
    @media screen and (max-width: 768px) {
      margin-bottom: 4px;
    }
  }
  .lpFooter-copy {
    display: block;
    text-align: center;
  }
}

/* lp-footerここまで*/
