:root {
  --animationDuration: 0.33s;
}

.page_supporter_class .faq a.color_link,
.page_supporter_class .howto a.color_link {
  margin-top: 20px;
}

details.faq_item summary {
  display: block;
  cursor: pointer;
  box-sizing: border-box;
  padding-right: 40px;
  position: relative;
}
details.faq_item summary h3 {
  transition: var(--animationDuration) margin;
}
details.faq_item summary .mark {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  left: auto;
  width: 24px;
  height: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: var(--animationDuration) transform;
  opacity: 0.5;
  filter: Alpha(opacity=50);
}
details.faq_item summary .mark::after {
  content: "";
  width: 16px;
  height: 16px;
  display: block;
  box-sizing: border-box;
  border-style: solid;
  border-color: transparent transparent var(--color_supporter_class) var(--color_supporter_class);
  border-width: 3px;
  transform: rotate(-45deg) translateY(-2px);
}
details.faq_item:not(:open) summary h3 {
  margin-bottom: 0px !important;
}
details.faq_item:open summary .mark {
  transform: rotate(180deg);
}

.to_link .a {
  width: auto;
  max-width: none;
}
.to_link .a .txt .sub,
.to_link .a .txt span {
  font-size: var(--fontSize_s);
}
.to_link .a.text_link {
  color: var(--color_supporter_class);
}
.to_link.to_link_cv_buttons {
  flex-direction: column;
  align-items: center;
  grid-gap: var(--space4);
}
.to_link.to_link_cv_buttons .class_btn {
  display: flex;
  flex-direction: column;
  grid-gap: var(--space1);
}
.to_link.to_link_cv_buttons .class_btn .txt {
  font-size: var(--fontSize_n);
}
.to_link.to_link_cv_buttons .class_btn .txt span {
  font-size: var(--fontSize_ll);
}
.to_link.to_link_cv_buttons .class_btn.class_btn_request {
  background: var(--color_pink);
}
@media (min-width: 768px) {
  .to_link .a .txt {
    font-size: var(--fontSize_l);
  }
  .to_link .a .txt .sub,
  .to_link .a .txt span {
    position: relative;
    top: -0.5rem;
  }
  .to_link .a .txt .sub + *,
  .to_link .a .txt span + * {
    margin-top: -0.5rem;
  }
}

.visual_fv {
  margin-bottom: 0;
}
.visual_fv .container {
  bottom: 0;
}
.visual_fv .container .stamp {
  --stampSize: 120px;
  position: absolute;
  bottom: calc(100% - var(--stampSize) / 2);
  right: 10px;
  background: url(../img/supporter_class2025/stamp.png) no-repeat center center;
  background-size: contain;
  width: var(--stampSize);
  height: var(--stampSize);
}
@media (min-width: 521px) {
  .visual_fv .container .stamp {
    --stampSize: 160px;
    right: 30px;
  }
}
.visual_fv .container .sub {
  font-size: 1.2rem;
  margin-bottom: 20px;
}

