@charset "UTF-8";
html { font-size: 62.5%; }
body {
	font-size: 1.6rem;
	min-width: 320px;
	text-decoration: none;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  color: #000;
  display: none;
  background-image: linear-gradient(0deg, transparent 44px, #ececec 45px), linear-gradient(90deg, transparent 44px, #ececec 45px);
    background-color: #fff;
    background-size: 45px 45px;
    color: #404040;
}
img{ max-width: 100%; height: auto;}
.showSP{ display: none;}
.flex{ display: flex;}
.width{ max-width: 1140px; margin: 0 auto; padding: 0 20px; box-sizing: border-box;}
.spMenu{ display: none;}
main{ padding-top: 79px;}
.btn a{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #9D2328;
  width: fit-content;
  height: 94px;
  color: #9D2328;
  font-size: 1.8rem;
  padding: 8px 20px 8px 20px;
  position: relative;
  box-sizing: border-box;
  transition: all .3s ease-in-out;
  width: 280px;
  height: 40px;
  transform: skew(-15deg);
}
.btn_arrow a::after{
  content: '';
  display: block;
  width: 13px;
  height: 13px;
  border: solid 3px #fff;
  border-top: none;
  border-left: none;
  transform: skew(15deg) rotateZ(-45deg);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 35px;
  margin: auto 0;
  transition: right .3s ease-in-out;
}
.btn_arrow a span{
  display: block;
  transform: skew(15deg);
  color: #fff;
}
header .btn a:hover::after{ right: 5px;}

.no-click{
  pointer-events: none;
}

section .title{
  color: #9D2328;
  font-weight: 700;
  font-size: 5rem;
  text-align: center;
  margin-bottom: 24px;
}
section .title > small{
  display: block;
  font-size: 1.8rem;
  font-weight: inherit;
  margin-top: 10px;
  text-align: center;
}
section .title.title-c01{ color: #fff;}
section .title.small-c01 > small{ color: #9D2328;}

header{
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  padding: 20px 24px;
  box-sizing: border-box;
}
header h1{ width: 160px;}
header nav{
  display: flex;
  align-items: center;
}
header nav > ul{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-right: 25px;
}
header nav > ul a{
  position: relative;
  display: block;
  color: #9D2328;
  font-size: 1.4rem;
  margin-right: 25px;
  padding-right: 10px;
  transition: opacity .3s ease-in-out;
}

header nav > ul a::after{
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  border: solid 2px #9D2328;
  border-top: none;
  border-left: none;
  transform: translateY(-50%) rotateZ(45deg);
  position: absolute;
  top: 40%;
  right: -10px;
  transition: .3s;
}
.h-btn-area{
  width: 50%;
  display: flex;
}
header nav .h-btn-area .btn:first-of-type{
  margin-right: 10px;
}
header nav .btn a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 185px;
  height: 38px;
  font-size: 1.4rem;
  background: #fff;
  border: solid 1px #9D2328;
  padding: 0;
  transform: skew(0deg);
}
header nav .btn:last-of-type a{
  background: #9D2328;
  color: #fff;
}
header nav .btn:first-of-type a::after{
  border: solid 3px #9D2328;
  border-top: none;
  border-left: none;
}
header nav .btn:last-of-type a::after{
  border: solid 3px #fff;
  border-top: none;
  border-left: none;
}
header nav .btn_arrow a::after{ transform: rotateZ(-45deg) scale(0.5); right: 12px;}

#fv{
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
  overflow: hidden;
}
#fv .bg{
  background: url(../images/2025one/fv_bg@2x.jpg) no-repeat center;
  background-size: cover;
  position: relative;
  height: 45vw;
}
#fv .bg_img{ width: 100%; max-width: 100%;}
#fv .dec{
  position: absolute;
  width: 42%;
  bottom: 0;
  right: 0;
}
#fv .dec img{
  width: 100%;
}
#fv .title{
  width: 62%;
  position: absolute;
  top: 10%;
  left: 40px;
}
#fv .title img{
  width: 100%;
}
#fv .btn{
  position: absolute;
  bottom: 24%;
  left: 40px;
}
#fv .btn a{
  width: 40vw;
  max-width: 500px;
  font-size: 3rem;
  height: 90px;
  flex-direction: column;
  background: #fff;
  border: solid 2px #9D2328;
}
#fv .btn_arrow a::after{
  border: solid 3px #9D2328;
  border-top: none;
  border-left: none;
}

