@charset "utf-8";

@import url(./global/_variable.css);
@import url(./layout/_reset.css);



/* common
  letter-spacing: .02em;
  font-feature-settings: 'palt';
  font-family: "Dela Gothic One", sans-serif;
  font-family: "Zen Maru Gothic", sans-serif;
============================================ */
html {
	font-size: 62.5%;
  scroll-behavior: smooth;
  /*scroll-padding-top: 50px; check the header hight!*/
}

body {
	background: var(--color_sub);
	color: var(--color_dark);
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.6rem;
  font-weight: 600;
	line-height: 1.6;
  min-height: 100vh;
  @media (width < 896px) {
    font-size: 1.4rem;
  }
  &.is-fixed {
    height: 100%;
    overflow: hidden;
  }
}

#wrapper {
  position: relative;
  overflow: hidden;
}

a {
  color: currentColor;
  transition: all .3s ease-out;
  &:hover {
    @media(hover:hover) {
      opacity: .7;
    }
  }
}

img {
	max-width: 100%;
  height: auto;
}

.senonly {
  display: none;
  @media (width < 1000px) {
    display: block;
  }
}
.sennone {
  @media (width < 1000px) {
    display: none;
  }
}
.pconly {
  @media (width < 896px) {
    display: none;
  }
}
.sponly {
  display: none;
  @media (width < 896px) {
    display: block;
  }
}
.portraitonly {
  display: none;
  @media (width < 480px) {
    display: block;
  }
}
.portraitnone {
  @media (width < 480px) {
    display: none;
  }
}
.tabonly {
  display: none;
  @media (width < 1025px) {
    display: block;
  }
}
.tabnone {
  @media (width < 1025px) {
    display: none;
  }
}

.newline {
	display: inline-block;
}

.width {
  max-width: 1280px;
  width: calc(100% - 30px);
  margin: 0 auto;
}

.outer {
  overflow: hidden;
}



/* pagetop
============================================ */
.pagetop_arrow {
  position: fixed;
  right: 70px;
  bottom: -100px;
  z-index: 1500;
  transition: all 300ms 0s ease;
  opacity: 0;
  a {
    overflow: hidden;
    outline: none;
    display: block;
    background-color: rgba(0,0,0,0.4);
    padding: 5px;
    img {
      width: 60px;
      height: auto;
    }
  }
  @media (max-width:1025px) {
    right: 10px;
  }
  @media (max-width:896px) {
    a {
      img {
        width: 30px;
      }
    }
  }
}
.fade_in {
  .pagetop_arrow {
    opacity: 1;
    transition: all 300ms 0s ease;
    bottom: 100px;
  }
}

.test {
  color: #F00;
}


