@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');

#heading {
  margin-bottom: 0 !important;
}

#webpage_body {
  background: url(../img/bg-cover-2026.png);
  /* font-family: 'Kosugi Maru', sans-serif; */
}

.page_body {
  position: relative;
  font-size: 15px;
}

.page_body::after {
  content: "";
  background: url(../img/bg-footer-2026.jpg) #ca0915;
  width: 100%;
  display: block;
  background-size: contain;
  height: 4em;
}

.page_body img {
  vertical-align: bottom;
}

.page_body .sp {
  display: none;
}

.hd_area {
  position: relative;
  background: url(../img/bg-hero-2026.jpg) no-repeat;
}

/* .hd_area::before, */
.hd_area::after {
  content: "";
  position: absolute;
  width: 100%;
  aspect-ratio: 480 / 53;
  left: 0;
  right: 0;
  margin: 0 auto;
}

/* .hd_area::before {
  background: url(../img/hd_upper.jpg) no-repeat;
  background-size: contain;
} */

/* .hd_area::after {
  background: url(../img/hd_lower.jpg) no-repeat;
  background-size: contain;
  bottom: 0;
} */

.hd_img {
  position: relative;
}

.hd_img > span:nth-of-type(1):before {
  content: "";
  position: absolute;
  background: url(../img/bg_mark1.png) no-repeat;
  width: 33%;
  aspect-ratio: 617 / 207;
  background-size: contain;
  top: 6%;
  right: 24%;
  animation: sway1 5s infinite ease-in-out;
}

.hd_img > span:nth-of-type(2):before {
  content: "";
  position: absolute;
  background: url(../img/bg_mark2.png) no-repeat;
  width: 27%;
  aspect-ratio: 532 / 201;
  background-size: contain;
  bottom: 12%;
  right: 18%;
  animation: sway2 5s infinite ease-in-out;
}

@keyframes sway1 {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-30px);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes sway2 {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(30px);
  }
  100% {
    transform: translateX(0);
  }
}

.hd_img .hd_flex {
  max-width: 1280px;
  margin: 0 auto;
  /* padding: 3em 0; */
  display: flex;
  align-items: baseline;
  justify-content: space-evenly;
  position: relative;
  z-index: 100;
}

.hd_img .hd_flex div:nth-of-type(1) {
  width: 58%;
}

.hd_img .hd_flex div:nth-of-type(2) {
  width: 40%;
}

div:has(>img[src="./assets/img/kingashinnen_2026.png"]) {
  position: relative;
  display: inline-block;
  overflow: hidden;
}

div:has(>img[src="./assets/img/kingashinnen_2026.png"])::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.4);
  height: 100%;
  width: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: -160%;
  transform: skewX(-45deg) translateX(0);
  animation: bright 3s ease-in-out 2s infinite;
}

@keyframes bright {
  0% {
    transform: skewX(-45deg) translateX(0);
  }
  15% {
    transform: skewX(-45deg) translateX(320%);
  }
  100% {
    transform: skewX(-45deg) translateX(320%);
  }
}

img[src="./assets/img/haretta_2026.png"] {
  padding-bottom: 2em;
  animation: bounce 2s infinite;
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-15px);
  }
}

.hd_ttl {
  font-family: "Zen Maru Gothic", serif;
  /* background: #cf000f; */
  background: #ca0915;
  text-align: center;
  color: #fff;
  position: relative;
}

.hd_ttl > div {
  position: relative;
  padding: 2.4em 0 0;
}

.hd_ttl > div > span {
  display: inline-block;
  width: 100%;
  position: relative;
  z-index: 1;
}

.hd_ttl > div > span img {
  max-width: 229px;
  aspect-ratio: 229 / 83;
  padding: 0 1em;
  background: #ca0915;
  position: relative;
}

.hd_ttl > div::before,
.hd_ttl > div::after {
  content: "";
  position: absolute;
  background: #fff;
  background-size: contain;
  width: calc(50% - 10em);
  height: 6px;
  top: calc(50% + 1.2em);
  transform: translateY(-50%);
  border-radius: 50vh;
}

.hd_ttl > div::before {
  left: 1em;
}

.hd_ttl > div::after {
  right: 1em;
}

.hd_ttl p {
  padding: 2.4em 0;
  display: inline-block;
  position: relative;
}

