@charset "UTF-8";

/* ============================
  基本設定
============================ */
:root {
  /* テキストカラー */
  --txt-dark: #444;
  /* テキストカラー薄色 */
  --txt-light: #fff;
  /* メインカラー */
  --color-main: #dcd112;
  /* メインカラー薄色 */
  --color-light: #f5f5f5;
  /* サブカラー */
  --color-sub: #ff0000;
  /* フッターカラー */
  --color-footer:#f5f5f5;
  --txt-footer: #000;
  /* コンテンツ幅 */
  --width-inner: min(1080px, 100%);
  /* 狭いコンテンツ幅 */
  --width-narrow: min(810px, 100%);
  /* セリフフォント */
  --font-serif: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
}

html {
  font-size: 62.5%;
}

body {
  font-family: var(--font-serif);
  color: var(--txt-dark);
  font-size: 1.6rem;
  line-height: 2;
  font-weight: 400;
}

/* PC / SP */
@media screen and (min-width: 811px) {
  .pc {
    display: block;
  }
  .sp {
    display: none;
  }
}
@media screen and (max-width: 810px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}

section {
  padding: 80px 0;
}
hr{
  border: 0;
  height: 5px;
  border-top: 1px solid var(--color-main);
  border-bottom: 1px solid var(--color-main);
  margin: -130px calc(50% - 50vw) 0;
}
@media screen and (max-width: 810px) {
  hr{
    margin: -80px calc(50% - 50vw) 0;
  }
}

/* section bg */
section.bg-main{
  background: var(--color-main);
  color: #fff;
  padding-bottom: 80px;
}

@media screen and (max-width: 810px) {
  section {
    padding: 40px 0;
  }
  section.bg-left,
  section.bg-right{
    background: var(--color-light);
    padding: 0 0 40px;
  }
}

/*//   text   //*/
h1 {
  line-height: 1;
}

h2 {
  color: var(--txt-dark);
  letter-spacing: .2em;
  text-align: center;
}

h2 span{
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
}
h2 span::after{
  margin-top: 1em;
  flex-grow: 1;
  content: "";
  border-left: 1px solid #999;
  height: 8em; /* 線の長さ */
}

@media screen and (min-width: 811px) {
  h2 {
    font-size: 2.4rem;
  }

}
@media screen and (max-width: 810px) {
  h2 {
    font-size: 4.26vw;
    display: inline-block;
    margin: 0 auto;
  }
  h2 span{
    font-size: 4.26vw;
  }
  h2 span::after{
    margin-top: .5em;
    height: 3em; /* 線の長さ */
  }
}




h3 {
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 40px;
}
@media screen and (max-width: 810px) {
  h3 {
    font-size: 6.41vw;
  }
}




.note{
  margin-top: .5em;
  font-size: .8em;
}

p + p{
  margin-right: 1em;
}

img {
  width: 100%;
  height: auto;
}

a {
  color: #3E362D;
  text-decoration: none;
}
.tac {
  text-align: center;
  margin: 0 auto;
}
.tar {
  text-align: right;
}
.fb{
  font-weight: bold;
}


/* ============================
  header
============================ */
header {
  position: fixed;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  padding: 16px 40px;
  top: 0;
  width: 100%;
  z-index: 100;
  transition: 0.5s;
  /* mix-blend-mode: difference; */
  /* background: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.5) 100%); */
}
#header.remove {
  top: -100px;
  user-select: none;
}
#header.bg{
  background: rgba(0,0,0,0.3);
}

header h1 {
  width: 12vw;
  min-width: 86px;
}
@media screen and (max-width: 810px) {
  header{
    padding: 12px 20px;
  }
  header h1 {
    width: 25.64vw;
  }
}
@media screen and (max-width: 810px) {
  header nav {
    margin-left: 100%;
    padding: 80px 10% 0 10%;
    width: 100vw;
    height: 100vh;
    z-index: 30;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    position: fixed;
    transition: all 0.4s;
  }
}
header nav ul#menu {
  display: flex;
  height: 100%;
  gap: 1.5em;
}
@media screen and (max-width: 810px) {
  header nav ul#menu {
    flex-direction: column;
  }
}
header nav ul#menu li {
  font-size: clamp(1.2rem, 1.17vw, 1.6rem);
  height: 100%;
}
@media screen and (max-width: 810px) {
  header nav ul#menu li {
    font-size: clamp(1.2rem, 4.8vw, 1.8rem);
    width: 100%;
    height: auto;
  }
}
header nav ul#menu li a {
  position: relative;
  color: #fff;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 .2em;
  z-index: 3;
}

