@charset "utf-8";

:root{
	--color-01:#DC143C;
	--color-02:#005BAC;
}

*{
	box-sizing:border-box;
	padding:0;
	margin:0;
}
html{
	font-size:62.55%;
	word-break:break-all;
	word-wrap:break-word;
}
body{
	position:relative;
	z-index:1;
	width:100%;
	min-height:100dvh;
	background-color:#fff;
	color:#222;
	font-family:"Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "Helvetica", "Arial", sans-serif;
	font-size:15px;
	font-size:1.45rem;
	font-weight:400;
	font-style:normal;
	font-optical-sizing:auto;
	line-height:1.9;
}
img{
	max-width:100%;
	height:auto;
	border:0;
	vertical-align:bottom;
}
a{
	color:#222;
	text-decoration:none;
	transition:all 0.3s ease;
}
i{
	font-style:normal;
}


/*

Noto Sans Japanese
https://fonts.google.com/noto/specimen/Noto+Sans+JP

	font-family:"Noto Sans JP", sans-serif;
	font-family:"Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "Helvetica", "Arial", sans-serif;
	font-optical-sizing:auto;

Noto Serif Japanese
https://fonts.google.com/noto/specimen/Noto+Serif+JP

	font-family:"Noto Serif JP", serif;
	font-family:"Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-optical-sizing:auto;

Hina Mincho
https://fonts.google.com/specimen/Hina+Mincho

	font-family:"Hina Mincho", serif;
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-weight:400;

Italianno
https://fonts.google.com/specimen/Italianno
	font-family:"Italianno", cursive;
	font-weight:400;
	font-style:normal;
}

Roboto
https://fonts.google.com/specimen/Roboto
	font-family:"Roboto", sans-serif;

*/

/*******************************
/* opening
*******************************/

body.opening-no-scroll{
	overflow:hidden;
	height:100vh;
}
#opening{
	position:fixed;
	top:0;
	left:0;
	z-index:999;
	width:100vw;
	height:100vh;
	display:-webkit-flex;
	display:flex;
	-webkit-justify-content:center;
	justify-content:center;
	-webkit-align-items:center;
	align-items:center;
	background:#fff;
	opacity:1;
	visibility:visible;
}
#opening.active{
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity 0.4s ease, visibility 0s linear 0.4s;
}
#opening div.opening-element{
	width:90%;
	height:100%;
	background-image:url(../images/logo_03.png);
	background-repeat:no-repeat;
	background-position:center;
	background-size:200px;
	opacity:0;
}
#opening div.opening-element.active{
	opacity:0;
	filter:blur(20px);
	animation:opening-timer 0.8s forwards;
}
body.page-home #opening.active{
	transition:opacity 1.0s ease, visibility 0s linear 1.0s;
}
body.page-home #opening div.opening-element.active{
	animation-duration:1.5s;
}
@keyframes opening-timer{
	to{
		opacity:1;
		filter:blur(0);
	}
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	#opening div.opening-element{
		background-size:40%;
		background-position:46.5% 40%;
	}
}

/*******************************
/* header
*******************************/

header{}
#header{}


/*******************************
/* #global-container
*******************************/

#global-container{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	height:100vh;
}
#header{
	order:1;
	flex:0 0 100%;
	display:flex;
	align-items:center;
	height:10rem;
	padding:0 4rem;
	margin:0 auto;
}
#nav{
	order:3;
	flex:0 0 100%;
	display:flex;
	align-items:center;
	height:10rem;
	padding:0 4rem 1.5em 4rem;
}
#main{
	order:2;
	flex:0 0 100%;
	height:calc(100vh - 25rem);
	padding:0 4rem;
	margin:0 auto;
}
#footer{
	order:4;
	flex:0 0 100%;
	display:flex;
	justify-content:space-between;
	align-items:center;
	height:5rem;
	padding-left:4rem;
}

/* page */

