@charset "utf-8";


/* ============================================================================================
	組み込みフォント
============================================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;700;900&display=swap');
/*
	font-family:'Noto Sans JP' ,sans-serif;
	font-family:'Noto Serif JP' ,serif;
*/

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




/* ============================================================================================
	切り分け
============================================================================================= */
@media screen and (min-width:800px) { 
	.only-sp:not(.only-pc) {
		display:none !important;
	}
}
@media screen and (max-width:799px) { 
	.only-pc:not(.only-sp) {
		display:none !important;
	}
}



/* ============================================================================================
	初期化
============================================================================================= */
*,*:before,*:after {
	margin:0;
	padding:0;
	border:0 none;
	box-sizing:border-box;
	font-size:inherit;
	font-weight:inherit;
	font-family:inherit;
	font-style:inherit;
	color:inherit;
	text-decoration:inherit;
	text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
}
.bx-wrapper {
	backface-visibility:hidden;
	-webkit-backface-visibility:hidden;
}
html ,body {
	position:relative;
	height:100%;
	min-height:100%;
}

button ,input ,textarea ,select {
	font-size:inherit;
	letter-spacing:1px;
	text-indent:1px;
	font-family:'Noto Sans JP' ,serif;
	padding:0.3em 0.3em;
	border:1px solid #999;
	border-radius:5px;
	background:#333;
}

input[type="submit"] ,button {
	padding:5px 20px;
}

a ,a:link ,a:visited {
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
}
a:hover {
}

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

.anchorLink {
	cursor:pointer;
}


.nopage {
	padding:10em 0 30em;
	text-align:center;
}
.nodata {
	padding:3em 0 5em;
	text-align:center;
}
.noDisp {
	display:none;
}

.bold {
	font-weight:bold;
}

em {
	padding:0 0.3em;
	color:#ff9;
	font-size:130%;
}

.sendIP {
	padding-top:3em;
	text-align:right;
	color:#666;
	font-size:80%;
}
.sendIP:before {
	content:"- Send Information -";
	display:block;
}


/* ============================================================================================
	HTML ベース
============================================================================================= */
body{
	font-size:16px;
	line-height:1.8;
	color:#eee;
	background:url(images/common/fv_bg.jpg) 50% 50% no-repeat #000 fixed;
	background-size:cover;
	font-family:"Noto Sans JP" ,sans-serif;
	font-weight:300;
}
#bgLayer {
	background:rgba(0,0,0,0.7);
	background:#000;
}
.innerFrame {
	width:1200px;
	margin:0 auto;
	padding:0 0.5em;
}
@media screen and (max-width:799px) { 
	.innerFrame {
		width:480px;
	}
}


/* ============================================================================================
	HEADER
============================================================================================= */
#fixed-header {
	position:fixed;
	top:0;
	left:0;
	right:0;
	background:rgba(0,0,0,0.7);
	border-bottom:1px solid #ccc;
	z-index:9001;
}


/* ==============================================
	HEADER - H1
============================================== */
#h1 {
	line-height:2;
	font-size:80%;
	display:none;
}


/* ==============================================
	HEADER - MAIN
============================================== */
#header-main.flex {
	height:75px;
	display:flex;
	justify-content:space-between;
	text-align:center;
}


#header-main.flex > * {
	height:100%;
	padding:3px 0;
}
#header-main.flex > .logo * {
	display:block;
	height:100%
}
#header-main.flex img {
	max-height:100%;
}



@media screen and (max-width:799px){
	#header-main.flex {
		height:70px;
	}
	#header-main.flex > div.logo {
		margin-right:auto;
	}
	#header-main.flex > div#header-tel {
		margin-right:0.5em;
	}
}






/* ==============================================
	HEADER - MAIN - NAVI(PC)
============================================== */
#pc-headerNav {
	height:100%;
}
#pc-headerNav .navMenu {
	height:100%;
	padding:0.5em 0;
	display:flex;
	justify-content:space-between;
	text-align:center;
}

#pc-headerNav .navMenu .navCell {
	height:100%;
	padding:0.2em 0.8em;
	border-left:1px solid #ccc;
}
#pc-headerNav .navMenu .navCell:last-child {
	border-right:1px solid #ccc;
}

#pc-headerNav .navMenu .navCell .aLink {
	height:100%;
	padding:0.2em 0.2em;
	line-height:1.4;
	display:flex;
	justify-content:center;
	text-align:center;
	flex-direction:column;
	border-bottom:1px solid transparent;
}
#pc-headerNav .navMenu .navCell .aLink:hover {
	border-bottom-color:#ddd;
}

#pc-headerNav .navMenu .navCell .aLink > span:nth-child(1) {
	font-size:110%;
	font-weight:bold;

	background:linear-gradient(to bottom ,#bbb ,#ddd ,#fff ,#999);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
#pc-headerNav .navMenu .navCell .aLink > span:nth-child(2) {
	font-size:70%;
	font-weight:bold;
}



/* ============================================================================================
	HEADER - NAVI(SP)
============================================================================================ */


