@charset "utf-8";

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


/* ==============================================
	fonts
=============================================== */
* {
	--base-fonts:'Mochiy Pop One',sans-serif;
	--title-fonts:'Caprasimo','Mochiy Pop One',sans-serif;
	--a-color:#06f;
	--a-hover-color:#f00;
}



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


/* ==============================================
	CSS reset
=============================================== */
* ,*:before ,*:after {
	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 ,
blockquote ,q ,pre ,
header ,footer ,nav ,article ,section ,aside {
	margin:0;
	padding:0;
	border:0 none;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	text-decoration:inherit;
	vertical-align:baseline;
}
button ,input ,textarea ,select {
	font-size:16px;
	padding:0.3em;
	letter-spacing:1px;
	font-family:var(--base-fonts);
}
input[type="submit"] ,button {
	padding:0.3em 1em;
}

html ,body {
	min-height:100%;
	height:100%;
    font-family:var(--base-fonts);
	line-height:1.6;
}
a,a:before,a:after {
	transition:all 0.3s ease;
    -webkit-transition:all 0.3s ease;
}
a:hover {
}
a.color {
	color:var(--a-color);
}
a.color:hover {
	color:var(--a-hover-color);
}


img {
	vertical-align:middle;
	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;
}

/*
.iframeOuter {
	overflow:auto;
	-webkit-overflow-scrolling:touch;
}
.iframeOuter > * {
	display:block;
	width:100%;
	height:100%;
	height:-webkit-fill-available;
}
*/

.noDisp {
	display:none;
}


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


/* ============================================================================================================================================
	common
============================================================================================================================================= */

/* ============================================================================================
	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.col5 > * {
	width:calc(100% / 5);
}


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

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




/* ============================================================================================
	attributes
============================================================================================= */
.center {
	text-align:center;
}


.sendIP {
	margin-top:1em;
	color:#999;
	font-size:xx-small;
	text-align:right;
}

.noticeInfo {
	color:#90f;
}
.noticeAlert {
	color:#f06;
}
.noticeLink {
}
.noticeLink a {
	color:#f06;
}
.noticeLink a:hover {
	text-decoration:underline;
}

.mBottom {
	margin-bottom:2em;
}

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

.aniFrame{
	display:inline-block;
	margin:auto;
	position:relative;
}
.animated{
	position:absolute;
	top:0;
	left:0;
	opacity:0;
}

.monochrome {
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
}




/* ============================================================================================
	flex
============================================================================================= */
.flex {
	display:flex;
	justify-content:center;
	align-items:center;
}
.flex.between {
	justify-content:space-between;
}
.flex.wrap {
	flex-wrap:wrap;
	align-items:stretch;
}



/* ============================================================================================
	titlebar
============================================================================================= */
.titleBar {
	width:100%;
	font-family:var(--title-fonts);
	text-align:center;
	color:#333;
	padding-bottom:3em;
}
.titleBar:not(.sub) > * {
	line-height:2;
	color:#000;
	background:#fec;
	border-radius:0.5em;
	border:5px solid #c60;
	box-shadow:0 0 0 3px #fff;
}
.titleBar:not(.sub) > * > span{
	font-size:200%;
}

.titleBar.sub {
	min-width:auto;
	padding-bottom:1em;
}
.titleBar.sub > * {
	padding:1em 0;
	text-shadow:1px 1px 0 #fff;
	color:#000;
	border-bottom:3px solid #666;
	border:0 none;
}
.titleBar.sub.color0 {
	color:#f06;
	border-bottom:3px solid #c06;
}
.titleBar.sub.color1 {
	color:#60f;
	border-bottom:3px solid #60f;
}

.titleBar span {
	display:inline-block;
}


.titleBar.sub span:nth-child(1) {
	padding-left:10px;
}
.titleBar.sub span:nth-child(2) {
	padding-right:10px;
}


.subTitle {
	padding-bottom:3em;
}
.subTitle > * {
	padding:0.3em 0;
	font-size:180%;
	color:#f06;
	background:#fde;
	border:3px solid #f06;
	border-radius:0.3em;
}



.titleImage {
	text-align:center;
	margin:20px auto;
}
.titleImage img {
	border:1px solid #fff;
}

@media screen and (max-width:799px) { 
	.titleBar {
		padding-bottom:2em;
	}
	.titleBar:not(.sub) > * > span {
		font-size:180%;
	}

	.subTitle {
		padding-bottom:2em;
	}
	.subTitle > * {
		font-size:150%;
	}
}



/* ============================================================================================
	box
============================================================================================= */
.infoBox {
	max-width:1400px;
	margin:0.5em auto 2em;
	padding:2em 1em;
	background-color:rgba(255,255,255,0.8);
	box-shadow:1px 1px 3px #999;
	border:5px solid #c60;
	border-radius:0.5em;
	outline:3px solid #fff;
}

.infoBox:not(#homeNews) p + p {
	padding-top:1em;
}

.subBox {
	padding:0 2em 2em;
}

.infoBox.notes {
	text-align:center;
}
.infoBox.notes .headline ,
.noData .headline {
	color:#f06;
	font-size:150%;
}
.infoBox.notes .comment ,
.noData .comment {
	font-size:90%;
	color:#666;
}
.noData .comment2 {
	margin-top:1em;
	font-size:120%;
	color:#00f;
}

.noData {
	color:#666;
	text-align:center;
	min-height:300px;
	margin:0 1em 2em;
	padding:4em 1em 2em;
	background-color:rgba(255,255,255,0.8);
	border:1px solid #f90;
	border-radius:0.5em;
}

@media screen and (max-width:799px) { 
	.infoBox.notes {
	}
	.infoBox.notes .headline ,
	.noData .headline {
		font-size:120%;
	}

}


/* ============================================================================================
	list
============================================================================================= */
.commonList {
	text-align:center;
	margin-bottom:1em;
}

.imageList {
	width:100%;
	padding:1em;
	text-align:center;
	display:flex;
	justify-content:flex-start;
	flex-wrap:wrap;
	text-align:center;
}
.imageList li {
	width:calc(100% / 2);
	padding:1em;
}
.imageList li.noData {
	width:100%;
}

.imageList li img {
	border:1px solid #fff;
	box-shadow:1px 1px 3px #999;
}




/* ===========================================================================================
	table
============================================================================================= */
.commonTableOuter {
	padding-bottom:2em;
}

.commonTable {
	width:100%;
}
.commonTable th {
	width:20%;
	padding:0.5em;
	border:1px solid #666;
	letter-spacing:2px;
	vertical-align:middle;
}
.commonTable td:not(.noData) {
	padding:0.5em 1em;
	border:1px solid #666;
}

.commonTable a {
	color:var(--a-color);
}
.commonTable a:hover {
	color:var(--a-hover-color);
}


@media screen and (max-width:799px) { 
	form .commonTable ,
	form .commonTable caption ,
	form .commonTable thead ,
	form .commonTable tbody ,
	form .commonTable tfoot ,
	form .commonTable tr,
	form .commonTable th,
	form .commonTable td {
		display:block;
		width:100% !important;
		border:0 none !important;
		text-align:left !important;
	}
	form .commonTable td:not(.noData) {
		padding-top:0;
	}
}


/* ==============================================
	body
=============================================== */
body {
	position:relative;
	font-size:16px;
	color:#111;
	background:#fcfaf4;
	background:url(images/common/bg.jpg);
}
#bgLayer {
	position:relative;
	width:100%;
	margin:0 auto;
	min-height:100%;
}