/* header
============================================ */
.header{
  width: 100%;
  height: 80px;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 800;
  @media (width < 896px) {
    height: 64px;
  }
}
.area_header{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0 32px;
  padding-left: 50px;
  @media (width < 896px) {
    padding-left: 15px;
  }
  /* @media (width < 480px) {
    gap: 0;
    padding-left: 0;
  } */
}
.header-logo{
  /* @media (width < 480px) {
    text-align: center;
    width: 50%;
  } */
}
.header-logo__link{
  display: block;
  position: relative;
  @media (width < 480px) {
    &::after{
      content: "";
      display: inline-block;
      width: 1px;
      height: 28px;
      background: rgba(#fff, 0.4);
      position: absolute;
      top: 50%;
      right: 0;
      translate: 0 -50%;
    }
  }
  img{
    @media (width < 896px){
      width: 90px;
    }
  }
}
.header-menu{
  cursor: pointer;
  width: 280px;
  height: 80px;
  padding: 16px 20px;
  background: #FFF;
  color: #fff;
  position: relative;
  @media (width < 896px){
    width: 240px;
    height: 64px;
    padding: 12px;
  }
  @media (width < 480px) {
    padding: 12px 15px;
  }
  @media (width < 480px) {
    width: 50%;
  }
}
.header-menu__item{
  opacity: 0;
  visibility: hidden;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  line-height: 1.4;
  position: absolute;
  top: 0;
  left: 0;
  &::after{
    flex-shrink: 0;
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    background: url("../images/circle_arrow_bottom_white.svg") center center/ contain no-repeat;
    @media (width < 896px) {
      width: 24px;
      height: 24px;
    }
  }
}
.header-menu__txt{
  flex-grow: 1;
}
.header-nav{
  width: 280px;
  padding: 16px 20px;
  background: rgba(#000217, 0.8);
  position: fixed;
  top: 80px;
  right: 0;
  translate: 100% 0;
  transition: translate .3s ease-out;
  z-index: 600;
  @media (width < 896px){
    width: 240px;
    top: 64px;
  }
  @media (width < 480px) {
    width: 100%;
  }
  &.open{
    translate: 0 0;
  }
  .header-nav__item{
    border-top: 1px solid rgba(#fff, 0.4);
    &:first-of-type{
      border-top: none;
    }
  }
}
.header-nav__link{
  padding: 10px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  font-weight: 700;
  &::after{
    content: "";
    display: inline-block;
    width: 28px;
    height: 28px;
    background: url("../images/circle_arrow_right_white.svg") center center/ contain no-repeat;
    @media (width < 896px) {
      width: 22px;
      height: 22px;
    }
  }
}


/* drawer menu */
/* ============================================ */

.drawer_menu {
  .btn_drawer {
    position: fixed;
    top: 20px;
    right: 25px;
    width: 26px;
    height: 16px;
    z-index: 9999;
    @media (width > 897px) {
      top: 27px;
      right: 60px;
    }
    &::before {
      content: "";
      width: 50px;
      height: 50px;
      border-radius: 50px;
      background-color: var(--color_dark);
      position: absolute;
      top: 35%;
      left: 50%;
      transform: translate(-50%,-35%);
      z-index: 9990;
    }
    
    .button {
      position: relative;
      width: 100%;
      height: 100%;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: inline-block;
      transition: all .5s;
      box-sizing: border-box;
      z-index: 9995;
      span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #FFF;
        border-radius: 4px;
        display: inline-block;
        transition: all .5s;
        box-sizing: border-box;
        &:nth-of-type(1) {
          top: 0;
        }
        &:nth-of-type(2) {
          top: 50%;
          transform: translateY(-50%);
        }
        &:nth-of-type(3) {
          bottom: 0;
        }
      }
      &.active {
        span:nth-of-type(1) {
          transform: translateY(7px) rotate(-45deg);
        }
        span:nth-of-type(2) {
          left: 60%;
          opacity: 0;
        }
        span:nth-of-type(3) {
          transform: translateY(-7px) rotate(45deg);
        }
      }
    }
  }
  .menu {
    opacity: 0;
    visibility: hidden;
    position: fixed;
    inset: 0;
    transition: 0.3s ease;

  }
  
  .menu.is-active {
    opacity: 1;
    visibility: visible;
    width: auto;
    height: 100dvh;
    transition: 0.5s ease;
    z-index: 8900;
    .drawer_menu__area {
      right: 0px;
    }
  }
  
  .overlay {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    background: rgba(255, 255, 255, 0.9);
  }

  .drawer_menu__area {
    position: absolute;
    top: 0px;
    right: -70vw;
    width: 100vw;
    height: 100%;
    padding: 40px 20px 20px;
    box-sizing: border-box;
    text-align: center;
    overflow: auto;
    display: inline-block;
    transition: 0.3s ease;
    align-content: center;
  }

  .drawer_menu__block {
    position: relative;
    text-align: center;
  }

  .d_list_box {
    display: inline-block;
    width: 100%;
    .btn_vote {
      margin-top: 10px;
    }
  }

  .d_list {
    padding-block: 10px;
  }
  .d_item {
    padding: 5px 0;
    font-size: 1.8rem;
    line-height: 1.2em;
    a {
      display: block;
      padding-block: 12px;
      position: relative;
      color: var(--font_c);
      &:hover {
        color: var(--over_c);
      }
      .small {
        font-size: 1.3rem;
      }
    }
  }
}




/* element
============================================ */
.block_telop {
  width: 33.75vw;
  max-width: 648px;
  aspect-ratio: 648 / 180;
  position: fixed;
  bottom: 0px;
  right: 5.2vw;
  z-index: 4000;
  @media (width < 896px) {
    right: 10px;
    max-width: 480px;
    min-width: 355;
    width: 95%;
  }
}

.block_telop_inner {
  position: relative;
  width: 100%;
  height: 100%;
	bottom: 0px;
	
	@media (width < 896px) {
		bottom: 50px;
	}
}


.outer_bubble {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 74%;
  margin: auto;
  transform: scale(0);
  transition: transform 0.1s ease-out;
  /* transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); */
}

.inner_bubble {
  position: relative;
  width: 100%;
  aspect-ratio: 476 / 172;
  align-content: center;
  text-align: center;
}

.open_frame {
  transform: scale(1);
}

.speak_shark {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  filter: drop-shadow(2px 2px 3px rgba(0,0,0,0.4));
}

.box_telop {
  display: inline-block;
  max-width: 80%;
}

.js-text {
  position: relative;
  line-height: 1.2em;
  font-size: max(1.25vw, 1.6rem);
  font-family: "Dela Gothic One", sans-serif;
  font-weight:400;
  span {
    position: relative;
    opacity: 0;
    display: inline-block;
    transform: translateY(0.3em);
    transition: opacity 0.05s ease-out, transform 0.05s ease-out;
    &.vids {
      opacity: 1;
      transform: translateY(0em); /* 定位置へ移動 */
    }
  }
}

.box_illust {
  width: 28%;
  aspect-ratio: 180 / 141;
  position: absolute;
  border-radius: 50px;
  bottom: 0px;
  right: 0px;
  cursor: pointer;
  align-content: center;
  filter: drop-shadow(2px 2px 3px rgba(0,0,0,0.4));
}

.stop_bubble {
  position: absolute;
  top: 0px;
  left: 0px;
  background-color: #FFF;
  border-radius: 50px;
  line-height: 0em;
  padding: 2px;
  cursor: pointer;
  img {
    filter: brightness(0) saturate(100%) invert(67%) sepia(3%) saturate(24%) hue-rotate(323deg) brightness(91%) contrast(86%);
    width: 1.8vw;
    height: 1.8vw;
    @media (width < 896px) {
      width: 3vw;
      height: 3vw;
    }
    @media (width < 656px) {
      width: 7vw;
      height: 7vw;
    }
  }
}

.aera_visual {
  background-color: var(--color_theme);
  position: relative;
  width: 100%;
  overflow: hidden;
  align-content: center;
  z-index: 2000;
}

.aera_visual_bg {
  width: 100%;
  max-width: 1440px;
  box-sizing: border-box;
  padding-inline: 10px;
  padding-top: 10px;
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  line-height: 0em;
  img {
    width: 100%;
    height: auto;
  }
}

.aera_visual_main {
  position: relative;
  width: 100%;
  line-height: 0em;
  margin-bottom: -1px;
  /* @media (width < 480px) {
    width: 120%;
    left: 50%;
    transform: translateX(-50%);
  } */
  img {
    width: 100%;
    height: auto;
  }
}


.area_schedule {
  position: relative;
}

.area_schedule_inner {
  padding: 0 20px;
  position: relative;
  z-index: 2000;
}

.box_schedule {
  color: var(--color_theme);
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  text-align: center;
  text-shadow: 3px 3px 0px var(--color_point);
  @media (width < 896px) {
    text-shadow: 2px 2px 0px var(--color_point);
  }
}

.box_schedule_year {
  font-size: clamp(2rem, 2.2vw + 1.175rem, 5.4rem);
  display: inline-block;
  position: relative;
  &::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 0px;
    border-bottom: var(--color_theme) solid 3px;
  }
  &::before {
    content: "";
    display: block;
    position: absolute;
    bottom: -3px;
    left: 3px;
    width: 100%;
    height: 0px;
    border-bottom: var(--color_point) solid 3px;
    @media (width < 896px) {
      bottom: -2px;
      left: 2px;
    }
  }
}

.box_schedule_date {
  font-size: clamp(3.5rem, 4.21vw + 1.922rem, 10rem);
  letter-spacing: 0.05em;
  .week {
    font-size: 0.4em;
  }
}

.box_schedule_place {
  font-size: clamp(2rem, 2.2vw + 1.175rem, 5.4rem);
}

.box_catch {
  text-align: center;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  padding-top: 4vw;
  position: relative;
  padding-bottom: 12vw;
  @media (width < 1146px) {
    padding-bottom: 146px;
  }
}

.frame_ticket {
  position: absolute;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%);
  img {
    width: 25vw;
    min-width: 300px;
  }
}

