: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{
	margin: 0; padding: 0;
	letter-spacing: 0;
	background-color: rgb(255, 255, 255);
	background-image: url(img/background_washi.jpg);
	background-attachment: scroll;
	background-position: bottom center;
	background-repeat: no-repeat;
	background-size: 220%;
}
body::-webkit-scrollbar{display: none;}

div{margin:0; padding: 0;}
p{margin:0; padding: 0;}
span{display: inline-block;}
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-sidebar{
	display: block;
	position: relative;
	height: 100%;
	width: var(--content-width);
	left: var(--content-left-sidebar);
}
.area-content{
	display: block;
	position: relative;
	height: 100%;
	width: var(--content-width);
	left: var(--content-left);
}
.two-column-content{
	display: flex;
	position: relative;
	height: 100%;
	width: var(--content-width);
	left: var(--content-left);
	flex-wrap: wrap;
}
.left-column{
	display: block;
	position: relative;
	width: calc(var(--content-width) * 0.65);
}
.right-column{
	display: block;
	position: relative;
	width: calc(var(--content-width) * 0.30);
	margin-left:  calc(var(--content-width) * 0.05);
}
.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;}
.contain{object-fit: contain;}

.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.12);}
.margin-both-space{margin-top: calc(var(--content-width) * 0.12); margin-bottom: calc(var(--content-width) * 0.12);}
.margin-top-space{margin-top: calc(var(--content-width) * 0.12);}
.margin-bottom-space{margin-bottom: calc(var(--content-width) * 0.12);}
.margin-both{margin-top: calc(var(--content-width) * 0.06); margin-bottom: calc(var(--content-width) * 0.06);}
.margin-top{margin-top: calc(var(--content-width) * 0.06);}
.margin-bottom{margin-bottom: calc(var(--content-width) * 0.06);}
.margin-both-inblock{margin-top: calc(var(--content-width) * 0.015); margin-bottom: calc(var(--content-width) * 0.015);}
.margin-top-inblock{margin-top: calc(var(--content-width) * 0.015);}
.margin-bottom-inblock{margin-bottom: calc(var(--content-width) * 0.015);}
.padding-top{padding-top: calc(var(--content-width) * 0.04);}
.padding-bottom{padding-bottom: calc(var(--content-width) * 0.04);}
.cozy{line-height: 1.8;}

.sans{
	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: "Noto Serif JP", serif;
	font-weight: 700;
	font-style: normal;
}
.cardo-bold{
	font-size: var(--font-base);
	font-family: "Cardo", serif;
	font-weight: 700;
	font-style: normal;
}
.title{font-size: calc(var(--font-base) * 3.0);}
.subtitle{font-size: calc(var(--font-base) * 2.2);}
.paragraph{font-size: calc(var(--font-base) * 1.5);}
.small-paragraph{font-size: calc(var(--font-base) * 0.7);}
.vertical{writing-mode: vertical-rl; text-orientation: upright;}

.black{color: black;}
.brown{color: rgb(65, 46, 13);}
.gray{color: dimgray;}
.white{color: white;}
.blue{color: steelblue;}

.decorated-link{color: maroon;}
th.decorated-link{color: gold;}

.area-title{left: 4%;}
.area-subtitle{left: 8%;}
.area-paragraph{left: 12%; width: 76%; line-height: 1.8;}

.two-visual-block{
	width: 80%; left: 10%; height: calc(var(--content-width) * 0.96);
}
.two-visual-block .image{width: 100%; height: 49%;}
.two-visual-block .visual2{top: 51%;}

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

.reserve-button{
	width: 13%; right: 0; height: calc(var(--content-width) * 0.06); top: calc(var(--content-width) * 0.04);
	background-color: maroon;
	color: white;
	filter: drop-shadow(calc(var(--font-base) * 0.2) calc(var(--font-base) * 0.2) calc(var(--font-base) * 0.3) rgba(0,0,0,0.6));
	z-index: 15;
	cursor: pointer;
	transition: background-color 0.4s, color 0.4s;
}
.reserve-button:hover{color: maroon; background-color: rgba(128, 0, 0, 0.3);}
.reserve-button p{top:50%; left: 50%; transform: translate(-50%,-50%); white-space: nowrap;}

#sidebar{ display: none;}