.innerFrame {
	width:100%;
}

@media screen and (min-width:800px) { 
	.innerFrame {
		max-width:1800px;
		min-width:1200px;
		margin:0 auto;
	}
}

@media screen and (max-width:799px) { 
	#bgLayer {
		width:480px;
		min-width:480px;
		margin:0 auto;
	}
	.contentsBloc {
	}
	.innerFrame {
	}

}



/* ==========================================================================================================================================
	header
=========================================================================================================================================== */
#header {
	position:relative;
}

#h1 {
	height:20px;
	padding:0 1em;
	font-size:85%;
	color:#fff;
	background:rgba(204,102,0,0.6);
	display:flex;
	align-items:center;
}

@media screen and (max-width:799px) { 
	#h1 {
		justify-content:center;
	}
	body:not(#PAGE_index) #h1 {
		display:none;
	}
}


/* ==============================================
	PC header
=============================================== */
@media screen and (min-width:800px) { 
	* {
		--nav-height:190px
	}

	#header {
		padding-bottom:var(--nav-height);
	}
	#headerInner {
		width:100%;
		height:140px;
		max-width:1700px;
		min-width:1200px;
		margin:0 auto;
	}

	#headerTitle {
		height:100%;
		padding:0 1em;
		display:flex;
		justify-content:space-between;
		align-items:center;
		text-align:center;
	}

	#headerTitle #headerLogo img {
		height:120px;
	}

	#headerTitle #headerInfo {
		align-self:flex-end;
		padding-bottom:0.5em;
		line-height:1.2;
		font-family:var(--title-fonts);
	}
	#headerTitle #headerInfo .time {
		display:block;
		font-size:140%;
	}
	#headerTitle #headerInfo .tel {
		display:block;
		font-size:200%;
	}


	/* ==============================================
		header nav menu
	=============================================== */
	#headerNav {
		position:absolute;
		top:calc(140px + 20px);
		left:0;
		right:0;
		width:100%;
		height:var(--nav-height);
		padding:10px 0;
		z-index:10000;
		background:url(images/common/nav_bg.jpg) 50% 50% rgba(255,255,255,0.8);
		box-shadow:0 0 3px #960;
	}
	#headerNav .contents-navi {
		height:100%;
		max-width:1800px;
		min-width:1200px;
		margin:0 auto;
	}

	#headerNav ul.navMenu {
		width:100%;
		height:100%;
		display:flex;
		justify-content:space-evenly;
		align-items:center;
		line-height:1.4;
		text-align:center;
	}
	#headerNav ul.navMenu > li {
		width:calc(100% / 11);
		max-width:115px;
		height:100%;
	}
	#headerNav ul.navMenu li a {
		position:relative;
		display:block;
		width:100%;
		height:100%;
		font-family:var(--title-fonts);
		display:flex;
		justify-content:center;
		align-items:center;
		flex-direction:column;
	}
	#headerNav ul.navMenu > li:nth-child(2n) a {
		flex-direction:column-reverse;
	}

	#headerNav ul.navMenu li a > span {
		width:100%;
		white-space:nowrap;
		display:flex;
		justify-content:center;
		align-items:center;
	}
	#headerNav ul.navMenu li a > span:nth-child(1) {
		z-index:1;
		aspect-ratio:1 / 1;
		font-size:120%;
		color:#222;
		letter-spacing:-0.05em;

		background:url(images/common/button.png) 50% 50% no-repeat;
		background-size:100% 100%;
		border-radius:50%;
		transition: color 0.2s ease;
	    -webkit-transition: color 0.2s ease;
	}
	#headerNav ul.navMenu li a > span:nth-child(2) {
		z-index:2;
		aspect-ratio:2 / 1;
		font-size:90%;
		font-weight:bold;
	}

	#headerNav ul.navMenu li a:hover > span:nth-child(1) {
		color:#fff;
		filter:hue-rotate(180deg);
		text-shadow:1px 1px 0 #000;
	}


	body.fixedNav #headerNav {
		position:fixed;
		top:0;
	}

}



