@keyframes fuwari {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(1rem);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes fuwari-reverse {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-1rem);
  }
  100% {
    transform: translateY(0);
  }
}
.l-kv {
  position: relative;
  width: 100%;
  min-width: 136.6rem;
}
.l-kv > img {
  position: absolute;
  z-index: 10;
}
.l-kv_decoration-left {
  top: 82.7027027027%;
  left: calc(50% - 64rem);
  transform: translateX(-50%);
  width: 33rem;
}
.l-kv_decoration-right {
  top: 83.7837837838%;
  left: calc(50% + 61.7rem);
  transform: translateX(-50%);
  width: 46rem;
}
.l-kv_balloon {
  top: 6.7567567568%;
  left: 66.1054172767%;
  width: 7.906295754%;
}
.l-kv_cracker {
  top: 47.1621621622%;
  left: 16.1054172767%;
  width: 7.906295754%;
}
.l-kv_circle-01 {
  top: 22.7027027027%;
  left: 10.9077598829%;
  width: 1.8740849195%;
}
.l-kv_circle-02 {
  top: 54.4594594595%;
  left: 24.9633967789%;
  width: 1.0980966325%;
}
.l-kv_circle-03 {
  top: 63.7837837838%;
  left: 1.0980966325%;
  width: 2.1229868228%;
}
.l-kv_circle-04 {
  top: 77.8378378378%;
  left: 26.7203513909%;
  width: 1.6105417277%;
}
.l-kv_circle-05 {
  top: 82.7027027027%;
  left: 14.5680819912%;
  width: 1.8301610542%;
}
.l-kv_circle-06 {
  top: 24.7297297297%;
  left: 61.7130307467%;
  width: 1.2445095168%;
}
.l-kv_circle-07 {
  top: 22.7027027027%;
  left: 87.3352855051%;
  width: 1.8740849195%;
}
.l-kv_circle-08 {
  top: 57.2972972973%;
  left: 60.6149341142%;
  width: 1.6837481698%;
}
.l-kv_circle-09 {
  top: 76.7567567568%;
  left: 75.9150805271%;
  width: 1.8301610542%;
}
.l-kv_circle-10 {
  top: 70%;
  left: 90.4831625183%;
  width: 2.1229868228%;
}
.l-kv_anime01 {
  animation: fuwari calc(var(--duration) * 6) var(--easing) 0s 3;
}
.l-kv_anime02 {
  animation: fuwari-reverse calc(var(--duration) * 6) var(--easing) 0s 3;
}
.l-kv_splash {
  top: 74.8648648649%;
  left: 2.4890190337%;
  width: 7.6134699854%;
}
.l-kv_flask {
  top: 81.4864864865%;
  left: 17.4231332357%;
  width: 11.5666178624%;
}
.l-kv_bus {
  top: 84.8648648649%;
  left: 78.4773060029%;
  width: 11.859443631%;
}
@media screen and (max-width: 768px) {
  .l-kv {
    min-width: initial;
  }
  .l-kv_circle {
    top: 6.0200668896%;
    left: 20.5333333333%;
    width: 3.2%;
  }
  .l-kv_box {
    top: 2.1739130435%;
    left: 35.4666666667%;
    width: 18.4%;
  }
  .l-kv_cracker {
    top: 8.1939799331%;
    left: 80%;
    width: 13.6%;
  }
  .l-kv_polygon {
    top: 60.5351170569%;
    left: -2.6666666667%;
    width: 12.856%;
  }
  .l-kv_character {
    top: 50.5016722408%;
    left: 80%;
    width: 17.8666666667%;
  }
}

.l-lead {
  padding-top: 10rem;
  padding-bottom: 13rem;
}
.l-lead_text {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .l-lead {
    padding-top: 2rem;
    padding-bottom: 9rem;
  }
}

