@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;700;900&display=swap');


@font-face {
	font-family:'CGothic';
	src:url('images/fonts/CGothic.ttf') format('truetype');
}
@font-face {
	font-family:'CSerif';
	src:url('images/fonts/CSerif.ttf') format('truetype');
}



@-webkit-keyframes blink {
	0%{opacity:0.5;} 100%{opacity:1;}
}
@keyframes blink{
	0%{opacity:0.5;} 100%{opacity:1;}
}
.blink {
	animation:blink 1s ease alternate;
	-webkit-animation:blink 0.5s ease infinite alternate;
}



/* ==========================================================================================================================================
	var setting
=========================================================================================================================================== */
* {
	--fontFamily-body:'Noto Serif JP' ,serif;
	--fontFamily-sans:'Noto Sans JP' ,sans-serif;
	--fontFamily-serif:'Noto Serif JP' ,serif;
	--fontFamily-CGothic:'CGothic' ,'Murecho' ,sans-serif;
	--fontFamily-CSerif:'CSerif' ,'Noto Serif JP' ,serif;

	--fontFamily-em:'CSerif' ,'Noto Serif JP' ,serif;

	--body-line-height:2;
	--body-letter-spacing:0.1em;
	--body-color:#543;
	--body-background:url(images/common/bg.webp) 50% 0;

	--img-border:1px solid #dcb;
}

@media screen and (min-width:800px) { 
	* {
		--font-size:18px;
	}
}
@media screen and (max-width:799px) { 
	* {
		--font-size:16px;
	}
}





/* ==========================================================================================================================================
	CSS reset
=========================================================================================================================================== */
* {
	box-sizing:border-box;
	text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
}
html ,body ,div ,p ,span ,iframe ,a ,img ,
h1 ,h2 ,h3 ,h4 ,h5 ,h6 ,
dl ,dt ,dd ,ol ,ul ,li ,
form ,label ,
table ,thead ,tbody ,tfoot ,tr ,th ,td ,
strong ,em ,small ,blockquote ,q ,pre ,
header ,footer ,nav ,article ,section ,aside {
	margin:0;
	padding:0;
	border:0 none;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	font-style:inherit;
	text-decoration:none;
	vertical-align:baseline;
}
th ,td {
	vertical-align:middle;
}
button ,input ,textarea ,select {
	font-size:var(--font-size);
	letter-spacing:1px;
	font-family:var(--fontFamily-body);
	max-width:100%;
}
button ,
input[type='submit'] {
	padding:0.3em 1.5em;
}

html ,body {
	min-height:100%;
}
a ,a:link ,a:visited {
	color:#c93;
	text-decoration:none;
}
a ,a:before ,a:after {
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
}
@media screen and (min-width:800px) { 
	a:hover {
		color:#c00;
		text-decoration:none;
	}
}

