@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..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=Forum&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kaisei+Opti:wght@400;500;700&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 Sans JP' ,sans-serif;
	--fontFamily-sans:'Noto Sans JP' ,sans-serif;
	--fontFamily-serif:'Noto Serif JP' ,serif;
	--fontFamily-CGothic:'CGothic' ,'Noto Sans JP' ,sans-serif;
	--fontFamily-CSerif:'CSerif' ,'Noto Serif JP' ,serif;
	--fontFamily-kaisei:'Kaisei Opti' ,'Noto Serif JP' ,serif;

	--fontFamily-title:'Forum' ,'Noto Sans JP' ,sans-serif;
	--fontFamily-em:'Forum' ,'Noto Serif JP' ,serif;

	--img-border:1px solid #e93;
	--gradient:linear-gradient( 180deg ,#fd9 ,#db3 );
	--gradient-rev:linear-gradient( 0deg ,#fd9 ,#db3 );
	--nav-gradient:linear-gradient( 180deg ,#ffe ,#fea );
	--nav-gradient-rev:linear-gradient( 0deg ,#ffe ,#fea );

	--content-bg:rgba(255,255,255,0.3);
}

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





/* ==========================================================================================================================================
	CSS reset
=========================================================================================================================================== */
* {
	box-sizing:border-box;
	-webkit-text-size-adjust:100%;
	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:#f00;
	text-decoration:none;
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
}
@media screen and (min-width:800px) {
	a:hover {
		color:#00f;
		text-decoration:none;
	}
}

img {
	vertical-align:bottom;
	max-width:100%;
}
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 ,footer ,nav ,article ,section ,aside {
	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;
}

.anchorLink {
	cursor:pointer;
}


em {
	color:#f06;
}
small {
	color:#333;
	font-size:90%;
}
.notice {
	padding:0 2em 2em;
}
.notice img {
	border:var(--img-border);
}

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

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

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

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



.textIcon > span {
	display:block;
	min-width:5em;
	padding:0 0.5em;
	font-size:70%;
	color:#fff;
	font-weight:normal;
	text-align:center;
	border-radius:0.3em;
}



/* ==============================================
	title
=============================================== */
.title {
	padding-bottom:1.5em;
}
.title > .flex {
	padding:0.3em 1em;
	color:#330;
	text-shadow:1px 1px 0 #fff ,0 0 0.3em #fff;
	background:url(images/common/title_bg.png) 50% 50%;
	border:var(--img-border);
	box-shadow:2px 2px 0 #e93;
}
.title > .flex > .en {
	order:1;
	font-size:180%;
	letter-spacing:0.05em;
	font-family:var(--fontFamily-em);
	-webkit-text-stroke:1px;
}
.title > .flex > .jp {
	order:2;
	font-weight:500;
}

.title.red > .flex {
	color:#fff;
	text-shadow:1px 1px 0 #000 ,0 0 0.3em #fff;
	background-image:url(images/common/title_bg_r.png);
	border-color:#fff;
	box-shadow:2px 2px 0 #999;
}
.title.blue > .flex {
	color:#fff;
	text-shadow:1px 1px 0 #000 ,0 0 0.3em #fff;
	background-image:url(images/common/title_bg_b.png);
	border-color:#fff;
	box-shadow:2px 2px 0 #999;
}

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

@media screen and (max-width:799px) { 
	.title.sub {
		padding-bottom:1em;
	}
	.title > .flex {
		padding:0.2em 0.5em 0.3em;
		align-items:baseline;
	}
	.title.sub > .flex > .jp {
		font-size:110%;
	}
}


/* ==============================================
	box
=============================================== */
.infoBox {
	width:100%;
	padding:1.5em 2em;
	border:var(--img-border);
	background:var(--content-bg);
}
.noBorder {
    border:0 none !important;
}
.infoBox p + p {
	padding-top:1em;
}


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

.commonList {
	text-align:center;
	padding-bottom:2em;
}

.contentsBloc {
	padding-bottom:3em;
}

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



/* ==========================================================================================================================================
	body
=========================================================================================================================================== */
body {
	position:relative;
	font-size:var(--font-size);
	line-height:1.6;
	color:#000;
	background:url(images/common/bg.webp) 50% 0 repeat-y rgba(255,255,255,0.85);
	font-family:var(--fontFamily-body);
}

.innerFrame {
	width:1400px;
	margin:0 auto;
}
.innerFrame .innerFrame {
	width:100%;
}


#main > .innerFrame {
	padding:2em 1.5em;
	display:flex;
	justify-content:space-between;
	align-items:stretch;
}


#main > .innerFrame > .sidemenu {
	width:200px;
}

#main > .innerFrame > #mainContents {
	order:2;
	width:calc(100% - 200px * 2 - 3em);
}
#sidemenuL {
	order:1;
}
#sidemenuR {
	order:3;
}

