:root {
  --color-red: #df0515;
  --color-charcoal: #333333;
  --color-white: #ffffff;
  --color-black: #231815;
  --color-gray: #939393;
  --color-gray-bg: #e6e6e6;
  --font-base: "Noto Sans JP", sans-serif;
  --width: 1280;
  --px-vw: calc(100vw / var(--width));
}

@media screen and (max-width: 767px) {
  :root {
    --width: 375;
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  font-feature-settings: "palt";
}

body {
  margin: 0;
  min-width: 320px;
  font-family: var(--font-base);
  font-size: 1.6rem;
  line-height: 1.5;
}

picture {
  font-size: 0;
}

img {
  width: auto;
  height: auto;
  max-width: 100%;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
  opacity: 1;
  transition: opacity 0.3s ease;
}
a:hover {
  opacity: 0.6;
}

button {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.sp {
  display: none;
}

.pc {
  display: inline-block;
}

@media screen and (max-width: 767px) {
  .sp {
    display: inline-block;
  }
  .pc {
    display: none;
  }
}
.backtop {
  position: fixed;
  right: 24px;
  bottom: min(62 * var(--px-vw), 62px);
  z-index: 900;
  width: 56px;
  height: 56px;
  border: 1px solid var(--color-white);
  border-radius: 50%;
  background: var(--color-red);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s 0.4s;
}
.backtop img {
  display: block;
  width: 100%;
  height: auto;
}
.backtop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s;
}
@media (hover: hover) and (pointer: fine) {
  .backtop.is-visible:hover {
    opacity: 0.7;
  }
}
.backtop:focus-visible {
  outline: 2px solid var(--color-red);
  outline-offset: 4px;
  border-radius: 50%;
}
@media screen and (max-width: 767px) {
  .backtop {
    right: calc(20 * var(--px-vw));
    bottom: 60px;
    width: calc(48 * var(--px-vw));
    height: calc(48 * var(--px-vw));
  }
}
@media (prefers-reduced-motion: reduce) {
  .backtop, .backtop.is-visible {
    transition: none;
    transform: none;
  }
}

.header.guide {
  position: relative;
  z-index: 200;
}
.header {
  position: relative;
  top: 0;
  left: 0;
  z-index: 200;
  background: var(--color-white);
  color: var(--color-charcoal);
}
.header-inner {
  width: 100%;
  margin: 0 auto;
  padding: min(25 * var(--px-vw), 25px) min(42 * var(--px-vw), 42px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(16 * var(--px-vw), 16px);
}
.header__brand {
  width: min(225 * var(--px-vw), 225px);
  display: inline-flex;
  align-items: center;
}
.header__brand-image {
  width: 100%;
  height: auto;
  display: block;
}

.footer {
  background: var(--color-red);
  color: var(--color-white);
  position: relative;
  z-index: 1;
}
.footer-inner {
  width: 100%;
  margin: 0 auto;
  min-height: min(70 * var(--px-vw), 70px);
  padding: min(20 * var(--px-vw), 20px) min(65 * var(--px-vw), 65px);
  padding-right: min(44 * var(--px-vw), 44px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(20 * var(--px-vw), 20px);
}
.footer-company {
  margin: 0;
}
.footer-company img {
  display: block;
  width: min(154 * var(--px-vw), 154px);
  height: auto;
}
.footer-copyright {
  font-size: min(11 * var(--px-vw), 11px);
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.header__menu {
  display: none;
}

@media screen and (max-width: 767px) {
  .line .header,
  .line .header.guide {
    position: sticky;
    top: 0;
    z-index: 1001;
  }
  .line .header:has(.header__menu[aria-expanded=true]),
  .line .header.guide:has(.header__menu[aria-expanded=true]) {
    background: transparent;
  }
  .line .header:has(.header__menu[aria-expanded=true]) .header__brand, .line .header:has(.header__menu[aria-expanded=true])::before,
  .line .header.guide:has(.header__menu[aria-expanded=true]) .header__brand,
  .line .header.guide:has(.header__menu[aria-expanded=true])::before {
    visibility: hidden;
  }
  .line .header-inner {
    min-height: calc(50 * var(--px-vw));
    padding: calc(10 * var(--px-vw)) calc(14 * var(--px-vw));
  }
  .line .header__brand {
    width: calc(135 * var(--px-vw));
    margin-top: calc(2 * var(--px-vw));
    height: calc(16 * var(--px-vw));
  }
  .line .header__brand-image {
    width: calc(170 * var(--px-vw));
    height: calc(16 * var(--px-vw));
  }
  .header__menu {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(5 * var(--px-vw));
    width: calc(34 * var(--px-vw));
    color: #939393;
  }
  .header__menu-icon {
    position: relative;
    display: block;
    width: calc(30 * var(--px-vw));
    height: calc(3 * var(--px-vw));
    margin-top: calc(8 * var(--px-vw));
    margin-bottom: calc(6 * var(--px-vw));
    background: currentColor;
    transition: width 0.4s ease, background-color 0.4s ease, transform 0.4s ease;
  }
  .header__menu-icon::before, .header__menu-icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background: currentColor;
    transition: top 0.4s ease, transform 0.4s ease;
  }
  .header__menu-icon::before {
    top: calc(-7 * var(--px-vw));
  }
  .header__menu-icon::after {
    top: calc(7 * var(--px-vw));
  }
  .header__menu[aria-expanded=true] {
    position: fixed;
    top: calc(10 * var(--px-vw));
    right: calc(14 * var(--px-vw));
    z-index: 1001;
  }
  .header__menu[aria-expanded=true] .header__menu-icon {
    width: calc(24 * var(--px-vw));
    background: transparent;
    transform: translateY(calc(7 * var(--px-vw)));
  }
  .header__menu[aria-expanded=true] .header__menu-icon::before {
    top: 0;
    transform: rotate(45deg);
  }
  .header__menu[aria-expanded=true] .header__menu-icon::after {
    top: 0;
    transform: rotate(-45deg);
  }
  .header__menu[aria-expanded=true] .header__menu-label {
    visibility: hidden;
  }
}
@media screen and (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .header__menu-icon,
  .header__menu-icon::before,
  .header__menu-icon::after {
    transition: none;
  }
}
@media screen and (max-width: 767px) {
  .header__menu-label {
    font-size: calc(8 * var(--px-vw));
    line-height: 1;
  }
  .line .footer {
    padding-bottom: 60px;
  }
  .line .footer-inner {
    height: auto;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    min-height: calc(60 * var(--px-vw));
    padding: calc(17 * var(--px-vw)) calc(20 * var(--px-vw)) calc(15 * var(--px-vw));
    gap: calc(4 * var(--px-vw));
  }
  .line .footer-company {
    height: auto;
  }
  .line .footer-company img {
    height: auto;
    width: calc(125 * var(--px-vw));
  }
  .line .footer-copyright {
    font-size: calc(9 * var(--px-vw));
  }
}
.step__inner,
.app__inner,
.faq__inner {
  width: min(1000 * var(--px-vw), 1000px);
  max-width: 100%;
  margin: 0 auto;
}

.step__title,
.app__title {
  max-width: 100%;
  padding: min(9 * var(--px-vw), 9px) min(20 * var(--px-vw), 20px);
  border-radius: min(10 * var(--px-vw), 10px);
  background: var(--color-red);
  color: var(--color-white);
  font-size: min(34 * var(--px-vw), 34px);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.fv__phone img,
.step__qr img,
.step__image img,
.app__image img,
.msg__image img {
  width: 100%;
  height: auto;
  display: block;
}

.fv {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #d9ebf2;
  color: #222222;
}
.fv__scenery {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 1280/560;
  z-index: -1;
  pointer-events: none;
}
.fv__background, .fv__cloud {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.fv__background {
  inset: auto;
  left: -20.6078125%;
  bottom: 1.4285714286%;
  width: 123.4984375%;
  height: auto;
  max-width: none;
}
.fv__road {
  --car-width: 3.125vw;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: -1;
  pointer-events: none;
}
.fv__car-track {
  width: 100%;
  animation: fv-car-drive 27.71s linear infinite;
  animation-delay: -12.109s;
}
.fv__car {
  display: block;
  width: var(--car-width);
  height: auto;
}
.fv__cloud--1 {
  animation: fv-cloud-1 4.6667s ease-in-out infinite;
}
.fv__cloud--2 {
  animation: fv-cloud-2 6s ease-in-out infinite;
}
.fv__cloud--3 {
  animation: fv-cloud-3 7.3333s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .fv__cloud, .fv__car-track {
    animation: none;
  }
  .fv__car-track {
    transform: translateX(42%);
  }
}
.fv__inner {
  width: 100%;
  aspect-ratio: 1280/560;
  margin: 0 auto;
  padding: min(51 * var(--px-vw), 51px) min(140 * var(--px-vw), 140px) 0 min(160 * var(--px-vw), 160px);
  display: grid;
  grid-template-columns: minmax(0, 369fr) minmax(0, 276fr) minmax(0, 335fr);
  align-items: start;
}
.fv__inner > * {
  min-width: 0;
}
.fv__lead {
  padding-right: min(15 * var(--px-vw), 15px);
  margin-top: min(19 * var(--px-vw), 19px);
}
.fv__icon {
  display: block;
  width: min(110 * var(--px-vw), 110px);
  height: auto;
}
.fv__title {
  margin: min(37 * var(--px-vw), 37px) 0 0 min(5 * var(--px-vw), 5px);
  font-size: min(32 * var(--px-vw), 32px);
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.025em;
  overflow-wrap: anywhere;
}
.fv__phone {
  position: relative;
  display: block;
  width: min(225 * var(--px-vw), 225px);
  max-width: 100%;
}
.fv__phone .fv__phone-message {
  position: absolute;
  left: 14.2222222222%;
  top: 17.136659436%;
  width: 61.7777777778%;
  height: auto;
  animation: fv-message-in 0.1s ease-out 1.2s both;
}
@media (prefers-reduced-motion: reduce) {
  .fv__phone .fv__phone-message {
    animation: none;
  }
}
.fv__text {
  margin: min(117 * var(--px-vw), 117px) 0 0;
  font-size: min(18 * var(--px-vw), 18px);
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.025em;
  overflow-wrap: anywhere;
}

@media screen and (min-width: 1281px) {
  .fv {
    aspect-ratio: 1280/560;
  }
  .fv__inner {
    padding: calc(51 * var(--px-vw)) calc(140 * var(--px-vw)) 0 calc(160 * var(--px-vw));
  }
  .fv__lead {
    padding-right: calc(15 * var(--px-vw));
    margin-top: calc(19 * var(--px-vw));
  }
  .fv__icon {
    width: calc(110 * var(--px-vw));
  }
  .fv__title {
    margin: calc(37 * var(--px-vw)) 0 0 calc(5 * var(--px-vw));
    font-size: calc(32 * var(--px-vw));
  }
  .fv__phone {
    width: calc(225 * var(--px-vw));
  }
  .fv__text {
    margin-top: calc(117 * var(--px-vw));
    font-size: calc(18 * var(--px-vw));
  }
}
.index, .index.guide {
  position: sticky;
  top: 0;
  z-index: 190;
}
.index {
  padding: min(20 * var(--px-vw), 20px) min(20 * var(--px-vw), 20px);
  background: var(--color-red);
}
.index__list {
  width: min(950 * var(--px-vw), 950px);
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: min(10 * var(--px-vw), 10px);
  list-style: none;
}
.index__item {
  min-width: 0;
  display: flex;
}
.index__link {
  width: 100%;
  min-height: min(60 * var(--px-vw), 60px);
  padding: min(12 * var(--px-vw), 12px) min(8 * var(--px-vw), 8px);
  border-radius: min(10 * var(--px-vw), 10px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-white);
  color: var(--color-red);
  font-size: min(16 * var(--px-vw), 16px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.025em;
  text-align: center;
  overflow-wrap: anywhere;
}
.index__link:focus-visible {
  outline: 2px solid var(--color-charcoal);
  outline-offset: 3px;
}

.lp_line__main > section[id] {
  scroll-margin-top: var(--line-nav-height, 100px);
}

.step {
  padding: min(60 * var(--px-vw), 60px) min(20 * var(--px-vw), 20px) min(66 * var(--px-vw), 66px);
  background: #f0f0f0;
  color: #222222;
}
.step__title {
  width: min(348 * var(--px-vw), 348px);
  margin: 0 auto min(40 * var(--px-vw), 40px);
  letter-spacing: 0.04em;
}
.step__title::after {
  content: "";
  display: block;
  width: min(18 * var(--px-vw), 18px);
  height: min(15 * var(--px-vw), 15px);
  margin: min(8 * var(--px-vw), 8px) auto calc(-1 * min(23 * var(--px-vw), 23px));
  background: var(--color-red);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.step__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: min(30 * var(--px-vw), 30px);
}
.step__card {
  min-width: 0;
  padding: min(37 * var(--px-vw), 37px) min(36 * var(--px-vw), 36px) min(38 * var(--px-vw), 38px) min(38 * var(--px-vw), 38px);
  border: 1px solid #dedede;
  border-radius: min(30 * var(--px-vw), 30px);
  background: white;
  display: grid;
  grid-template-columns: min(66 * var(--px-vw), 66px) minmax(0, 1fr) min(241 * var(--px-vw), 241px);
  column-gap: min(36 * var(--px-vw), 36px);
  align-items: start;
}
.step__card--first {
  grid-template-columns: min(66 * var(--px-vw), 66px) minmax(0, 1fr);
}
.step__card--login {
  padding-bottom: 0;
  overflow: hidden;
}
.step__card--login .step__note {
  letter-spacing: 0.08em;
  text-align: justify;
  padding-left: min(4 * var(--px-vw), 4px);
}
.step__card--login .step__description {
  margin-top: min(7 * var(--px-vw), 7px);
  letter-spacing: 0.08em;
  text-align: justify;
}
.step__card--login .step__content {
  width: min(505 * var(--px-vw), 505px);
}
.step__card--complete {
  margin-top: min(20 * var(--px-vw), 20px);
  padding-bottom: 0;
}
.step__card--complete .step__content {
  margin-top: min(-2 * var(--px-vw), -2px);
}
.step__card--complete .step__description {
  margin-top: min(6 * var(--px-vw), 6px);
  letter-spacing: 0.06em;
}
.step__card--complete .step__note {
  margin-top: min(4 * var(--px-vw), 4px);
  letter-spacing: 0.07em;
}
.step__number {
  padding-top: min(8 * var(--px-vw), 8px);
  color: var(--color-red);
  text-align: center;
  font-weight: 700;
}
.step__number span {
  display: block;
  font-size: min(18 * var(--px-vw), 18px);
  line-height: 1.1;
}
.step__number b {
  display: block;
  font-size: min(48 * var(--px-vw), 48px);
  font-weight: 500;
  line-height: 1;
}
.step__content {
  min-width: 0;
}
.step__heading {
  margin: 0;
  color: var(--color-red);
  font-size: min(24 * var(--px-vw), 24px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03em;
}
.step__description {
  padding-left: 0.2em;
  margin: min(2 * var(--px-vw), 2px) 0 0;
  font-size: min(16 * var(--px-vw), 16px);
  line-height: 1.9;
  letter-spacing: 0.04em;
  font-weight: 400;
}
.step__card--first .step__description {
  line-height: 1.8;
}
.step__note {
  padding-left: 0.2em;
  margin: min(9 * var(--px-vw), 9px) 0 0;
  font-size: min(14 * var(--px-vw), 14px);
  line-height: 1.8;
}
.step__methods {
  width: min(815 * var(--px-vw), 815px);
  max-width: 100%;
  margin-top: min(26 * var(--px-vw), 26px);
  display: grid;
  grid-template-columns: minmax(0, 258fr) minmax(0, 209fr) minmax(0, 268fr);
  gap: min(40 * var(--px-vw), 40px);
}
.step__method {
  position: relative;
  min-width: 0;
  padding: min(16 * var(--px-vw), 16px) min(20 * var(--px-vw), 20px);
  border-radius: min(10 * var(--px-vw), 10px);
  background: #f0f0f0;
}
.step__method--qr {
  padding-inline: min(15 * var(--px-vw), 15px);
  text-align: center;
}
.step__method + .step__method::before {
  content: "or";
  position: absolute;
  top: 52%;
  left: calc(-1 * min(34 * var(--px-vw), 34px));
  transform: translateY(-50%);
  width: min(28 * var(--px-vw), 28px);
  height: min(28 * var(--px-vw), 28px);
  border-radius: 50%;
  background: #a0a0a0;
  color: white;
  font-size: min(16 * var(--px-vw), 16px);
  line-height: min(25 * var(--px-vw), 25px);
  text-align: center;
}
.step__method-title {
  margin: 0 0 min(13 * var(--px-vw), 13px);
  font-size: min(18 * var(--px-vw), 18px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.step__friend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(7 * var(--px-vw), 7px);
  min-height: min(63 * var(--px-vw), 63px);
  padding: min(9 * var(--px-vw), 9px);
  padding-right: min(12 * var(--px-vw), 12px);
  border: 1px solid #06c755;
  border-radius: min(10 * var(--px-vw), 10px);
  background: white;
  font-size: min(13 * var(--px-vw), 13px);
  font-weight: 700;
}
.step__friend img {
  width: min(42 * var(--px-vw), 42px);
  flex-shrink: 0;
}
.step__friend span {
  letter-spacing: 0.03em;
  margin-left: min(5 * var(--px-vw), 5px);
}
.step__friend::after {
  content: "";
  width: min(9.07 * var(--px-vw), 9.07px);
  height: min(16.14 * var(--px-vw), 16.14px);
  background: url("../img/step/step-arrow.svg") 50% 50%/contain no-repeat;
  flex-shrink: 0;
}
.step__method-note {
  text-align: justify;
  margin: min(10 * var(--px-vw), 10px) 0 0;
  font-size: min(14 * var(--px-vw), 14px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.04em;
}
.step__qr {
  display: block;
  width: min(113 * var(--px-vw), 113px);
  margin: 0 auto;
  padding: min(4.5 * var(--px-vw), 4.5px);
  background: var(--color-white);
}
.step__line-id {
  display: flex;
  margin: 0;
  border: 1px solid #06c755;
  border-radius: min(5 * var(--px-vw), 5px);
  overflow: hidden;
  font-size: min(14 * var(--px-vw), 14px);
  font-weight: 700;
  line-height: 1.5;
}
.step__line-id span {
  padding: min(7 * var(--px-vw), 7px) min(15 * var(--px-vw), 15px);
  background: #06c755;
  color: white;
  white-space: nowrap;
}
.step__line-id b {
  padding: min(7 * var(--px-vw), 7px) min(8 * var(--px-vw), 8px);
  background: white;
  flex: 1;
  text-align: center;
  white-space: nowrap;
}
.step__image {
  margin-top: min(2 * var(--px-vw), 2px);
  position: relative;
  display: block;
  width: min(240 * var(--px-vw), 240px);
  max-width: 100%;
  align-self: end;
  margin-left: max(-21 * var(--px-vw), -21px);
}
.step__card--complete .step__image {
  margin-top: calc(-1 * min(63 * var(--px-vw), 63px));
}
.step__register {
  margin: min(48 * var(--px-vw), 48px) 0 0;
  color: var(--color-red);
  font-size: min(16 * var(--px-vw), 16px);
  font-weight: 700;
  text-align: center;
}
.step__register a {
  margin-left: min(-6 * var(--px-vw), -6px);
  transition: 0.3s ease;
}
.step__register a:hover {
  color: #ea9876;
  opacity: 1;
}
.step__register a span:first-of-type {
  text-decoration: underline;
  text-underline-offset: 0.15em;
  letter-spacing: 0.06em;
}
.step__register a .arrow {
  padding-left: min(4 * var(--px-vw), 4px);
  text-decoration: none;
}

.app {
  padding: min(65 * var(--px-vw), 65px) min(20 * var(--px-vw), 20px) min(78 * var(--px-vw), 78px);
  background: var(--color-white);
  color: #222222;
}
.app__title {
  width: min(308 * var(--px-vw), 308px);
  margin: 0 auto;
  letter-spacing: 0.02em;
}
.app__title::after {
  content: "";
  display: block;
  width: min(18 * var(--px-vw), 18px);
  height: min(15 * var(--px-vw), 15px);
  margin: min(8 * var(--px-vw), 8px) auto max(-23 * var(--px-vw), -23px);
  background: var(--color-red);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.app__lead {
  margin: min(43 * var(--px-vw), 43px) 0 0;
  font-size: min(19 * var(--px-vw), 19px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: center;
}
.app__note {
  margin: min(7 * var(--px-vw), 7px) 0 0;
  font-size: min(15 * var(--px-vw), 15px);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: -0.01em;
  text-align: center;
}
.app__content {
  width: min(554 * var(--px-vw), 554px);
  max-width: 100%;
  margin: min(39 * var(--px-vw), 39px) auto 0;
  display: grid;
  grid-template-columns: minmax(0, 254fr) minmax(0, 75fr) minmax(0, 225fr);
  align-items: center;
}
.app__features {
  min-width: 0;
  margin: 0;
  padding: 0 min(14 * var(--px-vw), 14px) min(7 * var(--px-vw), 7px) 0;
  list-style: none;
}
.app__feature {
  min-height: min(90 * var(--px-vw), 90px);
  padding: min(10 * var(--px-vw), 10px) 0 min(10 * var(--px-vw), 10px);
  padding-left: min(6 * var(--px-vw), 6px);
  display: flex;
  align-items: center;
  gap: min(13 * var(--px-vw), 13px);
  color: var(--color-red);
  font-size: min(19 * var(--px-vw), 19px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.app__feature + .app__feature {
  border-top: 1px dashed #cccccc;
}
.app__feature img {
  width: min(64 * var(--px-vw), 64px);
  height: auto;
  flex-shrink: 0;
}
.app__feature span {
  min-width: 0;
}
.app__bracket {
  width: min(40 * var(--px-vw), 40px);
  height: 100%;
  max-height: min(444 * var(--px-vw), 444px);
}
.app__image {
  margin-left: min(-2 * var(--px-vw), -2px);
  display: block;
  width: 100%;
}

.msg {
  padding: min(67 * var(--px-vw), 67px) min(20 * var(--px-vw), 20px) min(60 * var(--px-vw), 60px);
  background: #f0f0f0;
  color: var(--color-black);
}
.msg__inner {
  width: min(910 * var(--px-vw), 910px);
  max-width: 100%;
  margin: 0 auto;
}
.msg__title {
  width: min(520 * var(--px-vw), 520px);
  max-width: 100%;
  margin: 0 0 0 min(3 * var(--px-vw), 3px);
  padding-bottom: min(8 * var(--px-vw), 8px);
  border-bottom: min(3 * var(--px-vw), 3px) solid var(--color-red);
  font-size: min(32 * var(--px-vw), 32px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.msg__lead {
  margin: min(22 * var(--px-vw), 22px) 0 0 min(5 * var(--px-vw), 5px);
  font-size: min(18 * var(--px-vw), 18px);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.05em;
}
.msg__content {
  margin-top: min(35 * var(--px-vw), 35px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(298 * var(--px-vw), 298px);
  align-items: start;
}
.msg__information {
  min-width: 0;
}
.msg__label {
  width: min(120 * var(--px-vw), 120px);
  max-width: 100%;
  margin: 0;
  padding: min(5 * var(--px-vw), 5px) min(10 * var(--px-vw), 10px);
  border-radius: 999px;
  background: var(--color-red);
  color: var(--color-white);
  font-size: min(18 * var(--px-vw), 18px);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.msg__list {
  display: grid;
  grid-template-columns: minmax(0, 214fr) minmax(0, 398fr);
  margin: min(10 * var(--px-vw), 10px) 0 0;
  padding: 0;
  list-style: none;
}
.msg__item {
  position: relative;
  min-width: 0;
  padding-left: min(21 * var(--px-vw), 21px);
  font-size: min(18 * var(--px-vw), 18px);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.05em;
}
.msg__item::before {
  content: "";
  position: absolute;
  top: min(10 * var(--px-vw), 10px);
  left: min(3 * var(--px-vw), 3px);
  width: min(16 * var(--px-vw), 16px);
  height: min(16 * var(--px-vw), 16px);
  border-radius: 50%;
  background: var(--color-red);
}
.msg__item--wide {
  grid-column: 1/-1;
}
.msg__detail {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(242 * var(--px-vw), 242px);
  max-width: 100%;
  min-height: min(50 * var(--px-vw), 50px);
  margin-top: min(39 * var(--px-vw), 39px);
  padding: min(9 * var(--px-vw), 9px) min(16 * var(--px-vw), 16px);
  border: 2px solid var(--color-red);
  border-radius: 999px;
  color: var(--color-red);
  font-size: min(18 * var(--px-vw), 18px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  position: relative;
  transition: 0.3s ease;
}
.msg__detail::after {
  content: "";
  width: min(9.07 * var(--px-vw), 9.07px);
  height: min(16.14 * var(--px-vw), 16.14px);
  position: absolute;
  right: min(16 * var(--px-vw), 16px);
  background: url("../img/msg/arrow.svg") center/contain no-repeat;
}
.msg__detail:focus-visible {
  outline: 2px solid var(--color-charcoal);
  outline-offset: 3px;
}
.msg__detail:hover {
  background-color: var(--color-red);
  color: white;
  opacity: 1;
}
.msg__detail:hover::after {
  filter: brightness(0) invert(1);
}
.msg__image {
  display: block;
  width: 100%;
  margin-top: max(-63 * var(--px-vw), -63px);
  margin-left: min(38 * var(--px-vw), 38px);
}

.faq {
  padding: min(72 * var(--px-vw), 72px) min(20 * var(--px-vw), 20px) min(80 * var(--px-vw), 80px);
  background: var(--color-white);
  color: #222222;
}
.faq__title {
  width: min(210 * var(--px-vw), 210px);
  max-width: 100%;
  margin: 0 auto min(51 * var(--px-vw), 51px);
  padding: 0 min(6 * var(--px-vw), 6px) min(16 * var(--px-vw), 16px);
  border-bottom: 3px solid var(--color-red);
  font-size: min(32 * var(--px-vw), 32px);
  font-weight: 700;
  line-height: 1.3125;
  letter-spacing: 0.1em;
  text-align: center;
}
.faq__list {
  width: min(830 * var(--px-vw), 830px);
  max-width: 100%;
  margin: 0 auto;
}
.faq__item + .faq__item {
  margin-top: min(36 * var(--px-vw), 36px);
}
.faq__question {
  min-height: min(80 * var(--px-vw), 80px);
  padding: min(9 * var(--px-vw), 9px) min(38 * var(--px-vw), 38px) min(9 * var(--px-vw), 9px) min(14 * var(--px-vw), 14px);
  border: 1px solid #aaaaaa;
  border-radius: min(50 * var(--px-vw), 50px);
  display: flex;
  align-items: center;
  gap: min(17 * var(--px-vw), 17px);
  cursor: pointer;
  list-style: none;
}
.faq__question::-webkit-details-marker {
  display: none;
}
.faq__question:focus-visible {
  outline: 2px solid var(--color-red);
  outline-offset: 3px;
}
.faq__question-text {
  flex: 1;
  min-width: 0;
  font-size: min(20 * var(--px-vw), 20px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.faq__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(50 * var(--px-vw), 50px);
  height: min(50 * var(--px-vw), 50px);
  border-radius: 50%;
  flex-shrink: 0;
  color: white;
  font-size: min(20 * var(--px-vw), 20px);
  font-weight: 700;
  line-height: 1;
  padding-bottom: min(2 * var(--px-vw), 2px);
}
.faq__badge--q {
  background: #939393;
}
.faq__badge--a {
  background: var(--color-red);
}
.faq__toggle {
  position: relative;
  width: min(28 * var(--px-vw), 28px);
  height: min(28 * var(--px-vw), 28px);
  flex-shrink: 0;
}
.faq__toggle::before, .faq__toggle::after {
  content: "";
  position: absolute;
  background: var(--color-red);
  border-radius: 999px;
}
.faq__toggle::before {
  width: 100%;
  height: min(4 * var(--px-vw), 4px);
  left: 0;
  top: calc(50% - min(2 * var(--px-vw), 2px));
}
.faq__toggle::after {
  width: min(4 * var(--px-vw), 4px);
  height: 100%;
  left: calc(50% - min(2 * var(--px-vw), 2px));
  top: 0;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 0.3s ease-in-out;
}
.faq__question[aria-expanded=true] .faq__toggle::after, .faq__item[open] .faq__question:not([aria-expanded]) .faq__toggle::after {
  transform: rotate(90deg);
}
.faq__panel {
  overflow: hidden;
}
.faq__answer {
  display: flex;
  align-items: flex-start;
  gap: min(17 * var(--px-vw), 17px);
  padding: min(28 * var(--px-vw), 28px) min(32 * var(--px-vw), 32px) 0 min(15 * var(--px-vw), 15px);
}
.faq__answer-text {
  margin-top: min(-2 * var(--px-vw), -2px);
  flex: 1;
  min-width: 0;
  font-size: min(16 * var(--px-vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.06em;
}
.faq__answer-notes {
  margin: min(10 * var(--px-vw), 10px) 0 0;
  padding: 0;
  list-style: none;
  font-size: min(14 * var(--px-vw), 14px);
  line-height: 1.9;
}
.faq__answer-notes li {
  padding-left: 1em;
  text-indent: -1em;
}
.faq__link {
  transition: 0.3s ease;
}
.faq__link:hover {
  color: #ea9876;
  opacity: 1;
}
.faq__link {
  display: inline;
  color: var(--color-red);
  font-size: min(16 * var(--px-vw), 16px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.12em;
  text-decoration: none;
}
.faq__link-text {
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.05em;
  letter-spacing: 0.04em;
}
.faq__link span[aria-hidden=true]:not(.faq__link-bullet) {
  margin-left: 0.35em;
}
.faq__link:disabled {
  cursor: default;
}
.faq__more {
  margin: min(32 * var(--px-vw), 32px) 0 0;
  text-align: right;
}
.faq__information {
  margin-top: min(54 * var(--px-vw), 54px);
  border-top: 1px solid #aaaaaa;
  padding-top: min(65 * var(--px-vw), 65px);
}
.faq__notice + .faq__notice {
  margin-top: min(60 * var(--px-vw), 60px);
}
.faq__notice-title {
  width: fit-content;
  margin: 0 0 min(7 * var(--px-vw), 7px);
  border-bottom: 1px solid var(--color-red);
  font-size: min(20 * var(--px-vw), 20px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.faq__notice p {
  margin: 0;
  font-size: min(14 * var(--px-vw), 14px);
  font-weight: 500;
  line-height: 1.9;
}
.faq__notes {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: min(14 * var(--px-vw), 14px);
  font-weight: 500;
  line-height: 1.9;
}
.faq__notes li {
  padding-left: 1em;
  text-indent: -1em;
}
.faq__notes li + li {
  margin-top: min(0 * var(--px-vw), 0px);
}
.faq__notice .faq__terms {
  margin-top: min(21 * var(--px-vw), 21px);
}
.faq__trademarks {
  margin-top: min(37 * var(--px-vw), 37px);
}

@media (prefers-reduced-motion: reduce) {
  .faq__toggle::after {
    transition: none;
  }
}
@media screen and (max-width: 767px) {
  .lp_line__main > section[id] {
    scroll-margin-top: calc(var(--line-nav-height, 50px) + 16px);
  }
  .fv {
    aspect-ratio: 375/590;
  }
  .fv__road {
    --car-width: calc(22 * var(--px-vw));
    top: calc(366 * var(--px-vw));
    bottom: auto;
  }
  .fv__car-track {
    animation-duration: 8.33335s;
    animation-delay: -1.3434s;
  }
  .fv__car {
    aspect-ratio: 22/15;
  }
  .fv__scenery {
    top: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 375/590;
  }
  .fv__background {
    inset: auto;
    top: calc(303 * var(--px-vw));
    left: 0;
    width: 100%;
    height: auto;
  }
  .fv__cloud {
    inset: auto;
    height: auto;
  }
  .fv__cloud--1 {
    left: calc(-16 * var(--px-vw));
    top: calc(44 * var(--px-vw));
    width: calc(382 * var(--px-vw));
    --cloud-x1: calc(3.375 * var(--px-vw));
    --cloud-y1: calc(-12.39 * var(--px-vw));
    max-width: none;
  }
  .fv__cloud--2 {
    left: calc(53 * var(--px-vw));
    top: calc(20 * var(--px-vw));
    width: calc(119 * var(--px-vw));
    --cloud-x2: calc(-4.5 * var(--px-vw));
    --cloud-y2: calc(8.85 * var(--px-vw));
  }
  .fv__cloud--3 {
    left: calc(157 * var(--px-vw));
    top: calc(80 * var(--px-vw));
    width: calc(106 * var(--px-vw));
    --cloud-x3a: calc(2.25 * var(--px-vw));
    --cloud-y3a: calc(-8.85 * var(--px-vw));
    --cloud-x3b: calc(-2.25 * var(--px-vw));
    --cloud-y3b: calc(5.31 * var(--px-vw));
  }
  .fv__inner {
    aspect-ratio: 375/590;
    min-height: 0;
    padding: calc(29 * var(--px-vw)) calc(33 * var(--px-vw)) calc(31 * var(--px-vw));
    display: grid;
    grid-template-columns: minmax(0, 185fr) minmax(0, 122fr);
    align-items: start;
  }
  .fv__lead {
    padding: 0;
    margin-top: calc(13 * var(--px-vw));
  }
  .fv__icon {
    width: calc(70 * var(--px-vw));
  }
  .fv__title {
    margin: calc(20 * var(--px-vw)) 0 0 calc(2 * var(--px-vw));
    font-size: calc(20 * var(--px-vw));
    line-height: 1.6;
    letter-spacing: 0.02em;
  }
  .fv__phone {
    width: 100%;
  }
  .fv__text {
    grid-column: 1/-1;
    margin: calc(125 * var(--px-vw)) 0 0;
    font-size: calc(15 * var(--px-vw));
    line-height: 2;
    letter-spacing: 0.02em;
  }
  .index, .index.guide {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: block;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-20%);
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s 0.3s;
    padding: calc(150 * var(--px-vw)) 0 calc(135 * var(--px-vw));
    background: #e6e6e6 url("../img/index/bg_1-sp.webp") center 0/100% auto no-repeat;
    background-image: image-set(url("../img/index/bg_1-sp.webp") 1x, url("../img/index/bg_1-sp@2x.webp") 2x, url("../img/index/bg_1-sp@3x.webp") 3x, url("../img/index/bg_1-sp@4x.webp") 4x);
    overflow-y: auto;
  }
  .index.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition: opacity 0.9s ease, transform 0.9s ease, visibility 0s;
  }
}
@media screen and (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .index, .index.is-open {
    transform: none;
    transition: none;
  }
}
@media screen and (max-width: 767px) {
  .index__list {
    position: relative;
    z-index: 1;
    width: calc(230 * var(--px-vw));
    margin: 0 auto;
    grid-template-columns: minmax(0, 1fr);
    gap: calc(20 * var(--px-vw));
  }
  .index__link {
    min-height: calc(60 * var(--px-vw));
    padding: calc(12 * var(--px-vw)) calc(8 * var(--px-vw));
    border: 1px solid var(--color-red);
    border-radius: calc(10 * var(--px-vw));
    font-size: calc(16 * var(--px-vw));
  }
  .step {
    padding: calc(40 * var(--px-vw)) calc(20 * var(--px-vw)) calc(45 * var(--px-vw));
  }
  .step__inner {
    width: 100%;
  }
  .step__title {
    width: calc(100% + 40 * var(--px-vw));
    max-width: none;
    margin: 0 calc(-20 * var(--px-vw)) calc(30 * var(--px-vw));
    padding: calc(7 * var(--px-vw)) calc(12 * var(--px-vw));
    border-radius: 0;
    font-size: calc(24 * var(--px-vw));
    line-height: 1.3;
  }
  .step__title::after {
    width: calc(14 * var(--px-vw));
    height: calc(12 * var(--px-vw));
    margin: calc(7 * var(--px-vw)) auto calc(-19 * var(--px-vw));
    position: relative;
    top: -1px;
  }
  .step__list {
    gap: calc(20 * var(--px-vw));
  }
  .step__card {
    padding: calc(24 * var(--px-vw)) calc(27 * var(--px-vw)) calc(34 * var(--px-vw));
    border-radius: calc(16 * var(--px-vw));
    grid-template-columns: minmax(0, 1fr);
    gap: calc(12 * var(--px-vw));
  }
  .step__card--login .step__description {
    padding: 0;
    margin-top: calc(13 * var(--px-vw));
    margin-left: calc(-2 * var(--px-vw));
    margin-right: calc(-2 * var(--px-vw));
    letter-spacing: 0.04em;
  }
  .step__card--login .step__note {
    padding: 0;
    margin-top: 0;
    margin-left: calc(-3 * var(--px-vw));
    margin-right: calc(-3 * var(--px-vw));
    padding-left: 1em;
    text-indent: -1em;
    letter-spacing: 0.1em;
  }
  .step__card--login .step__image {
    position: relative;
    left: calc(1 * var(--px-vw));
    margin-top: calc(10 * var(--px-vw));
  }
  .step__card--login, .step__card--complete {
    padding-bottom: 0;
  }
  .step__card--complete {
    margin-top: 0;
  }
  .step__card--complete .step__description {
    padding: 0;
    margin: calc(12 * var(--px-vw)) calc(-4 * var(--px-vw)) 0;
    text-align: justify;
    letter-spacing: 0.04em;
  }
  .step__card--complete .step__note {
    padding: 0;
    margin: calc(2 * var(--px-vw)) calc(-3 * var(--px-vw)) 0;
    padding-left: 1em;
    text-indent: -1em;
    text-align: justify;
    letter-spacing: 0.04em;
  }
  .step__card--login .step__content {
    width: 100%;
  }
  .step__number {
    display: block;
    padding-top: 0;
  }
  .step__number span {
    font-size: calc(16 * var(--px-vw));
    line-height: 1.1;
  }
  .step__number b {
    font-size: calc(42 * var(--px-vw));
    line-height: 1;
  }
  .step__heading {
    font-size: calc(20 * var(--px-vw));
    line-height: 1.5;
    text-align: center;
  }
  .step__description {
    margin-top: calc(12 * var(--px-vw));
    font-size: calc(15 * var(--px-vw));
    line-height: 1.9;
    font-weight: 500;
    letter-spacing: 0.01em;
  }
  .step__card--first .step__description {
    padding: 0;
    text-align: center;
    line-height: 1.9;
    margin-top: calc(12 * var(--px-vw));
    letter-spacing: 0.04em;
  }
  .step__note {
    margin-top: calc(3 * var(--px-vw));
    font-size: calc(13 * var(--px-vw));
    line-height: 1.7;
  }
  .step__methods {
    margin-top: calc(21 * var(--px-vw));
    grid-template-columns: minmax(0, 1fr);
    gap: calc(40 * var(--px-vw));
  }
  .step__method {
    padding: calc(20 * var(--px-vw)) calc(20 * var(--px-vw)) calc(15 * var(--px-vw));
    border-radius: calc(9 * var(--px-vw));
    text-align: left;
  }
  .step__method--qr {
    text-align: center;
    padding-bottom: calc(18 * var(--px-vw));
  }
  .step__method + .step__method::before {
    top: calc(-33 * var(--px-vw));
    left: 50%;
    transform: translateX(-50%);
    width: calc(28 * var(--px-vw));
    height: calc(28 * var(--px-vw));
    font-size: calc(16 * var(--px-vw));
    line-height: calc(24 * var(--px-vw));
  }
  .step__method--id .step__method-title {
    margin-bottom: calc(9 * var(--px-vw));
  }
  .step__method--id .step__method-note {
    margin-top: calc(10 * var(--px-vw));
    letter-spacing: 0.06em;
  }
  .step__method-title {
    margin-bottom: calc(10 * var(--px-vw));
    font-size: calc(17 * var(--px-vw));
    line-height: 1.5;
    letter-spacing: 0;
    text-align: center;
  }
  .step__friend {
    justify-content: flex-start;
    min-height: calc(63 * var(--px-vw));
    padding: calc(9 * var(--px-vw));
    padding-left: calc(11 * var(--px-vw));
    padding-right: calc(20 * var(--px-vw));
    gap: calc(14 * var(--px-vw));
    border-radius: calc(10 * var(--px-vw));
    font-size: calc(13 * var(--px-vw));
  }
  .step__friend img {
    width: calc(42 * var(--px-vw));
  }
  .step__friend span {
    margin-left: 0;
    letter-spacing: 0.02em;
  }
  .step__friend::after {
    width: calc(9.07 * var(--px-vw));
    height: calc(16.14 * var(--px-vw));
    margin-left: auto;
  }
  .step__method-note {
    margin-top: calc(8 * var(--px-vw));
    font-size: calc(14 * var(--px-vw));
    line-height: 1.55;
    letter-spacing: 0.08em;
    padding-left: 0.4em;
  }
  .step__qr {
    width: calc(113 * var(--px-vw));
    padding: calc(4.5 * var(--px-vw));
  }
  .step__line-id {
    border-radius: calc(5 * var(--px-vw));
    font-size: calc(13 * var(--px-vw));
  }
  .step__line-id span {
    padding: calc(7 * var(--px-vw)) calc(15 * var(--px-vw));
  }
  .step__line-id b {
    text-align: left;
    letter-spacing: 0.02em;
    padding: calc(7 * var(--px-vw)) calc(10 * var(--px-vw));
    padding-left: calc(15 * var(--px-vw));
  }
  .step__image {
    width: calc(241 * var(--px-vw));
    max-width: 100%;
    margin: calc(10 * var(--px-vw)) auto 0;
  }
  .step__card--complete .step__image {
    width: calc(195 * var(--px-vw));
    height: calc(242 * var(--px-vw));
    margin-top: calc(23 * var(--px-vw));
    overflow: hidden;
  }
  .step__card--complete .step__image img {
    height: auto;
  }
  .step__register {
    margin-top: calc(43 * var(--px-vw));
    font-size: calc(16 * var(--px-vw));
    line-height: 1.5;
    text-align: center;
    padding-left: 0.5em;
  }
  .app {
    padding: calc(40 * var(--px-vw)) calc(35 * var(--px-vw)) calc(40 * var(--px-vw));
  }
  .app__inner {
    width: 100%;
  }
  .app__title {
    width: calc(100% + 70 * var(--px-vw));
    max-width: none;
    margin-inline: calc(-35 * var(--px-vw));
    padding: calc(7 * var(--px-vw)) calc(12 * var(--px-vw));
    border-radius: 0;
    font-size: calc(24 * var(--px-vw));
    line-height: 1.3;
  }
  .app__title::after {
    width: calc(14 * var(--px-vw));
    height: calc(12 * var(--px-vw));
    margin: calc(7 * var(--px-vw)) auto calc(-19 * var(--px-vw));
    position: relative;
    top: -1px;
  }
  .app__lead {
    margin-top: calc(32 * var(--px-vw));
    font-size: calc(16 * var(--px-vw));
    line-height: 1.75;
    letter-spacing: 0.12em;
    text-align: justify;
  }
  .app__note {
    margin-top: calc(7 * var(--px-vw));
    font-size: calc(13 * var(--px-vw));
    line-height: 1.7;
    letter-spacing: 0.04em;
    text-align: justify;
    padding-left: 1em;
    text-indent: -1em;
  }
  .app__content {
    width: calc(315 * var(--px-vw));
    max-width: none;
    margin: calc(24 * var(--px-vw)) calc(-7 * var(--px-vw)) 0;
    grid-template-columns: minmax(0, 132fr) minmax(0, 40fr) minmax(0, 143fr);
    gap: 0;
  }
  .app__features {
    padding: 0 calc(4 * var(--px-vw)) calc(8 * var(--px-vw)) 0;
  }
  .app__feature {
    min-height: calc(55 * var(--px-vw));
    padding: calc(10 * var(--px-vw)) 0;
    gap: calc(7 * var(--px-vw));
    font-size: calc(13 * var(--px-vw));
    line-height: 1.5;
    letter-spacing: 0;
  }
  .app__feature img {
    width: calc(35 * var(--px-vw));
  }
  .app__bracket {
    display: block;
    width: calc(25 * var(--px-vw));
    height: 100%;
    max-height: calc(278 * var(--px-vw));
  }
  .app__image {
    width: 100%;
    margin: 0;
  }
  .msg {
    padding: calc(48 * var(--px-vw)) calc(35 * var(--px-vw)) calc(45 * var(--px-vw));
  }
  .msg__inner {
    width: 100%;
  }
  .msg__title {
    width: 100%;
    margin: 0;
    border: none;
    padding: 0;
    font-size: calc(24 * var(--px-vw));
    line-height: 1.5;
    letter-spacing: 0.06em;
    text-align: center;
  }
  .msg__title::after {
    content: "";
    display: block;
    width: calc(150 * var(--px-vw));
    height: 3px;
    margin: calc(10 * var(--px-vw)) auto 0;
    background: var(--color-red);
  }
  .msg__lead {
    text-align: justify;
    margin: calc(25 * var(--px-vw)) 0 0;
    font-size: calc(16 * var(--px-vw));
    line-height: 1.75;
    letter-spacing: 0.025em;
  }
  .msg__content {
    margin-top: calc(23 * var(--px-vw));
    grid-template-columns: minmax(0, 1fr);
    gap: calc(22 * var(--px-vw));
  }
  .msg__image {
    grid-row: 1;
    width: calc(282 * var(--px-vw));
    max-width: 100%;
    height: calc(239 * var(--px-vw));
    overflow: hidden;
    margin: 0 auto;
  }
  .msg__image img {
    width: calc(257 * var(--px-vw));
    max-width: none;
    margin-top: calc(-9 * var(--px-vw));
    margin-left: calc(20.5 * var(--px-vw));
  }
  .msg__information {
    padding: 0 calc(8 * var(--px-vw));
  }
  .msg__label {
    width: 100%;
    padding: calc(6 * var(--px-vw)) calc(22 * var(--px-vw));
    font-size: calc(18 * var(--px-vw));
    line-height: 1.4;
    text-align: left;
  }
  .msg__list {
    margin-top: calc(11 * var(--px-vw));
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .msg__item {
    padding-left: calc(17 * var(--px-vw));
    font-size: calc(16 * var(--px-vw));
    line-height: 1.9;
    letter-spacing: 0.03em;
  }
  .msg__item::before {
    width: calc(15 * var(--px-vw));
    height: calc(15 * var(--px-vw));
    top: calc(8 * var(--px-vw));
    left: calc(2 * var(--px-vw));
  }
  .msg__item-note {
    display: block;
    font-size: calc(14 * var(--px-vw));
    line-height: 1.7;
    margin-top: -0.1em;
    margin-left: -0.5em;
    letter-spacing: 0.08em;
  }
  .msg__detail {
    width: calc(242 * var(--px-vw));
    min-height: calc(50 * var(--px-vw));
    margin: calc(29 * var(--px-vw)) auto 0;
    padding: calc(9 * var(--px-vw)) calc(16 * var(--px-vw));
    font-size: calc(18 * var(--px-vw));
  }
  .msg__detail::after {
    width: calc(9.07 * var(--px-vw));
    height: calc(16.14 * var(--px-vw));
    right: calc(16 * var(--px-vw));
  }
  .faq {
    padding: calc(50 * var(--px-vw)) calc(20 * var(--px-vw)) calc(40 * var(--px-vw));
  }
  .faq__inner, .faq__list {
    width: 100%;
  }
  .faq__title {
    width: calc(168 * var(--px-vw));
    margin-bottom: calc(32 * var(--px-vw));
    padding: 0 calc(6 * var(--px-vw)) calc(13 * var(--px-vw));
    font-size: calc(24 * var(--px-vw));
    line-height: 1.3;
    letter-spacing: 0.1em;
  }
  .faq__item + .faq__item {
    margin-top: calc(37 * var(--px-vw));
  }
  .faq__question {
    min-height: calc(64 * var(--px-vw));
    padding: calc(10 * var(--px-vw)) calc(20 * var(--px-vw)) calc(10 * var(--px-vw)) calc(10 * var(--px-vw));
    gap: calc(12 * var(--px-vw));
    border-radius: calc(35 * var(--px-vw));
  }
  .faq__question-text {
    font-size: calc(15 * var(--px-vw));
    line-height: 1.5;
    letter-spacing: 0em;
    text-align: justify;
  }
  .faq__badge {
    width: calc(35 * var(--px-vw));
    height: calc(35 * var(--px-vw));
    font-size: calc(14 * var(--px-vw));
  }
  .faq__toggle {
    width: calc(20 * var(--px-vw));
    height: calc(20 * var(--px-vw));
  }
  .faq__toggle::before {
    height: calc(3 * var(--px-vw));
    top: calc(50% - 1.5 * var(--px-vw));
  }
  .faq__toggle::after {
    width: calc(3 * var(--px-vw));
    left: calc(50% - 1.5 * var(--px-vw));
  }
  .faq__answer {
    gap: calc(12 * var(--px-vw));
    padding: calc(14 * var(--px-vw)) calc(8 * var(--px-vw)) 0 calc(12 * var(--px-vw));
  }
  .faq__answer-text {
    text-align: justify;
    font-size: calc(15 * var(--px-vw));
    line-height: 1.75;
    letter-spacing: 0.04em;
  }
  .faq__answer-notes {
    margin-top: calc(10 * var(--px-vw));
    font-size: calc(13 * var(--px-vw));
    line-height: 1.75;
    padding-left: 1em;
    text-indent: -1em;
  }
  .faq__link {
    font-size: calc(15 * var(--px-vw));
  }
  .faq__link-text {
    letter-spacing: 0.2em;
  }
  .faq__link {
    letter-spacing: 0.08em;
  }
  .faq__more {
    margin-top: calc(28 * var(--px-vw));
    text-align: center;
  }
  .faq__information {
    margin-top: calc(46 * var(--px-vw));
    padding-top: calc(42 * var(--px-vw));
  }
  .faq__notice + .faq__notice {
    margin-top: calc(36 * var(--px-vw));
  }
  .faq__notice-title {
    margin-bottom: calc(10 * var(--px-vw));
    font-size: calc(18 * var(--px-vw));
    line-height: 1.5;
  }
  .faq__notice p, .faq__notes {
    font-size: calc(13 * var(--px-vw));
    line-height: 1.85;
  }
  .faq__notes li + li {
    margin-top: calc(8 * var(--px-vw));
  }
  .faq__notice .faq__terms {
    margin-top: calc(25 * var(--px-vw));
    margin-right: -1em;
  }
  .faq__notice .faq__terms .faq__link-text {
    letter-spacing: 0.1em;
  }
  .faq__notice .faq__terms .faq__link span[aria-hidden=true]:not(.faq__link-bullet) {
    margin-left: 0.25em;
  }
  .faq__trademarks {
    margin-top: calc(38 * var(--px-vw));
  }
}
@media screen and (min-width: 1281px) {
  .fv {
    aspect-ratio: 1280/560;
  }
}
@keyframes fv-cloud-1 {
  0%, 100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(var(--cloud-x1, 0.9%), var(--cloud-y1, -2.1%));
  }
}
@keyframes fv-cloud-2 {
  0%, 100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(var(--cloud-x2, -1.2%), var(--cloud-y2, 1.5%));
  }
}
@keyframes fv-cloud-3 {
  0%, 100% {
    transform: translate(0, 0);
  }
  35% {
    transform: translate(var(--cloud-x3a, 0.6%), var(--cloud-y3a, -1.5%));
  }
  70% {
    transform: translate(var(--cloud-x3b, -0.6%), var(--cloud-y3b, 0.9%));
  }
}
@keyframes fv-car-drive {
  from {
    transform: translateX(calc(-1 * var(--car-width)));
  }
  to {
    transform: translateX(100%);
  }
}
@keyframes fv-message-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.step__title.is-reveal-ready,
.app__title.is-reveal-ready {
  opacity: 0;
  transform: translateY(32px) scale(0.8);
  transform-origin: center bottom;
}
.step__title.is-reveal-ready.is-revealed,
.app__title.is-reveal-ready.is-revealed {
  animation: title-balloon-in 0.6s cubic-bezier(0.22, 1.8, 0.36, 1) both;
}

@keyframes title-balloon-in {
  from {
    opacity: 0;
    transform: translateY(32px) scale(0.8);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .step__title.is-reveal-ready,
  .app__title.is-reveal-ready {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
.app__features.is-reveal-ready .app__feature {
  opacity: 0;
  transform: translateY(16px);
}
.app__features.is-reveal-ready.is-revealed .app__feature {
  animation: app-feature-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) var(--feature-delay, 0s) both;
}

@keyframes app-feature-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .app__features.is-reveal-ready .app__feature {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
.step__card.is-reveal-ready {
  position: relative;
  opacity: 0;
}
.step__card.is-reveal-ready.is-revealed {
  animation: app-feature-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  .step__card.is-reveal-ready {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
.step__reveal-marker {
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.step__card--login.is-reveal-ready .step__image,
.step__card--complete.is-reveal-ready .step__image {
  opacity: 0;
}
.step__card--login.is-reveal-ready.is-revealed .step__image,
.step__card--complete.is-reveal-ready.is-revealed .step__image {
  animation: app-feature-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.9s both;
}

@media (prefers-reduced-motion: reduce) {
  .step__card--login.is-reveal-ready .step__image,
  .step__card--complete.is-reveal-ready .step__image {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
.step__card--login {
  overflow: hidden;
}

.step__card--complete {
  overflow: visible;
  clip-path: inset(-100vmax 0 0 0);
}

.msg.is-reveal-ready .msg__image {
  opacity: 0;
}
.msg.is-reveal-ready.is-revealed .msg__image {
  animation: app-feature-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.9s both;
}

@media (prefers-reduced-motion: reduce) {
  .msg.is-reveal-ready .msg__image {
    opacity: 1;
    transform: none;
    animation: none;
  }
}