body.page{}
body.page #header{
	order:1;
	flex:1;
	margin-right:auto;
}
body.page #nav{
	order:2;
	flex:1;
	justify-content:right;
	padding-right:0;
	margin-left:auto;
}
body.page #main{
	order:3;
	height:calc(100vh - 15rem);
}
body.page #main.scrolling-container{
	padding-right:0;
	margin-bottom:2rem;
	overflow-x:hidden;
}
body.page #main.scrolling-container,
body.page #main.scrolling-container .scrolling-column,
body.page #main.scrolling-container .scrolling-column-block{
	height:calc(100vh - ( 15rem + 2rem ));
}
body.page #footer{
	order:4;
}

/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	#global-container{
		height:auto;
	}
	#header,
	body.page #header{
		position:fixed;
		z-index:5;
		justify-content:center;
		background:#fff;
		width:100%;
		height:10vh;
		margin-bottom:auto;
	}
	#main,
	body.page #main{
		width:100%;
		height:auto;
		padding:0;
		margin:0;
		margin-top:10vh;
	}
	#nav{}
	#footer,
	body.page #footer{
		display:block;
		height:auto;
		padding:0 0 3.5em 0;
		margin:0;
	}
	body.page #main.scrolling-container,
	body.page #main.scrolling-container .scrolling-column,
	body.page #main.scrolling-container .scrolling-column-block{
		height:calc(100svh - ( 10vh + 5rem + 1.0em));
		max-height:600px;
	}
}

/*******************************
/* #header
*******************************/

#header{}
#header div.logo{}
#header div.logo img{
	width:auto;
	height:6.0rem;
	object-fit:cover;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	#header div.logo img{
		height:6vh;
	}
}

/*******************************
/* #nav
*******************************/

#nav{}
#nav ul{
	display:flex;
}
#nav ul > li{}
#nav ul > li + li{}
#nav ul > li a{
	display:inline-block;
	font-size:1.35rem;
	font-weight:500;
	white-space:nowrap;
	padding:0.5em 1.0em;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	#nav,
	body.page #nav{
		position:fixed;
		z-index:25;
		top:10vh;
		left:0;
		width:100%;
		height:auto;
		display:block;
		visibility:hidden;
		opacity:0;
		transition:all 0.4s;
		padding:1.5em 1.0em;
	}
	.nav-open #nav,
	.nav-open.page #nav{
		background:#fff;
		visibility:visible;
		opacity:1;
	}
	#nav ul{
		display:block;
	}
	#nav ul > li{
		
	}
	#nav ul > li + li{
		border-top:1px solid #000;
	}
	#nav ul > li a{
		display:block;
		padding:0.65em 1.5em;
	}
}

/*******************************
/* #footer
*******************************/

#footer{}
#footer > div.contact{
	display:flex;
	align-items:center;
	height:5rem;
}
#footer > div.contact .js-modal-open{
	display:flex;
	align-items:center;
	height:100%;
	border:0;
	background:#000;
	color:#fff;
	font-family:"Roboto", sans-serif;
	font-size:1.3rem;
	font-weight:500;
	line-height:1;
	letter-spacing:0.055em;
	outline:1px solid #000;
	outline-offset:-1px;
	padding:1.0em 3.5em;
	cursor:pointer;
}
#footer > div.contact .js-modal-open:hover{
	background:#fff;
	color:#222;
}
#footer > div.contact .js-modal-open:focus-visible{
	outline:3px solid #2271b1;
	outline-offset:2px;
}
#footer > div.credit{
	margin-bottom:auto;
}
#footer p.credit{
	font-size:1.2rem;
	font-weight:400;
	line-height:1.75;
}
#footer p.privacy{
	font-size:1.1rem;
	font-weight:400;
	line-height:1.75;
}
#footer p.privacy a{
	text-decoration:underline;
	text-underline-offset:0.25em;
}
#footer > div.copyright{
	padding:0 2.5rem;
	margin-left:auto;
}
#footer p.copyright{
	font-family:"Roboto", sans-serif;
	font-size:1.15rem;
	font-weight:500;
	line-height:1.75;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	#footer > div.contact{
		height:auto;
		justify-content:center;
		padding-top:2.5em;
	}
	#footer > div.contact .js-modal-open{
		font-size:1.1rem;
	}
	#footer > div.credit{
		flex:0 0 100%;
		padding:0 1.15em;
		margin:0;
	}
	#footer p.credit{
		font-size:1.1rem;
	}
	#footer p.privacy{
		font-size:1.0rem;
	}
	#footer > div.copyright{
		flex:0 0 100%;
		padding:0 1.15em;
		margin:0;
	}
	#footer p.copyright{
		font-size:1.0rem;
	}
}