/* ==============================================
	SP header
=============================================== */
@media screen and (max-width:799px) { 

	#header {
		position:fixed;
		top:0;
		left:0;
		right:0;
		width:100%;
		height:60px;
		z-index:10002;
	}
	#header #headerInner {
		width:480px;
		height:100%;
		margin:0 auto;
		position:relative;
		z-index:10003;
	}
	#headerTitle {
		width:100%;
		height:100%;
		padding:2px 20px;
		background:rgba(255,255,255,0.8);
		box-shadow:0px 2px 5px #999;
		display:flex;
		justify-content:space-between;
		align-items:center;
	}
	#headerLogo {
		margin-right:auto;
	}
	#headerTitle img {
		height:58px;
	}

	#header #headerInner #headerInfoBloc {
		margin-left:auto;
	}
	#header #headerInner #headerInfoBloc #headerText {
		display:none;
	}
	#header #headerInner #headerSPMenuIcon {
		margin-left:1em;
	}




	/* ==============================================
		header > navMenu
	=============================================== */
	#headerNav {
		position:fixed;
		top:0;
		right:-100%;
		width:100%;
		height:100% !important;
		background-color:rgba(255,255,255,0.9);
		font-family:var(--title-fonts);
		z-index:10001;
		transition: all 0.3s ease;
	    -webkit-transition: all 0.3s ease;
	}
	#headerNav.on {
		right:0%;
	}
	#headerNav .contents-navi {
		width:480px;
		height:100%;
		margin:0 auto;
		padding:60px 2em 0;
		overflow:hidden;
	}
	#headerNav ul.navMenu {
		width:100%;
		margin:0 auto;
		padding:1em;
		flex-direction:column;
	}
	#headerNav ul.navMenu > li {
		width:100%;
		height:50px;
		padding-bottom:5px;
	}
	#headerNav ul.navMenu > li .aLink {
		width:100%;
		height:100%;
		padding:0 20px;
		text-shadow:1px 1px 1px #999;
		font-size:24px;
		letter-spacing:1px;
		overflow:hidden;
		background-color:rgba(255,255,255,0.6);
		box-shadow:1px 1px 3px #666;
		display:flex;
		justify-content:space-between;
		align-items:center;
	}

	#headerNav ul.navMenu > li .aLink span:nth-child(2) {
		margin-left:auto;
		font-size:14px;
		letter-spacing:0px;
	}
	#headerNav ul.navMenu > li .aLink:after {
		content:">";
		margin-left:10px;
		font-size:20px;
	}

	#header .navMenuBloc .spNavLink {
		width:300px;
		margin:60px auto;
		border:1px solid #fff;
		box-shadow:2px 2px 5px #666;
	}

}







/* ==============================================
	footer
=============================================== */
#footer {
	position:relative;
	padding:2em 0;
	text-align:center;
	color:#fff;
	background:rgba(204,102,0,0.6);
}


#footer #footerInfo {
	letter-spacing:1px;
	text-indent:1px;
}
#footer #footerInfo #footerLogo {
	width:420px;
	margin:auto;
}

#footer #footerInfo #footerAddr {
	padding:1.5em 0 0.5em;
	font-size:120%;
}

#footer #footerInfo #footerText {
	font-size:140%;
	font-family:var(--title-fonts);
}
#footer #footerInfo #footerTel a {
	font-size:200%;
	font-family:var(--title-fonts);
}

@media screen and (max-width:799px) {
	#footer #footerInfo #footerAddr {
		font-size:100%;
	}
}


/* ==============================================
	copyright
=============================================== */
#copyright {
	padding:0.5em 0;
	text-align:center;
	font-family:var(--title-fonts);

}
#copyright a {
}


/* ==============================================
	scrollTop
=============================================== */
#scrollTop {
	position:fixed;
	bottom:0;
	right:0;
	display:none;
	width:60px;
	height:60px;
	padding:5px;
	text-align:center;
	background:rgba(102,51,0,0.8);
	border:1px solid #fff;
}
#scrollTop #scrollTopInner {
	cursor:pointer;
}
#scrollTop img {
}





/* ==============================================
	contents body
=============================================== */
#body {
	position:relative;
	padding:3em;
}

.contentsBloc {
	padding-bottom:3em;
}

@media screen and (max-width:799px) { 
	#body {
		padding:100px 0.5em 3em;
	}
	#body #bodyInner {
		padding:0 1em;
	}
	#body .innerFrame {
		padding:0;
	}
}




/* ==========================================================================================================================================
	index
=========================================================================================================================================== */
#PAGE_index #header {
	display:none;
}
#PAGE_index #body {
	padding-top:40px;
}