@media screen and (min-width:800px) { 
}
@media screen and (max-width:799px) { 
	body {
		background-image:url(images/common/bg_sp.webp);
		background-size: 100%;
		background-blend-mode:color;
	}

	.innerFrame {
		width:480px;
	}

	#main > .innerFrame {
		padding:0.5em 0 2em;
	}
	#main > .innerFrame > #mainContents {
		width:100%;
	}
}


/* ==============================================
	content bg
=============================================== */
header {
	background:url(images/common/header_bg.webp) 50% 0;
}
#headerNav {
	background:#f8f4e9;
	padding:0;
	border-bottom:1px solid #ddd;
	overflow-x:clip;
}
main {
}

@media screen and (min-width:800px) { 
	footer {
		padding:1em;
	}
}
@media screen and (max-width:799px) { 
	#headerNav {
	}
	main {
		padding:0.5em;
	}
}


/* ==============================================
	body sidemenu
=============================================== */
.sidemenu li {
	padding-bottom:1.5em;
}
.sidemenu li img {
	width:100%;
}

.sidemenu li > * {
	display:block;
	border:var(--img-border);
	box-shadow:0 0 3px #ccc;
}
.sidemenu li > a:hover {
	box-shadow:0 0 0.5em #fc0 ,0 0 0.5em #fc0;
}

.sidemenu #twitterBloc {
	width:100%;
}


/* ==============================================
	header
=============================================== */
#header {
	position:relative;
	margin:0 auto;
}
#header .innerFrame {
	max-width:1600px;
}
#header #h1 {
	color:#300;
	background: var(--gradient);
}

#header #h1 h1 {
	padding:0.1em 1em;
	font-size:80%;
	font-weight:500;
}

#headerMain {
	padding:0 1em;
}

#headerMain .logo a {
	display:block;
	padding:0.3em 0;
}
#headerMain .logo a img {
	height:8em;
}

#headerMain > .info.flex {
	min-height:100%;
	line-height:1;
	padding-bottom:0.5em;
	color:#000;
	text-shadow:1px 1px 0 #fff ,0 0 0.3em #fff;
	-webkit-text-stroke:0.5px;
	justify-content:flex-end;
	align-items:flex-end;
	flex-direction:column;
	font-family:var(--fontFamily-em);
}

@media screen and (min-width:800px) {
	#headerMain.topimage.flex {
		display:block;
		position:relative;
		padding:0;
		text-align:center;
	}
	#headerMain.topimage > .logo {
		display:none;
	}
	#headerMain.topimage > .image img {
		width:100%;
	}

	#headerMain.topimage > .info.flex {
		position:absolute;
		bottom:0.5em;
		right:2em;
		filter:drop-shadow(0 0 0.1em #fff) drop-shadow(0 0 0.1em #fff) drop-shadow(0 0 0.1em #fff)
	}

	#headerMain > .info.flex .text2 {
		font-size:120%;
	}
	#headerMain > .info.flex .text2 span {
		font-size:130%;
	}
	#headerMain > .info.flex .tel {
		font-size:160%;
	}
	#headerMain > .info.flex .tel a {
		font-size:180%;
		padding-left:0.2em;
		color:inherit;
		-webkit-text-stroke:1px;
	}
}
@media screen and (max-width:799px) {
	#headerMain.flex {
		padding:0 0.5em;
	}
	#headerMain.flex > .logo {
		width:50%;
	}
	#headerMain.flex .logo a img {
		height:5em;
	}

	#headerMain.flex > .info.flex {
		padding-bottom:0;
		justify-content:center;
	}

	#headerMain .tellink {
		position:relative;
		display:block;
		height:3em;
		aspect-ratio:480/119;
		background:url(images/common/sma_tel_button.png) 50% 50% no-repeat;
		background-size:cover;
	}
	#headerMain .tellink span {
		position:absolute;
		top:5px;
		left:40px;
		right:5px;
		font-size:140%;
		-webkit-text-stroke:1px;
		color:#fff;
		text-shadow:1px 1px 0 #000;
		letter-spacing:0.05em;
		text-indent:0.05em;
		font-family:var(--fonts-serif);
		text-align:center;
	}
}



