* {
  box-sizing: border-box;
}
body {
  position: relative;
  margin: 0;
  overflow: visible;
  overflow-x: hidden;
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  background: #ffae00;
}
img {
  max-width: 100%;
  vertical-align: bottom;
  height: auto;
}
a img:hover {
  opacity: 0.7;
}
.img_100 {
  width: 100%;
}
.grayout {
  pointer-events: none;
}

.br_sp_on {
  display: none;
}
@media (max-width: 1199px) {
  .br_pc_on {
    display: none;
  }
  .br_sp_on {
    display: block;
  }
}

.scroll_anime {
  transition: opacity 0.5s, transform 0.5s, visibility 0.5s;
  transition-delay: var(--i);
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px);
  will-change: transform,opacity,visibility;
}
.scroll_anime.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ヘッダー */
#fixed_header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}
.head_container {
  background-color: #ffae00;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 0.63vw;
  padding-left: 1.56vw;
}
#header_jyo_logo {
  width: 10.57vw;
}
.head_container h1 {
  margin: 0;
  width: 38.85vw;
  margin-left: 2.76vw;
  font-size: 0;
}
#header_title_logo {
  display: block;
}
#header_live_and_replay {
  width: 16.51vw;
  display: inline-block;
  position: relative;
  left: 1.56vw;
}
#header_net_vote {
  width: 16.51vw;
  display: inline-block;
}
#header_btns_box {
  /* margin-left: 1.61vw; */
  display: flex;
}

#header_sns_ul_box {
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.63vw;
  width: 11.35vw;
  margin: 0 auto;
  margin-left: 1.56vw;
}
#header_sns_ul_box li {
  width: 2.34vw;
}

@media (max-width: 1199px) {
  .head_container {
    padding: 2.13vw;
    display: grid;
    grid-template-areas: "item3 item3" "item1 item4";
    /* grid-template-columns: 1fr 1fr; */
    gap: 1.47vw;
  }
  #header_jyo_logo {
    width: 26.67vw;
    grid-area: item1;
    position: relative;
    left: 0.67vw;
  }
  #header_sns_ul_box {
    display: none;
  }
  .head_container h1 {
    width: 100%;
    margin-left: 0;
    grid-area: item3;
  }
  #header_btns_box {
    grid-area: item4;
  }
  #header_live_and_replay {
    width: 55.3%;
    left: 3.47vw;
  }
  #header_net_vote {
    width: 55.3%;
  }
}

/* ナビ */
#nav_ul {
  margin: 0;
  padding: 1.15vw 0;
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3.65vw;
  background: #fff;
}
#nav_ul li {
  display: flex;
}
#nav_ul a {
  font-size: 1.04vw;
  text-decoration: none;
  color: #000;
  font-weight: 900;
  position: relative;
}

#nav_ul a.current::after {
  position: absolute;
  bottom: -0.21vw;
  left: 0;
  content: "";
  width: 100%;
  height: 0.21vw;
  background: #004ea2;
}

#nav_ul li:hover a {
  color: #0055a7;
  text-decoration: none;
}

@media (max-width: 1199px) {
  #nav_ul {
    padding: 2.67vw 0;
    gap: 6.94vw;
  }
  #nav_ul a {
    font-size: 2.67vw;
  }
  #nav_ul a.current::after {
    bottom: -0.53vw;;
    height: 0.53vw;;
  }
}

/* メインヴィジュアル */
#main_elements {
  /* margin-top: 7.92vw; */
  margin-top: 10.52vw;
}

.main_container {
  background: url("../images/main/mv/mv_bg_pc.webp") no-repeat;
  background-size: cover;
  background-position: top;
  position: relative;
}
.main_wrapper {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  /* max-width: 1920px; */
  /* margin: auto; */
  overflow: hidden;
}
#main_box {
  /* width: 36.61vw; */
  width: 55.50vw;
  position: relative;
  overflow: hidden;
}

/* メインヴィジュアルアニメーション */
.speed-lines {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
}
.speed-lines span {
  position: absolute;
  left: -50%;
  width: 45%;
  height: 0.1vw;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 245, 150, .2) 10%,
    rgba(255, 255, 220, .8) 55%,
    rgba(255, 255, 255, 1) 80%,
    transparent 100%
  );
  opacity: 0;
  animation: speedLine .8s linear forwards;
}
.speed-lines span:nth-child(1) {
  top: 10%;
  width: 40%;
  height: 0.1vw;
  animation-delay: .12s;
}
.speed-lines span:nth-child(2) {
  top: 27%;
  width: 55%;
  height: 0.16vw;
  animation-delay: .03s;
}
.speed-lines span:nth-child(3) {
  top: 43%;
  width: 35%;
  height: 0.1vw;
  animation-delay: .18s;
}
.speed-lines span:nth-child(4) {
  top: 59%;
  width: 60%;
  height: 0.21vw;
  animation-delay: 0s;
}
.speed-lines span:nth-child(5) {
  top: 75%;
  width: 45%;
  height: 0.16vw;
  animation-delay: .10s;
}
.speed-lines span:nth-child(6) {
  top: 90%;
  width: 30%;
  height: 0.1vw;
  animation-delay: .22s;
}
@keyframes speedLine {
  0% {
    transform: translate(-20%, 60px) rotate(-7deg);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    transform: translate(350%, -60px) rotate(-7deg);
    opacity: 0;
  }
}

