@charset "UTF-8";
/* CSS INFORMATION =====================================================
File name : top.css
Description : トップページ
===================================================================== */
/* ========================================================
    intro
======================================================== */
.intro {
  position: relative;
  width: 100%;
  padding: 16rem 0;
}
.intro::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #d320ad;
  z-index: -2;
}
.intro_column {
  position: relative;
  width: 115.3846153846%;
  margin: 0 -7.6923076923%;
}
@media screen and (min-width: 768px) {
  .intro_column {
    width: 90%;
    margin: 0 auto;
  }
}
.intro_ttl {
  position: relative;
  width: 94.6666666667%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .intro_ttl {
    width: 83.3333333333%;
  }
}
.intro_img {
  position: relative;
}
.intro_img figure {
  position: relative;
  width: 72.8%;
  margin: 12rem auto 0 auto;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .intro_img figure {
    width: 71.9166666667%;
    margin: 5.4545454545vw auto 0 auto;
  }
}
@media screen and (min-width: 1100px) {
  .intro_img figure {
    margin: 6rem auto 0 auto;
  }
}
.intro_subttl {
  position: relative;
  width: 86.6666666667%;
  margin: 6rem auto 0 auto;
}
@media screen and (min-width: 768px) {
  .intro_subttl {
    width: 100%;
    margin: 5.4545454545vw auto 0 auto;
  }
}
@media screen and (min-width: 1100px) {
  .intro_subttl {
    margin: 6rem auto 0 auto;
  }
}
.intro_text {
  position: relative;
  width: 100%;
  margin-top: 12rem;
}
@media screen and (min-width: 768px) {
  .intro_text {
    margin-top: 9.0909090909vw;
  }
}
@media screen and (min-width: 1100px) {
  .intro_text {
    margin-top: 10rem;
  }
}