#enterMainFrame {
	text-align:center;
}
#enterMainFrame .date {
	font-family:var(--title-fonts);
	font-size:400%;
	text-shadow:2px 1px 0 #fff;
}
#enterMainFrame .image img {
	border:5px solid #c60;
	outline: 5px solid #fff;
	border-radius:0.5em;
}


#enterButtonBloc {
	padding:4em 0;
	display:flex;
	justify-content:center;
	align-items:center;
}
#enterButtonBloc > li {
	padding:0 2em;
}
#enterButtonBloc li#icon18kin img {
	height:6em;
}

#enterButtonBloc a {
	position:relative;
	display:block;
	font-size:500%;
	color:#999;
	font-family:var(--title-fonts);
}
#enterButtonBloc a > span {
	position:relative;
	z-index:3;
}
#enterButtonBloc a:before ,
#enterButtonBloc a:after {
	content:attr(data-text);
	position:absolute;
	top:0;
	left:0;
}
#enterButtonBloc a:before {
	z-index:1;
	-webkit-text-stroke:0.15em #999;
}
#enterButtonBloc a:after {
	z-index:2;
	-webkit-text-stroke:0.1em #fe9;
}

#enterButtonBloc li#enterButton a:hover {
	color:#f06;
}
#enterButtonBloc li#enterButton a:hover:before {
	-webkit-text-stroke:0.15em #f06;
}

#enterButtonBloc li#exitButton a:hover {
	color:#666;
}


@media screen and (max-width:799px) {
	#enterMainFrame .date {
		font-size:250%;
		line-height:1.2;
		padding-bottom:0.3em;
	}
	#enterButtonBloc {
		flex-direction:column;
	}
	#enterButtonBloc a {
		font-size:400%;
		color:#666;
	}
	#enterButtonBloc li#enterButton a {
		color:#f06;
	}
	#enterButtonBloc li#enterButton a:before {
		-webkit-text-stroke:0.15em #f06;
	}
	#enterButtonBloc li#icon18kin img {
		height:5em;
	}
}



#index_text {
	padding-top:8em;
}
#index_text > div {
	font-size:80%;
	text-align:center;
}



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

/* ============================================================================================
	home news
============================================================================================= */
#homeSliderBloc {
	padding:2em 0;
}

#homeSliderBloc li img {
	width:100%;
	height:100%;
	object-fit:contain;
    border: 5px solid #c60;
    outline: 5px solid #fff;
    border-radius: 0.5em;
}


@media screen and (max-width:799px) {
	#homeSliderBloc {
		padding:0;
	}
}




/* ============================================================================================
	home news
============================================================================================= */
#indexNews {
	width:1200px;
	margin:0 auto;
	padding:3em 0;
}
 
ul#homeNews {
	overflow-y:auto;
}
#PAGE_home ul#homeNews {
	max-height:720px;
}

ul#homeNews li {
	position:relative;
	padding-bottom:0.5em;
}
ul#homeNews li + li {
	border-top:1px solid #ccc;
	padding-top:0.5em;
}

ul#homeNews li .newsInfo {
}
ul#homeNews li .newsDate {
	padding-bottom:0.5em;
	font-weight:bold;
	color:#06f;
}
ul#homeNews li .newsImage {
	padding:0.5em 0 2em;
	text-align:center;
}
ul#homeNews li .newsText {
}

#newsLink {
	text-align:right;
}


@media screen and (max-width:799px) {
	#indexNews {
		width:100%;
	}

	ul#homeNews li .newsImage {
		padding:0.5em 2em 1.5em;
	}
}




/* ==========================================================================================================================================
	castlist
=========================================================================================================================================== */
ul.castList.flex {
	width:100%;
	padding-bottom:2em;
}
ul.castList.flex > li {
	display:block;
	width:calc(100% / 4);
	padding:0 0.5em 1em;
}

.castCell > .aFrame {
	position:relative;
	display:block;
	line-height:1.4;
	text-align:center;
	background:url(images/common/cast_bg.jpg) 50% 50% rgba(2555,255,255,0.9);
	border:1px solid #f90;
}


.castCell > .aFrame .castImage:before ,
.castCell > .aFrame .castInfo {
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
	box-shadow:0 0 0.2em #999;
}
.castCell > a.aFrame:hover {
	box-shadow:0 0 0.5em #f60;
}


.castCell .castImage {
	position:relative;
	display:block;
	padding-bottom:3px;
}
.castCell .castImage img {
	display:block;
	width:100%;
	aspect-ratio:3/4;
	object-fit:contain;
	object-position:top;
}



/* ============================================================================================
	cast info
============================================================================================= */
.castCell .castInfo {
	position:relative;
	padding:0.8em 0.3em 0.3em;
}




/* ==============================================
	cast info > name
=============================================== */
.castCell .castName {
	line-height:1.2;
	font-weight:bold;
	text-align:center;
	white-space:nowrap;
	overflow:hidden;
}
.castCell .castName .number {
	font-size:130%;
}
.castCell .castName .number small {
	font-size:80%;
}
.castCell .castName .name {
	font-size:160%;
}

@media screen and (max-width:799px) { 
	.castCell .castName .number small {
		display:none;
	}

	.castCell .castName .number {
		font-size:110%;
	}
	.castCell .castName .name {
		font-size:130%;
	}
}



/* ==============================================
	cast info > size
=============================================== */
.castCell .castSize {
	padding-top:0.5em;
	font-size:110%;
	color:#c06;
}

@media screen and (max-width:799px) { 
	.castCell .castSize {
		padding-top:0.3em;
		font-size:95%;
	}
}


