@charset "utf-8";
 
/* Common　★
-------------------------------------------------------------------------------*/

a.logo {
	width: 400px;
	font-size: 23px;
	letter-spacing: 4px;
}

a.logo span {
		margin: 0 0 0 15px;
	font-size: 16px;
	letter-spacing: 4px;	
}

a.logo:hover {
	opacity: 0.5;
}

.filter {
    display: inline-block;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.15);
    z-index: 2;	
}

section {
    width: 100%;
    max-width: calc(1440px);
    min-width: calc(1100px);
    height: auto;
    position: relative;
    margin: 0 auto;
    vertical-align: middle;
    padding: 150px 40px;
    box-sizing: border-box;
}

section.w_full {
	max-width: 100%;
}

.h_full {
	height: 100vh;
}

.c_box {
	position: relative;
}

.text_box,
.text_box td {
	width: 100%;
    position: relative;
    margin: 0 0 30px;
    line-height: 2;
}

.sticky {
  position: -webkit-sticky!important;
  position: sticky!important;
  top: 0;
}

.width200 {
	width: 200px;
}

.w1000 {
	width: 1000px;
	margin: 0 auto;
}

.w1000.left {
	width: 1000px;
	margin: 0;
}

.lan_jpn {
	margin: 20px 0 0;
	font-size: 90%;
}

.googlemap {
    width: 100%;
}

.googlemap h4.pict_map {
    height: 20px;
    padding: 0 0 0 30px;
    background-size: contain;
    letter-spacing: 3px;
}

.googlemaps {
    width: 100%;
    height: 50vh;
    position: relative;
    margin: 0;
	-webkit-filter: grayscale(0.9);
	filter: grayscale(0.9);
	overflow: hidden;
}

.googlemaps iframe {
	width: 100%;
	height: 100%;
}

.pagetitle {
    display: inline-block;
    width: auto;
    height: 80px;
    position: relative;
    margin: 0 0 50px;
    font-size: 2rem;
    letter-spacing: 3px;
    line-height: 1;
}

.pagetitle span {
    position: absolute;
    top: 60px;
    left: 0;
    font-size: 1rem;
}

.pagetitle.h_cntr,
.pagetitle.h_cntr span {
	width: 100%;
}

.pagetitle.tategaki {
	height: auto;
	margin: 0;
	letter-spacing: 15px;
}

.pagetitle.tategaki span {
	position: relative;
	-webkit-writing-mode: sideways-rl;
	-ms-writing-mode: sideways-rl;
	writing-mode: sideways-rl;
	top: 10px;
	font-size: 2rem;
	letter-spacing: 3px;
}

.catchcopy {
    font-family: "Noto serif JP";
    font-size: 2rem;
    letter-spacing: 0.5rem;
}

.bg_white::before {
	width: 100vw;
	height: 100%;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	background: white;
	z-index: -1;
}



/* Loading
-------------------------------------------------------------------------------*/

#loading {
	width: 100vw;
	height: 100vh;
	/* background: white; */
	pointer-events: none;
	position: fixed;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	z-index: 9999;
}

.loading {
    display: block;
    width: 200px;
    height: 50px;
    position: fixed;
    overflow: hidden;
    z-index: 1;
}

.loading svg {
	width: 100%;
	height: 100%;
}

.loading path {
	animation: load 2s ease-in-out infinite;
	animation-delay: calc(0.1s * var(--i));
}
	
@-webkit-keyframes load {
    0% {
	opacity: 0;
	filter: blur(3px);
    }
	50% {
	opacity: 1;
	filter: blur(0px);
    }
	95% {
	opacity: 1;
	filter: blur(0px);
    }
    100% {
	opacity: 0;
	filter: blur(3px);
    }
}

@keyframes load {
    0% {
	opacity: 0;
	filter: blur(3px);
    }
	50% {
	opacity: 1;
	filter: blur(0px);
    }
	95% {
	opacity: 1;
	filter: blur(0px);
    }
    100% {
	opacity: 0;
	filter: blur(3px);
    }
}