/* ==============================================
	header > menu
=============================================== */
#headerNav {
/*
	position:sticky
	top:0;
	left:0;
	z-index:1000;
*/
}

@media screen and (min-width:800px) {
	#headerNav .navMenu {
		text-align:center;
		font-weight:500;
		line-height:1.3;
		padding:0 0.5em;
		box-shadow:0 1px 3px #962;
	}
	#headerNav .navMenu > li {
		position:relative;
		flex-grow:1;
		width:calc(100% / 9);
		height:4.6em;
		padding-left:1px;
	}
	#headerNav .navMenu > li:last-child {
		padding-right:1px;
	}
	#headerNav .navMenu > li:before ,
	#headerNav .navMenu > li:last-child:after {
		content:'';
		position:absolute;
		top:calc(50% - 1em);
		display:block;
		width:1px;
		height:2em;
		background:#ddd;
	}
	#headerNav .navMenu > li:before {
		left:0;
	}
	#headerNav .navMenu > li:last-child:after {
		right:0;
	}

	#headerNav .navMenu > li a {
		width:100%;
		height:100%;
		padding-top:0.2em;
		color:#000;
		text-shadow: 1px 1px 3px #fff;
		border-bottom:5px solid transparent;
		display:flex;
		justify-content:center;
		align-items:center;
		flex-direction:column;
		font-family:var(--fontFamily-title);
	}
	#headerNav .navMenu > li:last-child a {
		width:100%;
	}

	#headerNav .navMenu > li a > .en {
		font-size:120%;
		letter-spacing:0.1em;
		text-indent:0.1em;
		color:#600;
		font-weight:bold;
	}
	#headerNav .navMenu > li a > .jp {
		color:#c0f;
		font-size:80%;
		font-weight:500;
	}

	#headerNav .navMenu > li:not(.active) a:hover {
		border-bottom-color:#fd6;
	}
	#headerNav .navMenu > li.active a {
		border-bottom-color:#e93;
	}
	#headerNav .navMenu > li.active a > .en {
	}
	#headerNav .navMenu > li.active a > .jp {
	}
}

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

	#headerNav .navMenu.flex {
		padding:0 1px;
		text-align:center;
	}

	#headerNav .navMenu.flex > li {
		width:calc(100% / 5);
		padding:0 1px;
	}
	#headerNav .navMenu.flex > li > * {
		display:flex;
		justify-content:center;
		width:100%;
		padding:0em 0 0.2em;
		color:#600;
		border:1px solid #633;
		box-shadow:0 0 2px #c60;
	}
	#headerNav .navMenu.flex .en {
		font-size:92%;
		font-weight:500;
		letter-spacing:1px;
		text-indent:1px;
		display:flex;
		justify-content:center;
		white-space:nowrap;
	}
	#headerNav .navMenu.flex .navMenu14 .en {
		transform:scaleX(0.75);
		letter-spacing:-0.3px;
		text-indent:-0.3px;
	}

	#headerNav .navMenu.flex .jp {
		display:none;
	}

}


/* ==============================================
	footer
=============================================== */
#footerMain {
	text-align:center;
	background:url(images/common/footer_bg.webp) 50% 0;
	box-shadow:0 0 0.3em #999;
	font-family:var(--fontFamily-title);
}

#footer .navMenu.flex > li {
}
#footer .navMenu li a {
	padding:0 1em;
	line-height:2;
	color:#930;
}
#footer .navMenu .en {
	font-size:110%;
	font-weight:bold;
	letter-spacing:0.1em;
}



.footerInfo {
	text-align:center;
	padding:2em;
}

.footerInfo .logo {
	display:inline-block;
	width:20em;
	max-width:75%;
	padding-bottom:1em;
}


#copyright {
	padding-top:2em;
	color:#333;
	text-align:center;
}
#copyright a {
	color:inherit;
}