/* ==============================================
	cast info > icon
=============================================== */
.castCell .castIcon.flex {
	width:100%;
	padding:0.5em 0;
}
.castCell .castIcon.flex > .textIcon {
	width:32%;
	margin:0 1px;
}

.castIcon.flex > .textIcon {
	padding-bottom:0.1em;
	white-space:nowrap;
	font-size:90%;
	color:#fff;
	background:transparent;
	border:1px solid transparent;
	border-radius:0.3em;
}
.castIcon.flex > .textIcon:not(.noIcon) {
	background:#06f;
}


.castList .castIcon.flex > .textIcon span {
	--txtIcon-ratio:1;
}

@media screen and (max-width:1740px) { 
	.castList .castIcon.flex > .textIcon span.l8 {
		--txtIcon-ratio:0.82;
	}
}
@media screen and (max-width:1580px) { 
	.castList .castIcon.flex > .textIcon span.l7 {
		--txtIcon-ratio:0.82;
	}
	.castList .castIcon.flex > .textIcon span.l8 {
		--txtIcon-ratio:0.7;
	}
}
@media screen and (max-width:1420px) { 
	.castList .castIcon.flex > .textIcon span.l6 {
		--txtIcon-ratio:0.82;
	}
	.castList .castIcon.flex > .textIcon span.l7 {
		--txtIcon-ratio:0.7;
	}
	.castList .castIcon.flex > .textIcon span.l8 {
		--txtIcon-ratio:0.63;
	}
}

@media screen and (max-width:799px) {
	.castList .castCell .castIcon.flex > .textIcon {
		width:33%;
		margin:0 0.1%;
	}
	.castList .castIcon.flex > .textIcon {
		font-size:80%;
	}
}


.castIcon.flex > .textIcon span {
	display:block;
	transition:all 0.3s ease;
    -webkit-transition:all 0.3s ease;

	transform:scaleX( var(--txtIcon-ratio) );
	width:calc(100% / var(--txtIcon-ratio) );
	margin-left:calc( (100% - 100% / var(--txtIcon-ratio) ) / 2 );
}






/* ==============================================
	cast info > attendance
=============================================== */
.castCell .castTime {
	height:calc(1.4em + 0.3em * 2);
	padding:0.3em 0;
	color:#fff;
	border-radius:0.3em;
}
.castCell .castTime.castFlagToday {
	background:rgba(255,0,102,0.6);
}


@media screen and (max-width:799px) { 
	ul.castList.flex > li {
		width:calc(100% / 2);
		padding:0 0.2em 1em;
	}
	ul.castList.flex > li.noData {
		width:100%;
		min-height:auto;
		padding:3em 0;
	}
}



/* ==============================================
	cast cell > new icon
=============================================== */
.castCell.castFlagNewface .castImage:after {
	content:"NEW FACE";
	line-height:1.4;
	position:absolute;
	top:5px;
	right:5px;
	display:flex;
	justify-content:center;
	align-items:center;
	width:15%;
	min-width:4em;
	aspect-ratio:1/1;
	font-size:110%;
	font-weight:bold;
	color:#fff;
	background:rgba(255,0,102,0.6);
	border-radius:0.5em;

	animation:blink 1s ease infinite alternate;
	-webkit-animation:blink 1s ease infinite alternate;
}

@media screen and (max-width:1400px) { 
	.castCell.castFlagNewface .castImage:after {
		font-size:90%;
	}
}




/* ==========================================================================================================================================
	profile
=========================================================================================================================================== */
#profileMainBloc {
	max-width:1400px;
	margin:0 auto;
	padding-bottom:2em;
}

@media screen and (max-width:799px) {
	#profileMainBloc .flex {
		flex-direction:column;
	}
}


.profileHeaderSP.infoBox {
	padding:1em 0.5em;
}


/* ==============================================
	profile > left image frame
=============================================== */
#profileImageBloc {
	position:relative;
	width:45%;
	margin-left:1%;
	text-align:center;
}
#profileImageBloc #profileImage {
	border:1px solid #fff;
	box-shadow:0px 1px 3px #666;
}

#profileImageBloc #profileVideo {
	max-width:600px;
	margin:auto;
	padding-top:30px
}
#profileVideo .videoTitle {
	padding:0.5em 0;
	font-size:150%;
	color:#f06;
}
#profileImageBloc #profileVideo video {
    border: 1px solid #fff;
    box-shadow: 0px 1px 3px #666;
}

@media screen and (max-width:799px) {
	#profileImageBloc {
		width:100%;
		margin:0 auto;
		padding:0 1em 2em;
	}
}


/* ==============================================
	cast cell icons
=============================================== */
#profileImageFrame.castFlagNewface:before ,
#profileImageFrame.castFlagPickup:after {
	content:"";
	position:absolute;
	width:25%;
	max-width:150px;
	height:100px;
	background-repeat:no-repeat;
	background-position:50% 0%;
	background-size:contain;
	z-index:5;
}
#profileImageFrame.castFlagNewface:before {
	background-image:url(images/icons/new_icon_p.png);
	top:-10px;
	left:15px;

	-webkit-animation:1.5s animateBlink infinite alternate ease-in;
	animation:1.5s animateBlink infinite alternate ease-in;
}
#profileImageFrame.castFlagPickup:after {
	content:"Pickup!";
	top:-15px;
	right:15px;
	font-size:60px;
	color:#fff;
	text-shadow:  1px  1px 0px #06f
				,-1px -1px 0px #06f
				, 0px -1px 0px #06f
				,-1px  1px 0px #06f
				, 0px  2px 2px #06f
				, 0px -2px 2px #06f
				, 2px  0px 2px #06f
				,-2px  0px 2px #06f;
	font-family:'Noto Serif JP',serif;
	transform:rotateZ(15deg);
}