#wrapper::after {
	content: '';
	position: fixed;
	top: 50%;
	left: 50%;
	width: 130vw;
	height: 100vw;
	min-height: 100vh;
	background: #323232;
	pointer-events: none;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	opacity: 0;
	z-index: -99;
}

#wrapper.fadeout::after {
	transform: translate(-50%, -50%);
	opacity: 1;
	z-index: 9999;
}



/* Slider　★
-------------------------------------------------------------------------------*/

.slick-slider,
.slick-list {
    width: 100%;
    height: 100%;
}

.slick-slide {
	width: 100%;
	height: 100%;
	position: relative;
	background-size: cover!important;
	text-indent: inherit;
}

.slick-track {
    height: 100%;
}
.slick-slide img {
    display: block;
    width: auto;
    height: auto;
}

.prev.slick-arrow,
.next.slick-arrow,
.slick-prev.slick-arrow,
.slick-next.slick-arrow {
	cursor: pointer!important;
	width: 50px!important;
	height: 50px!important;
	position: absolute!important;
	top: calc(100% - 60px);
	right: 40px;
	margin: 0!important;
	opacity: 0.8;
	background: none;
	backdrop-filter: blur(15px) invert(0.2);
	border: solid 1px white;
	-webkit-transform: translate(0%,-50%);
	-ms-transform: translate(0%,-50%);
	transform: translate(0%,-50%);
	-webkit-transition: all .5s ease-in-out;
	-o-transition: all .5s ease-in-out;
	transition: all .5s ease-in-out;
	text-indent: -99999%;
	white-space: nowrap;
	overflow: hidden;
	z-index: 5!important;
}

.prev.slick-arrow,
.slick-prev.slick-arrow {
	left: initial;
	right: 100px;
}

.prev.slick-arrow:hover,
.next.slick-arrow:hover,
.slick-prev.slick-arrow:hover,
.slick-next.slick-arrow:hover {
	background: white;
}

.prev.slick-arrow:hover::before,
.next.slick-arrow:hover::before,
.slick-prev.slick-arrow:hover::before,
.slick-next.slick-arrow:hover::before {
	filter: invert(1);
}

.slick-arrow::before {
    width: 7px;
    height: 7px;
    top: calc(50% - 3.5px);
    right: initial;
    left: 19px;
    background: none;
    border-top: solid 1px white;
    border-left: solid 1px white;
    -webkit-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    transform: rotate(135deg);
}

.prev.slick-arrow::before,
.slick-prev.slick-arrow::before {
    right: initial;
    left: 22px;
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.slick-arrow::after {
    content: none;
}

.slick-dots {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    width: auto;
    height: 1px;
    position: absolute;
    bottom: 15px;
    right: 40px;
    padding: 0;
    box-sizing: border-box;
    z-index: 1;
}

.slick-dots li {
    width: 15px;
    height: 1px;
    position: relative;
    margin: 0 2px 0 0;
    background: lightgray;
    text-indent: -999999%;
    white-space: nowrap;
    overflow: hidden;
    opacity: 1;
}

.slick-dots li.slick-active {
    height: 1px;
    background: #666;
	opacity: 1;
}

#menu .slick-slider {
	height: auto;
}

#menu .prev.slick-arrow,
#menu .next.slick-arrow,
#menu .slick-prev.slick-arrow,
#menu .slick-next.slick-arrow {
	top: 40px;
	right: initial;
	left: 45px;
}

#menu .prev.slick-arrow,
#menu .slick-prev.slick-arrow {
	left: -15px;
}

#facilities .prev.slick-arrow,
#facilities .next.slick-arrow,
#facilities .slick-prev.slick-arrow,
#facilities .slick-next.slick-arrow {
	top: 40px;
	right: initial;
	left: 45px;
}