/* ==============================================
	HEADER - NAVI(SP) - panel
============================================== */
#sp-fixedNav-panel {
	position:fixed;
	right:-105%;
	top:70px;
	width:auto;
	height:auto;
	padding:0.5em 1em;
	color:#000;
    background:rgba(255,255,255,0.9);
	box-shadow:-1px 1px 3px #000;
	z-index:8999;
	transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
	font-weight:bold;
}

#sp-navi-panel:checked ~ #sp-fixedNav-panel {
	right:0;
}

/* filter かけると position:fixed が解除されるため保留 */
/*
#sp-navi-panel:checked ~ #main {
	filter:blur(2px);
}
#sp-navi-panel:checked ~ #scrollTop-button {
	display:none !important;
}
*/



/* ==============================================
	HEADER - NAVI(SP) - open icon
============================================== */
#header-main.flex > #menu-opener {
	padding:1px 0.5em;
	display:flex;
	justify-content:center;
	aling-items:center;
	flex-direction:column;
}
#header-menu {
	width:40px;
	height:40px;
	display:flex;
	justify-content:center;
	align-items:center;
}
#menuIcon {
	position:relative;
	display:block;
	width:100%;
	height:4px;
	background:#fff;
	border-radius:2px;

	-webkit-transform:rotate(0deg);
	transform:rotate(0deg);
	-webkit-transition:.2s ease-out;
	transition:.2s ease-out;
}
#menuIcon:before ,
#menuIcon:after {
	content:"";
	position:relative;
	display:block;
	width:100%;
	height:4px;
	background:#fff;
	border-radius:2px;
	-webkit-transform:rotate(0deg);
	transform:rotate(0deg);
	-webkit-transition:.2s ease-out;
	transition:.2s ease-out;
}
#menuIcon:before {
	top:-12px;
}
#menuIcon:after {
	bottom:-8px;
}
#menuLabel {
	display:block;
	line-height:1;
	font-size:80%;
}
#menuLabel:after {
	content:attr(data-open);
}

#sp-navi-panel:checked ~ #fixed-header #menuIcon {
	background:transparent;
}
#sp-navi-panel:checked ~ #fixed-header #menuIcon:before {
	top:50%;
	-webkit-transform:rotate(45deg);
	transform:rotate(45deg);
}
#sp-navi-panel:checked ~ #fixed-header #menuIcon:after {
	bottom:50%;
	-webkit-transform:rotate(-45deg);
	transform:rotate(-45deg);
}
#sp-navi-panel:checked ~ #fixed-header #menuLabel:after {
	content:attr(data-close);
}



/* ==============================================
	HEADER - NAVI(SP) - menu
============================================== */
#sp-fixedNav-head {
	padding:0.5em 0;
	display:flex;
	justify-content:space-between;
	align-items:stretch;
	text-align:center;
	border-bottom:1px solid #000;
}


#sp-fixedNav-head > div {
	width:90px;
	padding:5px;
}

#sp-fixedNav-head > .head {
	order:2;
	flex-grow:1;
	line-height:1;
}
#sp-fixedNav-head > .phone {
	order:3;
}
#sp-fixedNav-head > .home {
	order:1;
}


#sp-fixedNav-head > .head .title {
	font-size:160%;
	font-weight:bold;
}


#sp-fixedNav-head > .head .time {
	padding-top:0.5em;
	display:flex;
	justify-content:center;
	align-items:center;
}
#sp-fixedNav-head > .head .time > span {
	margin-right:0.3em;
	padding:0 0.5em;
	font-size:85%;
	line-height:1.6;
	color:#fff;
	background:#000;
	border-radius:0.2em;
}


#sp-fixedNav-head > .head .tel {
	padding-top:0.3em;
	display:flex;
	justify-content:center;
	align-items:flex-end;
	flex-wrap:wrap;
}
#sp-fixedNav-head > .head .tel > span {
	margin-right:0.3em;
}
#sp-fixedNav-head > .head .tel > a {
	font-size:140%;
}

#sp-fixedNav-head > .head:after {
	content:"";
	display:block;
	margin-top:0.2em;
	margin-left:0.5em;
	height:0.5em;
	background:linear-gradient(to left bottom ,transparent ,transparent 45% ,#000 55% ,#000)
}



/* ==============================================
	HEADER - NAVI(SP) - icon link
============================================== */
#sp-fixedNav-panel .navCell {
	padding:0.3em;
	text-align:center;
	font-size:90%;
	line-height:1.4;
}
#sp-fixedNav-panel .navCell .aLink {
	width:100%;
}
#sp-fixedNav-panel .navCell .aLink > span:first-child {
	margin-bottom:0.2em;
	padding:0.3em;
	background:#000;
	border-radius:0.3em;
	display:flex;
	justify-content:center;
	align-items:center;
}
#sp-fixedNav-panel .navCell .aLink img {
	filter:brightness(0) invert(1);
}

