@charset "UTF-8";

/* 全ページ共通 Css start */
/*---------------------------------------------
  Reset
---------------------------------------------*/
*,
*::before, *::after {box-sizing: border-box;margin: 0;padding: 0;}
html {font-family: 'Noto Sans JP', sans-serif;}
body {margin: 0;}
main {display: block;overflow: hidden;}
hr {box-sizing: content-box;height: 0;overflow: visible;}
ul {list-style: none;}
a, a:visited {color:#333;text-decoration: none;background-color: transparent;}
a:hover, a:active { color:#666; }
abbr[title] {border-bottom: none;text-decoration: underline;text-decoration: underline dotted;}
b, strong {font-weight: bolder;}
code, kbd, samp {font-family: monospace, monospace;font-size: 1em;}
small {font-size: 80%;}
sub, sup {font-size: 75%;line-height: 0;position: relative;vertical-align: baseline;}
sub {bottom: -0.25em;}
sup {top: -0.5em;}
img {border-style: none;width: auto;height: auto;max-width: 100%;max-height: 100%;}
button, input, optgroup, select,textarea {font-size: 100%;line-height: 1.15;margin: 0;}
button, input {overflow: visible;}
button, select {text-transform: none;}
button, [type="button"], [type="reset"], [type="submit"] {-webkit-appearance: button;}
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {border-style: none;padding: 0;}
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {outline: 1px dotted ButtonText;}
fieldset { padding: 0.35em 0.75em 0.625em;}
legend {box-sizing: border-box;color: inherit;display: table;max-width: 100%;padding: 0;white-space: normal;}
progress {vertical-align: baseline;}
textarea {overflow: auto;}
[type="checkbox"], [type="radio"] {box-sizing: border-box; padding: 0;}
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {height: auto;}
[type="search"] {-webkit-appearance: textfield; outline-offset: -2px;}
[type="search"]::-webkit-search-decoration { -webkit-appearance: none;}
::-webkit-file-upload-button {-webkit-appearance: button; font: inherit;}
details { display: block;}
summary {display: list-item;}
template {display: none;}
[hidden] {display: none;}



/*---------------------------------------------
  Component
---------------------------------------------*/
/* Button */
.btn-base, .btn-base:visited {width: fit-content;display: inline-block;padding: 15px 60px;color: #fff;font-size: 1rem;font-weight: 600;text-decoration: none;background-color: #E1251B;transition: .3s;border-radius: 30px;}
.btn-base:active, .btn-base:hover {color: #fff;background-color: #f13228;}
.pctb-none {display: block;}
.sp-none {display: none;}
@media screen and (min-width: 768px) {
  .pctb-none {display: none;}
  .sp-none {display: block;}
}
@media screen and (min-width: 1024px) {
  .pctb-none {display: none;}
}
@media screen and (min-width: 1200px) {
}

/* Form */
input {padding: .3rem .5rem;}
button, input, optgroup, select, textarea {font-size: 1rem;}




/*---------------------------------------------
  Header
---------------------------------------------*/
.header {width: 100%; position: absolute; top: 0; z-index: 100;}
.header-inner {width: 100%;height: 60px;padding-left: 10px;padding-right: 10px;display: flex; align-items: center;}
.header-inner .header-title {line-height: 0.8em;}
.header-inner .header-title img {width: 120px;}
.header-nav {margin-left: auto;}
.header-nav .link-block {display: flex;justify-content: space-between; align-items: center;}
.link-block a:nth-of-type(1), .link-block a:nth-of-type(2) {display: none;}

.fixed-header {display: none; position: fixed;top: -80px;left: 0;z-index: 100;transition: all 0.3s ease-in-out;visibility: hidden;background: #0E0E0E;}
.fixed-header.is-show {top: 0;visibility: visible;}
@media screen and (min-width: 768px) {
  .header-inner {height: 80px;}
  .header-inner .header-title img {width: 150px;}
  .header-nav {display: flex;}
  .header-nav .link-block {display: flex;justify-content: space-between; align-items: center;}
  .header-nav .link-block a {display: block; margin-right: 30px;}
  .header-nav .link-block a:nth-child(1) {/*margin-right: 16px;*/ height: 40px;}
  .header-nav .link-block a:nth-child(2) {height: 40px;}
  .header-nav .link-block a img {width: 40px;}
  .header-nav .link-block a.btn-base {padding: 10px 25px;}
  .fixed-header {display: block;}

}
@media screen and (min-width: 1024px) {
}
@media screen and (min-width: 1200px) {
  .header-inner {max-width: 1200px;margin-left: auto;margin-right: auto;padding-left: 20px;padding-right: 20px;position: relative;}
}


.language-switcher {
  position: relative;
  display: inline-block;
  cursor: pointer;
}
.language-switcher > .current-language {
  padding: 10px 20px;
  color: #ffffff;
  border: none;
  font-size: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.language-switcher > .language-options {
  display: block;
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: white;
  border: 1px solid #ddd;
  border-radius: 5px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 100;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}
.language-switcher > .language-options a {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 10px 30px;
  color: #333;
  text-decoration: none;
  font-size: 14px;
  transition: background-color 0.3s ease;
  margin-right: 0 !important;
}
.language-switcher > .language-options a:hover {
  background-color: #f1f1f1;
}
@media (hover: hover) {
.language-switcher:hover > .language-options {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}
}
.language-switcher.show-options > .language-options {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}
.flag {
  width: 20px;
  height: 20px;
  object-fit: cover;
}


/* プリローダー全体 */
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000; /* 背景色を設定 */
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* スピナーアニメーション */
.spinner {
  width: 50px;
  height: 50px;
  border: 5px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}




/*---------------------------------------------
  Footer オリジナル
---------------------------------------------*/
.footer { width: 100%; padding: 0; margin: 0; display: block; z-index: 1; background: #F5F5F5;}
.footer .inner { width: 100%; padding: 40px 20px; margin: 0; display: block; }
.footer .inner .fl-block {display: flex; justify-content: space-between; margin-bottom: 30px;}
.footer .inner .fl-block img {width: 100px;}
.footer .inner .fl-block .sns-box {width: 76px; display: flex; justify-content: space-between; align-items: center;}
.footer .inner .fl-block .sns-box a {width: 30px; height: 30px;}
.footer .inner .fl-block .sns-box img {width: 30px; height: 30px;}
.f-link-block {display: block; margin-bottom: 30px; }
.f-link-block a:link, .f-link-block a:visited {color: #0E0E0E;}
.f-link-block .ft-link {width: 100%; padding: 20px 0; display: block; border-bottom: 2px solid #DDDDDD; position: relative;}
.f-link-block .ft-link i {position: absolute; right: 10px; top: 40%;}
.footer .inner p {font-size: 11px; line-height: 1.6em; text-indent: -1em;padding-left: 1em; padding-bottom: 5px;}
.footer .inner p.tl {text-indent: 0; padding-left: 0; font-weight: bold;}
.copy-wrap { width: 100%; padding: 20px 0; margin: 0; display: block; z-index: 1; background: #0E0E0E;}
.copy-wrap p {text-align: center; color: #ffffff; font-size: 14px; font-weight: bold;}
@media screen and (min-width: 768px) {
  .f-link-block {display: flex; justify-content: space-between; }
  .f-link-block .ft-link {width: 48%;}
}
@media screen and (min-width: 1024px) {
}
@media screen and (min-width: 1200px) {
  .footer .inner { max-width: 1200px; padding: 40px 20px; margin: 0 auto; }
}

.mv-bottom-in {
  opacity: 0;
  transform: translateY(100px);
}


.background-video {position: fixed;top: 0;left: 0;width: 100%;height: 100%;overflow: hidden;z-index: -1;}
.background-video video {min-width: 100%;min-height: 100%;}
.background-video video img {width: 100%;height: auto;display: block;}

#contents {width: 100%;padding: 0;margin: 0; z-index: 0;}

section {width: 100%; padding: 0; margin: 0 auto; display: block;}
.wh-bk {background: #ffffff;}
.inbox {width: 100%; padding: 60px 20px; margin: 0; display: block; }
.inbox h2 {font-size: 1.8rem; font-weight: bold; color: #E1251B; text-align: center; margin-bottom: 60px;}
@media screen and (min-width: 768px) {
}
@media screen and (min-width: 1024px) {
  .inbox {padding: 90px 20px;}
  .inbox h2 {font-size: 2rem; margin-bottom: 60px;}
}
@media screen and (min-width: 1200px) {
  .inbox {max-width: 1200px; padding: 90px 0; margin: 0 auto; }
}



/* Text effect */
p.effect {display: block;width: fit-content;position: relative;color: #0E0E0E;font-size: 1.4rem;line-height: 1.5;}
p.effect span {font-weight: bold;position: relative;display: inline-block;z-index: 1; }
p.effect span::before {content: "";position: absolute;top: -5px;left: 0;width: 0;height: calc(100% + 10px);background-color: #fff;z-index: -1;transition: width 0.8s cubic-bezier(0, 0, 0.2, 1);
  /* 修正点：左余白分を補正 */left: -10px;width: 0; /* 初期状態 */}
p.effect.scroll-in span::before {width: calc(100% + 20px); /* 幅を補正 */}
p.effect br {content: "";display: block;height: 25px;background: transparent;}



/* counter */
.count-wrap {width: fit-content; padding: 50px 30px; margin: 0 auto; display: block; border-radius: 10px; background: rgba(84, 0, 0, 0.8);}
.count-wrap h3 {font-size: 6.6vw; margin-bottom: 30px; text-align: center; font-weight: bold; color: #ffffff;}
.count-box {width: 100%; padding: 30px 0 50px 0; margin: 0 auto 50px; display: block; border-top: 1px solid #ffffff; border-bottom: 1px solid #ffffff;}
.count-box .timer {width: fit-content; margin: 0 auto; color: #ffffff;}
.count-box .timer span { font-size: 2.4rem; font-family: "Roboto", serif; font-weight: bold; color: #ffffff; display: inline-block; margin: 0 10px; position: relative;}
.timer .day::after {content: 'Days'; font-family: "Dosis", serif; font-size: 0.9rem; color: #ffffff; position: absolute; bottom: -20px; left: 14%;}
.timer .hour::after {content: 'Hours'; font-family: "Dosis", serif; font-size: 0.9rem; color: #ffffff; position: absolute; bottom: -20px; left: 6px;}
.timer .minute::after {content: 'Minuts'; font-family: "Dosis", serif; font-size: 0.9rem; color: #ffffff; position: absolute; bottom: -20px; left: 2px;}
.timer .second::after {content: 'Seconds'; font-family: "Dosis", serif; font-size: 0.9rem; color: #ffffff; position: absolute; bottom: -20px; left:0px;}
.count-wrap #message {font-size: 1.2rem; font-weight: bold; color: #ffffff; text-align: center; margin-bottom: 50px;}
.count-wrap .btn-base {display: block; margin: 0 auto; padding: 15px 60px;}
@media screen and (min-width: 768px) {
  .count-wrap {padding: 50px 80px;}
  .count-wrap h3 {font-size: 1.6rem;}
  .count-box {width: fit-content; padding: 30px 30px 50px 30px; margin: 0 auto 50px;}
  .count-wrap .btn-base {padding: 15px 80px;}
}
@media screen and (min-width: 1200px) {
  .count-wrap {padding: 50px 60px;}
  .count-wrap h3 {font-size: 1.6rem;}
}



.main {width: 100%;height: auto;}
.main .inbox { padding-top: 80px;}
.main .inbox .left-box {display: block; margin-bottom: 50px;}
.main .inbox .left-box p.effect {color: #0E0E0E; margin-bottom: 30px;}
.main .inbox .left-box p.effect span {margin-left: 15px;}
.main .inbox .left-box h2 {font-family: "Roboto", serif; font-size: 17vw; line-height: 1em; font-weight: bold; color: #ffffff; text-align: left; margin-bottom: 30px;}
.main .inbox .left-box p {color: #ffffff;}
.main .inbox .right-box .count-wrap p.effect {margin: 0 auto 30px;}
@media screen and (min-width: 768px) {
  .main .inbox { padding-top: 100px;}
  .main .inbox .left-box p.effect {margin-bottom: 0;}
  .main .inbox .left-box h2 {font-size: 12vw; margin-top: 50px; margin-bottom: 30px;}
}
@media screen and (min-width: 1024px) {
}
@media screen and (min-width: 1200px) {
  .main .inbox {max-width: 1300px; width: 100%; padding: 90px 10px; height: 100vh; display: flex; justify-content: space-between; }
  .main .inbox .left-box {width: 47%; margin-bottom: 0; margin-top: 80px;}
  .main .inbox .left-box p.effect {margin-bottom: 0;}
  .main .inbox .left-box h2 {font-size: 12vh; /*font-size: 110px;*/ margin: 30px 0 20px;}
  .main .inbox .right-box {width: 45%; margin-bottom: 0; display: flex; align-items: center;}
}



/* About */
.about .inbox img {display: block; margin: 0 auto 60px;}
.about .inbox p {padding: 0; text-align: center;}
@media screen and (min-width: 768px) {
  .about .inbox p {padding: 0 20px;}
}
@media screen and (min-width: 1200px) {
  .about .inbox img {width: 642px;}

}


/* Benefits */
.benefit .inbox p.effect { width: fit-content; display: block; margin: 0 auto 50px; font-size: 1.1rem;line-height: 1.5; text-align: center;}
.benefit .inbox .fl-block {display: block;}
.benefit .inbox .fl-block .item {width: fit-content; padding: 30px 20px; margin: 0 auto 30px; display: block; border-radius: 10px; background: rgba(84, 0, 0, 0.8);}
.benefit .inbox .fl-block .item:last-child {margin-bottom: 0;}
.benefit .inbox .fl-block .item img {width: 80px; display: block; margin: 0 auto 30px;}
.benefit .inbox .fl-block .item h4 {font-size: 1.2rem; font-weight: bold; text-align: center; margin-bottom: 10px; color: #ffffff;}
.benefit .inbox .fl-block .item p {text-align: center; color: #ffffff;}
@media screen and (min-width: 768px) {
  .benefit .inbox h3 {margin-left: -10px;}
  .benefit .inbox h3.effect {font-size: 1.4rem;}
  .benefit .inbox .fl-block .item {width: 80%; }
}
@media screen and (min-width: 1024px) {
  .benefit .inbox .fl-block {display: flex; justify-content: space-between;}
  .benefit .inbox .fl-block .item {width: 30%; padding: 30px 20px; margin: 0 auto 30px;}
  .benefit .inbox .fl-block .item:last-child {margin-bottom: 30px;}
}
@media screen and (min-width: 1200px) {
  .benefit .inbox h3 {margin-left: -20px;}
}


/* Airdrop */
.airdrop .inbox h2 + p {text-align: center;}
.airdrop .inbox .item-wrap {padding: 30px; margin: 60px 0; display: block; background: url('../images/section3-bg.webp') 50% 50%/cover no-repeat; border-radius: 10px; }
.airdrop .inbox .item-wrap .img-block {display: block; margin-bottom: 20px;}
.airdrop .inbox .item-wrap .img-block img {width: 167px; display: block; margin: 0 auto;}
.airdrop .inbox .item-wrap .txt-block dl {counter-reset: section-counter;}
.airdrop .inbox .item-wrap .txt-block dt {font-size: 1.2rem;font-weight: bold;padding-left: 2.4em;position: relative;margin: 30px 0 15px;color: #ffffff;}
.airdrop .inbox .item-wrap .txt-block dt::before {content: counter(section-counter);counter-increment: section-counter;display: inline-block;color: #E1251B;background: #ffffff;border-radius: 50%;width: 1.8em;height: 1.8em;text-align: center;line-height: 1.8em;font-weight: bold;position: absolute;left: 0;top: 0;}
.airdrop .inbox .item-wrap .txt-block dd {color: #ffffff;text-indent: -1em;padding-left: 3em;}
.airdrop .inbox .btn-base {display: block; margin: 0 auto; padding: 15px 50px;}
@media screen and (min-width: 768px) {
  .airdrop .inbox .item-wrap {padding: 30px; margin: 60px 0; display: flex; justify-content: space-between; }
  .airdrop .inbox .item-wrap .img-block {width: 20%;margin-bottom: 0;}
  .airdrop .inbox .item-wrap .img-block img {width: 100%;}
  .airdrop .inbox .item-wrap .txt-block {width: 75%;}
  .airdrop .inbox .item-wrap .txt-block dt:nth-child(1) { margin: 0 0 15px;}
}
@media screen and (min-width: 1200px) {
  .airdrop .inbox .item-wrap {padding: 50px 50px; margin: 60px 0; }
  .airdrop .inbox .item-wrap .img-block {width: 18%;margin-bottom: 0;}
  .airdrop .inbox .item-wrap .txt-block dt:nth-child(1) { margin: 10px 0 15px; }
}




/* 実績 */
.achievements .inbox h2 {color: #ffffff;}
.group {width: 100%; display: block; margin-bottom: 80px;}
.group p.effect {font-size: 1.4rem; margin: 0 auto 50px; text-align: center;}
.group .item-wrap .item {width: fit-content; padding: 10px; margin-bottom: 50px; display: block; background: #ffffff; border-radius: 5px; }
.group .item-wrap .item img {width: 100%; border-radius: 20px; }
.group .item-wrap .item p.tl {padding: 20px 0; font-size: 1.2rem; font-weight: bold; color: #E1251B; text-align: center;}
.item-wrap .item .tl + p {text-align: center; margin-bottom: 10px;}
.group-center {margin-bottom: 30px;}

@media screen and (min-width: 768px) {
  .group h3 {text-align: center; margin-left: -25px;}
  .group .item-wrap {display: flex; justify-content: space-between;}
  .group .item-wrap .item {width: 48%;}
  .group-center {margin-bottom: 30px;}
  .group-center .item-wrap {display: block; }
  .group-center .item-wrap .item {display: block; margin: 0 auto; }
}
@media screen and (min-width: 1200px) {
  .group {width: 100%; display: flex; justify-content: space-between; margin-bottom: 60px;}
  .group p.effect {width: 30%; display: block;font-size: 1.4rem; margin: 5px 0 0 0; text-align: left;}
  .group p.effect span {margin-left: 10px;}
  .group .item-wrap {width: 70%;}
  .group .item-wrap .item {width: 45%;}
  .group-center {margin-bottom: 0;}
  .group-center .item-wrap {display: flex; }
  .group-center .item-wrap .item {display: block; margin: 0; }
}



.cta-wrap {background: rgba(84, 0, 0, 0.8);}
.cta-wrap .inbox {padding: 80px 20px;}
.cta-wrap .inbox h2 {color: #ffffff; margin-bottom: 30px;}
.cta-wrap .inbox .btn-base {display: block; margin: 0 auto;}
@media screen and (min-width: 1200px) {
  .cta-wrap .inbox {padding: 90px 0;}
}



/* Step */
.step-block {width: 100%; padding: 50px 0; margin: 0 auto 40px; border-top: 1px solid #E1251B; display: block; position: relative;}
.step-wrap .step-block:last-of-type {margin-bottom: 0;}
.step-block::before { content: ""; width: fit-content; padding: 5px 10px; font-size: 1rem; font-weight: bold; display: inline-block; position: absolute; top:-20px; left: 0; right: 0; margin: auto; color: #ffffff; background: #E1251B; text-align: center;}
.step-block .img-box {display: block; margin-bottom: 30px;}
.step-block .img-box img {width: 100px; display: block; margin: 0 auto;}
.step-block .txt-box h3 { font-size: 1.4rem; text-align: center; margin-bottom: 10px;}
.step-block .txt-box p {text-align: center;}
.step-wrap .inbox .btn-base {display: block; margin: 0 auto;}
@media screen and (min-width: 768px) {
  .step-block {padding: 50px 0; margin-bottom: 40px; display: flex; justify-content: space-between; }
  .step-block .img-box {width: 20%; margin-bottom: 0;}
  .step-block .txt-box {width: 75%; display: block;}
  .step-block .txt-box h3 { font-size: 1.4rem; text-align: left; margin-bottom: 10px;}
  .step-block .txt-box p {text-align: left;}
}
@media screen and (min-width: 1200px) {
  .step-block {width: 80%;}
}



/* FAQ */
.faq-inbox { margin-bottom: 30px;}
.qa-list dl {position: relative;display: block; padding: 15px 0 15px 10px;margin-bottom: 30px; cursor: pointer;background: #F5F5F5;border-radius: 10px;}
.qa-list dl::before {position: absolute; top: 22px;right: 20px;width: 7px;height: 7px;display: block;margin: auto;content: '';transform: rotate(135deg);border-top: 2px solid #0E0E0E;border-right: 2px solid #0E0E0E;}
.qa-list .open::before {transform: rotate(-45deg);}
.qa-list dl dt {position: relative;padding: 0 60px 0 40px;margin: 0;font-size: 1rem;font-weight: bold;}
.qa-list dl dt::before {font-size: 1rem;line-height: 1;position: absolute;top: -2px;left: 4px;content: 'Q';display: block;font-weight: bold;color: #ffffff; background: #E1251B; padding: 6px;}
.qa-list dl dd {position: relative;display: none;height: auto;margin: 10px 0 0;padding: 10px 10px 0 10px;font-size: 1rem; border-top: 1px solid #DDDDDD;}
.qa-list dl dd p {margin: 30px 0 0;}
.qa-list dl dd p:first-child{margin-top: 0;}
@media only screen and (min-width: 768px) {
}
@media only screen and (min-width: 1024px) {
  .faq-inbox { margin-bottom: 0;}
  .qa-list dl {padding: 30px;}
  .qa-list dl::before {top: 35px;right: 35px;}
  .qa-list dl dt {padding: 0 0 0 50px;font-size: 1rem;}
  .qa-list dl dt::before {font-size: 1.2rem;left: 0;}
  .qa-list dl dd::before {font-size: 1.2rem;top: 3px;left: 2px;}
  .qa-list dl dd {margin: 30px 0 0;padding: 30px 0 0 50px;}
}






/* LP2 */
  
/* 追加のスタイル */
.explanation-section {
  background-color: rgba(255, 255, 255, 0.9);
  /*border-radius: 10px;*/
  padding: 30px;
  margin: 0px 0;
  color: #333;
}

.explanation-section h2 {
  color: #E1251B;
  margin-bottom: 30px;
  text-align: center;
  font-size: 24px;
  font-size: 2rem;
}

.explanation-section h3 {
  color: #E1251B;
  margin: 25px 0 15px;
  font-size: 20px;
}

.info-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  background-color: white;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.info-table th, .info-table td {
  padding: 12px 15px;
  text-align: left;
  border: 1px solid #ddd;
}

.info-table th {
  background-color: #E1251B;
  color: white;
  font-weight: bold;
}

.info-table tr:nth-child(even) {
  background-color: #f8f8f8;
}

.info-table tr:hover {
  background-color: #f1f1f1;
}

.feature-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 20px 0;
  gap: 20px;
}

.feature-box {
  flex: 1 1 300px;
  background-color: rgba(84, 0, 0, 0.8);
  color: white;
  padding: 20px;
  border-radius: 8px;
  margin-bottom: 20px;
}

.feature-box h4 {
  text-align: center;
  margin-bottom: 15px;
  font-size: 18px;
}

.feature-box p {
  font-size: 15px;
  line-height: 1.5;
}

.process-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 30px 0;
}

.step-box {
  background-color: white;
  padding: 20px;
  border-radius: 8px;
  border-left: 5px solid #E1251B;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.step-box h4 {
  color: #E1251B;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
}

.step-box h4 span {
  background-color: #E1251B;
  color: white;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-right: 10px;
  font-size: 14px;
}

.highlight-box {
  background-color: #fff3cd;
  border-left: 5px solid #ffc107;
  padding: 15px;
  margin: 20px 0;
  border-radius: 5px;
}

.simulation-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  background-color: white;
}

.simulation-table th, .simulation-table td {
  padding: 12px 15px;
  text-align: center;
  border: 1px solid #ddd;
}

.simulation-table th {
  background-color: #E1251B;
  color: white;
}

.simulation-table tr:nth-child(even) {
  background-color: #f8f8f8;
}

.simulation-table tr.total-row {
  background-color: #e6f7ff;
  font-weight: bold;
}

.simulation-table tr.highlight-row {
  background-color: #ffe6e6;
  font-weight: bold;
}

.card-features {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 20px 0;
}

.card-feature-item {
  flex: 1 1 250px;
  background-color: white;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.card-feature-item h4 {
  color: #E1251B;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
}

.card-feature-item h4 i {
  margin-right: 10px;
  color: #E1251B;
}

.schedule-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  background-color: white;
}

.schedule-table th, .schedule-table td {
  padding: 12px 15px;
  text-align: center;
  border: 1px solid #ddd;
}

.schedule-table th {
  background-color: #E1251B;
  color: white;
}

.flow-chart {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 30px 0;
}

.flow-item {
  display: flex;
  align-items: center;
  background-color: white;
  padding: 15px;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.flow-item .flow-icon {
  background-color: #E1251B;
  color: white;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 15px;
  font-size: 20px;
}

.flow-item .flow-content {
  flex: 1;
}

.flow-arrow {
  text-align: center;
  color: #E1251B;
  font-size: 24px;
  margin: -10px 0;
}

@media (max-width: 768px) {
  .info-table, .simulation-table, .schedule-table {
    font-size: 14px;
  }
  
  .info-table th, .info-table td, .simulation-table th, .simulation-table td, .schedule-table th, .schedule-table td {
    padding: 8px 10px;
  }
}







/* モバイル向けの追加スタイル */
@media (max-width: 768px) {
  .explanation-section {
    padding: 20px 15px;
    margin: 20px 0;
  }
  
  .info-table, .simulation-table, .schedule-table {
    font-size: 14px;
    width: 100%;
  }
  
  .info-table th, .info-table td, 
  .simulation-table th, .simulation-table td, 
  .schedule-table th, .schedule-table td {
    padding: 8px 6px;
  }
  
  .feature-container {
    gap: 10px;
  }
  
  .feature-box {
    flex: 1 1 100%;
    padding: 15px;
    margin-bottom: 10px;
  }
  
  .process-steps, .card-features {
    gap: 10px;
  }
  
  .step-box, .card-feature-item {
    padding: 15px;
  }
  
  /* コンテンツエリアの幅を広げる */
  .inbox {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  
  /* テーブルの調整 */
  .info-table th, .schedule-table th {
    white-space: nowrap;
  }
  
  /* フォントサイズの最適化 */
  .explanation-section h2 {
    font-size: 20px;
    margin-bottom: 20px;
  }
  
  .explanation-section h3 {
    font-size: 18px;
    margin: 20px 0 10px;
  }
  
  .feature-box h4, .step-box h4, .card-feature-item h4 {
    font-size: 16px;
  }
  
  p, li, td, th {
    font-size: 14px;
  }
  
  /* フロー図の調整 */
  .flow-item {
    padding: 12px;
  }
  
  .flow-item .flow-icon {
    width: 30px;
    height: 30px;
    margin-right: 10px;
    font-size: 16px;
  }
  
  /* 余白をさらに調整してコンテンツ領域を広げる */
  .flow-chart, .process-steps {
    margin: 15px 0;
  }
  
  .highlight-box {
    padding: 12px;
    margin: 15px 0;
  }
}

/* さらに小さいスマートフォン向け */
@media (max-width: 480px) {
  .explanation-section {
    padding: 15px 10px;
  }
  
  .info-table, .simulation-table, .schedule-table {
    font-size: 12px;
  }
  
  .info-table th, .info-table td, 
  .simulation-table th, .simulation-table td, 
  .schedule-table th, .schedule-table td {
    padding: 6px 4px;
  }
  
  /* コンテンツの余白をさらに削減 */
  .inbox {
    padding-left: 5px !important;
    padding-right: 5px !important;
  }
  
  /* テーブルをコンパクトに */
  .info-table, .simulation-table, .schedule-table {
    margin: 10px 0;
  }
}






/* 新規追加スタイル */
.mining-status {
  background-color: rgba(84, 0, 0, 0.9);
  border-radius: 10px;
  padding: 25px;
  margin: 30px 0;
  color: white;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.mining-status h3 {
  color: white;
  font-size: 22px;
  margin-bottom: 15px;
}

.mining-status .status-number {
  font-size: 48px;
  font-weight: bold;
  color: #fff;
  margin: 10px 0;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.mining-status p {
  margin: 10px 0;
}

.payment-options {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 30px 0;
}

.payment-option {
  flex: 1 1 45%;
  background-color: white;
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.payment-option h4 {
  color: #E1251B;
  font-size: 18px;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
}

.payment-option h4 i {
  margin-right: 10px;
}

.timeline {
  position: relative;
  margin: 40px 0;
  padding-left: 30px;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: #E1251B;
  border-radius: 4px;
}

.timeline-item {
  position: relative;
  margin-bottom: 30px;
  padding-bottom: 20px;
}

.timeline-item::before {
  content: '';
  position: absolute;
  left: -34px;
  top: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: white;
  border: 4px solid #E1251B;
}

.timeline-item h4 {
  color: #E1251B;
  margin-bottom: 10px;
}

.timeline-item p {
  margin: 5px 0;
}

.timeline-date {
  display: inline-block;
  padding: 4px 10px;
  background-color: #f8f8f8;
  border-radius: 4px;
  font-size: 14px;
  margin-bottom: 10px;
}

.special-offer-card {
  background: linear-gradient(135deg, #5a0000 0%, #8a0000 100%);
  color: white;
  padding: 30px;
  border-radius: 10px;
  margin: 30px 0;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  position: relative;
  overflow: hidden;
}

.special-offer-card::before {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 100px;
  height: 100px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
}

.special-offer-card h2 {
  color: white !important;
  font-size: 28px !important;
  margin-bottom: 20px !important;
  text-align: center;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.special-offer-card h3 {
  color: white !important;
  font-size: 22px;
  margin: 15px 0;
}

.card-image {
  text-align: center;
  margin: 20px 0;
}

.card-image img {
  max-width: 80%;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

.card-benefits {
  margin: 20px 0;
}

.card-benefit-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 15px;
}

.card-benefit-item i {
  color: #ffd700;
  margin-right: 10px;
  margin-top: 4px;
}

.faq-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 30px;
}

.faq-category {
  padding: 8px 15px;
  background-color: #E1251B;
  color: white;
  border-radius: 20px;
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.3s;
}

.faq-category:hover, .faq-category.active {
  background-color: #a51b14;
}

.fixed-contact {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
}

.fixed-contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background-color: #E1251B;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  transition: transform 0.3s;
}

.fixed-contact a:hover {
  transform: scale(1.1);
}

.fixed-contact img {
  width: 35px;
  height: 35px;
}

.staking-process {
  background-color: white;
  border-radius: 8px;
  padding: 25px;
  margin: 30px 0;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.staking-steps {
  position: relative;
  counter-reset: staking-counter;
}

.staking-step {
  padding-left: 50px;
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px dashed #ddd;
}

.staking-step:last-child {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}

.staking-step::before {
  counter-increment: staking-counter;
  content: counter(staking-counter);
  position: absolute;
  left: 0;
  top: 0;
  width: 34px;
  height: 34px;
  background-color: #E1251B;
  color: white;
  font-weight: bold;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.staking-step h4 {
  color: #E1251B;
  margin-bottom: 10px;
}

.staking-step p {
  margin: 0;
}

.special-offer-box {
  background-color: rgba(84, 0, 0, 0.8);
  color: white;
  border-radius: 10px;
  padding: 25px;
  margin: 30px 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.special-offer-box h3 {
  color: white !important;
  text-align: center;
  margin-bottom: 20px;
}

.offer-comparison {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 8px;
  overflow: hidden;
}

.offer-comparison th, .offer-comparison td {
  padding: 15px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.7);
}

.offer-comparison th {
  background-color: rgba(225, 37, 27, 0.8);
  color: white;
}

.offer-comparison tr:nth-child(even) {
  background-color: rgba(255, 255, 255, 0.7);
}

.highlight-cell {
  font-weight: bold;
  font-size: 1.2em;
  color: #ffd700;
}

.note {
  font-size: 0.9em;
  margin-top: 15px;
  opacity: 0.9;
}

.investment-plan {
  background-color: white;
  border-radius: 8px;
  padding: 25px;
  margin: 30px 0;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.plan-diagram {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 30px 0;
}

.plan-box {
  background-color: #f8f8f8;
  border: 2px solid #ddd;
  border-radius: 8px;
  padding: 15px;
  margin-bottom: 15px;
  width: 80%;
  text-align: center;
  position: relative;
}

.plan-box.highlight {
  background-color: #fff3cd;
  border-color: #ffc107;
}

.plan-arrow {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #E1251B;
  margin: -5px 0;
}

.plan-box h4 {
  color: #E1251B;
  margin-bottom: 5px;
}

/* モバイル向けの調整 */
@media (max-width: 768px) {
  .timeline {
    padding-left: 20px;
  }
  
  .timeline-item::before {
    left: -24px;
  }
  
  .special-offer-card {
    padding: 20px;
  }
  
  .special-offer-card h2 {
    font-size: 24px !important;
  }
  
  .special-offer-card h3 {
    font-size: 18px;
  }
  
  .faq-category {
    font-size: 12px;
    padding: 6px 12px;
  }
  
  .fixed-contact {
    bottom: 15px;
    right: 15px;
  }
  
  .fixed-contact a {
    width: 50px;
    height: 50px;
  }
  
  .fixed-contact img {
    width: 30px;
    height: 30px;
  }
  
  .staking-step {
    padding-left: 40px;
  }
  
  .staking-step::before {
    width: 30px;
    height: 30px;
  }
  
  .plan-box {
    width: 90%;
  }
}

@media (max-width: 480px) {
  .special-offer-card h2 {
    font-size: 20px !important;
  }
  
  .plan-box {
    width: 100%;
  }
}



/*---------------------------------------------
  Header
---------------------------------------------*/
.header {width: 100%; position: absolute; top: 0; z-index: 100;}
.header-inner {width: 100%;height: 60px;padding-left: 10px;padding-right: 10px;display: flex; align-items: center;}
.header-inner .header-title {line-height: 0.8em;}
.header-inner .header-title img {width: 120px;}
.header-nav {margin-left: auto;}

.fixed-header {position: fixed;top: -80px;left: 0;z-index: 100;transition: all 0.3s ease-in-out;visibility: hidden;background: #0E0E0E;}
.fixed-header.is-show {top: 0;visibility: visible;}
@media screen and (min-width: 768px) {
  .header-inner {height: 80px;}
  .header-inner .header-title img {width: 150px;}
  .header-nav {display: flex;}
  .header-nav .link-block {display: flex;justify-content: space-between; align-items: center;}
  .header-nav .link-block a {display: block; margin-right: 30px;}
  .header-nav .link-block a:nth-child(1) {/*margin-right: 16px;*/ height: 40px;}
  .header-nav .link-block a:nth-child(2) {height: 40px;}
  .header-nav .link-block a img {width: 100%;}
  .header-nav .link-block a.btn-base {padding: 7px 25px;}

}
@media screen and (min-width: 1024px) {
}
@media screen and (min-width: 1200px) {
  .header-inner {max-width: 1200px;margin-left: auto;margin-right: auto;padding-left: 20px;padding-right: 20px;position: relative;}
}

/* 最初は PC 用を表示、モバイル用を隠す */
.pc_ana {
  display: block;
}
.mb_ana {
  display: none;
}

/* 画面幅が 1024px 以下になると PC 用を隠して、モバイル用を表示 */
@media screen and (max-width: 1024px) {
  .pc_ana {
    display: none;
  }
  .mb_ana {
    display: block;
  }
}



/* スケジュールの2列表示用スタイル */
.schedule-container {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin: 30px 0;
}

.timeline {
  position: relative;
  padding-left: 30px;
  flex: 1;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 40px; /* タイトルの下から開始するように調整 */
  bottom: 0;
  width: 4px;
  background-color: #E1251B;
  border-radius: 4px;
}

.timeline-title {
  color: #E1251B;
  font-size: 20px;
  margin-bottom: 20px;
  font-weight: bold;
  padding: 10px 15px;
  background-color: #fff3cd;
  border-radius: 5px;
  display: inline-block;
}

.timeline-item {
  position: relative;
  margin-bottom: 30px;
  padding-bottom: 20px;
}

.timeline-item::before {
  content: '';
  position: absolute;
  left: -34px;
  top: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: white;
  border: 4px solid #E1251B;
}

.timeline-item h4 {
  color: #E1251B;
  margin-bottom: 10px;
}

.timeline-item p {
  margin: 5px 0;
}

.timeline-date {
  display: inline-block;
  padding: 4px 10px;
  background-color: #f8f8f8;
  border-radius: 4px;
  font-size: 14px;
  margin-bottom: 10px;
}

/* PC表示用の2列レイアウト */
@media (min-width: 769px) {
  .schedule-container {
    flex-direction: row;
    align-items: flex-start;
  }
  
  .timeline {
    width: 48%;
  }
}

/* モバイル表示調整 */
@media (max-width: 768px) {
  .timeline {
    padding-left: 20px;
    margin-bottom: 20px;
  }
  
  .timeline-item::before {
    left: -24px;
  }
  
  .timeline-title {
    font-size: 18px;
    padding: 8px 12px;
  }
}



/* シミュレーションの新表示スタイル - 円グラフ修正版 */
.simulation-container {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin: 30px 0;
}

.simulation-card {
  background-color: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  flex: 1;
}

.simulation-card.featured {
  box-shadow: 0 6px 20px rgba(225, 37, 27, 0.2);
  transform: scale(1.02);
}

.simulation-header {
  background-color: #E1251B;
  color: white;
  padding: 20px;
  text-align: center;
}

.simulation-amount {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 5px;
}

.simulation-subtitle {
  font-size: 16px;
  opacity: 0.9;
}

.simulation-body {
  padding: 25px;
}

.simulation-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 15px;
  align-items: center;
}

.simulation-item i {
  margin-right: 8px;
  color: #E1251B;
}

.simulation-item.total {
  font-weight: bold;
  font-size: 18px;
  margin-top: 10px;
  color: #E1251B;
}

.simulation-label {
  color: #333;
  display: flex;
  align-items: center;
}

.simulation-value {
  font-weight: bold;
}

.simulation-divider {
  height: 1px;
  background-color: #eee;
  margin: 20px 0;
}

/* 円グラフのスタイル修正 */
.return-pie {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 20px 0;
}

.pie-container {
  width: 100px;
  height: 100px;
}

.pie {
  transform: rotate(-90deg);
  background: #f0f0f0;
  border-radius: 50%;
}

.pie-legend {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.legend-color {
  width: 15px;
  height: 15px;
  border-radius: 3px;
}

.color1 {
  background-color: #E1251B;
}

.color2 {
  background-color: #FFC107;
}

.return-rate {
  margin-top: 20px;
  background-color: #fff3cd;
  padding: 15px;
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.return-rate-label {
  font-weight: bold;
  color: #333;
}

.return-rate-value {
  font-size: 24px;
  font-weight: bold;
  color: #E1251B;
}

/* PC表示用の横並びレイアウト */
@media (min-width: 769px) {
  .simulation-container {
    flex-direction: row;
    align-items: stretch;
  }
  
  .simulation-card {
    max-width: 48%;
  }
}

/* モバイル調整 */
@media (max-width: 768px) {
  .simulation-card.featured {
    transform: none;
  }
  
  .simulation-amount {
    font-size: 28px;
  }
  
  .simulation-item.total {
    font-size: 16px;
  }
  
  .return-rate-value {
    font-size: 20px;
  }
  
  .return-pie {
    flex-direction: column;
    gap: 15px;
  }
  
  .pie-legend {
    flex-direction: row;
    justify-content: center;
    gap: 20px;
  }
}



/* Text effect */
p.effect {display: block;width: fit-content;position: relative;color: #0E0E0E;font-size: 1.0rem;line-height: 1.5;}
p.effect span {font-weight: bold;position: relative;display: inline-block;z-index: 1; }
p.effect span::before {content: "";position: absolute;top: -5px;left: 0;width: 0;height: calc(100% + 10px);background-color: #fff;z-index: -1;transition: width 0.8s cubic-bezier(0, 0, 0.2, 1);
  /* 修正点：左余白分を補正 */left: -10px;width: 0; /* 初期状態 */}
p.effect.scroll-in span::before {width: calc(100% + 20px); /* 幅を補正 */}
p.effect br {content: "";display: block;height: 25px;background: transparent;}

.right-box p.effect {display: block;width: fit-content;position: relative;color: #0E0E0E;font-size: 0.9rem !important; line-height: 1.5;}


.main {width: 100%;height: auto;}
.main .inbox { padding-top: 80px;}
.main .inbox .left-box {display: block; margin-bottom: 50px;}
.main .inbox .left-box p.effect {color: #0E0E0E; margin-bottom: 30px;}
.main .inbox .left-box p.effect span {margin-left: 15px;}
.main .inbox .left-box h2 {font-family: "Roboto", serif; font-size: 4vh; line-height: 1em; font-weight: bold; color: #ffffff; text-align: left; margin-bottom: 30px;}
.main .inbox .left-box p {color: #ffffff;}
.main .inbox .right-box .count-wrap p.effect {margin: 0 auto 30px;}
@media screen and (min-width: 768px) {
  .main .inbox { padding-top: 100px;}
  .main .inbox .left-box p.effect {margin-bottom: 0;}
  .main .inbox .left-box h2 {font-size: 6vw; margin-top: 50px; margin-bottom: 30px;}

}
@media screen and (min-width: 1024px) {
}
@media screen and (min-width: 1200px) {
  .main .inbox {height: 100vh; display: flex; justify-content: space-between; }
  .main .inbox .left-box {width: 80%; margin-bottom: 0;}
  .main .inbox .left-box p.effect {margin-bottom: 0;}
  .main .inbox .left-box h2 {font-size: 8vh; /*font-size: 110px;*/ margin: 30px 0 20px;}
  .main .inbox .right-box {width: 45%; margin-bottom: 0; display: flex; align-items: center;}
}


/* About */
.about .inbox img {display: block; margin: 0px auto 60px;}
.about .inbox p {padding: 0; text-align: center;}
@media screen and (min-width: 768px) {
  .about .inbox p {padding: 0 20px;}
}
@media screen and (min-width: 1200px) {
  .about .inbox img {width: 100%;}

}

.about2 {
  width: 100%;
  /* 画像をリピートせず、中央に配置 */
  background: url("./images/tokyo_tower_3f2.png") no-repeat center center;
  /* 切れずに全部おさめる */
  background-size: cover;
    /* 例: 最低400pxの高さを確保 */
  min-height: 400px; 
  /* セクション全体に上下余白を付けたい場合 */
  padding: 20px 0; 

}

.about2 h2{
  color:#000;
  /*background:#FFF;*/
}
.about2 span{
  background:#FFF;
}


.w-per80{
  width: 80%;
  margin: 0 auto;
}
.w-per100{
  width: 100%;
  margin: 0 auto;
}