@media screen and (max-width:799px) {
	#profileImageFrame.castFlagNewface:before ,
	#profileImageFrame.castFlagPickup:after {
		width:30%;
		max-width:120px;
	}
}

/* ==============================================
	profile > left image frame > thumbs
=============================================== */
#profileThumbs {
	font-size:0;
	margin-top:15px;
	text-align:center;
}
#profileThumbs li {
	display:inline-block;
	width:19%;
	margin-left:0.5%;
	margin-right:0.5%;
}
#profileThumbs li:first-child {
	margin-left:0;
}
#profileThumbs li:last-child {
	margin-right:0;
}
#profileThumbs li.imageOn {
	display:inline-block;
	cursor:pointer;
}
#profileThumbs li img {
	width:auto;
	max-width:100%;
	height:auto;
	max-height:100%;
	border:1px solid #fff;
	box-shadow:0px 1px 3px #666;

}

/* ==============================================
	profile > right info frame
=============================================== */
#profileInfoFrame {
	width:52%;
	margin-right:1%;
	position:relative;
	padding:1em 2em;
	background:rgba(255,255,255,0.8);
	box-shadow:1px 1px 3px #999;
	border:5px solid #c60;
	border-radius:0.5em;
	outline:3px solid #fff;
}

@media screen and (max-width:799px) {
	#profileInfoFrame {
		width:100%;
		margin:0 auto;
		padding:1em;
	}
}



/* ==============================================
	profile > right info frame > top name
=============================================== */
.profileName {
	position:relative;
	width:100%;
	font-size:200%;
	letter-spacing:2px;
	font-weight:bold;
	text-align:center;
}
.profileName span.number {
	font-size:80%;
}
.profileName span.name.castFlagMovie:after  {
	content:"@";
	display:inline-block;
	width:1.4em;
	background:url(images/icons/movie2_icon.png) 50% 50% no-repeat;
	background-size:80%;
	margin-left:0.3em;
}

.profileSize {
	display:block;
	font-size:130%;
	letter-spacing:1px;
	color:#c06;
	text-align:center;
}

@media screen and (max-width:799px) {
	.profileName span.profileSize {
		padding:0;
	}
	.profileName span.name.castFlagMovie:after  {
		margin-left:0.1em;
	}
}

/* ==============================================
	profile > right info frame > profile
=============================================== */

#profileInfoFrame #profileProfileBloc img {
	vertical-align:top;
}
#profileInfoFrame #profileTable {
	width:100%;
	padding:1em 0.5em 0;
	text-align:left;
}
#profileInfoFrame #profileTable dt {
	color:#f06;
	padding:0.5em 1em 0.3em;
}
#profileInfoFrame #profileTable dd {
	padding:0 1em 0.5em 3em;
	border-bottom:1px solid #ccc;
}

@media screen and (max-width:799px) {
	#profileInfoFrame #profileTable {
		padding:0;
	}
	#profileInfoFrame #profileTable dt {
	}
	#profileInfoFrame #profileTable dd {
		padding-left:2em;
	}
}

/* ==============================================
	profile > right info frame > message
=============================================== */

#profileInfoFrame .profileSubHeader {
	color:#f60;
	padding-left:1.5em;
}

#profileInfoFrame #profileMessageBloc p {
	padding-left:2.5em;
}

/* ==============================================
	profile > right info frame > bottom schedule
=============================================== */
#profileScheduleBloc {
	padding-top:2em;
}
#profileScheduleBloc .subTitle > .flex {
	padding-left:1em;
}

.profileSchedule {
	width:100%;
	max-width:1400px;
	margin:auto;
	text-align:center;
	border-spacing:3px;
	padding:3px;
	line-height:1.6;
	border-collapse:separate;
	font-size:95%;
}

.profileSchedule th ,
.profileSchedule td {
	width:14%;
	padding:10px 0;
	font-weight:normal;
	border:1px solid #fff;
	box-shadow:0px 1px 3px #666;
	vertical-align:middle;
	background-color:rgba(255,255,255,0.8);
}
.profileSchedule .week0 {
	background-color:rgba(255,192,192,0.6);
}
.profileSchedule .week6 {
	background-color:rgba(192,192,255,0.6);
}

@media screen and (max-width:799px) {
	#profileScheduleBloc .subTitle > .flex {
		justify-content:center;
		padding:0.3em 0;
		text-align:center;
	}
	#profileScheduleBloc .subTitle {
		padding-bottom:1em;
	}

	.profileSchedule {
		font-size:110%;
	}

	.profileSchedule th ,
	.profileSchedule td {
		padding:5px 0;
	}

	.profileSchedule th {
		width:40%;
	}
	.profileSchedule td {
		width:60%;
	}
}


/* ==============================================
	profile icons
=============================================== */
.profileIcons {
	text-align:center;
	padding:1em 0;
	display:flex;
	justify-content:center;
	color:#fff;
	font-family:var(--fontFamily-Tanuki);
}
.profileIcons.flex > .textIcon {
	margin:0 0.1em;
	padding:0 0.5em 0.1em;
	font-size:120%;
	border-color:#666;
}