#sp-fixedNav-panel .navMenu {
	width:390px;
	display:flex;
	justify-content:space-between;
	align-items:stretch;
	flex-wrap:wrap;
}
#sp-fixedNav-panel .navMenu > .navCell {
	width:calc(100% / 3);
	padding:1em 0.5em;
	border-bottom:1px solid #000;
}
#sp-fixedNav-panel .navMenu > .navCell span {
	display:block;
}
#sp-fixedNav-panel .navMenu > .navCell .aLink > span:first-child {
	margin:0.2em 1em;
}


/* ==============================================
	HEADER - NAVI(SP) - menu - SNS
============================================== */
#sp-fixedNav-SNS {
	padding:0.3em 0.5em 2em;
}
#sp-fixedNav-SNS .title {
	font-size:140%;
}

.sns-icon {
	display:flex;
	justify-content:center;
	align-items:center;
}
.sns-icon > .icon {
	width:100px;
	padding:0 20px;
}
.sns-icon > .icon a {
	display:block;
}

#sp-fixedNav-SNS .sns-icon > .icon img {
	filter:brightness(0) invert(0);
}





/* ============================================================================================
	MAIN
============================================================================================ */
#main {
	padding-top:120px;
	min-height:80vh;
}
#main main {
	padding-bottom:6em;
}

@media screen and (max-width:799px){
	#main {
		padding-top:100px;
	}
}


