@charset "utf-8";
/* CSS Document */

.section-cloud-white , .section-cloud-red {
  position: relative;
  overflow: hidden;
  padding: 150px 0 180px;
}
.section-cloud-white {
	margin-bottom: 0;
}
.section-cloud-red {
	background-color: var(--color-red);
	color: #FFFFFF;
  padding: 150px 0 180px;
}
.section-cloud-white::before , .section-cloud-red::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.2;
  background-image: url("../img/cloud-red01.webp"), url("../img/cloud-red01.webp");
  background-repeat: no-repeat, no-repeat;
  background-size: 550px auto, 550px auto;
  background-position:
    top 80px left -100px,
    bottom 75px right -100px;
}
.section-cloud-red::before {
  opacity: 0.3;
  background-image: url("../img/cloud-black01.webp"), url("../img/cloud-black02.webp");
  background-position:
    top 80px left -100px,
    bottom 75px right -100px;
}
.section-cloud-white > * , .section-cloud-red > * {
  position: relative;
  z-index: 1;
}
.section-cloud-red a {
	color: #FFFFFF;
}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width: 768px) {
	
	.section-cloud-white , .section-cloud-red {
		padding: 70px 0 70px;
	}
	.section-cloud-white::before , .section-cloud-red::before {
		background-size: 300px auto, 300px auto;
		background-position:
			top 50px left -100px,
			bottom 50px right -100px;
	}

}


.button01 , .button02 {
  /* サイズ関連は変数でまとめ、左右入れ替えや余白調整をしやすくする */
  --circle-size: 46px;
  --circle-offset: 18px;
  --arrow-size: 12px;
  --gap-circle-text: 25px; /* 赤丸と文字のマージン指定 */
  --button-vpad: 14px;
  --button-lpad: 22px;

  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: fit-content;
  min-width: 0;
  padding: var(--button-vpad) calc(var(--circle-size) + var(--circle-offset) + var(--gap-circle-text)) var(--button-vpad) var(--button-lpad);
  border-radius: 8px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.4;
  text-align: left;
  transition: background-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
}
.button02 {
  color: #fff;
}
.button01::before , .button02::before {
  content: "";
  position: absolute;
  top: 50%;
  right: var(--circle-offset);
  width: var(--circle-size);
  height: var(--circle-size);
  background-color: var(--key-color);
  border-radius: 50%;
  transform: translateY(-50%) scale(1);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.button01::after , .button02::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(var(--circle-offset) + (var(--circle-size) - var(--arrow-size)) / 1.9);
  width: var(--arrow-size);
  height: var(--arrow-size);
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
.button01:hover::before , .button02:hover::before {
  transform: translateY(-50%) scale(1.18);
}
/* 赤丸を左に寄せるバリエーション（右寄せはデフォルト） */
.button01.is-left , .button02.is-left {
  padding: var(--button-vpad) var(--button-lpad) var(--button-vpad) calc(var(--circle-size) + var(--circle-offset) + var(--gap-circle-text));
}
.button01.is-left::before , .button02.is-left::before {
  left: var(--circle-offset);
  right: auto;
}
.button01.is-left::after , .button02.is-left::after {
  left: calc(var(--circle-offset) + (var(--circle-size) - var(--arrow-size)) / 2);
  right: auto;
}

.button04 {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	font-size: 18px;
	padding: 20px 50px;
	font-weight: bold;
	background: var(--key-color);
	color: #fff;
	border-radius: 100vh;
	position: relative;
	transition: 0.5s;
}
.button04::before {
	content: '';
	width: 7px;
	height: 7px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
	margin-right: 10px;
}
.button04:hover {
	background: var(--key-color);
	opacity: 0.7;
}
.button04:focus-visible {
  outline: 2px solid var(--key-color);
  outline-offset: 4px;
}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){


  .button04 {
    font-size: 15px;
  }
	
}