/*******************************
/* main
*******************************/

#main{}

/*******************************
/* privacy-policy
*******************************/

body.page-privacy #global-container{
	height:auto;
	min-height:100vh;
}
body.page-privacy #main.privacy-container{
	height:auto;
	min-height:calc(100vh - 15rem);
	padding:5rem 4rem 8rem;
}
.privacy-policy{
	width:min(100%, 900px);
	word-break:normal;
	overflow-wrap:anywhere;
	margin:0 auto;
}
.privacy-policy-header h1{
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:2.25rem;
	font-weight:400;
	line-height:1.5;
	letter-spacing:0.05em;
}
.privacy-policy section{
	margin-top:4.5rem;
}
.privacy-policy section h2{
	font-size:1.6rem;
	font-weight:500;
	line-height:1.6;
	letter-spacing:0.03em;
	border-bottom:1px solid #aaa;
	padding-bottom:0.65em;
	margin-bottom:1.5em;
}
.privacy-policy section p,
.privacy-policy .references li{
	font-size:1.4rem;
	line-height:2;
}
.privacy-policy section p + p{
	margin-top:1.25em;
}
.privacy-policy .references{
	margin-top:2.5rem;
}
.privacy-policy .references li + li{
	margin-top:0.75em;
}
.privacy-policy .references a{
	text-decoration:underline;
	text-underline-offset:0.25em;
}
.privacy-policy p.established{
	font-size:1.3rem;
	line-height:1.8;
	text-align:right;
	margin-top:5rem;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	body.page-privacy #main.privacy-container{
		min-height:0;
		padding:4rem 1.8rem 7rem;
	}
	.privacy-policy-header h1{
		font-size:2.0rem;
	}
	.privacy-policy section{
		margin-top:4rem;
	}
	.privacy-policy section h2{
		font-size:1.45rem;
	}
	.privacy-policy section p,
	.privacy-policy .references li{
		font-size:1.3rem;
		line-height:1.9;
	}
	.privacy-policy p.established{
		font-size:1.2rem;
	}
}

/*******************************
/* scrolling-container
*******************************/

.scrolling-container{}

/* scrolling-column */

.scrolling-container .scrolling-column{
	display:flex;
	justify-content:right;
	align-items:center;
	padding:1.0rem 0;
}
.scrolling-container .scrolling-column .scrolling-column-block{
	display:flex;
	flex-direction:row-reverse;
	overflow-x:auto;
	scroll-behavior:smooth;
}
.scrolling-container .scrolling-column .scrolling-column-block::-webkit-scrollbar{
	background:#fff;
}
.scrolling-container .scrolling-column .scrolling-column-block::-webkit-scrollbar-thumb{
	background-color:#fff;
	border-bottom:1px solid #000;
}
.scrolling-container .scrolling-column .scrolling-column-block::-webkit-scrollbar-thumb:hover{}

/* column */

