@charset "UTF-8";
/* placeholder color */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700;900&display=swap");

/* ---------共通--------- */

html, body {
  margin: 0;
  padding: 0;
}

body {
  color: #333;
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-size: 1rem;
  line-height: 1.5;
  font-family: serif;
}

main {
  background-color: #F8FDFF;
}

a {
  color: #3399ff;
  background-color: transparent;
  cursor: pointer;
}

#about,#news-access,#goods,#pray {
  margin-bottom: 140px;
}

#contact {
  margin-bottom: 96px;
}

h3 {
  font-size: 26px;
  font-weight: 550;
}

.blur__slide {
  position: absolute;
  bottom: 0px;
}

.blur__top {
  position: absolute;
  top: 8px;
}

.blur__bottom {
  position: absolute;
  bottom: 30px;
}


/* ---------スライド--------- */

.top__slider {
  margin-bottom: 140px;
}

.slider__paragraph {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
  color: #fff;
}

@media (min-width: 600px) {
  .slider__paragraph {
    top: 44%;
  }
}

.slider__paragraph h1 {
  text-align: center;
  font-size: 2.8vw;
  font-weight: 700;
}

.slider__news {
  position: absolute;
  top: 65%;
  left: 12%;
  width: 76%;
  background-color: rgba(255, 255, 255, 0.8);
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 16px 32px;
  z-index: 100;
}

.slider__news h3 {
  font-size: 21px;
  font-weight: 550;
  padding-right: 16px;
  border-right: 1px solid #000;
}

.slider__news dl {
  display: flex;
  font-size: 18px;
}

.slider__news dt {
  margin: auto 20px;
}

.news-sp {
  margin: 0 6% 90px;
}

.news-sp__container {
  width: 100%;
  text-align: center;
  border: 1px solid #000;
  color: #000;
}

.news-sp__container:hover dl {
  color: #D9251C;
}

.news-sp__inner {
  padding: 16px;
}

.news-sp__inner {
  font-size: 20px;
}

.news-sp__inner h3 {
  border-bottom: 1px solid #000;
  margin-bottom: 16px;
  font-size: 22.5px;
  padding-bottom: 8px;
}

.news-sp__inner dl {
  display: flex;
  justify-content: center;
  text-align: left;
}

.news-sp__inner dt {
  padding: 0 16px 0 0;
}

.news-sp__inner dd,.news-sp__inner dt {
  font-size: 16px;
}



@media (min-width: 600px) {
  .news-sp {
    display: none;
  }
}

@media (max-width: 599px) {
  .pc {
    display: none;
  }
  .top__slider {
    margin-bottom: 112px;
  }
}

.slider__newsLink {
  color: #000;
  display: block;
}

.slider__newsLink:hover {
  color: #D9251C;
}

.slider__newsLink:before {
  content: '';
  content: ;
  width: 20px;
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  right: 22px;
  height: 1px;
  background-color: #000;
}

.slider__newsLink:after  {
  content: '';
  position: absolute;
  top: 50%;
  right: 22px;
  height: 1px;
  width: 8px;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: right center;
  background-color: #000;
}

/* ---------MENUがCLOSEに--------- */


/*ボタン外側※レイアウトによってpositionや形状は適宜変更してください*/
.openbtn{
	/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
	position: relative;
	background:#222222;
	cursor: pointer;
  width: 64px;
  height: 64px;
}

/*ボタン内側*/
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 16px;
    height: 3px;
    border-radius: 0px;
    background: #fff;
    width: 50%;
  }


.openbtn span:nth-of-type(1) {
	top:13px;	
}

.openbtn span:nth-of-type(2) {
	top:23px;
}

.openbtn span:nth-of-type(3) {
	top:33px;
}

.openbtn span:nth-of-type(3)::after {
	content:"Menu";/*3つ目の要素のafterにMenu表示を指定*/
	position: absolute;
	top:7px;
	left:-1px;
	color: #fff;
	font-size: 11px;
	text-transform: uppercase;
}

/*activeクラスが付与されると線が回転して×になり、Menu⇒Closeに変更*/

