.trans{
  animation-name: fadein;
  animation-duration: 1s; 
  animation-delay: .5s;
  animation-fill-mode: forwards;
  position: relative;
  opacity: 0; 
}
@keyframes fadein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/*common*/
.inner{
  width: calc(100% - 100px);
  margin: 0 auto;
  position: relative;
}
.inner_full{
  width: 100%;
  position: relative;
}
.flex{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.min{
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
}
.yu-min{
  font-family: "游明朝体", "Yu Mincho", YuMincho, serif;
}
.en{
  font-family: 'Garamond Three', serif;
}
section{
  position: relative;
}
.section_btm{
  padding-bottom: 100px;
}
.sp_none{
  display: block;
}
.pc_none{
  display: none;
}
#main_contents{
  position: relative;
  width: 100%;
  max-width: 400px;
  background-color: #fff;
  margin: 0 auto;
  padding-top: 54px;
  overflow-x: hidden;
}
#top #main_contents{
  padding-top: 0;
}
#policy #main_contents{
  overflow: hidden;
}
.fix_box{
  position: fixed;
  left: 50%;
  top: 0;
  width: 100%;
  max-width: 400px;
  height: calc(100vh);
  transform: translateX(-50%);
  overflow: hidden;
}
.fix_scroll{
  height: calc(100vh - var(--top-gap));
  margin-top: var(--top-gap);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior: contain;
}
.fix_scroll::-webkit-scrollbar{
  display: none; /* Chrome/Safari */
}
.pc_copy01{
  position: fixed;
  right: 80px;
  z-index: 2;
  top: 230px;
}
#pc_box{
  width: 100%;
  max-width: 335px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.3); 
  backdrop-filter: blur(5px);
  position: fixed;
  right: 55%;
  /*top: 85px;*/
  top: var(--top-gap);
  transform: translateX(-50%);
  /*padding-bottom: 20px;*/
}
#pc_box .inner{
  /*padding: 45px 45px 0;*/
  padding: 36px 30px 55px;
  width: 100%;
}
#pc_box p{
  color: #fff;
}
.pc_ttl01{
  width: 146px;
  margin-bottom: 20px;
}
.pc_ttl01 span{
  font-size: 40px;
  display: block;
  line-height: 1;
  letter-spacing: 0.04em;
}
#pc_box .lang_btn01{
}

.pc_menu01{
  padding-top: 25px;
  border-top: 1px solid var(--color-gray);
/*  margin-bottom: 50px;*/
}
.pc_menu01 li{
  /*margin-bottom: 15px;*/
  margin-bottom: 23px;
}
.pc_menu01 li:last-child{
  margin-bottom: 0;
}
.pc_menu01 li a{
  width: 100%;
  color: #fff;
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 0.12em;
  position: relative;
  display: block;
  transition: var(--transition);
  line-height: 1;
}
.pc_menu01 li a:hover{
  padding-left: 10px;
  color: var(--color-main);
}

.pc_menu02{
  margin-bottom: 20px;
}
.pc_menu02 li{
  margin-bottom: 8px;
  line-height: 1;
}
.pc_menu02 li:last-child{
  margin-bottom: 0;
}
.pc_menu02 li a{
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.2em;
  line-height: 1;
}
/*btn*/
.btn01{
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.46;
  color: var(--color-main);
  width: fit-content;
  margin: 0 auto;
  position: relative;
  display: block;
}
.btn01::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 7px;
  background-image: url(../img/common/btn_kazari01.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}