img {
	vertical-align:bottom;
	max-width:100%;
	backface-visibility:hidden;
	-webkit-backface-visibility:hidden;
}
ol ,ul ,li {
	list-style:none;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
blockquote ,q {
	quotes:none;
}
blockquote:before ,blockquote:after
,q:before ,q:after {
	content:'';
	content:none;
}
header ,main ,footer ,nav ,article ,section ,aside {
	position:relative;
	display:block;
}

/* ============================================================================================
	cleafix
============================================================================================ */
.clearfix:after {
	display:block;
	clear:both;
	height:0px;
	line-height:0px;
	visibility:hidden;
	content:".";
}
.clearfix {
	display: block; /* for IE8 */
	zoom: 1; 
}



/* ============================================================================================
	flex
============================================================================================ */
.flex {
	display:flex;
	justify-content:center;
	align-items:center;
}
.flex.left {
	justify-content:flex-start;
}
.flex.right {
	justify-content:flex-end;
}
.flex.between {
	justify-content:space-between;
}
.flex.around {
	justify-content:space-around;
}
.flex.evenly {
	justify-content:space-evenly;
}

.flex.top {
	align-items:flex-start;
}
.flex.bottom {
	align-items:flex-end;
}
.flex.stretch {
	align-items:stretch;
}

.flex.column {
	flex-direction:column;
}
.flex.rev {
	flex-direction:row-reverse;
}
.flex.column.rev {
	flex-direction:column-reverse;
}

.flex.wrap {
	flex-wrap:wrap;
}

.flex.col2 > * {
	width:calc(100% / 2);
}
.flex.col3 > * {
	width:calc(100% / 3);
}
.flex.col4 > * {
	width:calc(100% / 4);
}


.flex > .half {
	width:50%;
}
.flex > .full {
	width:100%;
}

.height-inherit > * {
	height:100%;
}
.height-inherit-all * {
	height:100%;
}





/* ============================================================================================
	common
============================================================================================= */
@media screen and (min-width:800px) { 
	.dispSP {
		display:none !important;
	}
}
@media screen and (max-width:799px) { 
	.dispPC {
		display:none !important;
	}
}

.noDisp {
	display:none;
}


/* ==============================================
	common - style
=============================================== */
.anchorLink {
	cursor:pointer;
}

em {
	color:#f06;
}
.strong {
	color:#f06;
	font-size:120%;
}

small {
	color:#333;
	font-size:90%;
}

.center {
	text-align:center;
}
.ellipsis {
	overflow:hidden;
	white-space:nowrap;
	text-overflow:ellipsis;
	-webkit-text-overflow:ellipsis;
}

.line-clamp {
	display:-webkit-box;
	overflow:hidden;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:1;
}
.line-clamp.l2 {
	-webkit-line-clamp:2;
}
.line-clamp.l3 {
	-webkit-line-clamp:3;
}

.noBorder {
    border:0 none !important;
}

.sendIP {
	padding-top:3em;
	color:#999;
	font-size:80%;
	text-align:right;
}

.notice {
	padding:0 2em 2em;
}
.notice img {
	border:var(--img-border);
}
@media screen and (max-width:799px) { 
	.notice {
		padding:0 1em 1.5em;
	}
}


/* ==============================================
	common - title
=============================================== */
.title {
	padding-bottom:4em;
}
.title > .flex {
	flex-direction:column;
	text-align:center;
}
.title > .flex > .en {
	width:100%;
	font-size:180%;
	font-family:var(--fontFamily-em);
	border-bottom:var(--img-border);
}
.title > .flex > .ja {
	width:100%;
}


.title.sub > .flex > .jp {
	font-size:120%;
}

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


/* ==============================================
	common block
=============================================== */
.contentsSection {
}
.pageHeader + .contentsBloc {
	padding-top:8em;
}

.contentsBloc {
	padding-bottom:8em;
}


.infoBox {
	width:100%;
	padding:1.5em 2em;
	border:var(--img-border);
}
.infoBox p + p {
	padding-top:1em;
}

.noData {
	width:100%;
	min-height:20em;
	padding-top:5em;
	color:#666;
	text-align:center;
}


/* ==============================================
	common - list
=============================================== */
.commonList {
	text-align:center;
	padding-bottom:2em;
}


@media screen and (max-width:799px) {
	.infoBox {
		padding:1em;
	}
}



/* ==============================================
	common - table
=============================================== */
.commonTable {
	width:100%;
	max-width:1000px;
	margin:0 auto;
	border:1px solid #ddd;
}

.commonTable th ,
.commonTable td {
	padding:1em 2em;
	border-bottom:1px solid #ddd;
}

.commonTable th{
	background:#fdfafa;
	white-space:nowrap;
}
.commonTable td {
	text-align:left;
}

@media screen and (max-width:799px) { 
	.commonTable {
		max-width:96%;
	}
	.commonTable th ,
	.commonTable td {
		padding:0.5em 1em;
	}

}



/* ==============================================
	instagram
=============================================== */
.instaImages {
	padding:0 1em 2em;
	display:flex;
	justify-content:flex-start;
	align-items:stretch;
	flex-wrap:wrap;
}
.instaImages > div {
	width:calc(100% / 3);
	padding:3px;
}
.instaImages > div:nth-child(n + 10) {
	display:none;
}
.instaImages > div > a {
	position:relative;
	display:block;
	overflow:hidden;
}
.instaImages > div > a > img ,
.instaImages > div > a > video {
	width:100%;
	aspect-ratio:1/1;
	object-fit:cover;
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
}
.instaImages > div.video > a:after {
	content:"";
	position:absolute;
	top:0;
	right:0;
	display:block;
	width:25%;
	aspect-ratio:1/1;
	background:url(images/icons/instagram_reel_w.png) 50% 50% no-repeat;
	background-size:contain;
	filter:drop-shadow(0 0 3px #666);
	z-index:10;
}
.instaImages > div > a > span {
	position:absolute;
	bottom:-100%;
	left:0;
	right:0;
	display:block;
	overflow:hidden;
	display: -webkit-box;
	text-overflow:ellipsis;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:8;
	max-height:65%;
	padding:0.3em 1em;
	line-height:1.6;
	font-size:75%;
	letter-spacing:0;
	text-align:justify;
	color:#000;
	background:rgba(255,255,255,0.9);
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
}
.instaImages > div > a:hover > span {
	bottom:0;
}

.instaImages > div.noData {
	width:100%;
	text-align:center;
	padding:3em 0;
	font-size:90%;
	color:#666;
}

@media screen and (min-width:800px) {
	.instaImages > div {
		width:calc(100% / 4);
	}
	.instaImages > div:nth-child(n + 9) {
		display:none;
	}
	.instaImages > div > a:hover > img ,
	.instaImages > div > a:hover > video {
		opacity:0.8;
	}

}



/* ==========================================================================================================================================
	body
=========================================================================================================================================== */
body {
	position:relative;
	font-size:var(--font-size);
	line-height:var(--body-line-height);
	letter-spacing:var(--body-letter-spacing);
	color:var(--body-color);
	background:var(--body-background);
	font-family:var(--fontFamily-body);
}

.bgLayer {
	margin:0 auto;
}

.innerFrame {
	width:1200px;
	margin:0 auto;
}

@media screen and (min-width:800px) { 
	.bgLayer {
		min-width:1200px;
		max-width:1920px;
	}
}
@media screen and (max-width:799px) { 
	.bgLayer {
		width:480px;
		overflow:hidden;
	}
	.innerFrame {
		width:100%;
	}
}

header {
	z-index:2;
}
main {
	z-index:1;
}


/* ============================================================================================
	header
============================================================================================= */
/* ==============================================
	header - h1
=============================================== */
.headerH1 {
	position:absolute;
	z-index:5;
	top:1em;
	right:1em;
	color:#fff;
	text-align:right
}
.headerH1 h1 {
	font-size:80%;
	font-weight:bold;
}


/* ==============================================
	header - logo
=============================================== */
.headerLogo {
	position:absolute;
	z-index:5;
	top:1em;
	left:6em;
	width:8em;
}
.headerLogo a {
	display:block;
}

@media screen and (min-width:800px) { 
	.headerLogo a:hover {
		opacity:0.9;
	}
}

@media screen and (max-width:799px) {
	.headerLogo {
		top:0;
		left:4em;
	}
}


/* ==============================================
	page header
=============================================== */
.pageHeader {
	position:relative;
}
.pageHeader-image img {
	width:100%;
	height:30em;
	object-fit:cover;
	object-position:0 65%;
}
.pageHeader-caption {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	display:flex;
	justify-content:center;
	align-items:center;
}
.pageHeader-caption .h-frame{
	padding:0.5em 2em;
	background:linear-gradient( 90deg ,rgba(0,0,0,0) ,rgba(0,0,0,0.6) 20% ,rgba(0,0,0,0.8) 50% ,rgba(0,0,0,0.6) 80% ,rgba(0,0,0,0) );
}
.pageHeader-caption h2 {
	padding:0.3em 2em;
	line-height:1.2;
	color:#fff;
	text-shadow:2px 2px 0 #000,0 0 0.5em #000;
	display:flex;
	align-items:baseline;
	border-bottom:2px solid #fff;
}
.pageHeader-caption h2 .en {
	display:block;
	font-size:420%;
	font-family:var(--fontFamily-CSerif);
}
.pageHeader-caption h2 .ja {
	display:block;
	padding-left:1em;
	font-size:150%;
	font-weight:bold;
}


@media screen and (max-width:799px) {
	.pageHeader-image img {
		height:20em;
	}

	.pageHeader-caption h2 {
		flex-direction:column;
		align-items:center;
	}
	.pageHeader-caption h2 .en {
		font-size:360%;
	}
	.pageHeader-caption h2 .ja {
		padding-left:0;
		font-size:130%;
	}
}



/* ============================================================================================
	navigation
============================================================================================= */
#headerNav {
	position:fixed;
	top:0;
	left:-101%;
	width:100%;
	height:100%;
	z-index:10010;
	transition: all 0.5s ease;
	-webkit-transition: all 0.5s ease;
	display:flex;
}
#headerNav .navMenuBloc {
	padding:1em;
	background:rgba(255,255,255,0.95);
	box-shadow:0 3px 5px #999;
}

