:root {
	--vw: 100vw;
	--content-width: var(--vw);
	--content-left: calc(50% - var(--content-width) / 2);
	--font-base: calc(var(--content-width) * 0.02);
}

html{scrollbar-width: none;}
body{
	background-image: url(img/background.jpg);
	background-size: cover;
	background-attachment: fixed;
	background-clip: content-box;
	background-position: center;
	margin: 0; padding: 0;
}
body::-webkit-scrollbar{display: none;}

div{margin:0; padding: 0;}
span{margin: 0; padding: 0; display: inline-block;}
p{margin: 0; padding: 0; white-space: nowrap;}
a{color: inherit; text-decoration: none;}
button {
	cursor: pointer;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	vertical-align: middle;
	color: inherit;
	font: inherit;
	border: 0;
	background: transparent;
	padding: 0;
	margin: 0;
	outline: none;
	border-radius: 0;
}

.area{
	display: block;
	position: relative;
	width: 100%;
	left: 0;
	overflow: hidden;
}
.area-content{
	display: block;
	position: relative;
	height: 100%;
	width: var(--content-width);
	left: var(--content-left);
}
.floating-area{
	display: block;
	position: relative;
	width: var(--content-width);
	left: var(--content-left);
	overflow: hidden;
}
.block-fixed{display: block; position: fixed;}
.block-relative{display: block; position: relative;}
.block-absolute{display: block; position: absolute;}
.image{display: block; position: absolute; object-fit: cover; user-select: none;}
.image-relative{display: block; position: relative; object-fit: cover; user-select: none;}
.fiximage{ display: block; position: fixed; object-fit: cover; user-select: none;}
.image-fixed{ display: block; position: fixed; object-fit: cover; user-select: none;}
.image-full{display: block; position: relative; object-fit: contain; user-select: none;}

.filled{width: 100%; height: 100%; top:0; left:0;}
.centered{left: 50%; transform: translate(-50%,0); text-align: center;}
.no-margin{margin: 0;}
.margin-bottom-area{margin-bottom: calc(var(--content-width) * 0.24);}
.margin-both-space{margin-top: calc(var(--content-width) * 0.24); margin-bottom: calc(var(--content-width) * 0.24);}
.margin-top-space{margin-top: calc(var(--content-width) * 0.24);}
.margin-bottom-space{margin-bottom: calc(var(--content-width) * 0.24);}
.margin-both{margin-top: calc(var(--content-width) * 0.12); margin-bottom: calc(var(--content-width) * 0.12);}
.margin-top{margin-top: calc(var(--content-width) * 0.12);}
.margin-bottom{margin-bottom: calc(var(--content-width) * 0.12);}
.margin-both-inblock{margin-top: calc(var(--content-width) * 0.03); margin-bottom: calc(var(--content-width) * 0.03);}
.margin-top-inblock{margin-top: calc(var(--content-width) * 0.03);}
.margin-bottom-inblock{margin-bottom: calc(var(--content-width) * 0.03);}
.padding-top{padding-top: calc(var(--content-width) * 0.08);}
.padding-bottom{padding-bottom: calc(var(--content-width) * 0.08);}
.cozy{line-height: 1.8;}

.sans{
	font-size: var(--font-base);
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 300;
	font-style: normal;
}
.sans-bold{
	font-size: var(--font-base);
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	font-style: normal;
}
.serif{
	font-size: var(--font-base);
	font-family: "Sawarabi Mincho", serif;
	font-weight: 400;
	font-style: normal;
}
.title{font-size: calc(var(--font-base) * 3.2);}
.subtitle{font-size: calc(var(--font-base) * 2.6);}
.paragraph{font-size: calc(var(--font-base) * 1.8);}
.small-paragraph{font-size: calc(var(--font-base) * 0.7);}
.black{color: black;}
.gray{color: dimgray;}
.white{color: white;}
.accent-color{color: dimgray;}