/* ==============================================
	MAIN - page-title
============================================== */
.page-title {
	padding-top:1em;
	border-bottom:1px solid #eee;
	margin-bottom:2em;
}
.page-title > span {
}
.page-title .en {
	line-height:1.4;
	font-size:220%;
	font-weight:500;

	background:linear-gradient(to bottom ,#bbb ,#ddd ,#fff ,#999);
	-webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.page-title .jp {
	padding-left:1em;
}


@media screen and (max-width:799px){
	.page-title {
		padding-left:0.5em;
		margin-bottom:0;
	}
	.page-title .en {
		font-size:180%;
	}
	.page-title .jp {
	}
}



/* ==============================================
	MAIN - section-block
============================================== */
.section-block {
	padding:3em 0 6em;
}

.section-flex {
	display:flex;
	justify-content:space-between;
}
.section-flex > .left-section {
	width:300px;
}
.section-flex > .right-section {
	width:calc(100% - 300px - 60px);
}

.left-section .section-block {
	padding:2em 0 1em;
}
.left-section .section-block.side-menu {
	padding-top:3em;
}

@media screen and (max-width:799px){
	.section-block {
		padding-top:4em;
	}

	.section-flex {
		flex-direction:column-reverse;
	}
	.section-flex > .left-section {
		width:100%;
	}
	.section-flex > .right-section {
		width:100%;
	}
}



/* ==============================================
	MAIN - section-block - section-title
============================================== */
.section-title {
	padding-bottom:4em;
	line-height:1.2;

	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
}
.section-title > span.flex {
	padding:0 3em;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
}
.section-title > span.flex > span {
	background:linear-gradient(to bottom ,#bbb ,#ddd ,#fff ,#999);
	-webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.section-title .en {
	font-size:220%;
	font-weight:500;
}
.section-title .jp {
	font-size:130%;
	font-weight:400;
}

.section-title:before ,
.section-title:after {
	content:"";
	height:1px;
	width:8em;
	background:linear-gradient(to left ,#eee ,#ccc ,#666);
	flex-grow:1;
}
.section-title:after {
	background:linear-gradient(to right ,#eee ,#ccc ,#666);
}

@media screen and (max-width:799px){
	.section-title {
		padding-bottom:3em;
	}
	.section-title > span.flex {
		padding:0 1.5em;
	}
	.section-title .en {
		font-size:180%;
	}
	.section-title .jp {
		font-size:110%;
	}

	.section-title:before ,
	.section-title:after {
		flex-grow:1;
		width:auto;
	}
}



/* ==============================================
	MAIN - image-list
============================================== */
.image-list {
	text-align:center;
}
.image-list > div {
	padding-bottom:2em;
}

@media screen and (max-width:799px){
	.image-list {
		width:90%;
		margin:0 auto;
	}
}



/* ==============================================
	MAIN - common-table
============================================== */
.common-table {
	width:80%;
	max-width:100%;
	margin:0 auto;
	border:2px solid #ddd;
	background:rgba(0,0,0,0.6);
	letter-spacing:0.1em;
	line-height:1.4;
}
.common-table th ,
.common-table td {
	padding:1em 1em 1em 1.2em;
	border:1px solid #999;
}
.common-table th {
	width:10em;
}

.common-table.mini {
	min-width:50%;
}
.common-table.mini td {
	text-align:center;
}
.common-table.mini td > div {
	display:inline-block;
	text-align:right;
}

@media screen and (max-width:799px){
	.common-table ,
	.common-table.mini {
		min-width:95%;
		font-size:95%;
	}
	.common-table th ,
	.common-table td {
		padding:0.3em;
		letter-spacing:0.05em;
	}
	.common-table th {
		width:5em;
	}
	.common-table th {
		white-space:nowrap;
	}
}



/* ==============================================
	MAIN - section-notes
============================================== */
.section-notes {
	text-align:center;
}
.section-notes > div {
	display:inline-block;
	text-align:left;
}
.section-notes.center > div {
	text-align:center;
}

.section-notes a {
	padding:0 0.1em;
	color:#ff0;
	text-decoration:underline;
}
.section-notes a:hover {
	color:#f39;
}

.common-table + .section-notes {
	padding-top:1.5em;
}


.web-form .section-notes {
	text-align:center;
}
.web-form .section-notes > .section-notes-inbox {
	display:inline-block;
	text-align:left;
}

.web-form .section-notes p + p {
	padding-top:1em;
}

.web-form form {
 	padding-top:3em;
}





/* ==============================================
	MAIN - triming image
============================================== */
.trimming-image {
	position:relative;
	width:100%;
	border-radius:0.5em;
	overflow:hidden;
}
.trimming-image:before {
	content:"";
	display:block;
	width:100%;
	height:0;
	padding-top:100%;
}
.trimming-image > span {
	position:absolute;
	top:0;
	left:0;
	display:block;
	transform-origin:0 0;
	background-repeat:no-repeat;
}




/* ==============================================
	MAIN - link button
============================================== */
.link-button {
	padding-top:6em;
	text-align:right;
}
.link-button > a {
	position:relative;
	display:inline-block;
	padding:0.2em 3em;
	letter-spacing:0.05em;
	text-indent:0.05em;
	text-align:center;
	background:rgba(0,0,0,0.5);
	border:1px solid #999;
	border-radius:0.3em;
	overflow:hidden;
}
.link-button > a:after {
	content:"\025b6";
	font-size:90%;
	padding-left:0.5em;
}

.link-button > a:hover {
	border:1px solid #ccc;
	background:rgba(51,51,51,0.8);
}

@media screen and (max-width:799px){
	.link-button {
		padding-top:3em;
	}
	.link-button > a {
		padding:0.2em 2em;
	}
}



/* ==============================================
	MAIN - form link button
============================================== */
.form-button {
	padding-bottom:4em;
	text-align:center;
}
.form-button > a {
	display:inline-block;
	font-size:130%;
	letter-spacing:0.05em;
	text-indent:0.05em;
	font-family:"CGothic" ,"Noto Sans JP" ,sans-serif;
	padding:0.2em 1em;
	border:1px solid #999;
	border-radius:0.3em;
	background:#333;
}
.form-button > a:hover {
	background:#666;
}



/* ==============================================
	MAIN - form table
=============================================== */
.web-form .common-table {
	max-width:800px;
	border-collapse:separate;
	border-spacing:3px;
	border:0 none;
}

.web-form .common-table th ,
.web-form .common-table td {
	padding:0.5em 1em;
	letter-spacing:0.1em;
	background:#222;
	border:0 none;
}
.web-form .common-table th {
	width:35%;
}

.required:after ,
.required:before {
	display:inline-block;
	padding:0.1em 0.3em 0.2em;
	font-size:80%;
	line-height:1.1;
	color:#fff;
	background:#f00;
	border-radius:3px;
}
.required:after {
	content:attr(data-text);
	margin-left:0.3em;
	margin-bottom:0.1em;
}

.web-form .memo {
	color:#666;
}

.web-form label {
	display:block;
}
.web-form .error {
	display:block;
}
.error {
	color:#ff0;
}


input,textarea {
	max-width:50vw;
}
input.widthS {
	width:4em;
}
input.widthMS {
	width:8em;
}
input.widthM {
	width:12em;
}
input.widthL {
	width:20em;
}
textarea {
	display:block;
	width:20em;
	height:8em;
}

.formButton {
	width:100%;
	padding-top:2em;
	text-align:center;
}


@media screen and (max-width:799px){
	.web-form .common-table {
		max-width:100%;
	}
	.web-form .common-table th ,
	.web-form .common-table td {
		padding:0.5em 0.8em;
	}
}



/* ==============================================
	MAIN - section-block - iframe(override)
============================================== */
.section-block iframe {
	width:100% !important;
	max-width:100%;
}



/* ==============================================
	MAIN - tab selector
============================================== */
.tab-frame {
	padding:0 4em;
}

.category-selector {
	margin-bottom:-1px;
	padding:2em 4em 0;
	display:flex;
	justify-content:flex-start;
	align-items:stretch;
}
.category-selector > li:not(:last-child) {
	padding-right:0.5em;
}
.category-selector .selector {
	padding:0.5em 1.5em;
	border:1px solid #fff;
	border-radius:3px 3px 0 0;
	cursor:pointer;
}
.category-selector .selector.selected {
	border-bottom-color:#000;
}
.category-selector .selector:not(.selected) {
	color:#000;
	background:#fff;
}

.category-selector + .tab-frame .tab-block {
	border:1px solid #fff;
}
.category-selector + .tab-frame .section-block {
	padding-top:2em;
}
.category-selector + .tab-frame + .form-button {
	padding-top:4em;
}

@media screen and (max-width:799px){
	.tab-frame {
		padding:0 0.5em;
	}

	.category-selector {
		margin-bottom:-1px;
		padding:2em 0.5em 0;
	}
	.category-selector .selector {
		padding:0.3em 0.5em;
		font-size:90%;
	}
	.category-selector .selector.selected {
		border-bottom:2px solid #000;
	}

	.category-selector + .tab-frame .section-block {
		padding:2em 0.5em 0.5em;
	}
}




/* ============================================================================================
	side (left)
============================================================================================ */

/* ==============================================
	title-side
============================================== */
.side-title {
	padding:2em 0;
	text-align:center;
}
.side-title:before ,
.side-title:after {
	content:"";
	display:block;
	height:1px;
	width:100%;
	background:linear-gradient(to left ,#666 ,#ccc ,#666);
}
.side-title > span {
	font-size:160%;
	font-weight:500;

	background:linear-gradient(to bottom ,#bbb ,#ddd ,#fff ,#999);
	-webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}



@media screen and (max-width:799px){
	.side-title {
		display:flex;
		justify-content:center;
		align-items:center;
		text-align:center;
	}
	.side-title > span {
		font-size:180%;
	}

	.side-title:before ,
	.side-title:after {
		content:"";
		height:1px;
		flex-grow:1;
		width:auto;
	}
	.side-title:before {
		background:linear-gradient(to left ,#fff ,#fff ,#999);
		margin-right:1em;
	}
	.side-title:after {
		background:linear-gradient(to right ,#fff ,#fff ,#999);
		margin-left:1em;
	}
}


/* ==============================================
	SNS
============================================== */
.sns-frame {
	background:#292F33;
	border-radius:5px;
}
.sns-title {
	padding:0.5em 5em 0;
}

@media screen and (max-width:799px){
	.left-section .sns-frame {
		width:80%;
		margin:0 auto;
	}
}



/* ==============================================
	side menu
============================================== */
.side-menu {
}
.side-banner {
	padding:1em 0 2em;
	text-align:center;
}

.side-banner a {
	display:block;
}
.side-banner a:hover {
	box-shadow:0 0 3px 1px #fff;
}

@media screen and (max-width:799px){
	.side-menu {
		display:flex;
		justify-content:center;
		flex-wrap:wrap;
	}
	.side-menu .side-title {
		width:100%;
	}
	.side-menu .side-banner {
		padding:1em 3em 2em;
	}
}



/* ============================================================================================
	index.html
============================================================================================ */

/* ==============================================
	FV
============================================== */
#fv {
}
#fv-bg {
	position:fixed;
	top:0;
	left:0;
	right:0;
	bottom:0;
	width:100%;
	min-width:1200px;
	height:100vh;
	background:url(images/common/fv_bg.jpg) 50% 50% no-repeat;
	background-size:cover;
	z-index:-2;
}
#fv-video {
	position:fixed;
	top:0;
	left:0;
	right:0;
	bottom:0;
	width:100vw;
	min-width:1200px;
	height:100vh;
	z-index:-1;
	text-align:center;
	overflow:hidden;
	background:#000;
}
#fv-video video {
	width:100%;
	height:101%;
	object-fit:cover;
	object-position:50% 50%;
}
#fv #fv-logo {
	position:absolute;
	left:0;
	right:0;
	top:-100vh;
	width:1200px;
	margin:auto;
	height:100vh;
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
}
#page-index #main {
	position:relative;
	margin-top:100vh;
	padding-top:0;
/*
	background:url(images/common/bg.jpg) 50% 50% no-repeat #000 fixed;
	background-size:cover;
*/
}

@media screen and (min-width:800px){
}
@media screen and (max-width:799px){
	#fv-bg {
		min-width:480px;
		background-position:36% 50%;
	}
	#fv-video {
		min-width:480px;
	}
	#fv #fv-logo {
		width:100vw;
	}
	#fv #fv-logo img {
		width:80%;
	}

}