#header-area{height: calc(var(--content-width) * 0.86); overflow: visible; background-color: white; z-index: 5;}
#header-logo{
	width: 100%;
	height: calc(var(--content-width) * 0.40);
	background-color: maroon;
}
#header-logo .image{
	width: calc(var(--content-width) * 0.60); left: 35%;
	top: calc(var(--content-width) * 0.20); transform: translate(-50%,-50%);
	cursor: pointer;
}
#header-logo .title{
	font-size: calc(var(--font-base) * 3.2);
	left: 75%;
	top: calc(var(--content-width) * 0.20); transform: translate(-50%,-50%);
}
#header-button-block{
	width: 50%; left: 2%;
	height: calc(var(--content-width) * 0.40); top: calc(var(--content-width) * 0.42);
	display: flex; flex-wrap: wrap;
}
#header-button-belt-left{
	display: none;
}
#header-button-belt-right{
	width: 44%; left: 54%;
	height: calc(var(--content-width) * 0.415); top: calc(var(--content-width) * 0.42);
	color: white; background-color: maroon;
}
.header-button{
	display: block;
	width: 100%; height: 25%;
	color: white; background-color: maroon;
	font-size: calc(var(--font-base) * 1.8);
	text-align: center;
	margin: calc(var(--font-base) * 0.1) 0 calc(var(--font-base) * 0.1) 0;
	transition: background-color 0.4s, color 0.4s;
	cursor: pointer;
}
.header-button:hover{color: maroon; background-color: rgba(128, 0, 0, 0.3);}
.header-button p{width: 100%; left: 50%; top: 50%; transform: translate(-50%,-50%);}

#entry-form-hexagon{width: 45%; left: 54.5%; top: 44%; height: 60%;}
#entry-form-hexagon .title{font-size: calc(var(--font-base) * 4.8);}
#entry-form-hexagon .subtitle{font-size: calc(var(--font-base) * 2.7);}
#hex-title1{left: 47%; top: 20%; transform: translate(-50%,0);}
#hex-title2{left: 47%; top: 45%; transform: translate(-50%,0);}
#hex-title3{left: 47%; top: 56%; transform: translate(-50%,0);}

#vision-area{height: calc(var(--content-width) * 1.40); margin-bottom: calc(var(--content-width) * 0.12); background-color: white; z-index: 4;}
#main-visual1{animation: main-visual1 linear 30s infinite;}
#main-visual2{animation: main-visual2 linear 30s infinite;}
#main-visual3{animation: main-visual3 linear 30s infinite;}
#main-visual4{animation: main-visual4 linear 30s infinite;}
#main-visual5{animation: main-visual5 linear 30s infinite;}
@keyframes main-visual1{
	0% {opacity: 1; transform: scale(1.0125,1.0125);}
	18% {opacity: 1; transform: scale(1.1250,1.1250);}
	20% {opacity: 0; transform: scale(1.1375, 1.1375);}
	98% {opacity: 0; transform: scale(1.0,1.0);}
	100% {opacity: 1; transform: scale(1.0125,1.0125);}
}
@keyframes main-visual2{
	0%{opacity: 0; transform: scale(1.0,1.0);}
	18% {opacity: 0; transform: scale(1.0,1.0);}
	20% {opacity: 1; transform: scale(1.0125,1.0125);}
	38% {opacity: 1; transform: scale(1.1250,1.1250);}
	40% {opacity: 0; transform: scale(1.1375, 1.1375);}
	100% {opacity: 0; transform: scale(1.0,1.0);}
}
@keyframes main-visual3{
	0%{opacity: 0; transform: scale(1.0,1.0);}
	38% {opacity: 0; transform: scale(1.0,1.0);}
	40% {opacity: 1; transform: scale(1.0125,1.0125);}
	58% {opacity: 1; transform: scale(1.1250,1.1250);}
	60% {opacity: 0; transform: scale(1.1375, 1.1375);}
	100% {opacity: 0; transform: scale(1.0,1.0);}
}
@keyframes main-visual4{
	0%{opacity: 0; transform: scale(1.0,1.0);}
	58% {opacity: 0; transform: scale(1.0,1.0);}
	60% {opacity: 1; transform: scale(1.0125,1.0125);}
	78% {opacity: 1; transform: scale(1.1250,1.1250);}
	80% {opacity: 0; transform: scale(1.1375, 1.1375);}
	100%{opacity: 0; transform: scale(1.0,1.0);}
}
@keyframes main-visual5{
	0%{opacity: 0; transform: scale(1.0,1.0);}
	78% {opacity: 0; transform: scale(1.0,1.0);}
	80% {opacity: 1; transform: scale(1.0125,1.0125);}
	98% {opacity: 1; transform: scale(1.1250,1.1250);}
	100% {opacity: 0; transform: scale(1.1375, 1.1375);}
}
.slogan{
	left: 70%; width: 50%; top: 86%; opacity: 0;
	animation: fadeInStamp 3s forwards; animation-delay: 4s;
	transform-origin: center;
}
@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);}
}