#headerNav .pageLink {
	flex-direction:column;
}
#headerNav .pageLink > * {
	width:auto;
	padding:0.5em 0;
}
#headerNav .pageLink > * > * {
	padding-right:3em;
}

#headerNav .navi-close {
}
#headerNav .navi-close img {
	cursor:pointer;
}

.navi-open #headerNav {
	left:0;
	backdrop-filter: blur(0.5em);
}

.shopMenu {
	padding-top:3em;
	text-align:center;
	font-size:90%;
}
.shopMenu .footerInfo-logo img{
	width:11em;
}


/* ============================================================================================
	last view
============================================================================================= */
.lv {
	width:100%;
	height:20em;
	background:url(images/common/lv_bg.webp) 50% 50% no-repeat;
	background-size:cover;
}
@media screen and (max-width:799px) {
	.lv {
		height:14em;
	}
}


#P-access .lv {
	display:none;
}



/* ============================================================================================
	footer
============================================================================================= */
footer {
}
#footerMain {
	padding:2em 0;
	color:#000;
	background:linear-gradient( 150deg ,#eee ,#fff ,#ddd );
}


/* ==============================================
	footer
=============================================== */
.footerInfo {
	text-align:center;
	padding:1em;
	padding:2em;
}
.footerInfo-logo {
	padding-bottom:1em;
}
.footerInfo-logo img {
	width:16em;
}

.footerInfo a.tellink {
	color:inherit;
}


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


/* ==============================================
	footer - navi
=============================================== */
.footerNavi .navMenu li {
	padding:0 1em;
}

.footerNavi .ja {
	display:none;
}

@media screen and (max-width:799px) { 
	.footerNavi .navMenu {
		flex-wrap:wrap;
		padding:0 1em;
	}
	.footerNavi .navMenu li {
		flex-wrap:wrap;
		padding:0.3em 1em;
	}
}