#mv1 {
  pointer-events: none;
}
#mv2,
#mv3 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;
}

#mv1 {
  opacity: 0;
  transform: scale(1.16);
}
#main_box.show #mv1 {
  animation: mainIn .8s ease forwards;
  animation-delay: var(--i);
}
@keyframes mainIn {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

#mv2{
  opacity: 0;
  transform: translate(30px, -25px) scale(1.4);
  filter: blur(3px);
}
#main_box.show #mv2{
  /* animation: catchIn .45s cubic-bezier(.2, .9, .3, 1.15) forwards; */
  animation: catchIn .6s cubic-bezier(.2, .9, .3, 1.4) forwards;
  animation-delay: var(--i);
}
@keyframes catchIn {
  0% {
    opacity: 0;
    transform: translate(30px, -25px) scale(1.4);
    filter: blur(3px);
  }
  65% {
    opacity: 1;
    transform: translate(-3px, 2px) scale(.97);
    filter: blur(0);
  }
  82% {
    transform: translate(1px, -1px) scale(1.015);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) scale(1);
    filter: blur(0);
  }
}

#mv3 {
  opacity: 0;
  transform: translateY(30px);
  z-index: 5;
}
#main_box.show #mv3 {
  animation: mv9In 0.5s ease forwards;
  animation-delay: var(--i);
}
@keyframes mv9In {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#mv8 {
  position: absolute;
  bottom: -7.4vw;
  left: -26.82vw;
  mix-blend-mode: screen;
  opacity: 1;
  z-index: 4;
  width: 86.67vw;
  animation: lightFlash 10s ease-in-out var(--i) infinite;
  pointer-events: none;
}
@keyframes lightFlash {
  0% {
    opacity: 1;
    filter: brightness(1);
  }
  25% {
    opacity: .55;
    filter: brightness(.9);
  }
  /* 発光ピーク */
  50% {
    opacity: 1;
    filter: brightness(1.8);
  }
  75% {
    opacity: .55;
    filter: brightness(.9);
  }
  100% {
    opacity: 1;
    filter: brightness(1);
  }
}

@media (max-width: 1199px) {
  .speed-lines span {
    height: 0.27vw;
  }
  .speed-lines span:nth-child(1),
  .speed-lines span:nth-child(3),
  .speed-lines span:nth-child(6) {
    height: 0.27vw;
  }
  .speed-lines span:nth-child(2),
  .speed-lines span:nth-child(5) {
    height: 0.4vw;
  }
  .speed-lines span:nth-child(4) {
    height: 0.53vw;
  }
}

/* ピックアップボタン */
#pickup_box {
  /* width: 26.82vw; */
  width: 41.67vw;
  margin-top: 1.15vw;
}
#pickup_ul_btns {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.52vw 0.26vw;
}
#pickup_ul_btns li {
  width: 49.5%;
  /* width: 13.13vw; */
}
#pickup_ul_btns li a {
  display: block;
}
#pickup_ul_btns_bottom {
  margin: 0;
  margin-top: 1.35vw;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.52vw;
  position: relative;
  right: 0.78vw;
}
#pickup_ul_btns_bottom li:nth-of-type(1) {
  width: 56%;
}
#pickup_ul_btns_bottom li:nth-of-type(2) {
  width: 48%;
}
#pickup_dream_box {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 16.72vw;
  margin: auto;
}
#pickup_dream_box a {
  width: 16.72vw;
}
#pickup_dream_box a.minus {
  position: relative;
  top: -0.26vw;
}


.shine-button {
  position: relative;
  display: inline-block;
  overflow: hidden;
  top: 0.26vw;
}
.shine-button::after {
  content: "";
  position: absolute;
  inset: 12% 4%;
  border-radius: 12px;
  overflow: hidden;
  pointer-events: none;

  background: linear-gradient(
    110deg,
    transparent 40%,
    rgba(255, 255, 255, .25) 46%,
    rgba(255, 255, 255, .8) 50%,
    rgba(255, 255, 255, .25) 54%,
    transparent 60%
  );
  background-size: 300% 100%;
  background-repeat: no-repeat;
  animation: buttonShine 4s ease-in-out infinite;
}

