@charset "UTF-8";
*{
  letter-spacing: 2px;
  font-family: 'Noto Serif JP', serif;
  font-weight: lighter;
}
.pc{
  display: none !important;
}
@media screen and (min-width:768px){
  .sp{
      display: none;
  }
  .pc{
    display: block !important;
  }
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
body{
  background: #000;
}
*:focus {
  outline: none;
}
a:hover{
  opacity: .5;
  text-decoration: none;
}
/*========= TOPのタイトル文字 ===============*/
.TextRandomAnime span{
  opacity: 0;
}
.TextRandomAnime.appearRandomtext span{ 
  animation:text_randomanime_on .5s ease-out forwards;
}
@keyframes text_randomanime_on {
  0% {opacity:0;}
  100% {opacity:1;}
}
.TextRandomAnime.appearRandomtext span:nth-child(2n) {
  animation-delay: .5s;/* spanのついた2の倍数の文字列の変化を0.5秒遅らせる*/
  animation-delay: 1.25s;/* spanのついた2の倍数の文字列の変化を0.5秒遅らせる*/
}
.TextRandomAnime.appearRandomtext span:nth-child(3n+1) {
  animation-delay: .15s;/* spanのついた3の倍数＋1の文字列の変化を0.15秒遅らせる*/
  animation-delay: 1s;/* spanのついた3の倍数＋1の文字列の変化を0.15秒遅らせる*/
}

/*========= ページネーションCSS ===============*/
.pagination {
	position:fixed;
	left:6vw !important;
	bottom: -6vh;
  transform: translateY(-50%);
	font-size:1em;
	z-index: 20;
	list-style: none;
}
.other .pagination{
  bottom: -2vh;
}
@media screen and (min-width:768px){
  .pagination {
    bottom: -40px;
    left:43px !important;
  }
  .other .pagination{
    bottom: 0vh;
  }
}
.pagination a {
	display:block;
	height:20px;
	margin-bottom:5px;
	color:#fff;
	position:relative;
	padding:4px;
}
.pagination a.active:after {
	box-shadow:inset 0 0 0 5px;
}
/*現在地表示のテキストの設定*/
.pagination a .hover-text {
	position:absolute;
	right:15px;
	top:0;
	opacity:0;
	-webkit-transition: opacity 0.5s ease;
	transition: opacity 0.5s ease;
	padding-right: 15px;
}
.pagination a:hover .hover-text {
	opacity: 1;
}
.pagination a:after {
	-webkit-transition:box-shadow 0.5s ease;
	transition:box-shadow 0.5s ease;
	width:10px;
	height:10px;
	display: block;
	border:1px solid;
	border-radius:50%;
	content:"";
	position: absolute;
	margin:auto;
	top:0;
	right:3px;
	bottom:0;
}
/*768px以下は現在地表示のテキストを非表示*/
/* @media screen and (max-width:768px) {  */
	.pagination a .hover-text{
		display: none;
	}	
/* } */


/* 滲みながら表示 */
.blur {
  opacity: 0;
  transition: transform 1.5s linear;
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}
.blur_slow {
  opacity: 0;
  transition: transform 7.5s linear;
  -webkit-animation-duration: 7.5s;
  animation-duration: 7.5s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}
.img-blur {
  -webkit-animation-name: imageBlur;
  animation-name: imageBlur;
  opacity: 1;
  transition: .8s;
}
@-webkit-keyframes imageBlur {
  from {
    opacity: 0;
    -webkit-filter: blur(15px);
    -moz-filter: blur(15px);
    -ms-filter: blur(15px);
    -o-filter: blur(15px);
    filter: blur(15px);
  }

  to {
    opacity: 1;
    -webkit-filter: blur(0px);
    -moz-filter: blur(0px);
    -ms-filter: blur(0px);
    -o-filter: blur(0px);
    filter: blur(0px);
  }
}
@keyframes imageBlur {
  from {
    opacity: 0;
    -webkit-filter: blur(15px);
    -moz-filter: blur(15px);
    -ms-filter: blur(15px);
    -o-filter: blur(15px);
    filter: blur(15px);
  }
  to {
      opacity: 1;
    -webkit-filter: blur(0px);
    -moz-filter: blur(0px);
    -ms-filter: blur(0px);
    -o-filter: blur(0px);
    filter: blur(0px);
  }
}

/* PCタブ切り替え */
.tab-area {
  display: flex;
  cursor: pointer;/* カーソルポインターに */
  margin: 0 0 0 8vw;
}
.tab {
  width: 14vw;
  text-align: center;
  color: #fff;
  padding: 0 !important;
}
/* .tab:nth-child(n+2) {
  border-left: 2px solid;
} */
.tab.active {
  background-color: #000;
  color: #fff;
}
.panel {
  display: none;
  text-align: center;
  border-left: 1px solid #fff;
  margin-left: 6.9vw;
  margin-top: 30px;
}
.panel2 {
  margin-left: 20.8vw;
}
.panel3 {
  margin-left: 35vw;
}
.panel4 {
  margin-left: 49.1vw;
}
.panel.active {
  display: block;
}
@media screen and (min-width:1100px){
  .panel {
    margin-left: 8.7vw;
    padding: 15px 0;
  }
  .panel2 {
    margin-left: 22.7vw;
  }
  .panel3 {
    margin-left: 36.8vw;
  }
  .panel4 {
    margin-left: 50.8vw;
  }
}
  @media screen and (min-width:1600px){
    .panel {
      margin-left: 6.6vw;
    }
    .panel2 {
      margin-left: 20.5vw;
    }
    .panel3 {
      margin-left: 34.6vw;
    }
    .panel4 {
      margin-left: 48.6vw;
    }
}


.float{
	opacity: 0;
	transform: translate(0,80px);
	transition: all 3000ms;
}
.float.scrollin{
	opacity: 1;
	transform: translate(0,0);
	display: block;
  height: auto;
}
.float_slow{
	opacity: 0;
	transform: translate(0,80px);
	transition: all 1600ms;
}
.float_slow.scrollin{
	opacity: 1;
	transform: translate(0,0);
	display: block;
  height: auto;
}


/* ナビゲーション */
#global-navi,#global-navi-other {
  top: 0;
  right: 0;
  width: 100%;
  position: fixed;
  z-index: 30;
}
#global-navi .ttl a,#global-navi-other .ttl a{
  color: #fff;
  font-size: 2.2rem;
  margin-bottom: 40px;
  margin-left: 14vw;
  display: block;
  text-align: left;
  font-family: 'Hina Mincho', serif;
}
#global-navi .ttl.new a,#global-navi-other .ttl.new a{
  margin-top: 6px;
}
#global-navi .ttl a:hover,#global-navi-other .ttl a:hover{
  text-decoration: none;
  opacity: .5;
  cursor: pointer;
}
@media screen and (min-width:768px){
  #global-navi .ttl a,#global-navi-other .ttl a{
    font-size: 2.5rem;
    margin-left: 8vw;
    text-align: left;
  }
  #global-navi .ttl.new a,#global-navi-other .ttl.new a{
    font-size: 2rem;
    margin-top: 50px;
  } 
}
#nav_wrapper nav ul li,#nav_wrapper_other nav ul li{
  display:inline-block;
  font-family: 'Hina Mincho', serif;
  color: #fff;
}
#nav_wrapper nav ul li a,#nav_wrapper_other nav ul li a{
  color: #fff;
  letter-spacing: 3px;
  font-size: 1.9rem;
  font-family: 'Hina Mincho', serif;
}
@media screen and (min-width:768px){
  #nav_wrapper nav ul li,#nav_wrapper_other nav ul li{
    font-size: 2rem;
    text-align: left;
  }
  /* #nav_wrapper nav ul li:hover, #nav_wrapper_other nav ul li:hover{
    opacity: .5;
    cursor: pointer !important;
  } */
  #nav_wrapper nav ul li a:hover, #nav_wrapper_other nav ul li a:hover{
    opacity: .5;
    cursor: pointer !important;
  }
  #nav_wrapper nav ul li a,#nav_wrapper_other nav ul li a{
    font-size: 1.6rem;
    text-align: left;
  }
}
#nav_wrapper nav,#nav_wrapper_other nav {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
  padding-top: 80px;
  background-color:#000;
  font-size: 16px;
  box-sizing: border-box;
  z-index: 21;
}
@media screen and (min-width:768px){
  #nav_wrapper nav,#nav_wrapper_other nav {
    padding-top:16vh;
    right: -120%;
    padding-left: 28vw;
    background: #000 url("../img/top/PCmenuhidari.jpg") 0 0 no-repeat;
    background-size: contain;
  }
} 
#nav_wrapper nav > ul > li,#nav_wrapper_other nav > ul > li {
  display:block;
  padding: 0 0 10px 14vw;
  text-align: left;
}
@media screen and (min-width:768px){
  #nav_wrapper nav ul li,#nav_wrapper_other nav ul li {
    display:block;
    padding: 8px 0 12px 20px;
  }
}
#nav_wrapper nav ul li a,#nav_wrapper_other nav ul li a {
  text-decoration: none;
  color: #fff;
}
@media screen and (max-width:767px){
  #nav_wrapper nav > p.ttl{
    margin-top: 30px;
  }
}
.btn-gnavi {
  position: fixed;
  width: 60px;
  height: 60px;
  cursor: pointer;
  right: 0;
  top: 0;
  background: #000;
  z-index: 100;
}
#nav_wrapper nav  ul .accordion_inner li,#nav_wrapper_other nav ul .accordion_inner li {
  padding: 0 0 15px 6vw;
  display: block;
}


