/*------------------------------

common

------------------------------*/

*{
  margin: 0;
  padding: 0;
  font-family: serif;
  font-weight: 300;
}

html{
  overflow-x: hidden;
}

body{
  width: 100%;
  margin-top: 75px;
  overflow-x: hidden;
  animation: fadein 3s forwards;
}
@keyframes fadein{
  0% {opacity: 0;}
  100% {opacity: 1;}
}

._pc{
  display: block;
}

._sp{
  display: none;
}

.xs_text{
  font-size: 10px;
}
.s_text{
  font-size: clamp(12px, 2vw, 18px);
}
.m_text{
  font-size: clamp(14px, 3vw, 22px);
}
.l_text{
  font-size: clamp(18px, 4vw, 30px);
}

.text_mt{
  margin-top: 1em;
}

.text_r{
  text-align: right;
}

a{
  transition: 0.8s;
  color: #000;
  text-decoration: none;
}

a:hover{
  opacity: 0.2;
  transition: 0.8s;
}

.blur{
  filter: blur(30px);
  opacity: 0;
  transition: 0.8s;
}
.blur.scrollin{
  filter: blur(0);
  opacity: 1;
}

.section_header{
  margin-bottom: 3vw;
  text-align: center;
}

.list_button_wrap{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
  text-align: right;
}

.list_button{
  margin: 1.5vw auto 0;
  display: inline-block;
  color: #000;
  text-decoration: none;
}

@media screen and (max-width: 768px) {
  ._pc{
    display: none;
  }

  ._sp{
    display: block;
  }

  .section_header{
    margin-bottom: 6vw;
  }
}

/*----------------------------------------
header
----------------------------------------*/