#facilities .prev.slick-arrow,
#facilities .slick-prev.slick-arrow {
	top: 40px;
	left: -15px;
}



/* Carousel */

.carousel .prev.slick-arrow,
.carousel .slick-prev.slick-arrow {
	left: 7vw;
}
.carousel .next.slick-arrow,
.carousel .slick-next.slick-arrow {
	right: 7vw;
}



/* Swiper */

.swiper-wrapper {
  will-change: transform;
  -webkit-backface-visibility: hidden;
}

.swiper-container-main {
    width: 100%;
    height: auto;
    -webkit-transition: opacity 0.6s ease, transform 0.3s ease;
    -webkit-transition: opacity 0.6s ease, -webkit-transform 0.3s ease;
    transition: opacity 0.6s ease, -webkit-transform 0.3s ease;
    -o-transition: opacity 0.6s ease, transform 0.3s ease;
    transition: opacity 0.6s ease, transform 0.3s ease;
    transition: opacity 0.6s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
    overflow: hidden;
}

.swiper-slide {
	position: relative;
    margin: 0 0 0 0.1px;
	overflow: hidden;
}

.slider-thumbnail {
	width: 100%;
}

.slider-thumbnail .swiper-wrapper {
    display: inline-block;
	-webkit-transform: initial!important;
	    -ms-transform: initial!important;
	        transform: initial!important;
}

.slider-thumbnail .swiper-slide {
    cursor: pointer;
    margin: 1vh 0 0;
    padding: 0 0 0 15px;
    font-size: 1.5rem;
    line-height: 1.2;
    word-break: break-word
}



/* Swiper Navi */

.swiper-button-prev,
.swiper-button-next {
	cursor: pointer!important;
	width: 50px!important;
	height: 50px!important;
	position: absolute!important;
	left: 50%!important;
	margin: 0!important;
	background: rgb(255,255,255);
	border: solid 1px black;
	border-radius: 50%;
	-webkit-transform: translate(-50%,-50%);
	-ms-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
	-webkit-transition: all .5s ease-in-out;
	-o-transition: all .5s ease-in-out;
	transition: all .5s ease-in-out;
	text-indent: -99999%;
	white-space: nowrap;
	overflow: hidden;
	z-index: 5!important;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
	background: black;
}

.swiper-button-prev {
	top: calc(50% + 30px)!important;
}

.swiper-button-next {
	top: calc(50% - 30px)!important;
}

.swiper-button-next::before,
.swiper-button-prev::before {
    width: 7px;
    height: 7px;
    top: calc(50% - 3.5px);
    right: 22px;
    background: none;
    border-top: solid 1px black;
    border-left: solid 1px black;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    content: none;
}

.swiper-button-next:before,
.swiper-button-prev:before {
    right: initial;
    left: 22px;
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.swiper-button-next:before {
    left: 19px;
    -webkit-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    transform: rotate(135deg);
}

.swiper-button-next:hover:before,
.swiper-button-prev:hover:before {
    border-top: solid 1px #fff;
    border-left: solid 1px #fff;
}

.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after,
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
    content: none!important;
}



/* Button, Arrow & Plus　★
-------------------------------------------------------------------------------*/

/* Button */

.button.arrow {
    display: inline-block;
    width: auto;
    height: 30px;
    position: relative;
    padding: 0 60px 0 0;
    font-size: 0.8rem;
    line-height: 30px;
    text-align: center;
	overflow: hidden;
}

.button.arrow::before {
	width: 8px;
	height: 8px;
	top: 50%;
	right: 10px;
	border-top: solid 1px black;
	border-right: solid 1px black;
	-webkit-transform: translate(-50%,-50%) rotate(45deg);
	-ms-transform: translate(-50%,-50%) rotate(45deg);
	transform: translate(-50%,-50%) rotate(45deg);
	z-index: 5;
	opacity: 1;
}

