@import "base.css";
@media screen and (min-width: 751px) {
  .sp {
    display: none !important;
  }
  .pc {
    display: block;
  }
}
@media screen and (max-width: 750px) {
  .pc {
    display: none !important;
  }
  .sp {
    display: block;
  }
  .fit {
    width: 100%;
    height: auto;
  }
}
.sizeXS {
  font-size: min(12px, 3.2vw);
}

.sizeS {
  font-size: min(14px, 3.6vw);
}

.sizeN {
  font-size: min(16px, 3.8vw);
}

.sizeM {
  font-size: min(18px, 4.2vw);
}

.sizeL {
  font-size: min(20px, 4.4vw);
}

.sizeLL {
  font-size: min(22px, 4.6vw);
}

.sizeH {
  font-size: min(24px, 4.8vw);
}

.sizeXL {
  font-size: min(26px, 5.2vw);
}

.sizeB {
  font-size: min(28px, 5.6vw);
}

@media screen and (max-width: 750px) {
  .spXS {
    font-size: min(12px, 3.2vw);
  }
  .spS {
    font-size: min(14px, 3.6vw);
  }
  .spN {
    font-size: min(16px, 3.8vw);
  }
  .spM {
    font-size: min(18px, 4.2vw);
  }
  .spL {
    font-size: min(20px, 4.4vw);
  }
  .spLL {
    font-size: min(22px, 4.6vw);
  }
  .spH {
    font-size: min(24px, 4.8vw);
  }
  .spXL {
    font-size: min(26px, 5.2vw);
  }
  .spB {
    font-size: min(28px, 5.6vw);
  }
}
/*-------------------------------------------------
	++ BASE
-------------------------------------------------*/
html {
  scroll-behavior: smooth;
}
body {
  font-size: min(16px, 3.8vw);
  font-feature-settings: "palt";
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.6;
  background-color: #FFF;
}

#container {
  margin: 0 auto;
  text-align: center;
  position: relative;
  width: 100%;
}
@media screen and (min-width: 751px) {
  #container {
    min-width: 1400px;
  }
}

.inner {
  display: block;
  clear: both;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 750px) {
  .inner {
    padding: 0 5vw;
  }
}

#contents {
  position: relative;
  width: 100%;
  overflow: hidden;
}

img {
  max-width: 100%;
}

a.uline {
  text-decoration: underline;
}

.skewLine {
  width: 180px;
  height: 1000px;
  position: absolute;
  background: linear-gradient(35deg, rgba(234, 72, 77, 0.5) 0%, rgba(236, 83, 72, 0.5) 24.74%, rgba(243, 112, 59, 0.5) 68.16%, rgba(248, 138, 48, 0.5) 100%);
  transform: skew(-45deg);
  mix-blend-mode: multiply;
  z-index: 0;
}
@media screen and (max-width: 750px) {
  .skewLine {
    width: 30vw;
    height: 250vw;
  }
}
.skewLine.narrow {
  width: 80px;
}
@media screen and (max-width: 750px) {
  .skewLine.narrow {
    width: 25vw;
  }
}

/*-------------------------------------------------
	++ COMMON
-------------------------------------------------*/
.section {
  position: relative;
  padding: min(70px, 18vw) 0 min(70px, 18vw) 0;
}
.section#about_style {
  padding-top: 0;
  padding-bottom: 35px;
  background: linear-gradient(320deg, rgb(247, 235, 243) 0%, rgb(255, 244, 211) 100%);
}
@media screen and (max-width: 750px) {
  .section#about_style {
    padding-bottom: 40vw;
  }
}
@media screen and (min-width: 751px) {
  .section#about_style .inner {
    transform: translateY(-90px);
    max-width: 1200px;
  }
}
@media screen and (max-width: 750px) {
  .section#about_style .inner {
    transform: translateY(-8vw);
  }
}
.section#about_style .skewLine {
  left: 230px;
  top: -545px;
  height: 2000px;
}
@media screen and (max-width: 750px) {
  .section#about_style .skewLine {
    left: 0;
    top: -40vw;
    height: 250vw;
  }
}
.section#ready {
  padding-bottom: min(180px, 20vw);
}
@media screen and (max-width: 750px) {
  .section#ready {
    padding-top: 10vw;
    padding-bottom: 13vw;
  }
}
.section#vote {
  background: linear-gradient(320deg, rgb(247, 235, 243) 0%, rgb(255, 244, 211) 100%);
  padding-bottom: 100px;
}
@media screen and (max-width: 750px) {
  .section#vote {
    padding-top: 12vw;
    padding-bottom: 13vw;
  }
}
.section#vote .skewLine {
  top: -820px;
  right: -240px;
}
@media screen and (max-width: 750px) {
  .section#vote .skewLine {
    top: -238vw;
    right: -100vw;
  }
}
.section#functions {
  background: linear-gradient(135deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
  padding-bottom: 50px;
}
.section#functions .secHead {
  margin-bottom: min(60px, 7vw);
}
.section#functions .secHead .titleJa {
  color: #FFF;
}
.section#functions .skewLine {
  left: -340px;
  bottom: -280px;
}
@media screen and (max-width: 750px) {
  .section#functions .skewLine {
    left: -125vw;
    bottom: auto;
    top: 0vw;
  }
}
.section#functions .skewLine.narrow {
  left: auto;
  right: 190px;
  bottom: 0px;
  height: 330px;
}
@media screen and (max-width: 750px) {
  .section#functions .skewLine.narrow {
    top: auto;
    right: -22vw;
    bottom: 0;
  }
}
.section#qa {
    padding-bottom: 140px;
  }