header{
  width: 100%;
  height: 75px;
  margin: -75px auto 0;
  display: block;
  background-color: #fff;
  position: fixed;
  z-index: 1;
}
.menu_bar{
  width: 85%;
  max-width: 990px;
  height: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.logo a{
  font-size: clamp(10px, 6vw, 25px);
}
.menu_btn{
  width: 55px;
  height: 55px;
  position: relative;
  border: none;
  background: transparent;
  appearance: none;
  padding: 0;
  cursor: pointer;
}
.line{
  display: inline-block;
  width: 45%;
  height: 1px;
  background: #242424;
  position: absolute;
  left: 50%;
  transform: translateX(-15%);
  transition: 0.5s;
}
.line:first-child{
  top: 16px;
}
.line:nth-child(2){
  top: 24px;
}
.line:last-child{
  top: 32px;
}
.is-open .line{
  top: 50%;
}
.is-open .line:first-child{
  transform: translateX(-15%) translateY(-50%) rotate(45deg);
}
.is-open .line:last-child{
  transform: translateX(-15%) translateY(-50%) rotate(-45deg);
}
.is-open .line:nth-child(2){
  display: none;
}
.nav{
  padding-top: 10vh;
  display: none;
  background: #fff;
  position: absolute;
  top: 75px;
  width: 100%;
  z-index: 9999;
}
.nav_list{
  height: 100vh;
  text-align: center;
  list-style: none;
  padding: 0 0 15px;
  margin: 0;
}
.nav_list a:hover{
  opacity: 0.2;
  transition: 0.8s;
}
.nav_link{
  color: #333;
  text-decoration: none;
  display: block;
  padding: 24px 0;
  transition: 0.5s;
}

/*----------------------------------------
footer
----------------------------------------*/

.footer_cntnt{
  width: 85%;
  max-width: 990px;
  margin: 3vw auto 0;
  padding: 3vw 0;
  display: flex;
  justify-content: space-between;
  align-items: top;
}
.footer_item h2{
  margin-bottom: 1vw;
}
.footer_menu{
  list-style: none;
}
.footer_menu_item{
  margin-bottom: 1vw;
}

@media screen and (max-width: 768px) {
  .footer_cntnt{
    width: 85%;
    max-width: 990px;
    margin: 10vw auto 0;
    padding: 3vw 0;
    display: flex;
    justify-content: space-between;
    align-items: top;
  }
  .footer_item h2{
    margin-bottom: 1vw;
  }
  .footer_menu{
    list-style: none;
  }
  .footer_menu_item{
    margin-bottom: 1vw;
  }
}

/*------------------------------

top_page

------------------------------*/

/*----------------------------------------
mv
----------------------------------------*/

.mv{
  /* padding-top: 200px; */ /* old_mv */
  height: calc(100vh - 25px);
  display: flex;
  align-items: center;
}
.mv_imgbox{
  width: 85%;
  max-width: 850px;
  margin: -100px auto 0;
}
.mv_imgbox img{
  width: 100%;
}

@media screen and (max-width: 768px) {
  .mv{
    height: auto;
    padding-top: 75px;
    display: block;
  }
  .mv_imgbox{
    margin: 0 auto;
  }
}

/*----------------------------------------
profile
----------------------------------------*/

.profile{
  /* margin-top: 10vw; */ /* old_mv */
}
.sprit_box{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
  display: flex;
  justify-content: left;
  align-items: start;
}
.sprit_left{
  width: 40%;
}
.sprit_right{
  margin-left: 5vw;
}
.sprit_right p{
  margin-top: 30px;
  display: block;
  line-height: 2em;
}
.sprit_right .p_01{
  margin-top: 0;
}
.imgbox{
  width: 100%;
}
.imgbox img{
  width: 100%;
}
.imgbox_02{
  display: none;
}
.imgbox_03{
  display: none;
}
.imgbox_04{
  display: none;
}

@media screen and (max-width: 768px) {
  .profile{
    margin-top: 15vw;
  }
  .sprit_box{
    flex-direction: column-reverse;
    justify-content: left;
    align-items: center;
    text-align: center;
  }
  .sprit_left{
    width: 65%;
  }
  .sprit_right{
    margin-left: 0;
    margin-bottom: 10vw;
  }
  .sprit_right p{
    margin-top: 30px;
    display: block;
    line-height: 2em;
  }
  .sprit_right .p_01{
    margin-top: 0;
  }
  .imgbox{
    width: 100%;
  }
  .imgbox img{
    width: 100%;
  }
  .imgbox_02{
    display: none;
  }
  .imgbox_03{
    display: none;
  }
  .imgbox_04{
    display: none;
  }
}

/*----------------------------------------
news
----------------------------------------*/

.news{
  margin-top: 7.5vw;
  padding-top: 100px;
}
.news_cntnt{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
}
.news_item{
  padding: 1.5vw 0 2vw;
  border-bottom: 0.5px solid #000;
  transition: 0.8s;
  list-style: none;
}
.news_item:hover{
  opacity: 0.2;
  transition: 0.8s;
  cursor: pointer;
}
.news_item:last-of-type{
  border-bottom: 0px;
}
.news_time{
  display: block;
  text-align: left;
}
.news_title{
  margin-top: 0.5vw;
  display: block;
  text-align: left;
}
.news_item_body{
  display: none;
  padding: 2vw 0 0;
}
.news_item_body .imgbox{
  width: 50%;
  margin: 1em auto 0;
}

@media screen and (max-width: 768px) {
  .news{
    margin-top: 0;
  }
  .news_item{
    padding: 4.5vw 0 5vw;
  }
  .news_item:first-of-type{
    padding-top: 0;
  }
  .news_title{
    margin-top: 1vw;
    display: block;
    text-align: left;
  }
}

/*----------------------------------------
schedule
----------------------------------------*/
.schedule{
  margin-top: 7.5vw;
  padding-top: 100px;
}
.schedule_cntnt{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
}
.schedule_item{
  padding: 1.5vw 0 2vw;
  border-bottom: 0.5px solid #000;
  transition: 0.8s;
  list-style: none;
}
.schedule_item:hover{
  opacity: 0.2;
  transition: 0.8s;
  cursor: pointer;
}
.schedule_item:first-of-type{
  border-top: 0.5px solid #000;
}
.schedule_item_header{
  display: flex;
  align-items: center;
}
.schedule_time{
  margin-right: 1em;
  display: block;
  text-align: left;
}
.schedule_item_tag{
  padding: 1px 3px;
  display: inline-block;
  border: 0.5px solid #000;
  border-radius: 30px;
  text-align: center;
}
.schedule_title{
  margin: 0.5vw 0;
  display: block;
  text-align: left;
}
.schedule_item_body{
  display: none;
  padding: 2vw 0 0;
}
.schedule_item_body .imgbox{
  width: 50%;
  margin: 1em auto 0;
}

@media screen and (max-width: 768px) {
  .schedule{
    margin-top: 0;
  }
  .schedule_item{
    padding: 4.5vw 0 5vw;
  }
  .schedule_title{
    margin: 1vw 0;
  }
  .schedule_title.m_text{
  font-size: clamp(18px, 3vw, 22px);
  }
}

/*----------------------------------------
catalog
----------------------------------------*/
.catalog{
  margin-top: 7.5vw;
  padding-top: 100px;
}
.catalog .section_header{
  margin-bottom: 0;
}
.catalog_cntnt{
  display: flex;
  overflow-x: scroll;
}
.catalog_item{
  width: 30%;
  margin-right: 1vw;
  transition: 0.8s;
  flex-shrink: 0;
}
.catalog_item:hover{
  opacity: 0.2;
  transition: 0.8s;
  cursor: pointer;
}
.catalog_item:last-of-type{
  margin-right: 0;
}

.overlay{
  opacity: 0;
  visibility: hidden;
  transition: 0.8s;
  width: 100vw;
  height: 100vh;
  background: #ccc;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1;
}
.overlay.open{
  opacity: 0.5;
  visibility: visible;
  transition: 0.8s;
}
.modal{
  opacity: 0;
  visibility: hidden;
  transition: 0.8s;
  width: 85%;
  max-width: 750px;
  height: 650px;
  padding-bottom: 3vw;
  background: #fff;
  border-radius: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.modal.open{
  opacity: 1;
  visibility: visible;
  transition: 0.8s;
  display: flex;
  justify-content: center;
  align-items: center;
}
.modal_close_wrap{
  position: absolute;
  right: 30px;
  top: 20px;
}
.modal_close{
  margin: 0;
  padding: 0;
  width: 30px;
  height: 30px;
  background: transparent;
  border-color: transparent;
  display: block;
  cursor: pointer;
}
.modal_close span{
  width: 30px;
  height: 1px;
  background: #000;
  display: block;
  position: relative;
}
.modal_close span:nth-child(1){
  transform: rotate(45deg);
}
.modal_close span:nth-child(2){
  transform: rotate(-45deg);
}
.modal_item{
  width: 50%;
  margin: 0 auto;
}
.modal_item .imgbox{
  width: 100%;
}
.modal_item p img{
  width: 0.8em;
  margin-left: 5px;
}

@media screen and (max-width: 768px) {
  .catalog{
    margin-top: 0;
  }
  .catalog .section_header{
    margin-bottom: 6vw;
  }
  .catalog_cntnt{
    display: flex;
    overflow-x: scroll;
  }
  .catalog_item{
    width: 40%;
    margin-right: 1vw;
    flex-shrink: 0;
  }
  .catalog_item:last-of-type{
    margin-right: 0;
  }
}

@media screen and (max-width: 500px) {
  .modal{
    height: 550px;
  }
  .modal_item{
    width: 75%;
  }
}

/*------------------------------

news_page

------------------------------*/

/*----------------------------------------
news
----------------------------------------*/

#news_page .news{
  margin-top: 0;
  padding-top: 50px;
}
#news_page .news_cntnt{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
}
#news_page .news_item{
  padding: 1.5vw 0 2vw;
  border-bottom: 0.5px solid #000;
  transition: 0.8s;
  list-style: none;
}
#news_page .news_item:hover{
  opacity: 0.2;
  transition: 0.8s;
  cursor: pointer;
}
#news_page .news_item:last-of-type{
  border-bottom: 0px;
}
#news_page .news_time{
  display: block;
  text-align: left;
}
#news_page .news_title{
  margin-top: 0.5vw;
  display: block;
  text-align: left;
}
#news_page .news_item_body{
  display: none;
  padding: 2vw 0 0;
}
#news_page .news_item_body .imgbox{
  width: 50%;
  margin: 1em auto 0;
}