@keyframes buttonShine {
  0%,
  65% {
    background-position: 100% 0;
  }

  90%,
  100% {
    background-position: 0% 0;
  }
}



/* TOPバナーエリア */
#banner_box {
  padding-top: 5.21vw;
  padding-bottom: 6.35vw;
  background: url("../images/main/banner/banner_bg_pc.webp") no-repeat;
  background-size: cover;
}
#sns_ul_box {
  display: none;
}
.top_banners {
  display: block;
  width: 95.94vw;
  margin: auto;
}
.top_banners + .top_banners {
  margin-top: 1.04vw;
}

/* 賞金ランキング */
#money_ranking_box {
  margin: auto;
  /* margin-top: 5.21vw; */
  position: relative;
  width: 99.11vw;
}
#money_ranking_box h2 {
  margin: 0;
}
#money_ranking_box ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  left: 8.33vw;
  bottom: 7.03vw;
  gap: 4.95vw;
}
#money_ranking_box ul li {
  width: 39.11vw;
}

@media (max-width: 1199px) {
  #main_elements {
    /* margin-top: 26.8vw; */
    margin-top: 35.73vw;
  }
  .main_container {
    background: url("../images/main/mv/mv_bg_sp.webp") no-repeat;
    background-size: cover;
  }
  .main_wrapper {
    display: block;
  }
  #main_box {
    width: 100%;
  }
  #mv8 {
    left: 0;
    bottom: auto;
    top: 0;
    width: 100%;
  }
  #pickup_box {
    width: 100%;
    padding-bottom: 5.73vw;
  }
  #pickup_ul_btns {
    gap: 0.93vw 1.87vw;
    padding: 0 2vw;
    margin-top: 4.67vw;
    justify-content: center;
  }
  #pickup_ul_btns li {
    width: 44vw;
  }
  #pickup_ul_btns_bottom {
    padding: 0 2vw;
    gap: 1.73vw;
    margin-top: 4.53vw;
    right: 0;
  }
  #pickup_dream_box {
    width: 38vw;
  }
  #pickup_dream_box a {
    width: 38vw;
    top: 1.33vw;
  }
  #pickup_dream_box a.minus {
    top: 0;
  }
  #sns_ul_box {
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 61.73vw;
    gap: 3.6vw;
    margin: 0 auto;
    margin-bottom: 4.8vw;
  }
  #sns_ul_box li {
    width: 12.8vw;
  }
  #banner_box {
    background: url("../images/main/banner/banner_bg_sp.webp") no-repeat;
    background-size: cover;
    padding-top: 4vw;
  }
  .top_banners {
    width: 86.67vw;
  }
  .top_banners + .top_banners {
    margin-top: 1.73vw;
  }

  #money_ranking_box {
    margin-top: 5.33vw;
    width: 89.67vw;
  }
  #money_ranking_box ul {
    left: 7.07vw;
    bottom: 5.87vw;
    gap: 4vw;
  }
  #money_ranking_box ul li {
    width: 36vw;
  }
}

/* フォトギャラリー */
#photo_gallery_container {
  position: relative;
  overflow: hidden;
  background: url("../images/main/photo_gallery/pg_bg_pc.webp") no-repeat;
  background-size: cover;
  padding-bottom: 2.03vw;
}
#photo_gallery_container h2 {
  margin: 0 auto;
  margin-top: 1.35vw;
  margin-bottom: 0.68vw;
  width: 24.01vw;
  position: relative;
  left: 10.42vw;
}
#photo_gallery_swiper .swiper-slide img {
  width: 100%;
}
.swiper_base_box {
  position: relative;
}
#photo_gallery_swiper {
  overflow: visible;
  padding-bottom: 3.13vw;
}

#photo_gallery_swiper .slide-top {
  transform: translateY(0);
}
#photo_gallery_swiper .slide-bottom {
  transform: translateY(3.13vw);
}

#top_photog_prev,
#top_photog_next {
  display: none;
}
.swiper-button-next svg,
.swiper-button-prev svg {
  display: none;
}

#to_pg_btn {
  display: block;
  width: 24.9vw;
  margin: auto;
  margin-top: 1.56vw;
}


/* カメラから出る光 */
.camera-flash {
  position: absolute;
  width: 20%;
  aspect-ratio: 1;
  pointer-events: none;
  opacity: 0;

  background: radial-gradient(
    circle,
    #fff 0%,
    rgba(255, 255, 255, .95) 12%,
    rgba(255, 255, 255, .5) 30%,
    transparent 65%
  );

  animation: cameraFlash 5s linear infinite;
}
/* 添付画像のレンズ位置に合わせた目安 */
.flash-left {
  left: 41.67vw;
  top: 6.15vw;
}
.flash-right {
  right: 0.52vw;
  top: 7.08vw;
  width: 12%;
  animation-delay: 1.8s;
}