#news-area{margin-bottom: calc(var(--content-width) * 0.12);}
#news-area p.title{margin-bottom: calc(var(--content-width) * 0.06); left: 4%;}
#news-area p.paragraph{right: 4%; top: calc(var(--font-base) * 1.2); 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.6);
}
#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);
}

#kyushu-area p{
	margin-bottom: calc(var(--font-base) * 0.2);
	margin-left: calc(var(--font-base) * 0.8);
	font-size: calc(var(--font-base) * 0.7);
}
#kyushu-area p.subtitle{
	margin-top: calc(var(--font-base) * 1.2);
	margin-bottom: calc(var(--font-base) * 0.6);
	font-size: calc(var(--font-base) * 1.1);
}

#footer-area{height: calc(var(--content-width) * 0.36); color: white; background-color: maroon;}
#footer-area .image{width: 50%; left: 50%; top: 40%; transform: translate(-50%,-50%);}
#footer-area p{top: 80%; left: 50%; transform: translate(-50%,-50%);}

#concept-area .strong{color: maroon; font-size: calc(var(--font-base) * 2.0);}

#introduction-area .video{width: 80%; left: 10%; height: calc(var(--content-width) * 0.48);}

#staff-area{
	background-color: maroon;
	background-image: url(img/staff_back1.png), url(img/staff_back2.png);
	background-attachment: fixed, fixed;
	background-position: calc(var(--content-width) * 0.30) 60%, calc(var(--content-width) * -0.20) 15%;
	background-repeat: no-repeat, no-repeat;
	background-size: 90%, 120%;
}
.member-introduction{
	display: block; position: relative;
	width: 100%; height: calc(var(--content-width) * 1.40);
}
.member-introduction.greeting{height: calc(var(--content-width) * 1.10);}
.member-introduction.greeting div{width: 80%;}
.member-introduction .image{width: 80%; left: 10%; height: 80%;}
.member-introduction .image-full{width: 80%; left: 10%; height: 80%;}
.member-introduction .sign{text-align: right; right: 10%;}
.member-introduction .title{left: 10%;}
.member-introduction .paragraph{left: 10%;}
#staff-area #footer-area{background-color: transparent;}

#event-area .map{width: 84%; left: 8%; height: calc(var(--content-width) * 0.50);}
#entry-form-scroll{width: 81%; left: 8%; height: calc(var(--content-width) * 0.24);}
#entry-form-scroll p{top: 50%; left: 50%; transform: translate(-50%, -50%); white-space: nowrap;}

.block-news-list{
	width: 100%; height: calc(var(--content-width) * 0.20);
	border-bottom: 1px solid dimgray;
}
.border-top{border-top: 1px solid dimgray;}
.block-news-list .image{width: 25%; height: 90%; left: 25%; top: 5%;}
.news-list-date{left: 12.5%; top: 50%; transform: translate(-50%,-50%);}
.news-list-title{width: 50%; left: 75%; top: 50%; transform: translate(-50%,-50%); text-align: center;}

.block-news-detail{width: 60%; left: 20%;}
.block-news-detail .image{width: 100%; height: calc(var(--content-width) * 0.40);}
.block-news-detail .news-detail-body{margin-top: calc(var(--content-width) * 0.50);}

.main-visual{width: 100%; height: calc(var(--content-width) * 0.40);}
.main-visual .title{top: calc(var(--content-width) * 0.16); font-size: calc(var(--font-base) * 3.0);}
.main-visual .paragraph{top: calc(var(--content-width) * 0.25);}

body.side-open{overflow-y:hidden;}
.side-open .overlay {
	transform: translate3d(-60%, 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: -60%;
	width: 60%;
	height: 100%;
	text-align: left;
	background: maroon;
	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: gold;}

.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;
}