.btn-gnavi span {
  position: absolute;
  right: 0;
  left: 0;
  margin: auto;
  width: 50%;
  height: 1px;
  background-color: #fff;
  z-index: 100;
}
.btn-gnavi span.bk_bg{
  background-color: #2C2C2C;
}
.btn-gnavi, .btn-gnavi span {
  display: inline-block;
  transition: all .5s;
  box-sizing: border-box;
}
.btn-gnavi span:nth-of-type(1) {
  top: 20px;
}
.btn-gnavi span:nth-of-type(2) {
  top: 30px;
}
.btn-gnavi span:nth-of-type(3) {
  top: 40px;
}
.btn-gnavi.open span{
  background-color: #fff;
}
.btn-gnavi.open span:nth-of-type(1) {
  -webkit-transform: translateY(20px) rotate(-315deg);
  transform: translateY(20px) rotate(-315deg);
  top: 9px;
}
.btn-gnavi.open span:nth-of-type(2) {
  opacity: 0;
}
.btn-gnavi.open span:nth-of-type(3) {
  -webkit-transform: translateY(-20px) rotate(315deg);
  transform: translateY(-20px) rotate(315deg);
  bottom: 2px;
}


/* スマホアコーディオン */
.accordion_one {
  max-width: 1024px;
  margin: 0 auto;
}
.accordion_one .accordion_header {
  /* background-color: #db0f2f; */
  color: #fff;
  font-size: 2.2rem;
  padding: 0;
  text-align: center;
  position: relative;
  z-index: +1;
  cursor: pointer;
  transition-duration: 0.2s;
  text-align: left;
  font-family: 'Hina Mincho', serif;
  margin: 6px 0;
}
@media screen and (min-width:768px){
  .accordion_one .accordion_header {
    font-size: 2.5rem;
  }
}
.accordion_one .accordion_header:hover {
  opacity: .8;
}
.accordion_one .accordion_header .i_box {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  right: 5%;
  width: 40px;
  height: 40px;
  border: 1px solid #fff;
  margin-top: -20px;
  box-sizing: border-box;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transform-origin: center center;
  transition-duration: 0.2s;
}
.accordion_one .accordion_header .i_box .one_i {
  display: block;
  width: 18px;
  height: 18px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transform-origin: center center;
  transition-duration: 0.2s;
  position: relative;
}
.accordion_one .accordion_header.open .i_box {
  -webkit-transform: rotate(-360deg);
  transform: rotate(-360deg);
}
.accordion_one .accordion_header .i_box .one_i:before, .accordion_one .accordion_header .i_box .one_i:after {
  display: flex;
  content: '';
  background-color: #fff;
  border-radius: 10px;
  width: 18px;
  height: 4px;
  position: absolute;
  top: 7px;
  left: 0;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  transform-origin: center center;
}
.accordion_one .accordion_header .i_box .one_i:before {
  width: 4px;
  height: 18px;
  top: 0;
  left: 7px;
}
.accordion_one .accordion_header.open .i_box .one_i:before {
  content: none;
}
.accordion_one .accordion_header.open .i_box .one_i:after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.accordion_one .accordion_inner {
  display: none;
  padding: 15px 0 3px 0;
  border-left: 1px solid #fff;
  box-sizing: border-box;
  margin: 10px 0 0 14px;
}
.accordion_one .accordion_inner p.txt_a_ac {
  margin: 0;
}