#footerBanners .flex {
	padding:0.5em;
}
#footerBanners .flex > li {
	padding:0.5em 0.2em 0;
}
#footerBanners .flex > li.half {
	width:50%;
}

#footerBanners .flex h3 {
	padding-top:0.5em;
}
#footerBanners .flex img {
	border:1px solid #fff;
	filter:drop-shadow(0 0 3px #960)
}


@media screen and (min-width:800px) { 
	#footerMain {
		padding:1em 0;
	}
	#footer .navMenu li a:hover {
		text-shadow:1px 1px 0.1em #c90 ,0 0 0.3em #c90;
	}
	#footer .navMenu .jp {
		display:none;
	}
	#copyright a:hover {
		text-decoration:underline;
	}
}
@media screen and (max-width:799px) { 
	#footer > .innerFrame {
		padding-top:0;
	}
	#footerMain {
		padding-bottom:0;
	}

	#footerBanners {
		padding:1em 0.5em 0;
		background:#fd9;
	}

	#footerMenu {
		width:100%;
		padding:2em 0.5em 1em;
	}
	#footerMenu .navMenu.flex {
		position:relative;
		flex-direction:column;
		text-align:left;
	}
	#footerMenu .navMenu:before {
		content:"メインメニュー";
		width:100%;
		padding:0.5em 0 0.3em;
		text-align:center;
		color: #600;
		text-shadow: 1px 1px 0px #fff;
		font-size:140%;
		font-weight:bold;
		background:var(--gradient-rev);
		border-bottom:1px solid #666;
	}

	#footerMenu .navMenu li {
		width:100%;
	}
	#footerMenu .navMenu li a {
		padding:0.2em 1em 0.2em 1.5em;
		color:#600;
		text-shadow: 1px 1px 5px #fff;
		background:var(--nav-gradient);
		border-bottom:1px solid #c60;
		display:flex;
		justify-content:space-between;
		align-items:center;
		font-weight:bold;
	}
	#footerMenu .navMenu li a .en {
		font-size:150%;
		font-weight:bold;
	}
	#footerMenu .navMenu li a .jp {
		color:#000;
		margin-left:auto;
	}
	#footerMenu .navMenu li a:after {
		content:"\25B6";
		padding-left:0.6em;
		font-size:130%;
		color:#c60;
	}

	.footerInfo {
		padding-top:4em;
		line-height:1.3;
		background:var(--gradient);
	}
	.footerInfo .text2 {
		font-size:110%;
		font-weight:500;
	}
	.footerInfo .text2 span {
		font-size:130%;
		-webkit-text-stroke:0.5px;
	}

	.footerInfo .tel {
		font-size:160%;
		-webkit-text-stroke:1px;
	}
	.footerInfo .tel a {
		font-size:140%;
		padding-left:0.2em;
		color:inherit;
	}

	#copyright {
		padding:1em 0;
	}
}




/* ==============================================
	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;
	}
}



/* ==========================================================================================================================================
	index
=========================================================================================================================================== */
#P-index #main > .innerFrame {
	padding:0 1em;
}
#P-index #main > .innerFrame > #mainContents {
	width:100%;
}
#P-index #mainContents {
	padding:0 0 4em;
}
#P-index.comingsoon .footerInfo .text2 ,
#P-index.comingsoon .footerInfo .tel {
	display:none;
}

.enterButtons.flex {
	padding:2em 0;
}

.enterButtons.flex > li {
	padding:0 2em;
}
.enterButtons.flex > li a {
	display:block;
	background:url(images/common/button_ENTER_n.png) 50% 50% no-repeat;
	background-size:cover;
	filter:drop-shadow(2px 2px 2px #666);
}
.enterButtons.flex > li.exit a {
	background-image:url(images/common/button_EXIT_n.png);
}

.enterButtons.flex > li a img {
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
}
@media screen and (min-width:800px) {
	.enterButtons.flex > li a:hover img {
		opacity:0;;
	}
}


.mainImage {
	position:relative;
}

.mainImage .openText {
	position:absolute;
	top:0;
	left:0;
	right:0;
	text-align:center;
}
.mainImage .openText img {
	width:70%;
}


@media screen and (max-width:799px) { 
	#P-index #main .innerFrame {
		padding:0;
	}
	#P-index #mainContents {
		padding-top:1em;
	}


	.mainImage > img {
		min-height:300px;
		object-fit:cover;
	}
	.mainImage .openText img {
		width:96%;
	}

	.enterButtons.flex {
		padding:2em 0.5em;
	}
	.enterButtons.flex > li {
		padding:0 0.5em;
	}

}