header nav ul#menu li a::before{
  content: "";
  position: absolute;
  bottom: 2px;
  left: 0;
  background: var(--color-main);
  width: 100%;
  height: 1px;
  background: #fff;
	transition: transform .3s;
	transform: scale(0, 1);
	transform-origin: center top;
}
header nav ul#menu li a:hover:before{
  transform-origin: center top;
  transform: scale(1, 1);
}


@media screen and (max-width: 810px) {
  header nav ul#menu li a {
    display: block;
    text-align: center;
    width: 100%;
    padding: .5em 0;
  }
}

header .nav_btn {
  display: none;
}
@media screen and (max-width: 810px) {
  header nav ul#menu li:last-child a {
    background: var(--color-main);
    color: var(--txt-dark);
    width: 100%;
    height: auto;
    margin: 20px auto 0;
    border-radius: 40px;
    display: flex;
    justify-content: center;
    border: none;
  }

  header .nav_btn {
    display: block;
    width: 8vw;
    height: 20px;
    z-index: 30;
    cursor: pointer;
    position: relative;
  }
}
header .nav_btn .hamburger_line {
  transition: all 0.6s;
  width: 100%;
  height: 2px;
  background-color: var(--color-main);
  position: absolute;
}
header .nav_btn .hamburger_line1 {
  top: 0;
}
header .nav_btn .hamburger_line2 {
  top: 8px;
}
header .nav_btn .hamburger_line3 {
  top: 16px;
}
body.nav_open{
  height: 100%;
  overflow: hidden;
}
.nav_open header nav {
  margin-left: 0;
  transition: all 0.4s;
}
.nav_open header .hamburger_line1 {
  top: 9px;
  transform: rotate(45deg);
}
.nav_open header .hamburger_line2 {
  width: 0;
}
.nav_open header .hamburger_line3 {
  top: 9px;
  transform: rotate(-45deg);
}



/* ============================
  footer
============================ */
footer {
  background: var(--color-footer);
  color: var(--txt-footer);
  line-height: 1.6;
  position: relative;
}
@media screen and (max-width: 810px) {
  footer {
    font-size: 1.2rem;
  }
}

/* pagetop */
footer .pagetop {
  position: absolute;

  font-size: 1.2rem;
  overflow: visible;
}
.pagetop-link {
  display: block;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  -webkit-transform-origin: left top;
  transform-origin: left top;
  white-space: nowrap;
  margin-left: 100%;
  color: var(--color-main);
}
.pagetop-link::before {
  content: "";
  display: inline-block;
  width: 40px;
  height: 0;
  border-top: 1px solid var(--color-main);
  vertical-align: middle;
  margin: 1px 10px 0 0;
}

@media all and (min-width: 811px) {
  .pagetop {
    top: -40px;
    right: 40px;
    font-size: 1.5rem;
  }
  .pagetop-link::before {
    width: 80px;
  }
}@media all and (max-width: 810px) {
  .pagetop {
    top: -20px;
    right: 20px;
    font-size: 1.5rem;
  }
}

@media (hover: hover) and (pointer: fine) {
  .pagetop-link:hover::before {
    -webkit-animation: pagetopLine 1.2s cubic-bezier(1, 0, 0, 1) 1;
    animation: pagetopLine 1.2s cubic-bezier(1, 0, 0, 1) 1;
  }
}
@keyframes pagetopLine {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }
  50% {
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }
  50.1% {
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transform-origin: right top;
    transform-origin: right top;
  }
  100% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: right top;
    transform-origin: right top;
  }
}
/* footer contents */
footer .inner{
  padding: 40px 0 16px;
}
@media screen and (max-width: 810px) {
  footer .inner{
    padding: 20px 0;
  }
}
footer .ft-wrap {
  display: flex;
  justify-content: space-between;
}
footer .ft-wrap .ft-logo {
  width: 80%;
  margin-bottom: 40px;
}
@media screen and (max-width: 810px) {
  footer .ft-wrap {
    flex-direction: column;
  }
  footer .ft-wrap .ft-logo {
    width: 80%;
    margin: 0 auto 20px;
  }
}

