@charset "utf-8";
@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);

/* 基本設定
---------------------------------------- */
body {
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  /* background: #F7F8F8; */
}

/* カスタムプロパティの定義 */
:root {
  --main-color: #358fb3;
  --secondary-color: #95cec7;
}

#wf2024 {
  background: var(--main-color);
}

#mv-sp {
  display: none;
}

#mv-pc {
  display: block;
}

#gwfes2025-comingsoon {
  text-align: center;
  background: var(--main-color);
  padding: 50px 0;
  margin: 0 0 80px;
}

.event-end {
  background: #000;
  color: #fff;
  padding: 80px 0;
  text-align: center;
  font-size: 2rem;
  font-weight: bold;
  margin: 0 0 100px;
}

.sp_only {
  display: none;
}

/* メインビジュアル
---------------------------------------- */

#mv {
  background-image: url("/summerfes2025/img/mv_bg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 20px 0 0;
  position: relative;
}
#mv .mv-pic {
  display: block;
  max-width: 580px;
  width: 90%;
  margin: 0 auto;
}
#mv .mv-date {
  display: block;
  max-width: 540px;
  width: 80%;
  margin: 0 auto;
}
#mv-pc .mv-pc--position {
  max-width: 700px;
  height: 600px;
  margin: 0 auto;
  position: relative;
}
#mv-pc .mv-pc--position .mv-pc--01 {
  max-width: 650px;
  position: absolute;
  left: 0;
  bottom: 0;
}
#mv-pc .mv-pc--position .mv-pc--02 {
  max-width: 650px;
  position: absolute;
  left: 0;
  bottom: 255px;
}
#mv-pc .mv-pc--position .mv-pc--03 {
  max-width: 215px;
  position: absolute;
  right: 130px;
  bottom: 350px;
}
#mv-pc .mv-pc--position .mv-pc--04 {
  max-width: 115px;
  position: absolute;
  right: 30px;
  bottom: 320px;
}
#mv-pc .mv-pc--position .mv-pc--05 {
  max-width: 120px;
  position: absolute;
  left: 110px;
  bottom: 353px;
}
#mv-pc .mv-pc--date {
  width: 540px;
  display: block;
  margin: 0 auto;
  position: relative;
  bottom: 50px;
}

#fireworks_block {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 100;
}

.firework {
  position: absolute;
  width: 4px;
  height: 80px;
  /* background: #fff; */
  animation: launch 1.5s ease-out forwards;
  opacity: 0.8;
}

@keyframes launch {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  100% {
    transform: translateY(-600px);
    opacity: 0;
  }
}

.explosion {
  position: absolute;
  width: 16px;
  height: 16px;
  opacity: 0;
  top: -600px;
  animation: explode 1.2s ease-out forwards;
}

@keyframes explode {
  0% {
    transform: translate(0, 0);
    opacity: 1;
  }
  80% {
    transform: translate(var(--x), var(--y)) scale(1.2);
    opacity: 0.9;
  }
  100% {
    transform: translate(var(--x), var(--y)) scale(1.25);
    opacity: 0;
  }
}

/* タイトル
---------------------------------------- */
h2 {
  color: #333;
  border-bottom: #333 solid 2px;
  text-align: center;
  max-width: 620px;
  margin: 0 auto 40px;
  padding: 0 0 10px;
}

/* コンテンツ
---------------------------------------- */
.tab-menu {
  padding-top: 20px;
  padding-bottom: 0;
  /* border-bottom: solid 1px var(--secondary-color); */
  display: flex;
  justify-content: space-between;
  max-width: 1440px;
  margin: 0 auto;
}
.tab-btn {
  width: 48%;
  padding: 10px;
  /* font-size: 14px; */
  font-weight: bold;
  border: solid 2px var(--secondary-color);
  border-bottom: solid 2px var(--secondary-color);
  color: #333;
  background: #fff;
  cursor: pointer;
  text-align: center;
  transition: background 0.2s;
  border-radius: 0.8rem 0.8rem 0 0;
}
.tab-btn:hover {
  background: var(--secondary-color);
}
.tab-btn.active {
  background: #333;
  border: solid 2px #333;
  color: #fff;
  /* font-weight: bold; */
}

.tab-content {
  /* data-cell２つに付与 */
  display: none; /* 初期状態は非表示 */
  /* margin-top: 24px; */
  color: #333;
  padding-bottom: 24px;
}
.tab-content table {
  width: 100%;
  /* border-collapse: collapse; */
  margin: 0;
  padding: 0;
}
.tab-content tbody {
  width: 100%;
}

#sf2025-comingsoon {
  text-align: center;
  font-weight: bold;
  margin: 0 0 5rem;
  background: var(--main-color);
  padding: 80px 0;
  color: #fff;
}

section {
  background: #fff;
  margin: -1px 0 0;
  padding: 90px 20px;
}

#schedule table {
  max-width: 1440px;
  margin: 0 auto;
  border-collapse: collapse;
}
#schedule th {
  border: 1px solid #333;
  padding: 10px;
  text-align: center;
}