@media screen and (max-width: 750px) {
  .section#qa {
    padding-bottom: 60vw;
  }
}
.section#qa::after {
  content: "";
  width: 100%;
  height: 22px;
  background: #666;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
}
@media screen and (max-width: 750px) {
  .section#qa::after {
    height: 4vw;
  }
}
.section .secHead {
  position: relative;
  margin-bottom: min(80px, 7vw);
}
.section .secHead .titleEn {
  margin-bottom: min(5px, 2vw);
  font-size: min(24px, 4.8vw);
  color: #ff763a;
  font-weight: 700;
}
@media screen and (max-width: 750px) {
  .section .secHead .titleEn img {
    height: 3.4vw;
    width: auto;
  }
}
.section .secHead .titleJa {
  font-size: min(46px, 9vw);
  font-weight: 700;
  position: relative;
  line-height: 1;
}
@media screen and (max-width: 750px) {
  .section .secHead .titleJa {
    line-height: 1.4;
  }
}
.section .secHead .catch {
  font-size: min(24px, 4.8vw);
}

.deco {
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
.deco img {
  width: 100%;
  height: auto;
}
.deco.decoAbout {
  width: 37%;
  right: 0;
  bottom: 0;
}
@media screen and (max-width: 750px) {
  .deco.decoAbout {
    width: 73%;
  }
}
.deco.decoFaq {
  left: 0;
  bottom: 0;
  width: 24%;
}
@media screen and (max-width: 750px) {
  .deco.decoFaq {
    width: 60vw;
  }
}

.racelist ul {
  width: -moz-fit-content;
  width: fit-content;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  background-color: #FFF;
  border-radius: 10px;
  margin:15px auto 0 auto;
  gap: 20px;
}
@media screen and (max-width: 750px) {
  .racelist ul {
    gap: 2vw 4vw;
  }
}
.racelist ul li {
  aspect-ratio: 2/1;
}
@media screen and (min-width: 751px) {
  .racelist ul li {
    width: 200px;
  }
}
@media screen and (max-width: 750px) {
  .racelist ul li {
    width: 34vw;
  }
}
.racelist ul li a, .racelist ul li span {
  display: flex;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  padding: 15px;
}
.racelist.narrow ul {
  gap: 0;
}
@media screen and (max-width: 750px) {
.racelist ul li a, .racelist ul li span { padding: 0;}
}
@media screen and (min-width: 751px) {
  .racelist.narrow ul li {
    width: 163px;
  }
}

/*-------------------------------------------------
	++ MENU
-------------------------------------------------*/
.menuWrap {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0);
  z-index: 99;
  transition: all 0.7s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media screen and (min-width: 751px) {
  .menuWrap {
    padding: 35px 60px;
    top: -100px;
  }
  .menuWrap.sticky {
    top: 0;
    padding: 20px 60px;
    background: rgba(255, 255, 255, 0.9);
  }
}

#menu {
  z-index: 9999;
}
@media screen and (max-width: 750px) {
  #menu #menuBtn {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 99;
    width: 16vw;
    height: 12vw;
  }
  #menu #menuBtn span {
    display: inline-block;
    position: absolute;
    right: 3vw;
    top: 6vw;
    width: 10vw;
    height: 2px;
    background-color: rgb(0, 0, 0);
    transition: all 0.2s ease-in;
  }
  #menu #menuBtn span:nth-of-type(1) {
    margin-top: -2.4vw;
  }
  #menu #menuBtn span:nth-of-type(2) {
    width: 9vw;
    background-color: rgb(0, 0, 0);
  }
  #menu #menuBtn span:nth-of-type(3) {
    width: 9vw;
    background-color: rgb(0, 0, 0);
  }
  #menu #menuBtn span:nth-of-type(4) {
    width: 8vw;
    margin-top: 2.4vw;
  }
  #menu .menuContents {
    display: none;
    opacity: 0;
    transition: all 0.7s cubic-bezier(0.215, 0.61, 0.355, 1);
    background-color: rgba(0, 0, 0, 0.3);
    width: 100%;
    height: 100vh;
  }
  #menu.current #menuBtn span:nth-of-type(1) {
    display: none;
  }
  #menu.current #menuBtn span:nth-of-type(2) {
    transform: rotate(30deg);
    margin-top: 0;
    background-color: rgb(0, 0, 0);
  }
  #menu.current #menuBtn span:nth-of-type(3) {
    transform: rotate(-30deg);
    margin-top: 0;
    background-color: rgb(0, 0, 0);
  }
  #menu.current #menuBtn span:nth-of-type(4) {
    display: none;
  }
  #menu.current .menuContents {
    display: block;
    opacity: 1;
  }
}
#menu ul {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
@media screen and (max-width: 750px) {
  #menu ul {
    flex-direction: column;
    padding: 20vw 10vw;
    background-color: #FFF;
    gap: 5vw;
    align-items: flex-start;
  }
}
#menu ul li {
  font-size: min(17px, 5vw);
  font-weight: 700;
  padding: 0 40px;
  position: relative;
}
@media screen and (max-width: 750px) {
  #menu ul li {
    width: 100%;
    text-align: left;
    padding-left: 10vw;
  }
}
#menu ul li::before {
  content: "";
  background: linear-gradient(35deg, rgb(248, 138, 48) 0%, rgb(245, 131, 55) 15.86%, rgb(238, 113, 74) 38.61%, rgb(226, 83, 105) 65.52%, rgb(209, 41, 148) 95.39%, rgb(206, 34, 155) 100%);
  width: 7px;
  height: 100%;
  position: absolute;
  top: 50%;
  left: -3px;
  transform: translateY(-50%) skew(-45deg);
}
@media screen and (max-width: 750px) {
  #menu ul li::before {
    width: 2vw;
    height: 90%;
    left: 0;
  }
}
#menu ul li a {
  color: #333;
}
@media screen and (min-width: 751px) {
  #menu ul li:last-child::after {
    content: "";
    background: linear-gradient(35deg, rgb(248, 138, 48) 0%, rgb(245, 131, 55) 15.86%, rgb(238, 113, 74) 38.61%, rgb(226, 83, 105) 65.52%, rgb(209, 41, 148) 95.39%, rgb(206, 34, 155) 100%);
    width: 7px;
    height: 100%;
    position: absolute;
    top: 50%;
    right: -3px;
    transform: translateY(-50%) skew(-45deg);
  }
}
#menu.move {
  margin-top: 0;
  width: 100%;
  background: rgba(0, 0, 0, 0.75);
  position: fixed;
  top: 0;
  left: 0;
}

