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

/*
Theme Name: mube
*/


body {
	width: 100vw;
	height: 100dvh;
	font-size: 13px;
	letter-spacing: .04em;
	line-height: 1;
	/* 	overflow: hidden; */
	font-family: fot-tsukuaoldmin-pr6n, sans-serif;
	font-weight: 300;
	font-style: normal;
	color: #2a2a2a;
	position: relative;
	z-index: 1;
}

body::after {
	content: "";
	display: block;
	width: 100vw;
	height: 100dvh;
	position: fixed;
	top: 0;
	left: 0;
	background: url(img/bg3.jpg) no-repeat;	
	background-size: 100vw 100dvh;
	z-index: -1;
}

body.font{
	font-family: "source-han-serif-japanese",  serif;
	font-weight: 400;
	font-style: normal;	
}

body.basebg{
	font-family: fot-tsukuaoldmin-pr6n, sans-serif;
	font-weight: 300;
	font-style: normal;
}

body.basebg::after {
	background: url(img/bg.jpg) no-repeat;	
	background-size: 100vw 100dvh;
}

body.basebg2::after {
	background: url(img/bg2.jpg) no-repeat;	
	background-size: 100vw 100dvh;
}

body::-webkit-scrollbar{
	display: none;
}

#contents-wrap{
	height: 100dvh;
}

.en {
  font-family: "Libre Baskerville", serif;
}

.logo{
	width: 8vw;
	max-width: 107px;
	min-width: 80px;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
	cursor: pointer;
	opacity: 0;
	transition: opacity 2s ease;
}

.res-link{
	font-size: 1.12em;
	position: fixed;
	transform: translateZ(0);
	will-change: transform;
	backface-visibility: hidden;
	left: 4%;
	bottom: 3rem;
	opacity: 0;
	transition: opacity 2s ease;
	z-index: 999;
	display: none;
}

.en-body .res-link{
	display: table;
}

.active .logo,
.active .res-link{
	opacity: 1;
}

.res-link span{
	display: block;
/*
	transition: .4s ease;
	padding: 1em 2.3em;
	border: 1px solid rgba(0,0,0,0);
*/
}

/*
.res-link.open span{
	border: 1px solid #2A2A2A;
}
*/

.top-slide-wrap{
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
	transition: opacity 1s ease;
	opacity: 0;
	pointer-events: none;
}

.slide-active .top-slide-wrap{
	opacity: 1;
}

.top-slide-wrap .top-slide{
	height: 100vh;
	width: 100vw;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
	opacity: 0;
}

.top-slide-wrap .top-slide img{
	width: 100%;
	height: 100%;
	object-fit:cover;
	font-family: 'object-fit: cover;'
}

.slide-active .top-slide-wrap .top-slide{
  animation: fadeInOut 3s forwards ease;
}

@keyframes fadeInOut {
  0%   { opacity: 0; }
  50%  { opacity: 1; }
  100% { opacity: 0; }
}

.top-slide-wrap .top-slide.slide2{
	animation-delay: .2s;
}
.top-slide-wrap .top-slide.slide3{
	animation-delay: .4s;
}
.top-slide-wrap .top-slide.slide4{
	animation-delay: .6s;
}
.top-slide-wrap .top-slide.slide5{
	animation-delay: .8s;
}

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


body,
#contents-wrap{
	height: auto;
}

.top-contents-wrap{
	width: 100vw;
	height: 100dvh;
	position: relative;
}

}



/*
openmenu
--------------------
*/

.open-menu-btn-wrap {
	position: fixed;
	transform: translateZ(0);
	will-change: transform;
	backface-visibility: hidden;
	bottom: 2rem;
	width: 3rem;
	height: 3rem;
	right: 3.6%;
	opacity: 0;
	transition: 2s ease;
	z-index: 999;
}

.active .open-menu-btn-wrap{
	opacity: 1;
}

.open-menu-btn {
	display: block;
	border: none;
	width: 2.4em;
	height: .8em;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
	cursor: pointer;
}

.open-menu-btn .toggle {
  display: block;
  background: #2A2A2A;
  width: 100%;
  height: 1px;
  transform: scaleY(1.5);
  transform-origin: top;
  position: absolute;
  transition: all .4s ease;  
}

.open-menu-btn .toggle:nth-child(1) {
  top: 0;
}

.open-menu-btn .toggle:nth-child(2) {
  bottom: 0; 
}

