@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-style: normal;
  font-size: 100%;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

input, textarea {
  margin: 0;
  padding: 0;
}

ol, ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th {
  text-align: left;
}

a:focus {
  outline: none;
}

html {
  font-size: 62.5%;
  scroll-padding-top: 80px;
}
@media screen and (min-width: 1024px) {
  html {
    scroll-padding-top: 100px;
  }
}

body {
  color: #000;
  background-color: #fff;
  font-family: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, "ヒラギノ角ゴ W3", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  font-weight: 500;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media screen and (min-width: 1024px) {
  body {
    min-width: 1240px;
    padding-top: 74px;
  }
}
body.lower {
  background-color: #f6f0e3;
}
@media screen and (min-width: 1024px) {
  body.lower {
    padding-top: 240px;
  }
}

h1,
h2,
h3,
h4 {
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  font-size: 1.4rem;
  font-weight: 500;
  color: #000;
  line-height: 1.4;
}
@media screen and (min-width: 1024px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.6rem;
  }
}

table {
  color: #000;
  font-size: 1.6rem;
  line-height: 1.6;
}

p,
li {
  color: #000;
  font-size: 1.5rem;
  line-height: 1.6;
}
@media screen and (min-width: 1024px) {
  p,
  li {
    font-size: 1.6rem;
  }
}

a {
  color: #000;
}

@media screen and (min-width: 1024px) {
  a[href^="tel:"] {
    pointer-events: none;
    color: #222222;
    text-decoration: none;
  }
}
em {
  font-weight: 600;
}

small {
  font-size: 0.8em;
}

img,
svg {
  vertical-align: bottom;
  max-width: 100%;
}

input,
button,
textarea {
  font-family: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, "ヒラギノ角ゴ W3", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  outline: none;
}

input[type=text],
input[type=email],
input[type=password] {
  border: none;
  padding: 0 16px;
  height: 3em;
  font-size: 1.6rem;
  box-sizing: border-box;
  border-radius: 4px;
  border: 1px solid #e2e2e2;
}

textarea {
  border: none;
  padding: 16px;
  font-size: 1.6rem;
  box-sizing: border-box;
  border-radius: 4px;
  border: 1px solid #e2e2e2;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

input[type=checkbox] {
  cursor: pointer;
}

select {
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  border: 1px solid #dbdbdb;
  outline: none;
  background: #fff;
  color: #000;
  padding: 10px 40px 10px 10px;
  border-radius: 5px;
  background-image: url(/assets/images/icon/arrow-bottom.svg);
  background-repeat: no-repeat;
  background-position: top 50% right 10px;
  background-size: 12px auto;
  font-size: 1.4rem;
  font-weight: 700;
  box-sizing: border-box;
}

select::-ms-expand {
  display: none;
}

hr {
  margin: 0;
  border: none;
  background-color: #e2e2e2;
  height: 1px;
}

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

.headerGlobal {
  width: 100%;
  z-index: 999;
}
@media screen and (min-width: 1024px) {
  .headerGlobal {
    background-color: #ffffff;
    position: fixed;
    left: 0;
    top: 0;
  }
}

.headerGlobal-inner {
  box-sizing: border-box;
}
@media screen and (max-width: 1023px) {
  .headerGlobal-inner {
    padding: 20px;
  }
}
@media screen and (max-width: 1023px) {
  .topHeader .headerGlobal-inner {
    padding: 0px;
  }
}
@media screen and (min-width: 1024px) {
  .headerGlobal-inner {
    min-width: 1240px;
    max-width: 1280px;
    display: flex;
    justify-content: space-between;
    margin-inline: auto;
    padding: 10px;
  }
}

@media screen and (max-width: 1023px) {
  .headerGlobal-logo {
    width: 144px;
  }
}
@media screen and (max-width: 1023px) {
  .topHeader .headerGlobal-logo {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .headerGlobal-nav {
    pointer-events: none;
    opacity: 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 999;
    transition: opacity 0.3s ease;
  }
}
@media screen and (max-width: 1023px) {
  .headerGlobal-nav.-show {
    pointer-events: auto;
    opacity: 1;
  }
}

@media screen and (max-width: 1023px) {
  .headerGlobal-nav-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.2);
  }
}

@media screen and (min-width: 1024px) {
  .headerGlobal-nav-inner {
    height: 100%;
  }
}
@media screen and (max-width: 1023px) {
  .headerGlobal-nav-inner {
    background-color: #ffffff;
    position: relative;
    margin: 10px;
    border-radius: 42px;
    padding: 40px 30px 30px;
    transform: scale(0.92);
    transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  }
  .-show .headerGlobal-nav-inner {
    transform: scale(1);
  }
}

.headerGlobal-nav-list {
  display: flex;
}
@media screen and (max-width: 1023px) {
  .headerGlobal-nav-list {
    flex-direction: column;
    margin-bottom: 20px;
  }
}
@media screen and (min-width: 1024px) {
  .headerGlobal-nav-list {
    height: 100%;
    align-items: center;
    gap: 28px;
  }
}
.headerGlobal-nav-list li {
  font-size: 1.4rem;
  font-weight: 700;
}
@media screen and (max-width: 1023px) {
  .headerGlobal-nav-list li {
    text-align: left;
  }
  .headerGlobal-nav-list li:nth-child(-n+3) {
    font-size: 1.8rem;
  }
  .headerGlobal-nav-list li:nth-child(-n+3) a {
    padding: 6px 0;
  }
  .headerGlobal-nav-list li:nth-child(4) {
    margin-top: 16px;
  }
  .headerGlobal-nav-list li:nth-child(n+4) {
    border-top: 1px solid #ad0003;
  }
  .headerGlobal-nav-list li:nth-child(n+4) a {
    padding: 8px 0;
  }
}
.headerGlobal-nav-list a {
  color: #ad0003;
  text-decoration: none;
  display: block;
}
.headerGlobal-nav-list a img {
  vertical-align: bottom;
  margin-left: 6px;
  position: relative;
  top: -0.2em;
}
@media (any-hover: hover) {
  .headerGlobal-nav-list a {
    transition: opacity 0.3s ease;
  }
  .headerGlobal-nav-list a:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 1023px) {
  .headerGlobal-nav-entry {
    text-align: center;
  }
}