/*-------------------------------------------------
	++ MAIN
-------------------------------------------------*/
#main {
  position: relative;
  background: linear-gradient(90deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
}
#main .inner {
  height: 100%;
  max-width: none;
}
@media screen and (min-width: 751px) {
  #main .inner {
    aspect-ratio: 1600/890;
  }
}
@media screen and (max-width: 750px) {
  #main .inner {
    aspect-ratio: 390/950;
  }
}
#main img {
  width: 100%;
  height: auto;
}
#main .skewLine.narrow {
  top: -800px;
  left: 885px;
}
#main .mainLogo {
  position: absolute;
}
@media screen and (min-width: 751px) {
  #main .mainLogo {
    top: 12%;
    left: 17%;
    width: 35%;
  }
}
@media screen and (max-width: 750px) {
  #main .mainLogo {
    width: 90%;
    left: 5%;
    top: 124vw;
  }
}
#main .mainCatch {
  position: absolute;
}
@media screen and (min-width: 751px) {
  #main .mainCatch {
    top: 43%;
    left: 16.6%;
    width: 43.3%;
  }
}
@media screen and (max-width: 750px) {
  #main .mainCatch {
    width: 93%;
    top: 95vw;
    left: 13vw;
    z-index: 2;
  }
}
#main .mainMonitor {
  position: absolute;
  z-index: 1;
}
@media screen and (min-width: 751px) {
  #main .mainMonitor {
    top: 15%;
    right: 3%;
    width: 39%;
  }
}
@media screen and (max-width: 750px) {
  #main .mainMonitor {
    left: -29vw;
    top: 35vw;
    width: 105vw;
  }
}
#main .mainMonitor img {
  transition-delay: 0.3s;
}
#main .pcmenu {
  position: absolute;
  z-index: 2;
  top: 67%;
  left: 50%;
  transform: translateX(-50%);
  padding: 30px;
  background-color: #FFF;
  border-radius: 9999px;
  min-width: 1100px;
}
#main .pcmenu ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
#main .pcmenu ul li {
  font-size: min(17px, 3.2vw);
  font-weight: bold;
  padding: 0 40px;
  position: relative;
}
#main .pcmenu ul li::before {
  content: "";
  background: linear-gradient(35deg, rgb(248, 138, 48) 0%, rgb(245, 131, 55) 15.86%, rgb(238, 113, 74) 38.61%, rgb(226, 83, 105) 65.52%, rgb(209, 41, 148) 95.39%, rgb(206, 34, 155) 100%);
  width: 7px;
  height: 100%;
  position: absolute;
  top: 50%;
  left: -3px;
  transform: translateY(-50%) skew(-45deg);
}
#main .pcmenu ul li a {
  color: #333;
}
#main .pcmenu ul li:last-child::after {
  content: "";
  background: linear-gradient(35deg, rgb(248, 138, 48) 0%, rgb(245, 131, 55) 15.86%, rgb(238, 113, 74) 38.61%, rgb(226, 83, 105) 65.52%, rgb(209, 41, 148) 95.39%, rgb(206, 34, 155) 100%);
  width: 7px;
  height: 100%;
  position: absolute;
  top: 50%;
  right: -3px;
  transform: translateY(-50%) skew(-45deg);
}
#main .deco.decoG1 {
  top: 0;
  left: 0;
  width: 33%;
}
@media screen and (max-width: 750px) {
  #main .deco.decoG1 {
    width: 83%;
  }
}
#main .deco.decoG2 {
  bottom: -30px;
  right: 0;
  width: 47%;
}
@media screen and (max-width: 750px) {
  #main .deco.decoG2 {
    bottom: 12vw;
    right: 0;
    width: 87%;
  }
}
#main .deco.decoG3 {
  top: 35%;
  left: 0;
  width: 25%;
}
@media screen and (max-width: 750px) {
  #main .deco.decoG3 {
    top: 68%;
    left: 0;
    width: 68%;
  }
}
#main .deco.decoG4 {
  top: 0;
  right: 0;
  width: 56%;
}
@media screen and (max-width: 750px) {
  #main .deco.decoG4 {
    width: 78%;
  }
}