/* ==============================================
	footer - copyright
=============================================== */
#copyright {
	padding:1em 0;
	font-size:90%;
	text-align:center;
}
#copyright a {
	color:inherit;
}
#copyright a:hover {
	color:#f00;
	text-decoration:underline;
}


@media screen and (min-width:800px) { 

}




/* ==============================================
	sp menu off
=============================================== */
@media screen and (max-width:799px) { 
	.navMenu.flex > li.off {
		position:relative;
		pointer-events:none;
	}
	.navMenu.flex > li.off:before ,
	.navMenu.flex > li.off:after {
		content:"";
		position:absolute;
		top:0;
		left:0;
		display:block;
		width:100%;
		height:100%;
	}
	.navMenu.flex > li.off:before {
		background:rgba(0,0,0,0.6);
		z-index:2;
	}
	.navMenu.flex > li.off:after {
		content:"準備中";
		font-size:120%;
		color:#fff;
		letter-spacing:0.1em;
		text-indent:0.1em;
		font-family:var(--fontFamily-em);

		display:flex;
		justify-content:center;
		align-items:center;
		z-index:3;
	}
}



/* ==========================================================================================================================================
	home
=========================================================================================================================================== */




/* ==============================================
	home > header > slider
=============================================== */


#homeNews {
	min-height:6em;
	max-height:1100px;
	overflow:auto;
	padding:0.5em;
	border:var(--img-border);
	word-break:break-all;
	background:#fff;
}

#homeNews li {
	position:relative;
	padding:1em;
}
#homeNews li + li {
	border-top:1px dashed #90f;
}
#homeNews li .news_head {
	color:#f06;
	font-size:110%;
}
#homeNews li .news_time {
	color:#00f;
	font-size:80%;
}
#homeNews li .news_text strong {
	font-weight:bold;
}
#homeNews li .news_text p + p {
	padding-top:0;
}

@media screen and (max-width:799px) { 
	#homeNews li {
		padding:0.3em;
	}
}



/* ==========================================================================================================================================
	system
=========================================================================================================================================== */
.systemFrame {
	width:1000px;
	margin:0 auto;
}
.priceTop {
	padding-bottom:0.5em;
	text-align:center;
}
.priceTop p {
	font-size:120%;
}
.priceBottom {
	padding-top:0.5em;
	line-height:1.6;
}
.priceBottom p {
	font-size:80%;
}

@media screen and (max-width:799px) { 
	.systemFrame {
		width:96%;
	}
	.priceBottom {
		padding:0.5em 1em 0;
	}
}



/* ==============================================
	access
=============================================== */
.accessMap iframe {
	display:block;
	width:100%;
	height:480px;
}



/* ==========================================================================================================================================
	castlist
=========================================================================================================================================== */
.castList {
	display:flex;
	flex-wrap:wrap;
}
.castList > .castCell {
	width:calc(100% / 3);
	padding:0 1em 2em;
}

.castCell > a {
	position:relative;
	display:block;
	padding:2px;
	color:#963;
	border:var(--img-border);
}

.castCell .castImage {
	position:relative;
	display:block;
}
.castCell .castImage img {
	width:100%;
	aspect-ratio:600/800;
	object-fit:cover;
}

.castCell .castInfo {
	text-align:center;
}

.castCell .castName {
	padding:0.1em 0.5em;

	display: -webkit-box;
	text-overflow: ellipsis;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}
@media screen and (min-width:800px) { 
.castCell > a:hover {
	background:rgba(238,221,204,0.8);
	box-shadow:0 0 0.5em #db9;
}

}
@media screen and (max-width:799px) { 
	.castList {
		padding:0 1em;
	}
	.castList > .castCell {
		width:calc(100% / 2);
	}
}




/* ============================================================================================
	schedule
============================================================================================= */
#dateList.flex {
	padding-bottom:2em;
	text-align:center;
}
#dateList.flex > li {
	width:calc(100% / 7);
	padding:0 0.5em;
}
#dateList.flex > li > .label {
	padding:0.5em 0;
	font-weight:bold;
	color:#666;
	background:#fff;
	border:var(--img-border);
	cursor:pointer;
}
#dateList li.on > .label {
	color:#fff;
	background:linear-gradient( #f00 ,#900 );
}
#dateList li:not(.on):hover > .label {
	color:#333;
	background:#fccc;
}


@media screen and (max-width:799px) { 
	#dateList.flex > li {
		padding:0 0.1em;
	}
	#dateList.flex > li > .label {
		padding:0.5em 0;
		line-height:1.3;
	}
}





/* ==========================================================================================================================================
	event
========================================================================================================================================== */
.eventList {
	display:flex;
	flex-wrap:wrap;
}

.eventList li {
	width:50%;
	padding:0 1em 2em;
}

.eventCell {
	height: 100%;
	border:var(--img-border);
}

.eventCell-image {
	background:#fff;
}
.eventCell-image img {
	width:100%;
	aspect-ratio:1/1;
	object-fit:contain;
}