.decorated-link{color: dimgray;}
th.decorated-link{color: white;}

.area-title{left: 5%;}
.area-subtitle{left: 5%;}
.area-subtitle-caption{left: 5%;}
.area-paragraph{left: 8%; width: 84%;}

.main-visual{width: 100%; height: calc(var(--content-width) * 0.70);}
.main-visual .title{top: calc(var(--content-width) * 0.28); font-size: calc(var(--font-base) * 4.0);}
.main-visual .paragraph{top: calc(var(--content-width) * 0.38);}

.threeblock-line-visual{width: 100%; height: calc(var(--content-width) * 0.22);}
.threeblock-line-visual .image{width: 33.0%; height: 100%;}
.threeblock-line-visual-image1{left: 0%;}
.threeblock-line-visual-image2{left: 33.5%;}
.threeblock-line-visual-image3{left: 67.0%;}

.threeblock-line-caption{width: 100%; height: calc(var(--content-width) * 0.04);}
.threeblock-line-caption p{
	display: block; position: absolute;
	text-align: center;
	width: 33.0%; top: 50%; transform: translate(-50%, -50%);
}
.threeblock-line-caption1{left: 16.5%;}
.threeblock-line-caption2{left: 50.0%;}
.threeblock-line-caption3{left: 83.5%;}

.twoblock-visual-captioned{width: 100%; height: calc(var(--content-width) * 1.40);}
.twoblock-visual-captioned.margin-top{margin-top: 0;}
.twoblock-visual-captioned .image{width: 90%; left: 5%; height: calc(var(--content-width) * 0.50);}
.twoblock-visual-captioned p{
	display: block; position: absolute;
	text-align: center;
	width: 90%; left: 5%; margin-top: calc(var(--content-width) * 0.51);
}
.twoblock-visual-captioned-block1{top: 0%;}
.twoblock-visual-captioned-block2{top: 50%;}

.block-leftimage{width: 100%; height: calc(var(--content-width) * 0.24); background-color: white;}
.block-leftimage .image{width: 40%; left: 0; height: 100%;}
.block-leftimage .subtitle{font-size: calc(var(--font-base)* 1.1); width: 56%; left: 70%; transform: translate(-50%,0); top: 15%;}
.block-leftimage .paragraph.subtitled{width: 50%; left: 45%; top: 32%; font-size: calc(var(--font-base) * 0.7);}
.block-leftimage .paragraph.nosubtitled{width: 50%; left: 45%; top: 50%; transform: translate(0,-50%); font-size: calc(var(--font-base) * 0.7);}

.block-rightimage{width: 100%; height: calc(var(--content-width) * 0.24); background-color: white;}
.block-rightimage .image{width: 40%; left: 60%; height: 100%;}
.block-rightimage .subtitle{font-size: calc(var(--font-base)* 1.1); width: 56%; left: 30%; transform: translate(-50%,0); top: 15%;}
.block-rightimage .paragraph.subtitled{width: 50%; left: 5%; top: 32%; font-size: calc(var(--font-base) * 0.7);}
.block-rightimage .paragraph.nosubtitled{width: 50%; left: 5%; top: 50%; transform: translate(0,-50%); font-size: calc(var(--font-base) * 0.7);}

.two-column-area{
	width: 100%;
	position: relative;
}
.two-column-area-left{width: 90%; left: 5%; position: relative;}
.two-column-area-right{width: 90%; left: 5%; position: relative;}

table{
	position: relative;
	table-layout: fixed;
	border-collapse: separate;
	border-spacing:  calc(var(--font-base) * 0.3);
	font-size: calc(var(--font-base) * 1.6);
}
table th{
	padding: calc(var(--font-base) * 0.8);
	color: white;
	background-color: steelblue;
}
table td{
	padding: calc(var(--font-base) * 0.8);
	background-color: white;
}