.hd_catch {
  color: var(--color_theme);
  font-size: clamp(2.8rem, 1.68vw + 2.169rem, 5.4rem);
  letter-spacing: 0.1em;
  word-break: keep-all;
  overflow-wrap: anywhere;
  position: relative;
}

.area_schedule_bottom {
  position: relative;
  z-index: 2000;
  img {
    width: 100%;
    height: auto;
  }
}


.area_imagesame {
  position: relative;
  padding: 0 20px;
  background-color: var(--color_theme);
  text-align: center;
  z-index: 2000;
}

.block_imagesame {
  position: relative;
  z-index: 2000;
  max-width: 990px;
  margin: auto;
  container-type: inline-size;
}

.block_imagesame_ttl {
  max-width: 890px;
  width: 100%;
  margin: auto;
  text-align: center;
  z-index: 2000;
  position: relative;
}

.hd_imagesame {
  font-size: clamp(2.4rem, 3.84vw + 0.96rem, 4.8rem);
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  line-height: 1.4;
  color: var(--color_point);
  letter-spacing: 0.1em;
  position: absolute;
  width: 100%;
  top: 50%;
  transform: translateY(-50%);
  .small {
    font-size: 0.8em;
  }
}

.anatano {
  font-size: clamp(1.8rem, 0.26vw + 1.703rem, 2.2rem);
  font-weight: 600;
  padding-top: 2vw;
  @media (width < 896px) {
    padding-top: 20px;
  }
}