footer .ft-wrap > div:not(.ft-info){
  display: flex;
  flex-direction: column;
}
footer .ft-wrap .ft-info p {
  margin-top: .5em;
  font-size: .8em;
}
footer .ft-wrap .ft-info .name {
  font-size: 1em;
}
@media screen and (max-width: 810px) {
  footer .ft-wrap .ft-info{
    text-align: center;
  }
  footer .ft-wrap .ft-info .name {
    font-size: 1.2rem;
  }
}
footer .ft-wrap .ft-btn a{
  margin-top: 1em;
  font-size: .8em;
  display: inline-block;
  color: rgba(255,255,255,1 .4);
  border: 1px solid rgba(0, 0, 0, .4);
  text-align: center;
  padding: .2em 6em;
}
footer .ft-wrap .ft-btn a:hover{
  background-color: rgba(255, 255, 255, 1);
}
@media screen and (max-width: 810px) {
  footer .ft-wrap .ft-btn a{
    width: 100%;
  }
}
footer .ft-wrap ul li {
  margin: 1em 1em 0 0;
}
footer .ft-wrap ul li a {
  color: var(--txt-footer);
}

@media screen and (min-width: 811px) {
  footer .ft-wrap ul.ft-menu{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-end;
    width: 20em;
  }
}
@media screen and (max-width: 810px) {
  footer .ft-wrap ul.ft-menu{
    display: none;
  }
}
footer .ft-wrap ul.ft-menu li{
  writing-mode: vertical-rl;

}
footer .ft-wrap ul.ft-link{
  display: flex;
  margin-top: auto;
  flex-direction: row;
  width: 100%;
  justify-content: flex-end;
  font-size: 1.1rem;
}
@media screen and (max-width: 810px) {
  footer .ft-wrap ul.ft-link{
    justify-content: center;
  }
}
footer .ft-wrap ul.ft-link li + li{
  border-left: 1px solid var(--txt-footer);
  padding-left: 1em;
}

/* ページ下部の御和讃（フッター上・左下） */
.ft-verse-wrap {
  padding: 30px 0 10px 0;
}
.ft-verse {
  text-align: left;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 810px) {
  .ft-verse-wrap {
    padding: 24px 0;
  }
  .ft-verse {
    font-size: 1.3rem;
  }
}

footer .ft-banner {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 30px;
  margin-top: 40px;
}
footer .ft-banner li {
  list-style: none;
}
footer .ft-banner a {
  display: block;
  transition: opacity 0.3s;
}
footer .ft-banner a:hover {
  opacity: 0.7;
}
footer .ft-banner img {
  display: block;
  width: 250px;
  max-width: 100%;
  height: auto;
}
@media screen and (max-width: 810px) {
  footer .ft-banner {
    gap: 20px;
  }
  footer .ft-banner img {
    width: 200px;
  }
}

footer .copy {
  text-align: center;
  font-size: 1.2rem;
  margin-top: 40px;
}
@media screen and (max-width: 810px) {
  footer .copy {
    font-size: 1.0rem;
  }
}

/*//   swiper   //*/
.swiper{
  width: 100%;
  height: 100vh;
  background: #ccc;
}
.swiper-slide {
  position: relative;
}
.swiper-slide > img{
  width: 100%;
  height: 100vh;
  object-fit: cover;
}

.swiper .swiper-txt{
	font-size: clamp(1.6rem, 3.33vw, 4rem);
  writing-mode: vertical-rl;
  line-height: 2 !important;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate( -50%, -50%);
  white-space: nowrap;
	color: #fff;
	text-align: left;
  line-height: 1;
	z-index: 20;
	text-shadow: 0 0 8px rgba(0, 0, 0, .3);
  font-weight: bold;
}

.swiper-txt span{
  height: 100%;
  display: block;
  font-size: 0.6em;
  margin-right: 1em;
}

.swiper-slide-active .swiper-txt {
  -webkit-animation: fade-in 2s 0.5s both;
          animation: fade-in 2s 0.5s both;
}
@media screen and (max-width: 810px) {
  .swiper-slide-active .swiper-txt {
    -webkit-animation: none;
            animation: none;
  }
}
.swiper-slide-active .swiper-txt span {
  -webkit-animation: fade-in 2.5s 2s both;
          animation: fade-in 2.5s 2s both;
}


