@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

/* 基本スタイル */
body {
  background-image: url(../img/main_bg.png);
  background-repeat: repeat;
  font: 1.6em 'Noto Sans JP', sans-serif;
  line-height: 1.5;
  margin: 0;
}

.mincho {
  font-family: "Noto Serif JP", serif;
}

img {
  vertical-align: top;
  height: auto;
  width: 100%;
}

.wrap {
  margin: auto;
  max-width: 750px;
  background: #D9D9D9;
  color: #000;
  overflow: hidden;
}

@media (hover:hover) {
  a {
    transition: opacity .3s;
  }
  a:hover {
    opacity: .6;
  }
}

/* ヘッダー/FV */
.header {
  position: relative;
}
.header img {
  width: 100%;
}
.header figure {
  margin: 0;
}
.header .fv_logo {
  width: 45.3846%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 7.1795% auto 0;
}
.header h1 {
  width: 84.9821%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 42% auto 0;
}
.fv_schedule {
  width: 76.4744%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 102.8795% auto 0;
}
.fv_info {
  width: 73.5897%;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 114.6154% auto 0;
}
.fv_info dt {
  width: 22.9965%;
  aspect-ratio: 1 / 1;
  background: #fff;
  text-align: center;
  border-radius: 50%;
  font-size: 28.845px;
  color: #7B604B;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1.3333;
  letter-spacing: .1em;
}
.fv_info dd {
  flex: 1;
  color: #fff;
  font-size: 28.845px;
  letter-spacing: .1em;
  margin: 0 0 0 5.2265%;
}
.fv_info dd p {
  margin: 0;
}
.fv_info dd p + p {
  border-top: 1px solid #fff;
  margin-top: 2.7%;
  padding-top: 3.8%;
}
.fv_btn {
  width: 74.359%;
  height: 90.381px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 9.615px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 auto 8.4615%;
  font-size: 26.922px;
  letter-spacing: .1em;
  color: #fff;
  text-decoration: none;
  background: rgba(255, 255, 255, .25);
  text-align: center;
  box-sizing: border-box;
}
.fv_btn::before {
  content: '';
  display: block;
  width: 40.383px;
  height: 40.383px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 26.922px;
  margin: auto 0;
}
.fv_btn::after {
  content: '';
  display: block;
  width: 5.769px;
  height: 5.769px;
  border-top: 3.846px solid #7B604B;
  border-right: 3.846px solid #7B604B;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 44px;
  margin: auto 0;
}
@media only screen and (max-width: 750px) {
  .fv_info dt,
  .fv_info dd {
    font-size: 3.8462vw;
  }
  .fv_btn {
    font-size: 3.5897vw;
    height: 12.0513vw;
    border-radius: 1.2821vw;
  }
  .fv_btn::before {
    width: 5.3846vw;
    height: 5.3846vw;
    right: 3.5897vw;
  }
  .fv_btn::after {
    width: .7692vw;
    height: .7692vw;
    right: 5.77vw;
    border-top: 2px solid #7B604B;
    border-right: 2px solid #7B604B;
  }
}