.l-access {
  position: relative;
  padding-top: 2rem;
  padding-bottom: 20rem;
}
.l-access_heading {
  position: relative;
  margin-bottom: 4.8rem;
}
.l-access_heading_illust-flask {
  position: absolute;
  top: -17.6rem;
  left: calc(50% - 46rem);
  transform: translateX(-50%);
  width: 12.2rem;
}
.l-access_heading_illust-people {
  position: absolute;
  top: -23.6rem;
  left: calc(50% + 39rem);
  transform: translateX(-50%);
  width: 29.2rem;
}
.l-access_map {
  position: relative;
}
.l-access_map_inner {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  width: 100%;
  margin: auto;
  padding: 5rem 16rem;
  border: var(--border);
  border-radius: var(--radius);
  background-color: var(--color-white);
}
.l-access_map_inner > * {
  position: relative;
  z-index: 1;
}
.l-access_map_button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 25rem;
  padding-left: 2.4rem;
  padding-right: 1.2rem;
  text-align: left;
}
.l-access_map_button_icon {
  position: relative;
  top: initial;
  right: initial;
  transform: initial;
}
.l-access_map_bg {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
  width: 100%;
}
.l-access_map_illust-balloon {
  position: absolute;
  top: -4.9rem;
  left: 1.6rem;
  width: 12.4rem;
}
.l-access_map_illust-bus {
  position: absolute;
  top: 15rem;
  right: -5.8rem;
  width: 47.7rem;
}
@media screen and (max-width: 768px) {
  .l-access {
    padding-top: 3rem;
    padding-bottom: 19.2rem;
  }
  .l-access_heading {
    margin-bottom: 5rem;
  }
  .l-access_heading_illust-flask {
    position: absolute;
    top: -11.4rem;
    left: calc(50% - 11.4rem);
    transform: translateX(-50%);
    width: 8.3rem;
  }
  .l-access_heading_illust-people {
    position: absolute;
    top: -12.2rem;
    left: calc(50% + 12.5rem);
    transform: translateX(-50%);
    width: 9rem;
  }
  .l-access_map_inner {
    flex-direction: column;
    justify-content: initial;
    padding: 5rem 3rem 4.5rem;
  }
  .l-access_map_text.is-large {
    margin-bottom: 2.2rem;
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .l-access_map_button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 27.5rem;
    height: max-content;
    min-height: 5.8rem;
    padding: 1rem 5rem;
    text-align: center;
  }
  .l-access_map_button_icon {
    position: absolute;
    top: 50%;
    right: 1.2rem;
    transform: translateY(-50%);
  }
  .l-access_map_illust-balloon {
    display: none;
  }
  .l-access_map_illust-bus {
    top: calc(100% - 2.4rem);
    right: -1rem;
    width: 100%;
    max-width: 34.1rem;
  }
}