.btn02{
  width: 100%;
  font-family: "Noto Serif JP", serif;
  height: 50px;
  background-color: #fff;
  border: 1px solid var(--color-gray);
  border-radius: 10px;
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.16em;
  justify-content: center;
  color: var(--color-txt01);
  transition: var(--transition);
  position: relative;
}
.btn02.contact_btn{
  background-color: #fff;
}
.btn02:hover{
  background-color: var(--color-gray);
}
.btn02.btn_map{
  letter-spacing: 0.08em;
}
.btn_map span{
  margin-left: 10px;
  width: 10px;
  height: 10px;
  display: inline-block;
  background-image: url(../icon/icon_link.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}
.btn03{
  font-size: 14px;
  font-weight: bold;
  width: fit-content;
  color: var(--color-main);
  text-decoration: underline;
  letter-spacing: 0.16em;
  line-height: 1;
  margin: 50px auto 0;
  display: block;
  transition: var(--transition);
}
.btn03:hover{
  opacity: 0.8;
}
.link{
  text-decoration: underline;
}
/*txt*/
.txt01{
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.12em;
  text-align: justify;
}
.txt01 .en{
  font-size: 18px;
}
.txt02{
  font-size: 13px;
  letter-spacing: 0.04em;
  text-align: justify;
  line-height: 1.88;
}
.txt03{
  font-size: 7px;
}
.txt_pad{
  padding: 0 5px;
}
.caution01{
  font-size: 14px;
  line-height: 1;
}
.txt04{
  font-size: 10px;
  letter-spacing: 0.04em;
  line-height: 2.4;
}
/*head*/
.head01{
  font-size: 26px;
  font-weight: 600;
  text-align: center;
  color: var(--color-main);
  position: relative;
  padding-bottom: 60px;
  margin-bottom: 30px;
  line-height: 1.3;
  border-bottom: 1px solid var(--color-gray);
}
.head01 span{
  line-height: 1.3;
  position: relative;
  display: inline-block;
  color: var(--color-main);
  letter-spacing: -0.05em;
}
.head01 span::after{
  content: '';
  position: absolute;
  right: -64px;
  top: 22px;
  width: 64px;
  height: 36px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url(../img/common/head_kazari01.svg);
}
.head01.is-2line span::after{
  top: auto;
  bottom: -20px;
}
.head01 img{
  height: 24px;
  width: auto;
}
#hostel .head01 img{
  height: 60px;
  width: auto;
}
#hostel .head01 span::after{
  right: -30px;
  top: 24px;
}
.head02{
  font-size: 42px;
  letter-spacing: 0.05em;
  width: fit-content;
  margin: 0 auto 30px;
  position: relative;
}
.head02 img{
  height: 43px;
  width: auto;
}
.head02::after{
  content: '';
  position: absolute;
  right: -80px;
  bottom: -10px;
  width: 71px;
  height: 39px;
  background-image: url(../img/common/head_kazari01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
}

.head03{
  text-align: center;
  font-weight: 500;
  font-size: 30px;
  line-height: 24px;
  text-align: center;
  letter-spacing: 0.33em;
  position: relative;
  color: var(--color-main);
  align-items: center;
  display: flex;
  white-space: nowrap;
  justify-content: center;
  margin-bottom: 20px;
}
.head03 img{
  height: 24px;
  width: auto;
}
/*.head03::before,
.head03::after {
  background-color: var(--color-main);
  content: "";
  display: inline-block;
  height: 1px;
  width: 40px;
}
.head03::before {
  margin-right: 10px;
}
.head03::after {
  margin-left: 5px;
}
*/
.head04{
  font-size: 16px;
  font-weight: bold;
  letter-spacing: .16em;
  line-height: 1.5;
  margin-bottom: 20px;
}
.head05{
  font-size: 26px;
  font-weight: bold;
  margin-bottom: 30px;
  text-align: center;
}
.head05 img{
  width: auto;
  height: 24px;
}
.head06{
  font-size: 16px;
  letter-spacing: 0.16em;
  line-height: 1.5;
  margin-bottom: 20px;
}
#policy .head06{
  letter-spacing: 0.04em;
  margin-bottom: 15px;
  font-weight: 800;
}
.head06 span{
  font-size: 14px;
}
/*btm*/
.btm30{
  margin-bottom: 30px;
}
.btm50{
  margin-bottom: 50px!important;
}
.btm0{
  margin-bottom: 0!important;
}
.top50{
  margin-top: 50px!important;
}