.open .open-menu-btn .toggle:nth-child(1),
.page .open-menu-btn .toggle:nth-child(1) {
	top: 50%;
	transform: translateY(-50%) rotate(-30deg);
}

.open .open-menu-btn .toggle:nth-child(2),
.page .open-menu-btn .toggle:nth-child(2) {
	bottom: 50%;
	transform: translateY(50%) rotate(30deg);
}

.lang-nav{
	position: fixed;
	transform: translateZ(0);
	will-change: transform;
	backface-visibility: hidden;
	top: 3rem;
	right: 4%;
	display: flex;
	gap:1em;
    opacity: 0;
    transition: opacity .2s ease-out;
    z-index: 999;
}

.lang-nav::after{
	content: "/";
	display: block;
	position: absolute;
	top: 0;
	right: 55%;
}

.open .lang-nav,
.page .lang-nav{
	opacity: 1;
    transition: opacity 500ms ease-in-out 150ms;
}

.lang-nav li{
	font-size: 1.1em;
	cursor: pointer;
}

.lang-nav li.current{
	opacity: .5;
}

.open-nav-wrap {
	position: fixed;
	bottom: 10rem;
	right: 4%;
	z-index: 998;
	pointer-events: none;
    opacity: 0;
    transition: opacity .2s ease-out;
}

.open .open-nav-wrap {
    opacity: 1;
    transition: opacity 500ms ease-in-out 150ms;
	pointer-events: visible;
}

.open-nav-wrap .open-nav{
	display: flex;
	flex-flow: column;
	text-align: right;
	gap:4em;
} 

.open-nav-wrap .open-nav li{
	font-size: 1.12em;
	cursor: pointer;
}


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

.res-link {
    font-size: 1em;
    left: 1.3rem;
    bottom: 1.7rem;
}

.open-menu-btn-wrap {
    bottom: .8rem;
    right: .7rem;
}

.lang-nav {
	top: 0;
	right: 0;
    padding: 1.7rem 1.3rem;
}

.lang-nav::after{
	top: 1.7rem;
	right: 3.6em;
}


.lang-nav li{
    font-size: 1em;
}

.open-nav-wrap {
    bottom: 5rem;
    right: 1.3rem;
}

.open-nav-wrap .open-nav{
	gap:0;
}

.open-nav-wrap .open-nav li{
    font-size: 1em;
    padding: 1.2em 0;
}

}



/*
page
--------------------
*/

.ht-contents {
	opacity: 0;
	transition: opacity .6s ease;
}

.ht-contents.is-ready {
	opacity: 1;
}

.ht-contents.ht-fixed{
	width: 100vw;
	padding: 0;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%)!important;
}


/*
news
--------------------
*/

.news-contents-wrap .inner{
	width: 100vw;
	padding: 20vh 5vw;
}

.news-contents-wrap .news-contents{
	display: table;
	text-align: center;
	margin: 5.5em auto;
}

.news-contents-wrap .news-contents .title{
	font-size: 1.2em;
	letter-spacing: .14em;
	margin-bottom: 1em;
}

.news-contents-wrap .news-contents .date{
	font-size: 1.07em;
	letter-spacing: .1em;
}

.news-single-contents{
	padding: 20vh 0;
	width: calc(100% - 2.5rem);
	max-width: 640px;
	margin: 0 auto;
}

.news-single-contents .title{
	font-size: 1.4em;
	margin-bottom: 3em;
}

.news-single-contents .contents-wrap{
	font-size: 1.1em;
	line-height: 2.4;
	text-align: justify;
}

.font .news-single-contents .contents-wrap{
	font-size: 1em;
}

.news-single-contents .thumb-wrap {
	margin-top: 6em;
}

.news-single-contents .thumb-wrap img{
	width: 100%;
	display: block;
	margin-bottom: 1em;
}

.news-single-contents .date{
	font-size: 1.2em;
	margin-top: 4em;
}

.back-btn{
	display: block;
	position: fixed;
	transform: translateZ(0);
	will-change: transform;
	backface-visibility: hidden;
	top: 3rem;
	left: 4%;
	font-size: 1.2em;
	cursor: pointer;
	z-index: 999;
}


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

.news-contents-wrap .news-contents .title{
	font-size: 1.1em;
}

.news-contents-wrap .news-contents .date{
	font-size: 1em;
}

.back-btn{
	top: 0;
	left: 0;
	padding: 1.7rem 1.3rem;
	font-size: 1.1em;
}