#schedule td {
  border: 1px solid #333;
  padding: 10px;
  text-align: center;
}

#schedule td:nth-child(3) {
  text-align: left;
  padding: 10px 2%;
}

#schedule td:nth-child(3) dd {
  font-size: 0.92em;
  padding-left: 1%;
  display: list-item;
  list-style-position: inside;
  list-style-type: disc;
}

#schedule td span {
  font-size: 13px;
}

#schedule td .erased-text {
  padding: 2px 8px 2px 0;
  font-size: 16px;
  color: #333;
  background-color: #999;
}

#schedule td .strong-text {
  font-size: 15px;
}

/* スケジュール表 見出し */
#schedule table .schedule-title th {
  background: #333;
  color: #fff;
}
.schedule-title th:first-child {
  width: 17%;
}
.schedule-title th:nth-child(2) {
  width: 50%;
}
.schedule-title th:nth-child(3) {
  width: 33%;
}

/* スケジュール表 日付 */
tr .schedule-day {
  background-color: #b3b3b3;
  color: #fff;
  font-weight: bold;
  width: 11%;
}

/* スケジュール表 時間 */
tr td.schedule-time {
  background-color: #b3b3b3;
  color: #fff;
  font-weight: bold;
}

/* スケジュール表 名称 */
tr td.schedule-event {
  background-color: #fff;
}

/* スケジュール表 主催 */
tr td.schedule-host {
  background-color: #fff;
}

@media (min-width: 768px) and (max-width: 1280px) {
}
/* 768-1280 end */

@media (max-width: 768px) {
  #mv {
    padding: 30px 0 0;
  }
  #mv-pc {
    display: none;
  }
  #mv-sp {
    display: block;
    width: 70%;
    margin: 0 auto;
  }

  section {
    padding: 30px 20px;
  }
  .schedule-title th:first-child {
    width: 33%;
  }
  .schedule-title th:nth-child(2) {
    width: 33%;
  }
  .schedule-title th:nth-child(3) {
    width: 33%;
  }

  #schedule th {
    font-size: 12px;
  }
  #schedule td {
    font-size: 12px;
  }
  #schedule td span {
    font-size: 11px;
  }
  #schedule td .erased-text {
    font-size: 12px;
  }
  #schedule td .strong-text {
    font-size: 11px;
  }

  .tab-btn {
    font-size: 12px;
  }

  /*雪のサイズ*/
  #snow_block .snow_parts_box img:nth-child(2n + 1) {
    width: 22px !important;
  }
  #snow_block .snow_parts_box img:nth-child(2n) {
    width: 12px !important;
  }
}
/* 768 end */

/* 装飾 
************************************************/

#snow_block {
  width: 100%;
}

#snow_block .snow_parts_box {
  position: relative;
}

#snow_block .snow_parts_box img {
  position: absolute;
}

#snow_block .snow_parts_box img:nth-child(2n + 1) {
  width: 40px;
  /*雪のサイズ*/
}

#snow_block .snow_parts_box img:nth-child(2n) {
  width: 25px;
  /*雪のサイズ*/
}

/*-----------------------------------
雪パーツの表示位置
-----------------------------------*/

img.parts_01 {
  top: 8%;
  left: 2%;
}

img.parts_02 {
  top: 0;
  left: 10%;
}

img.parts_03 {
  top: 30%;
  left: 18%;
}

img.parts_04 {
  top: 0;
  left: 26%;
}

img.parts_05 {
  top: 4%;
  left: 34%;
}

img.parts_06 {
  top: 50%;
  left: 42%;
}

img.parts_07 {
  top: 12%;
  left: 50%;
}

img.parts_08 {
  top: 2%;
  left: 58%;
}

img.parts_09 {
  top: 60%;
  left: 66%;
}

img.parts_10 {
  top: 16%;
  left: 74%;
}

img.parts_11 {
  top: 40%;
  left: 52%;
}

img.parts_12 {
  top: 0;
  left: 90%;
}

img.parts_13 {
  top: 18%;
  left: 88%;
}

img.parts_14 {
  top: 0;
  left: 14%;
}

img.parts_15 {
  top: 33%;
  left: 10%;
}

img.parts_16 {
  top: 6%;
  left: 20%;
}

img.parts_17 {
  top: 0;
  left: 38%;
}

img.parts_18 {
  top: 50%;
  left: 46%;
}

img.parts_19 {
  top: 0;
  left: 20%;
}

img.parts_20 {
  top: 10%;
  left: 58%;
}

img.parts_21 {
  top: 30%;
  left: 76%;
}

img.parts_22 {
  top: -2%;
  left: 74%;
}

img.parts_23 {
  top: 20%;
  left: 2%;
}

img.parts_24 {
  top: -4%;
  left: 90%;
}

img.parts_25 {
  top: 33%;
  left: 28%;
}

img.parts_26 {
  top: -3%;
  left: 22%;
}

img.parts_27 {
  top: -8%;
  left: 78%;
}

img.parts_28 {
  top: 50%;
  left: 4%;
}