.button03 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 140px;
  padding: 18px 16px;
  border: 1px solid #d8d0c8;
  border-radius: 14px;
  background: #fff;
  color: var(--font-color);
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.6;
  text-align: center;
  transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.button03 span {
  display: block;
  margin-bottom: 6px;
  color: var(--color-red);
  font-size: 15px;
  letter-spacing: .08em;
}

.button03:hover {
  transform: translateY(-2px);
  border-color: var(--key-color);
  color: var(--key-color);
  background: var(--color-gray);
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){



	
}


h2.p01 , h2.p02 {
  font-size: 27px;
  font-weight:  600;
	font-family: "Shippori Mincho", serif;
  margin-bottom: 55px;
  letter-spacing: var(--letter-spacing);
  text-align: center;
}
h2.p01.white {
	color: #FFFFFF;
}
h2.p02 {
	font-family: "Shippori Mincho", serif;
}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

  h2.p01 , h2.p02 {
    font-size: 20px;
    margin-bottom: 25px;
  }
  h2.p01 span , h2.p02 span {
    font-size: 16px;
  }

}

h3.p01 , h3.p02 {
  font-size: 24px;
  font-weight:  600;
  margin-bottom: 40px;
  letter-spacing: var(--letter-spacing);
}
h3.p02 {
  text-align: center;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

  h3.p01 , h3.p02 {
    font-size: 18px;
    margin-bottom: 25px;
  }

}

h4.p01 {
  font-size: 20px;
  font-weight:  600;
  margin-bottom: 40px;
	border-left: 6px solid var(--color-red);
	line-height: 1.2;
	padding-left: 10px;
}
.section-cloud-red h4.p01 {
	border-left: 6px solid #FFFFFF;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	h4.p01 {
		font-size: 16px;
		margin-bottom: 25px;
		border-left: 6px solid var(--color-red);
		line-height: 1.2;
		padding-left: 10px;
	}

}


.box01 {
  border: 1px solid var(--key-color);
  padding: 20px;
}

/* ------------------------------------------
  トップページ
--------------------------------------------- */

#main-visual{
	position: relative;
	height: 75vh;
	min-height: 650px;
	margin-bottom: 130px;
}
#main-visual .swiper {
	width: 100%;
	height: 100%;
	position:absolute;
	top:0;
	left:0;
	overflow: visible !important;
}
#main-visual .swiper-slide {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	width: 100% !important;
	display: flex !important;
	justify-content: center;
	align-items: center;
	padding: 0 30px;
}
#main-visual .swiper-slide div{
	position: relative;
}
#main-visual .swiper-slide div.img{
	width: 100%;
	height: 75vh;
	min-height: 650px;
	background-position:center center;
	background-size:cover;
	background-repeat:no-repeat;
	border-radius: 30px 30px 0 0;
}
#main-visual .swiper-slide div.slide01{background-image:url("../img/top/main-visual.webp");}
#main-visual .swiper-slide div.slide02{background-image:url("../img/top/main-visual-2.webp");}
#main-visual .swiper-slide div.slide03{background-image:url("../img/top/main-visual-3.webp");}
#main-visual .swiper-slide div.slide04{background-image:url("../img/top/main-visual-4.webp");}
#main-visual .swiper-slide div.slide05{background-image:url("../img/top/main-visual-5.webp");}