.coming-text {
	position:relative;
	padding:0 0 0.2em;
	line-height:1;
	font-size:400%;
	font-weight:900;
	font-family:var(--fontFamily-kaisei);
	text-align:center;
	letter-spacing:0.03em;
	text-indent:0.03em;
}
.coming-text small {
	font-size:60%;
}
.coming-text span {
	font-size:90%;
}

.coming-text > .back {
	-webkit-text-stroke:5px #333;
	filter:drop-shadow(0 0 0.1em #fff) drop-shadow(0 0 0.1em #fff);
}
.coming-text > .fore {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	background:linear-gradient( 180deg ,#fff 20% ,#bbb 35% ,#fff 45% 55% ,#bbb 70% ,#fff 90% );
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
@media screen and (max-width:799px) { 
	.coming-text {
		padding-bottom:0.6em;
		font-size:220%;
		line-height:1.1;
	}
	.coming-text > .back {
		-webkit-text-stroke:4px #333;
	}
}


/* ==============================================
	index > shoplink
=============================================== */
#shopLink {
	text-align:center;
	padding-bottom:40px;
}
#shopLink a {
	display:inline-block;
	width:90%;
	box-shadow:0 0 5px #fff;
}
@media screen and (min-width:800px) {
	#shopLink a:hover {
		box-shadow:0 0 5px #f60,0 0 10px #f60;
	}
}




/* ==============================================
	home > header > slider
=============================================== */
#homeSliderBloc {
	width:100%;
}
#homeSliderBloc #homeSliderLoader {
	width:100%;
	height:100%;
	padding-top:150px;
	text-align:center;
}

#homeSlider > * {
	box-sizing:content-box;
}
#homeSlider {
	opacity:0;
}
#homeSlider img {
	width:100%;
}

#homeSliderBloc .bx-wrapper {
}
#homeSliderBloc .bx-wrapper .bx-viewport {
	border:0 none;
}
#homeSliderBloc .bx-wrapper img {
	border:var(--img-border);
}



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

#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;
}
.news_image {
	text-align:center;
}

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



/* ==========================================================================================================================================
	system
=========================================================================================================================================== */
#system {
}
#system li {
	position:relative;
	text-align:center;
	padding-bottom:2em;
}
#system li img {
	position:relative;
	border:var(--img-border);
}


#systemCampaign {
	width:100%;
}

#systemCampaign li {
	padding-bottom:2em;
}
.campaign {
	border:0.2em solid #e93;
	border-radius:0.5em;
	background:#fffff7;
}
.campaign h3.head.flex {
	padding:0.2em 1em;
	color:#fff;
	text-shadow:1px 1px 0 #000;
	font-weight:bold;
	background:var(--gradient);
	border-radius:0.3em 0.3em 0 0;
}
.campaign h3.head.flex > .jp {
	letter-spacing:1px;
}
.campaign h3.head.flex > .en {
	font-size:110%;
	color:#333;
	text-shadow:1px 1px 0 #fff;
	font-weight:900;
	font-style:oblique;
	font-family:var(--fontFamily-serif);
}
.campaign div.text {
	padding:0.5em 2em;
}


@media screen and (max-width:799px) { 
	#system li {
		padding-bottom:1.5em;
	}
	.campaign h3.head.flex {
		padding:0.2em 0.5em;
	}
	.campaign div.text {
		padding:0.5em 1em;
	}

	#systemCampaign li {
		padding-bottom:1.5em;
	}
}



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

@media screen and (min-width:800px) {
	#access .infoBox {
		font-size:120%;
	}
}


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

.castCell > a {
	position:relative;
	display:block;
	padding:0 2px 2px;
	border:var(--img-border);
	box-shadow:0 0 0.3em #ccc;
	background:url(images/common/girl_bg.webp) 50% 50%;
	background-size:cover;
}
@media screen and (min-width:800px) {
	.castCell > a:hover {
		background-color:rgba(255,255,102,0.2);
		box-shadow:0 0 0.3em #f90;
		background-blend-mode:darken;
	}
}