.headerGlobal-open {
  position: fixed;
  right: 20px;
  top: 20px;
  z-index: 99;
  padding: 12px;
  background-color: #ffffff;
  border-radius: 50%;
}
@media screen and (min-width: 1024px) {
  .headerGlobal-open {
    display: none;
  }
}

.headerGlobal-close {
  position: absolute;
  top: 28px;
  right: 28px;
}

.footerGlobal {
  text-align: center;
  padding-bottom: 80vw;
  background-repeat: no-repeat;
  background-position: 50% 100%;
  background-image: url(../img/common/footer-photo-sp.webp);
  background-size: contain;
}
@media screen and (min-width: 1024px) {
  .footerGlobal {
    background-image: url(../img/common/footer-photo-pc.webp);
    background-size: 1376px auto;
    margin-inline: auto;
    position: relative;
    padding-bottom: 480px;
  }
}

.footerGlobal-sns {
  margin-top: 48px;
}
@media screen and (min-width: 1024px) {
  .footerGlobal-sns {
    margin-top: 80px;
  }
}
.footerGlobal-sns ul {
  display: flex;
  justify-content: center;
  gap: 48px;
  margin-top: 32px;
}
@media screen and (min-width: 1024px) {
  .footerGlobal-sns ul {
    margin-top: 40px;
    gap: 80px;
  }
}

.footerGlobal-link {
  margin-top: 60px;
  font-size: 1.4rem;
}
@media screen and (min-width: 1024px) {
  .footerGlobal-link {
    margin-top: 80px;
  }
}

.footerGlobal-copyright {
  margin-top: 20px;
}

@media screen and (max-width: 1023px) {
  .footerGlobal-pagetop {
    margin-top: 60px;
  }
}
@media screen and (min-width: 1024px) {
  .footerGlobal-pagetop {
    position: absolute;
    left: calc(50% + 500px);
    top: 260px;
  }
}
@media screen and (max-width: 1023px) {
  .footerGlobal-pagetop img {
    width: 80px;
  }
}

.sectionTitle {
  font-size: 4.4rem;
  line-height: 1.4;
  text-align: center;
  font-weight: 700;
  color: #ad0003;
}
@media screen and (min-width: 1024px) {
  .sectionTitle {
    font-size: 5.4rem;
  }
}
.sectionTitle span {
  font-size: 1rem;
  display: block;
  margin-top: 12px;
}
@media screen and (min-width: 1024px) {
  .sectionTitle span {
    margin-top: 16px;
  }
}
.sectionTitle span img {
  vertical-align: bottom;
  height: 11px;
}
@media screen and (min-width: 1024px) {
  .sectionTitle span img {
    height: 13px;
  }
}
.sectionTitle.-orange {
  color: #cc8e30;
}
.sectionTitle.-green {
  color: #20bb4c;
}
.sectionTitle.-blue {
  color: #30bacc;
}

.pageTitle {
  font-size: 3.8rem;
  line-height: 1.4;
  text-align: center;
  font-weight: 700;
  color: #ad0003;
}
@media screen and (max-width: 1023px) {
  .pageTitle {
    padding-top: 40px;
  }
}
@media screen and (min-width: 1024px) {
  .pageTitle {
    font-size: 5.4rem;
  }
}
.pageTitle img {
  vertical-align: bottom;
}
.pageTitle span {
  font-size: 1rem;
  display: block;
  margin-top: 12px;
}
@media screen and (min-width: 1024px) {
  .pageTitle span {
    margin-top: 16px;
  }
}
.pageTitle span img {
  height: 12px;
}
.pageTitle + * {
  margin-top: 60px;
}
@media screen and (min-width: 1024px) {
  .pageTitle + * {
    margin-top: 80px;
  }
}

.button {
  color: #ffffff;
  background-color: #ad0003;
  display: inline-block;
  text-decoration: none;
  font-size: 1.6rem;
  line-height: 1.5;
  padding: 16px 40px;
  border-radius: 999px;
  font-weight: 700;
}
@media screen and (min-width: 1024px) {
  .button {
    font-size: 2.2rem;
  }
}
@media (any-hover: hover) {
  .button {
    transition: filter 0.3s ease;
  }
  .button:hover {
    filter: brightness(1.2);
  }
}
.button span {
  display: block;
  font-size: 1.3rem;
}
@media screen and (min-width: 1024px) {
  .button span {
    font-size: 1.4rem;
  }
}
.button small {
  display: block;
  text-align: center;
  font-size: 1rem;
  font-weight: normal;
  margin-top: 4px;
}
.button.disable {
  background-color: #C2C2C2;
  border: 3px solid #A8A8A8;
  pointer-events: none;
}

.entryButton {
  position: relative;
  left: 0;
  bottom: 8px;
  z-index: 99;
  width: 100%;
  text-align: center;
  margin-bottom: 72px;
}
@media screen and (max-width: 1023px) {
  .entryButton {
    margin-bottom: 48px;
  }
}
.entryButton .button {
  padding: 12px 40px;
}
@media screen and (min-width: 1024px) {
  .entryButton .button {
    padding: 14px 200px 16px;
  }
}
.entryButton p {
  text-align: center;
  font-size: 1rem;
  margin-top: 4px;
}
@media screen and (min-width: 1024px) {
  .entryButton p {
    margin-top: 8px;
    font-size: 1.1rem;
  }
}

.topMV {
  font-size: 2rem;
  text-align: center;
  background-image: url(../img/top/mv-bg.webp);
}
.topMV img {
  display: block;
  margin-inline: auto;
  width: 100%;
}

.topAbout {
  overflow: hidden;
  position: relative;
}

.topAbout-inner {
  position: relative;
  max-width: 1600px;
  margin-inline: auto;
  padding: 50px 36px 40px;
}
@media screen and (min-width: 1024px) {
  .topAbout-inner {
    text-align: center;
    padding: 160px 0 280px;
  }
}
.topAbout-inner h3 {
  font-size: 2.1rem;
  font-weight: 700;
  margin-top: 40px;
}
@media screen and (min-width: 1024px) {
  .topAbout-inner h3 {
    font-size: 3.2rem;
  }
}
.topAbout-inner p {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.8;
  margin-top: 20px;
}
@media screen and (min-width: 1024px) {
  .topAbout-inner p {
    font-size: 1.8rem;
  }
}

.topAbout-left {
  position: absolute;
  left: 50%;
  top: 50px;
  width: 280px;
  margin-left: -630px;
}