.news-single-contents .title {
    font-size: 1.2em;
}

.news-single-contents .contents-wrap p,
.news-single-contents .date {
    font-size: 1em;
}

.news-single-contents .thumb-wrap {
    margin-top: 4em;
}

}



/*
message
--------------------
*/


.message-contents-wrap .inner{
	padding: 20vh 0;
}

.message-title{
	font-size: 1.1em;
	margin-bottom: 4em;
}

.message-contents{
	width: calc(100% - 2.5rem);
	max-width: 520px;
	margin: 0 auto 6em;
}

.message-contents .text-wrap .text{
	width: 100%;
	color: #000;
}

.font .message-contents .text-wrap .text{
	width: 100%;
	color: #2a2a2a;
}

.message-contents .text-wrap .text p{
	font-size: 1.05em;
	text-align: justify;
	line-height: 2.5;
}


.message-contents .text-wrap .name{
	font-size: 1.1em;
	float: right;
	margin-top: 6em;
	display: block;
}

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

.message-contents-wrap::before,
.news-single-wrap::before{
	content: "";
	display: block;
	width: 100%;
	height: 5em;
	background: url(img/bg3.jpg) no-repeat top;	
	background-size: 100vw 100dvh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 2;
}

.message-contents-wrap::after,
.news-single-wrap::after{
	content: "";
	display: block;
	width: 100%;
	height: 5em;
	background: url(img/bg3.jpg) no-repeat bottom;	
	background-size: 100vw 100dvh;
	position: fixed;
	left: 0;
	bottom: 0;
}

.message-contents{
	margin: 0 auto 5em;
}

.message-contents .text-wrap .name{
	margin-top: 5em;
}

}


/*
information
--------------------
*/

.info-contents-wrap .inner{
	display: flex;
	justify-content: space-between;
	width: calc(100% - 2.5rem);
	max-width: 860px;
	margin: 0 auto;
	padding: 20vh 0;
	transform: translateY(-7em);
}

.info-contents-wrap .text-wrap{
	width: 45%;
}

.info-contents-wrap .text-wrap .title{
	margin-bottom: 3em;
	opacity: .86;
}

.info-contents-wrap .text-wrap .text{
	font-size: 1.1em;
	letter-spacing: .1em;
	line-height: 2.4;
}

.info-contents-wrap .calendar-wrap{
	width: 50%;
	position: relative;
}

.copyright{
	position: fixed;
	bottom: 3rem;
	left: 4%;
	font-size: .8em;
}

.info-contents-wrap .calendar {
  width: 100%;
  position: absolute;
}
.info-contents-wrap .calendar .date {
  font-size: 1.3em;
  padding-left: 1.3em;
}
.info-contents-wrap .calendar table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
  margin-top: 3em;
}
.info-contents-wrap .calendar th,
.info-contents-wrap .calendar td {
  width: 14.28%;
  height: 3em;
}
.info-contents-wrap .calendar th {
  font-size: 1.2em;
  text-align: center;
}
.en-body .info-contents-wrap .calendar th span.content-en{
	display: table;
	margin: 0 auto;
}

.info-contents-wrap .calendar td {
  font-size: 1.2em;
  text-align: center;
  letter-spacing: 0;
}
.info-contents-wrap .calendar .day {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.info-contents-wrap .calendar .day--closed::before {
  content: "";
  position: absolute;
  width: 1.8em;
  height: 1.8em;
  background: rgba(42,42,42,0.2);
  border-radius: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50% , -50%);
  z-index: -1;
}

.info-contents-wrap .calendar .other {
  display: flex;
  flex-direction: row;
  margin-left: 25px;
  margin-right: 20px;
  margin-top: 22px;
  justify-content: space-between;
}
.info-contents-wrap .calendar .arrow {
  display: flex;
  justify-content: center;
  gap: 29px;
}

.info-contents-wrap .calendar .arrow__item {
  width: 8px;
  height: 8px;
  cursor: pointer;
  position: relative;
}
.info-contents-wrap .calendar .arrow__item::before {
  content: "";
  display: block;
  background: #2e2e2b;
  width: 100%;
  height: 1px;
  transform: scaleY(1.5);
  transform-origin: top;
  position: absolute;
  top: 0;
  left: 0;
  transition: all .4s ease;  
}

.info-contents-wrap .calendar .arrow__item--prev {
  rotate: -45deg;
}