.profileIcons.castIcon.flex > .textIcon.noIcon {
	display:none;
}


.profileIcons + #profileScheduleBloc {
	margin-top:60px;
	padding-bottom:60px;
}
.profileIcons + #profileScheduleBloc .titleBar.sub {
	margin-bottom:10px;
}

@media screen and (max-width:799px) {
	.profileIcons.flex > .textIcon {
		font-size:110%;
	}
	
}

/* ==============================================
	profile(event)
=============================================== */

#profileInfoFrame.eventInfo #profileProfileBloc {
	display:none;
}
#profileInfoFrame.eventInfo #profileMessageBloc {
	float:none;
	width:100%;
}

/* ==============================================
	profile > guide(bottom)
=============================================== */
#profileGuideBottom {
	width:450px;
	margin:6em auto 2em;
	overflow:hidden;
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
	border:var(--box-border);
	box-shadow:var(--box-shadow);
}
#profileGuideBottom li {
	width:calc(100% / 3);
	font-size:80%;
}
#profileGuideBottom li + li {
	border-left:1px solid #ccc;
}

#profileGuideBottom li a {
	display:block;
	width:100%;
	height:3em;
	line-height:3em;
	color:#f39;
	background:rgba(255,255,255,0.8);
}

#profileGuideBottom li:last-child a {
	border-right:0px none;
}

#profileGuideBottom li a:hover {
	color:#f00;
	text-shadow:1px 1px 0 #fff;
	background-color:#fde;
}




#bottomBanner {
}
#bottomBanner ul.flex {
	padding:0 2em;
}
#bottomBanner ul.flex > * {
	padding:0 0.5em 1em;
}

#bottomBanner ul.flex > #ekichikaDiarySP {
	width:100%;
	padding:1em 0;
	text-align:center;
}
#bottomBanner ul.flex > #ekichikaDiarySP iframe {
	width:96%;
}
iframe.diary {
	height:400px;
}





/* ==========================================================================================================================================
	schedule
=========================================================================================================================================== */
#dateList.flex {
	padding-bottom:3em;
	text-align:center;
}
#dateList.flex > li {
	width:calc(100% / 7);
	padding:0 0.5em;
}
#dateList.flex > li > .label {
	padding:0.5em 0;
	color:#666;
	background:#fff;
	border-radius:0.3em;
	cursor:pointer;

	background-color:rgba(255,255,255,0.8);
	border:1px solid #f90;
}
#dateList li.on > .label {
	font-weight:bold;
	color:#000;
	text-shadow:1px 1px 0 #fff;
	background:#fc6;
}
#dateList li:not(.on):hover > .label {
	color:#333;
	background:#fec;
}


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



/* ==========================================================================================================================================
	ranking
=========================================================================================================================================== */
.ranking {
	padding-bottom:2em;
}
.ranking ul.castList.flex > li {
	width:calc(100% / 5);
}

.rankNo {
	padding:0.3em;
	font-size:160%;
	color:#f06;
	text-align:center;
	background:rgba(255,255,255,0.6);
	border-bottom:1px solid #f90;
}

.ranking .castCell.castFlagNewface .castImage:after {
	font-size:90%;
}


.ranking#ranking1 {
	filter:hue-rotate(-90deg);
}
.ranking#ranking1 img {
	filter:hue-rotate(90deg);
}

.ranking#ranking2 {
	filter:hue-rotate(-180deg);
}
.ranking#ranking2 img {
	filter:hue-rotate(180deg);
}

.ranking#ranking3 {
	filter:hue-rotate(-270deg);
}
.ranking#ranking3 img {
	filter:hue-rotate(270deg);
}



@media screen and (max-width:799px) { 
	.ranking ul.castList.flex > li {
		width:calc(100% / 2);
	}
}



/* ==========================================================================================================================================
	system
=========================================================================================================================================== */
.system {
}

.system ul.infoBox {
	padding:1em;
}

.system li.cate {
	text-align:center;
	padding-bottom:1em;
}
.system li.cate .subTitle {
	width:100%;
	padding-bottom:1em;
}
.system li.cate .playtime {
}
.system li.cate .comment {
	font-size:180%;
	color:#f06;
}

.system li.cate span.image {
	width:100%;
}

.system ul.infoBox li.flex {
	padding:0 1em;
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
	text-align:center;
}
.system ul.infoBox li.flex > span.time {
	width:50%;
	font-size:220%;
	font-weight:bold;
}
.system ul.infoBox li.flex > span.price {
	width:50%;
	font-size:220%;
	font-weight:bold;
}
.system ul.infoBox li.flex > span.text {
	width:100%;
	padding-bottom:0.5em;
	font-size:150%;
}


.system.discount ul.infoBox li.flex {
	justify-content:center;
}
.system.discount ul.infoBox li.flex > span.time {
	width:60%;
	font-size:180%;
}
.system.discount ul.infoBox li.flex > span.price {
	width:40%;
	font-size:180%;
}