.sub_navi_wrap {
  height: 60px;
  box-sizing: border-box;
  width: 100%;
  background: var(--color_supporter_class);
  position: relative;
  margin-bottom: 80px;
}
.sub_navi_wrap::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  content: "";
  height: 1px;
  background: #FFF;
  opacity: 0.33;
  filter: Alpha(opacity=33);
}
.sub_navi_wrap .inner {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  max-width: 100%;
}
.sub_navi_wrap .btns {
  display: flex;
  flex-direction: row;
  grid-gap: 0;
  height: 100%;
  flex-wrap: nowrap;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
.sub_navi_wrap .btns .btn {
  height: 100%;
  position: relative;
}
.sub_navi_wrap .btns .btn .a {
  height: 60px;
  display: flex;
  box-sizing: border-box;
  padding: 5px 20px;
  color: #FFF;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.sub_navi_wrap .btns .btn .a span {
  display: inline-block;
}
.sub_navi_wrap .btns .btn::after {
  width: 1px;
  height: 100%;
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  background: #FFF;
  opacity: 0.33;
  filter: Alpha(opacity=33);
}
.sub_navi_wrap .btns .btn:nth-child(1) .a {
  min-width: 150px;
}
.sub_navi_wrap .btns .btn:nth-child(1)::before {
  width: 1px;
  height: 100%;
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  background: #FFF;
  opacity: 0.33;
  filter: Alpha(opacity=33);
}
.sub_navi_wrap .btns .btn:nth-child(2) .a {
  min-width: 220px;
}
.sub_navi_wrap .btns .btn:nth-child(3) .a {
  min-width: 130px;
}
.sub_navi_wrap .btns .btn:nth-child(4) .a {
  min-width: 100px;
}
.sub_navi_wrap .btns .btn:nth-child(5) .a {
  min-width: 100px;
}
.sub_navi_wrap .btns .btn:nth-child(6) .a {
  min-width: 130px;
}

.read .age {
  margin-top: 80px;
}
.read .age .img {
  max-width: 700px;
  margin: 0 auto 40px auto;
  display: block;
}

.issue ul {
  margin-bottom: 80px;
}

.message {
  background-color: #E1F3E3;
  padding: 75px 0;
  margin-bottom: 75px;
}
.message h2 {
  margin-bottom: 35px;
}
.message .container {
  padding: 50px;
  background-color: #fff;
  display: flex;
  justify-content: space-between;
}
.message .container .txt {
  width: calc(100% - 350px);
}
.message .container .txt h3 {
  color: var(--color_supporter_class);
  font-size: 1.33rem;
  margin-bottom: 25px;
  line-height: 1.5;
}
.message .container .txt p {
  line-height: 1.8;
}
.message .container .txt p + h3 {
  margin-top: 35px;
}
.message .container .thumb {
  width: 290px;
}
.message .container .thumb p {
  font-size: 0.9rem;
  text-align: right;
  margin-top: 20px;
}
.message .container .thumb p span {
  font-size: 1.1rem;
}
.message .container .thumb p span span {
  font-size: 1.3rem;
}

.benefit {
  margin-bottom: 75px;
}
.benefit h2 {
  margin-bottom: 35px;
}
.benefit .intro {
  text-align: center;
  margin-bottom: 50px;
}
.benefit picture.pic01 {
  display: block;
  width: 90%;
  margin-inline: auto;
  margin-bottom: 50px;
}
.benefit picture.pic02 {
  display: block;
  margin-bottom: 50px;
}
.benefit .class_btn {
  margin: 0 auto 20px;
}

@media (max-width: 520px) {
  .message {
    padding: 75px 5%;
  }
  .message h2 {
    margin-bottom: 35px;
  }
  .message .container {
    flex-wrap: wrap;
    flex-direction: column-reverse;
    padding: 25px 5%;
  }
  .message .container .txt {
    width: 100%;
  }
  .message .container .txt p {
    line-height: 1.8;
  }
  .message .container .txt p + h3 {
    margin-top: 35px;
  }
  .message .container .thumb {
    width: 100%;
    margin-bottom: 20px;
  }
  .benefit {
    margin-bottom: 75px;
    padding: 0 5%;
  }
  .benefit h2 {
    margin-bottom: 35px;
  }
  .benefit .intro {
    text-align: left;
  }
  .benefit picture.pic01 {
    display: block;
    width: 100%;
    margin-inline: auto;
    margin-bottom: 50px;
  }
  .benefit picture.pic02 {
    display: block;
    width: 70%;
    margin-inline: auto;
    margin-bottom: 50px;
  }
  .benefit .class_btn {
    margin: 0 auto 20px;
  }
}
.curriculum .curriculum_item .to_link {
  margin-top: 20px;
}

.color_link {
  color: var(--color_supporter_class);
  margin-top: 20px;
}

.mov_btn {
  width: 75px;
  writing-mode: vertical-rl;
  position: fixed;
  bottom: 20px;
  left: 0;
  background-color: #B80B37;
  color: #fff;
  border: 2px solid #fff;
  border-left-width: 0px;
  border-radius: 0 5px 5px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  text-orientation: upright;
  font-size: 1.33rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 30px 0;
}
.mov_btn:hover {
  opacity: 0.7;
  filter: Alpha(opacity=70);
}

.end_message {
  margin-top: 40px;
  color: var(--color_supporter_class);
}