:root {
  --vw: 1vw;
  --media_sp: 768;
  --fw_regular: 400;
  --fw_medium: 500;
  --fw_bold: 700;
}
[hidden] {
  display: none;
}
button {
  padding: 0;
  border: none;
  outline: none;
  font: inherit;
  color: inherit;
  background: none
}
/* 画像を扱いやすくする */
div:has(> img),p:has(> img),
div:has(> svg),p:has(> svg) {
  font-size: 0;
}
img,svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
img {
  image-rendering:auto;
}
svg,*:has(> img) {
  font-size: 0;
}

/* iOSでのデフォルトアイコンを非表示にする */
details summary {
  list-style: none; /* リストスタイルの削除 */
}
/* Safari特有のデフォルトマーカーを非表示にする */
summary::-webkit-details-marker {
  display: none;
}

/* respond */
:root {
  --sw: 1vw;
  --vw: 1vw;
  --media_sp: 768;
  --inner: min(690px, calc((( 690 / var(--media_sp)) * 100) * var(--sw)));
}
html {
  overflow-y: scroll;
  scroll-behavior: smooth;
}
body {
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-weight: 400;
  font-optical-sizing: auto;
  font-feature-settings: "palt";
}
a,button {
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.2s cubic-bezier(0.16, 0.59, 0.04, 0.99);
}
a:hover,button:hover {
  opacity: 0.7;
  transition: opacity 0.2s cubic-bezier(0.16, 0.59, 0.04, 0.99);
}
a:has(> img){
  display: block;
}
br.sp,span.sp,br.tb,span.tb {display: none;}
@media (min-width:769px) {
  .sp {display: none;}
  br.pc,span.pc {display: inline;}
}
@media (min-width:769px) and (max-width: 1000px) {
  br.tab,span.tab {display: inline;}
}
@media screen and (max-width: 768px) {
  .pc {display: none;}
  br.pc,span.pc,br.tab,span.tab {display: none;}
  br.sp,span.sp {display: inline;}
}
video {
  display: block;
  filter: drop-shadow(0px 0px #000);
  border: none;
  outline: none;
}
/* respond */

/* header */
.header {
  width: 100%;
  padding-block: 40px 150px;
  overflow: hidden;
}
.header-inner {
  position: relative;
  margin-inline: auto;
  width: min(1000px, 100%);
}
.head_logo {
  width: 152px;
}
.head_ttl {
  display: block;
  margin-inline: auto;
  font-size: 0;
}
.head_date {
  display: block;
  margin-inline: auto;
  width: 95%;
  font-size: 0;
}
.head_map {
  position: absolute;
  bottom: -13.7%;
  right: -18.4%;
  display: block;
  width: 291.4px;
  height: auto;
}
@media screen and (max-width:768px) {
  .header {
    padding-block: calc((( 30 / var(--media_sp)) * 100) * var(--vw))
    calc((( 90 / var(--media_sp)) * 100) * var(--vw));
  }
  .head_logo {
    margin-left: calc((( 37 / var(--media_sp)) * 100) * var(--vw));
    width: calc((( 204 / var(--media_sp)) * 100) * var(--vw));
  }
  .head_date {
    width: 86.979%;
  }
  .head_map {
    bottom: calc((( -74 / var(--media_sp)) * 100) * var(--vw));
    right: calc((( -15 / var(--media_sp)) * 100) * var(--vw));
    width: calc((( 194.763 / var(--media_sp)) * 100) * var(--vw));
  }
}
/* header */

/* apply */
.apply {
  position: relative;
  padding-block: 77px 90px;
  width: 100%;
}
.apply hgroup {
  margin-bottom: 48px;
}
.apply_step {
  background-color: #fff;
  margin-inline: auto;
  padding-block: 32px 47px;
  width: min(950px, 95%);
  box-sizing: border-box;
  text-align: center;
  border-radius: 20px;
}
.apply_step1 {
  margin-bottom: 30px;
}
.apply_head {
  position: relative;
  width: fit-content;
  display: block;
  margin-inline: auto;
  font-weight: var(--fw_bold);
  font-size: 64px;
  letter-spacing: 0.115em;
  text-align: center;
}
.apply_head .underline {
  display: block;
  margin-top: 5px;
  width: 100%;
  height: 3px;
  background-color: #000;
  border-radius: 100vmax;
}
.apply_head .underline + .underline {
  margin-top: 8.5px;
}
.apply_head_txt {
  margin-top: 45px;
  font-weight: var(--fw_bold);
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0.115em; 
  text-align: center;
}
.apply_step_ttl {
  font-weight: var(--fw_bold);
  font-size: 28px;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #0066b6;
}
.apply_step_dash {
  margin-top: 14px;
  margin-inline: auto;
  width: 84.211%;
}
.apply_step_txt {
  width: 84.211%;
  margin-top: 30px;
  margin-inline: auto;
  font-weight: var(--fw_medium);
  font-size: 22px;
  line-height: 2.272;
  letter-spacing: 0.115em;
}
.apply_step_txt a {
  color: #0068b4;
  text-decoration: underline;
  text-decoration-skip-ink: none;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.12em;
}
@media screen and (max-width:768px) {
  .apply {
    padding-block: calc((( 57 / var(--media_sp)) * 100) * var(--vw)) 90px;
  }
  .apply hgroup {
    margin-bottom: calc((( 50 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_step {
    padding-block: calc((( 38 / var(--media_sp)) * 100) * var(--vw))
    calc((( 52 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
    border-radius: calc((( 14 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_step1 {
    margin-bottom: calc((( 30 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_head {
    font-size: calc((( 51 / var(--media_sp)) * 100) * var(--vw));
    letter-spacing: 0.115em;
  }
  .apply_head .underline {
    margin-top: calc((( 3 / var(--media_sp)) * 100) * var(--vw));
    width: 98.5%;
    height: calc((( 3 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_head .underline + .underline {
    margin-top: calc((( 6 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_head_txt {
    margin-top: calc((( 48 / var(--media_sp)) * 100) * var(--vw));
    font-size: calc((( 28 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_step_ttl {
    font-size: calc((( 32 / var(--media_sp)) * 100) * var(--vw));
  }
  .apply_step_dash {
    margin-top: calc((( 26 / var(--media_sp)) * 100) * var(--vw));
    width: 94.76%;
  }
  .apply_step_txt {
    width: 100%;
    margin-top: calc((( 37 / var(--media_sp)) * 100) * var(--vw));
    font-size: calc((( 26 / var(--media_sp)) * 100) * var(--vw));
    letter-spacing: 0.08em;
    line-height: 1.923;
  }
  .apply_step_txt a {
    color: #0068b4;
    text-decoration: underline;
    text-decoration-skip-ink: none;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.12em;
  }
}
/* apply */

/* present */
.present {
  position: relative;
  padding-block: 90px;
  width: 100%;
}
.present_head {
  font-weight: var(--fw_bold);
  font-size: 64px;
  letter-spacing: 0.115em;
  text-align: center;
}
.present_txt {
  font-weight: var(--fw_bold);
  font-size: 40px;
  letter-spacing: 0.115em;
  text-align: center;
}
.present_ttl {
  margin-top: 23px;
  font-weight: var(--fw_bold);
  font-size: 55px;
  line-height: 1.418;
  letter-spacing: 0.115em;
  text-align: center;
}
.present_notes {
  width: min(950px, 95%);
  margin-top: 44px;
  margin-inline: auto;
}
.present_notes_txt {
  font-weight: var(--fw_regular);
  font-size: 22px;
  line-height: 1.955;
  letter-spacing: 0.1em;
  text-indent: -1em;
  padding-left: 1em;
}
@media screen and (max-width:768px) {
  .present {
    padding-block: calc((( 78 / var(--media_sp)) * 100) * var(--vw));
  }
  .present_head {
    font-size: calc((( 51 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.529;
  }
  .present_txt {
    font-size: calc((( 33 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.636;
  }
  .present_ttl {
    margin-top: calc((( 6 / var(--media_sp)) * 100) * var(--vw));
    font-size: calc((( 40 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.625;
  }
  .present_notes {
    margin-top: calc((( 40 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
  .present_notes_txt {
    font-size: calc((( 21 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.857;
    letter-spacing: 0.05em;
  }
}

.present_desc {
  background-color: #f5eddb;
  margin-top: 100px;
  margin-inline: auto;
  width: min(950px, 95%);
}
.present_desc_content {
  background-color: #fff;
  padding: 60px 46px 68px;
  box-sizing: border-box;
  border: 4px solid #f5eddb;
}
.present_desc .summary {
  position: relative;
  padding-block: 30px;
  font-weight: var(--fw_medium);
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
}
.present_desc .summary_icon {
  position: absolute;
  top: 50%;
  right: 4.4%;
  display: block;
  width: 15px;
  aspect-ratio: 1 / 1;
}
.present_desc .summary_icon-line {
  content: "";
  position: absolute;
  display: block;
  inset: 0;
  width: 100%;
  height: 2px;
  background-color: #000;
}
.js-summary {
  cursor: pointer;
}
.summary_icon-line.transform {
  rotate: 90deg;
  transition: rotate 0.2s;
  transform-origin: center;
}
.js-details.js-is-opened .summary_icon-line.transform {
  rotate: 0deg;
}
.present_desc_content_txt {
  font-weight: var(--fw_regular);
  font-size: 17px;
  line-height: 1.824;
  letter-spacing: 0.06em;
}
.present_desc_content_contact {
  margin-top: 32px;
  font-weight: var(--fw_regular);
  font-size: 17px;
  line-height: 1.824;
  letter-spacing: 0.06em;
}
@media screen and (max-width:768px) {
  .present_desc {
    margin-top: calc((( 90 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
  .present_desc_content {
    padding-top: calc((( 50 / var(--media_sp)) * 100) * var(--vw));
    padding-inline: calc((( 46 / var(--media_sp)) * 100) * var(--vw));
    padding-bottom: calc((( 56 / var(--media_sp)) * 100) * var(--vw));
    border: calc((( 4 / var(--media_sp)) * 100) * var(--vw)) solid #f5eddb;
  }
  .present_desc .summary {
    padding-block: calc((( 18 / var(--media_sp)) * 100) * var(--vw));
    font-size: calc((( 28 / var(--media_sp)) * 100) * var(--vw));
  }
  .present_desc .summary_icon {
    right: 3.4%;
    width: 14px;
  }
  .present_desc .summary_icon-line {
    height: 2px;
  }
  .present_desc_content_txt {
    font-size: calc((( 21 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.714;
  }
  .present_desc_content_contact {
    margin-top: 32px;
    font-size: calc((( 21 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.714;
  }
}
/* present */

/* mov */
.mov {
  margin-top: 100px;
  width: 100%;
}
.mov-wrap video {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 0.63689;
}
_::-webkit-full-page-media, _:future, :root .mov-wrap video{
  filter: none;
}
@media screen and (max-width:768px) {
  .mov {
    margin-top: calc((( 30 / var(--media_sp)) * 100) * var(--vw));
  }
  .mov-wrap video {
    aspect-ratio: 1 / 0.87239;
  }
}
/* mov */

/* voice */
.voice {
  margin-top: 78px;
}
.voice_head {
  font-weight: var(--fw_bold);
  font-size: 55px;
  line-height: 1;
  letter-spacing: 0.06em;
  text-align: center;
}
.voice_head_txt {
  margin-top: 37px;
  font-weight: var(--fw_regular);
  font-size: 20px;
  line-height: 2.4;
  letter-spacing: 0.08em;
  text-align: center;
}
.voice_media {
  margin-top: 70px;
  margin-inline: auto;
  width: min(950px, 95%);
}
.voice_media-container {
  display: flex;
  flex-wrap: wrap;
  /* justify-content: space-between; */
  gap: 20px 2.105%;
}
.voice_media_item {
  width: 23.421%;
  height: auto;
  aspect-ratio: 1 / 1;
}
.voice_media_item video {
  width: 100%;
  height: 100%;
  object-position: center;
  object-fit: cover;
}
.voice_lnk {
  margin-top: 130px;
  margin-inline: auto;
  width: 750px;
  aspect-ratio: 1 / 0.13024;
}
.voice_lnk a {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  background-color: #0068b4;
  color: #fff;
  font-weight: var(--fw_bold);
  font-size: 34px;
  letter-spacing: 0.08em;
  border-radius: 100vmax;
  text-align: center;
}
@media screen and (max-width:768px) {
  .voice {
    margin-top: calc((( 60 / var(--media_sp)) * 100) * var(--vw));
  }
  .voice_head {
    font-size: calc((( 60 / var(--media_sp)) * 100) * var(--vw));
    letter-spacing: 0.09em;
  }
  .voice_head_txt {
    margin-top: calc((( 45 / var(--media_sp)) * 100) * var(--vw));
    font-weight: var(--fw_medium);
    font-size: calc((( 26 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.923;
    letter-spacing: 0.115em;
  }
  .voice_media {
    margin-top: calc((( 84 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
  .voice_media-container {
    gap: calc((( 20 / var(--media_sp)) * 100) * var(--vw)) 2.996%;
  }
  .voice_media_item {
    width: 48.502%;
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .voice_lnk {
    margin-top: calc((( 120 / var(--media_sp)) * 100) * var(--vw));
    width: calc((( 550 / var(--media_sp)) * 100) * var(--vw));
    aspect-ratio: 1 / 0.30909;
  }
  .voice_lnk a {
    font-size: calc((( 35 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.571;
  }
}
/* voice */

/* about */
.about_head {
  font-weight: var(--fw_bold);
  font-size: 55px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
}
.about_ttl {
  font-weight: var(--fw_medium);
  font-size: 34px;
  line-height: 1.559;
  letter-spacing: 0.115em;
  text-align: center;
  color: #eb3341;
}
.about_txt {
  margin-top: 10px;
  font-weight: var(--fw_medium);
  font-size: 20px;
  line-height: 1.975;
  letter-spacing: 0.115em;
  text-align: center;
}
.about_img-wrap {
  position: relative;
  width: min(950px, 95%);
  margin-top: 28px;
  margin-inline: auto;
}
.about_img-wap {
  position: absolute;
  z-index: 1;
  top: 7.4%;
  left: 4.1%;
  width: 15.158%;
}
.about_img {
  margin-top: 36px;
  margin-inline: auto;
  width: min(950px, 95%);
}
.about_img-wrap > .about_img {
  margin-top: 0;
  width: 100%;
}
.about_qr {
  margin-top: 98px;
  margin-inline: auto;
  width: min(525.767px, 52.5767%);
}
@media screen and (max-width:768px) {
  .about_head {
    font-size: calc((( 60 / var(--media_sp)) * 100) * var(--vw));
    letter-spacing: 0.07em;
  }
  .about_ttl {
    font-size: calc((( 35 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.543;
  }
  .about_txt {
    margin-top: calc((( 22 / var(--media_sp)) * 100) * var(--vw));
    font-size: calc((( 26 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.923;
  }
  .about_img-wrap {
    margin-top: calc((( 42 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
  .about_img-wap {
    position: absolute;
    top: -8.8%;
    left: -3.3%;
    width: calc((( 177.293 / var(--media_sp)) * 100) * var(--vw));
  }
  .about_img {
    margin-top: calc((( 43 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
  .about_qr {
    margin-top: calc((( 140 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
}
/* about */

/* rule */
.rule {
  background-color: #f5eddb;
  margin-top: 130px;
  margin-inline: auto;
  width: min(950px, 95%);
}
.rule .summary {
  position: relative;
  padding-block: 30px;
}
.rule .summary h2 {
  font-weight: var(--fw_medium);
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
}
.rule .summary_icon {
  position: absolute;
  top: 50%;
  right: 3.4%;
  display: block;
  width: 15px;
  aspect-ratio: 1 / 1;
}
.rule .summary_icon-line {
  content: "";
  position: absolute;
  display: block;
  inset: 0;
  display: block;
  width: 100%;
  height: 2px;
  background-color: #000;
  transform-origin: center;
}
.rule .summary_icon-line.transform {
  transition: 0.3s;
}
.rule_content {
  padding: 58px 46px 66px;
  background-color: #fff;
  box-sizing: border-box;
  border: 4px solid #f5eddb;
}
.rule_content_txt {
  font-weight: var(--fw_regular);
  font-size: 17px;
  line-height: 1.824;
  letter-spacing: 0.05em;
}
.rule_item {
  margin-top: 32px;
}
.rule_item_ttl,
.rule_item_txt {
  font-weight: var(--fw_regular);
  font-size: 17px;
  line-height: 1.824;
}
.rule_item_ttl {
  letter-spacing: 0.06em;
}
.rule_item_txt{
  letter-spacing: 0.04em;
}
.rule_item_txt a {
  color: #0068b4;
  text-decoration: underline;
}
@media screen and (max-width:768px) {
  .rule {
    margin-top: calc((( 140 / var(--media_sp)) * 100) * var(--vw));
    width: 86.979%;
  }
  .rule .summary {
    padding-block: calc((( 18 / var(--media_sp)) * 100) * var(--vw));
  }
  .rule .summary h2 {
    font-size: calc((( 28 / var(--media_sp)) * 100) * var(--vw));
  }
  .rule .summary_icon {
    right: 3.4%;
    width: 14px;
  }
  .rule_content {
    padding-top: calc((( 47 / var(--media_sp)) * 100) * var(--vw));
    padding-inline: calc((( 46 / var(--media_sp)) * 100) * var(--vw));
    padding-bottom: calc((( 56 / var(--media_sp)) * 100) * var(--vw));
    border: calc((( 4 / var(--media_sp)) * 100) * var(--vw)) solid #f5eddb;
  }
  .rule_content_txt {
    font-size: calc((( 21 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.714;
    letter-spacing: 0.015em;
  }
  .rule_item {
    margin-top: calc((( 36 / var(--media_sp)) * 100) * var(--vw));
  }
  .rule_item_ttl,
  .rule_item_txt {
    font-size: calc((( 21 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.714;
  }
}
/* rule */

/* footer */
footer {
  margin-top: 200px;
  padding-block: 40px;
}
.foot_copy {
  font-weight: var(--fw_regular);
  font-size: 15px;
  line-height: 3.4;
  letter-spacing: 0.115em;
  text-align: center;
}
@media screen and (max-width:768px) {
  footer {
    margin-top: calc((( 110 / var(--media_sp)) * 100) * var(--vw));
    padding-block: calc((( 40 / var(--media_sp)) * 100) * var(--vw));
  }
  .foot_copy {
    font-size: calc((( 21 / var(--media_sp)) * 100) * var(--vw));
    line-height: 1.857;
  }
}
/* footer */