:root {
  --color-text: #242426;
  --color-blue: #0b50ae;
  --color-primary: #007ee5;
  --color-teal: #17b4c8;
  --color-bg: #f7f8f9;
  --color-line: #e6eaed;
  --font-ja: "Noto Sans JP", sans-serif;
  --font-en: "Figtree", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--color-text);
  font-family: var(--font-ja);
  letter-spacing: 0;
  overflow-x: hidden;
}

body.is-modal-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

figure {
  margin: 0;
}

.SiteHeader {
  align-items: center;
  background: transparent;
  display: flex;
  height: min(5.333vw, 80px);
  justify-content: space-between;
  left: 0;
  padding: min(1.867vw, 28px) min(2.667vw, 40px) 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  transition: height 0.24s ease, padding 0.24s ease;
  transform: translateZ(0);
  width: 100%;
  z-index: 20;
}

.SiteHeader::before {
  -webkit-backdrop-filter: blur(min(0.833vw, 12.5px));
  backdrop-filter: blur(min(0.833vw, 12.5px));
  background: rgba(255, 255, 255, 0.6);
  content: "";
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transition: opacity 0.24s ease;
  will-change: opacity;
  z-index: 0;
}

.SiteHeader.is-scrolled {
  box-shadow: none;
  height: min(6.133vw, 92px);
  padding: min(1.333vw, 20px) min(2.667vw, 40px);
}

.SiteHeader.is-scrolled::before {
  opacity: 1;
}

.SiteHeader__Logo,
.Footer__Logo {
  align-items: center;
  display: flex;
  gap: 0.669vw;
  line-height: 1;
}

.SiteHeader__Logo {
  gap: min(0.669vw, 10.035px);
}

.SiteHeader__LogoMark,
.Footer__LogoMark {
  display: block;
  height: auto;
  width: 3.037vw;
}

.SiteHeader__LogoMark {
  width: min(3.037vw, 45.555px);
}

.SiteHeader__LogoTextImage,
.Footer__LogoTextImage {
  display: block;
  height: auto;
  width: 14.761vw;
}

.SiteHeader__LogoTextImage {
  width: min(14.761vw, 221.415px);
}

.SiteHeader__LogoSp,
.SiteHeader__SpActions,
.SpMenu,
.Hero__TitleSp,
.Download__TitleSp,
.Partner__TitleSp,
.StoreButtons,
.Download__StoreButtons {
  display: none;
}

.SiteHeader__Nav {
  align-items: center;
  display: flex;
  gap: min(2.667vw, 40px);
  margin-left: auto;
}

.SiteHeader__Logo,
.SiteHeader__Nav,
.SiteHeader .Button,
.SiteHeader__SpActions {
  pointer-events: auto;
  position: relative;
  z-index: 1;
}

.SiteHeader__NavLink {
  font-size: clamp(12px, 1vw, 15px);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.45;
}