.scrolling-container .column{
	writing-mode:vertical-rl;
	text-orientation:upright;
	font-feature-settings:"pwid";
	column-count:2;
	column-gap:3.0em;
	padding:1.5em 2.5em 2.5em 2.5em;
	border-left:1px solid #ccc;
}
.scrolling-container .column p{}
.scrolling-container .column p + p{
	margin-right:1.5em;
}
.scrolling-container .column .images{
	margin:0 1.5em;
}
.scrolling-container .column img{
	height:100%;
	object-fit:cover;
}
.scrolling-container .column .host{
	font-weight:600;
}
.scrolling-container .column .owner{
	text-indent:1em;
}
.scrolling-container .column .owner-label{
	font-weight:600;
	margin-bottom:1.0em;
}
.scrolling-container .column .remarks{
	font-size:1.25rem;
	padding-left:1.0em;
}
.scrolling-container .column .dash{}
.scrolling-container .column .dash::before{
	content:"";
	display:inline-block;
	width:1px;
	height:2em;
	background:#222;
	margin-bottom:0.25em;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.scrolling-container .column{
		position:relative;
		display:flex;
		flex-direction:column;
		column-count:1;
	}
	.scrolling-container .column > p{
		writing-mode:vertical-rl;
	}
	.scrolling-container .column .images{
		width:120vw;
		margin:0 2.5em;
	}
	.scrolling-container .column .sp-upright-symbol{
		text-orientation: mixed;
	}
}

/* scroll-guide */

.scrolling-container .scroll-guide{
	display:none;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.scrolling-container .scroll-guide{
		position:absolute;
		top:50%;
		left:20vw;
		transform:translate(-50%, -50%);
		display:block;
		/**/
		white-space:normal;
		writing-mode:horizontal-tb;
		text-orientation:mixed;
		font-feature-settings:normal;
		/**/
		animation:scroll-guide_hide 4.5s ease-in-out forwards;
	}
	.scrolling-container .column-gallery-panel:first-child .scroll-guide{
		left:calc(20vw + 1.5em);
	}
	.scrolling-container .scroll-guide > div{
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		background:rgba(0,0,0,0.8);
		width:5.0em;
		height:5.0em;
		border-radius:50%;
		opacity:0;
		animation:scroll-guide_move 1.5s ease-in-out infinite, scroll-guide_ball 1.5s linear infinite;
	}
	.scrolling-container .scroll-guide span{
		color:#fff;
		font-family:"Roboto", sans-serif;
		font-size:1.05rem;
		font-weight:700;
		line-height:1;
		letter-spacing:0.08em;
		white-space:nowrap;
		padding-top:0.55em;
	}
}
@keyframes scroll-guide_hide{
	0%		{opacity:1;}
	80%		{opacity:1;}
	100%	{opacity:0;}
}
@keyframes scroll-guide_move{
	0%		{left:0em;}
	100%	{left:5.5em;}
}
@keyframes scroll-guide_ball{
	0%		{opacity:0.0;}
	20%		{opacity:1.0;}
	65%		{opacity:1.0;}
	90%		{opacity:0.0;}
	100%	{opacity:0.0;}
}

/* column-auto */

.scrolling-container .column-auto{
	column-count:auto;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.scrolling-container .column-auto .images{
		margin:0 1.5em;
	}
}

/* column-main-panel */

.scrolling-container .column-main-panel{
	writing-mode:horizontal-tb;
	column-gap:0;
	display:flex;
	justify-content:center;
	align-items:center;
	flex:0 0 80vw;
	border-left:none;
	padding:0;
}
.scrolling-container .column-main-panel .images{
	position:relative;
	flex:0 0 60%;
	height:100%;
	padding:0;
	margin:0;
}
.scrolling-container .column-main-panel .images img{
	object-fit:cover;
	width:100%;
	height:100%;
}
.scrolling-container .column-main-panel div.caption{
	position:absolute;
	left:1.25em;
	bottom:1.25em;
	display:inline-block;
	background:#fff;
	padding:1.25em 1.5em;
}
.scrolling-container .column-main-panel div.caption p{
	font-size:1.25rem;
	font-weight:600;
}
.scrolling-container .column-main-panel .title{
	flex:1;
	display:flex;
	justify-content:center;
	align-items:center;
	padding-right:5.5em;
}
.scrolling-container .column-main-panel .title h1{
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:2.25rem;
	font-weight:400;
	line-height:2.2;
	letter-spacing:0.15em;
	writing-mode:vertical-rl;
	text-orientation:upright;
	font-feature-settings:"pwid";
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.scrolling-container .column-main-panel{
		position:relative;
		flex:0 0 120vw;
	}
	.scrolling-container .column-main-panel .images{
		flex:0 0 100%;
		width:100%;
		padding:0;
		margin:0;
	}
	.page-aboutus .scrolling-container .column-main-panel .images img{
		object-position:80% 50%;
	}
	.scrolling-container .column-main-panel div.caption{
		left:auto;
		right:0;
		bottom:0;
		background:rgba(0,0,0,0.8);
		padding:0.65em 0.85em;
	}
	.scrolling-container .column-main-panel div.caption p{
		color:#fff;
		font-size:1.1rem;
		line-height:1.65;
	}
	.scrolling-container .column-main-panel .title{
		position:absolute;
		top:2.0em;
		right:2.0em;
		z-index:1;
		flex:none;
		padding:0;
		margin:0;
	}
	.scrolling-container .column-main-panel .title h1{
		background:#fff;
		font-size:1.65rem;
		line-height:1.65;
		padding:1.5em 0.55em;
	}
}