/*//   button   //*/
.btn {
  width: 50%;
  margin: 60px auto 0;
  text-align: center;
}
@media screen and (max-width: 810px) {
  .btn {
    width: 100%;
    margin: 40px auto 0;
  }
}
.btn a {
  color: #666;
  display: block;
  padding: 1em;
  border: 1px solid #999;
  position: relative;
  transition: all 0.3s;
  background: #fff;
}
.btn a::before {
  content: "";
  position: absolute;
  top: 3px;
  bottom: 3px;
  right: 3px;
  left: 3px;
  border: 1px solid #999;
}
.btn a::after {
  content: "";
  position: absolute;
  top: calc(50% - 3px);
  right: 10%;
  width: 10px;
  height: 10px;
  border-top: 1px solid #666;
  border-right: 1px solid #666;
  transform: rotate(45deg);
  transition: all 0.3s;
}
.btn a:hover {
  background: var(--color-main);

}

.btn a:hover::after {
  right: 8%;
}
.txt-link{
  line-height: 1.6;
}

section > .btn {
  width: 60%;
  margin: 40px auto 0;
}

@media screen and (max-width: 810px) {
  .btn-color{
    width: 100%;
  }
}
.btn-color a{
  display: flex;
  color: var(--txt-dark);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: var(--color-main);
  width: 160px;
  height: 160px;
  border-radius: 100%;
  text-align: center;
}
@media screen and (max-width: 810px) {
  .btn-color a{
    width: 30vw;;
    height: 30vw;;

    margin: 20px auto 0;
  }
}


/* ============================
  contents
============================ */
.inner {
  width: min(84%, 1200px);
  margin-inline: auto;
}

/*//   TOP page   //*/

.txt-tate{
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  gap: 1em;
}
.txt-tate h2{
  margin-left: 40px;
}
@media screen and (min-width: 811px) {
  .txt-tate div{
    display: flex;
    flex-direction: row-reverse;
  }
  .txt-tate p{
    writing-mode: vertical-rl;
    text-align: start;
  }
}
@media screen and (max-width: 810px) {
  .txt-tate{
    flex-direction: column;
    gap: 2em;
  }
  .txt-tate h2{
    margin-left: auto;
  }

}

.txt-tate p{
  line-height: 2.4;
  letter-spacing: .1em;
}


/* 住職の言葉（横書き） */
.message-wrap{
  width: min(100%, 860px);
  margin-inline: auto;
}
.message-ttl{
  line-height: 1.7;
  margin-bottom: 1.8em;
}
.message-body p{
  line-height: 2.2;
  letter-spacing: .04em;
  margin-bottom: 1.4em;
  text-align: justify;
}
.message-sign{
  text-align: right;
  margin-top: 2em;
  line-height: 1.8;
}