#right-white{
	display: none;
	position: fixed;
	width: 44%; left: 40%; height: 100vh;
	background-color:rgba(255, 255, 255, 0.4);
}

#sidebar{
	display: none;
	position: fixed;
	width: 16%; left: 84%; height: 100vh;
	z-index: 1;
	background-color:rgba(200, 227, 255, 0.7);
}
#sidebar-link-box{
	width: 100%; left: 0%; height: 80%; top: 10%;
}
#sidebar-link-top{
	width: 80%; left: 10%; top: 5%; text-align: center;
}
#sidebar-button{
	width: 100%; top: 30%; height: 55%;
}
#sidebar button{
	display: block;
	width: 80%;
	height: 16%;
	margin: calc(var(--font-base) * 0.1) 0 calc(var(--font-base) * 0.1) 10%;
	font-size: calc(var(--font-base) * 1.0);
	color: steelblue;
	transition: background-color 0.4s, color 0.4s;
}
#sidebar button:hover{
	color: white;
	background-color:steelblue;
}
.sidebar-link{
	text-align: center; width: 80%;
	transition: text-shadow 0.4s;
}
.sidebar-link:hover{
	text-shadow: 2px 2px 3px #808080;
	transition: text-shadow 0.4s;
}

#header-area{height: calc(var(--content-width) * 1.50); z-index: 2;}
#header-blue-line{
	width: 100%; left: 0;
	height: calc(var(--content-width) * 0.05); top: 0;
	overflow: hidden;
	background-color: black;
	background-size: cover;
	background-position: center;
}
#header-title-box{
	width: 100%; height: calc(var(--content-width) * 0.35); top: calc(var(--content-width) * 0.05);  background-color: white;
}
#header-title1{top: 35%; left: 48%; transform: translate(-100%,-50%);}
#header-title2{top: 35%; left: 50%; transform: translate(0,-50%);}
#header-logo{top: 60%; width: 40%; left: 30%;}
#header-link-box{
	width: 100%; height: calc(var(--content-width) * 0.28); top: calc(var(--content-width) * 0.40); background-color: rgb(200, 227, 255);
}
#header-button{
	width: calc(var(--content-width) * 0.92); left: calc(50% - var(--content-width) * 0.92 / 2); height: 100%;
	display: flex; flex-wrap: wrap;
	gap: 0 calc(var(--content-width) * 0.01); margin-top: calc(var(--content-width) * 0.02);
}
#header-area button{
	display: inline-block;
	width: calc(var(--content-width) * 0.30);
	height: calc(var(--content-width) * 0.10);
	font-size: calc(var(--font-base) * 1.5);
	color: steelblue;
	margin-bottom: 0;
	background-color: white;
	transition: background-color 0.4s, color 0.4s;
}
#header-area button:hover{
	color: white;
	background-color:steelblue;
}
#header-main-visual{
	width: 100%; height: calc(var(--content-width) * 1.10); top: calc(var(--content-width) * 0.40);
}

.two-column-area-left .image-relative{width: 100%; left: 0%; height: calc(var(--content-width) * 0.60); }

#concept-catchcopy{width: 100%;}
#concept-image{margin-top: calc(var(--content-width) * 0.12); margin-bottom: calc(var(--content-width) * 0.12);}

#service-image1{margin-top: calc(var(--content-width) * 0.0);}
#service-image2{margin-top: calc(var(--content-width) * 0.12);}
#service-image3{margin-top: calc(var(--content-width) * 0.12); margin-bottom: calc(var(--content-width) * 0.12);}

#access-area .two-column-area-right p{margin-top: calc(var(--content-width) * 0.02);}
#access-map{
	width: 100%; left: 0%; margin-bottom: calc(var(--content-width) * 0.08);
	height: calc(var(--content-width) * 0.50);
}