.button.box {
    display: inline-block;
    width: auto;
    height: 40px;
    position: relative;
    padding: 0 80px;
    border: solid 1px black;
    font-size: 0.8rem;
    line-height: 40px;
    text-align: center;
	overflow: hidden;
}

.button.box:hover {
	color: white;
	border-bottom: solid 1px white;
}

.button.box::after {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(255,255,255,1);
	transform: translateY(-100%);
	z-index: -1;
}

.button.box.arrow:hover::before {
	-webkit-filter: invert(1);
	filter: invert(1);	
}

.button.box.arrow:hover::after {
	transform: translateY(0%);
	-webkit-filter: invert(1);
	filter: invert(1);
}

.plus {
	position: relative;
	cursor: pointer;
}

.plus::before,
.plus::after {
	width: 14px;
	height: 1px;
	background: black;
	top: calc(50% - 0.5px);
	right: 0;
}

.plus::after {
	width: 1px;
	height: 14px;
	top: calc(50% - 7px);
	right: calc(7px - 0.5px);
}

.plus.toggle-open::after {
	opacity: 0;
}

span.plus {
	display: inline-block;
	width: 23px;
	height: 23px;
	position: absolute;
	right: 0;
	background: black;
}

span.plus::before,
span.plus::after {
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	background: white;
}


/* Circle */

.circle {
    display: inline-block;
    width: 120px;
    height: 120px;
    position: relative;
    margin: 20px;
    padding: 0;
    text-align: center;
    line-height: 100px;
    z-index: 1;
}

.circle::after {
    width: 120px;
    height: 120px;
    top: 0;
    left: 0;
    background: transparent;
    border: solid 1px black;
    border-radius: 50%;
    z-index: -1;
}

.circle:hover {
	color: white;
}

.circle:hover::after {
	background: gray;
    border: solid 1px gray;
}



/* Arrow */

.arrow::before {
	width: 5px;
	height: 5px;
	border-top: solid 1px white;
	border-right: solid 1px white;
	-webkit-transform: translate(-50%,-50%) rotate(135deg);
	-ms-transform: translate(-50%,-50%) rotate(135deg);
	transform: translate(-50%,-50%) rotate(135deg);
	z-index: 5;
	opacity: 1;
}

.arrow.righter::before {
	top: 50%;
	right: 0;
	-webkit-transform: translate(-50%,-50%) rotate(45deg);
	-ms-transform: translate(-50%,-50%) rotate(45deg);
	transform: translate(-50%,-50%) rotate(45deg);
}

.arrow.under::before {
	bottom: 0;
	left: 50%;
}

.circle.arrow::before {
	top: 65%;
	left: 50%;
	z-index: 1;
}




/* Content Page */

.doublelist {
	margin: 100px 0;
	padding: 0;
	border-top: solid 1px black;
}

.double_title {
    font-size: 1.4rem;
    line-height: 1.6;
    margin: 100px 0 20px;
}

.double_comment {
    margin: 30px 0 15px;
    padding: 0 200px 0 0;
}

.doubleslide {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.doubleslide .doubleimg {
    width: 62vw;
    height: calc(62vw * 0.56);
    max-width: 1100px;
    max-height: calc(1100px * 0.56);
    margin: 0 1vw 0 0;
    object-fit: cover;
    position: relative;
    text-indent: 999999% !important;
    white-space: nowrap;
    overflow: hidden;
}

.doubleslide .doubleimg:hover {
	cursor: grab;
}
.doubleslide .doubleimg:active {
	cursor: grabbing;
}

a.double_link {
	opacity: 0.5;
}
a.double_link:hover {
	opacity: 1;
}



/* Category & Tag */

body.category,
body.tag,
body.archive,
.category #container,
.tag #container,
.archive #container,
.category #content,
.tag #content,
.archive #content {
	overflow: visible;
}

.category #top,
.tag #top,
.archive #top {
    padding: 150px 10vw 0;
}

.category .pagetitle,
.tag .pagetitle,
.archive .pagetitle {
	width: 100%;
}