@keyframes cameraFlash {
  0%,
  72% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.3);
  }
  /* パシャッ */
  74% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.2);
  }
  77% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.6);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.6);
  }
}


@media (max-width: 1199px) {
  #photo_gallery_container {
    position: relative;
    background: url("../images/main/photo_gallery/pg_bg_sp.webp") no-repeat;
    background-size: cover;
    padding-bottom: 6.4vw;
  }
  #photo_gallery_container h2 {
    width: 39.73vw;
    margin-top: 5.33vw;
    margin-bottom: 2.67vw;
    left: 8.67vw;
  }
  #photo_gallery_swiper {
    padding-bottom: 0;
  }
  #photo_gallery_swiper .slide-bottom {
    transform: translateY(0);
  }
  #top_photog_prev {
    top: auto;
    left: 13.33vw;
    bottom: -10vw;
    width: 7.07vw;
    height: 7.07vw;
    display: block;
  }
  #top_photog_next {
    top: auto;
    right: 13.33vw;
    bottom: -10vw;
    width: 7.07vw;
    height: 7.07vw;
    display: block;
  }
  #top_photog_prev:hover,
  #top_photog_next:hover {
    opacity: 0.7;
  }
  #to_pg_btn {
    width: 42.67vw;
    margin-top: 8vw;
  }
  .flash-left {
    left: 33.87vw;
    top: 12.67vw;
  }
  .flash-right {
    right: -9.33vw;
    top: 14.27vw;
  }
}

/* 新聞記者PICKUP */
#news_reporter_box {
  background: url("../images/main/reporter/reporter_bg_pc.webp") no-repeat;
  background-size: cover;
  position: relative;
  padding-top: 8.33vw;
  padding-bottom: 16.15vw;
}
#news_reporter_box h2 {
  width: 93.49vw;
  margin: 0 auto;
}

#news_reporter_box ul {
  width: 93.49vw;
  margin: 0 auto;
  margin-top: 1.56vw;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 2.19vw;
  position: relative;
}
#news_reporter_box ul li {
  width: 21.7vw;
  border: 0.42vw solid #000;
  padding-bottom: 1.46vw;
}

#reporter_tokotan {
  position: absolute;
  width: 25.16vw;
  right: -1.72vw;
  bottom: -5.73vw;
}

.cat_jump {
  display: block;
  transform-origin: center bottom;
  animation: catJump 1.5s infinite;
}
@keyframes catJump {
  0%, 8% {
    transform: translateY(0) scale(1);
  }
  /* 軽くしゃがむ */
  12% {
    transform: translateY(0) scale(1.015, 0.985);
    animation-timing-function: ease-out;
  }
  /* ジャンプ */
  23% {
    transform: translateY(-20px) scale(1);
    animation-timing-function: ease-in;
  }
  /* 着地 */
  34% {
    transform: translateY(0) scale(1.02, 0.98);
    animation-timing-function: ease-out;
  }
  /* 元に戻って待機 */
  40%, 100% {
    transform: translateY(0) scale(1);
  }
}

.news_reporter_left_box {
  width: 10.83vw;
  /* padding-left: 0.16vw; */
}
.news_reporter_right_box {
  width: 8.8vw;
}
.news_reporter_item {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.94vw;
  padding-right: 0.94vw;
}
.news_reporter_right_top_box {
  display: block;
  text-align: center;
  line-height: 1;
}
.Chunichi_logo {
  width: auto;
  height: 1.25vw;
  mix-blend-mode: multiply;
  display: block;
  margin: auto;
}
.Sponichi_logo {
  width: auto;
  height: 1.77vw;
  mix-blend-mode: multiply;
  display: block;
  margin: auto;
}
.Hochi_logo {
  width: auto;
  height: 1.82vw;
  mix-blend-mode: multiply;
  display: block;
  margin: auto;
}
.Nikkan_logo {
  width: auto;
  height: 1.56vw;
  mix-blend-mode: multiply;
  display: block;
  margin: auto;
}
.Tospo_logo {
  width: auto;
  height: 1.72vw;
  mix-blend-mode: multiply;
  display: block;
  margin: auto;
}
.Daily_logo {
  width: auto;
  height: 1.98vw;
  mix-blend-mode: multiply;
  display: block;
  margin: auto;
}
.Sanspo_logo {
  width: auto;
  height: 1.46vw;
  display: block;
  margin: auto;
}
.reporter_link {
  font-size: 1.2vw;
  color: #000;
  font-weight: bold;
  display: inline-block;
  margin-top: 0.78vw;
}
.news_reporter_right_middle_box {
  color: #000;
  margin: 0;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  margin-top: 0.63vw;
}
.news_reporter_touban {
  font-size: 2.08vw;
  line-height: 1;
  font-family: "Barlow", "Noto Sans JP",sans-serif;
  font-weight: 600;
  font-style: normal;
}
.news_reporter_sibu {
  font-size: 1.04vw;
  display: block;
}
.news_reporter_name {
  font-size: 3.02vw;
  line-height: 1;
  margin-left: 0.52vw;
}
.news_reporter_title {
  font-size: 1.41vw;
  font-weight: bold;
  display: flex;
  justify-content: center;
  margin: 0;
  margin-top: 0.94vw;
  line-height: 1.2;
}
.news_reporter_btn {
  all: unset;
  cursor: pointer;
  font-weight: bold;
  font-size: 1.09vw;
  border: 1px solid #707070;
  padding: 0.26vw 0;
  text-align: center;
  display: block;
  width: 7.5vw;
  box-sizing: border-box;
  margin: auto;
  margin-top: 0.78vw;
}
.reporter_link:hover,
.news_reporter_btn:hover {
  opacity: 0.7;
}
#to_news_reporter_btn {
  display: block;
  width: 20.21vw;
  margin-left: 28.28vw;
  margin-top: 2.6vw;
}

