#footer {
  margin-top: 0;
}

.flex {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.flex_between {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.flex_center {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
.mac {
  display: none;
}
.section .btn {
  font-weight: 600;
  font-size: 2rem;
  border-radius: 12px;
  padding: 16px;
}
.section .btn_fill {
  background: radial-gradient(81.8% 100% at 50% 100%, #ff2e13 26.09%, #ffa220 100%);
  border: 1px solid rgba(255, 175, 139, 1);
  /* box-shadow: 0px 0px 0px 7px rgba(222, 210, 205, 0.25); */
}

body {
  width: 100%;
  overflow-x: hidden;
  background: linear-gradient(180deg, #f9f9fa 0%, #ebecf0 100%);
}
.banner {
  background: url(../location-changer/img/idx_banner_bg.jpg) center no-repeat;
  background-size: cover;
  padding: 8rem 0;
}
.banner_img {
  flex: 0 0 auto;
}

.banner_main {
  max-width: 1587px;
}
.banner_text {
  width: min(60%, 760px);
}
.banner_text h1 {
  font-weight: 700;
  font-size: clamp(28px, 2.5vw, 48px);
  line-height: 1.4;
  margin: 2rem 0 4.6rem 0;
}
.support_label p {
  padding: 8px 10px;
  font-weight: 500;
  color: #82420d;
  background: linear-gradient(180deg, #ffecd8 0%, #ffe2c3 100%);
  border: 1px solid #fff6ed;
  border-radius: 61px;
  line-height: 1.3;
}

.support_label svg {
  margin-left: 10px;
}

.banner_text ul {
  margin-top: 3rem;
}
.banner_text li {
  margin-top: 12px;
  background: url(../location-changer/img/idx_banner_li.svg) left center no-repeat;
  padding-left: 28px;
  font-size: 16px;
  color: #444;
}
.banner_text li strong {
  font-weight: 500;
  vertical-align: middle;
}

.banner_btns {
  gap: 3.5rem;
  margin-top: 4.2rem;
}
.banner_btns .btn {
  min-width: 260px;
  text-align: center;
}

.btn_desc {
  font-size: 14px;
  color: #593f2d;
  text-align: center;
  margin-top: 1rem;
}

.banner_btns .btn_outline {
  color: #ff5436;
  border: 1px solid rgba(255, 84, 54, 1);
  box-shadow: 0px 0px 12px 0px rgba(76, 24, 0, 0.08);
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.7) 57.25%);
}
.banner_btns .btn_outline:hover {
  color: #ff5436;
  border: 1px solid #ff5436;
}

h2 {
  font-weight: 600;
  font-size: clamp(27px, 2.3vw, 44px);
  text-align: center;
  color: #111;
}
h3 {
  font-weight: 600;
  font-size: clamp(21px, 1.04vw, 20px);
}

.use_case {
  margin: 12rem auto 7rem auto;
  overflow: hidden;
}
.use_case_main {
  position: relative;
  height: 580px;
  margin-top: 6rem;
  /* perspective: 2000px;
  perspective-origin: center center; */
  /* overflow: hidden; */
}

.use_case_item {
  width: min(100%, 912px);
  border-radius: 30px;
  /* background: url(../location-changer/img/idx_user_case_bg1.png) center no-repeat; */
  text-align: center;
  padding: 10rem 5rem;
  color: #fff;

  position: absolute;
  top: 50%;
  left: 50%;
  margin: auto;
  pointer-events: none;
  transform-style: preserve-3d;
  transition: transform 760ms cubic-bezier(0.22, 0.61, 0.36, 1);
  background: none;
}

.use_case_text {
  width: min(100%, 651px);
  margin: 0 auto;
}
.use_case_text h3 {
  font-size: clamp(21px, 1.24vw, 24px);
  margin-bottom: 10px;
}
.use_case_text p {
  font-weight: 500;
  margin-bottom: 20px;
}
.use_case_bg {
  width: 350px;
  position: absolute;
  left: 30px;
  top: 50%;
  transform: translateY(-50%);
}

.is-current.use_case_item1 {
  background: url(../location-changer/img/idx_use_case_bg1.png) center no-repeat;
  background-size: contain;
}
.is-current.use_case_item2 {
  background: url(../location-changer/img/idx_use_case_bg2.png) center no-repeat;
  background-size: contain;
}
.is-current.use_case_item3 {
  background: url(../location-changer/img/idx_use_case_bg3.png) center no-repeat;
  background-size: contain;
}
.is-current.use_case_item4 {
  background: url(../location-changer/img/idx_use_case_bg4.png) center no-repeat;
  background-size: contain;
}

.use_case_item.is-current {
  z-index: 5;
  opacity: 1;
  pointer-events: auto;
  transform: perspective(2000px) translate3d(-50%, -50%, 0) rotateY(0deg) scale(1);
}

.use_case_text {
  display: none;
  opacity: 0;
}

.is-current .use_case_text {
  display: block;
  opacity: 1;
}
.is-current .use_case_bg {
  display: none;
}

.use_case_item.is-left {
  z-index: 4;
  opacity: 0.84;
  pointer-events: auto;
  filter: blur(0);
  transform: perspective(2000px) translate3d(calc(-50% - 330px), -50%, -120px) rotateY(65deg)
    scale(0.84);
}

.use_case_item.is-right {
  z-index: 4;
  opacity: 0.84;
  pointer-events: auto;
  filter: blur(0);
  transform: perspective(2000px) translate3d(calc(-50% + 310px), -50%, -120px) rotateY(145deg)
    scale(0.84);
}
.use_case_item.is-far-left {
  z-index: 1;
  opacity: 0;
  transform: translate3d(calc(-50% - 430px), -50%, -220px) rotateY(68deg) scale(0.72);
}

.use_case_item.is-far-right {
  z-index: 1;
  opacity: 0;
  transform: translate3d(calc(-50% + 430px), -50%, -220px) rotateY(-68deg) scale(0.72);
}

.use_case_item.is-hidden {
  z-index: 0;
  opacity: 0;
  transform: translate3d(-50%, -50%, -260px) rotateY(0deg) scale(0.66);
}

/* controls */
.use_case_controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
  position: relative;
  z-index: 5;
}

.use_case_nav {
  width: 40px;
  height: 40px;
  border-radius: 100%;
  border: 2px solid rgba(255, 255, 255, 1);
  background: rgba(255, 255, 255, 0.58);
  color: #a3a3a3;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.08);

  cursor: pointer;
  transition:
    transform 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease;
}

.use_case_nav:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.22);
  transform: translateY(-1px);
}

.use_case_dots {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 36px;
  border: 2px solid rgba(255, 255, 255, 1);
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.08);
  padding: 15px 10px;
}