.hd_ttl p img {
  max-width: 960px;
}

/* .hd_ttl p::before {
  content: "";
  position: absolute;
  background: url(../img/hd_ttl_kame.png) no-repeat;
  background-size: contain;
  width: 12em;
  max-width: 377px;
  aspect-ratio: 377 / 361;
  top: 4em;
  left: -12em;
} */

/* .hd_ttl p::after {
  content: "";
  position: absolute;
  background: url(../img/hd_ttl_tsuru.png) no-repeat;
  background-size: contain;
  width: 12em;
  max-width: 485px;
  aspect-ratio: 485 / 737;
  top: -1em;
  right: -12em;
} */

.hd_ttl p > span {
  display: block;
  position: relative;
  z-index: 2;
}

.hd_ttl p > span:nth-of-type(1) {
  font-size: 4em;
  font-weight: 500;
  filter: drop-shadow(0.05em 0.05em 0 #e9c457);
}

.hd_ttl p > span:nth-of-type(1) span {
  filter: drop-shadow(0.05em 0.05em 0 #cf000f);
}

.hd_ttl p > span:nth-of-type(1) span em {
  letter-spacing: 0.25em;
}

.hd_ttl p > span:nth-of-type(2) {
  font-size: 6em;
  font-weight: 900;
  margin: -1.2rem 0 0;
  filter: drop-shadow(0.05em 0.05em 0 #e9c457);
}

.hd_ttl p > span:nth-of-type(2) span {
  filter: drop-shadow(0.05em 0.05em 0 #cf000f);
}

.hd_ttl p > span:nth-of-type(2) span em {
  letter-spacing: -0.25em;
}

/* .closing {
  text-align: center;
  font-size: 30px;
  font-weight: 500;
  margin: 0 0 60px;
  position: relative;
  bottom: -45px;
} */

section {
  padding: 90px 0;
  position: relative;
}

section.bg_wht {
  position: relative;
  background: #fff;
  padding: 18em 0 6em;
}

/* section.bg_wht::before {
  content: "";
  position: absolute;
  background: url(../img/hd_upper.jpg) no-repeat;
  background-size: cover;
  width: 100%;
  aspect-ratio: 480 / 53;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
} */

section.bg_wht .box {
  width: 100%;
}

section.bg_wht .box::before {
  content: "";
  position: absolute;
  background: url(../img/hd_ume_left.png) no-repeat;
  background-size: cover;
  width: 34%;
  max-width: 480px;
  aspect-ratio: 790 / 903;
  top: -15em;
  left: -1em;
}

section.bg_wht .box::after {
  content: "";
  position: absolute;
  background: url(../img/hd_ume_right.png) no-repeat;
  background-size: contain;
  width: 38%;
  max-width: 600px;
  aspect-ratio: 307 / 236;
  top: -15em;
  right: -1em;
  bottom: auto;
}

.box {
  position: relative;
  width: 1080px;
  margin: 0 auto;
}

.box::before {
  content: "";
  position: absolute;
  background: url(../img/bg_wave2.png) no-repeat;
  background-size: cover;
  width: 50%;
  aspect-ratio: 1841 / 1139;
  top: 12em;
  left: -6em;
}

.box::after {
  content: "";
  position: absolute;
  background: url(../img/bg_wave1.png) no-repeat;
  background-size: cover;
  width: 50%;
  aspect-ratio: 1564 / 566;
  bottom: 0em;
  right: -6em;
}

.summary {
  position: relative;
  z-index: 1;
  text-align: center;
  font-size: 36px;
  line-height: 3em;
  margin: 0 auto 2em !important;
}

.summary span {
  display: block;
  filter: drop-shadow(0.1em 0.1em 0px #fff);
  font-weight: 600;
}

/* アニメーション前 */
.u-fade-type-up{
  transform: translateY(60px);
  opacity: 0;
}

/* トリガー発火でis-activeを付与 */
.u-fade-type-up.is-active{
  transition: 1.5s;
  transform: translateY(0);
  opacity: 1;
}

img[src="./assets/img/bsn.svg"] {
  width: 5em;
  padding: 0 0.5em 0 0;
  vertical-align: text-bottom;
}

.link_gp {
  display: flex;
  justify-content: space-evenly;
  width: 1080px;
  margin: 3em auto 0;
}

.link_gp li {
  width: 40%;
  text-align: center;
  font-size: 18px;
}

.link_gp a {
  display: block;
  color: #fff !important;
}

.link_gp a > span {
  display: block;
  background: url(../img/line.jpg);
  background-size: contain;
  padding: 0.25em 0;
}

.link_gp a > span span {
  filter: drop-shadow(1px 1px 2px #d81a0e);
}

/* アニメーション前 */
.slideIn-type-left {
  transform: translateX(-60px);
  opacity: 0;
}

/* アニメーション前 */
.slideIn-type-right {
  transform: translateX(60px);
  opacity: 0;
}

/* トリガー発火でis-activeを付与 */
.slideIn-type-left.is-active,
.slideIn-type-right.is-active {
  transition: 1.5s;
  transform: translateX(0);
  opacity: 1;
}

.btn_form {
  display: block;
  color: #ffffff;
  font-size: 27px;
  text-align: center;
  margin: 60px auto 0;
  padding: 0.5em 0;
  width: 16em;
  background: url(../img/line.jpg);
  border-radius: 100vh;
  background-size: contain;
}

.btn_form span {
  background: #d81a0e;
  border-radius: 100vh;
  width: 15em;
  display: block;
  margin: 0 auto;
  padding: 1em 0;
}

h2 {
  margin: 0 0 4em;
  text-align: center;
}

h2 img {
  width: 90%;
  max-width: 960px;
}

.box > div {
  margin: 0 auto 4em;
  position: relative;
  z-index: 10;
}

#tv_nenga .summary,
#radio_nenga .summary {
  font-size: 24px;
  filter: drop-shadow(0.1em 0.1em 0.1em #ccc);
}

.yt {
  position: relative;
  width: 960px;
  aspect-ratio: 16/9;
  background: url(../img/line.jpg);
  background-size: contain;
}

.yt iframe {
  position: absolute;
  width: 95%;
  height: 95%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.sample_link {
  text-align: center;
}

.sample_link ul {
  display: flex;
  justify-content: center;
}

.sample_link li:nth-of-type(1) {
  margin: 0 2em 0 0;
}

.sample_link a {
  display: inline-block;
  background: #d81a0e;
  color: #fff;
  padding: 1em 2em;
  font-size: 1.4em;
  border-radius: 1em;
}

.course h3 {
  font-family: 'Kosugi Maru', sans-serif;
  font-size: 48px;
  position: relative;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}

.course h3::before {
  content: "";
  background: url(../img/ico_course.png) no-repeat;
  width: 180px;
  position: absolute;
  background-size: contain;
  aspect-ratio: 173/95;
  transform: rotate(-15deg);
  left: 6.5em;
  top: 0.5em;
}

.course h3 span {
  position: relative;
  filter: drop-shadow(2px 3px 0px #fff);
}

/* .course div {
  width: 720px;
  margin: 30px auto 0;
} */

#tv_nenga .course_box {
  border: 0.5em solid #DEB536;
  background: #fff;
  max-width: 840px;
  margin: 2em auto 0;
  padding: 2em;
  box-sizing: border-box;
  filter: drop-shadow(0.5em 0.5em 0.25em #ccc);
}

#tv_nenga .course_item {
  margin: 0 0 2em;
}

#tv_nenga .course_item:last-child {
  margin: 0;
}

#tv_nenga .course_item > div {
  display: flex;
  align-items: flex-start;
  margin: 0 0 1em;
}

#tv_nenga .course_item h4 {
  background: #d81a0e;
  color: #fff;
  font-weight: 600;
  padding: 1em 2em;
  filter: drop-shadow(0.4em 0.4em 0 #e8ca76);
}

#tv_nenga .course_item h4 span {
  font-size: 1.8em;
}

#tv_nenga .course_item > div > div {
  font-size: 1.8em;
  color: #d81a0e;
  margin: 0 0 0 1em;
  font-weight: 600;
}

.course_item > div > div span {
  display: block;
  font-size: 0.9em;
}

#tv_nenga .course_item li {
  display: flex;
  align-items: center;
  position: relative;
  font-size: 1.6em;
  padding: 0 0 0 1.5em;
  margin: 0 0 0.25em;
}

#tv_nenga .course_item li::before {
  position: absolute;
  width: 1.25em;
  height: 1.25em;
  left: 0;
  background: #d81a0e;
  border-radius: 50%;
  text-align: center;
  line-height: 1.25em;
  color: #fff;
}

#tv_nenga .course_item li:nth-of-type(1):before {
  content: "1";
}