#fv .btn a span{color: #9D2328; display: block; font-weight: 700;}
#fv .btn small{display: block; margin-bottom: 10px; font-size: 1.8rem;}
#fv.op_stay .title{ opacity: 0; transform: translateY(50px); transition: all .5s 0.2s ease-in-out;}
#fv.op_start .title{ opacity: 1; transform: translateY(0);}
#fv.op_stay .dec{ opacity: 0; transform: translateY(30px); transition: all .5s .4s ease-in-out;}
#fv.op_start .dec{ opacity: 1; transform: translateY(0);}

#schedule{
  padding: 55px 0 80px;
}
#schedule .flex{
  justify-content: space-between;
  align-items: center;
}
#schedule .img{
  width: 50%;
}
#schedule .btn-area{
  width: 45%;
}
#schedule .btn a{
  flex-direction: column;
  max-width: 377px;
    width: 100%;
    height: 80px;
    font-size: 2.4rem;
}
#schedule .btn:first-of-type a{
  margin-bottom: 20px;
}
#schedule .btn a small{
  color: #fff;
  transform: skew(15deg);
  font-size: 1.6rem;
  margin-bottom: 8px;
}

.event-list{
  display: flex;
  justify-content: center;
  margin-bottom: 40px;
}
.event-list p.date{
  color: #4d4d4d;
  font-size: 8.7rem;
  font-weight: 900;
  text-align: center;
  letter-spacing: 0.05em;
}
.event-list p.date > span{
  font-size: 12.8rem;
  letter-spacing: inherit;
}
.event-list p.date > span.yobi{ font-size: 4.3rem; letter-spacing: 0;}
.event-list p.date > span.fs02{ font-size: 7rem;}
.event-list p.time span{
  color: #4d4d4d;
  font-size: 1.6rem;
}
.event-list p.time{
  color: #4d4d4d;
  font-size: 3rem;
  font-weight: 900;
  text-align: center;
  letter-spacing: 0.05em;
  margin-top: 16px;
}
.event-list p small{
  display: inline-block;
  color: #4d4d4d;
  font-size: 2rem;
}
.event-list .course{
  background-color: #0095d9;
  min-height: 150px;
  border-radius: 10px;
  padding: 20px;
  margin-top: 12px;
}
.event-list .course p.course-title{
  color: #faf000;
  font-size: 2.4rem;
  margin-bottom: 8px;
}
.event-list .course p{
  color: #fff;
  font-size: 2rem;
  line-height: 1.6em;
  text-align: center;
  word-break: auto-phrase;
}

#contents{
  background-image: linear-gradient(156deg, rgba(255, 226, 226, 1), rgba(255, 248, 239, 1) 34%, rgba(255, 254, 239, 1) 72%, rgba(217, 251, 255, 1) 97%);
  /* background: url(../images/20250c/bg_contents@2x.png) no-repeat center top;
  background-size: cover; */
  padding: 70px 0 60px;
}
#contents .list_oc{
  justify-content: center;
  flex-flow: wrap;
}
#contents .list_oc > li{
  max-width: 353px;
  width: 32%;
  margin: 5px 6px 26px 6px;
}
#contents .list_oc > li p{
  font-size: 1.4rem;
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin-top: 8px;
}
#contents .list_oc > li span{
  display: block;
  font-size: 1.2rem;
  margin-bottom: 5px;
  color: #a9a9a9;
}
#contents .fs01{
  color: #2b5aac;
  font-size: 5rem;
  letter-spacing: 0.05em;
  line-height: 1.6em;
  text-align: center;
  margin-top: 18px;
}
#contents h4{
  font-size: 3rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 10px;
  line-height: 1.4;
}
#contents .sub-ttl{
  font-size: 1.4rem;
  text-align: center;
  margin-bottom: 40px;
  line-height: 1.4;
}