.racelistBox {
  background-color: rgba(255, 179, 70, 0.61);
  position: relative;
  z-index: 2;
  margin: 0 auto;
}
@media screen and (min-width: 751px) {
  .racelistBox {
    width: 1200px;
    padding: 50px;
    transform: translateY(-140px);
  }
}
@media screen and (max-width: 750px) {
  .racelistBox {
    width: 90%;
    padding: 6vw;
    transform: translateY(-15vw);
  }
}
.racelistBox h2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-size: min(28px, 5.6vw);
  top: -15px;
  min-width: 420px;
}
@media screen and (max-width: 750px) {
  .racelistBox h2 {
    font-size: min(20px, 4.4vw);
    top: -3vw;
    min-width: 50vw;
  }
}
.racelistBox h2 span {
  position: relative;
  color: #FFF;
}
.racelistBox h2::before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  background: #000;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) skew(-45deg);
}

/*-------------------------------------------------
	++ HOME CONTENTS
-------------------------------------------------*/
.pointBox > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(50px, 6vw) min(25px, 5vw);
}
.pointBox > ul > li {
  width: calc((100% - 50px) / 3);
  background: #FFF;
  box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.15);
  border-radius: 14px;
  padding: 25px 35px;
  text-align: left;
  position: relative;
}
@media screen and (max-width: 750px) {
  .pointBox > ul > li {
    width: 100%;
    padding: 7vw 8vw 4vw 8vw;
  }
}
.pointBox > ul > li .pointBadge {
  position: absolute;
  top: -10px;
  left: 0;
}
.pointBox > ul > li .pointTitle {
  font-size: min(28px, 5.6vw);
  font-weight: 700;
  text-align: center;
  line-height: 1.4;
  margin-bottom: min(20px, 5vw);
}
.pointBox > ul > li .pointDetail {
  position: relative;
  padding-top: min(20px, 4vw);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
}
@media screen and (max-width: 750px) {
  .pointBox > ul > li .pointDetail {
    gap: 5%;
  }
}
.pointBox > ul > li .pointDetail::before {
  content: "";
  width: 100%;
  height: 2px;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(90deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
}
.pointBox > ul > li .pointDetail .img {
  width: 120px;
}
@media screen and (max-width: 750px) {
  .pointBox > ul > li .pointDetail .img {
    width: 40%;
  }
}
.pointBox > ul > li .pointDetail .text {
  width: calc(100% - 140px);
}
@media screen and (max-width: 750px) {
  .pointBox > ul > li .pointDetail .text {
    width: 55%;
    font-size: 4.2vw;
  }
}

.stepWrap {
  max-width: 920px;
  margin: min(70px, 13vw) auto 0 auto;
}
.stepWrap .stepList {
  display: flex;
  flex-direction: column;
  gap: 63px;
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList {
    gap: 12vw;
  }
}
.stepWrap .stepList > li {
  position: relative;
  text-align: left;
  position: relative;
}
.stepWrap .stepList > li:not(:last-child)::after {
  content: "";
  background: url(/static/img/arrow.svg) no-repeat center top;
  width: 78px;
  aspect-ratio: 78/26;
  position: absolute;
  bottom: -45px;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList > li:not(:last-child)::after {
    width: 15vw;
    bottom: -7vw;
  }
}
.stepWrap .stepList > li .stepBox {
  background: linear-gradient(60deg, rgb(247, 235, 243) 0%, rgb(255, 244, 211) 100%);
  border-radius: 12px;
  padding: 40px 65px 20px 65px;
  position: relative;
  min-height: 170px;
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList > li .stepBox {
    padding: 8vw 6vw 6vw 6vw;
  }
}
.stepWrap .stepList > li .stepBox .stepNo {
  position: absolute;
  top: -10px;
  left: 20px;
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList > li .stepBox .stepNo {
    top: -2vw;
    left: 6vw;
    width: 57vw;
  }
}
.stepWrap .stepList > li .stepBox .stepTitle {
  font-size: min(32px, 5.4vw);
  color: #ff763a;
  font-weight: 700;
  line-height: 1.4;
}
.stepWrap .stepList > li .stepBox .text {
  font-size: min(18px, 4.2vw);
  margin-top: min(10px, 2vw);
}
.stepWrap .stepList > li .stepBox .text.small {
  font-size: min(16px, 3.8vw);
  margin-top: min(5px, 3vw);
}
.stepWrap .stepList > li .stepBox .stepFlex {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList > li .stepBox .stepFlex {
    align-items: center;
  }
}
.stepWrap .stepList > li .stepBox .stepFlex .stepFlexLeft {
  flex: 1;
}
.stepWrap .stepList > li .stepBox .stepFlex .stepFlexRight {
  width: 190px;
  position: relative;
}
@media screen and (min-width: 751px) {
  .stepWrap .stepList > li .stepBox .stepFlex .stepFlexRight img {
    position: absolute;
    top: -60px;
    left: 0px;
  }
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList > li .stepBox .stepFlex .stepFlexRight {
    width: 30%;
  }
}
.stepWrap .stepList > li .att {
  margin-top: min(10px, 3vw);
  padding-left: 20px;
  font-size: min(18px, 4.2vw);
}
@media screen and (max-width: 750px) {
  .stepWrap .stepList > li .att {
    padding-left: 2vw;
  }
}

.voteSite {
background: rgb(255, 255, 255,.6);
/*  background: linear-gradient(60deg, rgb(247, 235, 243) 0%, rgb(255, 244, 211) 100%);*/
  margin-top: min(80px, 10vw);
  position: relative;
  width: 100%;
  padding: min(20px, 5vw);
}
.voteSite::before {
  content: "";
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
.voteSite h4 { text-align: center;
  font-size: min(22px, 4.6vw);
  margin-bottom: min(10px, 3vw);
}
@media screen and (max-width: 750px) {
  .voteSite h4 {
    font-size: min(26px, 5.2vw);
  }
}
.voteSite > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(10px, 3vw);
}
@media screen and (max-width: 750px) {
  .voteSite > ul > li {
    width: calc(50% - 1.5vw);
  }
}

.aboutCashless {
  margin-top: min(60px, 7vw);
  background: linear-gradient(135deg, rgb(255, 219, 81) 10.44%, rgb(255, 193, 74) 96.63%);
  padding: min(40px, 8vw) min(50px, 8vw);
  border-radius: 30px;
}
.aboutCashless h3 {
  font-size: min(38px, 6vw);
  line-height: 1;
}
.aboutCashless dl {
  margin-top: min(20px, 5vw);
  text-align: left;
}
.aboutCashless dl dt {
  font-size: min(30px, 5.6vw);
  font-weight: 700;
  padding-left: min(30px, 5vw);
  margin-bottom: min(10px, 3vw);
  position: relative;
  line-height: 1.4;
}
.aboutCashless dl dt::before {
  content: "";
  width: 8px;
  height: 80%;
  display: block;
  background: linear-gradient(180deg, rgb(35, 137, 237) 10.8%, rgb(136, 0, 159) 86.29%);
  position: absolute;
  top: 10%;
  left: 0;
}
.aboutCashless dl dd {
  font-size: min(20px, 4.4vw);
  margin-bottom: 30px;
}

.voteTab .tabTglList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 60px;
  max-width: 1120px;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .voteTab .tabTglList {
    gap: 5vw;
  }
}
.voteTab .tabTglList li {
  flex: 1;
}
.voteTab .tabTglList li .tabTgl {
  display: block;
  font-size: min(30px, 4.2vw);
  font-weight: 700;
  padding: 15px;
  position: relative;
  color: #000;
}
.voteTab .tabTglList li .tabTgl::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
  border-radius: 10px;
}
.voteTab .tabTglList li .tabTgl::after {
  content: "";
  display: block;
  position: absolute;
  inset: 3px;
  background: #FFF;
  border-radius: 8px;
}
.voteTab .tabTglList li .tabTgl.current {
  color: #FFF;
}
.voteTab .tabTglList li .tabTgl.current::after {
  display: none;
}
.voteTab .tabTglList li .tabTgl.current span::before {
  display: none;
}
.voteTab .tabTglList li .tabTgl span {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 750px) {
  .voteTab .tabTglList li .tabTgl span {
    display: block;
    line-height: 1.4;
  }
}
.voteTab .tabTglList li .tabTgl span::before {
  content: "";
  position: absolute;
  left: -35px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  aspect-ratio: 9/10;
  background: linear-gradient(90deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
@media screen and (max-width: 750px) {
  .voteTab .tabTglList li .tabTgl span::before {
    left: 0;
    width: 3vw;
  }
}
.voteTab .voteInner {
  margin-top: min(60px, 8vw);
  padding: 0 60px;
}
@media screen and (max-width: 750px) {
  .voteTab .voteInner {
    width: 100%;
    overflow-x: scroll;
    padding: 0 15vw;
  }
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList {
    width: 250vw;
    padding-bottom: 10vw;
  }
}
.voteTab .voteStepList > ul {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 65px;
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList > ul {
    gap: 5vw;
  }
}
.voteTab .voteStepList > ul > li {
  text-align: center;
  position: relative;
}
.voteTab .voteStepList > ul > li:not(:last-child)::after {
  content: "";
  background: url(/static/img/arrow3.svg) no-repeat center top;
  width: 65px;
  aspect-ratio: 65/30;
  position: absolute;
  top: 280px;
  left: 100%;
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList > ul > li:not(:last-child)::after {
    top: 50vw;
    width: 14vw;
    left: calc(100% - 4vw);
  }
}
.voteTab .voteStepList > ul > li .img {
  position: relative;
  display: inline-block;
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList > ul > li .img {
    padding: 0 8vw;
  }
  .voteTab .voteStepList > ul > li .img img {
    height: 100vw;
    width: auto;
  }
}
.voteTab .voteStepList > ul > li h3 {
  font-size: min(28px, 5.6vw);
  line-height: 1;
  margin-top: min(55px, 7vw);
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList > ul > li h3 {
    font-size: min(22px, 4.6vw);
  }
}
.voteTab .voteStepList > ul > li h3 span {
  padding: 0 min(30px, 5vw);
  position: relative;
}
.voteTab .voteStepList > ul > li h3 span::before, .voteTab .voteStepList > ul > li h3 span::after {
  content: "";
  width: 3px;
  height: 70%;
  background: linear-gradient(35deg, rgb(248, 138, 48) 0%, rgb(245, 131, 55) 15.86%, rgb(238, 113, 74) 38.61%, rgb(226, 83, 105) 65.52%, rgb(209, 41, 148) 95.39%, rgb(206, 34, 155) 100%);
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.voteTab .voteStepList > ul > li h3 span::before {
  left: 0;
}
.voteTab .voteStepList > ul > li h3 span::after {
  right: 0;
}
.voteTab .voteStepList > ul > li .numlist {
  text-align: left;
  margin: min(35px, 7vw) auto 0 auto;
  display: inline-block;
}
.voteTab .voteStepList > ul > li .numlist ul li {
  position: relative;
  padding-left: 30px;
  min-height: 24px;
  font-size: min(18px, 4.2vw);
}
.voteTab .voteStepList > ul > li .numlist ul li:not(:last-child) {
  margin-bottom: min(5px, 2vw);
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList > ul > li .numlist ul li {
    font-size: min(14px, 3.6vw);
  }
}
.voteTab .voteStepList > ul > li .numlist ul li .no {
  position: absolute;
  top: 0;
  left: 0;
  background: #ff763a;
  color: #FFF;
  aspect-ratio: 1/1;
  display: flex;
  width: 24px;
  justify-content: center;
  align-items: center;
}
.voteTab .voteStepList > ul > li .text {
  text-align: left;
  margin-top: 20px;
}
@media screen and (max-width: 750px) {
  .voteTab .voteStepList > ul > li .text {
    font-size: 4vw;
  }
}

.funcList ul {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}
@media screen and (max-width: 750px) {
  .funcList ul {
    gap: 5vw;
  }
}
.funcList ul li {
  background: #FFF;
  padding: min(40px, 8vw);
  border-radius: 10px;
}
@media screen and (min-width: 751px) {
  .funcList ul li {
    flex: 1;
  }
}
@media screen and (max-width: 750px) {
  .funcList ul li {
    width: 100%;
  }
  .funcList ul li > img {
    width: 32vw;
    height: auto;
  }
}
.funcList ul li h4 {
  font-size: min(30px, 6vw);
  color: #ff763a;
}
.funcList ul li .text {
  font-size: min(18px, 4.2vw);
}

.faqList {
  margin: 0 auto;
  max-width: 980px;
}
.faqList .faqHx {
  cursor: pointer;
  position: relative;
  padding: min(20px, 5vw);
  text-align: left;
  color: #FFF;
  font-size: min(30px, 5vw);
  background: linear-gradient(90deg, rgb(234, 72, 77) 0%, rgb(236, 83, 72) 24.74%, rgb(243, 112, 59) 68.16%, rgb(248, 138, 48) 100%);
  margin-bottom: min(30px, 4vw);
}
@media screen and (max-width: 750px) {
  .faqList .faqHx {
    padding: 5vw 15vw 5vw 5vw;
  }
}
.faqList .faqHx .handle {
  position: absolute;
  width: min(48px, 9vw);
  aspect-ratio: 1;
  background-color: #FFF;
  top: 50%;
  right: min(25px, 4vw);
  transform: translateY(-50%);
}
.faqList .faqHx .handle::before, .faqList .faqHx .handle::after {
  content: "";
  display: inline-block;
  width: 23px;
  height: 3px;
  background-color: #ff763a;
  position: absolute;
  top: 50%;
  left: 50%;
  transition: all 0.3s;
}
@media screen and (max-width: 750px) {
  .faqList .faqHx .handle::before, .faqList .faqHx .handle::after {
    width: 4vw;
    height: 2px;
  }
}
.faqList .faqHx .handle::before {
  transform: translate(-50%, -50%);
}
.faqList .faqHx .handle::after {
  transform: translate(-50%, -50%) rotate(-90deg);
}
.faqList .faqHx.current .handle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}
.faqList .faqContents {
  display: none;
}
.faqList .faqContents.current {
  display: block;
}
.faqList .faqContents > dl {
  text-align: left;
  margin-bottom: min(10px, 3vw);
}
.faqList .faqContents > dl:nth-last-of-type(1) {
  margin-bottom: min(40px, 7vw);
}
.faqList .faqContents > dl > dt,
.faqList .faqContents > dl > dd {
  padding: 25px 50px 25px 100px;
  position: relative;
}
@media screen and (max-width: 750px) {
  .faqList .faqContents > dl > dt,
  .faqList .faqContents > dl > dd {
    padding: 3vw 3vw 3vw 20vw;
  }
}
.faqList .faqContents > dl > dt::before,
.faqList .faqContents > dl > dd::before {
  content: "";
  width: min(30px, 5vw);
  aspect-ratio: 1;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  display: inline-block;
  position: absolute;
  top: 26px;
  left: 35px;
}
@media screen and (max-width: 750px) {
  .faqList .faqContents > dl > dt::before{
      left: 10vw;
    top: 2.8vw;
  }
  
  .faqList .faqContents > dl > dd::before {
    left: 10vw;
    top: 4vw;
  }
}
.faqList .faqContents > dl > dt {
  background-color: #f0f0f0;
  font-size: min(24px, 4.8vw);
  font-weight: 700;
}
@media screen and (max-width: 750px) {
  .faqList .faqContents > dl > dt {
    font-size: 4vw;
    line-height: 1.4;
  }
}
.faqList .faqContents > dl > dt::before {
  background-image: url(/static/img/title_qa_q.svg);
}
.faqList .faqContents > dl > dd {
  font-size: min(18px, 4.2vw);
}
.faqList .faqContents > dl > dd::before {
  background-image: url(/static/img/title_qa_a.svg);
}

/*-------------------------------------------------
	++ FOOTER
-------------------------------------------------*/
#footer {
  position: relative;
  background: linear-gradient(135deg, rgb(255, 219, 81) 10.44%, rgb(255, 193, 74) 96.63%);
  padding: 50px 0;
}
@media screen and (max-width: 750px) {
  #footer {
    padding: 10vw 0;
  }
}
#footer .footerBlock {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media screen and (max-width: 750px) {
  #footer .footerBlock {
    flex-direction: column;
    gap: 5vw;
  }
  #footer .footerBlock .footerLeft .logo {
    width: 50vw;
    margin: 0 auto;
  }
}
@media screen and (min-width: 751px) {
  #footer .footerRight {
    text-align: left;
  }
}
#footer .footerRight ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 32px;
}
#footer .footerRight ul li {
  font-size: min(22px, 4.6vw);
  font-weight: 700;
}
#footer .footerRight ul li a {
  color: #000;
}
#footer .footerCredit {
  text-align: right;
  margin-top: 30px;
}
@media screen and (max-width: 750px) {
  #footer .footerCredit {
    text-align: center;
    margin-top: 5vw;
  }
}
#footer .footerCredit .copyright {
  font-size: min(14px, 3.6vw);
  letter-spacing: 0.04em;
}
@media screen and (max-width: 750px) {
  #footer .footerCredit .copyright {
    font-size: 4vw;
  }
}

.floatingBadge {
  position: fixed;
  top: 200px;
  right: -2px;
  z-index: 98;
}
@media screen and (max-width: 750px) {
  .floatingBadge {
    top: 18vw;
    width: 12vw;
  }
}

/*-------------------------------------------------
	++ PLUGIN
-------------------------------------------------*/
.tabTgl {
  cursor: pointer;
}

.inv {
  opacity: 0;
  transition: all 0.8s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.inv.up {
  transform: translateY(60px);
}
.inv.left {
  transform: translateX(-40px);
}
.inv.right {
  transform: translateX(40px);
}
.inv.is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}


.ankpoint {padding-top:120px; margin-top:-120px;}
.ankpoint-2 {padding-top:200px; margin-top:-200px; display: block; height: 1;}
@media screen and (max-width: 750px) {
.ankpoint {padding-top:22vw; margin-top:-22vw;}
.ankpoint-2 {padding-top:30vw; margin-top:-30vw;}
}