/*mv*/
.mv_box{
  position: relative;
}
.mv_slide01 .slide_img{
  width: 100%;
  height: auto;
  padding-top: 216%;
  background-size: cover;
  background-position: center center;
}
.movie_box {
  width: 100%;
  height: auto;
  padding-top: 202%;
  object-fit: cover;
}
.movie_box video{
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  left: 0px;
}
.main_copy01{
  position: absolute;
  right: 12px;
  bottom: 74px;
  font-size: 76px;
  line-height: 1;
  color: #fff;
  width: 203px;
  letter-spacing: 0.05em;
  text-align: center;
  z-index: 2;
  opacity: 0;
  animation: windFadeIn 2.5s ease-out forwards;
}
.main_copy01 span{
  font-size: 43px;
  display: block;
  line-height: 1;
  color: #fff;
  letter-spacing: 0.16em;
}
@keyframes windFadeIn {
  0% {
    opacity: 0;
    transform: translate(20px, -10px) rotate(1deg);
    filter: blur(2px);
  }
  60% {
    opacity: 1;
    transform: rotate(-0.5deg);
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) rotate(0);
  }
}


#top01{
  padding-top: 130px;
  padding-bottom: 100px;
}
.intro_txt01{
  width: 230px;
  margin: 0 auto 100px;
}
.kazari{
  position: absolute;
}
.kazari01{
  width: 64px;
  top: 37px;
  left: 33px;
}
.kazari02{
  width: 65px;
  right: 28px;
  bottom: 440px;
}
.kazari03{
  width: 107px;
  right: 17px;
  bottom: 250px;
}
.bg01{
  background-color: var(--color-bg02)!important;
}
#top02{
  padding: 52px 0 80px;
}
#top02 .head02{
  margin-top: -76px;
  /*margin-top: -105px;*/
}
#top02 .head03{
  margin-bottom: 0;
}
#top02 .txt01{
  margin-bottom: 50px;
}
/*.news_wrap,*/
.season-gallery{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.news_wrap,
.news_slide01{
  overflow: visible; /* slick内で完結するのでOK（親はhiddenでもOK） */
}
.news_slide01 .slick-track{
  padding: 30px 0;
  display: flex !important;
  align-items: stretch;
}
.news_slide01 .slide_in{
  padding: 0 10px;   /* スライド間の余白 */
  box-sizing: border-box;
  height: auto;
}


/* 中央強調 */
.news_slide01 .slick-slide{
  transition: opacity .35s, transform .35s;
  height: auto !important;
  display: flex !important;     /* 中身を100%にしやすくする */
}
.news_slide01 .slick-slide > div{
  display: flex;
  height: 100%;
  width: 100%;
}
/* カード本体を“スライドの高さいっぱい”に */
.news_slide01 .slide_in,
.news_slide01 .w_box{
  height: 100%;
}

/*.news_slide01 {
  overflow: visible;
  padding: 0 10vw;
  box-sizing: border-box;
}*/

.news_slide01 .swiper-slide {
  width: 78%; 
  max-width: 302px;

}
.w_box{
  padding: 30px 30px 57px 30px;
  background-color: #fff;
  border-radius: 10px;
  position: relative;
  box-shadow: 0px 4px 30px rgba(0, 0, 0, 0.1);
}
.w_box .btn01{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 20px;
}
.news_slide01 .img{
  width: 100%;
  height: auto;
  padding-top: 63.63%;
  background-size: cover;
  background-position: center center;
  margin-bottom: 17px;
}
.news_slide01 .cat{
  position: absolute;
  width: 31px;
  height: 86px;
  left: -5px;
  display: flex;
  align-items: center;
  justify-content: center;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  color: #fff;
  top: 64.5px;
  border-radius: 2px 7px 7px 0;
  font-size: 14px;
  letter-spacing: 0.3em;
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25);
}
.news_slide01 .cat.current{
  background-color: var(--color-main);
}
.news_slide01 .cat.future{
  background-color: #53D47E;
}
.news_slide01 .cat::after{
  position: absolute;
  content: '';
  width: 0;
  left: 0;
  height: 0;
  bottom: -3px;
  border-style: solid;
  border-right: 3px solid transparent;
  border-left: 3px solid transparent;
  border-bottom: 5px solid #2E435E;
  border-top: 0;
  transform: rotate(270deg);
  z-index: -1;

}
.news_slide01 .ttl{
  font-size: 18px;
  font-weight: bold;
  /*letter-spacing: 0.2em;*/
  letter-spacing: 0.08em;
  line-height: 1.29;
  text-align: center;
  margin-bottom: 17px;
}
.news_slide01 .txt02{
  margin-bottom: 20px;
}
.news_slide01 .txt02 p{
  overflow: hidden;
  display: -webkit-box;
  line-height: 1.76;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.period{
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: .4em;
  margin-bottom: 10px;
  line-height: 1;
}

/* 年＋月日のセット */
.period .date{
  position: relative;
  display: inline-block;
}

/* 月日（メイン） */
.period .md{
  font-size: 24px;
  display: block;
}

/* 年（上に乗せる） */
.period .y{
  position: absolute;
  top: -1em;          /* ←ここで“乗り具合”を調整 */
  left: 0;
  font-size: 10px;
  letter-spacing: .05em;
}

/* ハイフン */
.period .dash{
  font-size: 24px;
  letter-spacing: 0.15em;
}

.news_pagination{
  text-align: center;
}
.swiper-pagination-bullet{
  width: 6px!important;
  height: 6px!important;
  margin: 0 2.5px!important;
  background-color: #D9D9D9!important;
  opacity: 1!important;
}
.swiper-pagination-bullet.swiper-pagination-bullet-active{
  background-color: var(--color-main)!important;
}
#top03{
  padding: 50px 0 180px;
}
#top03::before{
  content: '';
  transform: rotate(-19.89deg);
  width: 44px;
  height: 57px;
  background-image: url(../img/top/season_kazari01.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  position: absolute;
  left: 27px;
  top: -19px;
}
.txt01.center{
  letter-spacing: 0.1em;
  margin-bottom: 50px;
}
#top03::after{
  content: '';
  position: absolute;
  right: 36px;
  bottom: 103px;
  width: 60px;
  height: 51px;
  background-image: url(../img/top/season_kazari02.svg);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}