/* 住職プロフィール */
.profile-wrap{
  width: min(100%, 860px);
  margin: 80px auto 0;
}
.profile-ttl{
  margin-bottom: 1.5em;
}
.profile-inner{
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.profile-photo{
  flex: 0 0 25%;
}
.profile-photo img{
  width: 100%;
  height: auto;
  display: block;
}
.profile-detail{
  flex: 1;
  font-size: 1.4rem;
  line-height: 1.9;
}
.profile-name{
  font-size: 1.8rem;
  letter-spacing: .08em;
  margin-bottom: 1em;
}
.profile-name span{
  font-size: 1.3rem;
  margin-left: .3em;
}
.profile-detail dl{
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 1.2em;
  row-gap: .6em;
}
.profile-detail dt{
  white-space: nowrap;
}
.profile-sub{
  margin: 1.4em 0 .8em;
  font-weight: bold;
}
@media screen and (max-width: 810px) {
  .profile-inner{
    flex-direction: column;
    gap: 24px;
  }
  .profile-photo{
    flex: none;
    width: 60%;
    max-width: 280px;
    margin-inline: auto;
  }
  .profile-detail dl{
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .profile-detail dt{
    margin-top: .8em;
    font-weight: bold;
  }
  .profile-detail dd{
    margin-bottom: .2em;
  }
}


/* news */
.bg-light{
  background: var(--color-light)
}

.news-wrap{
  display: flex;
  flex-wrap: wrap;
  gap: 40px 0;
  line-height: 1.6;
}

@media screen and (min-width: 811px) {
  .news-wrap h2{
    width: 20%;
    display: flex;
    justify-content: center;
  }
  .news-wrap > div{
    width: 80%;
    margin: 0 auto;
  }
}

@media screen and (max-width: 810px) {
  .news-wrap {
    flex-direction: column;
  }
}


.list{
  width: 100%;
}
.list li{
  width: 100%;
  display: flex;
  gap: 1em 2em;
  padding: 1.2em 0 1.2em;
  border-bottom: 1px solid #ccc;
	align-items: center;
}
.list li p:first-child{
  min-width: 8em;
}

@media screen and (max-width: 810px) {
  .list{
    width: 100%;
  }
  .list li{
    width: 100%;
    display: block;
  }
  .list li p:first-child{
    min-width: 100%;
  }
}

.date{
  font-size: .8em;
  color: #777;
}
.ttl{
  font-weight: bold;
}
.ttl + p{
  font-size: .8em;
}


/* contactus */
.toform{ 
  width: 100%;
  background: url(../img/contact_bk.jpg) no-repeat center;
  background-size: cover;
  color: #fff;
}
.toform .toform-blur{
  backdrop-filter: blur(2px);
  background: rgba(0, 0, 0, .3);
}

.toform h2{
  text-align: left;
  color: #fff;
}
.toform .toform-wrap{
  position: relative;
  padding: 100px 40px;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (max-width: 810px) {
  .toform h2{
    text-align: center;
  }
  .toform .toform-wrap{
    padding: 60px 0;
    z-index: 20;
    flex-direction: column;
    text-align: center;
  }
}




/*//   page   //*/
.h-wrap{
  position: relative;
}

.h-wrap::before{
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .4);
  /* z-index: 10; */
}

@media screen and (max-width: 810px) {
  .h-wrap img{
    width: 100%;
    height: 40vw;
    object-fit: cover;
  }
}
.h-wrap h2{
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
  color: var(--txt-light);
  white-space: nowrap;
  /* border-left: 1px solid rgba(255,255,255, .3);
  border-right: 1px solid rgba(255,255,255, .3); */
}
.h-wrap h2 span{
  font-size: clamp(1.8rem, 2vw, 2.4rem);
  padding: 2em .5em 0;
}
.h-wrap h2 span::after{
  margin-top: 1em;
  flex-grow: 1;
  content: "";
  border-left: 1px solid #fff;
  height: 3em; /* 線の長さ */
}
@media screen and (min-width: 811px) {
	.h-wrap.pp h2 span{
		height: 13em;
		white-space: normal;
		word-wrap: break-word;
		text-align: end;
	}
}

@media screen and (max-width: 810px) {

  .h-wrap h2 span{
    font-size: clamp(1.6rem, 5.6vw, 2.1rem);
    padding: 0;
    writing-mode: horizontal-tb;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .h-wrap h2 span::after{
    margin-top: .5em;
    flex-grow: 1;
    content: "";
    display: block;
    border-left: 1px solid #fff;
    height: 2em; /* 線の長さ */
  }
}
.fullwidth {
  margin: 0 calc(50% - 50vw);
}




.flex-box{
  display: flex;
  gap: 80px;
}
.flex-box > div:first-child{
  width: calc(60% - 80px);
}
.flex-inner{
  width: 40%;
}

.flex-box + .flex-box{
  margin-top: 80px;
}
@media screen and (max-width: 810px) {
  .flex-box{
    flex-direction: column;
    gap: 24px;
  }
  .flex-box > div:first-child{
    width: 109.5%;
    margin-left: calc(50% - 50vw);
  }
  .flex-inner{
    width: 100%;
  }
  .flex-box + .flex-box{
    margin-top: 40px;
  }
}
.circle{
  margin-top: 80px;
}
.circle img{
  display: block;
  width: 20vw;
  height: 20vw;
  object-fit: cover;
  border-radius:50%;
  margin: 0 auto;
}
@media screen and (max-width: 810px) {
  .circle{
    margin-top: 16px;
  }
  .circle img{
    width: 50vw;
    height: 50vw;
    margin: 0 0 0 auto;
  }
}
.square{
  margin: 80px auto 0;
  width: 100%;
}
@media screen and (max-width: 810px) {
  .square{
    margin: 24px auto 0;
    width: 80%;
  }
}
.half{
  width: 50%;
  margin: 40px auto;
}
.thumb{
  margin-bottom: 40px;
}

.flex-box.reverse{
  flex-direction: row-reverse;
}
@media screen and (max-width: 810px) {
  .flex-box.reverse{
    flex-direction: column;
  }
  .flex-box.reverse > div:first-child{
    width: 109.5%;
    margin-left: auto;
    margin-right:calc(50% - 50vw);
  }
}

dl.about{
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 1em;
  align-items: stretch;
  flex-grow: 1;
}
dl.about dt{
  width: 10em;
  border-bottom: 1px solid #ccc;
  padding: 1em 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  line-height: 1.4;
}
dl.about dt span{
  display: block;
  font-size: .6em;
  font-weight: normal;
}
dl.about dd{
  width: calc(100% - 10em);
  padding: 1em 0;
  border-bottom: 1px solid #ccc;
}
dl.about ul li{
  list-style: disc inside;
  text-indent: -1.2em;
  padding-left: 1em;
}
dl.about ul li + li{
  margin-top: .5em;
}
@media screen and (max-width: 810px) {
  dl.about dt{
    width: 100%;
    border-bottom: none;
    padding: 1em 0 0;
  }
  dl.about dd{
    width: 100%;
  }
  dl.about ul li{
    list-style: disc inside;
    text-indent: -1.2em;
    padding-left: 1em;
  }
  dl.about ul li + li{
    margin-top: .5em;
  }

}

.terms{
  margin-top: 40px;
  border: 1px solid #ccc;
  padding: 40px;
  display: flex;
  gap: 40px;
  align-items: center;
  position: relative;
}
.terms::before {
  content: "";
  position: absolute;
  top: 3px;
  bottom: 3px;
  right: 3px;
  left: 3px;
  border: 1px solid #ccc;
}
@media screen and (max-width: 810px) {
  .terms{
    padding: 24px;
    flex-direction: column;
    gap: 24px;
  }
}
.type{
  margin-top: 40px;
  background: #eee;
  padding: 40px;
  display: flex;
  gap: 40px;
  align-items: center;
}
@media screen and (max-width: 810px) {
  .type{
    padding: 24px;
    flex-direction: column;
    gap: 24px;
  }
}

h4{
  min-width: 7em;
  text-align: center;
}
h4 span{
  display: block;
  font-size: .6em;
}


@media screen and (min-width: 811px) {
  .terms p,
  .type > div{
    border-left: 1px solid #ccc;
    padding-left: 40px;
  }
}
@media screen and (max-width: 810px) {
  .terms p,
  .type > div{
    border-top: 1px solid #ccc;
    padding-top: 24px;
  }
}
table{
  margin: 80px auto 0;
  width: 80%;
  border-collapse: collapse;
  border-spacing: 0;
  border-top: 1px solid #999;
}
table th{
  border-bottom: 1px solid #999;
  padding: .4em 0;
}
table td{
  text-align: center;
  border-bottom: 1px dotted #ccc;
  padding: .4em 0;
}
@media screen and (max-width: 810px) {
  table{
    width: 100%;
    border: 1px solid #999;
    font-size: .8em;
  }
  table th{
    border-left: 1px dotted #999;
    padding: .2em 0;
  }
  table td{
    border-left: 1px dotted #ccc;
    padding: .2em 0;
  }
}


.event {
	position: relative;
	width: 100%;
	margin: 40px auto;
	padding: 1em 0;
}
.event:before {
	position: absolute;
	left: 50%;
	top: 0;
	content: '';
	display: block;
	width: 6px;
	height: 100%;
	margin-left: -3px;
	background: #999;
	z-index: 5;
}
.event li {
	padding: 1em 0;
}
.event li:after {
	content: '';
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
.event li:nth-child(odd) .event_item {
	position: relative;
	width: calc(50% - 40px);
	float: left;
	text-align: right;
}
.event li:nth-child(even) .event_item {
	position: relative;
	width: calc(50% - 40px);
	float: right;
}
.event li .event_item .flag_cont {
	position: relative;
	display: block;
}

.event li:nth-child(odd) .event_item .flag_cont:before,
.event li:nth-child(even) .event_item .flag_cont:before {
	position: absolute;
	top: 0;
	right: -50px;
	content: ' ';
	display: block;
	width: 20px;
	height: 20px;
	background: #999;
	border-radius: 50%;
	z-index: 10;
}
.event li:nth-child(even) .event_item .flag_cont:before {
	left: -50px;
}
.event li:nth-child(odd) .event_item .flag_cont:after,
.event li:nth-child(even) .event_item .flag_cont:after {
	position: absolute;
	top: 12px;
	right: -48px;
	content: ' ';
	display: block;
	width: 16px;
	height: 16px;
	margin-top: -10px;
	border-radius: 10px;
	border: 2px solid rgba(255,255,255 ,1);
	z-index: 10;
}
.event li:nth-child(even) .event_item .flag_cont:after {
	left: -48px;
}

.event li .event_item .ttl {
	display: block;
  line-height: 1.6;
	text-align: right;
}
.event li:nth-child(even) .event_item .ttl {
	text-align: left;
}
.event li .event_item .detail {
  display: block;
  text-align: center;
	font-size: 0.8em;
	line-height: 1.5em;
	margin: .5em 0 0 0;
	padding: 1em;
	background:var(--color-light);
}
@media only screen and (max-width:810px) {
	.event {
		width: 100%;
	}
  .event:before {
    left: 10px;
    top: 0;
  }
	.event li {
		padding: 1em 0;
	}
	.event li:nth-child(odd) .event_item,
	.event li:nth-child(even) .event_item {
		float: none;
		width: 100%;
	}
	.event li .event_item .flag_cont {
		padding-left: 40px;
	}

	.event li:nth-child(odd) .event_item .flag_cont:before,
	.event li:nth-child(even) .event_item .flag_cont:before {
		top: -2px;
		right:0;
		left: 0;
	}
	.event li:nth-child(odd) .event_item .flag_cont:after,
	.event li:nth-child(even) .event_item .flag_cont:after {
		top: 10px;
		right: 2px;
		left: 2px;
	}
	.event li .flag_cont {
		display: block;
		position: relative;
		margin: 4px 0 0 0;
		z-index: 14;
	}
	.event li:nth-child(odd) .event_item .ttl,
	.event li:nth-child(even) .event_item .ttl {
		float: none;
		text-align: left;
	}
	.event li .event_item .detail {
		margin-left: 40px;
    text-align: left;
		z-index: 15;
	}
}


.grid-list {
  margin: 40px 0 80px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(248px, 100%), 1fr));
  gap: 32px;
}
/* .grid-list li {
  margin: 0 32px 40px 0;
} */

.grid-list li img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 1 / 1;
}
.access{
  border-left: 3px double #333;
  padding: 0 0 0 1em;
}
.access dt{
  font-weight: bold;
}
.access dt::before{
  content: "○";
  margin-right: .5em;
}
.access dd{
  margin-bottom: 1em;
}
.gglmap{
  margin-top: 40px;
  position: relative;
  height: 0;
  padding-bottom: 50%;
}
@media screen and (max-width: 810px) {
  .gglmap{
    margin: 40px calc(50% - 50vw) 0;
    padding-bottom: 56.25%;
  }
}
.gglmap iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  filter:grayscale(100%);
  -webkit-filter:grayscale(100%);
}