@media (max-width: 1199px) {
  #news_reporter_box {
    background: url("../images/main/reporter/reporter_bg_sp.webp") no-repeat;
    background-size: cover;
    padding-top: 15.33vw;
    padding-bottom: 28.6vw;
  }
  #news_reporter_box h2 {
    width: 92vw;
  }
  #news_reporter_box ul {
    width: 92vw;
    gap: 4vw 4.67vw;
    justify-content: space-between;
    margin-top: 3.33vw;
  }
  #news_reporter_box ul li {
    width: 43.47vw;
    border: 1.07vw solid #000;
    padding-bottom: 2.4vw;
  }
  .news_reporter_left_box {
    width: 21.73vw;
  }
  .news_reporter_right_box {
    width: 17.6vw;
  }
  .news_reporter_right_top_box {
    display: block;
  }
  .Chunichi_logo {
    height: 2.53vw;
  }
  .Sponichi_logo {
    height: 3.6vw;
  }
  .Hochi_logo {
    height: 3.73vw;
  }
  .Nikkan_logo {
    height: 3.07vw;
  }
  .Tospo_logo {
    height: 3.47vw;
  }
  .Daily_logo {
    height: 3.87vw;
  }
  .Sanspo_logo {
    height: 3.07vw;
  }
  .reporter_link {
    font-size: 2.4vw;
    margin-top: 1.6vw;
  }
  .news_reporter_touban {
    font-size: 4.13vw;
  }
  .news_reporter_name {
    font-size: 5.87vw;
    margin-left: 1.07vw;
  }
  .news_reporter_sibu {
    font-size: 2vw;
  }
  .news_reporter_title {
    font-size: 2.8vw;
    margin-top: 2.11vw;
  }
  .news_reporter_btn {
    font-size: 2.27vw;
    width: 15.2vw;
    margin-top: 2.4vw;
  }
  #to_news_reporter_btn {
    width: 39.6vw;
    margin: auto;
    margin-top: 6.93vw;
  }
  #reporter_tokotan {
    width: 47.47vw;
    right: -1.33vw;
    bottom: -6vw;
  }
}

/* 新聞記事モーダル */
html.show_modal {
  overflow:hidden;
}
.news_reporter_modal_container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: all .5s;
}
.news_reporter_modal_container.show_modal {
  opacity: 1;
  visibility: visible;
}
.news_reporter_modal_wrapper {
  width: 48.85vw;
  margin: 0 auto;
  margin-top: 5.73vw;
  margin-bottom: 11.98vw;;
  transform: translateY(10vh);
  transition: transform 0.5s;
  position: relative;
}
.news_reporter_modal_wrapper.show_modal {
  transform: translateY(0);
}
.news_reporter_modal_inner {
  position: relative;
}
.news_reporter_modal_close-button {
  /* position: sticky; */
  /* top: 5px; */
  /* float: right; */
  z-index: 10;
  color: #fff;
  border: none;
  font-size: min(3.65vw, 140px);
  line-height: 1;
  cursor: pointer;
  /* transform: translateX(min(2.6vw, 100px)); */
  background: none;
  padding: 0;

  position: absolute;
  right: 0px;
  top: -3.39vw;
}
.news_reporter_modal_close-button:hover {
  opacity: 0.8;
}
.news_reporter_modal_wrapper img {
  width: 100%;
  height: auto;
  display: none;
}
.news_reporter_modal_wrapper.show_modal img {
  display: block;
}