.castCell .castName {
	position:relative;
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:0.1em 0.5em;

	display: -webkit-box;
	text-overflow: ellipsis;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}
.castCell .castName > span {
    color:#600;
	font-size:110%;
	font-weight:bold;
	letter-spacing:1px;
}

.castCell .castImage {
	position:relative;
	display:block;
}
.castCell .castImage img {
	width:100%;
	aspect-ratio:2/3;
	object-fit:cover;
	border:var(--img-border);
}
.castCell .castImage img.blogIcon {
	width:50px;
	height:50px;
	border:0 none;
}


ul.castList li.castCell .castInfo {
	position:relative;
	display:block;
	margin-top:-0.5em;
	line-height:1.4;
	text-align:center;
}
ul.castList li.castCell .castInfo .castIcon {
	display:flex;
	justify-content:space-between;
	-webkit-backface-visibility:hidden;
	backface-visibility:hidden;
}
ul.castList li.castCell .castInfo .castIcon > * {
	width:33%;
}
ul.castList li.castCell .castInfo .castSize {
	display:block;
	padding:0.3em 0;
	letter-spacing:1px;
	color:#330;
}
ul.castList li.castCell .castInfo .castTime {
	display:block;
	padding-bottom:0.2em;
	color:#903;
	font-weight:bold;
	display:flex;
	justify-content:center;
	align-items:flex-end;
}
ul.castList li.castCell .castInfo .castTime.today {
	color:#c00;
	background:#fe9;
}
ul.castList li.castCell .castInfo .castTime.next {
	color:#00f;
	background:#fe9;
}

ul.castList li.castCell .castLabels {
	position:absolute;
	top:0;
	right:0;
	width:26%;
	aspect-ratio:1/2;
}


@media screen and (min-width:800px) { 
	ul.castList li.castCell .castInfo .castTime.today:before {
		content:"本日出勤";
		font-size:90%;
	}
	ul.castList li.castCell .castInfo .castTime.next:before {
		content:"出勤予定";
		font-size:90%;
	}
}
@media screen and (max-width:799px) { 
	ul.castList.flex > li {
		width:calc(100% / 3);
		padding:0 0.2em 0.5em;
	}
	ul.castList.flex > li.noData {
		width:100%;
		min-height:auto;
		padding:3em 0;
	}
	.castCell .castName > span {
		font-size:100%;
	}
	ul.castList li.castCell .castInfo .castSize {
		font-size: 90%;
	}
}




/* ============================================================================================
	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;
	color:#600;
	background:var(--content-bg);
	border:var(--img-border);
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
	cursor:pointer;
}
#dateList li.on > .label {
	color:#300;
	font-weight:bold;
	background:var(--gradient);
}
@media screen and (min-width:800px) {
	#dateList li:not(.on):hover > .label {
		color:#300;
		background:#fe9;
	}
}

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




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



/* ==========================================================================================================================================
	event
========================================================================================================================================== */
.eventList {
}

.eventList li {
	padding-bottom:2em;
}

.eventImage {
	text-align:center;
}
.eventText {
	padding:2em 0.5em 1em;
}
.eventText-frame {
	padding:1em;
	font-size:130%;
	border:var(--img-border);
}