/* column-last-index-panel */

.scrolling-container .column-last-index-panel{
	writing-mode:horizontal-tb;
	column-gap:0;
	display:flex;
	justify-content:center;
	align-items:center;
	flex:0 0 auto;
	border-left:none;
	padding:1.5em 15.0em;
}
.scrolling-container .column-last-index-panel div.inner{}
.scrolling-container .column-last-index-panel div.title{
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-weight:400;
}
.scrolling-container .column-last-index-panel div.title h2{
	font-size:2.65rem;
	font-weight:400;
	line-height:1;
	letter-spacing:0.05em;
	margin-bottom:1.0em;
}
.scrolling-container .column-last-index-panel div.body{}
.scrolling-container .column-last-index-panel div.body ul.menu{}
.scrolling-container .column-last-index-panel div.body ul.menu > li{
	padding:0.65em 0;
}
.scrolling-container .column-last-index-panel div.body ul.menu > li a{
	display:flex;
	align-items:baseline;
	width:30em;
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:1.65rem;
	font-weight:400;
}
.scrolling-container .column-last-index-panel div.body ul.menu > li a p.no{
	flex-shrink:0;
	font-size:1.25rem;
}
.scrolling-container .column-last-index-panel div.body ul.menu > li a p.name{
	flex:0 0 20em;
}
.scrolling-container .column-last-index-panel div.body ul.menu > li a span.line{
	width:100%;
	height:1px;
	background:#ccc;
	margin:0 1.5em;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.scrolling-container .column-last-index-panel{
		padding:1.5em 2.5em;
	}
	.scrolling-container .column-last-index-panel div.body ul.menu > li a{
		width:auto;
	}
	.scrolling-container .column-last-index-panel div.body ul.menu > li a span.line{
		width:2.0em;
		flex:0 0 2.0em;
	}
}

/* column-gallery-panel */

.scrolling-container .column-gallery-panel{
	flex:0 0 auto;
	height:100%;
	width:max-content;
	column-count:auto;
}
.scrolling-container .column-gallery-panel .images{
	height:100%;
	width:max-content;
}
.scrolling-container .column-gallery-panel .images img{
	max-width:none;
	width:auto;
	height:100%;
}
.scrolling-container .column-gallery-panel:first-child{
	padding:0;
	padding-left:calc(2.5em + 1.5em);
}
.scrolling-container .column-gallery-panel:first-child .images{
	margin:0;
}


/* column-gallery-block */