.openbtn.active span:nth-of-type(1) {
    top: 14px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 50%;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}


.openbtn.active span:nth-of-type(3)::after {
	content:"Close";/*3つ目の要素のafterにClose表示を指定*/
  transform: translateY(0) rotate(-45deg);
  top: 11px;
  left: 27px;
  width: 22px;
  height: 48px;
}

/* ---------画面右ナビゲーション表示--------- */

/* ナビゲーションのためのCSS */

#g-nav{
  /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
  position:fixed;
  z-index: 999;
  /*ナビのスタート位置と形状*/
  top:0;
  right: -120%;
  width:40%;
  height: 100vh;/*ナビの高さ*/
  background:#3c3c3c;
  /*動き*/
  transition: all 0s;
  opacity: 0.95;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive{
  right: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999; 
  width: 100%;
  height: 100vh;/*表示する高さ*/
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul {
  /*ナビゲーション天地中央揃え*/
  position: absolute;
  z-index: 999;
  top:42%;
  left:20%;
  transform: translate(-50%,-50%);
}

/*リストのレイアウト設定*/

#g-nav li{
list-style: none;
  text-align: center;
}

#g-nav li a{
color: #fff;
text-decoration: none;
padding: 0 10px;
display: block;
text-transform: uppercase;
letter-spacing: 0.1em;
font-weight: bold;
font-size: 16px;
}

/* ボタンのためのCSS */

.openbtn__g-nav{
position:fixed;
  z-index: 9999;/*ボタンを最前面に*/
  right: 60px;
	cursor: pointer;
  width: 64px;
  height: 64px;
}

/*×に変化*/	
.openbtn__g-nav span{
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 17px;
  height: 1px;
  border-radius: 0px;
  background: #fff;
  width: 50%;
}

.openbtn__g-nav span:nth-of-type(1) {
  top:15px;	
}

.openbtn__g-nav span:nth-of-type(2) {
  top:23px;
}

.openbtn__g-nav span:nth-of-type(3) {
  top:31px;
}

.openbtn__g-nav.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 44%;
}

.openbtn__g-nav.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn__g-nav.active span:nth-of-type(3){
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 44%;
}

#button__g-nav {
  color: #D9251C;
  color: #D9251C;
  width: 32%;
  height: 60px;
  margin: 20px;
}

#button__g-nav a {
  line-height: 60px;
  font-size: 16px;
}


.button__g-nav {

}

.button__g-nav {
  
}

.hamburger__menu-list {
  width: 80%;
}

.hamburger__menu-lastitem {
  margin-bottom: 24px;
}

/* ---------ヘッダー・ハンバーガーメニュー--------- */

.header__logo {
  position: absolute;
  top: 64px;
  left: 50%;
  width: 64px;
  transform: translate(-50%, -50%);
}

.header__menu-border {
  background-color: #fff;
  height: 1px;
  width: 32%;
  margin: 12px 34%;
}


/* ---------コンテンツ--------- */


#slider {
  width: 100%;
  height: 64vw;
}

.top__section {
  margin-bottom: 90px;
}

.top__section,

.top__about {
  padding: 1vh 0vw 3.75vh;
}

.top__heading {
  background-position: center top;
  background-repeat: no-repeat;
  text-align: center;
  font-size: 26px;
  font-weight: 500;
  line-height: 1.5;
  position: relative;
  text-align: center;
  letter-spacing: 4px;
}

  .top__about-lead,.top__heading, .top__guide-title,.top__pray-lead, .top__news-access__title {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex
  ;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin-right: auto;
    margin-left: auto;
  }

.top__about-leadInner {
  max-width: 655px;
  font-size: 18px;
  line-height: 42px;
  letter-spacing: 3px;
}

@media screen and (max-width: 768px) {
  .top__about-leadInner {
      font-size: 16px;
  }
}

.top__about-heading,.top__about-lead {
  margin: 0;
}


.top__about-inner {
  display: flex;
  flex-direction: row-reverse;
  gap: 8vw;
  justify-content: center;
  margin-bottom: 90px;
}