#footer-area{
	height: calc(var(--content-width) * 0.40);
	background-color:steelblue;
}
#footer-link{
	width: 70%; text-align: center;
	top: 35%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: calc(var(--font-base) * 1.4);
	white-space: normal;
}
#footer-copyright{
	top: 65%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#schedule-area p{white-space: initial;}
#schedule-area .area-title{left: 5%;}
#schedule-area table{width: 90%; left: 5%;}
#schedule-area table tr{width: 100%;}
#schedule-area table th{width: 30%;}
#schedule-area table .subtitle{font-size: calc(var(--font-base) * 2.5);}
#schedule-area table .paragraph{font-size: calc(var(--font-base) * 1.6);}

#overview-area p{white-space: initial;}
#overview-area .area-title{left: 5%;}
#overview-area .area-subtitle{left: 5%;}
#overview-area .area-paragraph{left: 5%; width: 90%;}
#overview-area table{width: 90%; left: 5%;}
#overview-area table tr{width: 100%;}
#overview-area table th{width: 30%;}
#overview-area table .subtitle{font-size: calc(var(--font-base) * 2.5);}
#overview-area table .paragraph{font-size: calc(var(--font-base) * 1.6);}

#overview-area p{white-space: initial;}
#availability-area .area-title{left: 5%;}
#availability-area .area-subtitle{left: 5%;}
#availability-area .area-paragraph{left: 5%; width: 90%;}
#availability-area table{width: 90%; left: 5%;}
#availability-area table tr{width: 100%;}
#availability-area table th{width: 15%;}
#availability-area table .subtitle{font-size: calc(var(--font-base) * 2.5);}
#availability-area table .paragraph{font-size: calc(var(--font-base) * 1.6);}

@keyframes fadeIn {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
@keyframes fadeOut {
	0% {opacity: 1;}
	100% {opacity: 0;}
}
@keyframes fadeInStamp {
	0% {opacity: 0; transform: translate(-50%, -50%) scale(1.2,1.2);}
	100% {opacity: 1; transform: translate(-50%, -50%) scale(1.0,1.0);}
}

@keyframes fade_in_out{
	0% {opacity: 0;}
	17% {opacity: 0;}
	25% {opacity: 1;}
	42% {opacity: 1;}
	50% {opacity: 0;}
	100% {opacity: 0;}
}

#news-area{
	top: calc(var(--content-width) * -0.04);
	margin-bottom: calc(var(--content-width) * 0.08);
	padding-bottom: calc(var(--content-width) * 0.06);
	z-index: 3;
	pointer-events: none;
}
#news-area .area-content{
	width: 90%; left: 5%;
	background-color: white;
	filter: drop-shadow(0 0 calc(var(--font-base) * 0.3) dimgray);
	pointer-events: auto;
}
#news-area p{padding: calc(var(--content-width) * 0.04);}
#news-area p.title{margin-bottom: calc(var(--content-width) * 0.04);}
#news-area p.paragraph{right: 0%; top: calc(var(--font-base) * 2.0); white-space: nowrap;}
#news-area table{
	position: relative;
	width: 90%; left: 5%;
	table-layout: fixed;
	border-collapse: collapse;
	border-spacing:  calc(var(--font-base) * 0.3);
	font-size: calc(var(--font-base) * 1.5);
}
#news-area table tr{
	border-top: 1px solid dimgray;
	border-bottom: 1px solid dimgray;
}
#news-area table td{
	background-color: transparent;
	padding: calc(var(--font-base) * 0.5);
}
#news-area table td.news-date{
	width: calc(var(--content-width) * 0.25);
}

.block-news-list{
	width: 90%; left: 5%; height: calc(var(--content-width) * 0.80);
	border-bottom: 1px solid dimgray;
}
.border-top{border-top: 1px solid dimgray;}
.block-news-list .image,.block-news-list .image-full{width: 60%; height: 40%; left: 20%; top: 20%;}
.news-list-date{left: 50%; top: 7%; transform: translate(-50%,0%);}
.news-list-title{width: 90%; left: 50%; top: 80%; transform: translate(-50%,-50%); text-align: center; white-space: normal;}