#news_reporter_modal_content {
  background: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "left top" "bottom bottom";
  grid-template-rows: auto 1fr;
  padding: 1.3vw;
  gap: 0 1.82vw;
  border: 0.42vw solid #000;
}
#news_reporter_modal_racer_box {
  grid-area: left;
  width: 17.14vw;
}
#news_reporter_modal_touban {
  font-size: 1.67vw;
  font-family: "Barlow", "Noto Sans JP",sans-serif;
  font-weight: 600;
  font-style: normal;
}
#news_reporter_modal_grid_box {
  grid-area: top;
  width: 25.73vw;
}
#news_reporter_modal_right_top_box {
  /* display: flex; */
  /* justify-content: center; */
  /* align-items: center; */
  /* gap: 0.94vw; */
}
#news_reporter_modal_title_img {
  width: auto;
  height: 3.07vw;
}
#news_reporter_modal_right_middle_box {
  margin: 0;
  background: #000;
  color: #fff;
  padding: 0.63vw 0;
  font-weight: bold;
  font-size: 1.67vw;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.68vw;
  line-height: 1;
}
#news_reporter_modal_name {
  font-size: 2.08vw;
}
#news_reporter_modal_title {
  font-size: 2.08vw;
  font-weight: bold;
  margin: 0;
  margin-top: 0.94vw;
  border-top: 0.34vw solid #000;
  padding-top: 1.56vw;
}
#news_reporter_modal_title br {
  /* display: none; */
}
#news_reporter_modal_text {
  grid-area: bottom;
  margin: 0;
  margin-top: 1.04vw;
  font-size: 1.41vw;
  font-weight: bold;
}

@media (max-width: 1199px) {
  .news_reporter_modal_wrapper {
    width: 95.2vw;
    margin-top: 26.67vw;
    margin-bottom: 53.33vw;
  }
  .news_reporter_modal_close-button {
    font-size: 8.28vw;
    top: -8.28vw;
    right: 1.04vw;
  }
  #news_reporter_modal_content {
    padding: 2.13vw;
  }
  #news_reporter_modal_racer_box {
    width: 33.6vw;
  }
  #news_reporter_modal_right_top_box {
    /* display: block; */
  }
  #news_reporter_modal_title_img {
    height: 6vw;
  }
  #news_reporter_modal_grid_box {
    width: 50.4vw;
  }
  #news_reporter_modal_right_middle_box {
    padding: 1.07vw;
  }
  #news_reporter_modal_touban {
    font-size: 3.2vw;
  }
  #news_reporter_modal_name {
    font-size: 4.13vw;
  }
  #news_reporter_modal_title {
    font-size: 4.67vw;
    margin-top: 1.6vw;
    border-top: 0.67vw solid #000;
    line-height: 1.35;
  }
  #news_reporter_modal_title br {
    display: block;
  }
  #news_reporter_modal_text {
    font-size: 2.8vw;
    margin-top: 2vw;
  }
}

/* TOP ドリーム戦出場予定選手 */
#top_dream_box {
  background: url("../images/main/top/top_dream_bg_pc.webp") no-repeat;
  background-size: cover;
  position: relative;
  padding-top: 3.49vw;
  padding-bottom: 5.99vw;
}
.top_dream_contents_box + .top_dream_contents_box {
  margin-top: 5.73vw;
}
.top_dream_contents_box h2 {
  width: 95.57vw;
  margin: 0 auto;
}
.top_dream_contents_box h3 {
  width: 83.07vw;
  margin: 0 auto;
  margin-top: 1.82vw;
}
.top_dream_contents_box ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.04vw;
}
.top_dream_contents_box ul li {
  width: 15.1vw;
}
.top_to_dream_btn {
  width: 31.3vw;
  margin: auto;
  margin-top: 2.19vw;
  display: block;
}

@media (max-width: 1199px) {
  #top_dream_box {
    background: url("../images/main/top/top_dream_bg_sp.webp") no-repeat;
    background-size: cover;
    padding-top: 5.6vw;
    padding-bottom: 8.67vw;
  }
  .top_dream_contents_box + .top_dream_contents_box {
    margin-top: 6.67vw;
  }
  .top_dream_contents_box h2 {
    width: 93.47vw;
  }
  .top_dream_contents_box h3 {
    width: 90.93vw;
  }
  .top_dream_contents_box ul {
    flex-wrap: wrap;
    gap: 2.27vw;
  }
  .top_dream_contents_box ul li {
    width: 30vw;
  }
  .top_to_dream_btn {
    width: 52.13vw;
    margin-top: 5.73vw;
  }
}

@media (max-width: 600px) {
  .top_dream_contents_box ul li {
    width: 45vw;
  }
}