.info-contents-wrap .calendar .arrow__item--prev::after {
  content: "";
  display: block;
  background: #2e2e2b;
  width: 1px;
  height: 100%;
  transform: scaleX(1.5);
  transform-origin: top;
  position: absolute;
  top: 0;
  left: 0;
  transition: all .4s ease;  
}

.info-contents-wrap .calendar .arrow__item--next {
  rotate: 45deg;
}

.info-contents-wrap .calendar .arrow__item--next::after {
  content: "";
  display: block;
  background: #2e2e2b;
  width: 1px;
  height: 100%;
  transform: scaleX(1.5);
  transform-origin: top;
  position: absolute;
  top: 0;
  right: 0;
  transition: all .4s ease;  
}

.info-contents-wrap .calendar .arrow__item--none {
    opacity: 0.4;
    pointer-events: none;
}

.info-contents-wrap .calendar .cap {
  font-size: 1.2em;
  letter-spacing: 0.04em;
  position: relative;
}
.info-contents-wrap .calendar .cap::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1.7em;
    margin: auto;
    width: 1.2em;
    height: 1.2em;
    border-radius: 100%;
    display: block;
    background: rgba(42, 42, 42, 0.25);
}

.info-contents-wrap--en .info .calendar .date {
  margin-left: 20px;
}
.info-contents-wrap--en .info .cap {
  font-size: 1.8rem;
  translate: 0 -14px;
}


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

.info-contents-wrap .inner{
	padding: 16vh 0 7vh;
    flex-flow: column;
    gap:5em;
    transform: none;
}

.info-contents-wrap .text-wrap .title{
	margin-bottom: 3em;
	opacity: .76;
}

.info-contents-wrap .text-wrap{
	width: 100%;
	padding: 0 1em;
}

.info-contents-wrap .text-wrap .title {
    width: 110px;
    margin-bottom: 2em;
}

.info-contents-wrap .text-wrap .text{
	line-height: 2;
}

.info-contents-wrap .calendar-wrap{
	width: 100%;
}

.info-contents-wrap .calendar{
	position: static;
	min-height: 60vh;
}

.info-contents-wrap .calendar .day--closed::before {
  width: 1.5em;
  height: 1.5em;
}

.info-contents-wrap .calendar .date {
    font-size: 1.2em;
    padding-left: 1em;
}

.info-contents-wrap .calendar .other{
	margin-right: 1em;
	margin-left: 1em;
}

.info-contents-wrap .calendar table {
  margin-top: 2em;
}

.info-contents-wrap .calendar th,
.info-contents-wrap .calendar td {
  height: 2.2em;
}

.info-contents-wrap .calendar .other{
	margin-top: 15px;
}

}


/*
photo
--------------------
*/

.photo-contents-wrap .inner{
	padding: 20vh 5vw;
	text-align: center;
}

.photo-contents-wrap .photo-contents{
	margin: 3em auto;
}

.photo-contents-wrap .title{
	font-size: 1.2em;
	letter-spacing: .2em;
}

.photo-single-wrap .photo-title{
	font-size: 1.2em;
	letter-spacing: .2em;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
	z-index: 10;
	transition: opacity 1s ease .5s;
}

.page-on .photo-single-wrap .photo-title{
	opacity: 0;
}

.photo-slide-track {
  display: flex;
  align-items: center;
  height: 100dvh;
  opacity: 0;
  transition: opacity 1s ease 1s;
}

.page-on .photo-slide-track{
	opacity: 1;
}

.photo-slide {
	position: relative;
	margin-left: 10vw;
}

.photo-slide:nth-of-type(1){
  margin-left: 35vw;
}

.photo-slide.pt {
  flex: 0 0 50vh;
}

.photo-slide.py {
  flex: 0 0 72vh;
}

.photo-slide img{
	width: 100%;
	height: 100%;
	object-fit:cover;
	font-family: 'object-fit: cover;'
}

.photo-slide:last-of-type{
	margin: 0;
    padding: 0 5vw;
    flex: 0 0 calc(50vh + 10vw);
}

.photo-slide:last-of-type p{
	font-size: .9em;
	white-space: nowrap;
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
}

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


.photo-slide.pt{
  flex: 0 0 45vh;
}

.photo-slide:nth-of-type(1){
	margin-left: 8vw;
}

.photo-slide:last-of-type{
	margin-left: 0;
}

  
}


