@charset "utf-8";
/* ↓↓↓ common ↓↓↓ */
:root {
  --cormorantGaramond:"Cormorant Garamond", serif;
  --notoSans: "Noto Sans JP", sans-serif;
  --shipporiMincho:"Shippori Mincho", serif;
}
.sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
}
.wb {
  display: inline-block;
}
body.noscroll {
  overflow: clip;
}
main {
  overflow: clip;
}
/* ↑↑↑ common ↑↑↑ */
/* ↓↓↓ header ↓↓↓ */
header {
  position: absolute;
  /* width: 100%;
  display: flex;
  align-items: center;
  padding-right: min(2.5vw,32px);
  top: 0;
  left: 0; */
  z-index: 10;
}
@media screen and (max-width: 768px) {
  header {
    padding-right: 21px;
  }
}
.overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,.4);
  display: none;
  top: 0;
  left: 0;
  z-index: 9;
}
header h1 {
  position: fixed;
  width: min(15.312500000000002vw,196px);
  height: min(7.109375vw,91px);
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 0;
  left: 0;
  z-index: 11;
}
@media screen and (max-width: 768px) {
  header h1 {
    width: 112px;
    height: 50px;
  }
}
header h1 img {
  width: min(10.234375vw,131px);
  display: block;
}
@media screen and (max-width: 768px) {
  header h1 img {
    width: 87px;
  }
}
header .outlink_list {
  position: fixed;
  display: flex;
  gap: 4px min(2.03125vw,26px);
  top: min(2.1875vw,28px);
  right: min(8.671875vw,111px);
  z-index: 12;
}
@media screen and (max-width: 768px) {
  header .outlink_list {
    flex-direction: column-reverse;
    align-items: flex-end;
    top: 14px;
    right: 70px;
  }
}
header .outlink_list .link {
  display: flex;
  align-items: center;
  --color: #3C5E74;
  gap: min(0.546875vw,7px);
}
header.active .outlink_list .link {
  --color: #fff;
}
@media screen and (max-width: 768px) {
  header .outlink_list .link {
    gap: 4px;
  }
}
header .outlink_list .link .txt {
  font-size: min(max(1.25vw,1rem),1.6rem);
  font-weight: 700;
  letter-spacing: 0.048em;
  color: var(--color);
  background: linear-gradient(90deg, var(--color), var(--color)) 0 100% /var(--d, 0%) 1px no-repeat;
  transition: color ease .3s, background-size ease .3s;
}
@media screen and (min-width: 769px) {
  header .outlink_list .link:hover .txt {
    --d: 100%;
  }
}
@media screen and (max-width: 768px) {
  header .outlink_list .link .txt {
    font-size: 1.2rem;
  }
}
header .outlink_list .link .icon {
  width: min(1.25vw,16px);
  aspect-ratio: 16/13;
  mask-image: url(../img/icon_outlink.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  background-color: var(--color);
  transition: background-color ease .3s;
}
@media screen and (max-width: 768px) {
  header .outlink_list .link .icon {
    width: 12px;
  }
}
header .toggle {
  position: fixed;
  width: min(2.5vw,32px);
  aspect-ratio: 32/19;
  display: block;
  background: unset;
  border: unset;
  cursor: pointer;
  --bg: #3B5E74;
  top: min(2.421875vw,31px);
  right: min(2.5vw,32px);
  z-index: 12;
}
@media screen and (max-width: 768px) {
  header .toggle {
    width: 32px;
    top: 26px;
    right: 21px;
  }
}
header.active .toggle {
  --bg: #fff;
}
header .toggle .line {
  position: absolute;
  width: 100%;
  height: 2px;
  border-radius: 9999px;
  background-color: var(--bg);
  display: block;
  transition: top ease .3s, rotate ease .3s, background-color ease .3s;
  left: 0;
}
header .toggle .line:nth-of-type(1) {
  top: 0;
}
header .toggle .line:nth-of-type(2) {
  top: min(0.78125vw,10px);
}
header .toggle .line:nth-of-type(3) {
  top: min(1.484375vw,19px);
}
header.active .toggle .line:nth-of-type(1),
header.active .toggle .line:nth-of-type(3) {
  background-color: var(--bg);
  top: min(0.78125vw,10px);
  rotate: 150deg;
}
header.active .toggle .line:nth-of-type(2) {
  top: min(0.78125vw,10px);
  rotate: -150deg;
}
@media screen and (max-width: 768px) {
  header .toggle .line:nth-of-type(2) {
    top: 10px;
  }
  header .toggle .line:nth-of-type(3) {
    top: 19px;
  }
  header.active .toggle .line:nth-of-type(1),
  header.active .toggle .line:nth-of-type(3) {
    top: 10px;
  }
  header.active .toggle .line:nth-of-type(2) {
    top: 10px;
  }
}
header .menu {
  position: fixed;
  width: 100%;
  display: none;
  background-image: url(../img/menu_bg_pc.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border-radius: 0 0 min(1.875vw,24px) min(1.875vw,24px);
  padding: min(7.421875vw,95px) min(11.09375vw,142px) min(5.859375vw,75px);
  top: 0;
  left: 0;
  z-index: 11;
}
@media screen and (max-width: 768px) {
  header .menu {
    background-image: url(../img/menu_bg_sp.jpg);
    border-radius: 0 0 24px 24px;
    padding: 97px 43px 37px;
  }
}
header .menu .list {
  display: flex;
  flex-direction: column;
  gap: min(0.78125vw,10px);
  color: #fff;
}
@media screen and (max-width: 768px) {
  header .menu .list {
    gap: 8px;
  }
}
header .menu .list .link {
  width: fit-content;
  display: flex;
  align-items: center;
  gap: min(1.40625vw,18px);
}
@media screen and (max-width: 768px) {
  header .menu .list .link {
    gap: 12px;
  }
}
header .menu .list .link .num {
  font-size: min(2.890625vw,3.7rem);
  font-family: var(--cormorantGaramond);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.048em;
  display: block;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  header .menu .list .link .num {
    font-size: 2.7rem;
    align-self: flex-start;
  }
}
header .menu .list .link .txt {
  font-size: min(1.5625vw,20px);
  font-family: var(--shipporiMincho);
  font-weight: 700;
  color: #fff;
  background: linear-gradient(90deg, #fff, #fff) 0 100% /var(--d, 0%) 1px no-repeat;
  transition: background-size ease .3s;
  margin-top: min(0.9375vw,12px);
}
@media screen and (min-width: 769px) {
  header .menu .list .link:hover .txt {
    --d:100%;
  }
}
@media screen and (max-width: 768px) {
  header .menu .list .link .txt {
    font-size: 1.4rem;
    margin-top: 5px;
  }
}
header .menu .list .link .txt img {
  width: auto;
  height: 100%;
}
header .menu .list .link .icon {
  position: relative;
  width: min(1.953125vw,25px);
  height: fit-content;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: min(0.78125vw,10px);
}
@media screen and (max-width: 768px) {
  header .menu .list .link .icon {
    width: 19px;
    margin-top: 6px;
  }
}
header .menu .list .link .icon::before {
  content: '';
  position: absolute;
  width: min(0.8593750000000001vw,11px);
  height: auto;
  aspect-ratio: 1/1;
  background-image: url(../img/menu_arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: left ease .3s;
  translate: -50% -50%;
  top: 50%;
  left: 50%;
}
@media screen and (min-width: 769px) {
  header .menu .list .link:hover .icon::before {
    left: 64%;
  }
}
@media screen and (max-width: 768px) {
  header .menu .list .link .icon::before {
    width: 9px;
  }
}
/* ↑↑↑ header ↑↑↑ */
/* ↓↓↓ follow_btn ↓↓↓ */
.follow_btn {
  position: fixed;
  font-size: min(max(1.25vw,1rem),1.6rem);
  font-weight: 700;
  writing-mode: vertical-lr;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: min(0.625vw,8px) 0 0 min(0.625vw,8px);
  background-color: #28AA9B;
  border: 1px solid #28AA9B;
  padding: min(1.875vw,24px) min(0.9375vw,12px);
  transition: background-color ease .3s, color ease .3s;
  bottom: min(15.234375vw,195px);
  right: 0;
  z-index: 9;
}
@media screen and (min-width: 769px) {
  .follow_btn:hover {
    background-color: #fff;
    color: #28AA9B;
  }
}
@media screen and (max-width: 768px) {
  .follow_btn {
    font-size: 1.4rem;
    writing-mode: horizontal-tb;
    border-radius: 8px 8px 0 0;
    padding: 8px 27px;
    bottom: 0;
    right: 32px;
  }
}
/* ↑↑↑ follow_btn ↑↑↑ */
/* ↓↓↓ fv ↓↓↓ */
.fv {
  overflow: hidden;
}
.fv .inner {
  position: relative;
  width: 100%;
  display: block;
}
.fv .inner .img {
  max-width: 100%;
  width: 100%;
  display: block;
  border-radius: 0 0 2.5vw 2.5vw;
  overflow: hidden;
  clip-path: circle(0% at 50% 0);
  transform-origin: center top;
}
@media screen and (max-width: 768px) {
  .fv .inner .img {
    border-radius: 0 0 32px 32px;
  }
}
@media screen and (max-width: 768px) {
  .fv .inner .img03 {
    height: calc(100% - 14px*2);
    opacity: 1;
  }
}
.fv .inner .img img {
  width: 100%;
  max-height: calc(100dvh - 3.046875vw);
  aspect-ratio: 1280/681;
  object-fit: cover;
  object-position: center;
  display: block;
}
@media screen and (max-width: 768px) {
  .fv .inner .img img {
    max-height: 100dvh;
    aspect-ratio: 375/669;
    object-position: 50% 60%;
  }
}
.fv .inner .copy {
  position: absolute;
  width: 15.859375vw;
  top: 10.3125vw;
  right: 7.187499999999999vw;
}
@media screen and (max-width: 768px) {
  .fv .inner .copy {
    width: 140px;
    top: 266px;
    right: 39px;
  }
}
.fv .inner .ttl {
  position: absolute;
  width: 51.171875vw;
  translate: -50% 0;
  bottom: 6.5625vw;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .fv .inner .ttl {
    width: 357px;
    bottom: unset;
    top: 77px;
  }
}
.fv .inner .ttl::before {
  content: '';
  position: absolute;
  width: 22.265625vw;
  height: auto;
  aspect-ratio: 285/191;
  background-image: url(../img/fv_ttl_en_pc.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  bottom: -3.75vw;
  right: -8.515625vw;
}
@media screen and (max-width: 768px) {
  .fv .inner .ttl::before {
    width: 127px;
    aspect-ratio: 127/94;
    background-image: url(../img/fv_ttl_en_sp.svg);
    bottom: -28px;
    right: -23px;
  }
}
/* ↑↑↑ fv ↑↑↑ */
/* ↓↓↓ block01 ↓↓↓ */
.block01 {
  padding-inline: 27px;
  margin: min(8.046875vw,103px) auto 0;
}
@media screen and (max-width: 768px) {
  .block01 {
    margin-top: 81px;
  }
}
.block01 .inner {
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.block01 .eligibility {
  position: relative;
  background-image: url(../img/eligibility_bg_pc.jpg);
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: cover;
  padding: 3.1976744186046515cqw 0.9689922480620154cqw 3.875968992248062cqw;
}
@media screen and (max-width: 768px) {
  .block01 .eligibility {
    background-image: url(../img/eligibility_bg_sp.jpg);
    padding: 36px 10px;
  }
}
.block01 .eligibility .en {
  position: absolute;
  width: 23.15891472868217cqw;
  display: block;
  top: -3.10077519379845cqw;
  left: -1.6472868217054266cqw;
}
@media screen and (max-width: 768px) {
  .block01 .eligibility .en {
    width: 156px;
    top: -21px;
    left: -32px;
  }
}
.block01 .eligibility .ttl {
  position: relative;
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  padding-bottom: 1.3565891472868217cqw;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .block01 .eligibility .ttl {
    font-size: 2rem;
    padding-bottom: 15px;
  }
}
.block01 .eligibility .ttl::before {
  content: '';
  position: absolute;
  width: 2.616279069767442cqw;
  height: 1px;
  background-color: #3B5E74;
  border-radius: 9999px;
  translate: -50% 0;
  bottom: 0;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .block01 .eligibility .ttl::before {
    width: 27px;
  }
}
.block01 .eligibility .txt {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 1.744186046511628cqw auto 0;
}
@media screen and (max-width: 768px) {
  .block01 .eligibility .txt {
    font-size: 2.6rem;
    margin-top: 16px;
  }
}
.block01 .eligibility .txt .s_txt {
  font-size: 1.937984496124031cqw;
  display: block;
}
@media screen and (max-width: 768px) {
  .block01 .eligibility .txt .s_txt {
    font-size: 1.6rem;
  }
}
.block01 .period {
  margin: 11.627906976744185cqw auto 0;
}
@media screen and (max-width: 768px) {
  .block01 .period {
    margin-top: 65px;
  }
}
.block01 .period .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .block01 .period .ttl {
    font-size: 2rem;
  }
}
.block01 .period .date {
  width: 45.445736434108525cqw;
  display: block;
  margin: 1.937984496124031cqw auto 0;
}
@media screen and (max-width: 768px) {
  .block01 .period .date {
    width: min(100%,310px);
    margin-top: 21px;
  }
}
.block01 .toc {
  position: relative;
  width: 82.94573643410853cqw;
  background-image: url(../img/toc_bg_pc.jpg);
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: cover;
  padding: 5.523255813953488cqw 12.790697674418606cqw 6.686046511627906cqw;
  margin: 13.565891472868216cqw auto 0;
}
@media screen and (max-width: 768px) {
  .block01 .toc {
    width: 100%;
    background-image: url(../img/toc_bg_sp.jpg);
    background-position: right;
    padding: 41px 32px 47px;
    margin-top: 35px;
  }
}
.block01 .toc .en {
  position: absolute;
  width: 32.17054263565892cqw;
  display: block;
  bottom: -10.65891472868217cqw;
  right: -5.232558139534884cqw;
}
@media screen and (max-width: 768px) {
  .block01 .toc .en {
    width: 178px;
    bottom: -54px;
    row-gap: -23px;
  }
}
.block01 .toc .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .block01 .toc .ttl {
    font-size: 2rem;
  }
}
.block01 .toc .list {
  display: flex;
  flex-direction: column;
  gap: 0.9689922480620154cqw;
  margin-top: 5.426356589147287cqw;
}
@media screen and (max-width: 768px) {
  .block01 .toc .list {
    gap: 8px;
    margin: 26px auto 0;
  }
}
.block01 .toc .list .link {
  width: fit-content;
  display: flex;
  align-items: center;
  gap: 1.3565891472868217cqw;
}
@media screen and (max-width: 768px) {
  .block01 .toc .list .link {
    gap: 12px;
  }
}
.block01 .toc .list .link .num {
  font-size: 3.5852713178294575cqw;
  font-family: var(--cormorantGaramond);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.048em;
  display: block;
  align-self: flex-start;
}
@media screen and (max-width: 768px) {
  .block01 .toc .list .link .num {
    font-size: 2.7rem;
  }
}
.block01 .toc .list .link .txt {
  font-size: 2.3255813953488373cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  line-height: 1.3333333333333333;
  letter-spacing: 0.048em;
  margin-top: 0.1937984496124031cqw;
}
.block01 .toc .list .link .txt .line {
  background: linear-gradient(90deg, #3C5E74, #3C5E74) 0 100% / var(--d, 0%) 1px no-repeat;
  transition: background-size ease .3s;
}
@media screen and (min-width: 769px) {
  .block01 .toc .list .link:hover .txt .line {
    --d: 100%;
  }
}
@media screen and (max-width: 768px) {
  .block01 .toc .list .link .txt {
    font-size: 1.6rem;
    margin-top: 2px;
  }
}
.block01 .toc .list .link .txt img {
  width: auto;
  height: 100%;
  display: block;
}
/* ↑↑↑ block01 ↑↑↑ */
/* ↓↓↓ about ↓↓↓ */
.about {
  padding-inline: 27px;
  margin: min(9.453125vw,121px) auto 0;
}
@media screen and (max-width: 768px) {
  .about {
    margin-top: 64px;
  }
}
.about .inner {
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.about .inner .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .about .inner .ttl {
    font-size: 2rem;
  }
}
.about .inner .flex {
  display: flex;
  align-items: center;
  gap: 24px 3.875968992248062cqw;
  margin-top: 3.1976744186046515cqw;
}
@media screen and (max-width: 768px) {
  .about .inner .flex {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 24px;
  }
}
.about .inner .flex .img {
  width: 48.837209302325576cqw;
  height: fit-content;
  display: block;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .about .inner .flex .img {
    width: 100%;
  }
}
.about .inner .flex .txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.048em;
  text-align: justify;
  word-break: break-all;
}
@media screen and (max-width: 768px) {
  .about .inner .flex .txt {
    font-size: 1.5rem;
    line-height: 1.7333333333333334;
  }
}
.about .inner .flex .txt .green {
  color: #28AA9B;
}
/* ↑↑↑ about ↑↑↑ */
/* ↓↓↓ flow ↓↓↓ */
.flow {
  padding-inline: 27px;
  margin: min(9.453125vw,121px) auto 0;
}
@media screen and (max-width: 768px) {
  .flow {
    margin-top: 65px;
  }
}
.flow .inner {
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.flow .inner .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .flow .inner .ttl {
    font-size: 2rem;
  }
}
.flow .inner .list {
  display: flex;
  gap: 40px 2.3255813953488373cqw;
  margin: 8.236434108527131cqw auto 0;
}
@media screen and (max-width: 768px) {
  .flow .inner .list {
    flex-direction: column;
    margin-top: 41px;
  }
}
.flow .inner .list .unit {
  position: relative;
  flex: 1;
  background-color: #DDF2F8;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4.3604651162790695cqw 0.9689922480620154cqw 4.651162790697675cqw;
}
@media screen and (max-width: 768px) {
  .flow .inner .list .unit {
    flex-direction: row;
    gap: 23px;
    padding: 41px 13px 30px 39px;
  }
}
.flow .inner .list .unit:not(:last-of-type)::before {
  content: '';
  position: absolute;
  width: 2.0348837209302326cqw;
  height: auto;
  aspect-ratio: 21/31;
  background-image: url(../img/flow_arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  translate: 0 -50%;
  top: 50%;
  right: -1.2596899224806202cqw;
}
@media screen and (max-width: 768px) {
  .flow .inner .list .unit:not(:last-of-type)::before {
    width: 15px;
    rotate: 90deg;
    translate: -50% 0;
    top: unset;
    bottom: -10px;
    left: 50%;
  }
}
.flow .inner .list .unit .num {
  position: absolute;
  font-size: 9.689922480620156cqw;
  font-family: var(--cormorantGaramond);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.048em;
  color: #28AA9B;
  top: -5.813953488372093cqw;
  left: 2.3255813953488373cqw;
}
@media screen and (max-width: 768px) {
  .flow .inner .list .unit .num {
    font-size: 7.6rem;
    translate: -50% 0;
    top: -50px;
    left: 50%;
  }
}
.flow .inner .list .unit .icon {
  width: 15.310077519379844cqw;
  height: fit-content;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .flow .inner .list .unit .icon {
    width: 87px;
    flex-shrink: 0;
  }
}
.flow .inner .list .unit .txt {
  flex: 1;
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.048em;
  text-align: center;
  display: flex;
  align-items: center;
  margin-top: 1.550387596899225cqw;
}
@media screen and (max-width: 768px) {
  .flow .inner .list .unit .txt {
    font-size: 1.5rem;
    text-align: start;
    margin-top: unset;
  }
}
.flow .inner .list .unit:first-of-type .txt {
  font-size: 2.7131782945736433cqw;
  color: #28AA9B;
}
@media screen and (max-width: 768px) {
  .flow .inner .list .unit:first-of-type .txt {
    font-size: 2rem;
  }
}
/* ↑↑↑ flow ↑↑↑ */
/* ↓↓↓ theme ↓↓↓ */
.theme {
  position: relative;
  background-color: #DDF2F8;
  padding: min(10.505050505050505vw,104px) 27px;
  margin: min(9.375vw,120px) auto 0;
}
@media screen and (max-width: 768px) {
  .theme {
    padding-block: 56px 40px;
    margin-top: 64px;
  }
}
.theme::before {
  content: '';
  position: absolute;
  width: min(119.84375vw,1534px);
  height: 100%;
  background-image: url(../img/theme_bg_pc.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  translate: -50% 0;
  top: 0;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .theme::before {
    width: 100%;
    background-image: url(../img/theme_bg_sp.png);
  }
}
.theme .inner {
  position: relative;
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.theme .inner .en {
  position: absolute;
  width: 38.17829457364341cqw;
  top: -17.441860465116278cqw;
  left: 5.910852713178294cqw;
}
@media screen and (max-width: 768px) {
  .theme .inner .en {
    width: 217px;
    top: -97px;
    left: -27px;
  }
}
.theme .inner .ttl {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.theme .inner .ttl .ttl_en {
  font-size: 5.813953488372093cqw;
  font-family: var(--cormorantGaramond);
  font-weight: 700;
  letter-spacing: 0.048em;
}
@media screen and (max-width: 768px) {
  .theme .inner .ttl .ttl_en {
    font-size: 4.2rem;
  }
}
.theme .inner .ttl .ttl_ja {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.048em;
}
@media screen and (max-width: 768px) {
  .theme .inner .ttl .ttl_ja {
    font-size: 1.5rem;
  }
}
.theme .inner .head {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 5.426356589147287cqw auto 0;
}
@media screen and (max-width: 768px) {
  .theme .inner .head {
    font-size: 2rem;
    margin-top: 32px;
  }
}
.theme .inner .txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.048em;
  text-align: justify;
  word-break: break-all;
  margin-top: 3.488372093023256cqw;
}
@media screen and (max-width: 768px) {
  .theme .inner .txt {
    font-size: 1.5rem;
    line-height: 1.8666666666666667;
    margin-top: 17px;
  }
}
/* ↑↑↑ theme ↑↑↑ */
/* ↓↓↓ requirements ↓↓↓ */
.requirements {
  padding-inline: 27px;
  margin: min(9.375vw,120px) auto 0;
}
@media screen and (max-width: 768px) {
  .requirements {
    margin-top: 52px;
  }
}
.requirements .inner {
  position: relative;
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.requirements .inner .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .requirements .inner .ttl {
    font-size: 2rem;
  }
}
.requirements .inner .list {
  display: flex;
  flex-direction: column;
  gap: 2.3255813953488373cqw;
  margin-top: 5.038759689922481cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list {
    gap: 16px;
    margin-top: 30px;
  }
}
.requirements .inner .list .unit {
  display: flex;
  gap: 2.422480620155039cqw;
  border-bottom: 1px solid #3B5E74;
  padding-bottom: 2.3255813953488373cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit {
    gap: 7px;
    padding-bottom: 16px;
  }
}
.requirements .inner .list .unit .head {
  width: 15.988372093023257cqw;
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  letter-spacing: 0.048em;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .head {
    width: 119px;
    font-size: 1.5rem;
    letter-spacing: 0;
  }
}
.requirements .inner .list .unit .conts {
  flex: 1;
}
.requirements .inner .list .unit .conts .txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.048em;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .txt {
    font-size: 1.5rem;
    line-height: 1.4666666666666666;
  }
}
.requirements .inner .list .unit .conts .green {
  color: #28AA9B;
}
.requirements .inner .list .unit .conts .flex {
  display: flex;
}
.requirements .inner .list .unit .conts .flex span:first-of-type {
  flex-shrink: 0;
}
.requirements .inner .list .unit .conts .txt_link {
  text-decoration: underline;
  color: #28AA9B;
  transition: opacity ease .3s;
}
@media screen and (min-width: 769px) {
  .requirements .inner .list .unit .conts .txt_link:hover {
    text-decoration: none;
    opacity: .7;
  }
}
.requirements .inner .list .unit .conts .schedule {
  width: 73.64341085271317cqw;
  display: flex;
  flex-direction: column;
  gap: 3.875968992248062cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule {
    width: 100%;
    gap: 28px;
  }
}
.requirements .inner .list .unit .conts .schedule .schedule_unit {
  position: relative;
}
.requirements .inner .list .unit .conts .schedule_unit+.schedule_unit::before {
  content: '';
  position: absolute;
  width: 1.8410852713178296cqw;
  height: auto;
  aspect-ratio: 19/13;
  background-image: url(../img/schedule_arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  translate: -50% -100%;
  top: -1.4534883720930232cqw;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule_unit+.schedule_unit::before {
    width: 21px;
    aspect-ratio: 21/15;
    top: -7px;
  }
}
.requirements .inner .list .unit .conts .schedule .box {
  position: relative;
  background-color: #DDF2F8;
  display: flex;
  align-items: center;
  padding: 2.0348837209302326cqw 3.9728682170542635cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box {
    flex-direction: column;
    align-items: flex-start;
    padding: 0 19px 16px;
  }
}
.requirements .inner .list .unit .conts .schedule .box .deco {
  position: absolute;
  width: 8.333333333333332cqw;
  height: auto;
  aspect-ratio: 1/1;
  font-size: max(1.2596899224806202cqw,1rem);
  font-weight: 700;
  line-height: 1.2307692307692308;
  letter-spacing: 0.048em;
  text-align: center;
  color: #fff;
  border-radius: 50%;
  background-color: #28AA9B;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.3875968992248062cqw;
  translate: 50% -50%;
  top: 50%;
  right: 0%;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .deco {
    width: 64px;
    font-size: 1rem;
    line-height: 1.2;
    padding: 4px;
    translate: unset;
    top: -6px;
    right: -16px;
  }
}
.requirements .inner .list .unit .conts .schedule .box .txt_group {
  width: 24.031007751937985cqw;
  display: flex;
  align-items: center;
  gap: 1.6472868217054266cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .txt_group {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
}
.requirements .inner .list .unit .conts .schedule .box .box_num {
  font-size: 4.069767441860465cqw;
  font-family: var(--cormorantGaramond);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.048em;
  flex-shrink: 0;
  margin-top: -0.6782945736434108cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .box_num {
    font-size: 4.2rem;
    margin-top: unset;
  }
}
.requirements .inner .list .unit .conts .schedule .box .box_head {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  letter-spacing: 0.048em;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .box_head {
    font-size: 1.5rem;
    line-height: 1.4666666666666666;
  }
}
.requirements .inner .list .unit .conts .schedule .box .cat_list {
  width: 16.472868217054263cqw;
  display: flex;
  gap: 11px 0.4844961240310077cqw;
  margin-left: 1.6472868217054266cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .cat_list {
    width: 100%;
    flex-direction: column;
    margin-left: unset;
    margin-top: 8px;
  }
}
.requirements .inner .list .unit .conts .schedule .box .cat {
  font-size: max(1.550387596899225cqw,1rem);
  font-weight: 700;
  letter-spacing: 0.048em;
  color: #fff;
  border-radius: 9999px;
  background-color: #28AA9B;
  padding: 0.29069767441860467cqw 1.2596899224806202cqw;
}
.requirements .inner .list .unit .conts .schedule .box .cat:nth-of-type(2) {
  background-color: #3C5E74;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .cat {
    width: fit-content;
    font-size: 1.4rem;
    padding: 3px 30px;
  }
}
.requirements .inner .list .unit .conts .schedule .box .box_txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.048rem;
  margin-left: 2.616279069767442cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .box .box_txt {
    font-size: 1.5rem;
    line-height: 1.4666666666666666;
    margin-left: unset;
    margin-top: 11px;
  }
}
.requirements .inner .list .unit .conts .schedule .unit_txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.048em;
  margin-top: 1.550387596899225cqw;
}
@media screen and (max-width: 768px) {
  .requirements .inner .list .unit .conts .schedule .unit_txt {
    font-size: 1.5rem;
    margin-top: 5px;
  }
}
/* ↑↑↑ requirements ↑↑↑ */
/* ↓↓↓ form ↓↓↓ */
.form {
  padding-inline: 27px;
  margin: min(9.375vw,120px) auto 0;
}
@media screen and (max-width: 768px) {
  .form {
    margin-top: 64px;
  }
}
.form .inner {
  position: relative;
  max-width: 1032px;
  background-image: url(../img/form_bg_pc.jpg);
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: cover;
  padding: min(8.931860036832411vw,97px) min(1.4732965009208103vw,16px) min(9.576427255985267vw,104px);
  container-type: inline-size;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .form .inner {
    width: 100%;
    background-image: url(../img/form_bg_sp.jpg);
    padding: 36px 10px 40px;
  }
}
.form .inner .en {
  position: absolute;
  width: 46.5cqw;
  bottom: -12.2cqw;
  right: -4.7cqw;
}
@media screen and (max-width: 768px) {
  .form .inner .en {
    width: 216px;
    bottom: -66px;
    right: -27px;
  }
}
.form .inner .ttl {
  font-size: 3.2cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .form .inner .ttl {
    font-size: 2rem;
  }
}
.form .inner .btn {
  position: relative;
  width: 56cqw;
  height: 9.8cqw;
  font-size: 2.6cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  color: #fff;
  border-radius: 9999px;
  background-color: #28AA9B;
  border: 1px solid #28AA9B;
  display: flex;
  justify-content: center;
  align-items: center;
  filter: drop-shadow(0.6cqw 0.6cqw 1cqw rgba(19, 59, 87,.16));
  transition: background-color ease .3s;
  margin: 3.6cqw auto 0;
}
@media screen and (min-width: 769px) {
  .form .inner .btn:hover {
    color: #28AA9B;
    background-color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .form .inner .btn {
    width: min(100%,267px);
    height: 72px;
    font-size: 1.6rem;
    filter: drop-shadow(6px 6px 10px rgba(19, 59, 87,.16));
    padding-right: 22px;
    margin-top: 21px;
  }
}
.form .inner .btn::before {
  content: '';
  position: absolute;
  width: 1.8cqw;
  height: auto;
  aspect-ratio: 18/19;
  mask-image: url(../img/form_arrow.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  background-color: #fff;
  transition: background-color ease .3s;
  translate: 0 -50%;
  top: 50%;
  right: 3cqw;
}
@media screen and (min-width: 769px) {
  .form .inner .btn:hover::before {
    background-color: #28AA9B;
  }
}
@media screen and (max-width: 768px) {
  .form .inner .btn::before {
    width: 13px;
    aspect-ratio: 13/14;
    right: 22px;
  }
}
.form .inner .note {
  font-size: 2cqw;
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 1.6cqw auto 0;
}
@media screen and (max-width: 768px) {
  .form .inner .note {
    font-size: 1.2rem;
    margin-top: 16px;
  }
}
/* ↑↑↑ form ↑↑↑ */
/* ↓↓↓ past ↓↓↓ */
.past {
  padding: 0 27px;
  margin: min(8.75vw,112px) auto 0;
}
@media screen and (max-width: 768px) {
  .past {
    margin-top: 60px;
  }
}
.past .inner {
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.past .inner .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto ;
}
@media screen and (max-width: 768px) {
  .past .inner .ttl {
    font-size: 2rem;
  }
}
.past .inner .movie .thumb {
  width: 48.837209302325576cqw;
  display: block;
  transition: opacity ease .3s;
  margin: 4.263565891472868cqw auto 0;
}
@media screen and (min-width: 769px) {
  .past .inner .movie .thumb:hover {
    opacity: .7;
  }
}
@media screen and (max-width: 768px) {
  .past .inner .movie .thumb {
    width: calc(100% - 3px*2);
    margin-top: 29px;
  }
}
.past .inner .movie .caption {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 1.550387596899225cqw auto 0;
}
@media screen and (max-width: 768px) {
  .past .inner .movie .caption {
    font-size: 1.5rem;
    line-height: 1.4666666666666666;
    margin: 16px -12px 0;
  }
}
.past .realization {
  margin: min(8.828125vw,113px) auto 0;
}
.past .realization .lead {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 2.7131782945736433cqw auto 0;
}
@media screen and (max-width: 768px) {
  .past .realization .lead {
    font-size: 1.5rem;
    line-height: 1.4;
    margin-top: 24px;
  }
}
.past .realization .flex {
  display: flex;
  gap: 20px 2.3255813953488373cqw;
  margin-top: 4.069767441860465cqw;
}
@media screen and (max-width: 768px) {
  .past .realization .flex {
    flex-direction: column;
    margin-top: 33px;
  }
}
.past .realization .flex .box {
  flex: 1;
  background-image: var(--bg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding: 4.748062015503876cqw 3.77906976744186cqw 6.2015503875969cqw;
}
@media screen and (max-width: 768px) {
  .past .realization .flex .box {
    background-position: right bottom;
    padding: 36px 33px 40px;
  }
}
.past .realization .flex .box:nth-of-type(1) {
  --bg: url(../img/realization_bg01_pc.jpg);
}
.past .realization .flex .box:nth-of-type(2) {
  --bg: url(../img/realization_bg02_pc.jpg);
}
.past .realization .flex .box .head {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .past .realization .flex .box .head {
    font-size: 2rem;
  }
}
.past .realization .flex .box .txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.048em;
  text-align: justify;
  margin-top: 2.7131782945736433cqw;
}
@media screen and (max-width: 768px) {
  .past .realization .flex .box .txt {
    font-size: 1.5rem;
    line-height: 1.7333333333333334;
    margin-top: 21px;
  }
}
.past .realization .flex .box .link {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.048em;
  text-decoration: underline;
  color: #28AA9B;
  display: block;
  transition: opacity ease .3s;
  margin-top: 2.3255813953488373cqw;
}
@media screen and (min-width: 769px) {
  .past .realization .flex .box .link:hover {
    opacity: .7;
  }
}
@media screen and (max-width: 768px) {
  .past .realization .flex .box .link {
    font-size: 1.5rem;
    line-height: 1.4;
    margin-top: 16px;
  }
}
.past .voice {
  margin: min(11.25vw,144px) auto 0;
}
@media screen and (max-width: 768px) {
  .past .voice {
    margin-top: 78px;
  }
}
.past .voice .btn {
  width: 54.263565891472865cqw;
  height: 9.496124031007753cqw;
  font-size: 2.5193798449612403cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  color: #fff;
  border-radius: 9999px;
  border: 1px solid #28AA9B;
  background-color: #28AA9B;
  display: flex;
  justify-content: center;
  align-items: center;
  filter: drop-shadow(0.6cqw 0.6cqw 1cqw rgba(19, 59, 87,.16));
  transition: background-color ease .3s, color ease .3s;
  margin: 4.263565891472868cqw auto 0;
}
@media screen and (min-width: 769px) {
  .past .voice .btn:hover {
    color: #28AA9B;
    background-color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .past .voice .btn {
    width: min(100%, 267px);
    height: 72px;
    font-size: 1.6rem;
    filter: drop-shadow(6px 6px 10px rgba(19, 59, 87, .16));
    margin-top: 29px;
  }
}
.past .voice .btn::before {
  content: '';
  position: absolute;
  width: 1.8cqw;
  height: auto;
  aspect-ratio: 18/19;
  mask-image: url(../img/form_arrow.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  background-color: #fff;
  transition: background-color ease .3s;
  translate: 0 -50%;
  top: 50%;
  right: 3cqw;
}
@media screen and (min-width: 769px) {
  .past .voice .btn:hover::before {
    background-color: #28AA9B;
  }
}
@media screen and (max-width: 768px) {
  .past .voice .btn::before {
    width: 13px;
    aspect-ratio: 13/14;
    right: 22px;
  }
}
/* ↑↑↑ past ↑↑↑ */
/* ↓↓↓ contact ↓↓↓ */
.contact {
  position: relative;
  background-color: #DDF2F8;
  padding: min(8.56353591160221vw,93px) 27px min(6.537753222836096vw,71px);
  margin: min(16.171875vw,207px) auto 0;
}
@media screen and (max-width: 768px) {
  .contact {
    padding-block: 60px 64px;
    margin-top: 64px;
  }
}
.contact::before {
  content: '';
  position: absolute;
  width: min(108.74999999999999vw, 1392px);
  height: 100%;
  background-image: url(../img/contact_bg_pc.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  translate: -50% 0;
  top: 0;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .contact::before {
    width: 100%;
    background-image: url(../img/contact_bg_sp.jpg);
  }
}
.contact .inner {
  position: relative;
  max-width: 1032px;
  container-type: inline-size;
  margin: 0 auto;
}
.contact .inner .ttl {
  font-size: 3.10077519379845cqw;
  font-family: var(--shipporiMincho);
  font-weight: 700;
  letter-spacing: 0.048em;
  text-align: center;
  margin: 0 auto ;
}
@media screen and (max-width: 768px) {
  .contact .inner .ttl {
    font-size: 2rem;
  }
}
.contact .inner .en {
  position: absolute;
  width: 31.1046511627907cqw;
  top: -15.69767441860465cqw;
  left: 6.686046511627906cqw;
}
@media screen and (max-width: 768px) {
  .contact .inner .en {
    width: 151px;
    top: -87px;
    left: 7px;
  }
}
.contact .inner .txt {
  font-size: 1.937984496124031cqw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.048em;
  text-align: center;
  margin-top: 2.7131782945736433cqw;
}
@media screen and (max-width: 768px) {
  .contact .inner .txt {
    font-size: 1.2rem;
    line-height: 1.4166666666666667;
    margin-top: 21px;
  }
}
.contact .inner .txt .green {
  color: #28AA9B;
}
.contact .inner .txt .txtlink {
  text-decoration: underline;
  color: #28AA9B;
  transition: opacity ease .3s;
}
@media screen and (min-width: 769px) {
  .contact .inner .txt .txtlink:hover {
    opacity: .7;
    text-decoration: none;
  }
}
/* ↑↑↑ contact ↑↑↑ */
/* ↓↓↓ footer ↓↓↓ */
footer {
  background-color: #3C5E74;
  padding: min(1.25vw,16px) min(5.078125vw,65px) min(1.484375vw,19px) min(4.84375vw,62px);
}
@media screen and (max-width: 768px) {
  footer {
    padding: 16px;
  }
}
footer .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 768px) {
  footer .inner {
    flex-direction: column;
    gap: 8px;
  }
}
footer .inner small {
  font-size: min(max(0.9375vw,1rem),1.2rem);
  font-weight: 700;
  letter-spacing: 0.048em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  footer .inner small {
    font-size: 1rem;
    text-align: center;
  }
}
footer .inner .link_list {
  display: flex;
  gap: min(2.5vw,32px);
  align-items: center;
}
@media screen and (max-width: 768px) {
  footer .inner .link_list {
    gap: 51px;
    justify-content: space-between;
  }
}
footer .inner .link_list .link {
  font-size: min(max(1.09375vw,1rem),1.4rem);
  font-weight: 700;
  letter-spacing: 0.048em;
  color: #fff;
  background: linear-gradient(90deg, #fff, #fff) 0 100% / var(--d, 0%) 1px no-repeat;
  transition: background-size ease .3s;
}
@media screen and (min-width: 769px) {
  footer .inner .link_list .link:hover {
    --d: 100%;
  }
}
@media screen and (max-width: 768px) {
  footer .inner .link_list .link {
    font-size: 1.2rem;
    --d: 100%;
  }
}
/* ↑↑↑ footer ↑↑↑ */