#tv_nenga .course_item li:nth-of-type(2):before {
  content: "2";
}

#tv_nenga .course_item li:nth-of-type(3):before {
  content: "3";
}

#tv_nenga .course_item li p {
  font-weight: 600;
}

#tv_nenga .course_item li p:nth-of-type(1) {
  width: 8em;
}

#tv_nenga .course_item li p:nth-of-type(1) span {
  font-size: 0.9em;
}

#tv_nenga .course_item li .accent {
    background: #d81a0e;
    color: #fff;
    padding: 0.25em 0.5em;
    display: inline-block;
    font-size: .9em;
}

#tv_nenga .course_item .a-time {
    font-size: .75em;
}

#tv_nenga .course_item .honsu {
  font-size: 1.6em;
  font-weight: 600;
}

#tv_nenga .course_item .add_txt {
  margin: 0.5em 0 0;
}

.deadline {
  /* background: #d81a0e; */
  background: #b18700;
  text-align: center;
  color: #fff;
  font-weight: 600;
  margin: 2em auto 0;
  max-width: 840px;
  padding: 1em 0;
  filter: drop-shadow(0.5em 0.5em 0.25em #ccc);
}

.deadline span {
  font-size: 1.6em;
}

#radio_nenga .course_box {
  max-width: 840px;
  margin: 2em auto 0;
}