.hd_wakaru {
  font-size: clamp(2.8rem, 1.68vw + 2.169rem, 5.4rem);
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  color: var(--color_dark);
  line-height: 1.4em;
  letter-spacing: 0.1em;
  padding-top: 2vw;
  padding-bottom: 1vw;
  text-shadow: 3px 3px 0px var(--color_deco);
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  &::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 0px;
    border-bottom: var(--color_dark) solid 3px;
  }
  &::before {
    content: "";
    display: block;
    position: absolute;
    bottom: -3px;
    left: 3px;
    width: 100%;
    height: 0px;
    border-bottom: var(--color_deco) solid 3px;
    @media (width < 896px) {
      bottom: -2px;
      left: 2px;
    }
  }
  @media (width < 896px) {
    padding-top: 20px;
    padding-bottom: 12px;
    text-shadow: 2px 2px 0px var(--color_deco);
  }
}

.hd_aeru {
  font-size: clamp(2.8rem, 1.68vw + 2.169rem, 5.4rem);
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  color: var(--color_dark);
  line-height: 1.4em;
  letter-spacing: 0.1em;
  padding-top: 2vw;
  padding-bottom: 1vw;
  text-shadow: 3px 3px 0px var(--color_deco);
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  @media (width < 896px) {
    padding-top: 20px;
    padding-bottom: 12px;
    text-shadow: 2px 2px 0px var(--color_deco);
  }
}

.list_midokoro {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 8vw 0 0;
  @media (width < 480px) {
    padding: 0vw 0 0;
  }
}

.item_midokoro {
  max-width: 400px;
  width: 48%;
  &:nth-child(odd) {
    .item_midokoro_txt {
      margin: 0 0 0 auto;
    }
    @media (width < 480px) {
      padding: 8vw 0 0;
      .item_midokoro_img {
        transform: translateX(-18%);
      }
    }
  }
  &:nth-child(even) {
    padding: 8vw 0 0;
  }
  @media (width < 480px) {
    width: 100%;
  }
}

.item_midokoro_img {
  width: 120%;
  position: relative;
}

.mt_m {
  transform: translateY(-10px);
}

.mt_p {
  margin-top: 16px;
}

.kome_midokoro {
  font-size: 13px;
  line-height: 1.4em;
  color: #000;
  position: relative;
  display: inline-block;
  text-align: left;
  padding-left: 1em;
  text-indent: -1em;
}

.item_midokoro_txt {
  width: 72.5%;
  padding-top: 16px;
  @media (width < 480px) {
    width: 86%;
  }
}

.hd_midokoro {
  font-size: 3.4rem;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  color: var(--color_dark);
  line-height: 1.2em;
  text-shadow: 3px 3px 0px var(--color_deco);
  display: inline-block;
  position: relative;
  padding-bottom: 1vw;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: left;
  &::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 0px;
    border-bottom: var(--color_dark) solid 3px;
  }
  &::before {
    content: "";
    display: block;
    position: absolute;
    bottom: -3px;
    left: 3px;
    width: 100%;
    height: 0px;
    border-bottom: var(--color_deco) solid 3px;
    @media (width < 896px) {
      bottom: -2px;
      left: 2px;
    }
  }
  @media (width < 896px) {
    padding-bottom: 12px;
    text-shadow: 2px 2px 0px var(--color_deco);
  }
}

.txt_midokoro {
  font-weight: 600;
  font-size: 1.6rem;
  padding: 16px 0 0;
  text-align: justify;
}

.area_imagesame_bottom {
  margin: 0 -20px;
  z-index: 2000;
  position: relative;
  img {
    width: 100%;
    height: auto;
  }
}

.mt6vw_20 {
  margin-top: 6vw;
  @media (width < 480px) {
    margin-top: 20px;
  }
}

.tooth {
  position: absolute;
  width: 100%;
}