/* ==============================================
	map(override)
============================================== */
#top-map iframe {
	display:block;
	width:100% !important;
} 


/* ============================================================================================
	CAST
============================================================================================ */

/* ==============================================
	cast list
============================================== */
.cast-list {
	display:flex;
	justify-content:flex-start;
	align-items:flex-start;
	flex-wrap:wrap;
}
.cast-list > .cast-cell {
	width:calc(100% / 4);
	padding:0.6em 0.6em 2em;
}
.cast-cell .aFrame {
	display:block;
	width:100%;
	padding:3px;
	text-align:center;
	background:rgba(51,51,51,0.6);
	border-radius:0.2em;
}
.cast-cell .castName {
	padding:0.3em 0;
	line-height:1.4;
}
.cast-cell .castName .bd {
	padding-right:0.3em;
	color:#f9f;
}

.cast-cell a.aFrame:hover {
	background:rgba(102,102,102,0.6);
}


@media screen and (max-width:799px){
	.cast-list:not(.others) > .cast-cell {
		width:calc(100% / 3);
	}
	.cast-list > .cast-cell {
		padding:0.3em 0.3em 1em;
	}
	.cast-cell .castName {
		font-size:90%;
	}
}




/* ============================================================================================
	PROFILE
============================================================================================ */

/* ==============================================
	profile layout
============================================== */
.prof-flex {
	display:flex;
	justify-content:center;
	align-items:flex-start;
	padding-bottom:4em;
}