.block-news-detail{width: 60%; left: 20%;}
.block-news-detail .image-full{width: 100%; height: calc(var(--content-width) * 0.40);}
.block-news-detail p{white-space: normal;}

#login-area table{width: 88%; left: 6%;}
#login-area table tr{width: 100%;}
#login-area table th{width: 30%;}
#login-area table th.required:after{content: " ※";}
#login-area table td{background-color: khaki;}
#login-area .half-input{
	width: calc(var(--font-base) * 10);
	height: calc(var(--font-base) * 2);
	border: 0;
	margin-right: calc(var(--font-base) * 1);
	padding: 0 calc(var(--font-base) * 1);
	font-size: calc(var(--font-base) * 0.9);
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
}
#login-area .full-input{
	width: calc(var(--font-base) * 23.2);
	height: calc(var(--font-base) * 2);
	border: 0;
	padding: 0 calc(var(--font-base) * 1);
	font-size: calc(var(--font-base) * 0.9);
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
}
#login-area button{
	width: calc(var(--content-width) * 0.20); left: calc(var(--content-width) * 0.40);
	height: calc(var(--content-width) * 0.05);
	background-color: white;
	border: solid 1px rgb(65, 46, 13);
	transition: background-color 0.4s, color 0.4s;
	margin-top: calc(var(--content-width) * 0.04);
	margin-bottom: calc(var(--content-width) * 0.04);
}
#login-area button:hover{
	border: none;
	background-color: forestgreen;
	color: white;
}

#news-edit-list-area .block-news-list{
	width: 100%; height: calc(var(--content-width) * 0.16);
	border-bottom: 1px solid dimgray;
}
#news-edit-list-area .block-news-list .image{width: 20%; height: 90%; left: 20%; top: 5%;}
#news-edit-list-area .block-news-list .image-full{width: 20%; height: 90%; left: 20%; top: 5%;}
#news-edit-list-area .news-list-date{left: 10%; top: 50%; transform: translate(-50%,-50%);}
#news-edit-list-area .news-list-title{width: 40%; left: 60%; top: 50%; transform: translate(-50%,-50%); text-align: center;}
#news-edit-list-area button{
	width: 10%; left: 85%;
	height: calc(var(--content-width) * 0.05); top: 50%;
	transform: translate(0,-50%);
	background-color: white;
	border: solid 1px rgb(65, 46, 13);
	transition: background-color 0.4s, color 0.4s;
}
#news-edit-list-area button:hover{
	border: none;
	background-color: forestgreen;
	color: white;
}
#news-edit-list-area button.button-new-post{
	width: 15%; left: 50%; transform: translate(-50%,0);
}

#news-edit-area table{
	width: 100%;
}
#news-edit-area table tr{
	width: 100%;
}
#news-edit-area table th{
	width: 20%;
}
#news-edit-area table td{
	background-color: khaki;
}
#news-edit-area .date-input{
	width: calc(var(--font-base) * 4);
	height: calc(var(--font-base) * 2);
	border: 0;
	padding: 0 calc(var(--font-base) * 1);
	font-size: calc(var(--font-base) * 0.9);
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
	margin-right: calc(var(--font-base) * 0.5);
}
#news-edit-area .full-input{
	width: calc(var(--font-base) * 23.2);
	height: calc(var(--font-base) * 2);
	border: 0;
	padding: 0 calc(var(--font-base) * 1);
	font-size: calc(var(--font-base) * 0.9);
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
}
#news-edit-area .uploader{
	padding: 0 calc(var(--font-base) * 1);
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
}
#news-edit-area textarea{
	width: calc(var(--font-base) * 23.2);
	height: calc(var(--font-base) * 14);
	border: 0;
	padding: calc(var(--font-base) * 0.5) calc(var(--font-base) * 1);
	font-size: calc(var(--font-base) * 0.9);
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
	background-color: white;
}
#news-edit-area button{
	width: 15%; left: 50%;
	height: calc(var(--content-width) * 0.05);
	transform: translate(-50%,0);
	background-color: white;
	border: solid 1px rgb(65, 46, 13);
	transition: background-color 0.4s, color 0.4s;
}
#news-edit-area button:hover{
	border: none;
	background-color: forestgreen;
	color: white;
}

