@charset "utf-8";
/*==========================
	add common css
============================*/

.w-80per {
  width: 80%;
}

@media (min-width: 640px) and (max-width: 1000px) {
  .w-md-80per {
    width: 80%;
  }
}

.rounded-5 {
  border-radius: 5px;
}

/*==========================
	#event overwrite
============================*/

article {
  width: 100%;
  margin: auto;
}

article a {
  color: #333;
  transition: 0.2s linear;
}

article a:hover {
  color: #333;
  opacity: 0.6;
}

.bread {
  /* padding-top: 90px; */
  background: none !important;
  /* border: #f00 thin solid; */
}

.bread__inner.inner {
  max-width: 1200px;
  /* padding-top: 25px; */
  padding-bottom: 0px;
  /* border: #f00 thin solid; */
}

@media print, screen and (max-width: 900px) {
  main {
  }

  .bread {
    display: none !important;
  }

  .bread {
    padding-top: 90px;
    background: none !important;
  }
}

/*==========================
	 common
============================*/

/* fonts */

.gray_aaa {
  color: #aaa;
}

.gray_999 {
  color: #999;
}

.orange {
  color: #dd7a0e;
}

/*

// <uniquifier>: Use a unique and descriptive class name
// <weight>: Use a value from 100 to 900

*/

.noto-sans-jp-900 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
}

.btn {
  padding: 3px 10px 2px;
  color: #dd7a0e;
  display: inline-block;
  border: #dd7a0e thin solid;
}

.apply_btn a {
  color: #fff;
  background: #c8373c;
}

.bg-f5cd27 {
	background: #f5cd27;
}

/*==========================
	 contents
============================*/

#contents {
	padding-top: 61px;
}

@media print, screen and (min-width: 901px) {
	#contents {
		padding-top: 100px;
	}
}

@media print, screen and (max-width: 1000px) {
  /* #contents {
    padding-top: 40px;
  } */
}

@media print, screen and (max-width: 900px) {
   #contents {
    padding-top: 61px;
  } 
}

/*==========================
	 title
============================*/

#title {
  /*background: url("../img/bg_title.png") 50% center no-repeat;
  background-size: 100%;*/
}

.title_box {
  	width: 100%;
  	/*min-height: 526px;*/
  	margin: auto;
  	/*background: url("../img/title_book.png") no-repeat right 50%;
	background-size: 32%;*/
}
.bg_setting {
	background: url("../img/bg_title.png") no-repeat left top;
	background-size: contain;
}

/* #title .date {
} */

@media screen and (min-width: 768px) {
  	.title_box {
	  	width: 100%;
		background-position: center top;
		background: url("../img/title_pc.png") no-repeat;
		background-size: contain;
	}
}

@media screen and (min-width: 641px) and (max-width: 767px) {
	.title_box {
		/*background-position: 90% 15%;
		background-size: 27%;*/
	}
}

@media print, screen and (max-width: 767px) {
  #title {
    background: none;
  }

  .title_box {
    width: 100%;
    max-width: 100%;
    min-height: auto;
    background: none;
  }
	.bg_setting {
		background: url("../img/bg_title_mob.png") no-repeat center top;
		background-size: contain;
	}
}

/* 足跡の表示領域の設定 */
.fv-container {
  width: 100%;
  height: 100%; 
  background-color: #fff; 
  position: relative;
  overflow: hidden;
  z-index: -2;
}

/* 足跡の表示位置など調整 */
.diagonal-path {
  position: absolute;
  bottom: 80%; 
  right: 8%;  
  display: flex;
  flex-direction: column-reverse; 
  align-items: center;
  gap: 100px; /* 足跡の歩幅の調整 */
  z-index: -2;
  
  /* ステップの傾き設定 右下から左上へのステップ */
  transform: rotate(-70deg);
  transform-origin: bottom center;
}

/* 足跡の大きさなど調整 */
.foot {
  width: 35px;
  height: 12px;
  opacity: 0; /* 自然な感じに見えるようにフェードで表示 */
  background-size: contain;
  background-repeat: no-repeat;
}

.diagonal-path div:first-child img {
	filter: brightness(0) saturate(100%) invert(14%) sepia(75%) saturate(7040%) hue-rotate(359deg) brightness(93%) contrast(110%);
}
.diagonal-path div:nth-child(2) img  {
	filter: brightness(0) saturate(100%) invert(71%) sepia(90%) saturate(603%) hue-rotate(349deg) brightness(101%) contrast(110%);
}
.diagonal-path div:nth-child(3) img {
	filter: brightness(0) saturate(100%) invert(19%) sepia(81%) saturate(4075%) hue-rotate(220deg) brightness(104%) contrast(105%);
}
.diagonal-path div:nth-child(4) img {
	filter: brightness(0) saturate(100%) invert(72%) sepia(54%) saturate(5771%) hue-rotate(73deg) brightness(95%) contrast(99%);
}