.button__secondary {
  border: 1px solid #D9251C;
  background-color: #fff;
}
.button__primary {
  border: 1px solid #D9251C;
  background-color: #D9251C;
}

.button__secondary a {
  color: #D9251C;
}
.button__primary a {
  color: #fff;
}

.button__secondary,.button__primary {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 320px;
  margin: auto;
  max-width: 320px;
  min-width: 184px;
}

.button__secondary a,.button__primary a{
  display: block;
  height: 72px;
  width: 100%;
  margin: auto;
  line-height: 72px;
  font-size: 18px;
  text-align: center;
}

.button__secondary:before,
.button__secondary:after,
.button__primary:before,
.button__primary:after {
  position: absolute;
  top: 50%;
  right: 22px;
  height: 1px;
  background: #D9251C;
  content: '';
}

.button__secondary:before,
.button__secondary:after {
  background: #D9251C;
}

.button__primary:before,
.button__primary:after {
  background: #fff;
}

.button__secondary:before,
.button__primary:before {
  width: 20px;
  transform: translateY(-50%);
}

.button__secondary:after,
.button__primary:after {
  width: 8px;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: right center;
}

/* ---------ご案内--------- */

.top__guide {
  width: 100%;
}

.top__guide-heading {
  margin-bottom: 80px;
}

.top__guide-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 0 24px 70px;
  gap: 5%;
  margin-right: auto;
  margin-left: auto;
  max-width: 960px;
}

.top__guide-time {
  font-size: 14px;
  margin-bottom: 6px;
}

.top__guide-title {
  font-size: 16px;
  margin-right: 10px;
}

.top__guide-period {
  font-size: 18px;;
}

.top__guide-period span {
  margin: 0 4px 0 8px;
  font-size: 22px;
  line-height: 18px;
}

.top__guide-content {
  display: flex;
  color: #000;
}

.top__guide-item {
  display: flex;
  width: 100%;
}

.top__guide-item-first {
  display: none;
}

.top__guide-date {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 30px 24px;
  width: 100%;
}

.top__guide-date p {
  text-align: center;
}

.top__guide ul {
  padding: 8% 40px;
}

.top__guide-detail span {
  font-size: 16px;
  text-align: center;
}

/* ---------祈祷案内--------- */

.top__pray-heading {
  margin-bottom: 80px;
}

.top__pray-Wrap {
  margin-bottom: 40px;
}

.top__pray-title {
  position: relative;
  text-align: center;
  font-size: 20px;
  margin-bottom: 86px;
}

.top__pray-title:before {
  background: #D9251C;
  height: 150%;
  content: "";
  display: block;
  left: 50%;
  position: absolute;
  top: 48px;
  width: 1px;
}

.top__pray-inner {
  display: flex;
}

.top__prayoOut-inner {
  flex-direction: row-reverse;
}

.top__prayShrine-inner {
  margin-bottom: 48px;
}

.top__pray-contentBlock {
  width: 64%;
  margin: auto 4%;
}

.top__pray-lead {
  margin: auto;
  font-size: 16px;
  line-height: 2.3;
}

.top__pray-list {
  margin-bottom: 48px;
}

.top__pray-imgFrame {
  width: 100%;
}

/* ---------お守り・授与品・御朱印--------- */

.top__goods {
  position: relative;
}

.top__goods__wrap {
  background-image: url(../img/goods-back.png);
  width: 100%;
  height: 680px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  padding: 0 26vw 14px;
  align-items: center;
  display: flex;
}

.top__goods__titleWrap {
  margin-bottom: 40px;
}

.top__goods__title {
  position: relative;
  text-align: center;
  z-index: 10;
}

.top__goods__title:before {
  background: #D9251C;
  height: 120%;
  content: "";
  display: block;
  left: 50%;
  position: absolute;
  top: 52px;
  width: 1px;
}

.top__goods__paragraph {
  margin-top: 70px;
  font-size: 16px;
  line-height: 32px;
}


/* ---------お知らせ-アクセス--------- */


.top__news-access__wrap {
  display: flex;
  justify-content: center;
}