/* TOP SGチャレンジカップの楽しみ方 */
#fun_box {
  background: url("../images/main/fun/fun_bg.png") no-repeat;
  background-size: cover;
  position: relative;
  padding-top: 2.24vw;
  padding-bottom: 3.85vw;
}
#fun_info_box {
  width: 96.09vw;
  margin: auto;
  position: relative;
}
#fun_info_box h2 {
  margin: 0;
}
#fun_text {
  position: absolute;
  left: 7.81vw;
  bottom: 7.55vw;
  font-weight: bold;
  color: #fff;
  font-size: 1.67vw;
  width: 81.51vw;
  margin: 0;
  line-height: 1.5;
}
#fun_text .note {
  display: block;
  padding-left: 1em;
  text-indent: -1em;
}
.top_to_fun_btn {
  width: 30.26vw;
  display: block;
  margin: auto;
  margin-top: 3.75vw;
}

@media (max-width: 1199px) {
  #fun_box {
    padding-top: 3.33vw;
    padding-bottom: 6.67vw;
  }
  #fun_info_box {
    width: 93.07vw;
  }
  #fun_text {
    left: 7.33vw;
    bottom: 7.33vw;
    width: 80vw;
    font-size: 2.27vw;
    line-height: 1.5;
  }
  .top_to_fun_btn {
    width: 38.4vw;
    margin-top: 6vw;
  }
}

/* TOP豪華賞品 */
#prizes_box {
  background: url("../images/main/prizes/prizes_bg_pc.webp") no-repeat;
  background-size: cover;
  position: relative;
  padding-top: 2.19vw;
  padding-bottom: 7.81vw;
}
#prizes_box h2 {
  width: 95.94vw;
  margin: 0 auto;
}
#prizes_text {
  margin: 0 auto;
  margin-top: 2.6vw;
  width: 87.92vw;
  font-size: 1.61vw;
  font-weight: 900;
  background: rgba(255, 255, 255, 0.4);
  padding: 2.5vw 1.98vw;
  border-radius: 1.41vw;
  line-height: 1.6;
}
#prizes_text .note {
  display: block;
  padding-left: 1em;
  text-indent: -1em;
}
#prizes_box ul#tokoname_box {
  width: 95.47vw;
  list-style: none;
  margin: 0 auto;
  margin-top: 1.56vw;
  padding: 0;
  display: grid;
  /* grid-template-columns: repeat(3, minmax(0, 1fr)); */
  grid-template-areas: "cat tokoname tokoname" "challenge tokotan manekineko";
  align-items: center;
  gap: 1.56vw;
  position: relative;
}
#prizes_box ul#tokoname_box li:nth-of-type(1) {
  grid-area: cat;
  width: 31.72vw;
}
#prizes_box ul#tokoname_box li:nth-of-type(2) {
  grid-area: tokoname;
  width: 61.15vw;
}
#prizes_box ul#tokoname_box li:nth-of-type(3) {
  grid-area: challenge;
  width: 28.85vw;
}
#prizes_box ul#tokoname_box li:nth-of-type(4) {
  grid-area: tokotan;
  width: 28.85vw;
}
#prizes_box ul#tokoname_box li:nth-of-type(5) {
  grid-area: manekineko;
  width: 28.85vw;
  justify-self: end;
}
#prizes_box h3 {
  width: 55.36vw;
  margin: 0 auto;
  margin-top: 6.77vw;
}
#prizes_box ul#company_box {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-top: 2.5vw;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 4.32vw;
}
#prizes_box ul#company_box li {
  width: 28.85vw;
}
#to_oubo_btn {
  width: 38.02vw;
  display: block;
  margin: auto;
  margin-top: 6.77vw;
}

@media (max-width:1199px) {
  #prizes_box {
    background: url("../images/main/prizes/prizes_bg_sp.webp") no-repeat;
    background-size: cover;
    padding-top: 2.4vw;
    padding-bottom: 5.33vw;
  }
  #prizes_box h2 {
    width: 94.67vw;
  }
  #prizes_text {
    width: 93.33vw;
    margin-top: 4.8vw;
    font-size: 2.08vw;
    padding: 2.67vw;
  }
  #prizes_box ul#tokoname_box {
    margin-top: 4vw;
    grid-template-areas: "tokoname tokoname" "cat challenge" "tokotan manekineko";
    width: 96vw;
    gap: 3.73vw 2.4vw;
  }
  #prizes_box ul#tokoname_box li:nth-of-type(1) {
    width: 52.27vw;
    position: absolute;
    left: -1.73vw;
    top: -12vw;
    z-index: 1;
  }
  #prizes_box ul#tokoname_box li:nth-of-type(2) {
    width: 96.67vw;
  }
  #prizes_box ul#tokoname_box li:nth-of-type(3) {
    width: 45.33vw;
    justify-self: end;
    position: relative;
    right: 0.67vw;
  }
  #prizes_box ul#tokoname_box li:nth-of-type(4) {
    width: 45.33vw;
    position: relative;
    left: 1.33vw;
  }
  #prizes_box ul#tokoname_box li:nth-of-type(5) {
    width: 45.33vw;
    justify-self: end;
    position: relative;
    right: 0.67vw;
  }
  #prizes_box h3 {
    width: 83.33vw;
    margin-top: 8vw;
  }
  #prizes_box ul#company_box {
    margin-top: 2.67vw;
    gap: 4vw;
  }
  #prizes_box ul#company_box li {
    width: 45.33vw;
  }
  #to_oubo_btn {
    width: 42.67vw;
    margin-top: 4.67vw;
  }
}