.prof-image {
	padding-right:2em;
}
.prof-image > div.trimming-image {
	width:400px;
	margin:0 auto;
	outline:1px solid #333;
}

.prof-info {
	padding-left:2em;
}
.prof-data {
	width:400px;

	display:flex;
	justify-content:flex-start;
	align-items:stretch;
	flex-wrap:wrap;
}
.prof-data dt ,
.prof-data dd {
	width:25%;
	padding:0.8em 1em;
	border-bottom:1px solid #ccc;
	display:flex;
	align-items:center;
}
.prof-data dd {
	width:65%;
}
.prof-data dt:first-of-type ,
.prof-data dd:first-of-type {
	padding-top:5px;
}


@media screen and (min-width:800px){
	.prof-data .sns-icon > .icon {
		padding:0 0.5em;
	}
}

@media screen and (max-width:799px){
	.prof-flex {
		flex-wrap:wrap;
		text-align:center;
	}
	.prof-image {
		width:100%;
		padding:0;
	}
	.prof-info {
		width:100%;
		padding:2em 0 0;
	}

	.prof-data {
		width:100%;
		justify-content:center;
	}
	.prof-data dt ,
	.prof-data dd {
		padding:0.3em;
	}
	.prof-data dd {
		text-align:left;
	}
}



.prof-data .sns-icon > .icon {
	width:25%;
	padding-left:0;
}
@media screen and (min-width:800px){
	.prof-data .sns-icon > .icon a {
		border-radius:3px;;
	}
	.prof-data .sns-icon > .icon a:hover {
		box-shadow:0 0 1px 1px #fff;
	}
}


/* ==============================================
	profile gallery
============================================== */
.prof-gallery {
	display:flex;
	justify-content:flex-start;
	align-items:stretch;
	flex-wrap:wrap;
}
.prof-gallery > li {
	width:calc(100% / 4);
	padding:1em;
}
.prof-gallery > li > div:hover {
	box-shadow:0 0 1px 1px #fff;
}

#page-profile #spotlight .header div {
	width:60px;
	opacity:0.8;
}
#page-profile #spotlight .icon {
	background-size:48px 48px;
}

@media screen and (max-width:799px){
	.prof-gallery > li {
		padding:0.2em;
	}
}




/* ==============================================
	contents banners
============================================== */
.contentLinks {
	padding:0 1em 3em;
	text-align:center;
}
.contentLinks li {
	padding-bottom:1em;
}
.contentLinks li a {
	display:inline-block;
}
.contentLinks li a:hover {
	box-shadow:0 0 1px 1px #fff;
}



/* ============================================================================================
	INFORMATION
============================================================================================ */

/* ==============================================
	event information list
============================================== */
.event-list {
	padding:0 2em;
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
}
.event-cell {
	width:100%;
	max-width:1000px;
	padding:0.5em;
}
.event-cell a {
	padding:0.8em 1em;
	background:rgba(51,51,51,0.6);
	display:flex;
	justify-content:center;
	align-items:flex-start;
}
.event-cell a:hover {
	background:rgba(102,102,102,0.6);
}

.event-cell a > .image {
	width:15%;
	padding:0.2em 0;
	text-align:center;
}
.event-list.full .event-cell a > .image {
	padding-left:1.5em;
	padding-right:1em;
}
.event-cell a > .info {
	width:85%;
	padding:0 1.5em;
}

.event-cell a > .info .date {
	font-size:90%;
	border-bottom:1px solid #ccc;
}
.event-cell.new .date:after {
	content:"";
	display:inline-block;
	margin-left:1em;
	font-size:85%;
	line-height:1.4;
	width:5em;
	text-align:center;
}
.event-cell.new .date:after {
	content:"NEW";
	background:#c09;
}

.event-cell a > .info .title {
	padding:0.3em 0.3em 0.5em;
	font-weight:bold;
}
.event-cell a > .info .text {
	padding-left:0.5em;
	font-size:85%;
	line-height:1.6;

	overflow:hidden;
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:3;
}

@media screen and (max-width:799px){
	.event-list {
		margin:0 auto;
		padding:0;
		flex-wrap:wrap;
	}
	.event-cell {
		width:100%;
	}
	.event-cell a {
		background:rgba(51,51,51,0.8);
	}
}


/* ==============================================
	news list
============================================== */
.news-list {
	padding:0 2em;
}
.news-cell {
	padding:0.3em;
	border-top:1px solid #999;
	background:rgba(51,51,51,0.4);
}
.news-cell:last-child {
	border-bottom:1px solid #999;
}
.news-cell a {
	padding:0.5em 1em;
	display:flex;
	justify-content:flex-start;
	align-items:center;
}
.news-cell a:hover {
	background:rgba(102,102,102,0.4);
}