.column_shugo {
  display: grid;
  grid-template-columns: 40% 20% 40%;
  margin-inline: -20px;
  margin-top: 22cqw;
  position: relative;
  @media (width < 480px) {
    grid-template-columns: 42% 16% 42%;
    margin-top: 70px;
  }
}

.hd_shugo_ttl {
  writing-mode: vertical-rl;
  align-content: center;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  color: var(--color_point);
  text-shadow: 3px 3px 0px var(--color_deco);
  font-size: clamp(4rem, 9.6vw + 0.4rem, 10rem);
  line-height: 1em;
}

.side_same {
  display: grid;
  gap: 30px;
  @media (width < 480px) {
    gap: 20px;
  }
}

.box_shugo_single {
  width: 50%;
  margin: auto;
  padding-top: 30px;
  @media (width < 480px) {
    width: 50%;
    padding-top: 10px;
  }
}

.box_shugo_img {
  overflow: hidden;
  border-top-left-radius: 5cqw;
  border-top-right-radius: 5cqw;
  border-bottom-right-radius: 5cqw;
  border-bottom-left-radius: 5cqw;
}

.box_shugo_img_l {
  overflow: hidden;
  border-top-left-radius: 5cqw;
  border-top-right-radius: 5cqw;
  border-bottom-right-radius: 5cqw;
  border-bottom-left-radius: 5cqw;
  @media (width < 1000px) {
    border-top-left-radius: 0cqw;
    border-top-right-radius: 5cqw;
    border-bottom-right-radius: 5cqw;
    border-bottom-left-radius: 0cqw;
  }
}
.box_shugo_img_r {
  overflow: hidden;
  border-top-left-radius: 5cqw;
  border-top-right-radius: 5cqw;
  border-bottom-right-radius: 5cqw;
  border-bottom-left-radius: 5cqw;
  @media (width < 1000px) {
    border-top-left-radius: 5cqw;
    border-top-right-radius: 0cqw;
    border-bottom-right-radius: 0cqw;
    border-bottom-left-radius: 5cqw;
  }
}

.box_shugo_txt {
  padding-top: 14px;
  letter-spacing: -0.05em;
  @media (width < 480px) {
    padding-top: 8px;
  }
}

.hd_shugo_same {
  font-size: clamp(1.8rem, 2.56vw + 0.84rem, 3.4rem);
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  color: var(--color_dark);
  line-height: 1.0em;
  text-shadow: 3px 3px 0px var(--color_deco);
  display: inline-block;
  position: relative;
  word-break: keep-all;
  overflow-wrap: anywhere;
  .small {
    font-size: 0.7em;
  }
  @media (width < 896px) {
    text-shadow: 2px 2px 0px var(--color_deco);
  }
}

.txt_shugo_same {
  word-break: keep-all;
  overflow-wrap: anywhere;
  line-height: 1.4em;
  padding-top: 8px;
  @media (width < 480px) {
    padding-top: 0px;
  }
  .tsume {
    letter-spacing: -0.15em;
  }
}


.block_aquarium {
  max-width: 1340px;
  margin: auto;
  padding-top: 6vw;
  position: relative;
  z-index: 2000;
  @media (width < 896px) {
    padding-top: 40px;
  }
}

.nav_aquarium {
  max-width: 600px;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 20px;
  @media (width < 896px) {
    gap: 10px;
  }
}

.btn_aquarium {
  width: 100%;
  display: block;
  background-color: var(--color_dark);
  color: #FFF;
  text-align: center;
  padding: 14px 10px;
  font-size: 1.8rem;
  line-height: 1em;
  border: var(--color_dark) solid 2px;
  border-radius: 50px;
  position: relative;
  &:hover {
    background-color: var(--color_point);
    opacity: 1;
  }
  .btn_detail_arrow {
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7430%) hue-rotate(85deg) brightness(102%) contrast(102%);
    transform: rotate(-90deg);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 10px;
    width: 24px;
    @media (width < 896px) {
      width: 20px;
    }
  }
  &.active_mn {
    background-color: #FFF;
    color: var(--color_dark);
    .btn_detail_arrow {
      filter: brightness(0) saturate(100%) invert(21%) sepia(92%) saturate(2093%) hue-rotate(192deg) brightness(98%) contrast(93%);
    }
  }
}

.wrap_aquarium {
  width: 100%;
  margin-top: 20px;
  position: relative;
  aspect-ratio: 4 / 2;
}

.box_aquarium {
  width: 100%;
  align-content: center;
  position: absolute;
  top: 0px;
  left: 0px;
}

.ill_arch {
}

.ill_cylinder {
}