/* TOPレースライブ */
#racelive_box {
  background: url("../images/main/racelive/racelive_bg_pc.webp") no-repeat;
  background-size: cover;
  position: relative;
  padding-top: 28.49vw;
  padding-bottom: 4.32vw;
}
#racelive_box h2 {
  position: absolute;
  left: 15.94vw;
  top: 1.3vw;
  width: 44.01vw;
  margin: 0;
}
#youtube_box {
  width: 95.57vw;
  margin: auto;
}
#racelive_youtube_box {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
#racelive_youtube_box iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}
#racelive_text {
  text-align: center;
  margin: 0;
  margin-top: 2.19vw;
  font-size: 1.82vw;
  font-weight: bold;
}
#to_youtube_btn {
  width: 57.81vw;
  margin: auto;
  margin-top: 3.02vw;
  display: block;
}

@media (max-width: 1199px) {
  #racelive_box {
    background: url("../images/main/racelive/racelive_bg_sp.webp") no-repeat;
    background-size: cover;
    padding-top: 38.67vw;
    padding-bottom: 5.07vw;
  }
  #racelive_box h2 {
    width: 59.73vw;
    top: 1.47vw;
    left: 4.93vw;
  }
  #youtube_box {
    width: 100%;
  }
  #racelive_text {
    font-size: 2vw;
    margin-top: 2.27vw;
  }
  #to_youtube_btn {
    width: 78.13vw;
    margin-top: 3.87vw;
  }
}

/* フッターバナー */
.footer_box {
  background: #000;
  padding-top: 2.86vw;
  padding-bottom: 2.08vw;
  position: relative;
}
.swiper_footer_banner_base_box {
  position: relative;
  /* フッターバナー3個版 */
  /* width: 54.95vw; */
  /* フッターバナー2個版 */
  width: 36.25vw;
  margin: auto;
  overflow: hidden;
}
@media (min-width: 1200px) {
  #footer_banner_swiper .swiper-wrapper {
    display: grid;
    /* フッターバナー3個版 */
    /* grid-template-columns: repeat(3, minmax(0, 1fr)); */
    /* フッターバナー2個版 */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.04vw;
  }
  /* フッターバナー3個版 */
  /* 2周目は非表示 */
  #footer_banner_swiper .swiper-slide:nth-child(n + 4) {
    /* display: none; */
  }
  /* フッターバナー2個版 */
  /* 2周目は非表示 */
  #footer_banner_swiper .swiper-slide:nth-child(n + 3) {
    display: none;
  }
}
#footer_jyo_logo {
  width: 13.49vw;
  margin: auto;
  margin-top: 2.6vw;
  display: block;
  pointer-events: none;
}
#copyrights_text {
  margin: 0;
  margin-top: 0.83vw;
  color: #fff;
  text-align: center;
  font-size: 0.83vw;
  font-weight: bold;
  letter-spacing: 1px;
}

#to_top_btn {
  position: fixed;
  right: 6.88vw;
  bottom: 4.32vw;
  width: 9.58vw;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  z-index: 100;
}
#to_top_btn.show {
  opacity: 1;
  visibility: visible;
}

@media (max-width: 1199px) {
  .footer_box {
    padding-top: 6.67vw;
    padding-bottom: 6.13vw;
  }
  .swiper_footer_banner_base_box {
    width: 100%;
  }
  #footer_jyo_logo {
    width: 34.53vw;
    margin-top: 6.93vw;
  }
  #copyrights_text {
    font-size: 2.13vw;
    margin-top: 2.13vw;
  }
  #to_top_btn {
    width: 14.27vw;
    right: 5.33vw;
    bottom: 5.33vw;
  }
}

/* フッターバナーSP版のswiperが一瞬大きくなる対策 */
@media (max-width: 1199px) {
  #footer_banner_swiper .swiper-wrapper {
    display: flex;
  }
  #footer_banner_swiper .swiper-slide {
    flex-shrink: 0;
    /* slidesPerView: 2 と spaceBetween に合わせる */
    width: calc((100% - (100vw * 20 / 750)) / 2.15);
  }
}