.swiper-pagination-bullet {
	width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 10px)) !important;
	height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 10px)) !important;
}
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
	bottom: var(--swiper-pagination-bottom, -43px) !important;
}
.main-catch,
.page-catch {
	position: absolute;
	left: 60px;
	bottom: 20%;
	z-index: 100;
	text-align: left;
	line-height: 2;
}
.main-catch p,
.page-catch h2 {
	font-size: 43px;
	font-weight: 400;
	font-family: "Shippori Mincho", serif;
	color: var(--color-brown);
	background-color: #FFFFFF;
	display: block;
	margin: 6px 0;
	padding: 6px 12px;
	line-height: 1;
}
.main-catch p.small {
	font-size: 30px;
}
.main-catch .line,
.page-catch .line {
	position: relative;
	display: block;
	width: fit-content;
	overflow: hidden;
	-webkit-clip-path: inset(0 100% 0 0);
	        clip-path: inset(0 100% 0 0);
	animation: lineReveal 1.2s cubic-bezier(0.77, 0, 0.18, 1) forwards;
}
.main-catch .line span,
.page-catch .line span {
	display: inline-block;
	-webkit-clip-path: inset(0 100% 0 0);
	        clip-path: inset(0 100% 0 0);
	animation: catchClip 1.2s cubic-bezier(0.77, 0, 0.18, 1) forwards;
}
.main-catch .line::after,
.page-catch .line::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--key-color);
	transform: translateX(-100%);
	animation: catchMask 1.2s cubic-bezier(0.77, 0, 0.18, 1) forwards;
}
.main-catch .line2 span,
.main-catch .line2::after,
.page-catch .line2 span,
.page-catch .line2::after {
	animation-delay: 1.3s;
}
.main-catch .line2,
.page-catch .line2 {
	animation-delay: 1.1s;
}

@keyframes catchClip {
	to {
		-webkit-clip-path: inset(0 0 0 0);
		        clip-path: inset(0 0 0 0);
	}
}
@keyframes lineReveal {
	to {
		-webkit-clip-path: inset(0 0 0 0);
		        clip-path: inset(0 0 0 0);
	}
}
@keyframes catchMask {
	to {
		transform: translateX(105%);
	}
}

.main-visual_cloud {
	position: absolute;
	bottom: -120px;
	left: -100px;
	width: 500px;
	z-index: 100;
}

.main-visual_credit {
	position: absolute;
	right: 20px;
	bottom: 20px;
	color: #FFFFFF;
	text-shadow:
		2px -2px 10px #000000 ,
		-2px -2px 10px #000000;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	#main-visual{
		height: 400px;
		min-height: auto;
		margin-bottom: 82px;
	}
	#main-visual .swiper-slide {
		padding: 0 10px;
	}
	#main-visual .swiper-slide div.img{
		width: 100%;
		height: 400px;
		min-height: auto;
		border-radius: 30px 30px 0 0;
	}
	.main-catch,
	.page-catch {
		position: absolute;
		left: 20px;
		bottom: 70px;
		z-index: 100;
		text-align: left;
		line-height: 2;
	}
	.main-catch p,
	.page-catch h2 {
		font-size: 25px;
		font-weight: 400;
		font-family: "Shippori Mincho", serif;
		color: var(--color-brown);
		background-color: #FFFFFF;
		display: block;
		margin: 6px 0;
		padding: 6px 12px;
		line-height: 1;
	}
	.main-catch p.small {
		font-size: 18px;
	}
	.main-visual_cloud {
		position: absolute;
		bottom: -71px;
		left: -100px;
		width: 300px;
		z-index: 100;
	}

}

/*============================
#top-about
============================*/

#top-about {
	background-image: url("../img/cloud-red02.webp");
	background-size: 570px auto;
	background-position: bottom 0 right -130px;
	background-repeat: no-repeat;
	padding-bottom: 130px;
}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	#top-about {
		background-size: 300px auto;
		background-position: bottom 0 right -78px;
		padding-bottom: 90px;
	}

}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

}

.news-slider {
  position: relative;
}
.news-slider__nav {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin: 0 0 24px;
  padding-right: 6px;
}
.news-button {
  width: 44px;
  height: 44px;
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.news-button::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}
.news-button-prev::before {
  transform: rotate(-135deg);
}
.news-button-next::before {
  transform: rotate(45deg);
}
.news-button:hover {
  background: rgba(255, 255, 255, 0.12);
}
.news-button:active {
  background: rgba(255, 255, 255, 0.2);
}
.news-button:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.7);
  outline-offset: 4px;
}
.news-slider .swiper {
  overflow: visible;
}
.news-slider .swiper-slide {
  display: block;
  overflow: hidden;
  transition: opacity 0.3s;
}
.news-slider .swiper-slide img {
  width: 100%;
	aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  border-radius: 10px;
	margin-bottom: 20px;
}
.news-slider .swiper-slide h3 {
	color: #FFFFFF;
}
.news-slider .swiper-slide time {
	color: #FFFFFF;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width: 768px) {
	
	.news-slider__nav {
		margin-bottom: 16px;
		gap: 10px;
	}
	.news-button {
		width: 38px;
		height: 38px;
	}
	.news-slider .swiper-slide img {
		margin-bottom: 20px;
	}

}