.eventCell-info {
	padding:2em 1em 1em;
	border-top:var(--img-border);
}

.eventCell-info-date {
	font-size:90%;
}
.eventCell-info-title {
	line-height:1.4;
}
.eventCell-info-title span {
	font-size:130%;
	font-weight:bold;
}
.eventCell-info-text {
	padding-top:1em;
	line-height:1.6;
}

@media screen and (max-width:799px) { 
	.eventList li {
		width:100%;
	}
}



/* ==========================================================================================================================================
	recruit
=========================================================================================================================================== */
.recruitImages {
	text-align:center;
}
.recruitImages li + li {
	padding-top:4em;
}
.recruitImages img {
	border:var(--img-border);
}
.recruitImages a {
	display:inline-block;
}
.recruitImages a img {
	border:0 none;
}
.recruitImages a:hover {
	opacity:0.75;
}


@media screen and (max-width:799px) { 
	.recruitImages li {
		padding-bottom:1.5em;
	}
}




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


/* ======================================================================================================
	form
====================================================================================================== */
#form {
	padding-top:2em;
}

.form-notes {
	width:100%;
	max-width:1000px;
	margin:0 auto;
	line-height:1.8;
	text-align:center;
}
.form-notes.wide {
	width:1200px;
}
.form-notes p + p {
	padding-top:1em;
}

.form-logo {
	max-width:20em;
	margin:0 auto;
	padding:2em 0;
}

.form-wrapper {
	padding:2em 0 6em;
}
#form-table {
	width:800px;
	max-width:100%;
	margin:0 auto;
	font-size:110%;
}


dl#form-table {
	width:100%;
	max-width:800px;
	margin:0 auto;
	display:flex;
	flex-wrap:wrap;
}

dl#form-table dt {
	width:32%;
	padding:0.3em 0 0;
	text-align:right;
	margin-bottom:1em;
}

dl#form-table dd {
	width:calc(100% - 32%);
	padding-left:1em;
	padding-top:0.3em;
	margin-bottom:1em;
}

.form-comment {
	padding-top:0.5em;
	font-size:110%;
}

.status2 dl#form-table dt {
	width:45%;
	margin-bottom:0.5em;
}
.status2 dl#form-table dd {
	width:calc(100% - 45%);
	margin-bottom:0.5em;
}

@media screen and (max-width:799px){
	.form-notes {
		padding:0 1.5em;
		text-align:left;
	}

	.form-header h1 {
		font-size:240%;
	}
	.form-wrapper dl {
		padding:0 0.5em;
		font-size:110%;
	}

	.form-wrapper {
		padding:0 0 3em;
	}

	.form-notes.wide p{
		padding-bottom:1em;
	}

	dl#form-table {
		width:90%;
	}
	dl#form-table dt {
		width:100%;
		text-align:left;
		margin-bottom:0.3em;
	}
	dl#form-table dd {
		width:100%;
		padding:0 1em 1em;
		border-bottom:1px dashed #ccc;
	}
}




/* ====================================================================
	form - optional / required
==================================================================== */
.optional,
.required{
	display:flex;
	justify-content:flex-end;
	align-items:center;
}
.optional:after,
.required:after{
	content:attr(data-text);
	display:inline-block;
	margin-left:0.5em;
	padding:0 0.3em;
	background-color:#f00;
	border-radius:0.3em;
	color:#fff;
	font-size:80%;
	line-height:1.6;
	white-space: nowrap;
}
.optional:after{
	background-color:#ccc;
	opacity:0;
}

@media screen and (max-width:799px){
	.optional,
	.required{
		flex-direction:row-reverse;
	}

	.optional:after{
		content:" ";
	}
	.required:after{
		margin-right:0.3em;
		padding:0.1em 0.3em 0.2em;
	}
}



/* ====================================================================
	form - field
==================================================================== */
input ,textarea{
	width:100%;
	-webkit-appearance:none; 
	appearance:none;
	border-radius:0.3em;
}
input[type='radio'] ,input[type='checkbox']{
	width:1em;
	height:1em;
	-webkit-appearance:auto; 
	appearance:auto;
}

input:not([type="submit"]) ,select{
	border:2px solid #999;
	padding:0.3em 0.5em;
	border-radius:0.3em;
}

.textarea-text{
	padding:2.5em 5em !important;
}

textarea{
	resize:none;
	height:8em;
	padding:0.5em;
	border:2px solid #999;
}

span.check {
	display:flex;
	justify-content:flex-start;
	align-items:center;
}
span.check > label {
	padding-left:0.3em;
}


.field-group.flex {
	justify-content:flex-start;
	flex-wrap:wrap;
}
.field-group.flex > * {
	margin-left:0.3em;
	margin-bottom:0.3em;
	justify-content:flex-start;
}