@media screen and (max-width: 768px) {
  #news_page .news{
    margin-top: 0;
  }
  #news_page .news_item{
    padding: 4.5vw 0 5vw;
  }
  #news_page .news_item:first-of-type{
    padding-top: 0;
  }
  #news_page .news_title{
    margin-top: 1vw;
    display: block;
    text-align: left;
  }
}

/*------------------------------

blog_page

------------------------------*/

/*----------------------------------------
blog
----------------------------------------*/

#blog_page .blog{
  margin-top: 0;
  padding-top: 50px;
}
#blog_page .blog_cntnt{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
}
#blog_page .blog_item{
  padding: 1.5vw 0 2vw;
  border-bottom: 0.5px solid #000;
  transition: 0.8s;
  list-style: none;
}
#blog_page .blog_item:hover{
  /* opacity: 0.2;
  transition: 0.8s; */
  cursor: pointer;
}
#blog_page .blog_item:last-of-type{
  /* border-bottom: 0px; */
}
#blog_page .blog_time{
  display: block;
  text-align: left;
}
#blog_page .blog_title{
  margin-top: 0.5vw;
  display: block;
  text-align: left;
}

@media screen and (max-width: 768px) {
  #blog_page .blog{
    margin-top: 0;
  }
  #blog_page .blog_item{
    padding: 4.5vw 0 5vw;
  }
  #blog_page .blog_item.first{
    padding-top: 0;
  }
  #blog_page .blog_title{
    margin-top: 1vw;
    display: block;
    text-align: left;
  }
}

/*------------------------------

blog_article_page

------------------------------*/

/*----------------------------------------
blog_article
----------------------------------------*/

#blog_article_page .blog_article_cntnt{
  width: 85%;
  max-width: 850px;
  margin: 0 auto;
}

#blog_article_page .header{
  padding: 1.5vw 0 2vw;
  transition: 0.8s;
  list-style: none;
}

#blog_article_page .imgbox{
  width: 75%;
  margin: 3vw auto 6vw;
}

#blog_article_page .body{
  margin-top: 2vw;
  font-size: clamp(14px, 2vw, 18px);
  line-height: 2em;
}

#blog_article_page .link_btn_wrap{
  margin: 3em 0;
  text-align: center;
}

#blog_article_page .link_btn{
  padding: 3px 9px;
  display: inline-block;
  border: 1px solid #000;
  border-radius: 30px;
  text-align: center;
}

#blog_article_page .link_btn img{
  width: 0.8em;
  margin-left: 5px;
}

@media screen and (max-width: 768px) {
  #blog_article_page .imgbox{
    width: 85%;
    margin: 12vw auto 14vw;
  }
}