@charset "UTF-8";
/*------------------------------------------------------------
	サイト幅でセンタリング
------------------------------------------------------------*/
/*------------------------------------------------------------
	breakpoint
------------------------------------------------------------*/
/*------------------------------------------------------------
	フォント
------------------------------------------------------------*/
/*------------------------------------------------------------
	clearfix
------------------------------------------------------------*/
/*------------------------------------------------------------
	flex
------------------------------------------------------------*/
/*------------------------------------------------------------
	Other
------------------------------------------------------------*/
/*------------------------------------------------------------
	トップページ
------------------------------------------------------------*/
#top {
  background: #E2E2E2;
}
#top .mainVisual {
  height: 95rem;
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 851px) and (max-width: 1060px) {
  #top .mainVisual {
    height: 127rem;
  }
}
#top .mainVisual .logo_container {
  position: absolute;
  top: 2.1rem;
  left: 50%;
  transform: translateX(-50%);
  width: 23.2rem;
  height: 100%;
  z-index: 3;
}
#top .mainVisual .logo_container img {
  width: 100%;
  object-fit: cover;
}
@media screen and (max-width: 850px) {
  #top .mainVisual .logo_container {
    width: 11.2rem;
    left: 0;
    top: 1.2rem;
    transform: none;
  }
}
#top .mainVisual .bk_img {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 100%;
  height: -webkit-fill-available;
}
#top .mainVisual .bk_img img {
  min-width: 100%;
  object-fit: cover;
  height: -webkit-fill-available;
}
#top .mainVisual .run1_img {
  position: absolute;
  top: 0;
  left: 0;
  width: 103.7rem;
  z-index: 3;
}
@media screen and (min-width: 851px) and (max-width: 1440px) {
  #top .mainVisual .run1_img {
    width: 65rem;
    height: 78rem;
    bottom: 0;
    top: auto;
    transform: translateX(-47%);
  }
  #top .mainVisual .run1_img img {
    width: 100%;
    object-fit: cover;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .run1_img {
    width: 48rem;
    height: 56rem;
    bottom: 0;
    top: auto;
    transform: translateX(-47%);
  }
}
@media screen and (max-width: 850px) and (min-width: 480px) {
  #top .mainVisual .run1_img {
    width: 40rem;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .run1_img img {
    width: 100%;
    object-fit: cover;
  }
}
#top .mainVisual .run2_img {
  position: absolute;
  top: 0;
  right: 0;
  width: 69rem;
  z-index: 1;
}
@media screen and (min-width: 851px) and (max-width: 1440px) {
  #top .mainVisual .run2_img {
    width: 57rem;
  }
  #top .mainVisual .run2_img img {
    width: 100%;
    object-fit: cover;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .run2_img {
    width: 34.1rem;
    transform: translateX(21%);
  }
}
@media screen and (max-width: 850px) and (min-width: 480px) {
  #top .mainVisual .run2_img {
    width: 25rem;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .run2_img img {
    width: 100%;
    object-fit: cover;
  }
}
#top .mainVisual .redline_img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
  top: 17rem;
}
#top .mainVisual .redline_img img {
  width: 100%;
  object-fit: cover;
  opacity: 0.8;
}
#top .mainVisual .message_container {
  position: absolute;
  top: 33rem;
  left: 35%;
  width: fit-content;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 851px) and (max-width: 1440px) {
  #top .mainVisual .message_container {
    top: 18rem;
    left: 30%;
  }
}
@media screen and (min-width: 851px) and (max-width: 1060px) {
  #top .mainVisual .message_container {
    top: 18rem;
    left: 13%;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container {
    top: 16.8rem;
    left: auto;
    padding: 0 3rem;
    gap: 0.76rem;
  }
}
#top .mainVisual .message_container {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
#top .mainVisual .message_container .sec_img {
  width: 37.5rem;
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container .sec_img {
    width: 26.3rem;
  }
}
@media screen and (max-width: 850px) and (min-width: 480px) {
  #top .mainVisual .message_container .sec_img {
    width: 20rem;
  }
}
#top .mainVisual .message_container .sec_img img {
  width: 100%;
  object-fit: cover;
}
#top .mainVisual .message_container .message_img {
  width: 81.1rem;
}
#top .mainVisual .message_container .message_img img {
  width: 100%;
  object-fit: cover;
}
@media screen and (min-width: 851px) and (max-width: 1440px) {
  #top .mainVisual .message_container .message_img {
    width: 50rem;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container .message_img {
    width: 28.2rem;
  }
}
#top .mainVisual .message_container .message_text_container {
  display: flex;
  flex-direction: column;
  gap: 0.216rem;
  width: fit-content;
}
#top .mainVisual .message_container .message_text_container .message_text {
  background: #0D1852;
  font-size: 2.8rem;
  font-weight: bold;
  color: #fff;
  line-height: 1.5;
  padding: 0 0.6rem;
  width: 92.2rem;
}
@media screen and (min-width: 851px) and (max-width: 1440px) {
  #top .mainVisual .message_container .message_text_container .message_text {
    width: fit-content;
  }
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container .message_text_container .message_text {
    width: fit-content;
    font-size: 1.9rem;
  }
}
#top .mainVisual .message_container .message_text_container .message_text .message_text_inner {
  display: block;
  transform: skewX(-12deg);
  font-feature-settings: "palt";
  letter-spacing: -0.02rem;
}
#top .mainVisual .message_container .message_text_container .message_text .red_focus {
  color: #CF131C;
}
#top .mainVisual .message_container .button_container {
  display: flex;
  gap: 1rem;
  font-size: 2rem;
  font-weight: 700;
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container .button_container {
    flex-direction: column;
    font-size: 1.4rem;
  }
}
#top .mainVisual .message_container .button_container .contact_scroll_button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  background: #CF131C;
  color: #fff;
  padding: 1.4rem 3rem;
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container .button_container .contact_scroll_button {
    padding: 1rem 2rem;
    width: fit-content;
  }
}
#top .mainVisual .message_container .button_container .member_scroll_button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  background: #343434;
  color: #fff;
  padding: 1.4rem 3rem;
}
@media screen and (max-width: 850px) {
  #top .mainVisual .message_container .button_container .member_scroll_button {
    padding: 1rem 2rem;
    width: fit-content;
  }
}
#top .mainVisual .scroll_button {
  position: absolute;
  top: 75rem;
  left: 50%;
  transform: translateX(-50%);
  width: 4.6rem;
  text-align: center;
}
@media screen and (min-width: 851px) and (max-width: 1440px) {
  #top .mainVisual .scroll_button {
    top: 86rem;
  }
}
#top .mainVisual .scroll_button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#top .movie_container {
  display: flex;
  justify-content: center;
  background: #343434;
  max-height: 72rem;
}
#top .movie_container video {
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 480px) {
  #top .movie_container video {
    max-height: 72rem;
  }
}
#top .about_container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 12.4rem 9.4rem;
  position: relative;
  max-width: 95%;
  margin-inline: auto;
}
@media screen and (max-width: 850px) {
  #top .about_container {
    padding-block: 5.4rem 14rem;
  }
}
#top .about_container .about_title {
  font-size: 4.8rem;
  font-weight: bold;
  text-align: center;
  transform: skewX(-8deg);
  z-index: 1;
}
@media screen and (max-width: 850px) {
  #top .about_container .about_title {
    font-size: 2.4rem;
  }
}
#top .about_container .about_text {
  width: 91.2rem;
  max-width: 90%;
  margin-inline: auto;
  margin-top: 7.93rem;
  font-size: 1.8rem;
  line-height: 1.5;
  font-weight: 500;
  z-index: 1;
  letter-spacing: 0.3rem;
}
@media screen and (max-width: 850px) {
  #top .about_container .about_text {
    margin-top: 4.7rem;
    font-size: 1.4rem;
  }
}
#top .about_container .about_img {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 106rem;
  max-width: 100%;
  z-index: 0;
  object-fit: cover;
  opacity: 0.6;
}
@media screen and (max-width: 850px) {
  #top .about_container .about_img {
    top: 17rem;
  }
}
#top .concept_container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-block: calc(26.6141732283vw + 9.4rem - 13rem) calc(26.6141732283vw + 14rem);
  position: relative;
  background: #343434;
}
#top .concept_container .concept_bk_img1 {
  position: absolute;
  transform: translateY(calc(-100% + 10rem));
  top: 0;
  left: 0;
  width: 100%;
  z-index: 0;
  object-fit: cover;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_bk_img1 {
    transform: translateY(calc(-100% + 6rem));
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_bk_img1 {
    transform: translateY(calc(-100% + 3rem));
  }
}
#top .concept_container .concept_bk_img2 {
  position: absolute;
  transform: translateY(calc(100% - 3rem));
  bottom: 0;
  right: 0;
  width: 100%;
  z-index: 0;
  object-fit: cover;
}
#top .concept_container .concept_title {
  font-size: 9.6rem;
  font-weight: 700;
  color: #fff;
  z-index: 1;
  text-align: center;
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_title {
    font-size: 6.4rem;
  }
}
#top .concept_container .concept_subtitle {
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  z-index: 1;
  text-align: center;
}
#top .concept_container .concept_main_content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  margin-top: 9.34rem;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_main_content {
    gap: 2rem;
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content {
    grid-template-columns: 1fr;
    grid-template-rows: 0 1fr;
    gap: 2rem;
    margin-top: 4rem;
    width: 100%;
    padding: 0 2rem 4rem;
  }
}
#top .concept_container .concept_main_content .concept_core_img {
  position: absolute;
  width: 31rem;
  object-fit: cover;
  z-index: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  top: 50%;
  pointer-events: none;
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content .concept_core_img {
    position: sticky;
    width: 80%;
    top: 0;
    left: 50%;
    transform: translate(-15%, 0);
  }
}
#top .concept_container .concept_main_content .concept_item {
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: start;
  background: #fff;
  border: solid 0.3rem #000;
  padding: 1rem 2.3rem 3rem 4.1rem;
  width: 51rem;
  height: 25rem;
  z-index: 1;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_main_content .concept_item {
    width: 95%;
    margin-inline: auto;
    padding: 1rem 1.5rem 2rem 2.5rem;
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content .concept_item {
    width: 100%;
    height: auto;
    padding: 2rem;
  }
}
#top .concept_container .concept_main_content .concept_item .concept_item_title {
  display: flex;
  align-items: baseline;
  justify-content: center;
  color: #0D1852;
  gap: 1.3rem;
  height: 15rem;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_title {
    flex-direction: column;
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_title {
    flex-wrap: wrap;
    justify-content: flex-start;
    height: auto;
    gap: 0.8rem 1.2rem;
  }
}
#top .concept_container .concept_main_content .concept_item .concept_item_title .en_text {
  font-size: 4.8rem;
  font-weight: 700;
  font-family: "Source Sans 3", sans-serif;
  transform: skewX(-8deg);
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
}
#top .concept_container .concept_main_content .concept_item .concept_item_title .en_text .initial {
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  display: inline-block;
  vertical-align: baseline;
  margin-right: -0.3rem;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_title .en_text {
    height: 11rem;
  }
  #top .concept_container .concept_main_content .concept_item .concept_item_title .en_text .initial {
    font-size: 14rem;
  }
  #top .concept_container .concept_main_content .concept_item .concept_item_title .en_text {
    font-size: 4.2rem;
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_title .en_text {
    height: 8rem;
    font-size: 3.2rem;
  }
  #top .concept_container .concept_main_content .concept_item .concept_item_title .en_text .initial {
    font-size: 9rem;
  }
}
#top .concept_container .concept_main_content .concept_item .concept_item_title .ja_text {
  font-size: 4.8rem;
  font-weight: 700;
  transform: skewX(-8deg);
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
  font-feature-settings: "palt";
  letter-spacing: -0.03rem;
}
#top .concept_container .concept_main_content .concept_item .concept_item_title .ja_text .small {
  font-size: 2.4rem;
  line-height: 1;
  vertical-align: baseline;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_title .ja_text {
    font-size: 3.8rem;
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_title .ja_text {
    font-size: 3.2rem;
  }
  #top .concept_container .concept_main_content .concept_item .concept_item_title .ja_text .small {
    font-size: 2rem;
  }
}
#top .concept_container .concept_main_content .concept_item .concept_item_text {
  font-weight: 700;
  font-size: 1.8rem;
}
@media screen and (max-width: 1100px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_text {
    margin-top: 1.3rem;
  }
}
@media screen and (max-width: 850px) {
  #top .concept_container .concept_main_content .concept_item .concept_item_text {
    font-size: 1.6rem;
    margin-top: 0.6rem;
  }
}
#top .feature_container {
  margin-top: 3rem;
  padding-bottom: 45.2rem;
}
@media screen and (max-width: 850px) {
  #top .feature_container {
    padding-bottom: 20rem;
  }
}
#top .feature_container .feature_title {
  width: 91.2rem;
}
#top .feature_container .feature_content_container {
  margin-top: 7.9rem;
  gap: 4.9rem;
  display: flex;
  flex-direction: column;
}
#top .feature_container .feature_content_container .feature_content {
  display: flex;
  gap: 2.2rem;
  width: 91.2rem;
  margin-inline: auto;
  max-width: 90%;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content {
    gap: 1.2rem;
  }
}
#top .feature_container .feature_content_container .feature_content .feature_label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: white;
  padding: 2rem;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content .feature_label {
    padding: 0.8rem;
    justify-content: flex-start;
  }
}
#top .feature_container .feature_content_container .feature_content .feature_label .feature_label_en {
  font-size: 2.4rem;
  font-weight: 700;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content .feature_label .feature_label_en {
    display: none;
  }
}
#top .feature_container .feature_content_container .feature_content .feature_label .feature_label_num {
  font-size: 9.6rem;
  font-weight: 700;
  font-family: "Source Sans 3", sans-serif;
  transform: skewX(-8deg);
  line-height: 8rem;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content .feature_label .feature_label_num {
    font-size: 4.8rem;
    height: 5rem;
    line-height: 5rem;
  }
}
#top .feature_container .feature_content_container .feature_content .feature_content_body {
  display: flex;
  flex-direction: column;
  align-items: start;
  padding-block: 1.45rem;
  gap: 1.6rem;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content .feature_content_body {
    gap: 1.2rem;
    padding-block: 0;
  }
}
#top .feature_container .feature_content_container .feature_content .feature_content_body .feature_content_body_title {
  font-size: 3.2rem;
  font-weight: 700;
  background: #0D1852;
  color: #fff;
  padding: 0rem 0.4rem;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content .feature_content_body .feature_content_body_title {
    font-size: 2.8rem;
  }
}
#top .feature_container .feature_content_container .feature_content .feature_content_body .feature_content_body_text {
  font-size: 1.8rem;
  font-weight: 500;
}
@media screen and (max-width: 850px) {
  #top .feature_container .feature_content_container .feature_content .feature_content_body .feature_content_body_text {
    font-size: 1.6rem;
  }
}
#top .coach_container {
  background: white;
  padding-top: 4rem;
  position: relative;
}
#top .coach_container .coach_bg_img {
  position: absolute;
  top: -33rem;
  left: 0;
  width: 100%;
  z-index: 0;
  object-fit: cover;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_bg_img {
    top: -7rem;
  }
}
#top .coach_container .coach_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .coach_container .coach_content_container {
  display: flex;
  flex-direction: column;
}
#top .coach_container .coach_content_container .block_left {
  width: 51rem;
  position: relative;
  margin-bottom: 5.2rem;
  margin-top: 7rem;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .block_left {
    width: fit-content;
  }
  #top .coach_container .coach_content_container .block_left img {
    width: 28rem;
    position: relative;
  }
}
#top .coach_container .coach_content_container .block_left .block_left_text {
  font-size: 3.6rem;
  font-weight: 700;
  color: #fff;
  position: absolute;
  top: 46%;
  left: 60%;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: 26rem;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .block_left .block_left_text {
    font-size: 2.4rem;
  }
}
#top .coach_container .coach_content_container .coach_content {
  width: 91.2rem;
  display: grid;
  margin-inline: auto;
  gap: 5.3rem 6.8rem;
  margin-bottom: 15.3rem;
  max-width: 90%;
}
@media screen and (min-width: 851px) and (max-width: 1100px) {
  #top .coach_container .coach_content_container .coach_content {
    gap: 2.3rem 3.8rem;
  }
}
#top .coach_container .coach_content_container .coach_content .coach_content_photo {
  width: 31.7rem;
  grid-column: 1/2;
  grid-row: 1/2;
}
@media screen and (max-width: 1100px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_photo {
    width: 25rem;
  }
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_photo {
    width: 20rem;
  }
}
#top .coach_container .coach_content_container .coach_content .coach_content_photo img {
  width: 100%;
  object-fit: cover;
  box-shadow: 16px 18px 0rem 0 #D2152D;
}
#top .coach_container .coach_content_container .coach_content .coach_content_main {
  grid-column: 2/3;
  grid-row: 1/2;
  width: 52.7rem;
}
@media screen and (max-width: 1100px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_main {
    width: 45rem;
  }
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_main {
    grid-column: 1/2;
    grid-row: 2/3;
    width: 100%;
  }
}
#top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_position {
  font-size: 1.8rem;
  font-weight: 700;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_position {
    font-size: 1.6rem;
  }
}
#top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_main_name {
  font-size: 3.2rem;
  font-weight: 700;
  padding-bottom: 3rem;
  margin-bottom: 3rem;
  position: relative;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_main_name {
    font-size: 2.4rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
  }
}
#top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_main_name::after {
  content: "";
  display: block;
  width: 4.6rem;
  height: 0.3rem;
  background: #D2152D;
  position: absolute;
  bottom: 0;
  left: 0;
}
#top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_main_text {
  font-size: 1.8rem;
  font-weight: 500;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .coach_content_main .coach_content_main_text {
    font-size: 1.6rem;
  }
}
#top .coach_container .coach_content_container .coach_content .comment_container {
  grid-column: 1/3;
  grid-row: 2/3;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .comment_container {
    grid-column: 1/2;
    grid-row: 3/4;
    width: 100%;
  }
}
#top .coach_container .coach_content_container .coach_content .comment_container .comment_title {
  font-size: 2.4rem;
  font-weight: 700;
  border-left: 0.6rem solid #000;
  padding: 0.85rem 2.6rem;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .comment_container .comment_title {
    font-size: 1.8rem;
    padding: 0.4rem 0.8rem;
  }
}
#top .coach_container .coach_content_container .coach_content .comment_container .comment_text {
  font-size: 1.8rem;
  font-weight: 500;
  background: #FFF27D;
  padding: 2rem;
}
@media screen and (max-width: 850px) {
  #top .coach_container .coach_content_container .coach_content .comment_container .comment_text {
    font-size: 1.6rem;
    padding: 1.8rem;
  }
}
#top .coach_container .running_img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1440/390;
  object-fit: cover;
  margin-top: 10rem;
  margin-bottom: -1rem;
}
#top .course_container {
  padding-top: 13.4rem;
}
#top .course_container .course_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .course_container .course_main_content {
  width: fit-content;
  margin-inline: auto;
  display: flex;
  gap: 9.7rem;
}
@media screen and (max-width: 1100px) {
  #top .course_container .course_main_content {
    flex-direction: column;
    align-items: center;
    width: 86%;
    gap: 4rem;
  }
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content {
    flex-direction: column;
    margin-top: 7.9rem;
  }
}
#top .course_container .course_main_content .course_card {
  width: 42.5rem;
  color: white;
  position: relative;
  z-index: 1;
  height: 100%;
}
@media screen and (max-width: 1100px) {
  #top .course_container .course_main_content .course_card {
    width: 100%;
    max-width: 52rem;
  }
}
#top .course_container .course_main_content .course_card.standard_course .course_border {
  display: block;
  left: 2.5rem;
  top: 2.5rem;
  width: 100%;
  height: 100%;
  border: solid 1rem #9D6300;
  position: absolute;
  bottom: 0;
  z-index: 0;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card.standard_course .course_border {
    left: 1.5rem;
    top: 1.5rem;
    border: solid 0.6rem #9D6300;
  }
}
#top .course_container .course_main_content .course_card.athlete_course .course_border {
  display: block;
  left: 2.5rem;
  top: 2.5rem;
  width: 100%;
  height: 100%;
  border: solid 1rem #CF131C;
  position: absolute;
  bottom: 0;
  z-index: 0;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card.athlete_course .course_border {
    left: 1.5rem;
    top: 1.5rem;
    border: solid 0.6rem #CF131C;
  }
}
@media screen and (max-width: 1100px) {
  #top .course_container .course_main_content .course_card .course_border {
    left: 1.2rem;
    top: 1.2rem;
    width: calc(100% - 1.2rem);
    height: calc(100% - 1.2rem);
    bottom: auto;
  }
}
#top .course_container .course_main_content .course_card .course_img {
  width: 100%;
  object-fit: cover;
  position: relative;
  z-index: 1;
  margin-bottom: -1rem;
}
#top .course_container .course_main_content .course_card .course_content_icon {
  position: absolute;
  top: 11rem;
  right: -2rem;
  z-index: 2;
}
@media screen and (max-width: 1100px) {
  #top .course_container .course_main_content .course_card .course_content_icon {
    top: 8rem;
    width: 10rem;
    height: auto;
  }
}
#top .course_container .course_main_content .course_card .course_content {
  padding: 3.4rem 4.6rem;
  position: relative;
  background: #333333;
  z-index: 1;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content {
    font-size: 2.8rem;
    padding: 2.4rem 2.8rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_title {
  font-size: 3.2rem;
  font-weight: 700;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_title {
    font-size: 2.8rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_list {
  display: flex;
  gap: 0.5rem;
  margin-top: 1.5rem;
}
#top .course_container .course_main_content .course_card .course_content .course_content_list .course_content_list_item {
  font-size: 1.6rem;
  font-weight: 500;
  border: solid 0.1rem #fff;
  padding: 0.5rem 1rem;
  border-radius: 0.6rem;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_list .course_content_list_item {
    font-size: 1.4rem;
    padding: 0.4rem 0.8rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_text {
  font-size: 1.8rem;
  margin-top: 0.9rem;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_text {
    font-size: 1.6rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_list_container {
  margin-top: 3.2rem;
  gap: 1.8rem;
  display: flex;
  flex-direction: column;
}
#top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row {
  display: flex;
  gap: 0.5rem;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row {
    flex-direction: column;
    gap: 0.6rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row .course_content_header {
  font-size: 1.8rem;
  width: 8.5rem;
  font-weight: 700;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row .course_content_header {
    font-size: 1.6rem;
    width: 5rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row .course_content_value {
  font-size: 1.8rem;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row .course_content_value {
    font-size: 1.6rem;
  }
}
#top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row .course_content_value .course_fee {
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1;
  vertical-align: baseline;
}
@media screen and (max-width: 850px) {
  #top .course_container .course_main_content .course_card .course_content .course_content_list_container .course_content_row .course_content_value .course_fee {
    font-size: 2.6rem;
  }
}
#top .course_container .fee_container {
  font-size: 1.8rem;
  font-weight: 500;
  margin-top: 7.6rem;
  margin-inline: auto;
  padding: 2rem 3rem;
  background: #C8C8C8;
  width: 97.2rem;
  max-width: 86%;
}
@media screen and (max-width: 850px) {
  #top .course_container .fee_container {
    font-size: 1.6rem;
    padding: 2rem 1.8rem;
  }
}
#top .course_container .fee_container .fee_value {
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1;
  vertical-align: baseline;
}
@media screen and (max-width: 850px) {
  #top .course_container .fee_container .fee_value {
    font-size: 2.6rem;
  }
}
#top .menu_container {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  top: 2rem;
  right: 0;
  width: fit-content;
  z-index: 100;
  transition: opacity 0.5s ease, visibility 0.5s ease, transform 0.5s ease;
  transform: translateY(-20px);
  pointer-events: none;
}
@media screen and (max-width: 1100px) {
  #top .menu_container {
    top: 1.2rem;
    left: 0;
    right: 0;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    padding-inline: 1.2rem;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
}
#top .menu_container.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
#top .menu_container .menu_toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 4.4rem;
  height: 4.4rem;
  background: #343434;
  border: none;
  border-radius: 0.4rem;
  cursor: pointer;
  padding: 0;
  gap: 0.4rem;
  position: relative;
  z-index: 101;
  pointer-events: auto;
}
#top .menu_container .menu_toggle span {
  display: block;
  width: 2.2rem;
  height: 0.2rem;
  background: #fff;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
@media screen and (max-width: 1100px) {
  #top .menu_container .menu_toggle {
    display: flex;
  }
}
#top .menu_container.is-open .menu_toggle span:nth-child(1) {
  transform: translateY(0.6rem) rotate(45deg);
}
#top .menu_container.is-open .menu_toggle span:nth-child(2) {
  opacity: 0;
}
#top .menu_container.is-open .menu_toggle span:nth-child(3) {
  transform: translateY(-0.6rem) rotate(-45deg);
}
#top .menu_container .menu_list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6.4rem;
  list-style: none;
  background: #343434;
  font-family: "JetBrains Mono", monospace;
  padding: 1.2rem 7.6rem 1.2rem 3.3rem;
  height: 6.5rem;
}
#top .menu_container .menu_list li {
  margin: 0;
}
#top .menu_container .menu_list li a {
  display: block;
  color: #fff;
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 700;
  transition: color 0.3s;
}
#top .menu_container .menu_list li a:hover {
  color: #3498db;
}
@media screen and (max-width: 850px) {
  #top .menu_container .menu_list li a {
    font-size: 1.2rem;
    padding: 0.4rem 0.8rem;
  }
}
#top .menu_container .menu_list li a.menu_contact_button {
  background: #D84D5B;
  color: #fff;
  padding: 1rem 3rem;
  width: fit-content;
}
#top .menu_container .menu_list li .menu_sub_list {
  list-style: none;
  display: flex;
  gap: 1.6rem;
  margin-top: 0.6rem;
}
#top .menu_container .menu_list li .menu_sub_list a {
  font-size: 1.2rem;
  font-weight: 500;
}
#top .menu_container .menu_list.sp_menu {
  display: none;
}
@media screen and (max-width: 1100px) {
  #top .menu_container .menu_list.pc_menu {
    display: none;
  }
  #top .menu_container .menu_list.sp_menu {
    display: none;
    flex-direction: column;
    gap: 1.6rem;
    padding: 0;
    position: static;
    width: 100%;
    height: auto;
    background: transparent;
    text-align: left;
    align-items: flex-start;
    position: relative;
    z-index: 2;
  }
  #top .menu_container .menu_list li {
    width: 100%;
  }
  #top .menu_container .menu_list a {
    font-size: 1.8rem;
    padding: 0.4rem 0;
  }
  #top .menu_container .menu_list .menu_sub_list {
    flex-direction: column;
    gap: 0.8rem;
    margin-top: 0.6rem;
    padding-left: 1.2rem;
  }
  #top .menu_container .menu_list .menu_sub_list a {
    font-size: 1.4rem;
    position: relative;
    padding-left: 1.6rem;
  }
  #top .menu_container .menu_list .menu_sub_list a::before {
    content: "▶";
    color: #fff;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
  }
}
@media screen and (max-width: 1100px) {
  #top .menu_container.is-open .menu_list.sp_menu {
    display: flex;
    animation: menuListIn 0.45s ease both;
  }
}
@media screen and (max-width: 1100px) {
  #top .menu_container.is-open {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 6.4rem 2.4rem 3.2rem;
    background: transparent;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 2.4rem;
    pointer-events: auto;
  }
}
@media screen and (max-width: 1100px) {
  #top .menu_container.is-open .menu_toggle {
    position: fixed;
    top: 1.2rem;
    right: 1.2rem;
  }
}
#top .menu_container::before {
  content: "";
  display: none;
}
#top .menu_container .menu_social {
  display: none;
}
@media screen and (max-width: 1100px) {
  #top .menu_container.is-open::before {
    display: block;
    position: fixed;
    inset: 0;
    background: #000;
    transform: translateY(-100%);
    animation: menuOverlayIn 0.5s ease forwards;
    z-index: 0;
  }
}
@media screen and (max-width: 1100px) {
  #top .menu_container.is-open .menu_social {
    display: flex;
    justify-content: flex-start;
    margin-top: 2.4rem;
    position: relative;
    z-index: 2;
    animation: menuItemIn 0.35s ease both;
    animation-delay: 0.7s;
  }
}
#top .menu_container.is-open .menu_instagram {
  display: inline-flex;
  width: 3.2rem;
  height: 3.2rem;
}
#top .menu_container.is-open img {
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 1100px) {
  #top .menu_container.is-open .menu_list.sp_menu > li {
    animation: menuItemIn 0.35s ease both;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(1) {
    animation-delay: 0.2s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(2) {
    animation-delay: 0.25s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(3) {
    animation-delay: 0.3s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(4) {
    animation-delay: 0.35s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(5) {
    animation-delay: 0.4s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(6) {
    animation-delay: 0.45s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(7) {
    animation-delay: 0.5s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(8) {
    animation-delay: 0.55s;
  }
  #top .menu_container.is-open .menu_list.sp_menu > li:nth-child(9) {
    animation-delay: 0.6s;
  }
  #top .menu_container.is-open .menu_list.sp_menu .menu_sub_list li {
    animation: menuItemIn 0.35s ease both;
  }
  #top .menu_container.is-open .menu_list.sp_menu .menu_sub_list li:nth-child(1) {
    animation-delay: 0.45s;
  }
  #top .menu_container.is-open .menu_list.sp_menu .menu_sub_list li:nth-child(2) {
    animation-delay: 0.5s;
  }
}
@keyframes menuOverlayIn {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes menuListIn {
  from {
    opacity: 0;
    transform: translateX(24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes menuItemIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
#top .schedule_container {
  padding-top: 13.4rem;
}
#top .schedule_container .schedule_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .schedule_container .schedule_main_content {
  width: 100%;
  max-width: 120rem;
  margin-inline: auto;
  margin-top: 7.6rem;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container {
  width: 100%;
  background: white;
  border-radius: 0.8rem;
  padding: 2rem;
  box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.1);
  position: relative;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .schedule_calendar_container {
    padding: 1rem;
  }
}
#top .schedule_container .schedule_main_content .schedule_calendar_container.loading {
  opacity: 0.6;
  pointer-events: none;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container.loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 3rem;
  height: 3rem;
  border: 0.3rem solid #f3f3f3;
  border-top: 0.3rem solid #343434;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_instruction {
  font-size: 1.6rem;
  color: #666;
  margin-bottom: 1.6rem;
  text-align: center;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_instruction {
    font-size: 1.5rem;
    margin-bottom: 1.2rem;
  }
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend {
  margin-top: 2rem;
  font-size: 1.4rem;
  color: #333;
  line-height: 2;
  text-align: right;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend {
    font-size: 1.2rem;
    margin-top: 1.6rem;
    line-height: 1.8;
  }
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  border-radius: 0.3rem;
  margin: 0 0.4rem;
  vertical-align: middle;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color {
    width: 1.6rem;
    height: 1.6rem;
    margin: 0 0.3rem;
  }
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color.schedule_calendar_color_1 {
  background: #3498db;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color.schedule_calendar_color_2 {
  background: #CF131C;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color.schedule_calendar_color_3 {
  background: #000000;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color.schedule_calendar_color_4 {
  background: #FFD700;
}
#top .schedule_container .schedule_main_content .schedule_calendar_container .schedule_calendar_color_legend .schedule_calendar_color.schedule_calendar_color_5 {
  background: #28a745;
}
@keyframes spin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
#top .schedule_container .schedule_main_content .calendar .calendar_header {
  margin-bottom: 2rem;
}
#top .schedule_container .schedule_main_content .calendar .calendar_nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
}
#top .schedule_container .schedule_main_content .calendar .calendar_nav .current_month {
  font-size: 2rem;
  font-weight: bold;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .calendar .calendar_nav .current_month {
    font-size: 1.8rem;
  }
}
#top .schedule_container .schedule_main_content .calendar .calendar_nav .prev_month,
#top .schedule_container .schedule_main_content .calendar .calendar_nav .next_month {
  padding: 0.8rem 1.6rem;
  background: #343434;
  color: white;
  text-decoration: none;
  border-radius: 0.4rem;
  transition: background 0.3s;
  font-size: 1.4rem;
}
#top .schedule_container .schedule_main_content .calendar .calendar_nav .prev_month:hover,
#top .schedule_container .schedule_main_content .calendar .calendar_nav .next_month:hover {
  background: #000;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .calendar .calendar_nav .prev_month,
  #top .schedule_container .schedule_main_content .calendar .calendar_nav .next_month {
    padding: 0.6rem 1rem;
    font-size: 1.2rem;
  }
}
#top .schedule_container .schedule_main_content .calendar .calendar_weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.4rem;
  margin-bottom: 0.8rem;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .calendar .calendar_weekdays {
    gap: 0;
  }
}
#top .schedule_container .schedule_main_content .calendar .calendar_weekdays .weekday {
  text-align: center;
  font-weight: bold;
  padding: 0.8rem;
  background: #f5f5f5;
  font-size: 1.4rem;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .calendar .calendar_weekdays .weekday {
    padding: 0.2rem;
    font-size: 1.1rem;
  }
}
#top .schedule_container .schedule_main_content .calendar .calendar_days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.4rem;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .calendar .calendar_days {
    gap: 0;
  }
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day {
  min-height: 10rem;
  padding: 0.8rem;
  border: 0.1rem solid #e0e0e0;
  background: white;
  position: relative;
  cursor: pointer;
  transition: background-color 0.2s;
  width: 100%;
  min-width: 0;
  overflow: visible;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day:hover:not(.empty) {
  background: #f0f0f0;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day.today {
  background: #f5f5f5;
  border: 0.2rem solid #343434;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day.empty {
  background: #f9f9f9;
  border: none;
  cursor: default;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .day_number {
  font-weight: bold;
  margin-bottom: 0.4rem;
  font-size: 1.4rem;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .day_events {
  margin-top: 0.4rem;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item {
  font-size: 1.4rem;
  padding: 0.2rem 0.4rem;
  background: #343434;
  color: white;
  border-radius: 0.3rem;
  margin-bottom: 0.2rem;
  cursor: pointer;
  position: relative;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item:hover {
  opacity: 0.8;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.event_color_1 {
  background: #000000;
  color: white;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.event_color_2 {
  background: #CF131C;
  color: white;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.event_color_3 {
  background: #3498db;
  color: white;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.event_color_4 {
  background: #FFD700;
  color: #000;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.event_color_5 {
  background: #28a745;
  color: white;
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.has_practice_log::after {
  content: "";
  position: absolute;
  top: -1rem;
  right: -0.7rem;
  width: 1.6rem;
  height: 1.6rem;
  background: #CF131C;
  border-radius: 50%;
  border: 0.15rem solid white;
  box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.2);
}
#top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item .event_title {
  display: block;
  overflow: hidden;
  white-space: nowrap;
}
@media screen and (max-width: 850px) {
  #top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day {
    min-height: 6rem;
    padding: 0.2rem;
    font-size: 1.1rem;
  }
  #top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .day_number {
    margin-bottom: 0.2rem;
    font-size: 1.1rem;
  }
  #top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .day_events {
    margin-top: 0.2rem;
  }
  #top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item {
    font-size: 1rem;
    padding: 0.2rem 0.1rem;
    margin-bottom: 0.1rem;
    position: relative;
  }
  #top .schedule_container .schedule_main_content .calendar .calendar_days .calendar_day .event_item.has_practice_log::after {
    width: 1.1rem;
    height: 1.1rem;
    top: -0.7rem;
    right: -0.3rem;
    border: 0.1rem solid white;
  }
}
#top .event_detail_popup {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup {
    padding: 1rem;
  }
}
#top .event_detail_popup .event_detail_popup_overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(4px);
}
#top .event_detail_popup .event_detail_popup_content {
  position: relative;
  background: #fff;
  border-radius: 1.2rem;
  max-width: 60rem;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.3);
  z-index: 1;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_content {
    max-width: 100%;
    border-radius: 0.8rem;
    max-height: 85vh;
  }
}
#top .event_detail_popup .event_detail_popup_close {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  width: 3.2rem;
  height: 3.2rem;
  border: none;
  background: transparent;
  font-size: 2.4rem;
  line-height: 1;
  color: #666;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
  z-index: 2;
}
#top .event_detail_popup .event_detail_popup_close:hover {
  color: #000;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_close {
    top: 0.8rem;
    right: 0.8rem;
    width: 2.8rem;
    height: 2.8rem;
    font-size: 2rem;
  }
}
#top .event_detail_popup .event_detail_popup_header {
  padding: 2.4rem 2.4rem 1.6rem;
  border-bottom: 0.1rem solid #e0e0e0;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_header {
    padding: 1.6rem 1.6rem 1.2rem;
  }
}
#top .event_detail_popup .event_detail_popup_header .event_detail_popup_date {
  font-size: 2.4rem;
  font-weight: 700;
  color: #000;
  margin: 0;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_header .event_detail_popup_date {
    font-size: 2rem;
  }
}
#top .event_detail_popup .event_detail_popup_body {
  padding: 2.4rem;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body {
    padding: 1.6rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_list {
    gap: 1.6rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item {
  padding: 1.6rem;
  border: 0.1rem solid #e0e0e0;
  border-radius: 0.8rem;
  background: #fafafa;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_item {
    padding: 1.2rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_title {
  font-size: 1.8rem;
  font-weight: 700;
  color: #000;
  margin-bottom: 1.2rem;
  padding-bottom: 1rem;
  border-bottom: 0.1rem solid #e0e0e0;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_title {
    font-size: 1.6rem;
    margin-bottom: 1rem;
    padding-bottom: 0.8rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_time {
  font-size: 1.4rem;
  color: #666;
  margin-bottom: 1.2rem;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_time {
    font-size: 1.3rem;
    margin-bottom: 1rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_description {
  font-size: 1.4rem;
  line-height: 1.8;
  color: #333;
  margin-bottom: 1.6rem;
  white-space: pre-wrap;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_description {
    font-size: 1.3rem;
    margin-bottom: 1.2rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_practice_log {
  margin-top: 1.6rem;
  padding-top: 1.6rem;
  border-top: 0.1rem solid #e0e0e0;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_practice_log {
    margin-top: 1.2rem;
    padding-top: 1.2rem;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_practice_log .event_detail_practice_log_button {
  display: inline-block;
  padding: 1rem 2rem;
  background: #343434;
  color: #fff;
  text-decoration: none;
  border-radius: 0.4rem;
  font-size: 1.4rem;
  font-weight: 500;
  transition: background-color 0.2s;
}
#top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_practice_log .event_detail_practice_log_button:hover {
  background: #555;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_item .event_detail_practice_log .event_detail_practice_log_button {
    padding: 0.8rem 1.6rem;
    font-size: 1.3rem;
    width: 100%;
    text-align: center;
  }
}
#top .event_detail_popup .event_detail_popup_body .event_detail_empty {
  text-align: center;
  padding: 3rem 2rem;
  color: #666;
  font-size: 1.6rem;
}
@media screen and (max-width: 850px) {
  #top .event_detail_popup .event_detail_popup_body .event_detail_empty {
    padding: 2rem 1rem;
    font-size: 1.4rem;
  }
}
#top .topics_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
@media screen and (max-width: 850px) {
  #top .topics_header {
    flex-direction: column;
    align-items: flex-start;
  }
}
#top .topics_link {
  color: #667eea;
  text-decoration: none;
  font-weight: bold;
}
#top .topics_link:hover {
  text-decoration: underline;
}
#top .topics_container {
  background: white;
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 850px) {
  #top .topics_container {
    padding: 15px;
  }
}
#top .topics_list {
  list-style: none;
  padding: 0;
  margin: 0;
}
#top .topics_list li {
  border-bottom: 1px solid #e0e0e0;
  padding: 16px 0;
}
#top .topics_list li:last-child {
  border-bottom: none;
}
#top .topics_list li a {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #333;
  transition: color 0.3s;
}
#top .topics_list li a:hover {
  color: #3498db;
}
@media screen and (max-width: 850px) {
  #top .topics_list li a {
    flex-direction: column;
    align-items: flex-start;
  }
}
#top .topics_list li .topic_date {
  min-width: 100px;
  font-weight: bold;
  color: #3498db;
}
@media screen and (max-width: 850px) {
  #top .topics_list li .topic_date {
    margin-bottom: 8px;
  }
}
#top .topics_list li .topic_category {
  min-width: 80px;
  font-size: 12px;
  background: #f0f0f0;
  padding: 4px 8px;
  border-radius: 4px;
  margin: 0 16px;
}
@media screen and (max-width: 850px) {
  #top .topics_list li .topic_category {
    margin: 0 0 8px 0;
  }
}
#top .topics_list li .topic_title {
  flex: 1;
}
#top .topics_list .no_topics,
#top .topics_list .error {
  text-align: center;
  color: #999;
  padding: 40px 0;
}
#top .access_container {
  padding-top: 13.4rem;
}
#top .access_container .access_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .access_container .access_main_content {
  max-width: 90%;
  width: 120rem;
  margin-inline: auto;
  margin-top: 5.2rem;
}
#top .access_container .access_main_content .access_description {
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 4rem;
}
@media screen and (max-width: 850px) {
  #top .access_container .access_main_content .access_description {
    font-size: 1.6rem;
    margin-bottom: 3rem;
  }
}
#top .access_container .access_main_content .access_location_list {
  display: flex;
  gap: 4rem;
  justify-content: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 850px) {
  #top .access_container .access_main_content .access_location_list {
    flex-direction: column;
    gap: 3rem;
  }
}
#top .access_container .access_main_content .access_location_list .access_location_item {
  display: flex;
  flex-direction: column;
  width: calc(50% - 2rem);
  max-width: 60rem;
}
@media screen and (max-width: 850px) {
  #top .access_container .access_main_content .access_location_list .access_location_item {
    width: 100%;
  }
}
#top .access_container .access_main_content .access_location_list .access_location_item iframe {
  width: 100%;
  max-width: 56.5rem;
  aspect-ratio: 565/264;
  height: auto;
  border-radius: 0.8rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 850px) {
  #top .access_container .access_main_content .access_location_list .access_location_item iframe {
    max-width: 100%;
    aspect-ratio: 16/9;
    margin-top: 1.2rem;
  }
}
#top .access_container .access_main_content .access_location_list .access_location_item .access_location_name {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2.2rem;
}
@media screen and (max-width: 850px) {
  #top .access_container .access_main_content .access_location_list .access_location_item .access_location_name {
    margin-top: 0;
    font-size: 1.8rem;
  }
}
#top .access_container .access_main_content .access_location_list .access_location_item .access_location_address {
  font-size: 1.8rem;
  margin-top: 2.2rem;
}
@media screen and (max-width: 850px) {
  #top .access_container .access_main_content .access_location_list .access_location_item .access_location_address {
    margin-top: 1.2rem;
    font-size: 1.6rem;
  }
}
#top .training_log_container {
  padding-top: 13.4rem;
}
#top .training_log_container .training_log_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .training_log_container .training_log_title .training_log_title_right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: 10rem;
}
@media screen and (max-width: 1100px) {
  #top .training_log_container .training_log_title .training_log_title_right {
    margin-left: 0;
    margin-top: 1.6rem;
    grid-column: 1/-1;
    justify-content: flex-start;
  }
}
#top .training_log_container .training_log_title .training_log_sns_text {
  font-size: 1.6rem;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  white-space: nowrap;
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_title .training_log_sns_text {
    font-size: 1.4rem;
  }
}
#top .training_log_container .training_log_title .training_log_arrow {
  width: auto;
  height: 1.6rem;
  display: block;
  flex-shrink: 0;
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_title .training_log_arrow {
    height: 1.4rem;
  }
}
#top .training_log_container .training_log_title .training_log_instagram_link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: opacity 0.3s;
  margin-left: 2rem;
}
#top .training_log_container .training_log_title .training_log_instagram_link:hover {
  opacity: 0.8;
}
#top .training_log_container .training_log_title .training_log_instagram_icon {
  width: 3.2rem;
  height: 3.2rem;
  display: block;
  object-fit: contain;
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_title .training_log_instagram_icon {
    width: 2.8rem;
    height: 2.8rem;
  }
}
#top .training_log_container .training_log_main_content {
  max-width: 120rem;
  width: 100%;
  margin-inline: auto;
  margin-top: 7.6rem;
  padding: 0 2rem;
}
#top .training_log_container .training_log_main_content .training_log_list {
  display: flex;
  gap: 4rem;
  justify-content: center;
  flex-wrap: wrap;
  box-sizing: border-box;
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_main_content .training_log_list {
    flex-direction: column;
    gap: 3rem;
  }
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item {
  display: flex;
  flex-direction: column;
  flex: 1 1 33rem;
  max-width: 33rem;
  width: 100%;
  text-decoration: none;
  color: #000;
  transition: opacity 0.2s;
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item:hover {
  opacity: 0.8;
}
@media screen and (min-width: 851px) and (max-width: 1000px) {
  #top .training_log_container .training_log_main_content .training_log_list .training_log_item {
    flex: 0 1 calc((100% - 8rem) / 3);
    max-width: none;
  }
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_main_content .training_log_list .training_log_item {
    width: 100%;
  }
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_image {
  width: 100%;
  aspect-ratio: 330/203;
  height: auto;
  object-fit: cover;
  margin-bottom: 1rem;
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_image {
    width: 100%;
    height: auto;
    margin-bottom: 0.6rem;
  }
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_info {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media screen and (max-width: 850px) {
  #top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_info {
    margin-bottom: 0.6rem;
  }
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_info .training_log_category {
  background: #000;
  color: #fff;
  padding: 0.5rem 1rem;
  font-size: 1.4rem;
  font-weight: 500;
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_info .training_log_date {
  font-size: 1.8rem;
  font-weight: 700;
  color: #000;
  font-family: "Source Sans 3", sans-serif;
  transform: skewX(-8deg);
}
#top .training_log_container .training_log_main_content .training_log_list .training_log_item .training_log_content {
  font-size: 1.6rem;
  line-height: 1.6;
  color: #000;
}
#top .training_log_container .training_log_main_content .training_log_list_link {
  font-size: 1.8rem;
  font-weight: 500;
  padding: 1.4rem 3rem;
  background: #343434;
  color: #fff;
  text-decoration: none;
  margin-top: 9rem;
  display: block;
  text-align: center;
  width: fit-content;
  margin-inline: auto;
}
#top .training_log_container .training_log_main_content .training_log_list_link span {
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
  object-fit: cover;
  margin-left: 0.5rem;
}
#top .news_container {
  padding-top: 13.4rem;
}
#top .news_container .news_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .news_container .news_main_content {
  width: 90%;
  max-width: 120rem;
  margin-inline: auto;
  margin-top: 7.6rem;
}
#top .news_container .news_main_content .news_list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
#top .news_container .news_main_content .news_list .news_item .news_link {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
  color: #000;
  transition: opacity 0.3s;
  padding-bottom: 3rem;
  position: relative;
}
#top .news_container .news_main_content .news_list .news_item .news_link:hover {
  opacity: 0.7;
}
@media screen and (max-width: 850px) {
  #top .news_container .news_main_content .news_list .news_item .news_link {
    display: grid;
    gap: 0.6rem 1rem;
    grid-template-columns: 11rem auto;
  }
}
#top .news_container .news_main_content .news_list .news_item .news_link .news_date_wrapper {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
#top .news_container .news_main_content .news_list .news_item .news_link .news_date_wrapper .news_date_line {
  display: block;
  width: 4.6rem;
  height: 0.3rem;
  background: #CF131C;
  position: absolute;
  left: 0;
  bottom: 0;
}
#top .news_container .news_main_content .news_list .news_item .news_link .news_date_wrapper .news_date {
  font-size: 1.8rem;
  font-weight: 700;
  white-space: nowrap;
  font-family: "Source Sans 3", sans-serif;
  transform: skewX(-8deg);
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
  margin-right: 4rem;
}
@media screen and (max-width: 850px) {
  #top .news_container .news_main_content .news_list .news_item .news_link .news_date_wrapper .news_date {
    margin-right: 0;
  }
}
#top .news_container .news_main_content .news_list .news_item .news_link .news_category {
  background: #000;
  color: #fff;
  padding: 0.5rem 1rem;
  font-size: 1.4rem;
  font-weight: 500;
  flex-shrink: 0;
}
#top .news_container .news_main_content .news_list .news_item .news_link .news_content {
  font-size: 1.8rem;
  line-height: 1.6;
  flex: 1;
  margin-left: 4.7rem;
  color: #000;
}
@media screen and (max-width: 850px) {
  #top .news_container .news_main_content .news_list .news_item .news_link .news_content {
    grid-column: 1/-1;
    margin-left: 0;
    margin-top: 0.4rem;
  }
}
@media screen and (max-width: 850px) {
  #top .news_container .news_main_content .news_list .news_item .news_link .news_date_wrapper {
    grid-column: 1/2;
  }
  #top .news_container .news_main_content .news_list .news_item .news_link .news_category {
    grid-column: 2/3;
    width: fit-content;
  }
}
#top .news_container .news_main_content .news_list .news_item .no_news,
#top .news_container .news_main_content .news_list .news_item .error {
  text-align: center;
  color: #999;
  font-size: 1.6rem;
  padding: 2rem 0;
}
#top .news_container .news_main_content .news_list_link {
  font-size: 1.8rem;
  font-weight: 500;
  padding: 1.4rem 3rem;
  background: #343434;
  color: #fff;
  text-decoration: none;
  margin-top: 10rem;
  display: block;
  text-align: center;
  width: fit-content;
  margin-inline: auto;
  transition: opacity 0.3s;
}
@media screen and (max-width: 850px) {
  #top .news_container .news_main_content .news_list_link {
    margin-top: 9rem;
  }
}
#top .news_container .news_main_content .news_list_link:hover {
  opacity: 0.7;
}
#top .news_container .news_main_content .news_list_link span {
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
  object-fit: cover;
  margin-left: 0.5rem;
}
#top .news_container .news_main_content .news_list_link span img {
  width: 100%;
  height: 100%;
}
#top .faq_container {
  padding-top: 13.4rem;
}
#top .faq_container .faq_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .faq_container .faq_main_content {
  width: 97.3rem;
  max-width: 90%;
  margin-inline: auto;
  margin-top: 7.6rem;
}
#top .faq_container .faq_main_content .faq_list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_question {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 2rem 3rem;
  cursor: pointer;
  transition: opacity 0.3s;
  background: #fff;
  gap: 4.5rem;
}
@media screen and (max-width: 850px) {
  #top .faq_container .faq_main_content .faq_list .faq_item .faq_question {
    padding: 1.6rem 2rem;
    gap: 1rem;
  }
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_question:hover {
  opacity: 0.7;
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_question .faq_label {
  font-size: 2.8rem;
  font-weight: 700;
  color: #000;
  flex-shrink: 0;
}
@media screen and (max-width: 850px) {
  #top .faq_container .faq_main_content .faq_list .faq_item .faq_question .faq_label {
    font-size: 2.4rem;
  }
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_question .faq_question_text {
  font-size: 2rem;
  font-weight: 500;
  color: #333;
  flex: 1;
}
@media screen and (max-width: 850px) {
  #top .faq_container .faq_main_content .faq_list .faq_item .faq_question .faq_question_text {
    font-size: 1.6rem;
  }
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_question .faq_arrow {
  font-size: 1.4rem;
  color: #333;
  flex-shrink: 0;
  transition: transform 0.3s;
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_answer {
  display: flex;
  align-items: center;
  gap: 4.5rem;
  padding: 2rem 3rem;
}
@media screen and (max-width: 850px) {
  #top .faq_container .faq_main_content .faq_list .faq_item .faq_answer {
    padding: 1.6rem 2rem;
    gap: 1rem;
  }
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_answer .faq_label {
  font-size: 2.8rem;
  font-weight: 700;
  color: #CF131C;
  flex-shrink: 0;
}
@media screen and (max-width: 850px) {
  #top .faq_container .faq_main_content .faq_list .faq_item .faq_answer .faq_label {
    font-size: 2.4rem;
  }
}
#top .faq_container .faq_main_content .faq_list .faq_item .faq_answer .faq_answer_text {
  font-size: 2rem;
  color: #000;
  font-weight: 500;
  line-height: 1.6;
  flex: 1;
}
@media screen and (max-width: 850px) {
  #top .faq_container .faq_main_content .faq_list .faq_item .faq_answer .faq_answer_text {
    font-size: 1.6rem;
  }
}
#top .faq_container .faq_main_content .faq_list .faq_item.active .faq_question .faq_arrow {
  transform: rotate(90deg);
}
#top .contact_container {
  padding-block: 13.4rem;
}
#top .contact_container .contact_title {
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
#top .contact_container .contact_main_content {
  width: 100%;
  max-width: 112rem;
  margin-inline: auto;
  margin-top: 2.6rem;
}
#top .contact_container .contact_main_content .contact_header {
  text-align: center;
  margin-bottom: 4rem;
  max-width: 90%;
  margin-inline: auto;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_header {
    margin-bottom: 2.6rem;
  }
}
#top .contact_container .contact_main_content .contact_header .contact_header_title {
  font-size: 3.6rem;
  font-weight: 700;
  color: #000;
  margin-bottom: 3.2rem;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_header .contact_header_title {
    font-size: 2.4rem;
    margin-bottom: 2rem;
  }
}
#top .contact_container .contact_main_content .contact_header .contact_header_description {
  font-size: 2rem;
  font-weight: 500;
  color: #000;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_header .contact_header_description {
    font-size: 1.6rem;
  }
}
#top .contact_container .contact_main_content .contact_photo_section {
  text-align: center;
  margin-bottom: 6rem;
}
#top .contact_container .contact_main_content .contact_photo_section .contact_group_photo {
  width: 100%;
  max-width: 91.2rem;
  height: auto;
  object-fit: cover;
  margin-bottom: 2rem;
}
#top .contact_container .contact_main_content .contact_photo_section .contact_photo_text {
  font-size: 3.6rem;
  margin-top: 3.2rem;
  font-weight: 700;
  color: #000;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_photo_section .contact_photo_text {
    font-size: 2.4rem;
    margin-top: 2.6rem;
  }
}
#top .contact_container .contact_main_content .contact_form_section {
  background: #fff;
  padding: 6.6rem 4.8rem;
  width: 112rem;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 1100px) {
  #top .contact_container .contact_main_content .contact_form_section {
    width: 100%;
    padding: 4.8rem 3rem;
  }
}
#top .contact_container .contact_main_content .contact_form_section .contact_form_title {
  font-size: 3.2rem;
  font-weight: 700;
  color: #000;
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_form_section .contact_form_title {
    font-size: 2.4rem;
    margin-bottom: 1.2rem;
  }
}
#top .contact_container .contact_main_content .contact_form_section .contact_form_description {
  font-size: 1.8rem;
  margin-block: 5.5rem 6.6rem;
  line-height: 1.6;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_form_section .contact_form_description {
    font-size: 1.6rem;
    margin-block: 3.6rem 4.8rem;
  }
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group {
  margin-bottom: 2.5rem;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
@media screen and (max-width: 1100px) {
  #top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group {
    flex-direction: column;
    gap: 1rem;
  }
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group {
    flex-direction: column;
    gap: 1rem;
  }
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_label {
  font-size: 1.6rem;
  color: #333;
  font-weight: 500;
  width: 27.4rem;
  flex-shrink: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_label.right_label {
  justify-content: flex-end;
}
@media screen and (max-width: 850px) {
  #top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_label {
    width: 100%;
  }
}
@media screen and (max-width: 1100px) {
  #top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_label {
    width: 100%;
  }
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_label .contact_required {
  background: #CF131C;
  color: #fff;
  font-size: 1.2rem;
  padding: 0.2rem 0.6rem;
  border-radius: 0.2rem;
  font-weight: 500;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_input,
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_select,
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_textarea {
  flex: 1;
  padding: 1rem;
  border: 0.2rem solid #1F1F1F;
  font-size: 1.8rem;
  font-family: "Noto Sans JP", sans-serif;
  width: 100%;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_input:focus,
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_select:focus,
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_textarea:focus {
  outline: none;
  border-color: #0280d4;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_input::placeholder,
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_select::placeholder,
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_textarea::placeholder {
  color: #999;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 3rem;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_form_group .contact_form_textarea {
  resize: vertical;
  min-height: 12rem;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_privacy_text {
  font-size: 1.4rem;
  color: #666;
  margin-bottom: 3rem;
  line-height: 1.6;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_privacy_text .contact_privacy_text_link {
  color: #000000;
  text-decoration: underline;
  transition: color 0.2s;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_submit_button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  padding: 2.1rem 5rem;
  background: white;
  color: #000;
  border: 0.3rem solid #000;
  font-size: 2rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.3s;
  width: fit-content;
  margin-inline: auto;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_submit_button:hover {
  opacity: 0.7;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_submit_button span {
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
}
#top .contact_container .contact_main_content .contact_form_section .contact_form .contact_submit_button span img {
  width: 100%;
  height: 100%;
}