input[type="checkbox"],
input[type="radio"] {
	position:relative;
	width:20px;
	z-index:2;
}
input[type="checkbox"] + label ,
input[type="radio"] + label {
	position:relative;
	margin-left:-1.8em;
	padding:0.1em 1em 0.2em 2em;
	border-radius:0.3em;
	transition:all 0.1s ease;
	-webkit-transition:all 0.1s ease;
}
input[type="checkbox"] + label > span ,
input[type="radio"] + label > span {
	padding-left:0.3em;
}
input[type="checkbox"]:checked + label ,
input[type="radio"]:checked + label {
	color:#fff;
	background:#09f;
}


@media screen and (max-width:799px){
	input[type="submit"]{
		width:auto;
		padding:0.5em 1em;
	}

	input:focus ,textarea:focus{
		border:solid 2px #000000;
		outline:none;
		background-color:#99e5ff;
	}

	input:focus[type="submit"]{
		opacity:0.8;
		border:none;
		outline:none;
		background-color:#000f4c;
	}
}



/* ====================================================================
	form - button
==================================================================== */
.formButton{
	padding:2em 0;
	text-align:center;
}
input[type="submit"] ,.formButton a{
	width:auto;
	padding:0.5em 3em;
	line-height:1;
	font-size:120%;
	color:#333;
	background:linear-gradient(180deg, #fff, #eee);
	border:var(--img-border);
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
	cursor:pointer;
}
input[type="submit"]:hover ,.formButton a:hover {
	background:linear-gradient(180deg, #fed, #edc);
}

.formButton a{
	font-size:100%;
	border-radius:0.5em;
}

@media screen and (max-width:799px){
	.button-wrapper{
		padding:2em 7em 0;
	}
}


/* ====================================================================
	form - error
==================================================================== */
.error {
	margin:0.3em 0 0.5em;
	display:inline-block;
	padding:0.1em 0.6em;
	color:#f00;
	font-weight:500;
	border:1px solid #f00;
	border-radius:0.2em;
	font-size:90%;
}


/* ====================================================================
	form - custom
==================================================================== */
.form-10 .field-group.flex > * {
	width:32%;
}
.form-12 .field-group.flex > * {
	width:32%;
}





/* ==========================================================================================================================================
	profile
=========================================================================================================================================== */
.profileFrame.flex {
	width:1000px;
	margin:0 auto;
}

.profileFrame.flex > .profileImage {
	width:45%;
}
.profileFrame.flex > .profileInfo {
	flex-grow:1;
	padding-left:2em;
}

@media screen and (max-width:799px) { 
	.profileFrame.flex {
		width:96%;
		flex-direction:column-reverse;
	}
	.profileFrame.flex > .profileImage {
		width:90%;
		margin:0 auto;
	}
	.profileFrame.flex > .profileInfo {
		width:100%;
		padding:0 0 2em;
	}

}


/* ==============================================
	profle - image
=============================================== */
.profileFrame.flex > .profileImage {
	border:3px solid #fff;
	box-shadow:0.2em 0.2em 0 #edc ,0 0 0.5em #eca;
}

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


/* ==============================================
	profile - information
=============================================== */
.commonTable.profileTable {
	font-size:90%;
}
.commonTable.profileTable caption {
	padding-bottom:0.5em;;
}
.commonTable.profileTable caption span {
	font-size:150%;
}
.commonTable.profileTable th ,
.commonTable.profileTable td {
	padding:0.5em 1em;
}
.commonTable.profileTable th {
	width:50%;
}

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



/* ============================================================================================
	profile > guide(bottom)
============================================================================================= */
#profileGuideBottom {
	padding-top:5em;
	display:flex;
	justify-content:center;
	align-items:center;
}
#profileGuideBottom li {
	width:10em;
	line-height:3em;
	font-size:90%;
	text-align:center;
	border:var(--img-border);
	background-color:#fff;
}
#profileGuideBottom li a {
	display:block;
	color:#db9;
}

#profileGuideBottom li + li {
	border-left:0 none;
}

@media screen and (min-width:800px) { 
	#profileGuideBottom li a:hover {
		color:#c96;
		background-color:#fed;
	}
}



/* ==========================================================================================================================================
	index - fv
=========================================================================================================================================== */
body.lock {
	overflow-y:scroll;
}
body.lock .bgLayer{
	height:100vh;
	overflow:hidden;
}
#P-index header{
	opacity:0;
}

#FV {
	position:relative;
	width:100%;
}
.FV-image img {
	width:100%;
	height:100vh;
	object-fit:cover;
}


/* ==============================================
	FV Animation
=============================================== */
#homeOverlay {
	position:absolute;
	z-index:10;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:#000;
	display:flex;
	justify-content:center;
	align-items:center;
}

#catchLogo {
	position:relative;
	width:400px;
	aspect-ratio:1/1;
	margin:0 auto;
	background:rgba(0,0,0,0.5);
	overflow:hidden;
}
#catchLogo img {
	max-width:none;
	height:100%;
	aspect-ratio:1/1;
}