.l-join {
  margin-bottom: 24.5rem;
  padding-top: 2rem;
}
.l-join_inner {
  position: relative;
  padding-inline: 10.5rem;
}
.l-join_heading {
  position: relative;
  margin-bottom: 3rem;
}
.l-join_heading_illust-people {
  position: absolute;
  top: -17.6rem;
  left: calc(50% - 36.2rem);
  transform: translateX(-50%);
  width: 34.4rem;
}
.l-join_lead {
  margin-bottom: 6.7rem;
  text-align: center;
}
.l-join_howto {
  position: relative;
  padding: 8rem 12rem;
  border-radius: 3rem;
}
.l-join_howto_regist {
  overflow: hidden;
  margin-bottom: 10rem;
  color: var(--color-text-blue);
  border: var(--border);
  border-radius: var(--radius);
}
.l-join_howto_regist_head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
  padding-top: 1.6rem;
  padding-bottom: 1.8rem;
  border-bottom: var(--border);
  background-color: var(--color-yellow);
}
.l-join_howto_regist_head_point {
  width: 2.9rem;
}
.l-join_howto_regist_body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  padding: 4.3rem 2rem;
  background-color: var(--color-white);
}
.l-join_howto_regist_body_text {
  display: flex;
  align-items: center;
  gap: 2rem;
  text-align: center;
}
.l-join_howto_regist_body_text::after {
  content: "";
  display: block;
  width: 0.2rem;
  height: 4.2rem;
  background-color: var(--color-text-blue);
}
.l-join_howto_regist_body_img {
  width: 28.1rem;
}
.l-join_howto_flow {
  display: grid;
  grid-template-areas: "content-a content-b" "content-c content-c";
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.5rem 6rem;
  margin-bottom: 5rem;
}
.l-join_howto_flow_content {
  position: relative;
}
.l-join_howto_flow_content > * {
  position: relative;
  z-index: 1;
}
.l-join_howto_flow_content_step {
  position: relative;
}
.l-join_howto_flow_content_step_text {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: max-content;
  min-height: 10rem;
  padding-block: 2.9rem;
  font-weight: var(--font-weight-bold);
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: var(--color-white);
  border-radius: var(--radius);
  background-color: var(--color-pink);
}
.l-join_howto_flow_content_step_text_content {
  display: block;
  width: 100%;
  text-align: center;
}
.l-join_howto_flow_content_step_text_content_icon {
  width: 2.4rem;
  margin-right: 0.2rem;
  padding-top: 1rem;
  fill: var(--color-white);
}
.l-join_howto_flow_content_step_text.is-pink {
  background-color: var(--color-pink);
}
.l-join_howto_flow_content_step_text.is-blue {
  background-color: var(--color-blue);
}
.l-join_howto_flow_content_step_text.is-whitePink {
  color: var(--color-pink);
  border: var(--border);
  border-color: var(--color-pink);
  background-color: var(--color-white);
}
.l-join_howto_flow_content_step_text.is-whiteBlue {
  color: var(--color-text-blue);
  border: var(--border);
  border-color: var(--color-text-blue);
  background-color: var(--color-white);
}
.l-join_howto_flow_content_step_circle {
  display: grid;
  place-items: center;
  width: 17rem;
  height: 17rem;
  margin: auto;
  color: var(--color-pink);
  border: 1.8rem solid var(--color-yellow);
  border-radius: 50%;
  background-color: var(--color-white);
}
.l-join_howto_flow_content_step_illust.is-a01 {
  position: absolute;
  bottom: -3.7rem;
  left: -9rem;
  width: 18rem;
}
.l-join_howto_flow_content_step_illust.is-a02 {
  position: absolute;
  top: -5.6rem;
  right: -5rem;
  width: 9.2rem;
}
.l-join_howto_flow_content_step_illust.is-a03 {
  position: absolute;
  top: calc(50% + 1rem);
  left: calc(50% - 2.4rem);
  transform: translate(-50%, -50%);
  width: 29.2rem;
}
.l-join_howto_flow_content_step_illust.is-b {
  position: absolute;
  top: 2.2rem;
  right: -6.4rem;
  width: 11.5rem;
}
.l-join_howto_flow_content_step_illust.is-c-1 {
  position: absolute;
  top: -5.4rem;
  left: -5.4rem;
  width: 12.7rem;
}
.l-join_howto_flow_content_step_illust.is-c-2 {
  position: absolute;
  top: -2.2rem;
  right: -7.4rem;
  width: 15.2rem;
}
.l-join_howto_flow_content_step.is-a01 {
  margin-bottom: 8.4rem;
}
.l-join_howto_flow_content_step.is-a02 {
  margin-bottom: 8.4rem;
}
.l-join_howto_flow_content_text {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.2rem;
  margin-bottom: 2rem;
  color: var(--color-text-blue);
}
.l-join_howto_flow_content_text::before, .l-join_howto_flow_content_text::after {
  content: "";
  display: block;
  flex: 1;
  height: 0.5rem;
  margin-top: -0.4rem;
  border-radius: 50vw;
  background-color: var(--color-text-blue);
}
.l-join_howto_flow_content_arrow {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}
.l-join_howto_flow_content_arrow_img {
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
  width: 18rem;
}
.l-join_howto_flow_content_arrow::before, .l-join_howto_flow_content_arrow::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: calc(100% - 6rem);
  background-color: var(--color-white);
}
.l-join_howto_flow_content_arrow::before {
  width: 8.3rem;
}
.l-join_howto_flow_content_arrow::after {
  width: 2.5rem;
  background-color: #EBC2D7;
}
.l-join_howto_flow_content_arrow.is-blue::after {
  background-color: #B7DBEE;
}
.l-join_howto_flow_content:first-of-type {
  grid-area: content-a;
  z-index: 10;
  padding-bottom: 15.5rem;
}
.l-join_howto_flow_content:nth-of-type(2) {
  grid-area: content-b;
}
.l-join_howto_flow_content:last-of-type {
  grid-area: content-c;
}
.l-join_howto_illust-flask {
  position: absolute;
  top: -22.4rem;
  right: 4.6rem;
  width: 19.55rem;
}
.l-join_illust-bg {
  position: absolute;
  bottom: -25.2rem;
  left: calc(50% - 57.4rem);
  transform: translateX(-50%);
  width: 43.2rem;
}
@media screen and (max-width: 768px) {
  .l-join {
    margin-bottom: 14rem;
    padding-top: 3.2rem;
  }
  .l-join_inner {
    padding-inline: 2rem;
  }
  .l-join_heading {
    margin-bottom: 2.8rem;
  }
  .l-join_heading_illust-people {
    top: initial;
    bottom: calc(100% + 3rem);
    left: -0.5rem;
    transform: initial;
    width: 18.6rem;
  }
  .l-join_lead {
    margin-bottom: 7.5rem;
  }
  .l-join_howto {
    padding: 5rem 2rem;
    border-radius: 1rem;
  }
  .l-join_howto_regist {
    margin-bottom: 11.4rem;
  }
  .l-join_howto_regist_head {
    gap: 0.7rem;
    padding-top: 1.2rem;
    padding-bottom: 1.2rem;
  }
  .l-join_howto_regist_head_point {
    width: 2.2rem;
  }
  .l-join_howto_regist_body {
    flex-direction: column;
    gap: 2.3rem;
    padding-top: 3rem;
    padding-bottom: 4rem;
  }
  .l-join_howto_regist_body_text {
    flex-direction: column;
    gap: 1rem;
  }
  .l-join_howto_regist_body_text::after {
    width: 4rem;
    height: 0.2rem;
  }
  .l-join_howto_regist_body_img {
    width: 20.7rem;
  }
  .l-join_howto_flow {
    gap: 1rem 2rem;
    margin-bottom: 3.4rem;
  }
  .l-join_howto_flow_content_step_text {
    min-height: 10.9rem;
    padding: 1.4rem 0.6rem;
    font-size: 1.8rem;
  }
  .l-join_howto_flow_content_step_text_content_icon {
    width: 1.6rem;
    margin-right: initial;
  }
  .l-join_howto_flow_content_step_circle {
    width: 11.8rem;
    max-width: 100%;
    height: 11.8rem;
    text-align: center;
    border-width: 1.4rem;
  }
  .l-join_howto_flow_content_step_illust.is-a01 {
    bottom: calc(100% - 2rem);
    left: -1rem;
    width: 31.8rem;
    max-width: calc(100vw - 4rem);
  }
  .l-join_howto_flow_content_step_illust.is-a02 {
    top: initial;
    bottom: calc(100% - 2.6rem);
    right: -2.1rem;
    width: 100%;
    max-width: 13.75rem;
  }
  .l-join_howto_flow_content_step_illust.is-a03 {
    top: calc(50% + 0.4rem);
    left: calc(50% - 0.6rem);
    width: 107%;
    max-width: 14.9rem;
  }
  .l-join_howto_flow_content_step_illust.is-b {
    top: initial;
    bottom: calc(100% - 2rem);
    right: -1.2rem;
    width: 31.8rem;
    max-width: calc(100vw - 4rem);
  }
  .l-join_howto_flow_content_step_illust.is-c-1 {
    top: initial;
    bottom: calc(100% - 4.1rem);
    left: initial;
    right: -1.6rem;
    width: 100%;
    max-width: 32.4rem;
  }
  .l-join_howto_flow_content_step_illust.is-c-2 {
    top: calc(100% - 5.4rem);
    left: -1.3rem;
    right: initial;
    width: 100%;
    max-width: 32.4rem;
  }
  .l-join_howto_flow_content_step.is-a01 {
    margin-bottom: 4.7rem;
  }
  .l-join_howto_flow_content_step.is-a02 {
    margin-bottom: 4.7rem;
  }
  .l-join_howto_flow_content_text {
    gap: 1.6rem;
    margin-bottom: 2.5rem;
  }
  .l-join_howto_flow_content_text::before, .l-join_howto_flow_content_text::after {
    height: 0.2rem;
    margin-top: 0.6rem;
  }
  .l-join_howto_flow_content_arrow_img {
    width: 11.8rem;
  }
  .l-join_howto_flow_content_arrow::before, .l-join_howto_flow_content_arrow::after {
    height: calc(100% - 4rem);
  }
  .l-join_howto_flow_content_arrow::before {
    width: 4.6rem;
  }
  .l-join_howto_flow_content_arrow::after {
    width: 1.6rem;
  }
  .l-join_howto_flow_content:first-of-type {
    padding-bottom: 9.4rem;
  }
  .l-join_howto_illust-flask {
    top: -7.2rem;
    top: initial;
    bottom: calc(100% - 1.5rem);
    right: 0.6rem;
    width: 100%;
    max-width: 31.1rem;
  }
  .l-join_illust-bg {
    display: none;
  }
}