#radio_nenga .course_priod {
  border: 0.5em solid #DEB536;
  background: #fff;
  padding: 0.75em 0;
  box-sizing: border-box;
  filter: drop-shadow(0.5em 0.5em 0.25em #ccc);
  text-align: center;
}

#radio_nenga .course_priod span {
  font-size: 1.8em;
  font-weight: 600;
  color: #d81a0e;
}

#radio_nenga .course_detail {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2em 0 0;
}

#radio_nenga .course_detail > div {
  background: url(../img/radio_course_head.png) no-repeat;
  background-size: contain;
  text-align: center;
  width: 7em;
  height: 7em;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 1em 0 0;
}

#radio_nenga .course_detail > div span {
  line-height: 1.25em;
  font-size: 1.25em;
  font-weight: 600;
}

#radio_nenga .course_detail ul {
  font-weight: 600;
  font-size: 1.6em;
  filter: drop-shadow(0.1em 0.1em 0.1em #ccc);
}

#radio_nenga .course_detail li {
  position: relative;
  padding: 0 0 0 1.75em;
  margin: 0 0 0.5em;
  filter: drop-shadow(0.1em 0.1em 0px #fff);
}

#radio_nenga .course_detail li:last-child {
  margin: 0;
}

#radio_nenga .course_detail li::before {
  position: absolute;
  width: 1.25em;
  height: 1.25em;
  left: 0;
  background: #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 1.25em;
  color: #d81a0e;
  border: 2px solid #DEB536;
}

#radio_nenga .course_detail li:nth-of-type(1):before {
  content: "1";
}

#radio_nenga .course_detail li:nth-of-type(2):before {
  content: "2";
}

.sample {
  width: 50%;
  margin: 0 auto;
  background: url(../img/line.jpg);
  padding: 2em 2em 1.75em 2em;
  border-radius: 100vh;
  background-size: contain;
}

audio {
  width: 100%;
}