/*============================
#top-link
============================*/
#top-link {
}
ul.link-list {
	display: flex;
	flex-wrap: wrap;
	border: 5px solid var(--color-red);
}
ul.link-list li {
	width: 33.33%;
	position: relative;
	overflow: hidden;
}
ul.link-list li a {
	display: flex;
	align-items: end;
	justify-content: end;
	height: 500px;
	background: linear-gradient(to bottom, rgb(0 0 0 / 0) 0%, rgb(0 0 0 / 0.7) 100%);
	position: relative;
	z-index: 1;
	padding: 35px 25px;
	border: 5px solid var(--color-red);
}
ul.link-list li::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--link-bg);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	transform: scale(1);
	transition: transform 0.6s ease;
}
ul.link-list li:hover::before {
	transform: scale(1.04);
}
ul.link-list li:nth-child(1)::before {
	background-position: top center;
}
ul.link-list li:nth-child(1) {--link-bg: url("../img/top/link-kagura.webp");}
ul.link-list li:nth-child(2) {--link-bg: url("../img/top/link-hanataue.webp");}
ul.link-list li:nth-child(3) {--link-bg: url("../img/top/link-tour.webp");}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	ul.link-list {
		border: 5px solid var(--color-red);
	}
	ul.link-list li {
		width: 100%;
	}
	ul.link-list li a {
		display: flex;
		align-items: end;
		justify-content: end;
		height: 300px;
		background: linear-gradient(to bottom, rgb(0 0 0 / 0) 0%, rgb(0 0 0 / 0.7) 100%);
		padding: 20px 10px;
		border: 5px solid var(--color-red);
	}

}

.sns-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin: 0 auto 60px;
  padding: 0;
}
.sns-list li {
  list-style: none;
}
.sns-list a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
	font-size: 20px;
  font-weight: 700;
}
.sns-list a:hover {
}
.sns-list a img {
  width: 40px;
  object-fit: contain;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

  .sns-list {
    gap: 12px;
    margin-bottom: 40px;
  }
  .sns-list a {
    width: 100%;
    justify-content: center;
    padding: 13px 16px;
  }
  .sns-list a img {
    width: 24px;
    height: 24px;
  }

}

.parallax-photo {
	position: relative;
	height: 40vh;
	min-height: 400px;
	background-image: url("../img/top/photo01.webp");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}
#top .parallax-photo {
	height: 80vh;
	min-height: 600px;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){
	.parallax-photo {
		height: 40vh;
		min-height: 300px;
		background-attachment: scroll; /* iOS Safari などで固定背景が効かない場合に備えたフォールバック */
		margin-bottom: 30px;
	}
	#top .parallax-photo {
		height: 40vh;
		min-height: 300px;
	}
	
}


/* ------------------------------------------
  下層ページ
--------------------------------------------- */

#pageheader {
	position: relative;
}

#pageheader.page-visual {
	height: 60vh;
	min-height: 520px;
	margin: 0 0 120px;
	/* outer padding is handled by offsetting the background to leave gutters */
}

#pageheader.page-visual .page-visual__bg {
	position: absolute;
	top: 0;
	right: 30px;
	bottom: 0;
	left: 30px;
	border-radius: 30px 30px 0 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
	z-index: 1;
}

#pageheader.page-visual .page-catch {
	z-index: 2;
}