/* fair */
.fair {
  padding: 12.0513% 0 16.6667%;
}
.fair_img {
  width: 73.5897%;
  margin: 0 0 6.4103% auto;
  position: relative;
}
.fair_img figure {
  overflow: hidden;
  border-radius: 192px 0 0 0;
  margin: 0;
}
.fair_ttl {
  color: #A5473A;
  position: absolute;
  top: 67.305px;
  left: -136.533px;
}
.fair_ttl h2 {
  width: 449.982px;
  margin: 0;
}
.fair_ttl p {
  width: 447.559px;
  font-size: 34.614px;
  letter-spacing: .1em;
  line-height: 1.1667;
  position: absolute;
  right: -330.756px;
  bottom: 0;
  margin: 0;
}
.fair h3 {
  width: 84.8718%;
  font-size: 28.845px;
  font-weight: 500;
  line-height: 1.8667;
  margin: 0 auto 4.359%;
  color: #A5473A;
  letter-spacing: .1em;
  border-bottom: 1px solid #B1B1B1;
  padding-bottom: 4.1026%;
}
.fair_txt {
  font-size: 23.076px;
  width: 84.8718%;
  line-height: 2.1667;
  margin: 0 auto;
}
.btn_cta {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 134.61px;
  background: #A5473A;
  color: #fff;
  width: 84.6154%;
  margin: 7.4359% auto 0;
  text-decoration: none;
  border-radius: 67.305px;
  font-size: 26.922px;
  font-weight: 700;
  letter-spacing: .1em;
  position: relative;
}
.btn_cta::before {
  content: '';
  display: block;
  width: 40.383px;
  height: 40.383px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 49.998px;
  margin: auto 0;
}
.btn_cta::after {
  content: '';
  display: block;
  width: 5.769px;
  height: 5.769px;
  border-top: 3.846px solid #A5473A;
  border-right: 3.846px solid #A5473A;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 66px;
  margin: auto 0;
}
@media only screen and (max-width: 750px) {
  .fair_img figure {
    border-radius: 25.641vw 0 0 0;
  }
  .fair_ttl {
    left: -18.2051vw;
    top: 8.9744vw;
  }
  .fair_ttl h2 {
    width: 59.6769vw;
  }
  .fair h3 {
    font-size: 3.8462vw;
  }
  .fair_ttl p {
    width: 59.6769vw;
    font-size: 4.6154vw;
    right: -44.1026vw;
  }
  .fair_txt {
    font-size: 3.0769vw;
  }
  .btn_cta {
    height: 17.9487vw;
    border-radius: 8.9744vw;
    font-size: 3.5897vw;
  }
  .btn_cta::before {
    width: 5.3846vw;
    height: 5.3846vw;
    right: 5.8vw;
  }
  .btn_cta::after {
    width: .7692vw;
    height: .7692vw;
    right: 8vw;
    border-top-width: 2px;
    border-right-width: 2px;
  }
}

.about {
  background: url(../img/about_bg_01.jpg) no-repeat center center / cover;
  color: #fff;
  padding: 18.7846% 0 17.9487%;
}
.about_inner {
  width: 74.359%;
  margin: 0 auto 20%;
}
.about h2 {
  margin: 0 0 8% 1%;
  width: 91.9448%;
  font-size: 24.999px;
  font-weight: 400;
  letter-spacing: .1em;
}
.about h2 img {
  margin-bottom: 4%;
}
.about p {
  font-size: 24.999px;
  line-height: 2.1538;
  letter-spacing: .1em;
  margin: 0;
}
.about .btn_cta {
  position: relative;
  z-index: 2;
}
@media only screen and (max-width: 750px) {
  .about h2,
  .about p {
    font-size: 3.3333vw;
  }
}