.use_case_dot {
  position: relative;
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 45px;
  background: rgba(205, 205, 205, 1);
  overflow: hidden;
  cursor: pointer;
}

.use_case_dot::after {
  content: '';
  position: absolute;
  background: rgba(68, 68, 68, 1);
  height: 100%;
  width: 0;
  top: 0;
  left: 0;
}

.use_case_dot.is-active {
  width: 48px;
}

.use_case_dot.is-active::after {
  animation: useCaseDotFill var(--dot-duration, 3200ms) linear forwards;
}

.use_case_main.is-paused + .use_case_controls .use_case_dot.is-active::after,
.use_case.is-paused .use_case_dot.is-active::after {
  animation-play-state: paused;
}

@keyframes useCaseDotFill {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

.features {
  max-width: 1720px;
  border-radius: 30px;
  background: #fff url(../location-changer/img/idx_feature_bg.jpg) center no-repeat;
  margin: 0 auto;
  background-size: cover;
  padding: 8rem 0;
}

.features_inner {
  margin-top: 6rem;
  position: relative;
}

.feature_list {
  position: relative;
  z-index: 2;
}
.feature_list li {
  width: 363px;
  background: linear-gradient(180deg, rgba(250, 245, 240, 0.7) 0%, rgba(255, 255, 255, 0.7) 100%);
  border-radius: 20px;
  padding: 30px 0;
  border: 1px solid #ffffff;
  text-align: center;
  margin: 20px 0;
  font-weight: 600;
  font-size: 2rem;
  cursor: pointer;
  position: relative;
}

li.active,
.feature_list li:hover {
  background: linear-gradient(270deg, #fc9249 0%, #ec482a 100%);
  border: 1px solid #ffffff8f;
  box-shadow: 0px 23.8px 14.45px 0px #0000000d;
  color: #fff;
}

.mode_icon {
  position: absolute;
  right: -12px;
  top: 50%;
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: #f65a2f;
  border: 6px solid #fff7d7;
  box-shadow: 0 0 0 6px rgba(255, 191, 82, 0.18);
  opacity: 0;
  pointer-events: none;
}

.feature_list li.active .mode_icon {
  opacity: 1;
}

.feature_line {
  position: absolute;
  left: -15px;
  top: 110px;
  width: 2px;
  height: 477px;
  background: #f65a2f;
}
.feature_line2 {
  top: 225px;
  height: 362px;
}

.feature_line3 {
  top: 338px;
  height: 247px;
}

.feature_line4 {
  top: 453px;
  height: 133px;
}

.feature_line5 {
  top: 568px;
  height: 20px;
}

.feature_line::before {
  content: '';
  position: absolute;
  right: 0px;
  top: -15px;
  width: 28px;
  height: 36px;
  border-right: 2px solid #f65a2f;
  border-top: 2px solid #f65a2f;
  border-top-right-radius: 17px;
  box-sizing: border-box;
}
.feature_line::after {
  content: '';
  position: absolute;
  right: -73px;
  bottom: -20px;
  width: 75px;
  height: 36px;
  border-left: 2px solid #f65a2f;
  border-bottom: 2px solid #f65a2f;
  border-bottom-left-radius: 17px;
  box-sizing: border-box;
}

/* .feature_rights {
  position: relative;
  width: 420px;
  min-height: 760px;
} */

.feature_rights {
  width: 1000px;
  position: relative;
  filter: drop-shadow(0px 12px 24px rgba(0, 0, 0, 0.15));
  transform-origin: left top;
}
.feature_rights_main {
  width: 100%;
  position: relative;
  display: none;
  --ani-delay: 1s;
}
.feature_rights_main.active {
  display: block;
}

.pc {
  width: 889px;
  height: 643px;
  left: 0;
  top: 0;
  border-radius: 30px;
  background:
    url(../location-changer/img/map_bg@2x.png) center 20px no-repeat,
    linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0.4) 17.31%, #fdf6f3 68.27%);
  border: 4px solid #ffffff;
  padding: 20px;
  background-size:
    95.5% auto,
    auto;
  position: relative;
}

.phone {
  width: 220px;
  height: 439px;
  background: url(../location-changer/img/idx_feature_phone@2x.png) center no-repeat;
  background-size: 220px auto;
  position: absolute;
  z-index: 2;
  background-size: cover;
  bottom: 0;
  right: 0;
}

.feature_desc {
  position: absolute;
  padding-left: 40px;
  margin-left: 20px;
  bottom: 20px;
}
.feature_desc .mode_icon {
  opacity: 1;
  display: block;
  left: 0;
}

.feature_card {
  position: absolute;
  top: 40px;
  left: 40px;
  width: 274px;
  /* height: 302px; */
  padding: 3rem 1.5rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 10px 24px rgba(191, 196, 210, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.8);
  color: #1c1c1e;
  z-index: 2;
}
.feature_card h3 {
  text-align: center;
}

.feature_card_main {
  border-radius: 10px;
  background-color: #fff;
  margin: 10px auto;
  padding: 10px;
}
.feature_card_item {
  font-size: 12px;
  position: relative;
}
.feature_card_item::after {
  content: '';
  width: 1px;
  height: calc(100% - 26px);
  position: absolute;
  top: 25px;
  left: 10px;
  border-left: 1px dashed #e1e1e1;
}
.feature_card_item:last-of-type::after {
  display: none;
}

.feature_card p {
  font-weight: 500;
  border-radius: 6px;
  background: #fafafa;
  padding: 2px 8px;
  margin: 6px 0 6px 15px;
  display: flex;
}
.feature_card b {
  display: flex;
  gap: 3px;
  font-weight: 500;
}
.feature_card_item em {
  width: 16px;
  height: 16px;
  display: block;
  gap: 10px;
  border-radius: 100%;
  font-weight: 500;
  font-size: 12px;
  color: #fff;
  text-align: center;
  line-height: 16px;
  background: linear-gradient(180deg, #fc9249 0%, #ff7a1a 100%);
  font-style: normal;
  margin: 2px 2px 0 0;
}
.feature_card_item p > span {
  display: block;
  max-width: 90%;
}

.feature_card .btn {
  width: 100%;
  background: linear-gradient(180deg, #7da2f6 0%, #326ff0 80.83%);
  border-radius: 8px;
  padding: 4px 12px;
  border: navajowhite;
}
.feature_card .btn:hover {
  background: linear-gradient(180deg, #326ff0 0%, #7da2f6 80.83%);
}

.mouse {
  width: 43px;
  height: 45px;
  right: 30px;
  bottom: 0;
  opacity: 0;
  position: absolute;
  background: url(../location-changer/img/mouse.svg) center no-repeat;
  background-size: contain;
}

.active .mouse {
  animation: mouse 1s ease-in-out forwards;
}
.active .move_btn {
  animation: btnClick 0.3s 0.5s ease-in-out forwards;
}

@keyframes mouse {
  0% {
    transform: translateY(230px) scale(1);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  50% {
    transform: translateY(0) scale(1);
  }
  60% {
    transform: translateY(0) scale(0.8);
  }
  70% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
  80%,
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes btnClick {
  0%,
  100% {
    transform: scale(1);
  }
  50%,
  60% {
    transform: scale(1.05);
  }
}

.feature_animation {
  position: absolute;
  z-index: 2;
}

.start {
  width: 70px;
  height: 70px;
  background: url(../location-changer/img/idx_map_start.svg) center no-repeat;
  position: absolute;
  background-size: contain;
  z-index: 3;
}
.start img {
  position: absolute;
  top: 15px;
  left: 21px;
}
.end {
  width: 70px;
  height: 70px;
  background: url(../location-changer/img/idx_map_end.svg) no-repeat;
  background-size: contain;
  position: absolute;
}
.end span {
  display: block;
  margin: 11px auto;
  font-weight: 600;
  font-size: 18px;
  text-align: center;
  color: #fff;
}
.phone .end span {
  font-size: 10px;
  margin-top: 4px;
}

.phone .start {
  width: 50px;
  height: 50px;
}
.phone .end {
  width: 36px;
  height: 36px;
}

.pc .an1 .start,
.pc .an5 .start {
  top: 355px;
  left: 410px;
}

.pc .an1 .end {
  top: 175px;
  left: 550px;
}
.phone .an1 .start {
  top: 275px;
  left: 55px;
}
.phone .an1 .end {
  top: 180px;
  left: 130px;
}
.phone .an5 .start {
  top: 280px;
  left: 55px;
  position: absolute;
}
.phone .an5 img {
  position: absolute;
  top: 11px;
  left: 17px;
}

.stage {
  position: absolute;
  top: 120px;
  left: 340px;
  width: 330px;
  height: 275px;

  --l: 0;
  --o1: 0;
  --o2: 0;
  --o3: 0;
}

.phone .an2 .stage {
  left: 30px;
  width: 171px;
  height: 143px;
  top: 150px;
}
.phone .an4 .stage {
  left: 25px;
  width: 170px;
  height: 143px;
  top: 148px;
}
.pc .an3 .stage {
  width: 132px;
  height: 160px;
  top: 232px;
  left: 444px;
}
.phone .an3 .stage {
  width: 84px;
  height: 102px;
  left: 80px;
  top: 204px;
}

.mask-path {
  fill: none;
  stroke: white;
  stroke-width: 12;
  stroke-linecap: round;
  stroke-dasharray: var(--l);
  stroke-dashoffset: 0;
}

.an2 .start {
  left: 0;
  top: 0;
  offset-path: path(
    'M110.5 271.748L325.68 119.184C326.286 118.754 326.228 117.836 325.572 117.486L111.194 3.11782C110.787 2.90067 110.284 2.99016 109.977 3.33441L3 123.248'
  );
  offset-distance: 0%;
  offset-rotate: 0deg;
  opacity: 1;
}
.phone .an2 .start {
  offset-path: path(
    'M57.1332 140.506L168.391 61.6235C168.704 61.4011 168.674 60.9264 168.335 60.7455L57.4918 1.61197C57.2813 1.4997 57.0214 1.54596 56.8626 1.72396L1.55078 63.7246'
  );
}

.pc .an3 .start {
  offset-path: path('M3 156.5V15C3 8.37258 8.37258 3 15 3H128.5');
  left: 0;
  top: 0;
}
.phone .an3 .start {
  offset-path: path(
    'M1.91211 99.7688V9.5626C1.91211 5.33762 5.33713 1.9126 9.56211 1.9126H81.9183'
  );
  left: 0;
  top: 0;
}
.pc .an4 .start {
  offset-path: path(
    'M110.5 271.748V119.248C110.5 118.696 110.948 118.248 111.5 118.248H323.001C324.042 118.248 324.39 116.855 323.472 116.366L111.194 3.11782C110.787 2.90067 110.284 2.99016 109.977 3.33441L3 123.248'
  );
  left: 0;
  top: 0;
}
.phone .an4 .start {
  offset-path: path(
    'M57.1332 140.506V61.6564C57.1332 61.3709 57.3647 61.1394 57.6502 61.1394H167.006C167.544 61.1394 167.724 60.4195 167.249 60.1662L57.4918 1.61197C57.2813 1.4997 57.0214 1.54596 56.8626 1.72396L1.55078 63.7246'
  );
  left: 0;
  top: 0;
}

.end1 {
  right: -30px;
  bottom: 147px;
}
.end2 {
  left: 75px;
  top: -53px;
}
.end3 {
  left: -30px;
  top: 70px;
}
.phone .end1 {
  right: -15px;
  bottom: 76px;
}
.phone .end2 {
  left: 40px;
  top: -25px;
}
.phone .an4 .end2 {
  left: 40px;
  top: -30px;
}
.phone .end3 {
  left: -10px;
  top: 30px;
}
.phone .an4 .end3 {
  left: -20px;
  top: 38px;
}

.pc .an3 .end {
  left: 100px;
  top: -55px;
}
.phone .an3 .end {
  right: -15px;
  top: -27px;
}

@keyframes an1StartPc {
  0% {
    transform: translate(0);
  }
  100% {
    transform: translate(130px, -160px);
  }
}

@keyframes an1StartPhone {
  0% {
    transform: translate(0);
  }
  100% {
    transform: translate(65px, -102px);
  }
}

@keyframes showHide {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes hideShow {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes hideShowHide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

.active .an1 .start {
  animation: an1StartPc 1s var(--ani-delay) ease-in-out forwards;
}
.active .phone .an1 .start {
  animation: an1StartPhone 1s var(--ani-delay) ease-in-out forwards;
}
.active .an1 .end {
  animation: showHide 0.2s calc(var(--ani-delay) + 0.9s) ease-in-out forwards;
}

.active_custom .move_btn,
.active_custom .mouse {
  animation-play-state: paused;
}
.active .an2 .start {
  animation: pathSvg 3s var(--ani-delay) linear forwards;
}
.active .an3 .start {
  animation: pathSvg2 1s var(--ani-delay) linear forwards;
}

.active .an4 .start {
  animation: pathSvg2 3s var(--ani-delay) linear forwards;
}

.active .an2 .mask-path {
  animation: erasePath 3s var(--ani-delay) linear forwards;
}
.active .an3 .mask-path {
  animation: erasePath2 1s var(--ani-delay) linear forwards;
}
.active .an4 .mask-path {
  animation: erasePath2 3s var(--ani-delay) linear forwards;
}
.active .an2 .end1 {
  animation: showHide 0.1s calc(var(--ani-delay) + 0.9s) ease-in-out forwards;
}
.active .an2 .end2 {
  animation: showHide 0.1s calc(var(--ani-delay) + 2s) ease-in-out forwards;
}
.active .an2 .end3 {
  animation: showHide 0.1s calc(var(--ani-delay) + 2.7s) ease-in-out forwards;
}
.active .an3 .end {
  animation: showHide 0.1s calc(var(--ani-delay) + 1s) ease-in-out forwards;
}
.active .an4 .end1 {
  animation: showHide 0.1s calc(var(--ani-delay) + 1.4s) ease-in-out forwards;
}
.active .an4 .end2 {
  animation: showHide 0.1s calc(var(--ani-delay) + 2.4s) ease-in-out forwards;
}
.active .an4 .end3 {
  animation: showHide 0.1s calc(var(--ani-delay) + 3s) ease-in-out forwards;
}
@keyframes pathSvg {
  0% {
    offset-distance: 0%;
    opacity: 1;
  }
  30.3% {
    offset-distance: 39.4%;
    opacity: 1;
  }
  38.0% {
    offset-distance: 39.4%;
    opacity: 1;
  }
  66.0% {
    offset-distance: 75.8%;
    opacity: 1;
  }
  73.7% {
    offset-distance: 75.8%;
    opacity: 1;
  }
  92.3% {
    offset-distance: 100%;
    opacity: 1;
  }
  100% {
    offset-distance: 100%;
    opacity: 1;
  }
}

@keyframes pathSvg2 {
  0% {
    offset-distance: 0%;
    opacity: 1;
  }
  100% {
    offset-distance: 100%;
    opacity: 1;
  }
}

@keyframes erasePath {
  0% {
    stroke-dashoffset: 0;
  }
  30.3% {
    stroke-dashoffset: var(--o1);
  }
  38.0% {
    stroke-dashoffset: var(--o1);
  }
  66.0% {
    stroke-dashoffset: var(--o2);
  }
  73.7% {
    stroke-dashoffset: var(--o2);
  }
  92.3% {
    stroke-dashoffset: var(--o3);
  }
  100% {
    stroke-dashoffset: var(--o3);
  }
}

@keyframes erasePath2 {
  0% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: var(--o3);
  }
}

.joystick_main {
  width: 186px;
  height: 186px;
  background: url(../location-changer/img/idx_joystick_bg@2x.png) center no-repeat;
  background-size: contain;
  border-radius: 100%;
  position: absolute;
  top: 310px;
  left: 35px;
  box-shadow: 0px 0px 11.16px 0px rgba(0, 0, 0, 0.08);
}

.roller_inner {
  width: 100%;
  height: 100%;
  border-radius: 100%;
}
.joystick_roller {
  width: 14px;
  height: 14px;
  box-shadow: 0px 1.29px 7.77px 0px rgba(0, 0, 0, 0.15);
  border-radius: 100%;
  background-color: #fff;
  position: absolute;
  top: 2px;
  left: 85px;
}
.joystick_roller:after {
  content: '';
  width: 7px;
  height: 7px;
  display: block;
  border-radius: 100%;
  background: var(--color-link);
  margin: 3.5px;
}

.active .roller_inner {
  animation: movToRight 0.3s calc(var(--ani-delay) + 0.3s) ease-in-out forwards;
}
.active .an5 .start {
  animation: an5Move 1s var(--ani-delay) ease-in-out forwards;
}
.active .pc .an5 .start img {
  animation: an5Rotate 0.3s calc(var(--ani-delay) + 0.4s) ease-in-out forwards;
}

.active .an5 .joystick_top {
  animation: hideShowHide 0.6s var(--ani-delay) ease-in-out forwards;
}
.active .an5 .joystick_right {
  animation: hideShow 0.3s calc(var(--ani-delay) + 0.4s) ease-in-out forwards;
}
.active .an5 .joystick_start {
  animation: hideShow 0.2s var(--ani-delay) ease-in-out forwards;
}

.active .phone .an5 .start {
  animation: an5Move2 1s var(--ani-delay) ease-in-out forwards;
}
.active .phone .an5 .start img {
  animation: an5Rotate2 0.3s calc(var(--ani-delay) + 0.4s) ease-in-out forwards;
}

@keyframes movToRight {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(90deg);
  }
}

@keyframes an5Move {
  0% {
    transform: translate(0);
  }
  50% {
    transform: translate(0px, -150px);
  }
  100% {
    transform: translate(150px, -150px);
  }
}
@keyframes an5Rotate {
  from {
    top: 15px;
    left: 21px;
    transform: rotate(0deg);
  }
  to {
    top: 18px;
    left: 24px;
    transform: rotate(90deg);
  }
}

@keyframes an5Move2 {
  0% {
    transform: translate(0);
  }
  30%,
  70% {
    transform: translate(0px, -95px);
  }
  100% {
    transform: translate(80px, -95px);
  }
}

@keyframes an5Rotate2 {
  from {
    top: 11px;
    left: 17px;
    transform: rotate(0deg);
  }
  to {
    top: 15px;
    left: 20px;
    transform: rotate(90deg);
  }
}

.joystick_start {
  width: 55px;
  height: 55px;
  border-radius: 100%;
  background: linear-gradient(180deg, #7da2f6 0%, #326ff0 80%);
  border: 1.2px solid #fff;
  box-shadow: 9px 10px 10.6px 0px rgba(191, 196, 210, 0.25);
  backdrop-filter: blur(20px);
  position: absolute;
  top: 65px;
  left: 65px;
  opacity: 0;
}
.joystick_start::after {
  content: '';
  width: 16px;
  height: 16px;
  display: block;
  border-radius: 100%;
  background: #ff4a49;
  margin: 19px auto;
}

.joystick_top {
  left: 43px;
  position: absolute;
  top: 18px;
  opacity: 0;
}
.joystick_right {
  right: 18px;
  position: absolute;
  bottom: 35px;
  opacity: 0;
}

.capabilities {
  position: relative;
}

.capabilities_main {
  width: min(100%, 1100px);
  position: absolute;
  top: 10rem;
  left: 0;
  right: 0;
  margin: 0 auto;
  text-align: center;
  z-index: 2;
}
.capabilities_desc {
  font-weight: 500;
  font-size: 16px;
  color: #666;
  margin: 10px auto 30px auto;
}

.capabilities_main .btn {
  width: min(80%, 280px);
}

.capabilities_bottom {
  background: rgba(255, 255, 255, 0.7);
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.capabilities_blocks {
  gap: 3rem;
  text-align: center;
}

.capabilities_item {
  padding: 3.6rem;
  position: relative;
  cursor: pointer;
  color: #444;
}

.capabilities_item h3 {
  color: inherit;
}

.capabilities_item p {
  margin-top: 5px;
  font-size: 14px;
  color: rgba(51, 51, 51, 0.7);
}
.capabilities_item.active,
.capabilities_item:hover {
  color: #ff5436;
}

.capabilities_item.active p,
.capabilities_item:hover p {
  color: inherit;
}

.capabilities_item + .capabilities_item::before {
  content: '';
  width: 1px;
  height: 60px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.16);
}

.capabilities_line {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(270deg, #fc9249 0%, #ec482a 100%);
  transform: scaleX(0);
  transform-origin: left center;
}

.capabilities_item.active .capabilities_line {
  animation: lineGrow var(--line-duration) linear forwards;
}

@keyframes lineGrow {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

.capabilities_videos {
  width: 100%;
  /* aspect-ratio: 2822 / 1440; */
  overflow: hidden;
}

.capabilities_videos video {
  display: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: top;
}

.capabilities_videos video.active {
  display: block;
}

.showcase {
  margin: 10rem auto 0 auto;
  text-align: center;
  padding: 10rem 0 142px 0;
  color: #444444;
  background: url(../location-changer/img/idx_showcase_bg.png) top center no-repeat;
  background-size: auto 100%;
}

.showcase h2 {
  color: inherit;
}

.showcase_main {
  position: relative;
  z-index: 2;
}
.showcase_main > p {
  margin-top: 10px;
  font-size: 16px;
}
.showcase_blocks {
  gap: 2rem;
  align-items: stretch;
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  margin-top: 6rem;
  justify-content: center;
}

.showcase_item {
  padding: 2rem 2.8rem;
  border-radius: 3rem;
  border: 2px solid rgba(255, 255, 255, 1);
  box-shadow: 0px 20px 20px 0px rgba(0, 0, 0, 0.05);
  background: rgba(255, 255, 255, 0.9);
  text-align: left;
}
.showcase_item1,
.showcase_item2,
.showcase_item3 {
  width: 32%;
}
.showcase_item4,
.showcase_item5 {
  width: 49%;
}
.showcase_item6,
.showcase_item8 {
  width: 29%;
}
.showcase_item7 {
  width: 39%;
}

.showcase_item h3 {
  color: #111;
}
.showcase_item p {
  font-weight: 500;
  font-size: 14px;
  color: #555;
  margin: 5px 0 2rem 0;
  min-height: 3em;
}

.flex_between.showcase_item {
  gap: 20px;
}
.steps {
  padding-bottom: 8rem;
  background: url(../location-changer/img/idx_steps_bg.png) center no-repeat;
}
.steps_main {
  width: min(100%, 1280px);
  text-align: center;
}
.steps_text_block {
  gap: 27px;
  margin-top: 6rem;
}
.steps_item {
  width: 33%;
  padding: 0 24px;
  cursor: pointer;
  text-align: left;
}
.steps_item h3 {
  font-weight: 600;
  font-size: 18px;
  color: rgba(17, 17, 17, 1);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}
.step_num {
  flex: 0 0 45px;
  width: 45px;
  height: 45px;
  border-radius: 100%;
  /* display: inline-flex;
  align-items: center;
  justify-content: center; */
  font-size: 30px;
  font-weight: 700;
  line-height: 43px;
  padding-left: 11px;
  /* text-align: center; */
  font-style: Italic;
  background: rgba(0, 0, 0, 0.08);
  color: #444;
}
.steps_item p {
  font-weight: 400;
  font-size: 14px;
  color: #444;
  margin-top: 12px;
}

.steps_item.active .step_num {
  background: linear-gradient(168.2deg, #fc9249 27.09%, #ec482a 91.36%) border-box;
  border: 2px solid rgba(255, 255, 255, 0.41);
  color: #fff;
}

.steps_cards {
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255, 252, 250, 0.6) 0%, rgba(240, 242, 250, 0.6) 100%);
  border: 2px solid rgba(255, 255, 255, 1);
  box-shadow:
    0 20px 20px rgba(0, 0, 0, 0.05),
    0 0 0 5px rgba(255, 255, 255, 0.28);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4rem;
  margin: 4rem auto 3rem auto;
}

.steps_button {
  width: 58px;
  height: 58px;
  border-radius: 100%;
  background: rgba(255, 255, 255, 0.5);
}
.steps_button .icon_arrow_right {
  font-weight: 800;
  font-size: 20px;
  line-height: 58px;
}

.steps_prev {
  transform: rotate(-180deg);
}
.steps_button:hover {
  background: #fff;
}

.steps_card {
  max-width: 998px;
  overflow: hidden;
  position: relative;
}
.steps_card img {
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 0.35s ease;
}

.steps_card .active {
  opacity: 1;
  z-index: 2;
  position: relative;
}

.steps_main .btn_fill {
  width: min(80%, 320px);
  margin: 0 auto;
  text-align: center;
}

.reviews {
  margin: 6rem auto 8rem auto;
}
.reviews_mask {
  margin-top: 6rem;
  position: relative;
}

.reviews_mask::before,
.reviews_mask::after {
  width: 25%;
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  pointer-events: none;
}

.reviews_mask::before {
  left: 0;
  background: linear-gradient(90deg, #eff0f3 65.21%, rgba(239, 240, 243, 0) 100%);
}

.reviews_mask::after {
  right: 0;
  background: linear-gradient(90deg, rgba(239, 240, 243, 0) 0%, #eff0f3 34.18%);
}

.reviews_blocks {
  display: flex;
  align-items: stretch;
  gap: 3rem;
}

.reviews_item {
  flex: 0 0 790px;
  border-radius: 30px;
  padding: 10rem 7rem;
  background-color: #fff;
  text-align: center;
}

.reviews_text {
  font-size: 2.6rem;
  color: rgba(68, 68, 68, 1);
}

.reviews_item_user {
  margin-top: 7rem;
}
.reviews_item_user img {
  display: block;
}
.reviews_item_user_name {
  text-align: left;
  margin-left: 12px;
}
.reviews_item_user_name b {
  font-weight: 600;
  font-size: 18px;
  color: #444444;
  margin-bottom: 5px;
}

.prodcut {
  width: min(100%, 1720px);
  background: url(../location-changer/img/idx_product_bg.png) center no-repeat;
  background-size: cover;
  padding: 8.5rem 0;
  text-align: center;
  margin: 8rem auto 12rem auto;
  border-radius: 30px;
}
.prodcut h2 {
  font-size: clamp(32px, 2.92vw, 56px);
  margin: 4rem auto 2rem auto;
}
.prodcut_desc {
  width: min(100%, 1100px);
  font-weight: 500;
  font-size: 2rem;
  color: rgba(102, 102, 102, 1);
  margin: 0 auto 4rem auto;
}
.product_btns {
  gap: 3.5rem;
}
.product_btns .btn_item {
  min-width: 260px;
}
.product_btns .btn {
  width: 100%;
}
.product_btns .btn_outline {
  border: 1px solid rgba(255, 255, 255, 1);
  box-shadow: 0px 0px 12px 0px rgba(76, 24, 0, 0.08);
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.7) 57.25%);
}

.faq {
  width: min(100%, 1280px);
}
.faq_item {
  border-radius: 20px;
  padding: 0 30px;
  border: 2px solid rgba(255, 255, 255, 1);
  background: rgba(252, 251, 250, 1);
  margin-top: 20px;
  color: rgba(68, 68, 68, 1);
}
.faq_trigger {
  width: 100%;
  padding: 20px 0;
  font-weight: 500;
}
.faq_answer {
  height: 0;
  transition: all 0.3s ease-in-out;
  overflow: hidden;
}
.faq_answer p {
  font-weight: 400;
  font-size: clamp(15px, 1vw, 16px);
  color: rgba(68, 68, 68, 1);
}
.faq_item.is-open {
  color: rgba(255, 85, 0, 1);
}

.faq_item.is-open .faq_answer {
  height: auto;
  margin: 0 0 20px 0;
}

.discord {
  background: url(../location-changer/img/idx_discord_bg.png) bottom no-repeat;
  padding: 6rem 0 10rem 0;
  background-size: cover;
}

.discord_main {
  max-width: 1280px;
  border-radius: 30px;
  background:
    linear-gradient(0deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.3)),
    radial-gradient(
      90.86% 81% at 96.41% 0%,
      rgba(156, 255, 205, 0.2) 0%,
      rgba(255, 255, 255, 0) 100%
    ),
    url(../location-changer/img/idx_discord2.png) right top no-repeat;
  border: 1px solid rgba(255, 255, 255, 1);
  text-align: left;
  gap: 8px;
}
.discord_text h2 {
  text-align: left;
  margin-bottom: 10px;
  font-weight: bold;
}
.discord_text {
  width: min(100%, 745px);
  position: relative;
}

.discord_text .btn_fill {
  width: min(100%, 260px);
  background: linear-gradient(180deg, #7680f8 0%, #5864f6 100%);
  margin-top: clamp(36px, 2.6vw, 40px);
  border: none;
}
.discord_text {
  font-size: 16px;
}

@media (max-width: 1587px) {
  .banner_main {
    padding: 0 21px;
  }
  .banner_img {
    flex: 1 1 auto;
  }
}
@media (max-width: 1400px) {
  .features {
    padding: 40px 0;
  }
  .feature_rights {
    position: relative;
    left: 50%;
  }
  .features_inner {
    display: block;
    margin-top: 20px;
  }
  .feature_line,
  .mode_icon {
    display: none;
  }
  .feature_list {
    width: calc(100% + 38px);
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    overflow-x: auto;
    overflow-y: hidden;
    margin-left: -18px;
    justify-content: center;
  }
  .feature_list::-webkit-scrollbar {
    display: none;
  }
  .feature_list li {
    width: max-content;
    flex: 0 0 auto;
    padding: 20px 10px;
    font-size: 1.8rem;
  }

  li.active,
  .feature_list li:hover {
    box-shadow: none;
  }
  /*  .feature_rights {
    transform: scale(0.9);
  }
  .features_inner {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 40px;
  }

  .feature_list li {
    width: 217px;
    font-size: 1.8rem;
  }

  .feature_line::before {
    width: 63px;
  }
  .feature_line {
    left: -15px;
    top: 84px;
    height: 502px;
  }
  .feature_line2 {
    top: 209px;
    height: 380px;
  }
  .feature_line3 {
    top: 332px;
    height: 257px;
  }
  .feature_line4 {
    top: 456px;
    height: 134px;
  }
  .feature_line5 {
    top: 575px;
    height: 13px;
  } */
  .capabilities_bottom {
    position: relative;
  }
}

@media (max-width: 1024px) {
  .capabilities_main {
    top: 40px;
    position: relative;
  }
}

@media (max-width: 1004px) {
  .feature_list {
    gap: 10px;
  }
  .feature_list li {
    font-size: 1.4rem;
  }
}
@media (max-width: 980px) {
  .banner_main {
    flex-direction: column;
  }
  .banner {
    padding: 6rem 0;
  }
  .banner_text {
    width: 100%;
    margin-bottom: 3rem;
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .banner_text ul {
    text-align: left;
  }

  /* .features {
    padding: 40px 0;
  }
  .feature_rights {
    position: relative;
    left: 50%;
  }
  .features_inner {
    display: block;
    margin-top: 20px;
  }
  .feature_line,
  .mode_icon {
    display: none;
  }
  .feature_list {
    width: calc(100% + 42px);
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    overflow-x: auto;
    overflow-y: hidden;
    margin-left: -21px;
  }
  .feature_list::-webkit-scrollbar {
    display: none;
  }
  .feature_list li {
    width: max-content;
    flex: 0 0 auto;
    padding: 20px 10px;
    font-size: 1.4rem;
  }

  li.active,
  .feature_list li:hover {
    box-shadow: none;
  } */

  .capabilities_blocks {
    gap: 10px;
  }
  .capabilities_blocks h3 {
    font-size: 16px;
  }
  .capabilities_blocks p {
    display: none;
  }
  .capabilities_item {
    padding: 3rem 10px;
  }

  .flex_between.showcase_item {
    display: block;
  }
  .showcase_item {
    width: 47%;
  }

  .discord_main {
    width: calc(100% - 42px);
    flex-wrap: wrap;
    padding: 30px 0;
    gap: 10px;
    justify-content: center;
  }
  .discord_text {
    width: 90%;
    left: 0;
    text-align: center;
  }
  .discord_text h2 {
    text-align: center;
  }

  .faq_trigger {
    align-items: baseline;
    text-align: left;
    font-size: 18px;
  }
}
@media (max-width: 716px) {
  .feature_list {
    justify-content: flex-start;
  }
}
@media (max-width: 768px) {
  .use_case_main {
    height: auto;
    margin-top: 0rem;
  }
  .use_case_item {
    display: none;
    position: relative;
    left: 0;
    top: 0;
    padding: 4rem;
    margin-top: 20px;
  }
  .use_case {
    margin: 7rem auto 7rem auto;
  }
  .use_case_item.is-current {
    display: block;
    transform: perspective(2000px) translate3d(0, 0, 0) rotateY(0deg) scale(1);
    background-size: auto;
  }

  .steps_text_block {
    flex-wrap: wrap;
  }
  .steps_item {
    width: 100%;
  }
  .product_btns {
    flex-wrap: wrap;
  }

  .reviews_mask::before,
  .reviews_mask::after {
    display: none;
  }
  .reviews_item {
    flex: 0 0 100%;
  }

  .banner_btns,
  .product_btns {
    flex-direction: column;
    gap: 12px;
  }
  .banner_btns .btn,
  .product_btns .btn_item {
    width: 290px;
  }
  .showcase_item .showcase_item_text {
    max-width: 100%;
  }
  .showcase_item {
    flex-wrap: wrap;
  }

  .use_case {
    margin: 40px auto;
  }

  .capabilities_desc,
  .prodcut_desc,
  .prodcut h2 {
    margin: 20px auto;
  }
  .showcase,
  .discord {
    padding: 40px 0;
  }
  .prodcut {
    margin: 40px auto;
  }
}

@media (max-width: 480px) {
  .showcase_item {
    width: 100%;
  }
}