#news-complete-area button{
	width: 15%; left: 50%;
	height: calc(var(--content-width) * 0.05);
	transform: translate(-50%,0);
	background-color: white;
	border: solid 1px rgb(65, 46, 13);
	transition: background-color 0.4s, color 0.4s;
}
#news-complete-area button:hover{
	border: none;
	background-color: forestgreen;
	color: white;
}

body.side-open{overflow-y:hidden;}

.side-open .overlay {
	transform: translate3d(-70%, 0, 0);
}

.overlay {
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0);
	transition: all .5s ease;
	z-index: 23;
}
.side-open .overlay {
	visibility: visible;
	cursor: pointer;
	background: rgba(0,0,0,.2);
	transition: all .5s ease;
}

.side-menu{
	position: fixed;
	top: 0;
	right: -70%;
	width: 70%;
	height: 100%;
	text-align: left;
	background: rgb(237, 246, 255);
	z-index: 21;
	transition: all .5s ease;
}
.side-open .side-menu{
	right: 0;
	transition: all .5s ease;
}


.side-menu-ul{
	position: absolute;
	width: 100%;
	height: 90%;
	top: 5%;
	overflow-x: hidden;
	overflow-y: scroll;
	list-style-type: none;
	padding-inline-start: 0;
	margin-block-start: 0;
	margin-block-end: 0;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.side-menu-ul::-webkit-scrollbar{
	display: none;
}
.side-menu-ul li{
	display: block; position: relative;
	height: 10%;
	padding: 0 calc(var(--font-base) * 2.4);
}
.side-menu-ul li p{display: block; position: absolute; top: 50%; transform: translate(0,-50%); padding: 0 calc(var(--font-base) * 2.4);}
.side-menu-ul li p.category{padding: 0 0;}
.side-menu-ul .decorated-link{color: steelblue;}

.side-menu-btn {
	position: fixed;
	top: calc(var(--font-base) * 1);
	right: calc(var(--font-base) * 1);
	width: calc(var(--font-base) * 5);
	height: calc(var(--font-base) * 5);
	padding: 0;
	cursor: pointer;
	z-index: 24;
	background: rgba(255, 255, 255, 0.9);
}
.side-open .side-menu-btn{
	background: none;
}

.ellipsis-v {
	position: relative;
	display: block;
	cursor: pointer;
	width: 50%;
	left: 25%;
	height: 50%;
	top: 25%;
}

.ellipsis-v .point {
	position: absolute;
	left: 0;
	right: 0;
	display: block;
	width: 100%;
	height: 4px;
	margin: auto;
	background: #333;
	transition: all .3s;
}

.ellipsis-v .point.top {
	top: 0;
}

.ellipsis-v .point.mid {
	top: 0;
	bottom: 0;
}

.ellipsis-v .point.bot {
	bottom: 0;
}

.side-open .side-menu-btn:hover .top,
.side-open .top {
	width: 140%;
	height: 1px;
	background: #fff;
	transform-origin: left top;
	transform: rotate(45deg);
}

.side-open .mid {
	opacity: 0;
}

.side-open .side-menu-btn:hover .bot,
.side-open .bot {
	width: 140%;
	height: 1px;
	background: #fff;
	transform-origin: left bottom;
	transform: rotate(-45deg);
	}

.side-open .side-menu-btn:hover .bot,
.side-open .side-menu-btn:hover .top {
	background: #ccc;
}