#top03 .img{
  margin-bottom: 50px;
}
#top04{
  padding-top: 60px;
  padding-bottom: 80px;
}
#top04::after{
  content: '';
  position: absolute;
  left: 17px;
  top: -61px;
  width: 123px;
  height: 96px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url(../img/top/know_kazari01.svg);
}
#top04 .head02{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  /*top: -113px;*/
  top: -80px;
}
#top04 .img{
}
.link_box01 a{
  border-radius: 10px;
  border: 1px solid var(--color-main);
  padding: 30px 35px;
  display: block;
  background-color: #fff;
}
.link_box01 .img{
  margin-bottom: 20px;
}
.btn_list01 li{
  margin-top: 20px;
}


#top05{
  padding: 50px 0 180px;
}
#top05::after{
  background-image: url(../img/top/pray_kazari01.svg);
  width: 106px;
  height: 90px;
  content: '';
  position: absolute;
  right: 30px;
  top: 35px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}
#top05::before{
  background-image: url(../img/top/pray_kazari02.svg);
  width: 74px;
  height: 94px;
  content: '';
  position: absolute;
  left: 50px;
  bottom: 48px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}
#top05 .head02{
  margin-bottom: 40px;
}
#top05 .head02::after{
  display: none;
}
#top06{
  padding: 60px 0 80px;
}
#top06 .head02{
  position: absolute;
  left: 50%;
  top: -80px;
  /*top: -112px;*/
  transform: translateX(-50%);
}
#top07{
  padding: 100px 0;
}
.line_box01{
  border-top: 1px solid var(--color-txt01);
  padding-top: 10px;
  padding-bottom: 40px;
}
.line_box01.btm0{
  padding-bottom: 0;
}
.access.txt01{
  letter-spacing: 0.1em;
}
#top07 .caution01{
  margin-top: 5px;
  margin-bottom: 30px;
}
#top07 .img{
  margin-bottom: 30px;
}
.pswp img{
  width: 100%;
  max-width: none !important;
  max-height: none !important;
}
.pswp__img{
  height: auto !important;
}
.pswp__zoom-wrap{
  max-width: 1200px;
  margin: 0 auto;
}
.pswp__bg{
  background-color: rgba(0, 0, 0, .7)!important;
}
/*season*/
#season01{
  padding-bottom: 100px;
}
.txt02.intro{
  margin-bottom: 70px;
}
.season_box01{
  margin-bottom: 70px;
  position: relative;
}
.season_box01::after,
.season_box01::before{
  content: '';
  position: absolute;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}