.contents {
  position: relative;
  padding: 101.5385% 0 20.2564%;
}
.contents_main {
  margin: 0;
  position: absolute;
  top: -198.069px;
  left: 0;
  right: 0;
}
.contents_catch {
  text-align: center;
  font-size: 24.999px;
  letter-spacing: .05em;
  color: #7B604B;
  margin-bottom: 12%;
}
.contents_catch span {
  display: block;
  font-size: 30.768px;
  letter-spacing: .05em;
  margin-bottom: 1.5385%;
}
.contents h2 {
  width: 87.1795%;
  margin: 0 0 7.8% auto;
  font-size: 24.999px;
  font-weight: 400;
  color: #7B604B;
  letter-spacing: .1em;
}
.contents h2 span {
  display: block;
  border-bottom: 1px solid #7B604B;
  margin-bottom: 5.5%;
}
.contents h2 img {
  width: 84.95%;
  position: relative;
  left: -1%;
  bottom: -2px;
}
.contents_item_main {
  width: 74.359%;
  margin: 0 auto;
}
.contents_item h3 {
  font-size: 42.306px;
  color: #7B604B;
  letter-spacing: .05em;
  line-height: 1.6818;
  font-weight: 400;
  width: 86.9231%;
  border-bottom: 1px solid #7B604B;
  margin: 6% 0 9.4872% auto;
}
.contents_item:nth-of-type(2) h3,
.contents_item:nth-of-type(3) h3 {
  font-size: 48.075px;
  line-height: 1.48;
  letter-spacing: .1em;
  margin: 5.5% 0 8.5% auto;
}
.contents_item:nth-of-type(4) h3 {
  margin-bottom: 5%;
}
.contents_item h3 span {
  position: relative;
  bottom: -17.307px;
  left: -9.615px;
}
.contents_item:nth-of-type(2) h3 span,
.contents_item:nth-of-type(3) h3 span {
  bottom: -13.461px;
  left: 0;
}
.contents_item_img {
  width: 87.4359%;
  margin: 0 0 7.1795% auto;
}
.contents_item:nth-of-type(2) .contents_item_img,
.contents_item:nth-of-type(3) .contents_item_img {
  width: 74.359%;
  margin: 0 auto 7.1795%;
}
.contents_item:nth-of-type(4) .contents_item_img {
  margin-top: 10%;
}
.contents_txt {
  width: 74.359%;
  margin: 0 auto;
}
.contents_txt p {
  font-size: 24.999px;
  line-height: 2;
  letter-spacing: .05em;
  margin: 0;
}
.contents_txt p + p {
  margin-top: 6.8%;
}
.contents_txt h4 {
  border-bottom: 1px solid #B1B1B1;
  margin: 11.7241% 0 3.3%;
  padding-bottom: 3.7931%;
}
.contents_txt h4 img {
  width: 59.4291%;
  display: block;
}
.contents_item + .contents_item {
  margin-top: 14.359%;
}
.contents .btn_cta {
  width: 74.359%;
  margin-top: 11.2821%;
}
@media only screen and (max-width: 750px) {
  .contents_main {
    top: -26.4103vw;
  }
  .contents_catch {
    font-size: 3.3333vw;
  }
  .contents_catch span {
    font-size: 4.1026vw;
  }
  .contents h2 {
    font-size: 3.3333vw;
  }
  .contents h2 img {
    bottom: -.5128vw;
  }
  .contents_item h3 {
    font-size: 5.641vw;
  }
  .contents_item h3 span {
    bottom: -2.3077vw;
    left: -1.2821vw;
  }
  .contents_item:nth-of-type(2) h3,
  .contents_item:nth-of-type(3) h3 {
    font-size: 6.4103vw;
  }
  .contents_item:nth-of-type(2) h3 span,
  .contents_item:nth-of-type(3) h3 span {
    bottom: -1.7949vw;
    left: 0;
  }
  .contents_txt p {
    font-size: 3.3333vw;
  }
}

.schedule {
  background: #7B604B;
  color: #fff;
  padding: 23.2821% 0 18.5%;
}
.schedule_inner {
  width: 87.1795%;
  margin: 0 0 0 auto;
}
.schedule h2 {
  font-size: 24.999px;
  font-weight: 400;
  letter-spacing: .1em;
  margin: 0 0 6%;
}
.schedule h2 span {
  display: block;
  border-bottom: 1px solid #fff;
  margin-bottom: 6.5%;
}
.schedule h2 span img {
  width: 82.0765%;
  display: block;
}
.schedule_txt {
  font-size: 28.845px;
  letter-spacing: .1em;
  flex: 1;
  font-weight: 700;
}
.schedule_list {
  display: block;
  padding: 0;
  margin: 8% 0 9.3%;
}
.schedule_list li {
  display: flex;
  align-items: flex-start;
}
.schedule_list li + li {
  margin-top: 3.75%;
}
.schedule_list li figure {
  margin: 0;
  width: 22.3529%;
}
.schedule_list_txt {
  flex: 1;
  padding-left: 4.7059%;
  margin: 4% 0 0;
  font-size: 24.999px;
  letter-spacing: .1em;
}
.schedule_list_txt span {
  font-size: 28.845px;
  display: block;
  margin-top: 1.5%;
  line-height: 1.6;
}
.schedule_note {
  font-size: 24.999px;
  letter-spacing: .05em;
}
@media only screen and (max-width: 750px) {
  .schedule h2,
  .schedule_list_txt,
  .schedule_note {
    font-size: 3.3333vw;
  }
  .schedule_list_txt span,
  .schedule_txt {
    font-size: 3.8462vw;
  }
}