@media screen and (max-width:799px) { 
	.system ul.infoBox {
		padding:0.5em;
	}
	.system li.cate {
		padding-bottom:0.5em;
	}
	.system li.cate .subTitle {
		padding-bottom:0.5em;
	}


	.system ul.infoBox li.cate > span.course {
		display:block;
		font-size:180%;
	}
	.system ul.infoBox li.cate > span.playtime {
		display:block;
		padding:0;
		font-size:150%;
	}
	.system ul.infoBox li.cate > .comment {
		font-size:120%;
	}


	.system ul.infoBox li.flex > span.time {
		font-size:140%;
		text-align:left;
	}
	.system ul.infoBox li.flex > span.price {
		font-size:140%;
		text-align:right;
	}
	.system ul.infoBox li.flex > span.text {
		font-size:110%;
	}

	.system.discount ul.infoBox li.flex > span.time {
		width:60%;
		font-size:140%;
	}
	.system.discount ul.infoBox li.flex > span.price {
		font-size:140%;
	}
}






/* ==========================================================================================================================================
	mailmagazine
=========================================================================================================================================== */
#mailmagazineForm {
	padding:2em;
	text-align:center;
}



/* ==========================================================================================================================================
	event
========================================================================================================================================== */
.eventList {
	text-align:center;
}

.eventList li {
	padding:0 0.5em 2em;
}

.eventList li .infoBox {
	padding:1em;
}
.eventList li .infoBox .subTitle {
	padding-bottom:1em;
}

.eventImage {
	padding:0.5em;
}
.eventImage img {
	border:2px solid #f90;
}

@media screen and (max-width:799px) { 
	.eventList.flex.col2 > * {
		width:100%;
	}
}



/* ==========================================================================================================================================
	access
=========================================================================================================================================== */
.route {
}
.route iframe {
	display:block;
	width:100%;
	height:480px;
	border:var(--img-border);
}
.route p {
	text-align:center;
}
.route p.shopName {
	font-size:150%;
	color:#f39;
}


@media screen and (max-width:799px) { 
	.infoBox.route {
		padding:1em 0.5em;
	}
	.infoBox.route .subTitle {
		padding-bottom:1em;
	}
	.infoBox.route .subTitle > * {
		font-size:130%;
	}
	.infoBox.route iframe {
		max-width:100%;
	}
}


/* ==========================================================================================================================================
	link
=========================================================================================================================================== */
img.banner {
	border:1px solid #f90;
}

/* ============================================================================================
	link banner
============================================================================================= */
.linkBox {
	padding:0 1em 2em;
}

.linkList.flex {
}
.linkList.flex li {
	padding:0.2em;
}
.linkList li a {
	display:block;
	width:100%;
	height:100%;
	padding:0.2em;
	text-align:center;
	font-size:80%;
	color:#f39;
}
.linkList li a img {
}
.linkList li a:hover {
	color:#fff;
	background-color:rgba(255,0,102,0.4);
}



/* ==========================================================================================================================================
	recruit
=========================================================================================================================================== */
.recruitImages {
	text-align:center;
}
.recruitImages li {
	padding-bottom:2em;
}
.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;
	}
}





/* ==============================================
	recruit button
=============================================== */
.recruitButton {
	padding-top:3em;
	text-align:center;
}
.recruitButton a {
	max-width:80%;
	width:20em;
	margin:0 auto;
	padding:0.5em 0 0.8em;
	font-size:130%;
	color:#fff;
	background-color:#f6c;
	border:1px solid #f39;
	border-radius:10px;
	box-shadow:3px 3px 3px #fff9 inset ,-4px -4px 5px #0009 inset;
	transition: all 0.2s ease;
    -webkit-transition: all 0.2s ease;

	display:flex;
	justify-content:center;
	align-items:center;
}
.recruitButton a:after {
	content:"\025B6";
	font-size:90%;
	padding-left:0.5em;
}
.recruitButton a:hover {
	background-color:#f39;
}

.recruitButton.form a {
	border:1px solid #0c0;
	background-color:#060;
}
.recruitButton.form a:hover {
	color:#fff;
	background-color:#090;
}


@media screen and (max-width:799px) { 
	.recruitButton a {
		font-size:110%;
	}
}


.ranking .commonTable th {
	background-color:#fde;
}

form .commonTable th {
	width:40%;
	padding-right:1em;
	text-align:right;
}




/* ==============================================
	recruit form
=============================================== */
.formNotes {
	padding-bottom:30px;
	font-size:20px;
	letter-spacing:0.1em;
	padding-left:3em;
	text-align:left;
}
.formNotes.center {
	text-align:center;
}
.formNotes.center.pb30 {
	padding-bottom:30px;
}

@media screen and (max-width:799px) {
	.formNotes {
		font-size:16px;
	}
}


.error {
	display:block;
	color:#f06;
}

input {
	max-width:100%;
}
input.widthS {
	width:3em;
}
input.widthMS {
	width:8em;
}
input.widthM {
	width:10em;
}
input.widthL {
	width:20em;
}
textarea {
	width:80%;
	max-width:100%;
	height:5em;
}
textarea.heightL {
	height:8em;
}
.formButton {
	width:100%;
	margin:auto 10px;
	padding:30px 0;
	text-align:center;
	font-size:13px;
}

@media screen and (max-width:799px) { 
	textarea {
		display:block;
		margin:suto 0;
	}
}




.required {
	display:flex;
	justify-content:flex-end;
	align-items:center;
}
.required:after ,
.required:before {
	display:inline-block;
	padding:0 0.3em;
	font-size:80%;
	color:#fff;
	background:#e22;
	border-radius:3px;
}

@media screen and (min-width:800px) { 
	.required:after {
		content:attr(data-text);
		margin-left:0.3em;
	}
}
@media screen and (max-width:799px) { 
	.required {
		justify-content:flex-start;
	}
	.required:before {
		content:attr(data-text);
		margin-right:0.3em;
	}
}