/* ==========================================================================================================================================
	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;
}
@media screen and (min-width:800px) {
	.recruitImages a:hover {
		opacity:0.75;
	}
}

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


.recruitTable.infoBox {
	border-color:#c39;
	background:url(images/common/recruit_bg.webp) 50% 50%;
}
.recruitTable table {
	width:100%;
	font-size:110%;
	font-family:var(--fontFamily-kaisei);
}
.recruitTable tr > * {
	font-weight:normal;
	padding:0.5em 1em;
	vertical-align:top;
	font-weight:500;
}
.recruitTable tr + tr > * {
	border-top:1px solid #bbb;
}
.recruitTable th {
	width:12em;
	letter-spacing:0.1em;
}
.recruitTable td {
	text-align:left;
}

.recruitTable div {
	color:#c06;
	position:relative;
}
.recruitTable div > span.fore {
	position:relative;
	z-index:2;
	display:block;
}
.recruitTable div > span.back {
	position:absolute;
	z-index:1;
	display:block;
	top:0;
	bottom:0;
	left:0;
	right:0;
}

.recruit-button {
	padding:1em 0;
}
.recruit-button a {
	display:block;
	width:80%;
	margin:0 auto;
	padding:0.6em 0;
	color:#fff;
	border-radius:0.3em;
	text-align:center;
	box-shadow:2px 2px 0.5em #fff inset ,-1px -1px 0.5em #000 inset;
}
.recruit-button a span {
	font-size:200%;
	font-weight:800;
	letter-spacing:0.05em;
	text-indent:0.05em;
	-webkit-backface-visibility:hidden;
	backface-visibility: hidden;
}

.recruit-button.n0 a span {
	font-size:280%;
}
.recruit-button.n0 a span:before {
	content:"[求人専用ダイアル]　";
	padding-top:0.5em;
	font-size:50%;
}

@media screen and (min-width:800px) { 
	.recruit-button.n0 a {
		pointer-events:none;
	}
	.recruit-button a:hover {
		box-shadow:1px 1px 0.5em #000 inset ,-2px -2px 0.5em #fff inset;
		transform:translate(2px,2px);
	}
}



.recruitImages.staff img ,
.recruitImages.staff .recruitTable.infoBox {
	border-color:#009;
}
.staff .recruitTable tr + tr > * {
	border-top-color:#bbb;
}

.staff .recruitTable div {
	color:#006;
}
.staff .recruitTable div > span.back {
}

@media screen and (max-width:799px) { 
	.recruitTable table {
		font-size:115%;
	}
	.recruitTable th {
		width:5em;
		padding:0.3em;
	}
	.recruitTable td {
		padding:0.3em;
		text-align:left;
	}

	.recruit-button a {
		width:90%;
	}
	.recruit-button a span {
		font-size:150%;
	}
	.recruit-button.n0 a span {
		font-size:180%;
		letter-spacing:0;
	}
}


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

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

.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.6em 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%);
	padding-top:0.7em;
	margin-bottom:0.5em;
}

@media screen and (max-width:799px){
	.form-notes {
		padding:0 1em;
		line-height:1.6;
	}
	.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 dt {
		width:100%;
		text-align:left;
		margin-bottom:0.3em;
	}
	dl#form-table dd {
		width:100%;
		padding-bottom:0.5em;
		border-bottom:1px dashed #ccc;
		text-align:center;
	}
}




/* ====================================================================
	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;
	accent-color:#c60;
}
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:#c90;
}


@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, #ddd);
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
	cursor:pointer;
}

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

@media screen and (min-width:800px){
	input[type="submit"]:hover ,.formButton a:hover {
		color:#fff;
		background:var(--gradient);
	}
}
@media screen and (max-width:799px){
	.button-wrapper{
		padding:2em 7em 0;
	}
}


/* ====================================================================
	form - error
==================================================================== */
.error {
	margin:0.3em 0 0.5em;
	display: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%;
}


.form-point {
	width:4em;
}
.status0 dd.form-32 {
	width:100%;
	text-align:center;
}
.status0 dd.form-32 input {
	width:30em;
	max-width:100%;
	text-align:center;
}



/* ==========================================================================================================================================
	link
=========================================================================================================================================== */
/* ============================================================================================
	link table
============================================================================================= */
table.bannerTable {
	margin:0 auto;
	padding:1em 0 2em;
}
table.bannerTable th {
	font-size:90%;
	color:#c60;
	vertical-align:middle;
}
table.bannerTable td {
	padding:1em;
}
table.bannerTable td img {
}


/* ============================================================================================
	link banner
============================================================================================= */
.linkBox {
	padding:2em 0.5em 0;
}
.linkBox .notice {
	padding:0 0.5em 0.5em;
	line-height:1.4;
	font-size:90%;
}

.linkList {
	text-align:center;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
}

.linkList li {
	padding:0.5em 0.5em 0;
}
.linkList li a {
	display:block;
	width:100%;
	height:100%;
	padding:0.5em;
	text-align:center;
	font-size:80%;
	color:#60f;
}
@media screen and (min-width:800px) {
	.linkList li a:hover {
		color:#fff;
		background-color:rgba(255,0,0,0.4);
	}
}

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


/* ==========================================================================================================================================
	profile
=========================================================================================================================================== */
.profileSubHeader {
	padding:0.5em 1em;
	text-align:left;
	color:#300;
	text-shadow:1px 1px 3px #fff;
	font-weight:500;
	background:var(--gradient);
}