.sound-wave {
  position: absolute;
  top: 50%;
  left: 0;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  height: 1px;
}
.sound-wave::before {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  border-top: 1px solid #ffffff;
  z-index: -1;
}
.sound-wave > * {
  position: absolute;
  top: 0;
  display: flex;
}
.sound-wave-l {
  left: 0;
  margin-left: 2.6666666667%;
}
.sound-wave-r {
  right: 0;
  margin-right: 2.6666666667%;
}
@media screen and (min-width: 768px) {
  .sound-wave-l {
    margin-left: 7.8125%;
  }
  .sound-wave-r {
    margin-right: 7.8125%;
  }
}
.sound-wave-bar {
  position: relative;
  width: 0.5rem;
  height: 0.6rem;
  background-color: #d320ad;
  border-left: 1px solid #ffffff;
  border-right: 1px solid #ffffff;
  margin-right: 0.4rem;
  transform-origin: top center;
  transform: scaleY(1);
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
}
.sound-wave-bar:first-child, .sound-wave-bar:last-child {
  border-top: 1px solid #ffffff;
}
.sound-wave-bar:first-child, .sound-wave-bar:last-child, .sound-wave-bar:nth-child(3), .sound-wave-bar:nth-child(6) {
  bottom: calc(0.3rem + 2px);
  transform-origin: bottom center;
}
.sound-wave-bar:nth-child(4n) {
  background: linear-gradient(to bottom, #d320ad 92%, #d320ad 92%, #ffffff 100%);
  animation-name: bar-scale-xl;
  animation-duration: 1s;
}
.sound-wave-bar:nth-child(4) {
  animation-duration: 1.15s;
}
.sound-wave-bar:nth-child(3) {
  background: linear-gradient(to top, #d320ad 92%, #d320ad 92%, #ffffff 100%);
  animation-name: bar-scale-lg;
  animation-duration: 0.8s;
}
.sound-wave-bar:nth-child(6) {
  background: linear-gradient(to top, #d320ad 92%, #d320ad 92%, #ffffff 100%);
  animation-name: bar-scale-md;
  animation-duration: 0.85s;
}
.sound-wave-bar:nth-child(2), .sound-wave-bar:nth-child(5), .sound-wave-bar:nth-child(7), .sound-wave-bar:nth-child(9) {
  background: linear-gradient(to bottom, #d320ad 92%, #d320ad 92%, #ffffff 100%);
  animation-name: bar-scale-sm;
  animation-duration: 0.9s;
}

@keyframes bar-scale-sm {
  0%, 50% {
    transform: scaleY(1);
  }
  25% {
    transform: scaleY(6);
  }
  75% {
    transform: scaleY(4);
  }
}
@keyframes bar-scale-md {
  0%, 50% {
    transform: scaleY(2);
  }
  25% {
    transform: scaleY(6);
  }
  75% {
    transform: scaleY(5);
  }
}
@keyframes bar-scale-lg {
  0%, 50% {
    transform: scaleY(8);
  }
  25% {
    transform: scaleY(4);
  }
  75% {
    transform: scaleY(6);
  }
}
@keyframes bar-scale-xl {
  0%, 50% {
    transform: scaleY(1);
  }
  25% {
    transform: scaleY(7);
  }
  75% {
    transform: scaleY(11);
  }
}
/* ========================================================
    program
======================================================== */
.program {
  position: relative;
  width: 100%;
  padding: 16rem 0 32rem 0;
}
@media screen and (min-width: 768px) {
  .program {
    padding: 16rem 0 24rem 0;
  }
}
.program_column {
  position: relative;
  width: 109.2307692308%;
  margin: 0 -4.6153846154%;
}
@media screen and (min-width: 768px) {
  .program_column {
    width: 100%;
    margin: 0 auto;
  }
}
.program_list {
  position: relative;
  width: 100%;
}
.program_list > li {
  margin-top: 10rem;
}
@media screen and (min-width: 768px) {
  .program_list > li {
    margin-top: 9rem;
  }
}
.program_list > li:first-child {
  margin-top: 4rem;
}
@media screen and (min-width: 768px) {
  .program_list > li:first-child {
    margin-top: 3rem;
  }
}
.program_item {
  position: relative;
  display: block;
  width: 100%;
  padding: 8rem 0;
  border-radius: 0 3rem 3rem 3rem;
  background: rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) {
  .program_item {
    display: grid;
    grid-template-columns: 66.6666666667% 33.3333333333%;
    grid-template-rows: auto auto;
    grid-template-areas: "program_ttl program_img" "program_text program_img";
    padding: 4rem 0;
  }
}
.program_item.root .program_label {
  background-color: #ff008e;
}
.program_item.root .program_ttl::before {
  aspect-ratio: 650/162;
  background-image: url(../images/top/program_bg01_sp.png);
}
@media screen and (min-width: 768px) {
  .program_item.root .program_ttl::before {
    width: 61.7105263158%;
    aspect-ratio: 469/102;
    background-image: url(../images/top/program_bg01_pc.png);
  }
}
.program_item.root .program_text::before {
  background-color: #ff008e;
}
.program_item.root .program_btn > a {
  border: 2px solid #ff008e;
}
.program_item.root .program_btn > a > span {
  color: #ff008e;
}
.program_item.root .program_btn > a > span.marquee {
  text-shadow: #ff008e 4.5em 0, #ff008e -4.5em 0, #ff008e -9em 0, #ff008e -13.5em 0;
}
.program_item.live .program_label {
  background-color: #0168b7;
}
.program_item.live .program_ttl::before {
  aspect-ratio: 650/207;
  background-image: url(../images/top/program_bg02_sp.png);
}
@media screen and (min-width: 768px) {
  .program_item.live .program_ttl::before {
    width: 45.2631578947%;
    aspect-ratio: 344/98;
    background-image: url(../images/top/program_bg02_pc.png);
  }
}
.program_item.live .program_text::before {
  background-color: #0168b7;
}
.program_item.live .program_btn > a {
  border: 2px solid #0168b7;
}
.program_item.live .program_btn > a > span {
  color: #0168b7;
}
.program_item.live .program_btn > a > span.marquee {
  text-shadow: #0168b7 4.5em 0, #0168b7 -4.5em 0, #0168b7 -9em 0, #0168b7 -13.5em 0;
}
.program_label {
  position: absolute;
  left: 0;
  top: -4rem;
  display: block;
  padding: 0 3rem;
  color: #ffffff;
  font-style: normal;
  font-size: 4rem;
  font-weight: 700;
  line-height: 7rem;
}
@media screen and (min-width: 768px) {
  .program_label {
    top: -3rem;
    font-size: 2.5454545455vw;
    line-height: 5rem;
  }
}
@media screen and (min-width: 1100px) {
  .program_label {
    font-size: 2.8rem;
  }
}
.program_ttl {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 91.5492957746%;
  margin: 0 auto 6rem auto;
  padding-left: 0;
}
@media screen and (min-width: 768px) {
  .program_ttl {
    grid-area: program_ttl;
    flex-direction: row;
    width: 95%;
    margin: 0 auto 5.2631578947% 0;
    padding-left: 5%;
  }
}
.program_ttl::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  width: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
  transform: translateY(-50%);
}
@media screen and (min-width: 768px) {
  .program_ttl::before {
    left: 2.6315789474%;
  }
}
.program_ttl > span {
  width: 100%;
  font-style: normal;
  font-size: 6.5rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .program_ttl > span {
    font-size: 4.5454545455vw;
    text-align: left;
    text-indent: -0.5em;
  }
}
@media screen and (min-width: 1100px) {
  .program_ttl > span {
    font-size: 5rem;
  }
}
.program_ttl > span > small {
  font-size: 5rem;
  font-weight: 500;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .program_ttl > span > small {
    font-size: 4.5454545455vw;
    text-indent: 0;
  }
}
@media screen and (min-width: 1100px) {
  .program_ttl > span > small {
    font-size: 5rem;
  }
}
.program_img {
  position: relative;
  width: 64.7887323944%;
  margin: 0 auto 6rem auto;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .program_img {
    grid-area: program_img;
    width: 90%;
    margin: 0 auto 0 0;
  }
}
.program_img a {
  display: block;
}
@media screen and (min-width: 768px) {
  .program_img a:hover {
    opacity: 1;
  }
}
.program_text {
  position: relative;
  width: 100%;
  padding: 6rem 11.2676056338%;
}
@media screen and (min-width: 768px) {
  .program_text {
    grid-area: program_text;
    width: 95%;
    padding: 5.2631578947% 0 calc(5.2631578947% + 7rem) 13.1578947368%;
  }
}
.program_text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 1px;
}
@media screen and (min-width: 768px) {
  .program_text::before {
    width: 157.8947368421%;
  }
}
.program_btn {
  position: relative;
  width: 83.0985915493%;
  aspect-ratio: 590/120;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .program_btn {
    position: absolute;
    left: 8.3333333333%;
    bottom: 4rem;
    width: 30%;
    min-width: 360px;
    aspect-ratio: 360/70;
    margin: 0;
  }
}
.program_btn > a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  height: 100%;
  border-radius: 12rem;
  background-color: transparent;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .program_btn > a {
    border-radius: 7rem;
  }
}
@media screen and (min-width: 768px) {
  .program_btn > a:hover {
    opacity: 1;
  }
}
@media screen and (min-width: 768px) {
  .program_btn > a:hover > span.text {
    opacity: 0;
  }
}
@media screen and (min-width: 768px) {
  .program_btn > a:hover > span.marquee {
    animation-play-state: running;
    opacity: 1;
  }
}
.program_btn > a > span {
  position: absolute;
  display: grid;
  inset: 0;
  place-content: center;
  place-items: center;
  font-size: 4.6rem;
  font-weight: 900;
  transition: opacity 0.2s ease;
}
@media screen and (min-width: 768px) {
  .program_btn > a > span {
    font-size: 2.4rem;
  }
}
.program_btn > a > span.text {
  opacity: 1;
}
.program_btn > a > span.marquee {
  position: relative;
  animation: marquee 1s linear infinite;
  animation-play-state: paused;
  opacity: 0;
}

@keyframes marquee {
  0% {
    transform: translateX(0em);
  }
  100% {
    transform: translateX(4.5em);
  }
}/*# sourceMappingURL=top.css.map */