.l-program {
  position: relative;
  padding-top: 3rem;
  padding-bottom: 14rem;
}
.l-program_heading {
  position: relative;
  margin-bottom: 2.4rem;
}
.l-program_heading_illust-flask {
  position: absolute;
  top: -30.3rem;
  left: calc(50% + 2.7rem);
  transform: translateX(-50%);
  width: 47.6rem;
}
.l-program_lead {
  margin-bottom: 9rem;
  text-align: center;
  color: var(--color-text-blue);
}
.l-program_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 4.6rem;
  margin-bottom: 12.9rem;
}
.l-program_list_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
}
.l-program_list_item_img {
  margin-bottom: 1.8rem;
}
.l-program_list_item_img img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius);
}
.l-program_list_item_category {
  height: max-content;
  margin-bottom: 1rem;
  padding: 0.3rem 1rem;
  text-align: center;
  color: var(--color-white);
  border-radius: var(--radius);
}
.l-program_list_item_category.is-trial {
  background-color: var(--color-category-blue);
}
.l-program_list_item_category.is-seminar {
  background-color: var(--color-category-green);
}
.l-program_list_item_category.is-tour {
  background-color: var(--color-category-orange);
}
.l-program_list_item_title {
  margin-bottom: 1.4rem;
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.l-program_list_item_text {
  white-space: pre-line;
}
.l-program_list_item:nth-of-type(2) {
  margin-bottom: 6rem;
}
.l-program_button {
  margin: auto;
}
@media screen and (max-width: 768px) {
  .l-program {
    padding-top: 3rem;
    padding-bottom: 11rem;
  }
  .l-program_heading {
    margin-bottom: 1rem;
  }
  .l-program_heading_illust-flask {
    top: initial;
    bottom: calc(100% + 2.6rem);
    left: calc(50% + 0.4rem);
    width: 32.7rem;
    max-width: calc(100% - 1rem);
  }
  .l-program_lead {
    margin-bottom: 5rem;
  }
  .l-program_list {
    display: flex;
    flex-direction: column;
    gap: 5rem;
    margin-bottom: 6rem;
  }
  .l-program_list_item {
    display: flex;
    flex-direction: column;
  }
  .l-program_list_item_category {
    margin-bottom: 1.7rem;
    padding-block: 0.5rem;
  }
  .l-program_list_item_title {
    margin-bottom: 1.2rem;
    font-size: 1.8rem;
    line-height: 1.7;
  }
  .l-program_list_item_text {
    line-height: 1.6;
  }
  .l-program_list_item:nth-of-type(2) {
    margin-bottom: initial;
  }
}