#pageheader .page-visual__bg {background-image: url("../img/top/main-visual.webp");}
#pageheader.kagura .page-visual__bg {background-image: url("../img/top/main-visual-3.webp");}
#pageheader.hanataue .page-visual__bg {background-image: url("../img/top/main-visual.webp");}
#pageheader.tour .page-visual__bg {background-image: url("../img/tour/tour02-2.webp");}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	#pageheader.page-visual {
		height: 250px;
		min-height: auto;
		margin-bottom: 40px;
	}
	#pageheader.page-visual .page-visual__bg {
		left: 12px;
		right: 12px;
		border-radius: 24px 24px 0 0;
	}
	
	.page-catch {
		left: 20px;
		bottom: 40px;
	}
  
}

ul.news-list li {
  margin-bottom: 30px;
}
ul.news-list li a {
  display: block;
}
ul.news-list li .box {
  padding: 20px;
  background-color: var(--color-gray);
}
ul.news-list li .box div data {
  display: inline-block;
  font-size: 18px;
}
ul.news-list li .box div p.category {
  display: inline-block;
  margin-left: 10px;
  font-size: 18px;
  color: #FFFFFF;
  font-weight: bold;
  background-color: var(--key-color);
  border-bottom-right-radius: 20px;
  padding: 0 15px;
}
ul.news-list li .box div p.category.pink {background-color: var(--color-pink);}
ul.news-list li .box div p.category.green {background-color: var(--key-color);}
ul.news-list li .box h3 {
  font-size: 20px;
  font-weight: bold;
  margin-top: 7px;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

  ul.news-list li {
    margin-bottom: 30px;
  }
  ul.news-list li .box {
    padding: 20px;
  }
  ul.news-list li .box div data {
    font-size: 16px;
  }
  ul.news-list li .box div p.category {
    margin-left: 10px;
    font-size: 16px;
    border-bottom-right-radius: 20px;
    padding: 0 15px;
  }
  ul.news-list li .box h3 {
    font-size: 17px;
    margin-top: 7px;
  }
  
}

#related-links {
  background-image: url("../img/cloud-red02.webp");
  background-repeat: no-repeat;
  background-size: 550px auto;
  background-position:top 0 right -100px;
	padding-top: 180px;
}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){


}

.pagenavi {
	clear: both;
	padding-top:5px;
	text-align:center;
	margin-top:50px;
}

.pagenavi a, .pagenavi span {
	text-decoration: none;
	border: 1px solid #BFBFBF;
	padding: 5px 15px !important;
	margin: 2px 2px 10px;
	display:inline-block;
	font-size: 17px;
}


.pagenavi span.current {
	font-weight: bold;
	color:#FFFFFF;
	background-color:#AD8400;
	border-color:#AD8400 !important;
}

.pagenavi .larger , .pagenavi .smaller{
	background-color:#FFFFFF;
}

.single-top {
  margin-bottom: 25px;
}
.single-top data {
  display: inline-block;
  font-size: 18px;
}
.single-top p {
  display: inline-block;
  margin-right: 10px;
  font-size: 18px;
  color: #FFFFFF;
  font-weight: bold;
  background-color: var(--key-color);
  border-bottom-right-radius: 20px;
  padding: 0 30px;
}
.single-top h2 {
  font-size: 26px;
  font-weight: bold;
  color: var(--key-color);
  margin-top: 30px;
  letter-spacing: var(--letter-spacing);
}
.single-top p.pink {background-color: var(--color-pink);}
.single-top p.green {background-color: var(--key-color);}

@media screen and (max-width:768px) {
  
  .single-top {
    margin-bottom: 25px;
  }
  .single-top data {
    font-size: 16px;
  }
  .single-top p {
    margin-right: 10px;
    font-size: 16px;
    border-bottom-right-radius: 20px;
    padding: 0 15px;
  }
  .single-top h2 {
    font-size: 20px;
    margin-top: 15px;
  }

}