.top__news-access__inner {
  width: 50%;
  padding: 0 4%;
}

.top__news-access__newsContent {
  text-align: center;
}

.top__news-access__newsContent a {
  margin-bottom: 16px;
  display: block;
}

.top__news-access__newsContent p {
  font-size: 16px;
  color: #000;
  border-bottom: 1px solid #000;
  padding: 12px 0;
}

.top__news-access__newsContent span {
  margin-left: 16px;
}

.top__news-access_left {
  border-right: 1px solid #b4b4b4;
  margin-left: 2%;
}

.top__news-access_right {
  margin-right: 2%;
}

.top__news-access__title {
  margin-bottom: 56px;
}

.top__news-access__map iframe {
  width: 100%;
  margin-bottom: 16px;
}

.top__news-access__content,.top__news-access__newsContent {
  min-height: 400px;
}

.top__news-access__content p {
  text-align: left;
  font-size: 15px;
}

.button__news, .button__access {
  width: 80%!important;
  z-index: 5;
}

.top__contact-paragraph {
  text-align: center;
  margin-bottom: 32px;
  font-size: 16px;
  line-height: 36px;
  margin-bottom: 64px;
}

/* ---------フッター--------- */

.footer {
  position: relative;
}

.blur__footer {
  position: absolute;
  top: 0px;
}

.footer__inner {
  padding: 192px 64px 64px;
  background-color: #FFF6F6;
  display: flex;
}

.footer a, .footer p,footer ul {
  color: #000;
  font-size: 15px;
}

.footer__copyright {
  background-color: #1E1E1E;
}

.footer__copyright-paragraph {
  display: block;
  text-align: center;
  margin: auto;
  font-size: 10px;
  padding: 6px;
  color: white;
}

.footer__linkBlock {
  display: flex;
  justify-content: right;
  gap: 32px;
}

.footer__logo {
  width: 60%;
  margin-bottom: 12px;
}

.footer__logo-name {
  font-size: 24px !important;
  font-weight: 500;
  margin-bottom: 8px;
}

.footer__logo-address {
  margin-bottom: 16px;
}

.footer__link {
  width: 60%;
}

.footer__link--list:first-child {
  margin-right: 4%;
}

.footer__link--item {
  margin-bottom: 16px;
}

.footer__snsLogo {
  margin-bottom: 16px;
}

.footer__snsLogo-list {
  display: flex;
  gap: 10px;
}

.footer__snsLogo-service {
  width: 32px;
}



/* ---------ボタン、テキストホバー処理--------- */

a:hover {
  opacity: 1;
}

.button__g-nav-link,#button__footer a {
  height: 60px!important;
}

#button__footer {
  width: 50%;
  margin: 0;
  height: 60px;
  min-width: 180px;
}

#button__footer a {
  color: #D9251C;
  line-height: 60px;
}

#button__footer a:hover {
  color: white;
}

.button__g-nav-link:hover {
  background-color: #D9251C;
  color: white;
}

.button__secondary:hover {
  background-color: #D9251C;
}

.button__secondary a:hover {
  color: #fff;
}

.button__secondary:before:hover {
  position: absolute;
  top: 50%;
  right: 22px;
  height: 1px;
  background: #fff;
  content: '';
}

.button__secondary:hover::before,.button__secondary:hover::after {
  background: #fff;
}

.top__guide-content {
  overflow:hidden;
}

.top__guide-content img {
  transition:0.4s all;
  overflow:hidden;
}

.top__guide-img {
  overflow:hidden;
}

.top__guide-content img:hover {
  transform:scale(1.1,1.1);
  transition:0.4s all;
}

.hamburger__menu-item span {
  display: block;
  padding-top: 10px;
  padding-bottom: 10px;
}

.hamburger__menu-item span:hover {
  text-decoration: underline;
}

.hamburger__snsLogo {
  position: absolute;
  z-index: 999;
  top: 77%;
  left: 20%;
  transform: translate(-50%, -50%);
}

.hamburger__snsLogo-list {
  display: flex;
  gap: 8px;
}