.Button {
  align-items: center;
  background: var(--color-blue);
  border-radius: 0.8vw;
  color: #fff;
  display: inline-flex;
  gap: 0.533vw;
  justify-content: center;
  min-height: 4.267vw;
  padding: 1.133vw 5.2vw 1.2vw;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.Button:hover {
  background: #083f88;
  transform: translateY(-0.133vw);
}

.Button--Small {
  border-radius: min(0.8vw, 12px);
  margin-left: min(2.667vw, 40px);
  min-height: min(3.467vw, 52px);
  padding: min(0.8vw, 12px) min(1.7vw, 25.5px) min(0.933vw, 14px);
}

.Button--Dark {
  background: #242426;
  min-height: 4.933vw;
  padding-bottom: 1.533vw;
  padding-top: 1.467vw;
}

.Button__Icon {
  display: inline-block;
  height: 1.209vw;
  position: relative;
  width: 1.533vw;
}

.Button__Icon::before,
.Button__Icon::after {
  background: currentColor;
  content: "";
  display: block;
  position: absolute;
}

.Button__Icon::before {
  height: 0.907vw;
  left: 0.264vw;
  mask: url("../img/icon-download-arrow.svg") center / 100% 100% no-repeat;
  top: 0;
  width: 0.604vw;
}

.Button__Icon::after {
  height: 0.378vw;
  left: 0;
  mask: url("../img/icon-download-tray.svg") center / 100% 100% no-repeat;
  top: 0.831vw;
  width: 1.133vw;
}

.Button--Small .Button__Icon {
  height: min(1vw, 15px);
  width: min(0.938vw, 14.07px);
}

.Button--Small .Button__Icon::before {
  height: min(0.75vw, 11.25px);
  left: min(0.219vw, 3.285px);
  width: min(0.5vw, 7.5px);
}

.Button--Small .Button__Icon::after {
  height: min(0.313vw, 4.695px);
  top: min(0.688vw, 10.32px);
  width: min(0.938vw, 14.07px);
}

.Button__Text {
  font-size: clamp(13px, 1.333vw, 20px);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  transform: translateY(-0.067vw);
  white-space: nowrap;
}

.Button--Small .Button__Text {
  font-size: clamp(12px, 1.2vw, 18px);
}

.Hero {
  --hero-progress: 0;
  background: #fff;
  padding: 12.667vw 2vw 6.467vw;
}

.Hero__Inner {
  text-align: center;
}

.Hero__Title {
  font-size: clamp(40px, 4vw, 60px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.4;
}

.Hero__Lead {
  font-size: clamp(14px, 1.113vw, 16.7px);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.4;
  margin-top: 1.467vw;
}

.Hero__LeadBreakSp {
  display: none;
}

.Hero__Button {
  margin-top: 2.267vw;
  padding-left: 5vw;
  padding-right: 5vw;
}

.Hero__Visual {
  background: #e9ecef;
  border-radius: 2vw;
  height: 38.533vw;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2.933vw;
  overflow: hidden;
  position: relative;
  transform: translate3d(calc(var(--hero-progress) * 1.267vw), 0, 0);
  will-change: transform;
  width: 96vw;
}

.Hero__Lines {
  background: url("../img/bg-hero-lines-pc.svg") center / 100% 100% no-repeat;
  display: block;
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

.Hero__Stripe {
  display: none;
  background: linear-gradient(180deg, #fff 14%, rgba(255, 255, 255, 0) 100%);
  height: 44vw;
  opacity: 0.8;
  position: absolute;
  transform: rotate(47deg);
  width: 10vw;
}

.Hero__Stripe--Left {
  left: 24vw;
  top: 7.8vw;
}

.Hero__Stripe--Right {
  left: 68vw;
  top: -5vw;
}

.Hero__Circle {
  border-radius: 999px;
  display: block;
  position: absolute;
  z-index: 2;
}

.Hero__Circle--Orange {
  background: #ff7100;
  height: 17.533vw;
  left: 6.067vw;
  top: 4.267vw;
  width: 17.533vw;
}

.Hero__Circle--Blue {
  background: var(--color-primary);
  height: 8.133vw;
  left: 69.267vw;
  top: 4.267vw;
  width: 8.133vw;
  z-index: 4;
}

.Hero__Circle--Teal {
  background: var(--color-teal);
  height: 19.933vw;
  right: 4.867vw;
  top: 20.867vw;
  width: 19.933vw;
}

.Hero__Image {
  left: -1.332vw;
  max-width: none;
  position: absolute;
  top: -11vw;
  transform: translate3d(0, calc(var(--hero-progress) * -22.2vw), 0);
  will-change: transform;
  width: 98.13vw;
  z-index: 3;
}

@media (prefers-reduced-motion: reduce) {
  .Hero__Visual,
  .Hero__Image {
    transform: none;
  }
}

.About {
  padding: 5.533vw 6.067vw 9.045vw;
}

.About,
.Feature {
  scroll-margin-top: min(1.333vw, 20px);
}

.About__Inner {
  display: grid;
  gap: 4vw 17.133vw;
  grid-template-columns: 28.6vw 43.6vw;
}

.SectionHeading {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 1.333vw;
}

.SectionHeading__Label {
  align-items: center;
  display: flex;
  font-family: var(--font-en);
  font-size: clamp(14px, 1.2vw, 18px);
  font-weight: 600;
  line-height: 1;
}

.SectionHeading__Label::before {
  background: var(--color-blue);
  border-radius: 999px;
  content: "";
  display: inline-block;
  height: 0.2vw;
  margin-right: 0.8vw;
  width: 1.467vw;
}

.SectionHeading__Title {
  font-size: clamp(32px, 3.067vw, 46px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  white-space: nowrap;
}

.About__Heading {
  align-self: start;
}

.About .SectionHeading__Title {
  letter-spacing: 0;
}

.About__Text {
  align-self: start;
  font-size: clamp(14px, 1vw, 15px);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.8;
  margin-top: 2.867vw;
  min-height: 6.093vw;
  padding-bottom: 0.333vw;
  text-align: justify;
}

.About__Cards {
  display: grid;
  gap: 1.333vw;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, 44vw);
  height: 31.467vw;
  margin-left: 0;
  width: 89.333vw;
}

.AboutCard {
  background: var(--color-bg);
  border-radius: 2vw;
  height: 15.067vw;
  position: relative;
}

.AboutCard__Icon {
  display: block;
  flex: 0 0 auto;
  height: auto;
  max-width: none;
  object-fit: contain;
  position: absolute;
}

.AboutCard__Icon--Id {
  left: 5.333vw;
  top: 4vw;
  width: 10.267vw;
}

.AboutCard__Icon--Shield {
  left: 5.9vw;
  top: 3.733vw;
  width: 9.067vw;
}

.AboutCard__Icon--Coin {
  left: 5.791vw;
  top: 2.892vw;
  width: 9.283vw;
}

.AboutCard__Icon--Connect {
  left: 6.378vw;
  top: 3.167vw;
  width: 8.112vw;
}

.AboutCard__Text {
  font-size: clamp(20px, 1.733vw, 26px);
  font-weight: 700;
  left: 20.933vw;
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.AboutCard__TextSp {
  display: none;
}

.Feature {
  background: var(--color-bg);
  height: 500vh;
  position: relative;
  --feature-offset: 0px;
  --feature-gauge-fill: 20%;
  --feature-progress: 0;
}

.Feature__HeadingArea {
  padding: 5.667vw 6.067vw 0;
  position: relative;
  z-index: 2;
}

.Feature__Sticky {
  align-items: center;
  display: flex;
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
  padding: 0 6.067vw 2vw;
  position: sticky;
  top: 0;
}

.Feature__Decor {
  display: block;
  height: 29.933vw;
  left: 70.067vw;
  opacity: var(--feature-heading-decor-opacity, 1);
  overflow: hidden;
  position: absolute;
  top: 0;
  transition: opacity 0.24s ease;
  width: 29.933vw;
}

.Feature__Decor--Sticky {
  left: 74vw;
  opacity: clamp(
    0,
    calc((1 - var(--feature-heading-decor-opacity, 1)) * 1.2),
    1
  );
  pointer-events: none;
  position: absolute;
  top: -2.667vw;
  transition: opacity 0.24s ease;
  z-index: 0;
}

.Feature__Decor::before {
  animation: FeatureDecorRotate 26s linear infinite;
  background: url("../img/decor-feature-text.svg") center / contain no-repeat;
  content: "";
  height: 40.355vw;
  left: 3.667vw;
  opacity: 1;
  position: absolute;
  top: -13.533vw;
  transform-origin: center;
  width: 40.067vw;
}

@keyframes FeatureDecorRotate {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.Feature__Inner {
  position: relative;
  width: 100%;
  z-index: 1;
}

.FeatureSlider {
  height: min(40.533vw, 608px);
  margin-top: 0;
  overflow: hidden;
  position: relative;
}

.FeatureSlider__Track {
  height: 100%;
  position: relative;
}

.FeatureBlock {
  align-items: center;
  display: grid;
  gap: 8.533vw;
  grid-template-columns: 20.333vw 42.933vw;
  inset: 0;
  box-sizing: border-box;
  min-width: 0;
  padding-left: 14.4vw;
  padding-right: 0;
  pointer-events: none;
  position: absolute;
}

.FeatureBlock__Text {
  transform: translate3d(0, -0.2vw, 0);
}

.FeatureBlock__Text > * {
  opacity: var(--feature-text-opacity, 0);
  transform: translate3d(calc(var(--feature-text-offset, 1) * -4.8vw), 0, 0);
  transition: opacity 0.2s ease,
    transform 0.56s cubic-bezier(0.18, 0.06, 0.23, 1);
  will-change: opacity, transform;
}

.FeatureBlock.is-active .FeatureBlock__Number {
  transition-delay: 0s;
}

.FeatureBlock.is-active .FeatureBlock__Title {
  transition-delay: 0.08s;
}

.FeatureBlock.is-active .FeatureBlock__Description {
  transition-delay: 0.15s;
}

.FeatureBlock.is-active {
  pointer-events: auto;
}

.Feature:not([data-feature-active]) .FeatureBlock:first-child {
  --feature-image-opacity: 1;
  --feature-image-shift: 0;
  --feature-text-opacity: 1;
  --feature-text-offset: 0;
}

.FeatureBlock__Image {
  display: block;
  height: min(40.533vw, 608px);
  opacity: var(--feature-image-opacity, 0);
  object-fit: contain;
  transform: translate3d(0, 0, 0);
  transition: none;
  width: 20.333vw;
}

.FeatureBlock.is-active .FeatureBlock__Image {
  transition: opacity 0.42s ease;
}

/*
 * Restore the previous scroll-linked image motion with:
 * transform: translate3d(0, calc(var(--feature-image-shift, 0) * 44vw), 0);
 * transition: opacity 0.22s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
 */

.FeatureBlock__Number {
  align-items: baseline;
  display: flex;
  gap: 0;
  margin-bottom: 1.867vw;
  width: max-content;
}

.FeatureBlock__Text > .FeatureBlock__Number {
  opacity: var(--feature-text-opacity, 0);
  transform: none;
  transition: opacity 0.2s ease;
  will-change: opacity;
}

.FeatureBlock__Number > span {
  font-family: var(--font-en);
  font-size: clamp(16px, 1.333vw, 20px);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1;
}

.FeatureBlock__Number > .FeatureBlock__NumberTotal {
  font-size: clamp(16px, 1.333vw, 20px);
  margin-left: 0.267vw;
  margin-top: 0;
  order: 2;
  width: 1.667vw;
}

.FeatureBlock__Number > .FeatureBlock__NumberCurrent {
  display: inline-block;
  font-size: clamp(28px, 2.667vw, 40px);
  height: auto;
  overflow: visible;
  width: 2.867vw;
}

.FeatureBlock__NumberCurrent span {
  display: block;
  transform: none;
}

.FeatureBlock.is-active .FeatureBlock__NumberCurrent span,
.Feature:not([data-feature-active])
  .FeatureBlock:first-child
  .FeatureBlock__NumberCurrent
  span {
  transform: none;
}

.FeatureBlock__Number::after {
  align-self: center;
  background: #0b50ae;
  border-radius: 999px;
  content: "";
  height: 2px;
  margin-left: 0.8vw;
  margin-top: 0;
  order: 1;
  flex: 0 0 auto;
  transform: rotate(-45deg);
  width: 2.451vw;
}

.FeatureBlock__Title {
  font-size: clamp(34px, 3.2vw, 48px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  white-space: nowrap;
}

.FeatureBlock__Description {
  font-size: clamp(14px, 1.067vw, 16px);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.8;
  margin-top: 1.867vw;
}

@media (min-width: 1101px) {
  .FeatureBlock__Text {
    height: min(19.785vw, 296.775px);
    min-height: min(19.785vw, 296.775px);
  }
}

.UseCase {
  overflow: hidden;
  padding: 9.333vw 0 12.8vw 5.2vw;
  position: relative;
}

.UseCase__Head {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  padding-right: 5.733vw;
}

.UseCase__Arrows {
  display: flex;
  gap: 1.667vw;
  margin-top: 2.8vw;
}

.UseCase__Arrow {
  background: var(--color-bg);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  display: block;
  height: 3.333vw;
  padding: 0;
  position: relative;
  width: 3.333vw;
}

.UseCase__Arrow::after {
  border-right: 0.133vw solid var(--color-text);
  border-top: 0.133vw solid var(--color-text);
  content: "";
  height: 0.667vw;
  left: 1.2vw;
  position: absolute;
  top: 1.267vw;
  transform: rotate(45deg);
  width: 0.667vw;
}

.UseCase__Arrow--Prev::after {
  left: 1.4vw;
  transform: rotate(-135deg);
}

.UseCase__Arrow:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

.UseCase__List {
  display: flex;
  gap: 4vw;
  margin-left: -5.2vw;
  margin-top: 4.333vw;
  overflow-x: auto;
  padding-bottom: 2vw;
  padding-left: 5.2vw;
  scrollbar-width: none;
  width: calc(100% + 5.2vw);
}

.UseCase__List::after {
  content: "";
  flex: 0 0 63.333vw;
}

.UseCase__List::-webkit-scrollbar {
  display: none;
}

.UseCaseCard {
  border-right: 1px solid var(--color-line);
  flex: 0 0 41.867vw;
  padding-right: 2vw;
}

.UseCaseCard__ImageFrame {
  aspect-ratio: 598 / 398;
  border-radius: 0;
  height: 26.533vw;
  margin: 0;
  overflow: hidden;
  object-fit: cover;
  width: 39.867vw;
}

.UseCaseCard__Image {
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

.UseCaseCard__Body {
  padding-top: 1.867vw;
}

.UseCaseCard__Number {
  float: left;
  font-family: var(--font-en);
  font-size: clamp(16px, 1.333vw, 20px);
  font-weight: 700;
  line-height: 2.1;
  margin-right: 2.733vw;
}

.UseCaseCard__Title {
  font-size: clamp(22px, 1.867vw, 28px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.5;
}

.UseCaseCard__Text {
  clear: both;
  font-size: clamp(13px, 1.067vw, 16px);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.8;
  margin-left: 4.267vw;
  margin-top: 1.133vw;
  text-align: justify;
}

.UseCaseCard__Link {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--color-text);
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: clamp(13px, 1.067vw, 16px);
  font-weight: 700;
  gap: 0.667vw;
  line-height: 1;
  margin-left: 4.267vw;
  margin-top: 1.2vw;
  padding: 0;
}

.UseCaseCard__Link::after {
  background: url("../img/icon-link-arrow.svg") center / contain no-repeat;
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  height: 1.2vw;
  width: 1.2vw;
}

.UseCase__Pagination {
  bottom: 10.533vw;
  display: flex;
  gap: 0.667vw;
  left: 5.2vw;
  position: absolute;
}

.UseCase__PaginationBar {
  background: var(--color-line);
  display: block;
  height: 0.267vw;
  transition: background-color 0.2s ease;
  width: 3.2vw;
}

.UseCase__PaginationBar--Active {
  background: var(--color-primary);
}

.UseCaseModal[hidden] {
  display: none;
}

.UseCaseModal {
  align-items: center;
  background: rgba(36, 36, 38, 0.7);
  backdrop-filter: blur(4.5px);
  display: flex;
  inset: 0;
  justify-content: center;
  overflow-y: auto;
  padding: 4vw 0;
  position: fixed;
  z-index: 130;
}

.UseCaseModal__Backdrop {
  background: transparent;
  border: 0;
  cursor: default;
  inset: 0;
  padding: 0;
  position: fixed;
}

.UseCaseModal__Frame {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 2vw;
  position: relative;
  width: 59.067vw;
  z-index: 1;
}

.UseCaseModal__Frame:focus {
  outline: none;
}

.UseCaseModal__Card {
  background: #fff;
  border-radius: 2vw;
  padding: 4vw;
  width: 100%;
}

.UseCaseModal__Inner,
.UseCaseModal__Content {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.UseCaseModal__Inner {
  gap: 2.667vw;
}

.UseCaseModal__Content {
  gap: 2.667vw;
}

.UseCaseModal__Label {
  align-items: center;
  display: flex;
  gap: 0.8vw;
}

.UseCaseModal__LabelLine {
  background: var(--color-primary);
  border-radius: 999px;
  display: block;
  height: 0.2vw;
  width: 1.467vw;
}

.UseCaseModal__LabelText {
  font-family: var(--font-en);
  font-size: clamp(14px, 1.2vw, 18px);
  font-weight: 600;
  line-height: 1;
  margin: 0;
}

.UseCaseModal__Title {
  font-size: clamp(28px, 2.4vw, 36px);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: normal;
  margin: 0;
  width: 100%;
}

.UseCaseModal__Text {
  font-size: clamp(14px, 1.067vw, 16px);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.8;
  text-align: justify;
  width: 100%;
}

.UseCaseModal__Text p {
  margin: 0;
}

.UseCaseModal__Text p + p {
  margin-top: 1.8em;
}

.UseCaseModal__Close {
  align-items: center;
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--font-en);
  font-size: clamp(13px, 1.067vw, 16px);
  font-weight: 600;
  gap: 0.633vw;
  line-height: 1;
  padding: 0;
}

.UseCaseModal__Close::after {
  background: linear-gradient(
      45deg,
      transparent calc(50% - 1px),
      #fff calc(50% - 1px),
      #fff calc(50% + 1px),
      transparent calc(50% + 1px)
    ),
    linear-gradient(
      -45deg,
      transparent calc(50% - 1px),
      #fff calc(50% - 1px),
      #fff calc(50% + 1px),
      transparent calc(50% + 1px)
    );
  content: "";
  display: block;
  height: 0.833vw;
  width: 0.833vw;
}

.UseCaseModal__Close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

.DownloadModal[hidden] {
  display: none;
}

.DownloadModal {
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: 110;
}

.DownloadModal__Backdrop {
  background: transparent;
  border: 0;
  inset: 0;
  padding: 0;
  pointer-events: auto;
  position: fixed;
}

.DownloadModal__Panel {
  --download-modal-left: 50vw;
  --download-modal-top: 34.2vw;
  align-items: stretch;
  backdrop-filter: blur(16px);
  background: rgba(255, 255, 255, 0.75);
  border-radius: 2vw;
  box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.12);
  display: flex;
  gap: 2.667vw;
  justify-content: center;
  left: var(--download-modal-left);
  padding: 2.133vw 2.667vw;
  pointer-events: auto;
  position: fixed;
  top: var(--download-modal-top);
  transform: translateX(-50%);
}

.DownloadModal__Panel:focus {
  outline: none;
}

.DownloadModal__Item {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1.067vw;
}

.DownloadModal__Heading {
  align-items: center;
  display: flex;
  gap: 0.533vw;
}

.DownloadModal__Badge {
  display: block;
  height: auto;
  max-width: none;
  width: 8vw;
}

.DownloadModal__Qr {
  border-radius: 1.049vw;
  display: block;
  height: 12vw;
  max-width: none;
  object-fit: cover;
  width: 12vw;
}

.DownloadModal__Divider {
  align-self: stretch;
  background: #cfd5da;
  display: block;
  width: 1px;
}

.Flow {
  background: var(--color-bg);
  padding: 8.667vw 5.333vw 9.333vw;
}

.Flow__Inner {
  position: relative;
}

.Flow__Lead {
  font-size: clamp(14px, 1.067vw, 16px);
  font-weight: 500;
  left: 17.667vw;
  letter-spacing: 0.02em;
  line-height: 1.8;
  position: absolute;
  top: 4.133vw;
}

.Flow__List {
  display: grid;
  gap: 1.333vw;
  grid-template-columns: repeat(3, 28.867vw);
  margin-top: 3vw;
}

.Flow__Progress {
  display: none;
}

.FlowCard {
  background: #fff;
  border-radius: 2vw;
  height: 28.267vw;
  padding: 0.533vw 0.533vw 2.267vw;
  text-align: center;
}

.FlowCard__Visual {
  align-items: center;
  background: var(--color-bg);
  border-radius: 1.333vw;
  display: flex;
  height: 17.2vw;
  justify-content: center;
  overflow: hidden;
}

.FlowCard__Visual img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.FlowCard__Step {
  color: var(--color-blue);
  display: none;
  font-family: var(--font-en);
  font-size: clamp(11px, 0.867vw, 13px);
  font-weight: 700;
  margin-top: 1.6vw;
}

.FlowCard__Title {
  font-size: clamp(20px, 1.667vw, 25px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin-top: 1.773vw;
}

.FlowCard__Text {
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin-top: 0.667vw;
}

.Download {
  background: #fff;
  padding: 2vw 2vw 3.333vw;
}

.Download__Inner {
  align-items: center;
  background: var(--color-primary);
  border-radius: 1.333vw;
  color: #fff;
  display: flex;
  flex-direction: column;
  height: 31.533vw;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.Download__Circle {
  border-radius: 999px;
  display: block;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

.Download__Lines {
  background: url("../img/bg-download-lines-pc.svg") center / 100% 100%
    no-repeat;
  display: block;
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.Download__Circle--Orange {
  background: #ff7100;
  height: 7.867vw;
  left: 6.867vw;
  top: 6.667vw;
  width: 7.867vw;
}

.Download__Circle--Teal {
  background: var(--color-teal);
  height: 16vw;
  right: 5.2vw;
  top: -3.2vw;
  width: 16vw;
}

.Download__Circle--Yellow {
  background: #ffd93d;
  height: 3.333vw;
  left: 30.867vw;
  top: 24.6vw;
  width: 3.333vw;
}

.Download__Title {
  font-size: clamp(28px, 2.667vw, 40px);
  font-weight: 700;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 2;
}

.Download__Text {
  font-size: clamp(13px, 1.067vw, 16px);
  font-weight: 500;
  margin-top: 1vw;
  position: relative;
  z-index: 2;
}

.Download__TextBreak {
  display: none;
}

.Download .Button {
  margin-top: 1.6vw;
  position: relative;
  z-index: 2;
}

.Partner {
  align-items: center;
  display: flex;
  gap: 2.333vw;
  justify-content: center;
  padding: 2.4vw 5.333vw 6.2vw;
}

.Partner__Title {
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin: 0;
  text-align: center;
}

.Partner__Divider {
  background: var(--color-line);
  display: block;
  height: 4.133vw;
  width: 1px;
}

.Partner__List {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.Partner__Item {
  align-items: center;
  display: flex;
}

.Partner__Logo {
  display: block;
  height: auto;
  width: 19.133vw;
}

.Footer {
  background: var(--color-bg);
  height: 29.467vw;
  padding: 0 5.333vw;
}

.Footer__Inner {
  height: 100%;
  margin: 0 auto;
  max-width: 89.333vw;
  position: relative;
}

.Footer__Inner::before {
  background: var(--color-line);
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: 21vw;
  width: 89.333vw;
}

.Footer__Logo {
  gap: 0.738vw;
  left: 0;
  position: absolute;
  top: 5.333vw;
  width: 20.365vw;
}

.Footer__LogoMark {
  width: 3.349vw;
}

.Footer__LogoTextImage {
  width: 16.278vw;
}

.Footer__Columns {
  display: grid;
  gap: 2.4vw;
  grid-template-columns: 12vw 11.933vw 12vw;
  position: absolute;
  right: 0;
  top: 5.333vw;
  width: 40.733vw;
}

.FooterColumn {
  display: grid;
  align-content: start;
  gap: 1.333vw;
}

.FooterColumn__Title {
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 500;
  line-height: 1.12;
  margin-bottom: 0.667vw;
}

.FooterColumn a,
.Footer__Legal a {
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 400;
  line-height: 1.12;
}

.Footer__Tagline {
  display: block;
  font-size: clamp(16px, 1.2vw, 18px);
  font-weight: 500;
  left: 0;
  line-height: 1;
  position: absolute;
  top: 9.067vw;
}

.Footer__Social {
  display: block;
  height: 2.933vw;
  left: 0;
  position: absolute;
  top: 11.533vw;
  width: 2.933vw;
}

.Footer__Social img {
  height: 100%;
  width: 100%;
}

.Footer__Legal {
  align-items: center;
  display: flex;
  gap: 4.333vw;
  justify-content: center;
  left: 0;
  position: absolute;
  top: 23vw;
  width: 89.333vw;
}

.Footer__Legal a {
  font-size: clamp(11px, 0.8vw, 12px);
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
}

.Footer__Copy {
  border-top: 0;
  color: #a6b1c3;
  font-size: clamp(11px, 0.8vw, 12px);
  left: 50%;
  line-height: 1;
  padding-top: 0;
  position: absolute;
  text-align: center;
  top: 26.133vw;
  transform: translateX(-50%);
  white-space: nowrap;
  width: auto;
}

.LegalPage {
  background: #fff;
  padding: 13.867vw 16.8vw 8vw;
}

.LegalPage__Inner {
  width: 66.4vw;
}

.LegalPage__Header {
  margin-bottom: 4vw;
}

.LegalPage__Label {
  align-items: flex-start;
  display: flex;
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 1vw;
}

.LegalPage__Label::before {
  background: var(--color-blue);
  border-radius: 999px;
  content: "";
  height: 0.4vw;
  margin-right: 0.467vw;
  margin-top: 0.44vw;
  width: 0.4vw;
}

.LegalPage__Title {
  font-size: clamp(54px, 5.333vw, 80px);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
}

.LegalPage__Body {
  display: flex;
  flex-direction: column;
  gap: 1.667vw;
}

.LegalPage__Section {
  display: flex;
  flex-direction: column;
  gap: 1.067vw;
}

.LegalPage__Body h2 {
  font-size: clamp(26px, 2.4vw, 36px);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.4;
  margin-top: 2.333vw;
}

.LegalPage--Commercial .LegalPage__Title,
.LegalPage--FundsSettlement .LegalPage__Title {
  font-size: clamp(44px, 4vw, 60px);
}

.LegalPage--Commercial .LegalPage__Body,
.LegalPage--FundsSettlement .LegalPage__Body {
  gap: 4vw;
}

.LegalPage--Commercial .LegalPage__Body h2 {
  font-size: clamp(22px, 1.867vw, 28px);
  margin-top: 0;
}

.LegalPage--FundsSettlement .LegalPage__Body h2 {
  margin-top: 0;
}

.LegalPage__Body h2:first-child {
  margin-top: 0;
}

.LegalPage__Body p {
  font-size: clamp(14px, 1.067vw, 16px);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.7;
  overflow-wrap: anywhere;
  text-align: justify;
  font-feature-settings: "palt";
}

.LegalPage__Body table {
  border-collapse: collapse;
  display: table;
  font-size: clamp(13px, 0.933vw, 14px);
  line-height: 1.7;
  table-layout: fixed;
  width: 100%;
}

.LegalPage__Body th,
.LegalPage__Body td {
  border: 1px solid var(--color-line);
  min-width: 14vw;
  padding: 1.067vw 1.333vw;
  text-align: left;
  vertical-align: top;
}

.LegalPage__Body th {
  background: var(--color-bg);
  font-weight: 700;
}

.LegalPage__Body a {
  color: var(--color-blue);
  overflow-wrap: anywhere;
  text-decoration: underline;
}

@media (min-width: 768px) and (max-width: 1100px) {
  .Feature {
    padding-left: 0;
    padding-right: 0;
  }

  .Feature__Sticky {
    align-items: center;
    display: flex;
    height: 100dvh;
    min-height: 100dvh;
    padding: 0 5.333vw;
  }

  .Feature__Decor {
    display: none;
  }

  .Feature__Inner {
    width: 100%;
  }

  .Feature .SectionHeading__Title {
    font-size: clamp(30px, 3.733vw, 44px);
    line-height: 1.3;
    white-space: normal;
  }

  .FeatureSlider {
    height: clamp(520px, 62vw, 640px);
    margin-top: 0;
  }

  .FeatureBlock {
    gap: clamp(32px, 5vw, 64px);
    grid-template-columns: clamp(156px, 20.333vw, 224px) minmax(
        0,
        clamp(380px, 48vw, 520px)
      );
    justify-content: center;
    padding-left: 0;
  }

  .FeatureBlock__Image {
    height: clamp(311px, 40.533vw, 446px);
    width: clamp(156px, 20.333vw, 224px);
  }

  .FeatureBlock__Text {
    transform: none;
  }

  .FeatureBlock__Text > * {
    transform: translate3d(calc(var(--feature-text-offset, 1) * -7.2vw), 0, 0);
  }

  .FeatureBlock__Title {
    font-size: clamp(30px, 3.467vw, 42px);
    line-height: 1.35;
  }

  .FeatureBlock__Description {
    font-size: clamp(13px, 1.55vw, 16px);
    line-height: 1.75;
  }
}

@media (max-width: 767px) {
  .SiteHeader {
    height: 18.667vw;
    padding: 4vw 5.333vw;
    z-index: 120;
  }

  .SiteHeader::before {
    -webkit-backdrop-filter: blur(3.333vw);
    backdrop-filter: blur(3.333vw);
  }

  .SiteHeader.is-scrolled {
    height: 17.067vw;
    padding: 3.2vw 5.333vw;
  }

  .SiteHeader__Logo {
    flex: 0 0 auto;
    gap: 0;
  }

  .SiteHeader__LogoMark,
  .SiteHeader__LogoTextImage {
    display: none;
  }

  .SiteHeader__LogoSp {
    display: block;
    width: 38.667vw;
  }

  .Footer__Logo {
    flex: 0 0 auto;
    gap: 2.667vw;
  }

  .Footer__LogoMark {
    width: 11.25vw;
  }

  .Footer__LogoTextImage {
    width: 54.68vw;
  }

  .SiteHeader__Nav {
    display: none;
  }

  .Button--Small {
    display: none;
  }

  .SiteHeader__SpActions {
    align-items: center;
    display: flex;
    gap: 4.267vw;
  }

  .SiteHeader__StoreSwitch {
    align-items: center;
    background: #f1f4f6;
    border-radius: 1.6vw;
    display: flex;
    gap: 3.733vw;
    height: 10.667vw;
    padding: 2.667vw 3.733vw;
    width: 26.032vw;
  }

  .SiteHeader__StoreIcon {
    display: block;
    flex: 0 0 auto;
    height: 5.327vw;
  }

  .SiteHeader__StoreIcon--Apple {
    width: 5.327vw;
  }

  .SiteHeader__StoreIcon--Android {
    width: 5.771vw;
  }

  .SiteHeader__StoreIcon img {
    height: 100%;
    width: 100%;
  }

  .SiteHeader__StoreDivider {
    background: #d6dde2;
    display: block;
    height: 5.333vw;
    width: 1px;
  }

  .SiteHeader__MenuButton {
    background: transparent;
    border: 0;
    height: 4vw;
    padding: 0;
    position: relative;
    width: 7.467vw;
  }

  .SiteHeader__MenuButton img {
    height: 100%;
    transition: opacity 0.2s ease, transform 0.28s ease;
    width: 100%;
  }

  .SiteHeader__MenuButton::before,
  .SiteHeader__MenuButton::after {
    background: #242426;
    content: "";
    height: 0.533vw;
    left: 1.333vw;
    opacity: 0;
    position: absolute;
    top: 1.733vw;
    transform-origin: center;
    transition: opacity 0.18s ease,
      transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    width: 5.333vw;
  }

  body.is-sp-menu-open .SiteHeader__StoreSwitch {
    background: #fff;
  }

  body.is-sp-menu-open .SiteHeader__MenuButton img {
    opacity: 0;
    transform: scaleX(0.6);
  }

  body.is-sp-menu-open .SiteHeader__MenuButton::before {
    opacity: 1;
    transform: rotate(45deg);
  }

  body.is-sp-menu-open .SiteHeader__MenuButton::after {
    opacity: 1;
    transform: rotate(-45deg);
  }

  .SpMenu[hidden] {
    display: none;
  }

  .SpMenu {
    display: block;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    transition: opacity 0.24s ease, visibility 0.24s ease;
    visibility: hidden;
    z-index: 90;
  }

  body.is-sp-menu-open .SpMenu {
    opacity: 1;
    visibility: visible;
  }

  .SpMenu__Panel {
    background: var(--color-bg);
    border-bottom-left-radius: 8vw;
    border-bottom-right-radius: 8vw;
    height: 91.2vw;
    left: 0;
    overflow: hidden;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateY(-6.4vw);
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
    width: 100%;
  }

  body.is-sp-menu-open .SpMenu__Panel {
    transform: translateY(0);
  }

  .SpMenu__Nav {
    display: flex;
    flex-direction: column;
    gap: 4vw;
    left: 13.867vw;
    opacity: 0;
    pointer-events: auto;
    position: absolute;
    top: 24.267vw;
    transform: translateY(-2.667vw);
    transition: opacity 0.24s ease 0.08s, transform 0.32s ease 0.08s;
    width: 72.267vw;
  }

  body.is-sp-menu-open .SpMenu__Nav {
    opacity: 1;
    transform: translateY(0);
  }

  .SpMenu__NavLink {
    border-bottom: 1px solid #d7dadc;
    font-feature-settings: "pwid", "palt";
    font-size: clamp(12px, 3.733vw, 16px);
    font-weight: 500;
    letter-spacing: 0.187vw;
    line-height: 1.7;
    padding-bottom: 4vw;
  }

  .Button {
    border-radius: 2.667vw;
    min-height: 14.933vw;
    padding: 4vw 13.333vw;
  }

  .Button__Icon {
    height: 5.067vw;
    width: 4.133vw;
  }

  .Button__Icon::before {
    height: 3.627vw;
    left: 1.056vw;
    width: 2.416vw;
  }

  .Button__Icon::after {
    height: 1.512vw;
    top: 3.324vw;
    width: 4.532vw;
  }

  .Button--Small .Button__Icon {
    height: 3.733vw;
    width: 3.067vw;
  }

  .Button--Small .Button__Icon::before {
    height: 2.8vw;
    left: 0.817vw;
    width: 1.867vw;
  }

  .Button--Small .Button__Icon::after {
    height: 1.168vw;
    top: 2.568vw;
    width: 3.501vw;
  }

  .Hero {
    height: 181.333vw;
    padding: 22.133vw 5.333vw 0;
  }

  .Hero__Title {
    font-feature-settings: "pwid", "palt";
    font-size: clamp(24px, 8vw, 34px);
    line-height: 1.3;
  }

  .Hero__TitlePc {
    display: none;
  }

  .Hero__TitleSp {
    display: inline;
  }

  .Hero__Lead {
    font-feature-settings: "pwid", "palt";
    font-size: clamp(11px, 3.467vw, 15px);
    font-weight: 700;
    line-height: 1.62;
    margin-top: 2.667vw;
    text-align: center;
  }

  .Hero__LeadBreakSp {
    display: inline;
  }

  .Hero__Visual {
    border-radius: 5.333vw;
    height: 72vw;
    margin-top: 4.213vw;
    transform: none;
    width: 89.333vw;
  }

  .Hero__Lines {
    background-image: url("../img/bg-hero-lines-sp.svg");
  }

  .Hero__Image {
    left: -12.604vw;
    top: -8.984vw;
    transform: none;
    width: 119.918vw;
  }

  .Hero__Circle--Orange {
    height: 24.267vw;
    left: 0;
    top: 13.067vw;
    width: 24.267vw;
  }

  .Hero__Circle--Blue {
    height: 9.867vw;
    left: 71.733vw;
    top: 16.533vw;
    width: 9.867vw;
  }

  .Hero__Circle--Teal {
    height: 27.467vw;
    right: 3.733vw;
    top: 50.133vw;
    width: 27.467vw;
  }

  .Hero__Button {
    display: none;
  }

  .StoreButtons {
    display: flex;
  }

  .StoreButtons__Button {
    align-items: center;
    background: transparent;
    border-radius: 0;
    display: inline-flex;
    flex: 0 0 auto;
    height: auto;
    justify-content: center;
  }

  .StoreButtons__Button img {
    display: block;
    height: auto;
    max-width: none;
    width: 100%;
  }

  .Hero__StoreButtons {
    gap: 3.2vw;
    margin-top: 4.8vw;
  }

  .Hero__StoreButtons .StoreButtons__Button {
    width: 43.067vw;
  }

  .About,
  .Feature,
  .UseCase,
  .Flow,
  .Partner,
  .Footer {
    padding-left: 5.333vw;
    padding-right: 5.333vw;
  }

  .About,
  .Feature,
  .UseCase,
  .Flow {
    scroll-margin-top: 10.667vw;
  }

  .About {
    height: 222.133vw;
    padding-bottom: 0;
    padding-top: 9.867vw;
  }

  .About__Inner,
  .FeatureBlock,
  .Footer__Inner {
    display: block;
  }

  .SectionHeading {
    gap: 4.8vw;
  }

  .SectionHeading__Label {
    font-size: clamp(12px, 3.733vw, 16px);
    line-height: 1;
  }

  .SectionHeading__Label::before {
    height: 0.533vw;
    margin-right: 1.333vw;
    width: 2.667vw;
  }

  .SectionHeading__Title {
    font-size: clamp(23px, 7.467vw, 32px);
    line-height: 1.4;
    white-space: nowrap;
  }

  .About__Text {
    font-size: clamp(11px, 3.467vw, 15px);
    line-height: 1.8;
    margin-top: 6.667vw;
    padding: 0;
  }

  .About__Cards {
    background: none;
    gap: 3.2vw;
    grid-template-columns: 1fr;
    margin: 10.933vw 0 0;
    height: auto;
    width: 89.333vw;
  }

  .AboutCard {
    align-items: center;
    border-radius: 3.2vw;
    display: grid;
    gap: 5.333vw;
    grid-template-columns: 19.2vw 1fr;
    height: 30.4vw;
    min-height: 0;
    padding: 0 8.533vw;
    position: static;
  }

  .AboutCard__Icon {
    position: static;
  }

  .AboutCard__Icon--Id {
    width: 19.2vw;
  }

  .AboutCard__Icon--Shield {
    width: 16.531vw;
  }

  .AboutCard__Icon--Coin {
    width: 16.734vw;
  }

  .AboutCard__Icon--Connect {
    width: 14.615vw;
  }

  .AboutCard__Text {
    font-size: clamp(14px, 4.267vw, 18px);
    font-weight: 700;
    line-height: 1.58;
    position: static;
    transform: none;
  }

  .AboutCard__TextPc {
    display: none;
  }

  .AboutCard__TextSp {
    display: inline;
  }

  .Feature {
    height: 500vh;
    padding-left: 0;
    padding-right: 0;
  }

  .Feature__HeadingArea {
    padding: 24vw 5.333vw 0;
  }

  .Feature__Sticky {
    align-items: center;
    display: flex;
    height: 100dvh;
    min-height: 100dvh;
    padding: 0 5.333vw;
    position: sticky;
    top: 0;
  }

  .Feature__Decor {
    display: none;
  }

  .FeatureSlider {
    height: 170.667vw;
    margin-top: 0;
    overflow: visible;
  }

  .FeatureBlock {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
    transform: translate3d(0, 8.533vw, 0);
  }

  .FeatureBlock__Image {
    margin-left: auto;
    margin-right: auto;
  }

  .FeatureBlock__Text {
    margin-top: 4vw;
    min-height: 43.417vw;
    min-width: 0;
    transform: none;
    width: 86.667vw;
  }

  .FeatureBlock__Text > * {
    transform: translate3d(
      calc(var(--feature-text-offset, 1) * -10.667vw),
      0,
      0
    );
  }

  .FeatureBlock__Number {
    gap: 0;
    margin-bottom: 4.267vw;
  }

  .FeatureBlock__Number > span {
    font-size: clamp(12px, 3.733vw, 16px);
  }

  .FeatureBlock__Number > .FeatureBlock__NumberCurrent {
    font-size: clamp(24px, 7.467vw, 28px);
    width: 8vw;
  }

  .FeatureBlock__Number > .FeatureBlock__NumberTotal {
    font-size: clamp(12px, 3.733vw, 14px);
    margin-left: 1.067vw;
    margin-top: 0;
    width: 5.333vw;
  }

  .FeatureBlock__Number::after {
    background: #0b50ae;
    height: 2px;
    margin-left: 1.867vw;
    margin-top: 0;
    width: 6.411vw;
  }

  .FeatureBlock__Title {
    font-size: clamp(24px, 8vw, 34px);
    letter-spacing: 0;
    line-height: 1.4;
    max-width: 100%;
    overflow-wrap: break-word;
    white-space: normal;
  }

  .FeatureBlock__Description {
    font-size: clamp(11px, 3.733vw, 16px);
    line-height: 1.8;
    margin-top: 4.267vw;
    max-width: 100%;
    overflow-wrap: break-word;
  }

  .FeatureBlock__Description br {
    display: none;
  }
  /* 実スマホ向け：Safari下ツールバー込みで少し強めに圧縮 */
  @media (max-width: 520px) and (min-height: 701px) and (max-height: 1120px) {
    .Feature__Sticky {
      height: 100dvh;
      min-height: 100dvh;
      padding-bottom: 0;
      padding-top: 0;
    }

    .Feature__Heading {
      gap: 3.2vw;
    }

    .Feature .SectionHeading__Title {
      font-size: clamp(23px, 7.2vw, 30px);
      line-height: 1.35;
    }

    .FeatureSlider {
      height: 148vw;
      margin-top: 0;
    }

    .FeatureBlock__Image {
      height: 91.709vw;
      transform: translate3d(0, 0, 0);
      width: 46vw;
    }

    .FeatureBlock__Text {
      margin-top: 3.733vw;
      min-height: 43.417vw;
    }

    .FeatureBlock__Number {
      margin-bottom: 2.667vw;
    }

    .FeatureBlock__Title {
      font-size: clamp(22px, 7.2vw, 28px);
      line-height: 1.32;
    }

    .FeatureBlock__Description {
      font-size: clamp(10px, 3.2vw, 13px);
      line-height: 1.6;
      margin-top: 2.667vw;
    }
  }

  @media (max-width: 520px) and (min-height: 780px) and (max-height: 1120px) {
    .FeatureSlider {
      height: 148vw;
    }

    .FeatureBlock__Image {
      height: 91.709vw;
      width: 46vw;
    }

    .FeatureBlock__Text {
      margin-top: 3.733vw;
    }
  }

  /* 521px〜767px：モニターを細くした時・タブレット寄りの中間幅 */
  @media (min-width: 521px) and (max-width: 767px) {
    .Feature__Sticky {
      height: 100dvh;
      min-height: 100dvh;
      padding-bottom: 0;
      padding-top: 0;
    }

    .Feature__Heading {
      gap: clamp(12px, 2.4vw, 20px);
    }

    .Feature .SectionHeading__Label {
      font-size: clamp(12px, 2.1vw, 16px);
    }

    .Feature .SectionHeading__Title {
      font-size: clamp(26px, 4.6vw, 34px);
      line-height: 1.25;
    }

    .FeatureSlider {
      height: calc(100dvh - clamp(230px, 34vw, 300px));
      margin-top: 0;
    }

    .FeatureBlock {
      align-items: center;
      display: flex;
      flex-direction: column;
      justify-content: center;
      transform: translate3d(0, 8.533vw, 0);
    }

    .FeatureBlock__Image {
      height: clamp(323px, 49.825vw, 379px);
      transform: translate3d(0, 0, 0);
      width: clamp(162px, 25vw, 190px);
    }

    .FeatureBlock__Text {
      margin-top: clamp(14px, 2.2vw, 22px);
      min-height: clamp(137px, 23.95vw, 178px);
      transform: none;
      width: 100%;
    }

    .FeatureBlock__Text > * {
      transform: translate3d(calc(var(--feature-text-offset, 1) * -8vw), 0, 0);
    }

    .FeatureBlock__Number {
      gap: 0;
      margin-bottom: clamp(12px, 2vw, 18px);
    }

    .FeatureBlock__Number > span {
      font-size: clamp(12px, 2vw, 16px);
    }

    .FeatureBlock__Number > .FeatureBlock__NumberCurrent {
      font-size: clamp(24px, 3.646vw, 28px);
      width: clamp(30px, 3.906vw, 34px);
    }

    .FeatureBlock__Number > .FeatureBlock__NumberTotal {
      font-size: clamp(12px, 1.823vw, 14px);
      margin-left: clamp(4px, 0.521vw, 5px);
      margin-top: 0;
      width: clamp(20px, 2.604vw, 24px);
    }

    .FeatureBlock__Number::after {
      background: #0b50ae;
      height: 2px;
      margin-left: clamp(7px, 0.911vw, 10px);
      margin-top: 0;
      width: clamp(24.042px, 3.13vw, 30px);
    }

    .FeatureBlock__Title {
      font-size: clamp(24px, 4.7vw, 34px);
      line-height: 1.25;
    }

    .FeatureBlock__Description {
      font-size: clamp(12px, 2vw, 15px);
      line-height: 1.55;
      margin-top: clamp(12px, 2vw, 18px);
    }
  }
  @media (max-width: 520px) and (max-height: 700px) {
    .Feature__Sticky {
      padding-top: 0;
    }

    .FeatureSlider {
      height: 130vw;
      margin-top: 0;
    }

    .FeatureBlock__Image {
      height: 83.721vw;
      transform: translate3d(0, 0, 0);
      width: 42vw;
    }

    .FeatureBlock__Text {
      margin-top: 3.2vw;
      min-height: 47.545vw;
    }

    .FeatureBlock__Number {
      margin-bottom: 3.2vw;
    }

    .FeatureBlock__Title {
      font-size: clamp(24px, 7.467vw, 28px);
      line-height: 1.35;
    }

    .FeatureBlock__Description {
      font-size: clamp(11px, 3.467vw, 13px);
      line-height: 1.65;
      margin-top: 3.2vw;
    }
  }

  @media (min-width: 392px) and (max-width: 394px) and (max-height: 779px) {
    .FeatureSlider {
      height: 136vw;
      overflow: visible;
    }

    .FeatureBlock {
      gap: 3.467vw;
    }

    .FeatureBlock__Image {
      height: 91.709vw;
      width: 46vw;
    }

    .FeatureBlock__Text {
      margin-top: 3.2vw;
      min-height: 47.545vw;
    }

    .FeatureBlock__Number {
      margin-bottom: 3.2vw;
    }

    .FeatureBlock__Title {
      font-size: clamp(24px, 7.467vw, 28px);
      line-height: 1.35;
    }

    .FeatureBlock__Description {
      font-size: clamp(11px, 3.467vw, 13px);
      line-height: 1.65;
      margin-top: 3.2vw;
    }
  }

  @media (min-width: 392px) and (max-width: 394px) and (max-height: 1120px) {
    .FeatureSlider {
      height: clamp(136vw, calc(95.018vw + 24.447dvh), 148vw);
      overflow: visible;
    }

    .FeatureBlock {
      gap: 3.467vw;
    }

    .FeatureBlock__Image {
      height: clamp(93.702vw, calc(87.076vw + 4.06dvh), 95.685vw);
      width: clamp(47vw, calc(43.585vw + 2.037dvh), 48vw);
    }

    .FeatureBlock__Text {
      margin-top: clamp(3.2vw, calc(1.38vw + 1.086dvh), 3.733vw);
      min-height: 47.545vw;
    }

    .FeatureBlock__Number {
      margin-bottom: clamp(2.667vw, calc(5.02vw - 1.086dvh), 3.2vw);
    }
  }

  .UseCase {
    height: 178.667vw;
    padding-bottom: 0;
    padding-top: 13.333vw;
  }

  .UseCase__Head {
    display: block;
    padding-right: 0;
  }

  .UseCase__Arrows {
    display: none;
  }

  .UseCase__List {
    background: none;
    gap: 5.333vw;
    margin-left: -5.2vw;
    margin-top: 8vw;
    padding-bottom: 0;
    padding-left: 5.2vw;
    width: calc(100% + 10.533vw);
  }

  .UseCase__List::after {
    flex-basis: 20vw;
  }

  .UseCase__List .UseCaseCard {
    opacity: 1;
  }

  .UseCaseCard {
    flex-basis: 80vw;
    padding-right: 5.333vw;
  }

  .UseCaseCard__ImageFrame {
    border-radius: 0;
    height: 50.684vw;
    width: 74.667vw;
  }

  .UseCaseCard__Image {
    height: 100%;
    max-width: 100%;
    object-fit: cover;
    object-position: center;
    transform: none;
    width: 100%;
  }

  .UseCase__Inner {
    position: relative;
  }

  .UseCase__Arrows {
    display: flex;
    gap: 5.333vw;
    left: 60vw;
    margin: 0;
    position: absolute;
    top: 139.733vw;
  }

  .UseCase__Arrow {
    background: var(--color-bg);
    border: 0;
    height: 12vw;
    width: 12vw;
  }

  .UseCase__Arrow::after {
    border-right-width: 0.533vw;
    border-top-width: 0.533vw;
    height: 1.867vw;
    left: 4.533vw;
    top: 4.933vw;
    width: 1.867vw;
  }

  .UseCase__Arrow--Prev::after {
    left: 5.067vw;
  }

  .UseCase__Pagination {
    bottom: auto;
    gap: 1.333vw;
    left: 0;
    top: 145.333vw;
  }

  .UseCase__PaginationBar {
    border-radius: 0.533vw;
    height: 0.8vw;
    width: 8vw;
  }

  .UseCaseCard__Text,
  .UseCaseCard__Link {
    margin-left: 6.667vw;
  }

  .UseCaseCard__Body {
    padding-top: 4vw;
  }

  .UseCaseCard__Number {
    font-size: clamp(10px, 3.2vw, 14px);
    line-height: 2.333;
    margin-right: 3.733vw;
  }

  .UseCaseCard__Title {
    font-size: clamp(15px, 4.8vw, 20px);
    line-height: 1.55;
  }

  .UseCaseCard__Text {
    font-size: clamp(10px, 3.2vw, 14px);
    line-height: 1.9;
    margin-top: 2.667vw;
  }

  .UseCaseCard__Link {
    font-size: clamp(10px, 3.2vw, 14px);
    margin-top: 3.467vw;
  }

  .UseCaseCard__Link::after {
    height: 3.2vw;
    width: 3.2vw;
  }

  .UseCaseModal {
    align-items: center;
    justify-content: center;
    padding: 9.333vw 5.067vw;
  }

  .UseCaseModal__Frame {
    gap: 5.333vw;
    width: 89.6vw;
  }

  .UseCaseModal__Card {
    border-radius: 5.333vw;
    padding: 9.333vw 6.667vw;
  }

  .UseCaseModal__Inner,
  .UseCaseModal__Content {
    gap: 5.333vw;
  }

  .UseCaseModal__Label {
    gap: 3.2vw;
  }

  .UseCaseModal__LabelLine {
    height: 0.533vw;
    width: 3.467vw;
  }

  .UseCaseModal__LabelText {
    font-size: clamp(11px, 3.733vw, 16px);
  }

  .UseCaseModal__Title {
    font-size: clamp(18px, 6.667vw, 28px);
  }

  .UseCaseModal__Text {
    font-size: clamp(11px, 3.467vw, 15px);
  }

  .UseCaseModal__Close {
    font-size: clamp(11px, 3.733vw, 16px);
    gap: 2.4vw;
  }

  .UseCaseModal__Close::after {
    height: 2.667vw;
    width: 2.667vw;
  }

  .Flow {
    height: 163.733vw;
    overflow: hidden;
    padding-bottom: 0;
    padding-top: 13.333vw;
  }

  .Flow__Lead {
    left: 0;
    margin-top: 5.333vw;
    position: static;
  }

  .Flow__List {
    display: flex;
    gap: 3.2vw;
    grid-template-columns: none;
    margin-top: 8vw;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    width: 89.333vw;
  }

  .Flow__List::-webkit-scrollbar {
    display: none;
  }

  .FlowCard {
    border-radius: 5.333vw;
    flex: 0 0 66.667vw;
    height: 88vw;
    min-height: 0;
    padding: 1.333vw 1.333vw 8vw;
  }

  .FlowCard__Visual {
    border-radius: 4.267vw;
    height: 50.4vw;
  }

  .FlowCard__Visual img {
    height: 100%;
    width: 100%;
  }

  .FlowCard__Step {
    display: none;
  }

  .FlowCard__Title {
    letter-spacing: 0;
    margin-top: 9.333vw;
    margin-left: auto;
    margin-right: auto;
    white-space: nowrap;
    width: 64vw;
  }

  .FlowCard__Text {
    font-size: clamp(10px, 3.2vw, 14px);
    margin-top: 2.667vw;
  }

  .Flow__Inner::before,
  .Flow__Inner::after {
    content: none;
  }

  .Flow__Progress {
    --flow-progress: 0;
    background: #d6dde2;
    display: block;
    height: 1px;
    margin-top: 5.333vw;
    overflow: visible;
    position: relative;
    width: 87.733vw;
  }

  .Flow__ProgressBar {
    background: var(--color-primary);
    border-radius: 999px;
    display: block;
    height: 0.533vw;
    left: 0;
    position: absolute;
    top: 50%;
    transform: translate3d(calc(var(--flow-progress) * 63.733vw), -50%, 0);
    transition: transform 0.12s linear;
    width: 24vw;
  }

  .Download {
    height: 117.867vw;
    padding: 10.667vw 5.333vw 0;
  }

  .Download__Inner {
    align-items: stretch;
    border-radius: 4.267vw;
    background: var(--color-primary);
    height: 94.2vw;
    padding: 0 8vw;
    text-align: center;
  }

  .Download__Lines {
    background-image: url("../img/bg-download-lines-sp.svg");
  }

  .Download__Title,
  .Download__Text,
  .Download .Button {
    opacity: 1;
  }

  .Download__Title {
    font-feature-settings: "pwid", "palt";
    font-size: clamp(23px, 7.467vw, 32px);
    left: 50%;
    line-height: 1.4;
    margin: 0;
    position: absolute;
    top: 17.067vw;
    transform: translateX(-50%);
    width: 56vw;
  }

  .Download__TitlePc {
    display: none;
  }

  .Download__TitleSp {
    display: inline;
  }

  .Download__Text {
    color: #fff;
    font-size: clamp(11px, 3.733vw, 16px);
    line-height: 1.6;
    left: 0;
    margin: 0;
    position: absolute;
    top: 42.133vw;
    width: 100%;
  }

  .Download__TextBreak {
    display: inline;
  }

  .Download .Button {
    display: none;
  }

  .Download__StoreButtons {
    left: 0;
    flex-direction: row;
    gap: 4.933vw;
    justify-content: center;
    margin: 0;
    padding: 0 5.333vw;
    position: absolute;
    top: 62.933vw;
    width: 100%;
    z-index: 2;
  }

  .Download__StoreButtons .StoreButtons__Button {
    width: 39.333vw;
  }

  .Download__Circle--Orange {
    height: 13.067vw;
    left: 1.867vw;
    top: 40.267vw;
    width: 13.067vw;
  }

  .Download__Circle--Teal {
    display: block;
    height: 24vw;
    right: 7.417vw;
    top: 0;
    width: 24vw;
  }

  .Download__Circle--Yellow {
    height: 7.467vw;
    left: 34.4vw;
    top: 78.267vw;
    width: 7.2vw;
  }

  .Partner {
    flex-direction: column;
    gap: 0;
    height: 51.867vw;
    justify-content: flex-start;
    padding: 13.333vw 0 0;
  }

  .Partner__Title {
    font-size: clamp(12px, 4.267vw, 18px);
    line-height: 1.6;
    white-space: nowrap;
    width: auto;
  }

  .Partner__TitleSp {
    display: none;
  }

  .Partner__Divider {
    display: none;
  }

  .Partner__List {
    display: flex;
    justify-content: center;
    margin: 0;
    width: 100%;
  }

  .Partner__Logo {
    width: 76.533vw;
  }

  .Footer {
    height: 164vw;
    padding-bottom: 10.667vw;
    padding-top: 13.333vw;
    position: relative;
  }

  .Footer__Inner {
    display: block;
    height: 100%;
    max-width: none;
    position: relative;
  }

  .Footer__Inner::before {
    display: none;
  }

  .Footer__Columns {
    display: grid;
    gap: 0 4.267vw;
    grid-template-columns: 42.667vw 42.4vw;
    position: static;
    right: auto;
    top: auto;
    width: auto;
  }

  .FooterColumn {
    border-top: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 0;
  }

  .FooterColumn--Support {
    margin-top: 7.467vw;
  }

  .FooterColumn__Title {
    border-bottom: 1px solid #dce2e6;
    font-size: clamp(12px, 3.733vw, 16px);
    font-weight: 500;
    line-height: 1.2;
    margin-bottom: 2.4vw;
    padding-bottom: 2.667vw;
  }

  .FooterColumn a {
    font-size: clamp(10px, 3.2vw, 14px);
    font-weight: 400;
    line-height: 1.4;
  }

  .FooterColumn a + a {
    margin-top: 3.2vw;
  }

  .Footer__Logo {
    bottom: 57.067vw;
    gap: 2.667vw;
    left: 50%;
    position: absolute;
    right: auto;
    top: auto;
    transform: translateX(-50%);
    width: 68.409vw;
  }

  .Footer__Tagline {
    bottom: 46.4vw;
    display: block;
    font-size: clamp(12px, 3.733vw, 16px);
    font-weight: 500;
    left: 0;
    line-height: 1.4;
    position: absolute;
    text-align: center;
    top: auto;
    width: 100%;
  }

  .Footer__Social {
    bottom: 29.867vw;
    display: block;
    height: 11.733vw;
    left: 50%;
    position: absolute;
    top: auto;
    transform: translateX(-50%);
    width: 11.733vw;
  }

  .Footer__Social img {
    height: 100%;
    width: 100%;
  }

  .Footer__Legal {
    align-items: center;
    border-top: 1px solid #dce2e6;
    bottom: 9.333vw;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 0;
    row-gap: 2.4vw;
    justify-content: center;
    left: 0;
    padding-top: 6.667vw;
    position: absolute;
    top: auto;
    width: 89.333vw;
  }

  .Footer__Legal a {
    font-size: clamp(9px, 2.667vw, 12px);
    line-height: 1.4;
    white-space: nowrap;
    text-align: center;
  }

  .Footer__Copy {
    border-top: 0;
    bottom: -2.667vw;
    color: #a6b1c3;
    font-size: clamp(9px, 2.667vw, 12px);
    left: 50%;
    padding-top: 0;
    position: absolute;
    top: auto;
    transform: translateX(-50%);
    white-space: nowrap;
    width: auto;
  }

  .LegalPage {
    padding: 30.667vw 5.333vw 21.333vw;
  }

  .LegalPage__Inner {
    width: 89.333vw;
  }

  .LegalPage__Header {
    margin-bottom: 10.667vw;
  }

  .LegalPage__Label {
    font-size: clamp(11px, 3.467vw, 15px);
    margin-bottom: 2.133vw;
  }

  .LegalPage__Label::before {
    height: 1.6vw;
    margin-right: 1.867vw;
    margin-top: 1vw;
    width: 1.6vw;
  }

  .LegalPage__Title {
    font-size: clamp(36px, 9.6vw, 60px);
  }

  .LegalPage__Body {
    gap: 4vw;
  }

  .LegalPage__Section {
    gap: 4vw;
  }

  .LegalPage__Body h2 {
    font-size: clamp(16px, 5.333vw, 22px);
    line-height: 1.5;
    margin-top: 8vw;
  }

  .LegalPage--Commercial .LegalPage__Title,
  .LegalPage--FundsSettlement .LegalPage__Title,
  .LegalPage--Privacy .LegalPage__Title {
    font-size: clamp(32px, 9.6vw, 36px);
    letter-spacing: -0.02em;
    line-height: 1.2;
  }

  .LegalPage--Commercial .LegalPage__Body,
  .LegalPage--FundsSettlement .LegalPage__Body {
    gap: 10.667vw;
  }

  .LegalPage--Commercial .LegalPage__Body h2 {
    font-size: clamp(16px, 4.8vw, 18px);
    margin-top: 0;
  }

  .LegalPage--FundsSettlement .LegalPage__Body h2 {
    font-size: clamp(18px, 5.333vw, 20px);
    margin-top: 0;
  }

  .LegalPage__Body p {
    font-size: clamp(12px, 3.733vw, 16px);
    line-height: 1.7;
  }

  .LegalPage__Body table {
    font-size: clamp(11px, 3.2vw, 14px);
  }

  .LegalPage__Body th,
  .LegalPage__Body td {
    min-width: 0;
    padding: 3.2vw;
    word-break: break-word;
  }
}