.active_ill {
  z-index: 3000;
}


.area_program {
  position: relative;
  background-color: var(--color_sub);
  z-index: 2000;
}

.area_program_top {
  position: relative;
}

.area_program_bottom {
  position: relative;
  z-index: 2000;
}
.area_program_goods {
  position: relative;
  z-index: 2000;
  width: 100vw;
  overflow: hidden;
}

.inner_shark {
  width: 1920px;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  @media (width < 1000px) {
    width: 100vw;
    left: auto;
    transform: none;
  }
  img {
    width: 100%;
    height: auto;
  }
}

.block_program {
  position: relative;
  z-index: 2000;
}

#slide_program,
#slide_goods,
#slide_foods {
  margin: 3vw auto 0;
  .splide_inner {
    max-width: 1340px;
    position: relative;
    margin: auto;
    .splide__track {
      max-width: 1000px;
      margin: auto;
      container-type: inline-size;
      @media (width < 1040px) {
        width: calc(100vw - 40px);
      }
      .splide__list {
        .splide__slide {
          padding: 20px;
        }
      }
    }
    .splide__pagination {
      position: absolute;
      bottom: -20px;
      left: 0px;
      width: 100%;
      li {
        padding: 0 4px;
        .splide__pagination__page {
          width: 10px;
          height: 10px;
          padding: 0px;
          border-radius: 100%;
          border: none;
          background-color: rgba(255, 255, 255, 1.0);
        }
        .is-active {
          background-color: var(--color_dark);
        }
      }
    }
  }
}

#slide_program {
  .splide_inner {
    .splide__track {
      .splide__list {
        .splide__slide {
          background-color: #FFF;
          border-radius: 20px;
          border-right: var(--color_theme) solid 2px;
          border-bottom: var(--color_theme) solid 2px;
        }
      }
    }
  }
}

.splide__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 300;
  img {
    height: auto;
    width: 2.8vw;
    @media (width < 896px) {
      width: 27px;
    }
  }
}
.splide__arrow--next {
  right: -0px;
}
.splide__arrow--prev {
  left: -0px;
}

.thumb_program {
  overflow: hidden;
  border-radius: 20px;
  aspect-ratio: 3 / 2;
  margin: -20px -20px 0;
  img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}

.hd_program,
.hd_goods {
  font-size: 2.4rem;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  line-height: 1.2em;
  letter-spacing: 0.1em;
  padding-bottom: 10px;
  position: relative;
  align-content: center;
  width: 100%;
  padding-top: 16px;
  word-break: keep-all;
  overflow-wrap: anywhere;
  &::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 0px;
  }
  &::before {
    content: "";
    display: block;
    position: absolute;
    bottom: -3px;
    left: 3px;
    width: 100%;
    height: 0px;
    @media (width < 896px) {
      bottom: -2px;
      left: 2px;
    }
  }
  .tsume {
    letter-spacing: -0.01em;
  }
}

.hd_program {
  color: var(--color_dark);
  text-shadow: 3px 3px 0px var(--color_deco);
  &::after {
    border-bottom: var(--color_dark) solid 3px;
  }
  &::before {
    border-bottom: var(--color_deco) solid 3px;
  }
  @media (width < 896px) {
    text-shadow: 2px 2px 0px var(--color_deco);
  }
}

.hd_goods {
  color: #FFF;
  text-shadow: 3px 3px 0px var(--color_dark);
  &::after {
    border-bottom: #FFF solid 3px;
  }
  &::before {
    border-bottom: var(--color_dark) solid 3px;
  }
  @media (width < 896px) {
    text-shadow: 2px 2px 0px var(--color_dark);
  }
  &.tsume {
    letter-spacing: -0.01em;
  }
}

.box_program_txt {
  align-content: center;
  width: 100%;
  padding-top: 16px;
}
.txt_sub{font-size: 1.2rem; margin-top: 10px;}
.txt_program {
  font-size: 1.6rem;
}

.txt_program_sub {
  font-size: 1.6rem;
  padding-top: 8px;
}
.txt_program_tag {
  font-size: 1.2rem;
	border: 1px solid #848484;
	padding: 5px;
	border-radius: 10px;
	margin-top: 15px;
	text-align: center;
}

.txt_goods {
  text-align: center;
  line-height: 1.6em;
  color: #FFF;
  padding-top: 10px;
  z-index: 2000;
  position: relative;
}