.topAbout-right {
  position: absolute;
  right: 50%;
  top: 240px;
  z-index: 1;
  width: 182px;
  margin-right: -610px;
}

.topAbout-photo-sp {
  height: 360px;
  animation: topAbout-infinity-scroll-sp 25s infinite linear;
  background-image: url(../img/top/about-photo-sp.webp);
  background-repeat: repeat-x;
  background-size: auto 100%;
  margin-bottom: 80px;
}
@media screen and (min-width: 1024px) {
  .topAbout-photo-sp {
    display: none;
  }
}

@keyframes topAbout-infinity-scroll-sp {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -1360px 0;
  }
}
.topAbout-bottom {
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  height: 120px;
  background-image: url(../img/top/about-bottom.svg);
  background-position: 65% 0;
  background-size: 2640px 192px;
  background-repeat: no-repeat;
}
@media screen and (min-width: 1024px) {
  .topAbout-bottom {
    background-position: 50% 0;
    height: 180px;
  }
}

.topHowto {
  background-color: #f6f0e3;
  padding-bottom: 80px;
  position: relative;
}
@media screen and (min-width: 1024px) {
  .topHowto {
    padding-bottom: 20px;
    min-width: 1200px;
    padding-top: 60px;
  }
}

.howto-image-1 {
  pointer-events: none;
  width: 1322px;
  position: absolute;
  left: 50%;
  top: -290px;
  margin-left: -650px;
}

.howto-image-2 {
  pointer-events: none;
  width: 260px;
}
@media screen and (max-width: 1023px) {
  .howto-image-2 {
    display: block;
    margin-inline: auto;
    margin-top: -30px;
    position: relative;
    z-index: 1;
  }
}
@media screen and (min-width: 1024px) {
  .howto-image-2 {
    width: 311px;
    position: absolute;
    left: 50%;
    margin-left: 300px;
    top: 830px;
    z-index: 1;
  }
}

.topHowto-items {
  display: flex;
  overflow-x: auto;
  gap: 28px;
  padding: 0 30px;
  margin-top: 40px;
  position: relative;
}
@media screen and (min-width: 1024px) {
  .topHowto-items {
    padding: 0 calc(50vw - 580px);
    gap: 20px;
    margin-top: 80px;
  }
}
.topHowto-items::-webkit-scrollbar {
  display: none;
}

.topHowto-nav {
  position: relative;
}

.topHowto-nav-next,
.topHowto-nav-prev {
  position: absolute;
  top: -400px;
}
@media (any-hover: hover) {
  .topHowto-nav-next,
  .topHowto-nav-prev {
    transition: filter 0.3s ease;
  }
  .topHowto-nav-next:hover,
  .topHowto-nav-prev:hover {
    filter: brightness(1.05);
  }
}

.topHowto-nav-next {
  right: calc(50% - 620px);
}

.topHowto-nav-prev {
  left: calc(50% - 620px);
  transform: scale(-1, 1);
}

.topHowto-item-inner {
  background-color: #ffffff;
  border-radius: 42px;
  flex-shrink: 0;
  width: 294px;
  box-sizing: border-box;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .topHowto-item-inner {
    width: 580px;
  }
}
.topHowto-item-inner h3 {
  font-size: 3rem;
  line-height: 1.4;
  font-weight: 700;
  color: #cc8e30;
}
@media screen and (min-width: 1024px) {
  .topHowto-item-inner h3 {
    font-size: 3.2rem;
  }
}
.topHowto-item-inner h4 {
  font-size: 2.4rem;
  font-weight: 700;
  margin-top: 16px;
}
@media screen and (min-width: 1024px) {
  .topHowto-item-inner h4 {
    font-size: 2.4rem;
  }
}
.topHowto-item-inner p {
  margin-top: 12px;
  font-size: 1.6rem;
}

.topHowto-item-text {
  padding: 24px 24px 40px;
}
@media screen and (min-width: 1024px) {
  .topHowto-item-text {
    padding: 32px 50px 40px;
  }
}