.news-cell a:before {
	content:"";
	display:block;
	font-size:85%;
	width:5em;
	text-align:center;
}
.news-cell.new a:before {
	content:"NEW";
	background:#c09;
}

.news-cell a > .head {
	width:calc(100% - 5em);
	padding-left:1em;
	line-height:1.4;
}
.news-cell a .date {
	font-size:90%;
}
.news-cell a .title {
}


@media screen and (max-width:799px){
	.news-list {
		margin:0 0.5em;
		padding:0 0.5em;
	}
	.news-cell a {
		padding:0.5em 0.5em;
	}
}



/* ==============================================
	INFORMATION - breadcrumb list
============================================== */
.breadcrumb-list {
	padding:1em;
	font-size:90%;
	letter-spacing:0.05em;
}
.breadcrumb-list a:hover {
	text-decoration:underline;
}
.breadcrumb-list .delimiter {
	padding:0 0.5em;
}



/* ==============================================
	INFORMATION - layout
============================================== */
#information {
}
#information .date {
	padding:0.5em 1em;
	border-bottom:1px solid #ccc;
	display:flex;
	justify-content:flex-end;
	align-items:center;
}
#information .date > span {
	padding-left:0.5em;
}
#information .date.new:before {
	content:"NEW";
	display:block;
	font-size:85%;
	width:5em;
	text-align:center;
	background:#c09;
}

#information .title {
	padding:0.5em 1em;
	font-size:140%;
	letter-spacing:0.1em;
	text-indent:0.1em;
	border-bottom:1px solid #ccc;
}
#information .image {
	padding-top:2em;
	text-align:center;
}
#information .text {
	padding:2em 2em 0;
}

@media screen and (max-width:799px){
	#information .image {
		padding:2em 2em 0;
	}
	#information .text {
		padding:2em 1em 0;
	}
}


/* ==============================================
	INFORMATION - page guide
============================================== */
.info-guide {
	border-top:1px solid #fff;
	border-bottom:1px solid #fff;
	display:flex;
	justify-content:center;
	align-items:stretch;
}
.info-guide > .info-link {
	width:calc(100% / 2);
	padding:0.3em;
}
.info-guide > .info-link a {
	width:100%;
	height:100%;
	padding:0.5em 1em;
	display:block;
}
.info-guide > .info-link a:hover {
	background:rgba(51,51,51,0.8);
}

.info-guide > .info-link a .prompt {
	font-weight:bold;
	padding-bottom:0.2em;
}

.info-guide > .info-link a .text {
	padding:0 1.2em;
	display:flex;
	justify-content:flex-start;
}
.info-guide > .info-link a .text > .image {
	width:20%;
}
.info-guide > .info-link a .text > .head {
	width:calc(100% - 20%);
}

.info-guide > .info-link.prev {
	text-align:left;
	border-right:1px solid #fff;
}
.info-guide > .info-link.prev a .text > .image + .head {
	padding-left:0.5em;
}


.info-guide > .info-link.next {
	text-align:right;
}
.info-guide > .info-link.next a .text {
	flex-direction:row-reverse;
}
.info-guide > .info-link.next a .text > .image + .head {
	padding-right:0.5em;
}


.info-guide .date {
	font-size:85%;
}
.info-guide .date.new > span {
	padding-left:0.5em;
}
.info-guide .date.new:before {
	content:"NEW";
	display:inline-block;
	font-size:85%;
	width:5em;
	text-align:center;
	background:#c09;
}

@media screen and (max-width:799px){
	.info-guide > .info-link a {
		padding:0.5em;
	}
	.info-guide > .info-link a .text {
		padding:0;
	}
}


/* ============================================================================================
	SHOP & SYSTEM
============================================================================================ */

/* ==============================================
	SYSTEM
============================================== */
.system-list {
	width:800px;
	max-width:100%;
	margin:0 auto;
}
.system-list li.flex {
	padding:0.5em 3em;
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
}
.system-list li.flex:nth-child(1) {
}
.system-list li.flex > .notes {
	width:100%;
	text-align:center;
}
.system-list li.flex .image {
	width:100%;
	padding:0.5em;
	text-align:center;
}

.system-list li.flex.type1 {
	padding-bottom:1em;
	border-bottom:1px solid #fff;
	margin-bottom:0.5em;
}

.system-list li.flex.type2 {
	margin:1em 0.5em;
	padding:0.2em 1em;
	border:1px solid #fff;
}

.system-list li.flex > .sideR {
	text-align:right;
	margin-left:auto;
}


.system-list li .size0 {
	font-size:120%;
}
.system-list li .size1 {
	font-size:180%;
}
.system-list li .size2 {
	font-size:210%;
}

@media screen and (max-width:799px){
	.system-list li {
		font-size:80%;
	}
}




/* ============================================================================================
	RECRUIT
============================================================================================ */

/* ==============================================
	catch image
============================================== */
.recruit-catch {
	padding:4em 2em;
	text-align:center;
}

@media screen and (max-width:799px){
	.recruit-catch {
		padding:3em 0.5em 0;
	}
}



/* ============================================================================================
	LINK
============================================================================================ */