.scrolling-container .column-gallery-block{
	flex:0 0 auto;
	height:100%;
	width:max-content;
	column-count:auto;
}
.scrolling-container .column-gallery-block .gallery-grid{
	display:flex;
	flex-wrap:wrap;
	height:100%;
	width:max-content;
	gap:0 2.5%;
	padding:2.5% 0;
	margin:0 1.5em;
}
.scrolling-container .column-gallery-block .images{
	margin:0 1.5em;
}
.scrolling-container .column-gallery-block .gallery-grid > div{
	flex:0 0 auto;
	height:calc((100% - (2.5% * 2)) / 3);
	aspect-ratio:2010 / 1320;
}
.scrolling-container .column-gallery-block .gallery-grid > div:nth-child(n+4){
	margin-right:2.5%;
}
.scrolling-container .column-gallery-block .gallery-grid > div > a{
	display:block;
	width:100%;
	height:100%;
}
.scrolling-container .column-gallery-block .gallery-grid a img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	filter:grayscale(1);
}
.scrolling-container .column-gallery-block .gallery-grid a:hover img{
	filter:none;
}

/* partition-policy */

.scrolling-container .partition-policy{
	flex:0 0 auto;
	display:flex;
	flex-direction:column;
	justify-content:space-around;
	align-items:center;
	writing-mode:horizontal-tb;
	padding:4.5em 4.5em 8.0em 4.5em;
}
.scrolling-container .partition-policy h2{
	font-family:"Italianno", cursive;
	font-size:10.5rem;
	font-weight:400;
	line-height:1;
	transform:rotate(-10deg);
}
.scrolling-container .partition-policy h3{
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:2.25rem;
	font-weight:400;
	line-height:2;
	letter-spacing:0.25em;
	writing-mode:vertical-rl;
	text-orientation:upright;
	font-feature-settings:"pwid";
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.scrolling-container .partition-policy h2{
		font-size:6.5rem;
	}
	.scrolling-container .partition-policy h3{
		font-size:1.8rem;
	}
}

/* partition-company */

.scrolling-container .partition-company{
	writing-mode:horizontal-tb;
	flex:0 0 auto;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:1.5em 15.0em;
}
.scrolling-container .partition-company > div.inner{
	display:flex;
	flex-direction:row-reverse;
}
.scrolling-container .partition-company h2{
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:2.65rem;
	font-weight:500;
	line-height:1;
	letter-spacing:0.20em;
	writing-mode:vertical-rl;
	text-orientation:upright;
	font-feature-settings:"pwid";
	margin-left:4.5rem;
}
.scrolling-container .partition-company table{
	font-size:1.35rem;
	border-spacing:0;
	padding:2.5rem 0;
}
.scrolling-container .partition-company table tr{
	border-bottom:1px dotted #ccc;
}
.scrolling-container .partition-company table th{
	font-weight:600;
}
.scrolling-container .partition-company table th,
.scrolling-container .partition-company table td{
	vertical-align:middle;
	padding:0.40em 2.0em;
}


/*******************************
/* #hero
*******************************/