.topHowto-campaign,
.topHowto-stage {
  padding-top: 60px;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .topHowto-campaign,
  .topHowto-stage {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media screen and (min-width: 1024px) {
  .topHowto-campaign,
  .topHowto-stage {
    padding-top: 120px;
  }
}

@media screen and (min-width: 1024px) {
  .topHowto-campaign-inner,
  .topHowto-stage-inner {
    width: 900px;
    margin-inline: auto;
  }
}

.topHowto-campaign-lead > p {
  color: #cc8e30;
  font-size: 1.8rem;
  font-weight: 600;
  margin-top: 32px;
}
@media screen and (min-width: 1024px) {
  .topHowto-campaign-lead > p {
    text-align: center;
  }
}

.topHowto-campaign-lead-lottery {
  display: flex;
  gap: 50px;
  margin-top: 48px;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .topHowto-campaign-lead-lottery {
    flex-direction: column;
    gap: 28px;
  }
}
@media screen and (min-width: 1024px) {
  .topHowto-campaign-lead-lottery {
    width: 750px;
    margin-inline: auto;
  }
}
.topHowto-campaign-lead-lottery p {
  font-size: 2rem;
  font-weight: 700;
}
.topHowto-campaign-lead-lottery img {
  margin-top: 20px;
}

.topHowto-campaign-table {
  margin-top: 16px;
}
@media screen and (min-width: 1024px) {
  .topHowto-campaign-table {
    width: 630px;
    margin-inline: auto;
  }
}
.topHowto-campaign-table th {
  white-space: nowrap;
  color: #cc8e30;
  padding-top: 16px;
}
@media screen and (max-width: 1023px) {
  .topHowto-campaign-table th {
    display: block;
  }
}
.topHowto-campaign-table th::after {
  content: "：";
  color: #000000;
}
@media screen and (max-width: 1023px) {
  .topHowto-campaign-table td {
    display: block;
  }
}
@media screen and (min-width: 1024px) {
  .topHowto-campaign-table td {
    padding-top: 16px;
  }
}
.topHowto-campaign-table td span {
  display: block;
  font-size: 1.2rem;
}

.topHowto-campaign-left {
  pointer-events: none;
  position: absolute;
  left: 50%;
  top: 140px;
  width: 247px;
  margin-left: -640px;
}

.topHowto-campaign-right {
  pointer-events: none;
  position: absolute;
  right: 50%;
  top: 360px;
  width: 269px;
  margin-right: -690px;
}

.topHowto-prizes {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr 1fr;
  margin-top: 28px;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 1024px) {
  .topHowto-prizes {
    margin-top: 40px;
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

.topHowto-prizes-item {
  background-color: #ffffff;
  overflow: hidden;
  border-radius: 32px;
}
@media screen and (min-width: 1024px) {
  .topHowto-prizes-item {
    border-radius: 42px;
  }
}
.topHowto-prizes-item a {
  display: block;
  text-decoration: none;
}
@media (any-hover: hover) {
  .topHowto-prizes-item a {
    transition: opacity 0.3s ease;
  }
  .topHowto-prizes-item a:hover {
    opacity: 0.8;
  }
}

.topHowto-prizes-item-text {
  padding: 12px 16px 20px;
}
@media screen and (min-width: 1024px) {
  .topHowto-prizes-item-text {
    padding: 16px 20px 20px;
  }
}
.topHowto-prizes-item-text p:nth-of-type(1) {
  color: #cc8e30;
  font-weight: 700;
  font-size: 1.4rem;
}
.topHowto-prizes-item-text h5 {
  font-size: 1.6rem;
  line-height: 1.4;
  font-weight: 700;
  margin-top: 4px;
}
.topHowto-prizes-item-text p:nth-of-type(2) {
  font-size: 1.4rem;
  line-height: 1.4;
  margin-top: 6px;
}

.topHowto-sectionTitle {
  color: #cc8e30;
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .topHowto-sectionTitle {
    font-size: 3.2rem;
  }
}

.topHowto-sectionTitle-2 {
  background-color: #cc8e30;
  text-align: center;
  font-size: 1.6rem;
  color: #ffffff;
  margin-inline: auto;
  border-radius: 99px;
  padding: 12px 0;
  margin-top: 60px;
  position: relative;
}
@media screen and (min-width: 1024px) {
  .topHowto-sectionTitle-2 {
    width: 350px;
  }
}
.topHowto-sectionTitle-2::after {
  content: "";
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 10px 6px 0 6px;
  border-color: #cc8e30 transparent transparent transparent;
  transform: rotate(0deg);
  position: absolute;
  left: calc(50% - 6px);
  bottom: -9px;
}

.topHowto-stage-left {
  pointer-events: none;
  position: absolute;
  left: 50%;
  top: 0px;
  width: 275px;
  margin-left: -670px;
}

.topHowto-stage-right {
  pointer-events: none;
  position: absolute;
  right: 50%;
  top: 450px;
  width: 226px;
  margin-right: -650px;
}

.topHowto-stage-lead {
  color: #cc8e30;
  font-size: 1.8rem;
  font-weight: 600;
  margin-top: 32px;
}
@media screen and (min-width: 1024px) {
  .topHowto-stage-lead {
    text-align: center;
  }
}

.topHowto-stage-timetable {
  margin-top: 40px;
  overflow: auto;
}
@media screen and (max-width: 1023px) {
  .topHowto-stage-timetable {
    text-align: center;
    margin-left: -20px;
    margin-right: -20px;
    padding: 0 20px;
  }
}
.topHowto-stage-timetable::-webkit-scrollbar {
  display: none;
}
@media screen and (max-width: 1023px) {
  .topHowto-stage-timetable img {
    width: 570px;
    max-width: inherit;
  }
}

.topParticipant {
  background-color: #f0e6ce;
  position: relative;
  padding-bottom: 40px;
  background-image: url(/assets/img/top/participant-bg.svg);
  background-position: 50% 0;
  background-repeat: no-repeat;
  padding-top: 60px;
}
@media screen and (max-width: 1023px) {
  .topParticipant {
    background-position: 68% 0;
    background-size: 2000px auto;
  }
}
@media screen and (min-width: 1024px) {
  .topParticipant {
    padding-top: 100px;
    padding-bottom: 80px;
  }
}

.topParticipant-lead {
  text-align: center;
  font-weight: 700;
  font-size: 1.8rem;
  color: #20bb4c;
  margin-top: 32px;
}

.topParticipant-messages {
  margin-top: 28px;
}
@media screen and (min-width: 1024px) {
  .topParticipant-messages {
    margin-top: 40px;
  }
}

.topParticipant-messages-scroll {
  overflow: hidden;
  position: relative;
  padding-bottom: 4px;
}
.topParticipant-messages-scroll::before, .topParticipant-messages-scroll::after {
  content: "";
  display: block;
  width: 300px;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 1;
  pointer-events: none;
}
@media screen and (max-width: 1023px) {
  .topParticipant-messages-scroll::before, .topParticipant-messages-scroll::after {
    display: none;
  }
}
.topParticipant-messages-scroll::after {
  left: 0;
  background: linear-gradient(90deg, rgb(240, 230, 206) 0%, rgb(240, 230, 206) 50%, rgba(240, 230, 206, 0) 100%);
}
.topParticipant-messages-scroll::before {
  right: 0;
  background: linear-gradient(270deg, rgb(240, 230, 206) 0%, rgb(240, 230, 206) 50%, rgba(240, 230, 206, 0) 100%);
}

.topParticipant-messages-list {
  display: flex;
  gap: 20px;
  animation-duration: 40s;
  animation-name: sample1;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

@keyframes sample1 {
  from {
    transform: translateX(0px);
  }
  to {
    transform: translateX(-2680px);
  }
}
.topParticipant-messages-list-item {
  width: 248px;
  flex-shrink: 0;
}
.topParticipant-messages-list-item a {
  display: flex;
  flex-direction: column;
  padding: 24px 32px;
  background-color: #506eb5;
  border-radius: 42px;
  text-decoration: none;
  min-height: 248px;
  box-sizing: border-box;
  box-shadow: 0px 4px 0px #d2cab8;
}
@media (any-hover: hover) {
  .topParticipant-messages-list-item a {
    transition: filter 0.3s ease;
  }
  .topParticipant-messages-list-item a:hover {
    filter: brightness(1.1);
  }
}
.topParticipant-messages-list-item.area-1 a {
  background-color: #506eb5;
}
.topParticipant-messages-list-item.area-2 a {
  background-color: #46b2e7;
}
.topParticipant-messages-list-item.area-3 a {
  background-color: #00aebb;
}
.topParticipant-messages-list-item.area-4 a {
  background-color: #00ab84;
}
.topParticipant-messages-list-item.area-5 a {
  background-color: #8cc66d;
}
.topParticipant-messages-list-item.area-6 a {
  background-color: #f6ad3c;
}
.topParticipant-messages-list-item.area-7 a {
  background-color: #ee7800;
}
.topParticipant-messages-list-item.area-8 a {
  background-color: #e84566;
}
.topParticipant-messages-list-item h3 {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  color: #ffffff;
}
.topParticipant-messages-list-item p:nth-of-type(1) {
  margin-top: 4px;
  font-size: 1.6rem;
  color: #ffffff;
  margin-bottom: 8px;
  line-height: 1.4;
}

.topParticipant-messages-list-item-button {
  margin-top: auto;
  background-color: #ffffff;
  border-radius: 99px;
  text-align: center;
  padding: 2px 0;
  color: #506eb5;
}
.area-1 .topParticipant-messages-list-item-button {
  color: #506eb5;
}
.area-2 .topParticipant-messages-list-item-button {
  color: #46b2e7;
}
.area-3 .topParticipant-messages-list-item-button {
  color: #00aebb;
}
.area-4 .topParticipant-messages-list-item-button {
  color: #00ab84;
}
.area-5 .topParticipant-messages-list-item-button {
  color: #8cc66d;
}
.area-6 .topParticipant-messages-list-item-button {
  color: #f6ad3c;
}
.area-7 .topParticipant-messages-list-item-button {
  color: #ee7800;
}
.area-8 .topParticipant-messages-list-item-button {
  color: #e84566;
}

.topParticipant-messages-buttons {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 32px;
}
@media screen and (max-width: 1023px) {
  .topParticipant-messages-buttons {
    padding: 0 20px;
  }
}
@media screen and (min-width: 1024px) {
  .topParticipant-messages-buttons {
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    width: 900px;
    margin-inline: auto;
  }
}
.topParticipant-messages-buttons button {
  background: #ffffff;
  box-shadow: 0px 4px 0px #d2cab8;
  border-radius: 20px;
  color: #00ab84;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.3;
  padding: 20px 0;
  position: relative;
}
@media screen and (min-width: 1024px) {
  .topParticipant-messages-buttons button {
    padding: 12px 0;
  }
}
@media (any-hover: hover) {
  .topParticipant-messages-buttons button {
    transition: filter 0.3s ease;
  }
  .topParticipant-messages-buttons button:hover {
    filter: brightness(1.1);
  }
}
.topParticipant-messages-buttons button.area-1 {
  color: #506eb5;
}
.topParticipant-messages-buttons button.area-2 {
  color: #46b2e7;
}
.topParticipant-messages-buttons button.area-3 {
  color: #00aebb;
}
.topParticipant-messages-buttons button.area-4 {
  color: #00ab84;
}
.topParticipant-messages-buttons button.area-5 {
  color: #8cc66d;
}
.topParticipant-messages-buttons button.area-6 {
  color: #f6ad3c;
}
.topParticipant-messages-buttons button.area-7 {
  color: #ee7800;
}
.topParticipant-messages-buttons button.area-8 {
  color: #e84566;
}
.topParticipant-messages-buttons button::before {
  content: "＞";
  position: absolute;
  right: 10px;
  top: 50%;
  margin-top: -10px;
}

.topParticipant-content {
  background-color: #ffffff;
  border-radius: 42px;
  padding: 52px 32px;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 1023px) {
  .topParticipant-content {
    margin: 28px 30px 0px;
  }
}
@media screen and (min-width: 1024px) {
  .topParticipant-content {
    margin-top: 100px;
    width: 900px;
    margin-inline: auto;
    padding: 60px 90px;
  }
}
.topParticipant-content h3 {
  font-size: 2.4rem;
  font-weight: 700;
}
@media screen and (min-width: 1024px) {
  .topParticipant-content h3 {
    font-size: 2.6rem;
  }
}
.topParticipant-content h3:not(:first-of-type) {
  margin-top: 32px;
}
@media screen and (min-width: 1024px) {
  .topParticipant-content h3:not(:first-of-type) {
    margin-top: 40px;
  }
}
.topParticipant-content p {
  margin-top: 16px;
}
@media screen and (min-width: 1024px) {
  .topParticipant-content p {
    margin-top: 20px;
  }
}

.topParticipant-images {
  position: absolute;
  left: 0;
  top: -200px;
  width: 100%;
  height: 2800px;
  pointer-events: none;
  overflow: hidden;
}

.topParticipant-images-top {
  position: absolute;
  left: 50%;
  top: 0;
  width: 1270px;
  margin-left: -620px;
}

.topParticipant-images-left {
  position: absolute;
  left: 50%;
  top: 1020px;
  width: 197px;
  margin-left: -650px;
}

.topParticipant-images-right {
  position: absolute;
  left: 50%;
  top: 950px;
  z-index: 1;
  width: 266px;
  margin-left: 430px;
}

.topParticipant-images-bottom {
  position: absolute;
  left: 50%;
  top: 2505px;
  z-index: 1;
  width: 241px;
  margin-left: 400px;
}

.topParticipant-photo-sp {
  height: 360px;
  animation: infinity-scroll-sp 25s infinite linear;
  background-image: url(../img/top/participant-photo-sp.webp);
  background-repeat: repeat-x;
  background-size: auto 100%;
  margin-top: 20px;
}
@media screen and (min-width: 1024px) {
  .topParticipant-photo-sp {
    display: none;
  }
}

@keyframes infinity-scroll-sp {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -1490px 0;
  }
}
.topArchives {
  background-color: #faf9f7;
  text-align: center;
  padding-bottom: 120px;
  background-image: url(/assets/img/top/archives-bg.svg);
  background-position: 50% 0;
  background-repeat: no-repeat;
  padding-top: 60px;
  position: relative;
}
@media screen and (max-width: 1023px) {
  .topArchives {
    background-position: 68% 0;
    background-size: 2000px auto;
  }
}
@media screen and (min-width: 1024px) {
  .topArchives {
    padding-top: 100px;
    padding-bottom: 150px;
  }
}

.topArchives-list {
  margin-top: 40px;
}
@media screen and (min-width: 1024px) {
  .topArchives-list {
    margin-top: 90px;
    width: 1240px;
    margin-inline: auto;
  }
}
.topArchives-list ul {
  display: flex;
}
@media screen and (min-width: 1024px) {
  .topArchives-list ul {
    justify-content: space-between;
  }
}
@media screen and (max-width: 1023px) {
  .topArchives-list ul {
    gap: 20px;
    overflow-x: auto;
    padding: 0 20px;
  }
  .topArchives-list ul::-webkit-scrollbar {
    display: none;
  }
}
.topArchives-list ul li {
  width: 180px;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .topArchives-list ul li {
    font-size: 2.4rem;
    width: 190px;
  }
}
@media screen and (max-width: 1023px) {
  .topArchives-list ul li {
    flex-shrink: 0;
  }
}
.topArchives-list ul img {
  margin-bottom: 12px;
}
.topArchives-list ul a {
  display: block;
  text-decoration: none;
}

.topArchives-image {
  position: absolute;
  left: 50%;
  top: -180px;
  width: 304px;
  margin-left: -680px;
  pointer-events: none;
}

.topFooter {
  background-color: #faf9f7;
}

.modal {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.modal.-visible {
  opacity: 1;
  pointer-events: initial;
}

.modal-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.5);
}

.modal-window {
  position: absolute;
  background-color: #ffffff;
  inset: 0;
  margin: auto;
  border-radius: 42px;
  width: 92vw;
  height: 90svh;
  display: none;
}
@media screen and (min-width: 1024px) {
  .modal-window {
    width: 1180px;
    height: 600px;
  }
}
.modal-window.-visible {
  display: block;
}

.modal-window-close {
  position: absolute;
  right: 20px;
  top: 20px;
  width: 40px;
  height: 40px;
  background-color: #ccc;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
}
@media screen and (min-width: 1024px) {
  .modal-window-close {
    width: 52px;
    height: 52px;
    right: 52px;
    top: 40px;
  }
}
.area-1 .modal-window-close {
  background-color: #506eb5;
}
.area-2 .modal-window-close {
  background-color: #46b2e7;
}
.area-3 .modal-window-close {
  background-color: #00aebb;
}
.area-4 .modal-window-close {
  background-color: #00ab84;
}
.area-5 .modal-window-close {
  background-color: #8cc66d;
}
.area-6 .modal-window-close {
  background-color: #f6ad3c;
}
.area-7 .modal-window-close {
  background-color: #ee7800;
}
.area-8 .modal-window-close {
  background-color: #e84566;
}
@media (any-hover: hover) {
  .modal-window-close {
    transition: opacity 0.3s ease;
  }
  .modal-window-close:hover {
    opacity: 0.8;
  }
}

.modal-title {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 700;
  padding-top: 24px;
}
@media screen and (min-width: 1024px) {
  .modal-title {
    padding-top: 40px;
    font-size: 3.2rem;
  }
}

.modal-scroll {
  overflow: auto;
  padding: 0 20px 32px;
  height: 100%;
  box-sizing: border-box;
  overscroll-behavior: contain;
}
@media screen and (min-width: 1024px) {
  .modal-scroll {
    padding: 0 40px 40px;
  }
}
.modal-scroll::-webkit-scrollbar {
  display: none;
}

.modal-messages {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 24px;
}
@media screen and (min-width: 1024px) {
  .modal-messages {
    margin-top: 40px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

@media screen and (min-width: 1024px) {
  .modal-messages-item {
    width: 260px;
  }
}
.modal-messages-item a {
  display: flex;
  flex-direction: column;
  padding: 0 32px 20px;
  border-radius: 42px;
  text-decoration: none;
  box-sizing: border-box;
  box-shadow: 0px 4px 0px #f4f0e5;
  border: 1px solid #f4f0e5;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .modal-messages-item a {
    min-height: 260px;
  }
}
@media (any-hover: hover) {
  .modal-messages-item a {
    transition: opacity 0.3s ease;
  }
  .modal-messages-item a:hover {
    opacity: 0.8;
  }
}
.modal-messages-item h3 {
  background-color: #506eb5;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  color: #ffffff;
  padding: 16px 32px 16px;
  margin: 0 -32px;
}
@media screen and (min-width: 1024px) {
  .modal-messages-item h3 {
    padding: 20px 32px 20px;
  }
}
.area-1 .modal-messages-item h3 {
  background-color: #506eb5;
}
.area-2 .modal-messages-item h3 {
  background-color: #46b2e7;
}
.area-3 .modal-messages-item h3 {
  background-color: #00aebb;
}
.area-4 .modal-messages-item h3 {
  background-color: #00ab84;
}
.area-5 .modal-messages-item h3 {
  background-color: #8cc66d;
}
.area-6 .modal-messages-item h3 {
  background-color: #f6ad3c;
}
.area-7 .modal-messages-item h3 {
  background-color: #ee7800;
}
.area-8 .modal-messages-item h3 {
  background-color: #e84566;
}
.modal-messages-item p:nth-of-type(1) {
  margin-top: 4px;
  font-size: 1.6rem;
  margin-bottom: 12px;
  line-height: 1.4;
  margin-top: 16px;
}
@media screen and (min-width: 1024px) {
  .modal-messages-item p:nth-of-type(1) {
    margin-bottom: 8px;
  }
}

.modal-messages-item-button {
  margin-top: auto;
  background-color: #506eb5;
  color: #ffffff;
  border-radius: 99px;
  text-align: center;
  padding: 4px 0;
}
.area-1 .modal-messages-item-button {
  background-color: #506eb5;
}
.area-2 .modal-messages-item-button {
  background-color: #46b2e7;
}
.area-3 .modal-messages-item-button {
  background-color: #00aebb;
}
.area-4 .modal-messages-item-button {
  background-color: #00ab84;
}
.area-5 .modal-messages-item-button {
  background-color: #8cc66d;
}
.area-6 .modal-messages-item-button {
  background-color: #f6ad3c;
}
.area-7 .modal-messages-item-button {
  background-color: #ee7800;
}
.area-8 .modal-messages-item-button {
  background-color: #e84566;
}

.topNews {
  padding: 82px 0;
}
@media screen and (max-width: 1023px) {
  .topNews {
    padding: 37px 0;
  }
}

.topNews-container {
  box-sizing: content-box;
  max-width: 900px;
  width: 100%;
  margin-inline: auto;
  padding: 0 25px;
}
@media screen and (max-width: 1023px) {
  .topNews-container {
    box-sizing: border-box;
  }
}

.topNews-inner {
  padding: 55px 0;
  border: 4px solid #ad0003;
  border-radius: 42px;
}
@media screen and (max-width: 1023px) {
  .topNews-inner {
    padding: 32px 0;
  }
}

.topNews-text {
  box-sizing: content-box;
  max-width: 640px;
  width: 100%;
  margin-inline: auto;
  padding: 0 40px;
}
@media screen and (max-width: 1023px) {
  .topNews-text {
    box-sizing: border-box;
    padding: 0 32px;
  }
}

.topNews-lead {
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.65;
  color: #ad0003;
  margin-bottom: 24px;
}

.topNews-detail {
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.8;
  color: #ad0003;
  margin-bottom: 24px;
}

.topNews-note {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #ad0003;
}

.topNews-message {
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.8;
  color: #ad0003;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .topNews-message {
    font-size: 1.7rem;
    line-height: 1.6;
    text-align: left;
  }
}
.topNews-message:not(:first-child) {
  margin-top: 0;
}
@media screen and (max-width: 1023px) {
  .topNews-message:not(:first-child) {
    margin-top: 24px;
  }
}

.topDigest {
  padding: 60px 0 122px;
  background: #f6f0e3;
}
@media screen and (max-width: 1023px) {
  .topDigest {
    padding: 40px 0 74px;
  }
}

.topDigest-title {
  font-weight: bold;
  font-size: 36px;
  text-align: center;
  color: #ad0003;
  margin-bottom: 60px;
}
@media screen and (max-width: 1023px) {
  .topDigest-title {
    font-size: 24px;
    margin-bottom: 30px;
  }
}

.topDigest-video {
  padding: 0 20px;
  max-width: 900px;
  display: block;
  margin-inline: auto;
}
.topDigest-video iframe {
  box-sizing: border-box;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border-radius: 42px;
  border: 4px solid #c7c0b2;
  box-shadow: 0px 8px 0px #c7c0b2;
}

@media screen and (max-width: 1023px) {
  .contentsWrapper {
    padding-left: 30px;
    padding-right: 30px;
    padding-bottom: 80px;
  }
}
@media screen and (min-width: 1024px) {
  .contentsWrapper {
    width: 1080px;
    margin-inline: auto;
    padding-bottom: 120px;
  }
}

@media screen and (min-width: 1024px) {
  .summaryTable {
    width: 800px;
    margin-inline: auto;
  }
}
@media screen and (max-width: 1023px) {
  .summaryTable th {
    padding-bottom: 12px;
  }
}
.summaryTable th span {
  background-color: #ffffff;
  white-space: nowrap;
  display: inline-block;
  text-align: center;
  border-radius: 999px;
  padding: 4px 16px;
}
@media screen and (min-width: 1024px) {
  .summaryTable th span {
    display: block;
  }
}
@media screen and (max-width: 1023px) {
  .summaryTable th span {
    width: 5em;
  }
}
@media screen and (max-width: 1023px) {
  .summaryTable td {
    padding-bottom: 24px;
    padding-left: 20px;
  }
}
@media screen and (min-width: 1024px) {
  .summaryTable td {
    padding-left: 28px;
  }
}
.summaryTable td h2 {
  font-size: 1.4rem;
  font-weight: 700;
  margin-top: 1em;
}
.summaryTable th,
.summaryTable td {
  line-height: 2;
  font-size: 1.4rem;
}
@media screen and (max-width: 1023px) {
  .summaryTable th,
  .summaryTable td {
    display: block;
  }
}
@media screen and (min-width: 1024px) {
  .summaryTable th,
  .summaryTable td {
    padding-bottom: 24px;
  }
}

.guidance {
  border-radius: 30px;
  background-color: #ffffff;
  padding: 28px 20px;
  margin-top: 20px;
}
@media screen and (min-width: 1024px) {
  .guidance {
    padding: 80px;
    margin-top: 40px;
  }
}
.guidance ul {
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.guidance li {
  text-indent: -1em;
  padding-left: 1em;
  font-size: 1.4rem;
}

.faq-items {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media screen and (min-width: 1024px) {
  .faq-items {
    gap: 40px;
  }
}

.faq-item {
  background-color: #ffffff;
  padding: 24px;
  border-radius: 30px;
}
@media screen and (min-width: 1024px) {
  .faq-item {
    padding: 30px;
  }
}
.faq-item h2 {
  font-weight: 700;
  margin-bottom: 16px;
}
.faq-item h2,
.faq-item p {
  font-size: 1.4rem;
  line-height: 1.7;
}
@media screen and (min-width: 1024px) {
  .faq-item h2,
  .faq-item p {
    font-size: 1.6rem;
  }
}

.faq-item-q,
.faq-item-a {
  position: relative;
  padding-left: 30px;
}
.faq-item-q::before,
.faq-item-a::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background-image: url(../img/faq/q.svg);
  background-repeat: no-repeat;
  position: absolute;
  left: 0;
  top: 6px;
}

.faq-item-a::before {
  background-image: url(../img/faq/a.svg);
}

.faq-contact {
  text-align: center;
  margin-top: 40px;
}
@media screen and (min-width: 1024px) {
  .faq-contact {
    margin-top: 60px;
  }
}
.faq-contact p {
  font-size: 1.1rem;
  margin-top: 8px;
}

.faq-inquery {
  box-sizing: border-box;
  max-width: 887px;
  width: 100%;
  margin-inline: auto;
  text-align: center;
  padding: 28px;
  margin-top: 60px;
  border: 2px solid #ad0003;
  border-radius: 24px;
  background: #ffffff;
}
@media screen and (min-width: 1024px) {
  .faq-inquery {
    padding: 55px 24px;
    margin-top: 100px;
    border-radius: 49px;
  }
}

.faq-inquery-text {
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.6;
  margin-bottom: 24px;
  text-align: left;
}
@media screen and (min-width: 1024px) {
  .faq-inquery-text {
    font-size: 1.6rem;
    line-height: 1.7;
    margin-bottom: 35px;
    text-align: center;
  }
}

.faq-inquery-button {
  box-sizing: border-box;
  max-width: 342px;
  padding: 16px 40px;
  width: 100%;
  color: #ffffff;
  background-color: #ad0003;
  display: inline-block;
  text-decoration: none;
  font-size: 1.6rem;
  line-height: 1.5;
  padding: 16px 40px;
  border-radius: 999px;
  font-weight: 700;
}
@media screen and (min-width: 1024px) {
  .faq-inquery-button {
    max-width: 542px;
    padding: 27px 55px;
  }
}

.map-image {
  margin-top: 28px;
}
.map-image img {
  border: 1px solid #cccccc;
}

/*
utils
---------------*/
@media screen and (max-width: 1023px) {
  .pc {
    display: none !important;
  }
}
@media screen and (min-width: 1024px) {
  .sp {
    display: none !important;
  }
}
@media print {
  .sp {
    display: none !important;
  }
}
.mt-0 {
  margin-top: 0px !important;
}

.mt-4 {
  margin-top: 4px !important;
}

.mt-8 {
  margin-top: 8px !important;
}

.mt-12 {
  margin-top: 12px !important;
}

.mt-16 {
  margin-top: 16px !important;
}

.mt-20 {
  margin-top: 20px !important;
}

.mt-24 {
  margin-top: 24px !important;
}

.mt-28 {
  margin-top: 28px !important;
}

.mt-32 {
  margin-top: 32px !important;
}

.mt-36 {
  margin-top: 36px !important;
}

.mt-40 {
  margin-top: 40px !important;
}

.mt-44 {
  margin-top: 44px !important;
}

.mt-48 {
  margin-top: 48px !important;
}

.mt-52 {
  margin-top: 52px !important;
}

.mt-56 {
  margin-top: 56px !important;
}

.mt-60 {
  margin-top: 60px !important;
}

.mt-64 {
  margin-top: 64px !important;
}

.mt-68 {
  margin-top: 68px !important;
}

.mt-72 {
  margin-top: 72px !important;
}

.mt-76 {
  margin-top: 76px !important;
}

.mt-80 {
  margin-top: 80px !important;
}

.mt-84 {
  margin-top: 84px !important;
}

.mt-88 {
  margin-top: 88px !important;
}

.mt-92 {
  margin-top: 92px !important;
}

.mt-96 {
  margin-top: 96px !important;
}

.mt-100 {
  margin-top: 100px !important;
}

.mt-104 {
  margin-top: 104px !important;
}

.mt-108 {
  margin-top: 108px !important;
}

.mt-112 {
  margin-top: 112px !important;
}

.mt-116 {
  margin-top: 116px !important;
}

.mt-120 {
  margin-top: 120px !important;
}

.mt-124 {
  margin-top: 124px !important;
}

.mt-128 {
  margin-top: 128px !important;
}

.mt-132 {
  margin-top: 132px !important;
}

.mt-136 {
  margin-top: 136px !important;
}

.mt-140 {
  margin-top: 140px !important;
}

.mt-144 {
  margin-top: 144px !important;
}

.mt-148 {
  margin-top: 148px !important;
}

.mt-152 {
  margin-top: 152px !important;
}

.mt-156 {
  margin-top: 156px !important;
}

.mt-160 {
  margin-top: 160px !important;
}

@media screen and (min-width: 1024px) {
  .mt-0-pc {
    margin-top: 0px !important;
  }
  .mt-4-pc {
    margin-top: 4px !important;
  }
  .mt-8-pc {
    margin-top: 8px !important;
  }
  .mt-12-pc {
    margin-top: 12px !important;
  }
  .mt-16-pc {
    margin-top: 16px !important;
  }
  .mt-20-pc {
    margin-top: 20px !important;
  }
  .mt-24-pc {
    margin-top: 24px !important;
  }
  .mt-28-pc {
    margin-top: 28px !important;
  }
  .mt-32-pc {
    margin-top: 32px !important;
  }
  .mt-36-pc {
    margin-top: 36px !important;
  }
  .mt-40-pc {
    margin-top: 40px !important;
  }
  .mt-44-pc {
    margin-top: 44px !important;
  }
  .mt-48-pc {
    margin-top: 48px !important;
  }
  .mt-52-pc {
    margin-top: 52px !important;
  }
  .mt-56-pc {
    margin-top: 56px !important;
  }
  .mt-60-pc {
    margin-top: 60px !important;
  }
  .mt-64-pc {
    margin-top: 64px !important;
  }
  .mt-68-pc {
    margin-top: 68px !important;
  }
  .mt-72-pc {
    margin-top: 72px !important;
  }
  .mt-76-pc {
    margin-top: 76px !important;
  }
  .mt-80-pc {
    margin-top: 80px !important;
  }
  .mt-84-pc {
    margin-top: 84px !important;
  }
  .mt-88-pc {
    margin-top: 88px !important;
  }
  .mt-92-pc {
    margin-top: 92px !important;
  }
  .mt-96-pc {
    margin-top: 96px !important;
  }
  .mt-100-pc {
    margin-top: 100px !important;
  }
  .mt-104-pc {
    margin-top: 104px !important;
  }
  .mt-108-pc {
    margin-top: 108px !important;
  }
  .mt-112-pc {
    margin-top: 112px !important;
  }
  .mt-116-pc {
    margin-top: 116px !important;
  }
  .mt-120-pc {
    margin-top: 120px !important;
  }
  .mt-124-pc {
    margin-top: 124px !important;
  }
  .mt-128-pc {
    margin-top: 128px !important;
  }
  .mt-132-pc {
    margin-top: 132px !important;
  }
  .mt-136-pc {
    margin-top: 136px !important;
  }
  .mt-140-pc {
    margin-top: 140px !important;
  }
  .mt-144-pc {
    margin-top: 144px !important;
  }
  .mt-148-pc {
    margin-top: 148px !important;
  }
  .mt-152-pc {
    margin-top: 152px !important;
  }
  .mt-156-pc {
    margin-top: 156px !important;
  }
  .mt-160-pc {
    margin-top: 160px !important;
  }
}
.align-left {
  text-align: left !important;
}

.align-right {
  text-align: right !important;
}

.align-center {
  text-align: center !important;
}

@media screen and (min-width: 1024px) {
  .align-center-pc {
    text-align: center !important;
  }
}

@media screen and (max-width: 1023px) {
  .align-center-sp {
    text-align: center !important;
  }
}

.color-red {
  color: #AD0003 !important;
}

.relative {
  position: relative !important;
}

.rounded {
  border-radius: 8px !important;
}

.indent {
  text-indent: -1em !important;
  padding-left: 1em !important;
}

.hover {
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .hover:hover {
    opacity: 0.7;
  }
}

.visually-hidden {
  position: absolute;
  white-space: nowrap;
  width: 1px;
  height: 1px;
  overflow: hidden;
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  margin: -1px;
}