.txt_price {
  font-size: 2.4rem;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  line-height: 1.2em;
  letter-spacing: 0.1em;
  color: #FFF;
  text-shadow: 3px 3px 0px var(--color_dark);
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.zen{
  font-family: "Zen Maru Gothic", sans-serif;
}

.btn_detail {
  width: 100%;
  padding-top: 16px;
  a {
    display: block;
    background-color: var(--color_point);
    color: #FFF;
    text-align: center;
    padding: 14px 10px;
    font-size: 1.8rem;
    line-height: 1em;
    border-radius: 50px;
    position: relative;
    &:hover {
      background-color: var(--color_dark);
      opacity: 1;
    }
    .btn_detail_arrow {
      filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7430%) hue-rotate(85deg) brightness(102%) contrast(102%);
      transform: rotate(-90deg);
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      right: 14px;
      width: 24px;
    }
  }
}

.btn_place {
  width: 100%;
  padding-top: 22px;
  a {
    display: block;
    background-color: #FFF;
    color: var(--color_dark);
    text-align: left;
    padding: 14px 10px 14px 34px;
    font-size: 1.6rem;
    line-height: 1em;
    border-radius: 10px;
    position: relative;
    &:hover {
      background-color: var(--color_deco);
      opacity: 1;
    }
    .btn_detail_txt {
      line-height: 1.4em;
    }
    .btn_place_arrow {
      filter: brightness(0) saturate(100%) invert(21%) sepia(92%) saturate(2093%) hue-rotate(192deg) brightness(98%) contrast(93%);
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      left: 14px;
      width: 13px;
    }
  }
}

.btn_ticket {
  text-align: center;
  padding: 8vw 0 40px;
  @media (width < 480px) {
    padding: 30px 0 20px;
  }
  img {
    width: 90%;
    max-width: 1000px;
  }
}

.mt_goods {
  margin-top: -14vw;
  @media (width < 1000px) {
    margin-top: 0px;
  }
}

.mt_foods {
  margin-top: 7vw;
  @media (width < 480px) {
    margin-top: 40px;
  }
}


.area_footer {
  background-color: var(--color_dark);
  color: #FFF;
  padding: 0 20px 10vw;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  z-index: 2000;
  @media (width < 896px) {
    padding: 0 20px 140px;
  }

}

.block_footer {
  max-width: 1340px;
  margin: auto;
  padding-top: 4.7vw;
}

.footer_link {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px 7.46cqw;
  font-feature-settings: 'palt';
  @media (width < 480px) {
    gap: 20px 12px;
  }
  >li {
    @media (width < 480px) {
      width: calc((100% - 12px) / 2);
    }
  }
}

.copyright {
  font-size: clamp(1.2rem, 0.26vw + 1.103rem, 1.6rem);
  inline-size: fit-content;
  margin-inline: auto;
  margin-top: 40px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* fish animation
============================================ */
.fish01_vis {
  transform: translateX(16vw);
  @media (width < 896px) {
    transform: translateX(80px);
  }
}

.fish01 {
  position: fixed;
  bottom: 20%;
  left: -8vw;
  z-index: 1000;
  animation: swim 20s ease-in-out infinite;
  pointer-events: none;
  width: 6vw;
  min-width: 50px;
  transition: all 1s ease-out;
  @media (width < 896px) {
    left: -60px;
  }
  svg {
    width: 100%;
    overflow: visible;
  }
  .bf01 {
    animation: float-animation-01 8s ease-in-out infinite alternate;
  }
  .bf02 {
    animation: float-animation-02 10s ease-in-out infinite alternate;
  }
}
  
@keyframes float-animation-01 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(5px, -5px);
  }
  50% {
    transform: translate(-5px, 5px);
  }
  75% {
    transform: translate(5px, 5px);
  }
  100% {
    transform: translate(0, 0);
  }
}

@keyframes float-animation-02 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(-5px, 5px);
  }
  50% {
    transform: translate(5px, -5px);
  }
  75% {
    transform: translate(-5px, -5px);
  }
  100% {
    transform: translate(0, 0);
  }
}

.fish02_vis {
  transform: translateX(-20vw);
  @media (width < 896px) {
    transform: translateX(-120px);
  }
}

.fish02 {
  position: fixed;
  bottom: 20%;
  right: -16vw;
  z-index: 1010;
  pointer-events: none;
  width: 14vw;
  min-width: 100px;
  transition: all 1s ease-out;
  @media (width < 896px) {
    right: -110px;
  }
  svg {
    width: 100%;
    overflow: visible;
  }
}