.season_ttl01{
  font-size: 24px;
  text-align: center;
  margin-bottom: 20px;
  line-height: 1;
}
.season_ttl01 span{
  font-size: 31px;
  line-height: 1;
}
.season-main-swiper{
  margin-bottom: 5px;
}
.season-main-swiper::after{
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  width: 24px;
  height: 24px;
  background-image: url(../icon/icon_zoom.svg);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 2;
}
.season-main-swiper img{
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 151 / 85;
}
.season-thumbs-swiper .swiper-slide{
  opacity: .5;
  cursor: pointer;
}
.season-thumbs-swiper .swiper-slide-thumb-active{
  opacity: 1;
}

.season-thumbs-swiper .swiper-slide img{
  display:block;
  width:100%;
  height:auto;
}
.season-main-swiper img{
  display:block;
  width:100%;
  height:auto;
}
.season_box01.box02::after{
  width: 59px;
  height: 111px;
  background-image: url(../img/season/season_kazari01.svg);
  left: 23px;
  top: -50px;
}
.season_box01.box03::after{
  width: 93px;
  height: 78px;
  background-image: url(../img/season/season_kazari02.svg);
  left: -34px;
  top: -26px;
}
.season_box01.box04::after{
  width: 74px;
  height: 94px;
  background-image: url(../img/season/season_kazari03.svg);
  right: 10px;
  top: -58px;
}
.season_box01.box05::after{
  width: 57px;
  height: 61px;
  background-image: url(../img/season/season_kazari04.svg);
  left: 55px;
  top: -43px;
}
.season_box01.box05::before{
  width: 41px;
  height: 43px;
  background-image: url(../img/season/season_kazari04.svg);
  right: 57px;
  top: -19px;
}
.season_box01.box06::after{
  width: 41px;
  height: 44px;
  background-image: url(../img/season/season_kazari04.svg);
  right: 22px;
  top: -32px;
}
.season_box01.box07::after{
  width: 82px;
  height: 73px;
  background-image: url(../img/season/season_kazari05.svg);
  right: 3px;
  top: -13px;
  z-index: 2;
}
.season_box01.box08::after{
  width: 51px;
  height: 90px;
  background-image: url(../img/season/season_kazari06.svg);
  left: 50px;
  top: -37px;
}
.season_box01.box09::after{
  width: 79px;
  height: 102px;
  background-image: url(../img/season/season_kazari07.svg);
  right: 21px;
  top: -60px;
}
.season_box01.box11::after{
  width: 44px;
  height: 57px;
  background-image: url(../img/season/season_kazari08.svg);
  left: -19px;
  top: -60px;
}
.season_box01.box12::after{
  width: 60px;
  height: 51px;
  background-image: url(../img/season/season_kazari09.svg);
  right: -27px;
  top: -52px;
}
.season_box01.box12::before{
  width: 65px;
  height: 62px;
  background-image: url(../img/season/season_kazari10.svg);
  left: -6px;
  bottom: -76px;
}
/*history*/
#history01{
  padding-bottom: 100px;
}
.line_box02{
  border-top: 1px solid var(--color-gray);
  padding: 30px 0 50px;
}
#history .line_box02 .img{
  margin-bottom: 30px;
}
#history .line_box02:first-of-type,
#item .line_box02:first-of-type{
  border-top: none;
  padding-top: 0;
}