.present {
  background: url(../img/present_bg_01.jpg) no-repeat center center / cover;
  padding: 17.641% 0 11.5385%;
}
.present_inner {
  width: 87.1795%;
  margin: 0 0 0 auto;
}
.present h2 {
  margin: 0 0 6.2%;
  color: #fff;
  font-size: 24.999px;
  letter-spacing: .05em;
  font-weight: 400;
}
.present h2 span {
  display: block;
  border-bottom: 1px solid #fff;
  margin-bottom: 5.2%;
}
.present h2 span img {
  width: 68.4706%;
  display: block;
  position: relative;
  top: 3.846px;
}
.present_item {
  background: rgba(255, 255, 255, .6);
  border-radius: 30px 0 0 30px;
  padding: 5.2941% 0 7% 5.2941%;
  color: #A5473A;
}
.present_item + .present_item {
  margin-top: 7.0588%;
  padding-bottom: 8%;
}
.present_item h3 {
  font-size: 28.845px;
  font-weight: 500;
  letter-spacing: .1em;
  margin: 0 0 3%;
  border-bottom: 1px solid #A5473A;
}
.present_item + .present_item h3 {
  margin-bottom: 4%;
}
.present_item h3 span {
  display: block;
  margin-bottom: -9.615px;
}
.present_item p {
  font-size: 28.845px;
  font-weight: 500;
  letter-spacing: .1em;
  margin: 0 10% 0 0;
  line-height: 1.6;
}
.present_item p img {
  width: 126.918px;
  margin: 17.307px 5.2002px 0 7.692px;
  vertical-align: -11.538px;
}
.present .btn_cta {
  width: 74.359%;
  margin-top: 11.2821%;
}
@media only screen and (max-width: 750px) {
  .present h2 {
    font-size: 3.3333vw;
  }
  .present h2 span img {
    top: .5128vw;
  }
  .present_item {
    border-radius: 7.6923vw 0 0 7.6923vw;
  }
  .present_item h3,
  .present_item p {
    font-size: 3.8462vw;
  }
  .present_item h3 span {
    margin-bottom: -1.2821vw;
  }
  .present_item p img {
    width: 16.9231vw;
    margin: 2.3077vw 2.5641vw 0 1.0256vw;
    vertical-align: -1.5385vw;
  }
}

.information {
  padding: 14.8% 0 17.1795%;
}
.information_inner {
  width: 87.1795%;
  margin: 0 0 0 auto;
}
.information h2 {
  margin: 0 0 6.8%;
  color: #7B604B;
  font-size: 24.999px;
  letter-spacing: .1em;
  font-weight: 400;
}
.information h2 span {
  display: block;
  border-bottom: 1px solid #7B604B;
  margin-bottom: 4.8%;
}
.information h2 span img {
  width: 85.3176%;
  display: block;
  position: relative;
  top: 2.5px;
}
.information dl {
  font-size: 24.999px;
  letter-spacing: .05em;
  line-height: 1.6923;
  margin-right: 10%;
  display: grid;
  grid-template-columns: 124.995px auto;
  gap: 16.7301px 0;
}
.information dt {
  margin: 0;
}
.information dd {
  margin: 0;
}
.information dd a {
  display: inline-block;
  margin-bottom: 5.769px;
  color: inherit;
  text-decoration: none;
}
.information .btn_cta {
  width: 74.359%;
  margin-top: 9.7%;
}
@media only screen and (max-width: 750px) {
  .information h2 {
    font-size: 3.3333vw;
  }
  .information h2 span img {
    top: .3vw;
  }
  .information dl {
    font-size: 3.3333vw;
    grid-template-columns: 16.6667vw auto;
    gap: 2.2308vw 0;
  }
  .information dd a {
    margin-bottom: .7692vw;
  }
}

.footer {
  border-top: 1px solid #7B604B;
  padding: 14.8718% 0;
  text-align: center;
}
.footer p {
  margin: 0;
}
.footer_logo {
  width: 58.7179%;
  margin: 0 auto 9.3%;
}
.footer_link {
  font-size: 24.999px;
  letter-spacing: .05em;
  display: flex;
  justify-content: center;
  gap: 34.614px;
  margin-bottom: 6.5%;
}
.footer_link p {
  position: relative;
}
.footer_link p + p::before {
  content: '|';
  display: block;
  position: absolute;
  left: -21.153px;
  top: 0;
}
.footer_link a {
  color: inherit;
  text-decoration: none;
}
.footer .copyright {
  font-size: 24.999px;
  letter-spacing: .05em;
  display: block;
}
@media only screen and (max-width: 750px) {
  .footer_link {
    font-size: 3.3333vw;
    gap: 4.6154vw;
  }
  .footer_link p + p::before {
    left: -2.8205vw;
  }
  .footer .copyright {
    font-size: 3.3333vw;
  }
}