@media screen and (max-width: 899px) {
  #webpage_body {
    overflow: hidden;
    background-size: contain;
    margin: 0 0 3em;
  }

  .page_body {
    font-size: 12px;
  }

  .page_body::after {
    background-size: cover;
  }

  .page_body .pc {
    display: none;
  }

  .page_body .sp {
    display: block;
  }

  .hd_img .hd_flex {
    padding: 2em 0;
  }

  img[src="./assets/img/haretta_2026.png"] {
    padding-bottom: 0;
  }

  @keyframes bounce {
    0%, 100% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(-4vw);
    }
  }

  @keyframes sway1_sp {
    0% {
      transform: translateX(0);
    }
    50% {
      transform: translateX(-6vw);
    }
    100% {
      transform: translateX(0);
    }
  }

  @keyframes sway2_sp {
    0% {
      transform: translateX(0);
    }
    50% {
      transform: translateX(6vw);
    }
    100% {
      transform: translateX(0);
    }
  }

  .hd_ttl > div::before,
  .hd_ttl > div::after {
    width: calc(50% - 6em);
    height: 3px;
  }

  .hd_ttl > div > span img {
    max-width: 25%;
  }

  .hd_ttl p {
    padding: 2em 0.5em;
  }

  .hd_ttl p img {
    width: 96%;
  }

  .hd_ttl p > span:nth-of-type(1) {
    font-size: 6vw;
    filter: drop-shadow(0.1em 0.1em 0 #e9c457);
  }

  .hd_ttl p > span:nth-of-type(1) span {
    filter: drop-shadow(0.1em 0.1em 0 #cf000f);
  }

  .hd_ttl p > span:nth-of-type(2) {
    font-size: 10vw;
    margin: 0;
    filter: drop-shadow(0.1em 0.1em 0 #e9c457);
  }

  .hd_ttl p > span:nth-of-type(2) span {
    filter: drop-shadow(0.1em 0.1em 0 #cf000f);
  }

  .hd_ttl p::before {
    width: 6em;
    top: 1em;
    left: -2em;
  }

  .hd_ttl p::after {
    width: 6em;
    right: -4em;
  }

  /* .closing {
    font-size: 5vw;
    margin: 0 0 10vw;
    bottom: -7.5vw;
  } */

  section.bg_wht {
    padding: 12em 0 4em;
  }

  section.bg_wht .box::before,
  section.bg_wht .box::after {
    top: -11em;
  }

  section {
    padding: 4em 0;
  }

  .box {
    width: auto;
  }

  .box::before {
    width: 100%;
    left: -2em;
  }

  .box::after {
    width: 100%;
    right: -2em;
  }

  .summary {
    font-size: 1.8em;
    line-height: 2em;
  }

  img[src="./assets/img/bsn.svg"] {
    width: 4em;
  }

  .link_gp {
    display: block;
    margin: 2em auto 0;
    width: 80%;
  }

  .link_gp li {
    width: 100%;
    font-size: 4vw;
  }

  .link_gp li:first-child {
    margin: 0 0 1em;
  }

  .sample_link ul {
    display: block;
  }

  .sample_link li {
    width: 90%;
    margin: 0 auto;
  }

  .sample_link li:nth-of-type(1) {
    margin: 0 auto 1.5em;
  }

  .sample_link a {
    display: block;
    font-size: 1.2em;
  }

  #tv_nenga .course_box {
    margin: 2em 1em 0;
    padding: 1em;
  }

  #tv_nenga .course_item > div {
    display: block;
  }

  #tv_nenga .course_item h4 {
    margin: 0 0 1em;
  }

  #tv_nenga .course_item li {
    align-items: baseline;
    flex-wrap: wrap;
    margin: 0 0 0.5em;
  }

  #tv_nenga .course_item .honsu {
    padding: 0 0 0 1.125em;
  }

  .deadline {
    margin: 2em 1em 0;
  }

  #radio_nenga .course_detail {
    margin: 2em 1em 0;
    flex-wrap: wrap;
  }

  #radio_nenga .course_detail > div {
    margin: 0 0 1em;
  }

  .btn_form {
    display: block;
    font-size: 5.5vw;
    margin: 8vw auto 0;
    width: 14em;
  }
  .btn_form span {
    width: 13em;
    padding: 0.5em 0;
  }
  h2 {
    margin: 0 0 8vw;
  }
  #tv_nenga .summary,
  #radio_nenga .summary {
    font-size: 4.2vw;
    margin: 0 1rem 2em !important;
  }
  .yt {
    width: 90%;
  }
  .course h3 {
    font-size: 8vw;
    height: 18vw;
  }
  .course h3::before {
    width: 30vw;
    left: 10vw;
    top: 0.25em;
  }
  .course div {
    width: auto;
    margin: 6vw 2vw 0;
  }
  .sample {
    width: 75%;
    padding: 1em 1em 0.75em 1em;
  }
  /* アニメーション前 */
  .slideIn-type-left {
    transform: translateX(-6vw);
    opacity: 0;
  }
  /* アニメーション前 */
  .slideIn-type-right {
    transform: translateX(6vw);
    opacity: 0;
  }
}