#history .line_box02:last-of-type{
  padding-bottom: 0;
}
/*column*/
.column_list01 li{
  width: calc((100% - 20px) / 2);
}
.column_list01 .img_box{
  overflow: hidden;
  border-radius: 10px;
  margin-bottom: 10px;
}
.column_list01 .img{
  width: 100%;
  height: auto;
  padding-top: 102%;
  background-position: center center;
  background-size: cover;
  position: relative;
  overflow: hidden;
  transition: var(--transition);
}
.column_list01 li:hover .img{
  transform: scale(1.1);
}
.column_list01 .img::after{
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, .1);
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
}
.column_list01 li:hover .img::after{
  opacity: 1;
  z-index: 2;
}
.column_list01 .ttl{
  transition: var(--transition);
}
.column_list01 li:hover .ttl{
  color: var(--color-main);
}
#column01::after{
  content: '';
  position: absolute;
  right: 26px;
  bottom: 17px;
  width: 114px;
  height: 118px;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url(../img/column/column_kazari01.svg);
}
.editor_box h2{
  font-size: 23px;
  text-align: center;
  margin-bottom: 30px;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
}
.editor_box p{
  font-size: 13px;
  letter-spacing: 0.04em;
}
.editor_box h3{
  font-size: 18px;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  margin-bottom: 10px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.editor_box h3::before,
.editor_box h3::after {
  background-color: var(--color-txt01); /* 横線の色 */
  content: "";
  height: 1px; /* 横線の高さ */
  width: 18px; /* 横線の長さ */
}
.editor_box h3::before {
  margin-right: 10px; /* 文字との余白 */
}
.editor_box h3::after {
  margin-left: 10px; /* 文字との余白 */
}

html[lang="ja"] .editor_box p{
  text-align: justify;
}
.editor_box .wp-block-separator{
  border-top-width: 1px;
  border-top-color: var(--color-gray);
  margin: 50px 0 30px;
}
#column.detail #column01::after{
  display: none;
}
/*event*/
#event .line_box02{
  padding-bottom: 0;
}
.caution02{
  color: var(--color-main);
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.02em;
  line-height: 1.57;
  margin-bottom: 30px;
  font-weight: bold;
}
.event_list01 dt,
.event_list01 dd{
  border-top: 1px solid var(--color-line02);
  min-height: 30px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 5px 0;
}
.event_list01 dt{
  font-size: 13px;
  letter-spacing: 0.04em;
  line-height: 1;
  width: 60px;
  border-right: 1px solid var(--color-line02);
}
.event_list01 dt.long{
  align-items: flex-start;
  line-height: 2;
}
.event_list01 dd{
  font-size: 11px;
  letter-spacing: 0.04em;
  width: calc(100% - 60px);
  padding-left: 12px;
}
.date_box01{
  margin-bottom: 30px;
  position: relative;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 24px;
  align-items: center;
}
#top .date_box01{
  padding-left: 3px;
  margin-bottom: 0;
}
.date_box01 p{
  position: relative;
  line-height: 1.29;
}
.date_box01 .year{
  position: absolute;
  left: 0;
  top: -10px;
  font-size: 10px;
  letter-spacing: 0.05em;
}
.date_box01 .weekday{
  font-size: 14px;
}
/*.date_box01 .weekday span{
  letter-spacing: -.3em;
}*/
.date_box01 .kara{
  letter-spacing: 0.15em;
  margin-left: 3px;
}
#event .editor_box{
  margin-bottom: 30px;
}
.js-open-image-modal{
  position: relative;
  display: block;
}
.js-open-image-modal::after{
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url(../icon/icon_zoom.svg);
  z-index: 2;
  pointer-events: none;
}
/*item*/

.item-gallery,
.item-slick{
  overflow: visible;
}