/* ナビ内のSNS */
.sns_hum{
  display: flex;
  margin: 40px 0 10px 13vw;
  justify-content: space-between;
  width: 24vw;
}
.sns_hum li{
  width: 5vw;
}
.sns_hum li a{
  display: block;
}
.sns_hum li img{
  width: auto;
  height: auto;
}
.sns_hum_area{
  position: relative;
}
@media screen and (min-width:768px){
  .sns_hum_area{
    display: flex;
    position: absolute;
    bottom: 50px;
    left: 36vw;
  }
  .sns_hum{
    bottom:80px;
    left: 8vw;
    justify-content: flex-start;
    margin:0 15px 0 0;
    width: 100px;
  }
  .sns_hum li{
    width: 28px;
    padding: 0 10px 0 0 !important;
    margin-right: 5px;
  }
}
.sns_hum_area .info{
  text-align: left;
  margin-left: 13vw;
}
.sns_hum_area .info a{
  font-size: 1.2rem;
  color: #fff;
  display: inline-block;
}
.sns_hum_area .info p:first-of-type a{
  font-size: 1.8rem;
}
@media screen and (min-width:768px){
  .sns_hum_area .info{
    display: flex;
    margin-top: 5px;
    margin-left: 0;
    text-align: center;
  }
  .sns_hum_area .info a{
    font-size: 1.6rem;
    margin: 0 2em 0 0;
    display: inline;
  }
  .sns_hum_area .info a{
    font-size: 1.2rem;
    margin-top: 0;
    margin-right: 20px;
    display: block;
  }
  .sns_hum_area .info p:first-of-type a{
    font-size: 1.6rem;
    margin-right: 20px;
  }
  .sns_hum_area .info p:nth-of-type(2) a {
    border-left: 1px solid #fff;
    border-right: 1px solid #fff;
    padding:0 20px;
    margin-top: 5px;
  }
  .sns_hum_area .info p:nth-of-type(3) a {
    margin-top: 5px;
  }
}
.sp_link{
  position: absolute;
  top:8px;
  left: 42vw;
}
.sp_link a{
  color: #fff;
}
/* TOPの地図、新着情報 */
#map{
  display: block;
  /* background: #000; */
}
#map .area{
  height: 40vh;
  background: #fff;
  margin: 4.5vh auto 0;
}
@media screen and (min-width:768px){
  #map .area{
    width: 85%;
    margin: 3vh auto 0;
    height: 48vh;
  }
}
#map .news_area{
  padding-bottom: 1.8vh;
}