/*//   LIST   //*/
.list-tbl{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 0;
}
.list-tbl dt{
  width: 30%;
  border-bottom: 1px dotted #ccc;
}
.list-tbl dd{
  width: 70%;
  border-bottom: 1px dotted #ccc;
}


/* ============================
  contact
============================ */
/* .form{
  background: #efefef;
} */
.contact {
  width: 60%;
  margin: 24px auto;
}
@media screen and (max-width: 810px) {
  .contact {
    width: 100%;
  }
}
.contact dl {
  margin: 40px 0;
}
.contact dl dt {
  margin-top: 1em
}
.contact dl dt span {
  color: var(--color-main);
}
.contact p {
  text-align: center;
}
.contact a{
	text-decoration: underline;
}
.contact a:hover{
	text-decoration: none;
}
.bk-light{
  background: var(--color-light);
  border-radius: 4px;
  padding: .5em 1em;
}
span.wpcf7-spinner {
	display: block;
	height: 1px;
}
.wpcf7-radio span.wpcf7-list-item { 
	display: block; 
}
/*//   FORM   //*/
input[type=text],
input[type=email],
input[type=tel],
input[type=number],
textarea,
select {
  vertical-align: middle;
  width: 100%;
  max-width: 100%;
  padding: 0.1em .5em;
  color: #555;
  background: var(--color-light);
  text-align: left;
  border-radius: 4px;
  border: none;
}
input[type=radio] {
  display: none;
}
input[type="radio"] + span:before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: .5em;
  background: #fff;
  border-radius: 50%;
  background-clip: content-box;
  border: 4px solid #fff;
}
input[type="radio"]:checked + span:before {
  background: var(--color-main);
}
input[type="checkbox"]{
	margin-right: .5em;
}