img.parts_29 {
  top: 0;
  left: 5%;
}

img.parts_30 {
  top: -10%;
  left: 38%;
}

img.parts_31 {
  top: 40%;
  left: 66%;
}

img.parts_32 {
  top: 0;
  left: 7%;
}

@keyframes snow {
  0% {
    opacity: 0;
  }

  20% {
    transform: translate(3px, 45px) rotate(0deg);
    opacity: 1;
  }

  30% {
    transform: translate(0, 75px) rotate(20deg);
  }

  50% {
    transform: translate(-20px, 150px) rotate(40deg);
  }

  70% {
    transform: translate(-40px, 225px) rotate(-20deg);
    opacity: 0.8;
  }

  90% {
    transform: translate(-60px, 300px) rotate(-90deg);
  }

  100% {
    transform: translate(-70px, 345px);
    opacity: 0;
  }
}

.snow_parts_box img {
  animation: snow linear 6s infinite;
  /*アニメーションが始まるまで画像を見えなくしておく*/
  opacity: 0;
}

/*-----------------------------------
アニメーションが始まるまでの時間
-----------------------------------*/
img.parts_01,
img.parts_04,
img.parts_07,
img.parts_10,
img.parts_20,
img.parts_30 {
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
}

img.parts_02,
img.parts_05,
img.parts_15,
img.parts_21,
img.parts_25,
img.parts_31 {
  -webkit-animation-delay: 1.5s;
  animation-delay: 1.5s;
}

img.parts_03,
img.parts_06,
img.parts_09,
img.parts_12,
img.parts_22,
img.parts_32 {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}

img.parts_08,
img.parts_11,
img.parts_13,
img.parts_16,
img.parts_19,
img.parts_23 {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}

img.parts_14,
img.parts_17,
img.parts_18,
img.parts_24,
img.parts_26 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

img.parts_15,
img.parts_18,
img.parts_27,
img.parts_28,
img.parts_29 {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
}

.poyon {
  animation: poyon 1.1s linear 0s 1;
  animation-delay: 2s;
  animation-fill-mode: forwards;
  /* アニメーション終了後の状態を維持 */
  opacity: 0;
  /* 最初は非表示 */
}

@keyframes poyon {
  0% {
    transform: scale(0.8, 1.4) translate(0%, -100%);
    opacity: 0;
    /* 最初は非表示 */
  }

  10% {
    transform: scale(0.8, 1.4) translate(0%, -15%);
    opacity: 1;
    /* アニメーション開始直後に表示 */
  }

  20% {
    transform: scale(1.4, 0.6) translate(0%, 30%);
  }

  30% {
    transform: scale(0.9, 1.1) translate(0%, -10%);
  }

  40% {
    transform: scale(0.95, 1.2) translate(0%, -30%);
  }

  50% {
    transform: scale(0.95, 1.2) translate(0%, -10%);
  }

  60% {
    transform: scale(1.1, 0.9) translate(0%, 5%);
  }

  70% {
    transform: scale(1, 1) translate(0%, 0%);
  }

  100% {
    transform: scale(1, 1) translate(0%, 0%);
    opacity: 1;
    /* 最後も表示状態を維持 */
  }
}

.slide-in--01 {
  animation: slidein01 1.5s ease-in-out 1;
}

@keyframes slidein01 {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0%);
    opacity: 1;
  }
}

.slide-in--02 {
  animation: slidein02 1.5s ease-in-out 1;
}

@keyframes slidein02 {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0%);
    opacity: 1;
  }
}

.slide-in--03 {
  animation: slidein03 1.5s ease-in-out 1;
}

@keyframes slidein03 {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0%);
    opacity: 1;
  }
}

/*
  .slide-in--04 {
	animation: slidein04 1.5s ease-in-out 1;
  }
  
  @keyframes slidein04 {
	from {
	  transform: translateY(-100%);
	  opacity: 0;
	}
	to {
	  transform: translateY(0%);
	  opacity: 1;
	}
  }
	*/

.slide-in--05 {
  animation: slidein05 1.5s ease-in-out 1;
  animation-delay: 1.5s;
  animation-fill-mode: forwards;
  /* アニメーション終了後の状態を維持 */
  opacity: 0;
  visibility: visible;
}

@keyframes slidein05 {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }

  100% {
    transform: translateX(0%);
    opacity: 1;
  }
}

/*
.frog{
    transform-origin: center bottom;
    animation: yurayura 3s linear infinite;
	animation-delay: 2.5s; 
}

@keyframes yurayura {
  0% , 100%{
      transform: rotate(10deg);
  }
  50%{
      transform: rotate(-10deg);
  }
}
  */

.penguin {
  transform-origin: center bottom;
  opacity: 0;
  animation: fadeIn 1.5s ease-in-out 1 forwards, yurayura 3s linear infinite;
  animation-delay: 1.5s, 3s;
}

/* フェードインアニメーション */
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
@keyframes yurayura {
  0%,
  100% {
    transform: rotate(10deg);
  }

  50% {
    transform: rotate(-10deg);
  }
}