.aji01 {
  animation: ajifloat-animation-01 7s ease-in-out infinite alternate;
}
.aji02 {
  animation: ajifloat-animation-02 9s ease-in-out infinite alternate;
}
.aji03 {
  animation: ajifloat-animation-03 8s ease-in-out infinite alternate;
}
.aji04 {
  animation: ajifloat-animation-01 10s ease-in-out infinite alternate;
}
.aji05 {
  animation: ajifloat-animation-02 6s ease-in-out infinite alternate;
}
.aji06 {
  animation: ajifloat-animation-03 11s ease-in-out infinite alternate;
}
.aji07 {
  animation: ajifloat-animation-01 7.5s ease-in-out infinite alternate;
}
.aji08 {
  animation: ajifloat-animation-02 9.5s ease-in-out infinite alternate;
}
.aji09 {
  animation: ajifloat-animation-03 8.5s ease-in-out infinite alternate;
}
.aji10 {
  animation: ajifloat-animation-01 10.5s ease-in-out infinite alternate;
}
.aji11 {
  animation: ajifloat-animation-02 6.5s ease-in-out infinite alternate;
}

@keyframes ajifloat-animation-01 {
  0% {
    transform: translate(5px, -5px);
  }
  25% {
    transform: translate(2px, 0px);
  }
  50% {
    transform: translate(5px, -5px);
  }
  75% {
    transform: translate(0px, -3px);
  }
  100% {
    transform: translate(5px, -5px);
  }
}

@keyframes ajifloat-animation-02 {
  0% {
    transform: translate(-5px, 5px);
  }
  25% {
    transform: translate(-5px, 5px);
  }
  50% {
    transform: translate(0px, -0px);
  }
  75% {
    transform: translate(-5px, 5px);
  }
  100% {
    transform: translate(-5px, 0);
  }
}
  
@keyframes ajifloat-animation-03 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(0px, -5px);
  }
  50% {
    transform: translate(5px, 5px);
  }
  75% {
    transform: translate(0px, 5px);
  }
  100% {
    transform: translate(0, 0);
  }
}



/* bubble animation
============================================ */
.bubble01_vis {
  animation: bubble-rise 5s linear infinite; 
}
.bubble01 {
  position: fixed;
  bottom: -20%;
  right: 12vw; 
  z-index: 900;
  pointer-events: none;
  animation-delay: 0.3s;
  width: 2vw;
  min-width: 24px;
  svg {
    width: 100%;
    overflow: visible;
    opacity: 0.5;
  }
  .bbl01-01 {
    animation: bubble-sway-01 0.5s ease-in-out infinite alternate;
    transform-origin: center center;
  }
  .bbl01-02 {
    animation: bubble-sway-02 0.6s ease-in-out infinite alternate;
    animation-delay: 0.1s;
    transform-origin: center center;
  }
  .bbl01-03 {
    animation: bubble-sway-03 0.7s ease-in-out infinite alternate;
    animation-delay: 0.2s;
    transform-origin: center center;
  }
}

@keyframes bubble-rise {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  40% {
    transform: translateY(0);
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    transform: translateY(-120vh); 
  }
}

@keyframes bubble-sway-01 {
  0% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-2px); }
}

@keyframes bubble-sway-02 {
  0% { transform: translateX(2px); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(2px); }
}

@keyframes bubble-sway-03 {
  0% { transform: translateX(-3px); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-3px); }
}


.bubble02_vis {
  animation: bubble-rise 5s linear infinite; 
}
.bubble02 {
  position: fixed;
  bottom: -20%;
  left: 12vw;
  z-index: 900;
  pointer-events: none;
  width: 2.9vw;
  min-width: 36px;
  svg {
    width: 100%;
    overflow: visible;
    opacity: 0.5;
  }
  .bbl02-01 {
    animation: bubble-sway-01 0.5s ease-in-out infinite alternate;
    transform-origin: center center;
    animation-delay: 0.3s;
  }
  .bbl02-02 {
    animation: bubble-sway-02 0.6s ease-in-out infinite alternate;
    transform-origin: center center;
    animation-delay: 0.4s;
  }
  .bbl02-03 {
    animation: bubble-sway-03 0.7s ease-in-out infinite alternate;
    transform-origin: center center;
    animation-delay: 0.5s;
  }
  .bbl02-04 {
    animation: bubble-sway-01 0.55s ease-in-out infinite alternate;
    transform-origin: center center;
    animation-delay: 0.6s;
  }
}

.translucent {
  opacity: 0.5;
}

.w_wide {
  max-width: 1340px;
  width: calc(100% - 40px);
  margin: auto;
  container-type: inline-size;
}

#wovn-translate-widget{
	

@media (width < 980px) {
	bottom: 120px;
	}
}