input[type=submit] {
  font-family: inherit;
  line-height: 1;
  font-size: 1.4vw;
  width: 60%;
  margin: 40px auto 8px;
  background: var(--color-main);
  color: #fff;
  padding: 1em 0;
  cursor: pointer;
  border: none;
  border-radius: 100px;
}
@media screen and (max-width: 810px) {
  input[type=submit] {
    font-size: 5.12vw;
    width: 100%;
  }
}
.disabled{
	display: block;
	color: var(--color-main);
}

/*//   single   //*/
.single article{
	margin: 80px 0;
}
.single .date{
  font-size: .8em;
}
.single h3{
  text-align: left;
  margin: 0 0 8px 0;
  border-bottom: 1px solid #333;
}
.single h3 + span a{
	display: block;
	color: var(--color-main);
	text-align: right;
	font-size: .8em;
	margin-bottom: 40px;
}
.single article img{
  margin: 40px auto;
}
/*//   pagefeed   //*/
.pagefeed{
  display: flex;
  justify-content: space-between;
	margin-bottom: 40px;
}
.pagefeed a{
  font-size: .8em;
  color: #333;
}
.pagefeed a:hover{
  color: var(--color-main);
}
/*//   pagenum   //*/
.pagenum{
	font-size: 1.4rem;
	margin: 0 auto 80px;
	text-align: center;
}
ul.page-numbers{
	display: flex;
	justify-content: center;
}
span.page-numbers,
a.page-numbers{
	display: inline-block;
	border: 1px solid var(--color-main);
	text-align: center;
	line-height: 32px;
	height: 32px;
	width: 32px;
  border-radius: 100%;
	color: #fff;
	background: var(--color-main);
	margin-right: 8px;
}
span.page-numbers.current{
	color: var(--color-main);
	background: #fff;
}
a.prev.page-numbers,
a.next.page-numbers{
	border: none;
	width: auto;
	color: var(--color-main);
	background: none;
}
/*//  404   //*/
.notfound{
	text-align: center;
}
.notfound h1{
	font-size: 4.8rem;
}
.notfound p{
	margin-top: 40px;
}
/*//  ぱんくず  //*/
.breadcrumbs{
	font-size: 1.0rem;
	margin-top: 1em;
}
/* ============================
  animation
============================ */
@-webkit-keyframes zoom-in {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}
@keyframes zoom-in {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}
@-webkit-keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateX(-300px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateX(-300px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* アニメーション設定 */
.smooth {
  clip-path: inset(0 100% 0 0);
  transition: 1.4s cubic-bezier(0.37, 0, 0.63, 1);
  transition-property: clip-path;
}
.smooth.is-animated {
  clip-path: inset(0);
}

.inner .target *:not(h2) {
  opacity: 0;
  transform: translateY(30px);
}

.inner .target *:not(h2).is-active {
  opacity: 1;
  transform: translateY(0);
  transition: 0.6s;
}


/* モーダル設定 */
.modalbk{
  cursor: pointer;
  position:fixed;
  top:0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color:rgba(0,0,0,0.8);
  display:flex;
  justify-content:center;
  align-items:center;
  z-index: 99;
}
#zoom {
  display:none;       
}
.modalbk img{
  width: 50%;
  border: 8px solid #fff;
  border-radius: 8px;
}
@media screen and (max-width: 810px) {
  .modalbk img{
    width: 90%;
  }
}
.zoomup {
  animation:zoom-up 0.3s ease-out;
}
@keyframes zoom-up {
  from {
    transform:scale(0);
  }
}