.hamburger__snsLogo-service {
  width: 60px;
}

.button__primary:hover {
  background-color: #fff;
  border: 1px solid #D9251C;
}

.button__primary:hover::before,.button__primary:hover::after {
  background: #D9251C;
}

.button__primary a:hover {
  color: #D9251C;
}

.footer__link--list a:hover {
  text-decoration: underline;
}

.top__news-access__newsContent p:hover {
  background-color: #FFF6F6;
}


.header__logo--inner:hover, .kv__title-logoLink:hover {
  -webkit-transition: all .2s;
  transition: all .2s;
  opacity: 0.6;
  filter: brightness(110%);
}


/* ---------先行公開対応--------- */


.none {
  display: none;
}


/* ---------レスポンシブ--------- */

@media (min-width: 600px) {
  .slider__paragraph-linebreak {
    display: none;
  }
  .top__guide-item:nth-child(1),.top__guide-item:nth-child(2),.top__guide-item:nth-child(3) {
    margin-bottom: 60px;
  }
}

@media (max-width: 599px) {
  .slider__paragraph h1 {
    font-size: 5.2vw;
  }

  .top__goods__wrap {
    padding: 0 8vw 14px;
  }

  #g-nav {
    width: 100%;
  }

  .top__about-inner {
    display: grid;
  }

  .top__about-leadInner {
    line-height: 34px;
  }
  .top__news-access__wrap {
    display: grid;
  }
  .top__news-access__inner {
    width: 100%;
  }
  .top__news-access_left {
    border-right: none;
  }
  .top__news-access_left {
    margin: auto;
  }
  .top__news-access__content, .top__news-access__newsContent {
    min-height: auto;
    margin-bottom: 96px;
  }
  .top__contact-paragraph {
    font-size: 15px;
    padding: 0 6%;
  }
  .header__logo {
    top: 48px;
    left: 50%;
    width: 44px;
  }
  .openbtn__g-nav {
    right: 0;
  }
  #g-nav ul {
    left: 50%;
  }
  .footer__inner {
    padding: 192px 64px 64px;
  }
  .top__guide-inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 6%;
  }
  .top__guide-item-first {
    display: block!important;
    grid-template-columns: repeat(1, 1fr)!important;
    padding: 0 9.6vw 72px;
  }
  .top__guide-item:nth-child(4) {
    display: none;
  }
  .hamburger__snsLogo {
    left: 50%;
  }
}

@media (max-width: 520px) {
  .footer__logo {
    margin-bottom: 40px;
  }

  .footer__inner {
    display: grid;
  }

  .footer__link {
    width: 46%;
  }
  .footer__link--item {
    width: 200%;
  }
  .footer__logo-address {
    width: 180%;
  }
}


@media (max-width: 440px) {
  .slider__paragraph h1 {
    font-size: 5.0vw;
  }

  .top__about-leadInner {
    line-height: 36px;
  }

  .top__about-leadInner {
    font-size: 14px;
  }

  .top__about-inner {
    margin: 0 4vw 75px;
  }

  .top__about-lead {
    /* -webkit-writing-mode: ;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex
  ;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin-right: auto;
    margin-left: auto; */

    writing-mode: horizontal-tb;
    -webkit-writing-mode: horizontal-tb;
    -ms-writing-mode: inherit;
  }

  .top__slider {
    margin-bottom: 90px;
  }
  #about {
    margin-bottom: 120px;
  }
  .button__secondary {
    width: 270px;
  }
  .button__secondary-topPray {
    width: auto!important;
  }
  .button__primary {
    width: 256px;
  }
  .top__guide-inner {
    flex-wrap: wrap;
  }
  .top__pray-lead {
    line-height: 2;
  }
  .linebreak {
    display: none;
  }
}

@media (max-width: 767px) {
  .top__pray-inner {
    display: grid;
  }
  .top__pray-contentBlock {
    margin: auto;
  }
  .top__pray-lead {
    width: 100%;
  }
  .footer__linkBlock {
    display: grid;
  }
  .button__secondary-topPray {
    margin-bottom: 112px;
  }
}