.item-slick .item-slide{
  padding: 0 10px;
  transition: opacity .3s ease;
  position: relative;
  height: auto;
}
.item-slick .item-slide::after{
  content: '';
  position: absolute;
  right: 10px;
  bottom: 0;
  width: 24px;
  height: 24px;
  background-image: url(../icon/icon_zoom.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 2;
}
.item-slick .slick-center{
  opacity: 1;
}

.item-slick img{
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  position: relative;
}

/* dots */
.item-slick .slick-dots{
  bottom: -26px;
}
.news_slide01 .slick-dots{
  bottom: -10px;
}
.item-slick .slick-dots li,
.item-slick .slick-dots li button,
.item .slick-dots li button:before,
.news_slide01 .slick-dots li,
.news_slide01 .slick-dots li button,
.news_slide01 .slick-dots li button:before{
  width: 6px;
  height: 6px;
}
.item-slick .slick-dots li,
.news_slide01 .slick-dots li{
  margin: 0 2.5px;
}
.item-slick .slick-dots li button,
.news_slide01 .slick-dots li button{
  padding: 0;
}
.item-slick .slick-dots li button:before,
.news_slide01 .slick-dots li button:before{
  font-size: 6px;
  opacity: 1;
  line-height: 1;
  color: var(--color-gray);
}
.item-slick .slick-dots li.slick-active button:before,
.news_slide01 .slick-dots li.slick-active button:before{
  opacity: 1;
  color: var(--color-main);
}

.item-slick .slick-dots > li:first-child:last-child {
    display: none;
}
#item .item_box01{
  border-top: none;
}
#item .item_box01{
  position: relative;
}
#item .item_box01::after{
  content: '';
  position: absolute;
  left: 50px;
  top: 0;
  width: calc(100% - 100px);
  height: 1px;
  background-color: var(--color-gray);
}
#item .item_box01:first-of-type::after{
  display: none;
}
.item_box01.last{
  padding-bottom: 0;
}
/*pilgrimage*/
.modal_box01{
  position: relative;
  margin-bottom: 50px;
}
.modal_box01.last{
  margin-bottom: 0;
}
.modal_box01::after{
  content: '';
  position: absolute;
  right: 0;
  pointer-events: none;
  bottom: 0;
  width: 40px;
  height: 40px;
  background-image: url(../icon/icon_zoom.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 2;
}
/*hostel*/
.hostel_list01.list02{
  margin-bottom: 10px;
}
.hostel_list01 dt,
.hostel_list01 dd{
  font-size: 13px;
  /*letter-spacing: 0.04em;*/
  line-height: 1.8;
  position: relative;
}
.hostel_list01 dt{
  width: 55px;
}
.hostel_list01.list02 dt{
  width: 88px;
}
.hostel_list01 dt::after{
  content: '：';
  position: absolute;
  right: 0;
  top: 0;
}
.hostel_list01 dd{
  width: calc(100% - 55px);
}
.hostel_list01.list02 dd{
  width: calc(100% - 88px);
}
.hostel_list01 dd.short{
  letter-spacing: 0;
}
.hostel_list01 .en{
  font-size: 16px;
}
#hostel01 .line_box01{
  padding-bottom: 30px;
}
.plan_txt01{
  margin-bottom: 10px;
}
.plan_txt01 .en{
  font-size: 16px;
}
#hostel01 .hostel_box01.last.line_box01{
  padding-bottom: 0;
}
/*policy*/
.policy_box01{
  margin-top: 30px;
}
.num_list01{
  list-style: decimal;
  list-style-position: inside;
}
.num_list01 li{
  font-size: 13px;
  letter-spacing: 0.04em;
  line-height: 1.84;
  text-indent: -1.2em;
  padding-left: 1.3em;
}
html[lang="ja"] .num_list01 li{
  text-align: justify;
}

/*contact*/
.p-region-hidden { position:absolute; left:-9999px; }