.single{
	margin-bottom: 100px;
  padding-bottom: 80px;
  border-bottom: 1px solid var(--key-color);
}
.single h2 {
  font-size: 23px;
  font-weight: bold;
  margin-bottom: 30px;
  padding: 10px 20px;
  letter-spacing: var(--letter-spacing);
  background-color: var(--color-gray);
}
.single h3 {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 30px;
  letter-spacing: var(--letter-spacing);
}
.single img {
	margin: 0 auto 20px;
}
.single p {
	margin-bottom: 20px;
}

.single a{
	text-decoration: underline;
	color: #2985cf;
}

.wp-block-file .wp-block-file__button{
	background-color: #AD8400 !important;
}


.single table , table.p01{
	width: 100%;
	margin: 15px auto 40px;
	border-top: 1px solid #CECECE;
}
.single table th,
.single table td,
table.p01 th,
table.p01 td{
	padding: 15px 20px;
	border-bottom: 1px solid #CECECE;
}
.single table th , table.p01 th {
	font-weight:bold;
	background-color: var(--color-gray);
	border-bottom: 1px solid #CECECE;
	vertical-align: middle;
}
.single table th , table.p01 th {white-space: nowrap;}

.table-100{min-width: 100px;}
.table-110{min-width: 110px;}
.table-120{min-width: 120px;}
.table-130{min-width: 130px;}
.table-140{min-width: 140px;}
.table-150{min-width: 150px;}
.table-160{min-width: 160px;}
.table-170{min-width: 170px;}
.table-180{min-width: 180px;}

@media screen and (max-width:768px) {
  
  .single{
    margin-bottom: 50px;
    padding-bottom: 30px;
  }
  .single h2 {
    font-size: 18px;
  }
  .single h3 {
    font-size: 16px;
  }
	.single table img{
    max-width:  100%;
    height: auto;
  }
	.single table , table.p01{
		width: 100%;
		margin: 15px auto 40px;
		border-top: 1px solid #CECECE;
	}
	.single table th,
	.single table td,
	table.p01 th,
	table.p01 td{
		padding: 15px 20px;
		display: block;
	}
	.single table th , table.p01 th {
		font-weight:bold;
		background-color: var(--color-gray);
		border-bottom: none;
		vertical-align: middle;
	}

}

/* ------------------------------------------
  お問い合わせ
--------------------------------------------- */

.contact-section {
  margin-bottom: 140px;
}

.contact-section h3 {
  text-align: center;
  margin-bottom: 32px;
}

.contact-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  margin-bottom: 70px;
}

.contact-logo img {
  width: 220px;
  max-width: 260px;
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 18px;
  line-height: 1.8;
  text-align: left;
}

.contact-info__name {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .08em;
}

.contact-info__address {
  letter-spacing: .05em;
}

.contact-info__list {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  row-gap: 8px;
  margin-top: 6px;
  align-items: baseline;
}

.contact-info__list dt {
  font-weight: 700;
  letter-spacing: .08em;
  min-width: 46px;
}

.contact-info__list dd {
  margin: 0;
}

.contact-info__list a {
  color: inherit;
  text-decoration: none;
}

.related-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 18px;
}



@media only screen and (max-width:768px){
  .contact-card {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 32px 24px;
    gap: 28px;
    margin-bottom: 50px;
  }

  .contact-logo img {
    width: 180px;
  }

  .contact-info {
    align-items: center;
    font-size: 16px;
    line-height: 1.7;
    text-align: center;
  }

  .contact-info__name {
    font-size: 18px;
  }

  .contact-info__list {
    justify-content: center;
  }

  .contact-info__list dt,
  .contact-info__list dd {
    text-align: center;
  }

  .related-links {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
  }

}

/* ------------------------------------------
  ひろしま神楽
--------------------------------------------- */

.page-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 100px;
}
.page-hero__text {
	padding-left: 10%;
	display: flex;
  align-items: center;
}
.page-hero__text p + p {
  margin-top: 12px;
}

.page-hero__img img {
  width: 100%;
}

.page-hero__img figcaption {
  margin-top: 12px;
  font-size: 14px;
  letter-spacing: .04em;
}


.kagura-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 28px;
	margin-bottom: 60px;
}