.category #article_list,
.tag #article_list,
.archive #article_list {
    padding: 50px 20px 50px 10vw;
}

.category .categories,
.tag .categories,
.archive .categories {
	width: 200px;
}

.category .catelist,
.tag .catelist,
.archive .catelist {
	top: 100px;
}

.category .postlist,
.tag .postlist,
.archive .postlist {
    width: calc(100% - 200px);
    padding: 0;
}

/*
.category .postlist article,
.tag .postlist article {
    width: calc(((90vw - 225px) * 0.33) - 15px);
    margin: 0 0 60px;
}

.category .postlist figure .thumb,
.tag .postlist figure .thumb {
    position: relative;
    width: 100%;
    height: calc((((90vw - 225px) * 0.33) - 15px) * 0.56);
}
*/



/* Category common */

.datetitle {
	display: none;
    margin: 15px 0 0;
    font-size: 1.2rem;
}

body.date .datetitle {
	display: inline-block;
}

.category .selectbox {
	margin: 0 0 80px;
}

.category .selectbox .catelist a,
.date .selectbox .catelist a,
.archive .selectbox .catelist a {
	margin: 0 15px 0 0;
}

.postlist article {
    width: calc((80vw - 5px) * 0.3333);
	margin: 0 0 60px;
}

.category .postlist article:nth-child(-n+3),
.archive .postlist article:nth-child(-n+3),
.tag .postlist article:nth-child(-n+3) {
	opacity: 1!important;
}

.postlist article.is-empty {
	display: inline-block;
	width: 30%!important;
	height: 0!important;
	position: relative;
	margin: 0!important;
}

.postlist article a {
    display: inline-block;
    width: 100%;
    opacity: 1;
}

.postlist figure .thumb {
    position: relative;
    width: 100%;
    height: calc((80vw - 5px) * 0.3333 * 0.56);
}

.postlist figure .thumb img {
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
}

.postlist figure .thumb img.nothumb {
	opacity: 0.5;
}

.postlist article a:hover {
	color: black;
}

.postlist article a:hover .thumb img {
	-webkit-filter: blur(3px);
	filter: blur(3px);
}

.postlist ul.catedate,
.postlist p.date {
    width: auto;
	margin: 10px 0;
    padding: 0;
    list-style: none;
	font-size: 0.85rem;
	line-height: 1;
}

.postlist ul.catedate li:last-child span {
	display: none;
}

.postlist ul.catedate li:nth-child(n+3) {
	display: none;
}

.postlist ul.catedate:has(> :nth-child(3)) li:nth-child(2) span {
	display: none;
}

.postlist article .taglist {
	height: auto;
	margin: 15px 0 0;
	padding: 0;
	list-style: none;
	line-height: 1.1;
}

.postlist article .taglist li {
	display: inline-block;
	width: auto;
	margin: 0 10px 0 0;
	color: gray;
	font-size: 0.75rem;
	letter-spacing: 0.5px;
	line-height: 1.2;
    word-break: break-word;
}

#subcate.taglist p {
	margin: 10px 10px 0 0;
	letter-spacing: 0.5px;
	line-height: 1.2;
    word-break: break-word;
}

.postlist article .taglist a,
#subcate.taglist a {
	width: auto;
	color: gray;
}

.postlist p.title {
    font-size: 1rem;
    line-height: 1.8;
    word-break: break-word;
}



/* Category Name */

#content .cat_name {
	position: relative;
	font-size: 0.75rem;
	font-weight: normal;
	line-height: 2;
}

#content .cat_name::after {
	content: '/';
	font-size: 100%;
	top: 0;
	right: -8px;
}

#content .cat_name:last-child::after {
	content: none;
}

ul.cat_list {
	width: 100%;
	height: auto;
	margin: 5px 0 0;
	padding: 0;
	text-align: right;
	line-height: 1;
    list-style: none;
}

ul.cat_list li {
	margin: 0 10px 0 0;
}