#hero{
	display:flex;
	height:100%;
}
#hero > div.lead{
	order:2;
	display:flex;
	flex:1;
}
#hero > div.cover{
	order:1;
	flex:0 0 clamp(660px, 70%, 75%);
}
#hero p.catch{
	order:2;
	font-family:"Hina Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:4.25vh;
	font-weight:400;
	line-height:2;
	letter-spacing:0.20em;
	white-space:nowrap;
	writing-mode:vertical-rl;
	text-orientation:upright;
	font-feature-settings:"pwid";
}
#hero p.catch > span{
	display:block;
}
#hero p.desc{
	order:1;
	font-size:1.65rem;
	line-height:2.5;
	writing-mode:vertical-rl;
	text-orientation:upright;
	font-feature-settings:"pwid";
	margin:0 6.5% 0 12.5%;
}
#hero p.desc > span{
	display:block;
}
#hero p.desc i.dash{}
#hero p.desc i.dash::before{
	content:"";
	display:inline-block;
	width:1px;
	height:2em;
	background:#222;
	margin-bottom:0.25em;
}
#hero > div.cover{
	position:relative;
}
#hero > div.cover > div.policy{
	position:absolute;
	right:-2em;
	bottom:0.5em;
	z-index:1;
}
#hero > div.cover > div.policy p{
	font-family:"Italianno", cursive;
	font-size:12.5rem;
	font-weight:400;
	line-height:1;
	transform:rotate(-10deg);
}
#hero > div.cover > div.video,
#hero > div.cover > div.video figure{
	position:relative;
	width:100%;
	height:100%;
	overflow:hidden;
}
#hero > div.cover > div.video figure video{
	position:absolute;
	top:50%;
	left:50%;
	transform:translateX(-50%) translateY(-50%);
	width:100%;
	height:100%;
	object-fit:cover;
}
#hero > div.cover > div.video div.loading{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	z-index:-1;
}
#hero > div.cover > div.video div.loading > span{
	font-family:"Roboto", sans-serif;
	font-size:1.45rem;
	font-weight:700;
	letter-spacing:0.05em;
	opacity:0;
	animation:loading-flash 1.5s linear infinite;
}
@keyframes loading-flash{
	0%		{opacity:0.5;}
	50%		{opacity:0.2;}
	100%	{opacity:0.5;}
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	#hero{
		position:relative;
		flex-wrap:wrap;
		height:auto;
		border-bottom:1px solid #ccc;
		padding-bottom:6.5em;
		margin-bottom:1.5em;
	}
	#hero > div.lead{
		flex-wrap:wrap;
		justify-content:center;
		flex:0 0 100%;
		padding:3.5em 1.0em 0 0;
	}
	#hero > div.cover{
		flex:0 0 100%;
	}
	#hero p.catch{
		font-size:2.2rem;
	}
	#hero p.catch > span{
		display:block;
	}
	#hero p.desc{
		font-size:1.45rem;
		margin:0 1.5em 0 0;
	}
	#hero > div.cover{
		position:initial;
		height:50vh;
	}
	#hero > div.cover > div.policy{
		right:auto;
		left:4.5em;
		bottom:2.5em;
	}
	#hero > div.cover > div.policy p{
		font-size:5.5rem
	}
}

/* m
=========================================== */
/* a.m-underline-01 */