#faq{
  padding: 77px 0 70px;
}
.dropList > li{
  border-radius: 5px;
  margin-bottom: 8px;
}
.dropList > li.show{
  margin-bottom: 5%;
}
.dropList > li:last-child{ margin-bottom: 0;}
.faq_title{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  background: #9D2328;
  color: #fff;
  font-size: 1.8rem;
  letter-spacing: 0;
  line-height: 1.4em;
  position: relative;
  padding-right: 50px;
  padding-left: 44px;
  padding-top: 15px;
  padding-bottom: 15px;
  cursor: pointer;
}

.faq_title::before{
  content: "";
  width: 22px;
  height: 22px;
  background: url(../images/2025one/icon_q@2x.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
}

.faq_title::after{
  content: "";
  display: inline-block;
  vertical-align: middle;
  color: #fff;
  line-height: 1;
  width: 12px;
  height: 12px;
  border: 1px solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) rotate(135deg);
  transition: .3s;
}
.dropList > li.show .faq_title::after{
  transform: translateY(-50%) rotate(-45deg);
}

.anser{
  display: none;
  margin-top: 20px;
  position: relative;
  padding-left: 48px;
}
.anser::before{
  content: "";
  width: 22px;
  height: 22px;
  background: url(../images/2025one/icon_a@2x.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 2px;
  left: 10px;
}
.anser p{
  width: calc(100% - 31px);
  color: #4d4d4d;
  /* font-size: 1.8rem; */
  line-height: 1.4em;
  box-sizing: border-box;
}

/*-- footer --*/
.copyright{
  font-size: 1rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1em;
  margin-top: 38px;
}
footer > .f-box{
  background-color: #9D2328;
  padding: 33px 0 20px;
}
.f-box p{color: #fff;}
.f-box .title{  
  color: #fff;
  font-size: 2.5rem;
  font-weight: bold;
  letter-spacing: 0;
  text-align: center;
  margin-bottom: 15px;
}
footer .sns{
  justify-content: space-between;
  align-items: center;
}
footer .sns > a{
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  width: 23.6%;
  height: 44px;
  font-size: 1.4rem;
  letter-spacing: 0;
  line-height: 1.8em;
  padding: 8px 20px;
  border-radius: 5px;
  box-sizing: border-box;
  color: #9D2328;
}
footer .sns > a::after{
  content: '';
  display: inline-block;
  background: url(../images/2025one/icon_arrow@2x.png) no-repeat;
  background-size: contain;
  width: 19px;
  height: 19px;
  transition: transform .3s ease-in-out;
}
footer .sns > a:hover::after{ transform: translateX(10px);}
footer .sns > a::before{
  content: '';
  display: inline-block;
}
footer .sns > a.icon_x::before{
  background: url(../images/2025one/icon_x@2x.png) no-repeat;
  background-size: contain;
  width: 22px;
  height: 22px;
}
footer .sns > a.icon_insta::before{
  background: url(../images/2025one/icon_insta@2x.png) no-repeat;
  background-size: contain;
  width: 25px;
  height: 25px;
}
footer .sns > a.icon_youtube::before{
  background: url(../images/2025one/icon_youtube@2x.png) no-repeat;
  background-size: contain;
  width: 25px;
  height: 17.5px;
}
footer .sns > a.icon_line::before{
  background: url(../images/2025one/icon_line@2x.png) no-repeat;
  background-size: contain;
  width: 25px;
  height: 25px;
}
footer .inbox{
  justify-content: space-between;
  align-items: center;
  border-top: solid 1px #fff;
  margin-top: 20px;
  padding-top: 16px;
}
footer .bnt02{ width: 57%;}
footer .bnt02 > a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 200px;
  height: 37px;
  color: #fff;
  font-size: 1.6rem;
  letter-spacing: 0;
  border: solid 1px #fff;
  border-radius: 50px;
  margin: 0 7px;
  position: relative;
  z-index: 1;
  overflow: hidden;
  transition: .3s;
}
footer .bnt02 > a:hover{opacity: 0.5;}

.icon_access span::before{
  content: '';
  background: url(../images/2025one/icon_access@2x.png) no-repeat center;
  background-size: contain;
  display: inline-block;
  width: 14px;
  height: 19px;
  position: absolute;
  left: 25px;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
.icon_mail span::before{
  content: '';
  display: inline-block;
  background: url(../images/2025one/icon_mail@2x.png) no-repeat center;
  background-size: contain;
  width: 20px;
  height: 15px;
  position: absolute;
  left: 15px;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
.f_txt{ font-size: 1.6rem; line-height: 1.4em; width: 400px;}
.f_txt b{ font-size: 3.2rem; line-height: 2em;}
.f_txt small{ font-size: 1.2rem; line-height: 1.4em;}

#access{
  background-image: linear-gradient(156deg, rgba(255, 226, 226, 1), rgba(255, 248, 239, 1) 34%, rgba(255, 254, 239, 1) 72%, rgba(217, 251, 255, 1) 97%);
  padding: 74px 0 80px;
}
#access .flex{
  justify-content: space-between;
  align-items: center;
}
#gmap{ max-width: 530px; margin-right: 20px;}
.add_txt{ width: 48%;}
.add_txt p{ color: #9D2328; font-size: 1.8rem; font-weight: 500; line-height: 1.6em;}
.add_txt p b{ font-size: 4rem; font-weight: 700; display: block; line-height: 1.2em;}
.add_txt .btn{ margin-top: 24px; margin-left: 20px;}
.add_txt .btn a{ max-width: 377px; width: 100%; height: 80px; font-size: 2.4rem;}

@media screen and (min-width: 1450px){
  /* #fv .title{
    max-width: 870px;
  }
  #fv .dec{
    max-width: 650px;
  } */
  #fv .bg{
    min-height: 650px;
  }
}
@media screen and (max-width: 1200px){
  main{ padding-top: 59px;}
  header{
    width: 100%;
    height: 60px;
  }
  header nav{
    display: none;
    background-color: #9D2328;
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 59px;
    left: 0;
    padding: 25px;
    box-sizing: border-box;
    max-width: none;
  }
  header nav > ul{
    display: block;
    margin: 0 0 32px;
  }
  header nav > ul > li{ margin: 8px 0;}
  header nav > ul > li a{
    width: 100%;
    font-size: 1.6rem;
    text-align: center;
    padding: 8px 0;
    margin: 0;
    color: #fff;
  }
  header nav > ul > li a::after{ display: none;}
  header nav .btn a{ margin: 0 auto 12px;}
  header .spMenu{ width: 40px; display: block;}
  header .spMenu > span{
    display: block;
    color: #9D2328;
    font-size: 1.2rem;
    padding: 8px 0;
    text-align: center;
    transition: all .3s ease-in-out;
  }
  header .spMenu::before,
  header .spMenu::after{
    content: '';
    background-color: #9D2328;
    display: block;
    width: 100%;
    height: 1px;
    transition: all .3s ease-in-out;
  }
  header.active .spMenu::before{ transform: rotate(23deg) translate(8px, 12px);}
  header.active .spMenu::after{ transform: rotate(-23deg) translate(8px, -12px);}
  header.active .spMenu span{opacity: 0;}

  .h-btn-area{width: 100%; justify-content: center;}
  header nav .btn:last-of-type a{border: solid 1px #fff;}
  header nav .btn a{width: 300px; height: 45px;}
}
@media screen and (max-width: 900px){
  #fv .btn a{ width: 400px; font-size: 2.5rem; height: 65px;}
  .btn a{ font-size: 2.4rem;}
  #access .flex{ flex-flow: column;}
  #gmap{ max-width: 100%; width: 100%; margin-bottom: 40px; margin-right: 0;}
  #gmap > iframe{ width: 100%;}
  .add_txt{ width: 100%; text-align: center;}
  .add_txt .btn a{ margin: 0 auto;}
  footer .sns{ flex-flow: wrap;}
  footer .sns > a{ width: 49%; margin-bottom: 1%;}
  footer .inbox{ flex-flow: column;}
  footer .bnt02{ width: 100%; justify-content: center; align-items: center; margin-top: 20px;}
  .add_txt .btn{margin-left: 0;}
}

@media screen and (max-width: 768px){
 
  #fv .bg{ min-height: 300px; height: 480px;}
  .showSP{ display: block;}
  .flex{ flex-flow: column;}
  .btn_arrow a::after{ width: 10px; height: 10px; right: 18px;}
  section .title{ font-size: 3.6rem;}
  .event-list{ flex-flow: column; align-items: center;}
  .event-list li{ width: 100%; margin-bottom: 40px; padding: 24px 16px 16px;}
  .event-list li:last-child{ margin-bottom: 0;}
  .event-list .course{ min-height: auto;}
  .event-list li:last-child .box{ padding: 8px 0 16px;}

  #contents .list_oc > li{ width: 47.5%;} 
  #contents .list_oc > li p{ font-size: 1.4rem;}
  #contents .fs01{ font-size: 2.4rem;}

  .faq_title{ padding-right: 40px;}
  .faq_title::after{ width: 10px; height: 10px;}

  .add_txt p{ font-size: 1.4rem;}
  .add_txt p b{ font-size: 3rem; padding-bottom: 4px;} 
  .add_txt .btn a{ font-size: 2.2rem; height: 65px; width: 90%;}

  footer .sns{ flex-flow: column;}
  footer .sns > a{ width: 90%; max-width: 260px; margin-top: 16px;}
  footer .inbox{ margin-top: 32px;}
  footer .bnt02{ margin-top: 32px;}
  footer .bnt02 a{ margin-bottom: 16px;}

  #schedule .img{width: 100%; margin-bottom: 20px;}
  #schedule .btn-area{width: 85%;}
  #schedule .btn a{max-width: inherit; font-size: 2.2rem; height: 70px;}

  #fv .title{width: 100%; top: 0%; left: 52%; transform: translateX(-50%);}
  #fv .bg{height: 135vw;}
  #fv .dec{width: 100%;}
  .h-btn-area{flex-wrap: wrap;}
  header nav .h-btn-area .btn:first-of-type{margin-right: 0;}
  #fv.op_stay .title{ opacity: 0; transform: translateY(50px) translateX(-50%); transition: all .5s 0.2s ease-in-out;}
#fv.op_start .title{ opacity: 1; transform: translateY(0) translateX(-50%);}
#fv .btn a{ width: 380px; height: 70px;}
#fv .btn{bottom: 18%; left: 50%; transform: translateX(-50%);}
#contents h4{font-size: 2.5rem;}
.dropList > li.show{margin-bottom: 10%;}
#fv .btn small{margin-bottom: 5px; font-size: 1.6rem;}
}
@media screen and (max-width: 480px){
  #contents .fs01{ font-size: 6vw;}
  section .title{ font-size: 11vw;}
  section .title > small{ font-size: 1.6rem;}
  .faq_title{ align-items: center;}
  .event-list > li p.txt01{ font-size: 2.6rem;}
  .event-list p.date{ font-size: 6rem;}
  .event-list p.date > span.fs02{ font-size: 4rem;}
  .event-list p.date > span{ font-size: 8rem;}
  .event-list p.date > span.yobi{ font-size: 3.2rem;}
  .event-list p.time{ font-size: 3.6rem;}
  .event-list small{font-size: 1.6rem;}
  .f_txt{ width: 320px; font-size: 1.4rem; text-align: center;}
  .f_txt b{ font-size: 2.4rem;}
  .event-list .course p{font-size: 1.6rem;}
  .event-list .course p br{display: none;}

  #contents .list_oc > li{width: 100%; max-width: inherit;}
  #contents .list_oc > li img{width: 100%;}

  #fv .btn{left: 50%; transform: translateX(-50%); bottom: 18%;}
  #fv .btn a{width: 300px; font-size: 2rem; height: 65px;}
}
@media screen and (max-width: 380px){
  #contents .fs01{ margin-top: 0;}

}
@media screen and (min-width: 810px){
  header nav > ul a:hover::after{top: 65%;}
  .btn_arrow a:hover::after{right: 25px;} 
}