#profSlider li > img {
	aspect-ratio:2/3;
	object-fit:contain;
}

#profileThumbs {
	padding-top:1em;
}
#profileThumbs li {
	width:calc(100% / 5);
	padding:2px;
}
#profileThumbs li.imageOn {
	cursor:pointer;
}
#profileThumbs li:not(.imageOn) {
	display:none;
}

#profileThumbs li .thumbPanel {
	position:relative;
}
#profileThumbs li .thumbPanel:before {
	content:'';
	display:block;
	width:100%;
	height:0;
	padding-top:calc(100% / 2 * 3);
}

#profileThumbs li img {
	position:absolute;
	top:0;
	left:0;
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	border:var(--img-border);
}


#profileImageFrame {
	position:relative;
	padding:0 1em;
}

.profileName {
	font-size:140%;
	padding:0.3em 0.3em 0.3em 0.6em;
	color:#300;
	text-shadow:1px 1px 3px #fff;
	font-weight:bold;
	background:var(--gradient);
	-webkit-backface-visibility:hidden;
	backface-visibility:hidden;
}

.profileName .icons.flex img {
	width:70px;
	margin-left:2px;
}

#profileInfoFrame #profileTable {
	width:100%;
	background:var(--content-bg);
	border:var(--img-border);
}
#profileInfoFrame #profileTable th ,
#profileInfoFrame #profileTable td {
	padding:0.3em;
	border-bottom:var(--img-border);
}
#profileInfoFrame #profileTable th {
	color:#c60;
	font-weight:bold;
	text-align:left;
	padding-left:1em;
	width:8em;
}

#profileMessage {
	padding-top:2em;
}
#profileMessage div {
	padding:1em;
	background:#fff;
	border:var(--img-border);
	font-size:95%;
}

#profileBlog {
	padding-top:2em;
}
#profile-info-message {
	height:400px;
	padding:5px;
	border:var(--img-border);
	overflow:hidden;
}
#profile-info-message-inner {
	width:100%;
	height:100%;
	-webkit-overflow-scrolling:touch;
}
#profile-info-message-inner iframe {
	width:100%;
	height:100%;
	border:0 none;
}

#profileInfoFrame .profEvent {
	display:none;
}


@media screen and (max-width:799px) { 
	#profileMain.contentsBloc.flex {
		padding-top:1.5em;
		flex-wrap:wrap;
	}
	#profileMain.contentsBloc.flex > #profileImageFrame {
		width:100%;
	}
	#profileMain.contentsBloc.flex > #profileInfoFrame {
		width:100%;
		padding-top:1.5em;
	}
}




/* ============================================================================================
	profile > schedule
============================================================================================= */
#profileSchedule {
	width:100%;
	margin:auto;
	text-align:center;
	border-spacing:0.1em;
	padding:0.1em;
	border-collapse:separate;
	font-size:90%;
}
#profileSchedule caption {
}
#profileSchedule th ,
#profileSchedule td {
	width:calc(100% / 7);
	padding:0.7em 0 1em;
	font-weight:500;
	border:var(--img-border);
	background-color:#fff;
	vertical-align:middle;
}
#profileSchedule .week0 {
	background-color:#fee;
}
#profileSchedule .week6 {
	background-color:#eef;
}


#profileSchedule td .flex {
	display:flex;
	width:100%;
	height:100%;
	justify-content:center;
	flex-wrap:wrap;
	align-items:center;
}

@media screen and (max-width:799px) { 
	#profileSchedule th {
		padding:0.2em 0;
	}
}



/* ============================================================================================
	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:#fff6;
}
#profileGuideBottom li a {
	display:block;
	padding-bottom:0.15em;
	color:#930;
}

#profileGuideBottom li + li {
	border-left:0 none;
}
#profileGuideBottom li a span {
}
@media screen and (min-width:800px) {
	#profileGuideBottom li a:hover {
		color:#000;
		background-color:#fe96;
	}
}


.blogBanner {
	text-align:center;
	padding:0 0.5em 3em;
}

.blogBanner a {
	display:block;
}
.blogBanner a img {
	border:1px solid #fff;
}
@media screen and (min-width:800px) {
	.blogBanner a:hover {
		box-shadow:0 0 0.5em #f00;
	}
}