@media screen and (max-width:767px){
  #map .news_area.top{
    padding-bottom: 2.8vh;
  }
}
@media screen and (min-width:768px){
  #map .news_area{
    margin: 0 auto 0;
    padding-top: 5vh;
    width: 85%;
    display: flex;
  }
}
#map .news_area h5{
  letter-spacing: .5em;
  font-size: 2.2rem;
  position: static;
  margin: 1vh auto 0;
  padding-top: 2vh;
  color: #fff;
  text-align: center;
}
@media screen and (min-width:768px){
  #map .news_area h5{
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size: 3.3rem;
    margin:0 2% 0 0;
    top: 0;
    left: 0;
    padding-top: 0;
    height: 7em;
  }
}
@media screen and (max-width:767px){
  #map .news_area h5{
    letter-spacing: 1em;
  }
}
#map .news_area h5.news{
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  margin-bottom: 10vh !important;
  padding-top: 0;
}
#map .news_area .list{
  margin: auto;
  width: 80%;
  text-align: left;
}
@media screen and (min-width:768px){
  #map .news_area .list{
    margin: 3.8vh 0 0 2%;
    width: 89%;
    right: 0;
  }
}
#map .news_area dl{
  border-bottom: 1px dotted #fff;
  padding-bottom: 1.3vh;
  margin-top: 1.3vh;
  /* margin-bottom: 1.7vh; */
}
@media screen and (min-width:768px){
  #map .news_area dl{
    padding-bottom: 1.8vh;
    margin-top: 1.8vh;
    margin-bottom: 0;
  }
  #map .news_area dl dt{
    margin-right: 2vw;
  }
}
#map .news_area dl a{
  color: #fff;
  display: block;
  font-size: 1.2rem;
  position: relative;
  padding-right: 10vw;
}
@media screen and (min-width:768px){
  #map .news_area dl a{
    display: flex;
    font-size: 1.3rem;
    padding-right: 3vw;
  }
}
@media screen and (max-width:767px){
  #map .news_area.news dl dt{
    margin-bottom: 3px;
  }
}
#map .news_area dl dd{
  position: relative;
}
#map .news_area dl dd:after{
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-top: solid 1px #fff;
  border-right: solid 1px #fff;
  position: absolute;
  top: 50%;
  right: -15%;
  margin-top: -4px;
  transform: rotate(45deg);
}
@media screen and (min-width:768px){
  #map .news_area dd:after{
    width: 6px;
    height: 6px;
    margin-left: 10px;
    top: 50%;
    right: -20px !important;
  }
}
#map .news_area dl .none dd:after {
  content: none;
}
#map .news_area dl a:hover{
  text-decoration: none;
  opacity: .5;
}
#map .news_area dl a.none:hover{
  opacity: 1;
}
#map .news_area dl a dd span{
  padding-left: 5px;
}
#map.box .btn{
  position: static;
}
@media screen and (min-width:768px){
  .news_listarea{
    padding: 100px 4% !important;
  }
  .news_listarea.detail{
    padding: 20px 4% 0 !important;
  }
}
#footer{
	color:#fff;
	padding:80px 0 80px;
	text-align:center;
}
@media screen and (min-width:768px){
  #footer > div{
    display: flex;
    justify-content: center;
    padding:100px 0 0;
  }
}
#footer > div .sns{
  width: 21.5vw;
  display: flex;
  justify-content: space-between;
  margin: 0 auto 10px;
}
@media screen and (min-width:768px){
  #footer > div .sns{
    margin: 0 20px 0 0;
    width: 100px;
  }
}
#footer > div .sns li{
  width: 5vw;
}
@media screen and (min-width:768px){
  #footer > div .sns li{
    padding: 0 10px 0 0 !important;
  }
  #footer > div .sns li{
    width: 28px;
  }
}
#footer .info{
  text-align: center;
}
#footer .info a{
  color: #fff;
  font-size: 1.2rem;
  display: inline-block;
  margin-bottom: 10px;
}
#footer .info p:first-of-type a{
  font-size: 1.8rem;
  margin-bottom: 20px;
}
@media screen and (max-width:767px){
  #footer .info p:first-of-type a{
    letter-spacing: 3px;
  }
}
@media screen and (min-width:768px){
  #footer .info{
    display: flex;
    margin-top: -3px;
  }
  #footer .info a{
    margin-right: 30px;
    font-size: 1.2rem;
    margin-top: 3px;
    margin-bottom: 0;
  }
  #footer .info p:first-of-type a{
    font-size: 1.6rem;
    margin-top: 0;
    margin-bottom: 0;
  }
  #footer .info p:nth-of-type(2) a{
    border-left: 1px solid #fff;
    border-right: 1px solid #fff;
    padding:0 30px;
  }
}
#footer small{
  margin: 50px auto 0;
  display: inline-block;
  font-size: 1rem;
}
@media screen and (max-width:767px){
  #footer small{
    letter-spacing: 1px;
  }
}

.bkalph{
  background-color: black;
  display: inline-block;
}
.bkalph img{
  opacity: .7;
}