.fvOn #catchLogoSVG path{
	stroke:#c00;
	fill:transparent;
	stroke-width:0.5;
	stroke-dasharray:300;
	stroke-dashoffset:0;
	animation:DASH 2s ease-in 0s forwards;
	-webkit-animation:DASH 2s ease-in 0s forwards;
}
		@keyframes DASH	{ 0%{stroke-dashoffset:300;} 35%{stroke-dashoffset:0;} 50%{fill:transparent;} 100%{fill:#E60012;} }
@-webkit-keyframes DASH	{ 0%{stroke-dashoffset:300;} 35%{stroke-dashoffset:0;} 50%{fill:transparent;} 100%{fill:#E60012;} }


#catchLogoSVG2 ,
#catchLogoSVG3 {
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	overflow:hidden;
}

.fvOn #catchLogoSVG2 {
	width:0;
	animation:SIDE 3s linear 0.5s forwards;
	-webkit-animation:SIDE 3s linear 0.5s forwards;
}
		@keyframes SIDE	{ 20%{width:0;} 100%{width:100%;} }
@-webkit-keyframes SIDE	{ 20%{width:0;} 100%{width:100%;} }

.fvOn #catchLogoSVG3 {
	opacity:0;
	animation:FADE 2s linear 3s forwards;
	-webkit-animation:FADE 2s linear 3s forwards;
}
		@keyframes FADE	{ 20%{opacity:0;} 100%{opacity:1;} }
@-webkit-keyframes FADE	{ 20%{opacity:0;} 100%{opacity:1;} }


#homeOverlay {
	animation:BG 2s linear 0s forwards;
	-webkit-animation:BG 2s linear 0s forwards;
}
.fvOn #homeOverlay {
	animation-delay:5s;
	-webkit-animation-delay:5s;
}
		@keyframes BG	{ 20%{background:rgba(0,0,0,1);} 100%{background:rgba(0,0,0,0);} }
@-webkit-keyframes BG	{ 20%{background:rgba(0,0,0,1);} 100%{background:rgba(0,0,0,0);} }


@media screen and (max-width:799px) {
	#catchLogo {
		width:55%;
	}
	#catchLogoSVG {
		width:100%;
		aspect-ratio:1/1;
		display:flex;
	}
	#catchLogoSVG svg {
		height:100%;
	}
}


/* ============================================================================================
	index - concept
============================================================================================= */
.conceptList {
	padding-bottom:6em;
}
.conceptCell{
	padding-top:8em;
}

.conceptCell .innerFrame {
	display:flex;
	justify-content:center;
	flex-direction:column;
}
.conceptCell .innerFrame > .concept-image {
	width:65%;
	margin-right:-3em;
}
.conceptCell .innerFrame > .concept-image img{
	border: 1px solid #fff;
	box-shadow: -1px 1px 3px #999;
}
.conceptCell .innerFrame > .concept-text {
	width:70%;
	margin-left:auto;
	margin-bottom:-5em;
	padding:2em 2em 8em;
	border:var(--img-border);
	overflow:hidden;
}
.conceptCell .concept-text-h {
	padding:0 2em 1.5em;
}
.conceptCell .concept-text-h > * {
	font-size:160%;
	line-height:1.6;
}
.conceptCell .concept-text-p {
	padding:1.5em 2em 0;
	border-top:var(--img-border);
}
.conceptCell .concept-text-p > * {
}

.concept-separator {
	padding-top:8em;
}
.concept-separator img {
	width:100%;
	height:15em;
	object-fit:cover;
}

.conceptCell:nth-child(even) .innerFrame {
}
.conceptCell:nth-child(even) .innerFrame > .concept-image {
	margin-left:auto;
	margin-right:unset;
}
.conceptCell:nth-child(even) .innerFrame > .concept-text {
	margin-left:unset;
	margin-right:auto;
}

.conceptCell .innerFrame > .concept-text.concept-noimage {
	width:1000px;
	margin:0 auto;
	padding:1em;
	border:0 none;
	text-align:center;
}


@media screen and (max-width:799px) {
	.conceptList {
		padding-bottom:0;
	}
	.conceptCell{
		padding-top:6em;
		padding-bottom:6em;
	}

	.conceptCell .innerFrame {
		padding:0 1em;
		flex-direction:column-reverse;
	}
	.conceptCell .innerFrame > .concept-text {
		width:90%;
		margin-top:-6em;
		margin-left:auto;
		padding:8em 1em 1.5em;
	}
	.conceptCell .concept-text-h {
		padding:0 1em 1.5em;
	}
	.conceptCell .concept-text-p {
		padding:2em 1em 0;
	}

	.conceptCell:nth-child(even) .innerFrame {
		flex-direction:column-reverse;
	}
	.conceptCell:nth-child(even) .innerFrame > .concept-image {
		margin-left:auto;
		margin-right:unset;
	}
	.conceptCell:nth-child(even) .innerFrame > .concept-text {
		margin-left:unset;
		margin-right:auto;
		padding:8em 1em 1.5em;
	}



	.conceptCell .innerFrame > .concept-image {
		width:80%;
		margin-right:auto;
	}

	.concept-separator img {
		height:10em;
	}
	.conceptCell .innerFrame > .concept-text.concept-noimage {
		width:96%;
		text-align:left;
	}
}