@media screen and (min-width: 1025px) {
	/* 足跡の表示領域の設定 */
	.fv-container {
  		width: 100%;
  		height: 100%; 
  		background-color: #fff; 
  		position: relative;
  		overflow: hidden;
	}

	/* 足跡の表示位置など調整 */
	.diagonal-path {
  		position: absolute;
  		bottom: 62%;
  		right: 8%;
  		display: flex;
  		flex-direction: column-reverse;
  		align-items: center;
  		gap: 250px; /* 足跡の歩幅の調整 */
	}

	/* 足跡の大きさなど調整 */
	.foot {
  		width: 80px;
  		height: 12px;
  		opacity: 0; /* 自然な感じに見えるようにフェードで表示 */
  		background-size: contain;
  		background-repeat: no-repeat;
	}
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
	/* 足跡の表示位置など調整 */
	.diagonal-path {
  		position: absolute;
  		bottom: 60%; 
  		right: 8%;  
  		display: flex;
  		flex-direction: column-reverse; 
  		align-items: center;
  		gap: 120px; /* 足跡の歩幅の調整 */
	}

	/* 足跡の大きさなど調整 */
	.foot {
  		width: 45px;
  		height: 18px;
  		opacity: 0; /* 自然な感じに見えるようにフェードで表示 */
  		background-size: contain;
  		background-repeat: no-repeat;
	}
}
.foot{
  /* アニメーションの速度 */
  animation: stepPop 0.4s ease-out forwards;
  /* 次の足跡が表示されるまでの速度 */
  animation-delay: calc(var(--step) * 0.5s);
}

.book {
	opacity: 0; /* 最初は見えなくする */
    animation: fadeInAnime 1s ease-in forwards;
	animation-delay: 1.2s;
}

/* 右足の自然な傾き */
.r-foot {
  transform: translateX(18px);
}

/* 左足の自然な傾き */
.l-foot {
  transform: translateX(-18px);
}


/* 足跡アニメーションのキーフレーム */
@keyframes stepPop {
  0% {
    opacity: 0;
    scale: 1.2; /* 踏み出しが大きく見えるようにする */
    filter: blur(1px);
  }
  100% {
    opacity: 0.6; /* 着地した時の少し小さく表示 */
    scale: 1;
    filter: blur(0);
  }
}
/* 本の雨にーションキーフレーム */
@keyframes fadeInAnime {
  from {
    opacity: 0;
    transform: translateY(10px); /* 少し下からフワッと出す場合 */
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}



/*==========================
	 outline
============================*/

#outline {
  background: #c9bc9c;
  padding-top: 60px;
  padding-bottom: 60px;
}

#outline .lv_02 {
  width: 98%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 60px;
  padding: 60px 15px 90px;
  background: #fff;
}

#outline h2 {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 20px 0 15px;
  color: #fff;
  background: #dd7a0e;
}

#outline h3 {
  padding: 20px 0 15px;
  color: #fff;
  background: #dd7a0e;
}

#outline h4 {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 10px;
  border-bottom: #dd7a0e thin solid;
}

.date_detail .icon {
  color: #fff;
  /* background-color: #dd7a0e; */
  background-color: #8e795e;
  display: inline-block;
  padding: 0 15px;
}

.list-circle li {
	list-style: circle;
}

@media print, screen and (max-width: 900px) {
  #outline {
    padding-top: 30px;
    padding-bottom: 60px;
  }

  #outline .lv_02 {
    width: 90%;
    padding: 30px 15px 60px;
  }

  #outline h2 {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    border-bottom: #dd7a0e thin solid;
  }
}

/*==========================
	 book
============================*/

.book_info .box {
  margin-left: 3%;
  margin-right: 3%;
}

@media print, screen and (max-width: 900px) {
  .book_info .box {
    margin-bottom: 60px;
  }
}

/*==========================
	 apply
============================*/

#apply {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 45px 0;
  border: #dd7a0e 2px solid;
}

@media print, screen and (max-width: 900px) {
  #apply {
    width: 95%;
    padding: 15px 15px;
  }
}

/*==========================
	 performer
============================*/

.performer .flexbox .txtbox {
  width: 75%;
  text-align: left;
}

.performer .flexbox figure {
  width: 20%;
}

@media print, screen and (max-width: 900px) {
  .performer .flexbox figure {
    width: 60% !important;
    max-width: 300px;
    margin-bottom: 30px;
  }

  .performer .flexbox .txtbox {
    width: 90% !important;
    margin-left: auto;
    margin-right: auto;
  }
}

/*==========================================
	// id #access
============================================*/

#access h3 {
  color: #333;
  border-bottom: #9d4753 2px solid;
}

#access .txtbox {
  text-align: left;
}

#access figure {
  text-align: left;
}

#access .mapbox iframe {
  width: 80%;
  margin: auto;
  height: 450px;
}
@media print, screen and (max-width: 900px) {
  #access .mapbox iframe {
    width: 100%;
    margin: auto;
    height: 300px;
  }
}