/* ==============================================
	text block
============================================== */
.text-block {
	padding:1em;
	text-align:center;
}
.text-block > div {
	display:inline-block;
	text-align:left;
}
.text-block img {
	box-shadow:0 0 3px #999;
}
.para-flex p {
	padding-bottom:1em;
	display:flex;
	justify-content:flex-start;
	align-items:center;
}
.para-flex p > span:first-child {
	width:5em;
	text-align:center;
}
.para-flex p > span:last-child {
	width:calc(100% - 5em);
}



/* ==============================================
	link list
============================================== */
.link-list {
	padding:0 2em;
}
.link-cell {
	padding:0.5em;
	background:rgba(0,0,0,0.5);
	border-top:1px solid #999;
}
.link-cell:last-child {
	border-bottom:1px solid #999;
}
.link-cell > a {
	width:100%;
	padding:0.5em;
	display:flex;
	justify-content:center;
	align-items:center;
}
.link-cell > a:hover {
	background:rgba(51,51,51,0.8);
}

.link-cell > a > .image {
	width:50%;
	text-align:right;
	padding-top:0.5em;
	padding-right:2em;
}
.link-cell > a > .info {
	width:50%;
}
.link-cell > a > .info .title {
	padding:0 0.5em 0.3em;
	border-bottom:1px solid #999;
}
.link-cell > a > .info .text {
	padding:0.5em 1em 0;
	font-size:80%;
}

@media screen and (max-width:799px){
	.link-cell > a {
		flex-direction:column-reverse;
		flex-wrap:wrap;
		background:rgba(51,51,51,0.8);
	}
	.link-cell > a > .image {
		width:100%;
		padding-right:0;
		text-align:center;
	}
	.link-cell > a > .info {
		width:100%;
	}
}





/* ============================================================================================
	FOOTER
============================================================================================ */
footer {
	letter-spacing:0.1em;
	text-indent:0.1em;
}
#footer {
	padding:4em 0 1em;
	background:rgba(0,0,0,0.7);
	border-top:1px solid #999;
	text-align:center;
	font-family:"CGothic" ,"Noto Sans JP" ,sans-serif;
}

#footer-info {
}
#footer-info .logo {
	width:320px;
	max-width:50%;
	margin:0 auto;
}
#footer-info .addr {
	font-weight:300;
}
#footer-info .tel {
	font-size:160%;
}
#footer-info + .sns-icon {
	padding-top:1em;
}

#copyright {
	padding-top:2em;
	font-size:90%;
}


@media screen and (max-width:799px) {
	footer {
		padding-bottom:40px;
	}
	#copyright {
		line-height:1.4;
	}
	#copyright a {
		display:block;
	}
}



/* ==============================================
	FOOTER - Group Links
============================================== */
.groupLinks {
	height:6em;
	padding-top:2em;
	display:flex;
	justify-content:center;
	align-items:center;
}
.groupLinks > li {
	height:100%;
	padding:0 0.2em;
}
.groupLinks > li a {
	display:block;
	height:100%;
}
.groupLinks > li img {
	max-height:100%;
}

@media screen and (min-width:800px) {
	.groupLinks > li a:hover {
		background:rgba(51,51,51,0.8);
	}
}
@media screen and (max-width:799px) {
	.groupLinks {
		height:auto;
		flex-wrap:wrap;
	}
	.groupLinks > li {
		width:24%;
	}
}




/* ============================================================================================
	fixed button - scroll-top
============================================================================================ */
#scrollTop-button {
	position:fixed;
	right:0.5em;
	bottom:0.5em;
	width:4em !important;
	height:4em !important;
	line-height:1.2;
	background:#333;
	border-radius:0.3em;
	font-family:"CGothic" ,"Noto Sans JP" ,sans-serif;
}
#scrollTop-button:hover {
	background:#666;
}
#scrollTop-button > .flex {
	width:100%;
	height:100%;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
}
#scrollTop-button > .flex > span {
	letter-spacing:0.1em;
	text-indent:0.1em;
}







/* ============================================================================================
	recruit - link button
============================================================================================ */
.form-link {
	display:flex;
	justify-content:center;
	align-items:center;
}

.form-link > .cell {
	padding:2em 2em 0;
	text-align:center;
}

.form-link .button {
	display:flex;
	justify-content:center;
	align-items:center;
	width:360px;
	height:5em;
	padding:0 0.5em;
	text-align:center;
	line-height:1;
	border:2px solid #ccc;
	border-radius:0.5em;
}
.form-link .button .icon {
	width: 3em;
	margin: 0;
}
.form-link .button .text {
	padding: 0 0.3em  0.2em;
	font-size: 200%;
	font-weight: bold;
}
.form-link .button .text small {
	font-size:80%;
}

.form-link .button .qr {
	margin-left:0.3em;
	width:4em;
	aspect-ratio:1/1;
}


@media screen and (min-width:800px){
	.form-link a.button:hover {
		background:rgba(102,102,102,0.6);
	}
}
@media screen and (max-width:799px){
	.form-link {
		flex-direction:column;
	}
}