.contact_box02{
  position: relative;
  margin-bottom: 15px;
}
.contact_box02 .txt04{
  position: absolute;
  left: 10px;
  top: 5px;
  pointer-events: none;
  z-index: 2;
  color: #666666;
}
.contact_box02.short{
  width: 50%;
  border-radius: 5px;
  position: relative;
}
.contact_box02.noline{
  border: none;
  background-color: transparent;
  padding: 0;
}
.contact_box02.noline .txt04{
  position: relative;
  left: auto;
  top: auto;
}
.contact_box02.short::after{
  position: absolute;
  content: '';
  width: 10px;
  height: 5px;
  background-image: url(../icon/icon_select.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
.contact_box02 input[type="text"],
.contact_box02 input[type="tel"],
.contact_box02 input[type="email"],
.contact_box02 textarea{
  border: none;
  width: 100%;
  font-size: 10px;
  padding: 20px 10px 5px;
  border: 1px solid #DDDDDD;
  border-radius: 10px;
  background-color: #fff;
  color: #666666;
  height: 58px;
}
.contact_box02 textarea{
  height: auto;
  padding-top: 30px;
  max-width: 100%!important;
}
/* 本物selectは残す（機能用）けど、見た目は隠す */
.contact_box02 .js-pref-select,
.contact_box02 .js-custom-select,
.contact_box02 .wpcf7-select{
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* カスタムUI */
.contact_box02 .select-ui{
  width: 100%;
  position: relative;
}

.contact_box02 .select-ui__btn{
  width: 100%;
  height: 58px;
  border: 1px solid #DDDDDD;
  border-radius: 10px;
  background: #fff;
  color: #666;
  font-size: 10px;
  padding: 20px 44px 0 10px; /* 右の矢印分 */
  text-align: left;
  box-sizing: border-box;
}

.contact_box02.short .select-ui__btn{
  border-radius: 5px; /* shortに合わせるなら */
}

/* あなたの ::after 矢印を使うなら不要。
   ここではボタン側に矢印を描画して完結させる版。 */
.contact_box02 .select-ui__btn::after{
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 5px;
  background: url(../icon/icon_select.svg) center/contain no-repeat;
  pointer-events: none;
}

.contact_box02 .select-ui__list{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 50;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  border: 1px solid #DDDDDD;
  border-radius: 10px;
  background: #fff;
  max-height: 260px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; /* iOSで慣性スクロール */
  overscroll-behavior: contain;      /* 可能なら */
  touch-action: pan-y;  
  overflow: auto;
  box-shadow: 0 10px 25px rgba(0,0,0,.12);
}
.contact_box02 .wpcf7-form-control-wrap[data-name="your-type"] .select-ui__list{
  /*width: 200px;*/
}
.contact_box02 .select-ui__item{
  width: 100%;
  padding: 10px 10px;
  background: transparent;
  border: 0;
  text-align: left;
  font-size: 10px;
  color: #333;
}
.select-ui__label{
  font-size: 10px;
}
.contact_box02 .select-ui__item[aria-selected="true"]{
  font-weight: 700;
}

.contact_box02 .select-ui__item:hover{
  background: rgba(0,0,0,.04);
}


.js-pref-select,
.wpcf7-form-control {
  appearance: none;        /* 標準UIをオフ */
  -webkit-appearance: none;
  -moz-appearance: none;

  background: none;        /* 背景の矢印を消す */
}
.wpcf7-not-valid-tip{
  font-size: 10px;
}
.wpcf7-list-item.first{
  margin-left: 0;
}
.contact_box02 .wpcf7-list-item-label{
  font-size: 10px;
}
.contact_box02 input[type="radio"]{
  margin-top: 0;
  margin-left: 0;
}
.wpcf7 form.invalid .wpcf7-response-output{
  border: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
  color: #dc3232;
}
.contact_confirm .txt04{
  padding-bottom: 10px;
  margin-bottom: 15px;
  border-bottom: 1px solid var(--color-line02);
}
.contact_confirm .txt04 span{
  font-size: 13px;
  display: block;
}
.contact_btn_back{
  margin-bottom: 15px;
}
@media screen and (max-width: 1150px) {
#pc_box{
  display: none;
}
.pc_copy01{
  display: none;
}
#main_contents{
  padding-top: 124px;
}
#top #main_contents{
  padding-top: 0;
}
}
@media screen and (max-width: 768px) {
.fix_scroll{
  height: 100vh;
  margin-top: 0;
  height: 100dvh;
}
.mv_slide01 .slide_img{
  height: 100vh;
  padding-top: 0;
}

}
@media screen and (max-width: 500px) {
body{
  padding: 0;
}
#main_contents,
.fix_box{
  max-width: 100%;
}
#top03 .soon_box{
  /*display: block;*/
}
.for_sp.soon_box.change{
  position: fixed;
  bottom: 0;
  left: 0;
  opacity: 1;
  height: 70px;
}
}