a.m-underline-01{
	background-image:linear-gradient(0deg, #000, #000);
	background-repeat:no-repeat;
	background-position:100% 100%;
	background-size:0 1px;
	padding:0.3em 0;
}
@media (hover: hover) and (pointer: fine){
	a.m-underline-01{
		transition:background-size 0.4s;
	}
	a.m-underline-01:hover{
		opacity:1;
		background-position:0 100%;
		background-size:100% 1px;
	}
}
a.m-underline-01.this{
	background:#000;
	color:#fff;
}

/* modal
=========================================== */

.js-scrolling-column-xaxis{
	overflow-x:auto;
	user-select:none;
	scroll-behavior:auto !important;
}

/* js-modal */

.js-modal-open{
	cursor:pointer;
}
.js-modal-fade-in{
	opacity:0;
	animation:JsModalFadeIn 0.5s forwards;
}
.js-modal-fade-out{
	opacity:1;
	animation:JsModalFadeOut 0.5s forwards;
}
@keyframes JsModalFadeIn{
	to{
		opacity:1;
	}
}
@keyframes JsModalFadeOut{
	to{
		opacity:0;
	}
}
div.js-modal{
	position:fixed;
	top:0;
	left:0;
	z-index:2000;
	display:none;
	width:100%;
	height:100vh;
	font-size:1.6rem;
	line-height:1.8;
}
div.js-modal > div.js-modal-overlay{
	position:absolute;
	background:rgba(0,0,0,0.8);
	width:100%;
	height:100vh;
}
div.js-modal > div.js-modal-body{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	background:#fff;
	max-width:680px;
	width:calc(100% - 1.5em);
	padding:6.5rem 1.0em;
}
div.js-modal > div.js-modal-body > button.close{
	position:absolute;
	top:1.0rem;
	right:1.5em;
	border:0;
	background:transparent;
	padding:0;
	cursor:pointer;
}
div.js-modal > div.js-modal-body > button.close > span{
	font-family:"Roboto", sans-serif;
	font-size:1.1rem;
	font-weight:700;
}
div.js-modal > div.js-modal-body > button.close:focus-visible{
	outline:3px solid #2271b1;
	outline-offset:4px;
}
div.js-modal > div.js-modal-body > div.js-modal-body-part{}

/* modal-container-contact */

.modal-container-contact{
	text-align:center;
}
.modal-container-contact h2{
	font-family:"Roboto", sans-serif;
	font-size:2.0rem;
	font-weight:600;
	line-height:1.75;
}
.modal-container-contact div.logo{}
.modal-container-contact div.logo img{
	display:block;
	width:280px;
	margin:0 auto;
}
.modal-container-contact div.text{
	margin-top:2.5rem;
}
.modal-container-contact div.text p{
	font-family:"Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	font-size:1.55rem;
	font-weight:700;
}
.modal-container-contact div.contact{
	display:flex;
	justify-content:center;
	margin:1.5rem 0 2.0rem 0;
}
.modal-container-contact div.contact p{
	display:flex;
	align-items:center;
	font-family:"Roboto", sans-serif;
	line-height:1;
	padding:0 2.0rem;
}
.modal-container-contact div.contact p > i{
	display:flex;
	justify-content:center;
	align-items:center;
	background:#000;
	color:#fff;
	font-size:1.45rem;
	font-weight:500;
	line-height:1;
	padding:0.35em 1.25em;
	margin-right:0.5em;
}
.modal-container-contact div.contact p >  span{
	font-size:2.25rem;
	font-weight:600;
}
.modal-container-contact div.about{
	text-align:center;
}
.modal-container-contact div.about > div{
	display:inline-block;
	text-align:left;
}
.modal-container-contact div.about p{
	font-family:"Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
	line-height:2.5;
	text-align:center;
}
.modal-container-contact div.about p.name{
	font-size:1.55rem;
	font-weight:700;
}
.modal-container-contact div.about p.address{
	font-size:1.40rem;
	font-weight:600;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.modal-container-contact div.text p{
		font-size: 1.25rem;
	}
	.modal-container-contact div.contact{
		flex-wrap:wrap;
	}
	.modal-container-contact div.contact a{
		text-decoration:none;
	}
	.modal-container-contact div.contact p + p{
		margin-top:0.65em;
	}
	.modal-container-contact div.contact p > i{
		width:4.5em;
		padding:0.35em 0;
	}
	.modal-container-contact div.about p.name{
		font-size: 1.25rem;
	}
	.modal-container-contact div.about p.address{
		font-size: 1.15rem;
	}
}

/*******************************
/* nav-control
*******************************/

#js-nav-control{}
.nav-control,
.nav-control span{
	display:none;
}
.nav-control{
	position:fixed;
	top:0.65em;
	top:calc( 5vh - (50px / 2) );
	left:0.65em;
	width:50px;
	height:50px;
	border:0;
	background:transparent;
	padding:0;
	cursor:pointer;
}
.nav-control:focus-visible{
	outline:3px solid #2271b1;
	outline-offset:2px;
}
.nav-control span{
	background:#000;
	position:absolute;
	left:25%;
	width:50%;
	height:2px;
}
.nav-control span:nth-of-type(1){top:calc(30% + 2px);}
.nav-control span:nth-of-type(2){top:50%;}
.nav-control span:nth-of-type(3){bottom:30%;}
.nav-open .nav-control span:nth-of-type(1){
	transform:translateY(8px) rotate(-45deg);
}
.nav-open .nav-control span:nth-of-type(2){
	display:none;
}
.nav-open .nav-control span:nth-of-type(3){
	transform:translateY(-8px) rotate(45deg);
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.nav-control,
	.nav-control span{
		display:block;
		transition:all 0.4s;
		z-index:999;
		line-height:1;
	}
}

/*******************************
/* GLightbox
*******************************/

.glightbox-container .ginner-container{
	padding:10%;
}
/* mobile, 600px 以下 */
@media not all and (min-width: 600px){
	.glightbox-container .ginner-container{
		padding:0;
	}
}