/* ============================================================================================
	index - gallery
============================================================================================= */
.galleryFrame {
	width:1000px;
	margin:0 auto;
}
.spotlight-group {
	display:flex;
	flex-wrap:wrap;
}
.spotlight-group > * {
	width:calc(100% / 4);
	padding:0.5em;
}
.spotlight-cell {
	with:100%;
	aspect-ratio:1/1;
	overflow:hidden;
	cursor:pointer;
}
.spotlight-cell img {
	width:100%;
	aspect-ratio:1/1;
	object-fit:cover;
 	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
	outline:1px solid #999;
}

@media screen and (min-width:800px) {
	.spotlight-cell:hover img {
		transform:scale(1.1);
	}
}

@media screen and (max-width:799px) {
	.spotlight-group {
		padding:0 1em;
	}
	.spotlight-group > * {
		width:calc(100% / 2);
		padding:1em;

	}
}


/* ==============================================
	spotlight custom
=============================================== */
body #spotlight {
	background:rgba(255,255,255,0.8);
	backdrop-filter: blur(0.5em);
}
body #spotlight .header {
	height:60px;
}
body #spotlight .header div {
	width:80px;
	height:60px;
	padding-top:20px;
	opacity:0.7;
}
body #spotlight .icon {
	background-size:40px;
}
body #spotlight.show .scene img {
	border:3px solid #fff;
	box-shadow:5px 5px 10px #999;
}


/* ============================================================================================
	index - gallery2
============================================================================================= */
.gallery {
/*
	width:1000px;
*/
	margin:1em auto 0;
}
.gallery > li {
	width:50%;
	margin-top:-4em;
}
.gallery > li:nth-child(odd) {
	margin-left:2em;
	margin-right:auto;
}
.gallery > li:nth-child(even) {
	margin-left:auto;
	margin-right:2em;
}

.gallery .gallary-frame {
	border:2px solid #fff;
	box-shadow:3px 3px 0 #eca;
}
.gallery .gallary-frame img {
	width:100%;
	aspect-ratio:3/2;
	object-fit:cover;
}

@media screen and (max-width:799px) {
	.gallery {
		width:100%;
	}
	.gallery > li {
		width:70%;
		margin-top:-0.5em;
	}

}



/* ============================================================================================
	index - contents menu
============================================================================================= */
.pageLink {
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
}
.pageLink > * {
	width:calc(100% / 5);
	padding:0 1em;
}
.pageLink > * > * {
	height:100%;
	padding:0.3em 1em;
	border:1px solid #edc;
	display:flex;
	justify-content:center;
	align-items:flex-start;
	flex-direction:column;
}

.pageLink > * > .label {
	color:#000;
	text-shadow:1px 1px 2px #fff;
	font-size:120%;
	font-weight:bold;
	background:linear-gradient( 150deg ,#db9 ,#edc ,#db9 );
	align-items:center;
}
.pageLink a {
	position:relative;
	line-height:1.4;
	background:url(images/icons/arrow.png) 100% 50% no-repeat;
}
.pageLink a:before {
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:0;
	height:100%;
	background:rgba(238,221,204,0.4);
}
.pageLink a .en {
	font-size:130%;
	font-weight:bold;
}
.pageLink a .ja {
	padding-left:0.6em;
	font-size:70%;
}


@media screen and (min-width:800px) { 
	.pageLink a:hover {
		color:#000;
		text-shadow:1px 1px 0 #fff;
	}
	.pageLink a:hover:before {
		width:100%;
	}
}
@media screen and (max-width:799px) {
	.pageLink {
		flex-wrap:wrap;
		padding:0 0.5em;
	}
	.pageLink > * {
		width:calc(100% / 2);
		padding:0.5em;
	}
}


/* ============================================================================================
	common - contents menu
============================================================================================= */
#naviButton {
	position:fixed;
	top:1.5em;
	left:1.5em;
	cursor:pointer;
}
#naviButton .naviIcon {
	position:relative;
	width:3em;
	aspect-ratio:1/1;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
	gap:0.5em;
	transition: all 0.3s ease;
	-webkit-transition: all 0.3s ease;
	background:rgba(248,240,238,0.2);
	border:2px solid #ca8;
	border-radius:0.3em;
}
#naviButton .naviIcon > span ,
#naviButton .naviIcon:before ,
#naviButton .naviIcon:after {
	display:block;
	width:70%;
	height:3px;
	background:#ca8;
	border-radius:3px;
}
#naviButton .naviIcon:before ,
#naviButton .naviIcon:after {
	content:"";
}

@media screen and (min-width:800px) { 
	#naviButton .naviIcon:hover {
		background:#f8f0e8;
	}
}
@media screen and (max-width:799px) {
	#naviButton {
		top:0.5em;
		left:0.5em;
		cursor:pointer;
	}
}