.kagura-gallery figure,
.kagura-map figure {
  width: 100%;
}

.kagura-gallery img {

}
.kagura-map img {
	width: 800px;
}

.kagura-gallery figcaption,
.kagura-map figcaption {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .04em;
}

.kagura-map {
  text-align: center;
}

.kagura-types {
  display: grid;
  gap: 30px;
}

.kagura-types li {
  display: grid;
  grid-template-columns: 1fr 0.9fr;
  gap: 45px;
  padding: 40px;
  border: 1px solid #e4dcd3;
	align-items: center;
}

.kagura-types__text h4 {
  margin-bottom: 12px;
}

.kagura-types__img img {
  width: 100%;
}

.kagura-types__img figcaption {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.5;
}

.page-ref {
  display: grid;
  gap: 8px;
  font-size: 15px;
  line-height: 1.7;
	margin-top: 50px;
}

.kagura-coming {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){
	
  .kagura-section {
    margin-bottom: 80px;
  }

  .page-hero {
    grid-template-columns: 1fr;
    padding: 0 30px 34px;
    gap: 26px;
  }

  .page-hero__img img {
  }
	.page-hero__text {
		padding-left: 0;
	}
	
  .kagura-types li {
    grid-template-columns: 1fr;
    padding: 22px 18px;
  }

  .kagura-types__img img {
  }

  .kagura-gallery {
    gap: 20px;
  }

  .kagura-gallery img,
  .kagura-map img {
  }
}


.card-list {
  border: 1px solid #d8d0c8;
  background: #fff;
  padding: 26px 24px;
  text-align: center;
}

.card-list h2 {
  font-size: 21px;
  margin-bottom: 12px;
  letter-spacing: .08em;
}

.card-list p {
  line-height: 1.7;
}
.card-list_youtube {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	font-size: 25px;
	font-weight: bold;
}
.card-list_youtube img {
	width: 50px;
	margin-right: 10px;
}


/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	.card-list {
		padding: 26px 24px;
		text-align: center;
	}

	.card-list h2 {
		font-size: 18px;
		margin-bottom: 5px;
		letter-spacing: .08em;
	}

	.card-list p {
		line-height: 1.7;
	}
	.card-list_youtube {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		font-size: 18px;
		font-weight: bold;
	}
	.card-list_youtube img {
		width: 50px;
		margin-right: 10px;
	}

}

.box-layout {
	border: 1px solid var(--color-red);
	padding: 30px;
}
.box-layout_header {
	background-color: var(--color-red);
	color: #FFFFFF;
	text-align: center;
	font-size: 25px;
	font-weight: bold;
	padding: 10px;
}

/* ------------------------ スマートフォン ------------------------ */
@media only screen and (max-width:768px){

	.box-layout {
		border: 1px solid var(--color-red);
		padding: 20px;
	}
	.box-layout_header {
		font-size: 17px;
		padding: 10px;
		text-align: left;
	}

}

.column_black li img {
	margin-bottom: 0 !important;
}
.column_black li p {
	background-color: #200000;
	text-align: center;
	padding: 10px;
}


/* ------------------------------------------
  アニメーション
--------------------------------------------- */

.img-wrap {
  overflow: hidden;
  position: relative;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.img-wrap.active {
  opacity: 1;
}
.img-wrap.active::before {
  animation: img-wrap 1s cubic-bezier(0.70, 0, 0.2, 1) forwards;
  background: #fff;
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}
.section-bg .img-wrap.active::before{
  background: var(--key-color);
}

@keyframes img-wrap {
  100% {
    transform: translateY(100%);
  }
}


ul.text-link-banner {
	
}
ul.text-link-banner li {
	
}
ul.text-link-banner li a {
	display: block;
	font-weight: bold;
	padding: 30px 20px;
	text-align: center;
	border: 2px solid var(--key-color);
	color: var(--key-color);
	border-radius: 30px;
}
ul.text-link-banner li a:hover {
	color: #FFFFFF;
	background-color: var(--key-color);
}