@charset "utf-8";

body { position: relative; min-width: 100%; opacity: 1; font-family:"ヒラギノ角ゴ Pro w3","Hiragino Kaku Gothic Pro","Meiryo","メイリオ","Osaka","ＭＳ Ｐゴシック","MS P Gothic","Arial",sans-serif; }

h1 { padding: 5px;  position: absolute; left: 20px; top: 20px; z-index: 99;
	/* box-shadow: 1px 1px 20px 12px #fff;  background: rgba(255, 255, 255, 0.9); border-radius: 5px; */
}

#loader { position: fixed; width: 100%; height: 100%; left: 0; top: 0;  background: #fff; z-index: 999; }

#nav { z-index: 99; top: 0; position: fixed; margin: auto; left: 0; }
#nav a { text-decoration: none; }
#nav h2 { text-align: center; padding: 30px 20px; }
#nav .box { padding: 30px;  border-bottom-right-radius: 5px; border-top-right-radius: 5px; background: #fff; box-shadow: 0 0 6px 0 #a8a8a8; }
#nav .box h3 { line-height: 200%; text-align: center; font-size: 16px; font-weight: bold; }
#nav .box h3 span { line-height: 140%; display: block; font-weight: bold; font-weight: bold; font-size: 24px; }
#nav .links a { display: block; margin: 10px 0; text-align: center; color: #000; }
#nav .sns { text-align: center; padding: 15px 0; }
#nav .sns a { display: inline-block; margin: 0 10px; }
#nav .artory { text-align: center; padding:  20px 0 0; }
#nav .artory img { display: block; margin: auto; }
#nav .artory a { margin: 10px 0 0; display: inline-block; text-decoration: none; color: #000; font-weight: bold; font-size: 14px; padding: 0 0 0 10px; 
	background: url(../images/index/icn_arw_01.png) no-repeat left center;	
	background-size: 8px auto;
}
#nav .box .close { display: none; }
	#nav .menu_open { display: none; }
#nav .user { text-align: center; padding: 15px 0; }
#nav .user img.avatar { border-radius: 50%; vertical-align: middle; }
#nav .user span { font-size: 18px; font-weight: bold; }
#nav .user .links { padding: 10px 0 0; }
#nav .user .links a { margin: 5px 0; height 45px; line-height: 45px; width: 100%; position: relative; font-size: 15px; font-weight: bold;
	border-bottom: 1px solid #d2d2d2;
	
}
#nav .user .links a.bg { height 50px; line-height: 50px; color: #fff; border: none; border-radius: 5px;
	background: url(../images/index/bg_btn.png) no-repeat center center;
	background-size: cover;
}
#nav .user .links a.logout { color: #a2a2a2; border: none; }
#nav .user .links a img { position: absolute; left: 10px; top: 0; bottom: 0; margin: auto; }


/* ------------------------------------------------------------ map */

body { overflow: hidden; }

#map-wrapper { overflow: auto; width: 100%; height: 100vh; position: relative; z-index: 2;
	-webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -ms-overflow-style: none; 
    scrollbar-width: none;
}
#map-wrapper::-webkit-scrollbar {
    -webkit-appearance: none;
    width: 0;
    height: 0;
}

#map { width: 2600px; margin: auto; cursor: pointer; position: relative; }
#map img.bg { width: 100%; height: auto; }

#map .pin { position: absolute; width: 2%; }

#map .pin img { width: 100%; height: auto; }

#map .pin.num1 { top: 32%; left: 58.7%; }
#map .pin.num2 { top: 42%; left: 31.9%; }
#map .pin.num3 { top: 60%; left: 50.3%; }
#map .pin.num4 { top: 17%; left: 76%; }

#map .pin.homepage { width: 7%; top: 72%;left: 71%; text-align: center; }
#map .pin.homepage img { width: 26%; height: auto; }
#map .pin.homepage a { padding: 0 0 35%; display: block; }

#map .person { position: absolute; width: 4.5%; left: 7%; top: 60%; 
	font-family: "游ゴシック体", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic Pro","Meiryo","メイリオ","Osaka","ＭＳ Ｐゴシック","MS P Gothic","Arial",sans-serif;
}
#map .person .wrap { position: relative; }
#map .person .wrap .box { position: absolute; bottom: 100%; width: 100%; }
#map .person img { width: 100%; height: auto; }

#map .person .chat { text-align: center; position: absolute; bottom: 102%; display: flex; flex-wrap: wrap; width: 200%; max-height: 46px;
	overflow: hidden;
	align-content: flex-end;
	position: relative;
	top: auto;
	left: -50%;
	padding: 0 0 8px;
	height: 46px;
}
#map .person .chat.hide { display: none; }
#map .person .chat p { position: absolute; display: none; width: 100%; text-align: center; transition: 0.5s;  margin: 2px 0 -5px; font-size: 12px; padding: 0 2px; }
#map .person .chat p span { position: relative; font-size: 12px; display: inline-block; padding: 4px 10px; border-radius: 10px; text-align: left; line-height: 130%; background: #fff; 
	box-shadow: 1px 1px 1px 1px #aaaaaa;
	line-height: 146%;
	text-overflow: ellipsis;
	overflow: hidden;
	display: inline-block;
	max-height: 25px;
	white-space: nowrap;
	max-width: 96%;
	box-sizing: border-box;
}

#map .person .chat p:nth-last-child(-n+3) {
    display: block;
}

#map .person .chat p:first-child { top: -30px;	}

#map .person .chat p:nth-child(2) { top: 0; }

#map .person .chat p:nth-child(3) { top: 20px; }

#map .person .chat p:nth-child(4) { top: 60px; }

#map .person .chat p.private span { padding: 4px 10px 4px 25px; }
#map .person .chat p.private span::before { display: block; content: ''; width: 10px; height: 15px;
	position: absolute;
	left: 10px;
	top: 0;
	bottom: 0;
	margin: auto;
	background: #fff url(../images/index/icn_private_bk.png) no-repeat center center;
	background-size: 100% auto;
}

#map .person p.name { text-align: center; margin: 0 0 5px; }
#map .person p.name span {  padding: 5px 10px; font-size: 14px; color: #fff; background: #181818; text-align: center; border-radius: 10px; 
	text-overflow: ellipsis;
	overflow: hidden;
	display: inline-block;
	max-height: 25px;
	white-space: nowrap;
	max-width: 96%;
	box-sizing: border-box;
}

/* ------------------------------------------------------------ modal */

#modal { display: none; z-index: 100; position: fixed; left: 0; top: 0; width: 100%; height: 100vh; }
#modal .overlay { z-index: 10; position: absolute; background: rgba(0, 0, 0, 0.4); width: 100%; height: 100%; }
#modal .mbox { position: absolute; background: #fff; width: 94%; height: 94%; z-index: 99; overflow: hidden; box-sizing: border-box; 
	left: 0; right: 0; bottom: 0; top: 0; margin: auto;
}
#modal .mbox .close { position: absolute; z-index: 99; right: 30px; top: 20px; cursor: pointer; }
#modal .mbox iframe { border: none; width: 100%; height: 100%; }

.person { position: absolute; }

/* ------------------------------------------------------------ chat */

#show_chat { z-index: 98; position: fixed; width: 100px; right: 30px; bottom: 30px; cursor: pointer; }
#show_chat img { width: 100%; height: auto; }

#chat { position: relative; flex-wrap: wrap; transition: 0.5s; z-index: 99; position: fixed; max-width: 370px; width: 100%; 
	right: 0; 
	bottom: 0; 
	height: 0;
	box-sizing: border-box;
	overflow: hidden;
	background: #92c8b0;
	border-top-left-radius: 10px;
	font-family: "游ゴシック体", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic Pro","Meiryo","メイリオ","Osaka","ＭＳ Ｐゴシック","MS P Gothic","Arial",sans-serif;
}
#chat.show { height: 70vh; display: block; }
#chat h4 { transition: 0.5s; font-size: 20px; position: relative; cursor: pointer; color: #fff; padding: 20px 20px 20px 50px; width: 100%; box-sizing: border-box;
	height: 60px;
	font-weight: bold;
	background: #3ca275 url(../images/index/icn_public.png) no-repeat 20px center;
	background-size: 20px auto;
	border-bottom: 1px solid #cccccc;
}
#chat h4 span { position: absolute; right: 20px; top: 0; bottom: 0; margin: auto; height: 2px; display: block; }
#chat h4 span img { display: block; }

#chat .head { position: relative; z-index: 10; background: #fff; transition: 0.5s; box-shadow: 1px 1px 24px -14px #646464; }
#chat .mode { text-align: center; padding: 20px; }
#chat .mode .text { font-size: 12px; padding: 0 0 10px; }
#chat .mode .btn a { transition: 0.5s; font-size: 12px; color: #fff; background: #333333; height: 24px; line-height: 24px; }


#chat ul { z-index: 9; overflow-y: auto; padding: 60px 3% 10px; box-sizing: border-box; max-height: calc(100% - 148px); width: 100%; 
	position: absolute;
	bottom: 45px;
}
#chat ul li { width: 100%; padding: 5px 0; box-sizing: border-box; display: flex; border-radius: 10px; }
#chat ul li .wb { direction: ltr; background: #edf0f6; padding: 10px; border-radius: 10px; max-width: calc(100% - 66px); box-sizing: border-box; }
#chat ul li .pic { direction: ltr; border-radius: 50%; position: relative; width: 50px; height: 50px; overflow: hidden; 
	background: #e7e7e7; margin: 0 8px; 
}
#chat ul li .pic img { display: block;
	position: relative;
	top: 10px;
	left: 55%;
	width: 160%;
	height: auto;
	-webkit-transform: translate(-50%,0);
	-ms-transform: translate(-50%,-0);
	transform: translate(-50%,0);
}
#chat ul li p.name { padding: 0 0 5px; font-size: 14px; font-weight: bold; color: #000; }
#chat ul li p.name span { display: inline-block; padding: 0 5px; color: #aaaaaa; font-size: 12px; }
#chat ul li p.text { font-size: 14px; line-height: 140%; }

#chat ul li.right { direction: rtl; }
#chat ul li.right .pic { background: #828282; }

#chat .form { height: 45px; overflow: hidden; position: absolute; left: 0; bottom: 0; width: 100%; }
#chat .form input { border: none; }
#chat .form .box { display: flex; }
#chat .form .box input[type="text"] { width: 75%; box-sizing: border-box; background: #edf0f6; margin: 0; height: 45px; } 
#chat .form .box input[type="submit"] { color: #fff; width: 25%; font-size: 14px; background: url(../images/index/btn_bg.png) no-repeat center center; background-size: cover; }
#chat .form .box a { display: block; height: 45px; line-height: 45px; background: #e1e1e1; width: 25%; font-size: 14px; text-align: center; }

/* ------------------------------------------------------------ private chat mode */

#chat.private { background: #4a4a4a; }
#chat.private h4 { background: #333333 url(../images/index/icn_private.png) no-repeat 20px center; background-size: 20px auto;}
#chat.private .head { background: #101010; color: #fff; }
#chat.private .mode .btn a { background: #3ca275; }

/* ------------------------------------------------------------ private message */

#chat ul li.private .wb { position: relative; padding: 10px 25px 10px 10px; }
/*
#chat ul li.private.hidden .wb { background: #8e8e8e; color: #fff; }
#chat ul li.private.hidden p.name { color: #ebebeb; }
#chat ul li.private.hidden p.name span {  }
*/
#chat ul li.private .wb::before { content: ''; display: block; width: 10px; height: 15px;
	background: url(../images/index/icn_private_bk.png) no-repeat center center;
	background-size: 100% auto;
	position: absolute;
	right: 10px;
	top: 5px;
}


/* ------------------------------------------------------------ person select */

#persons { display: flex; justify-content: center; align-items: center; position: fixed; left: 0; top: 0; z-index: 99; background: rgba(0, 0, 0, 0.42); width: 100%; height: 100vh; }
#persons .overlay { z-index: 1; position: absolute; left: 0; top: 0; width: 100%; height: 100%; cursor: pointer; }
#persons .box { z-index: 2; position: relative; overflow-y: auto; max-height: 94vh; border-radius: 5px; width: 94%; max-width: 1100px; box-sizing: border-box; padding: 50px 4%; background: #fff; }
#persons .box h4 { text-align: center; font-size: 36px; padding: 0 0 40px; }
#persons .box ul { display: flex; flex-wrap: wrap; }
#persons .box ul li { transition: 0.5s; cursor: pointer; width: calc(100% / 4); box-sizing: border-box; padding: 10px; border-radius: 5px; }
#persons .box ul li.active { background: #bcd3ff; }
#persons .box ul li img { width: 100%; height: auto; }
#persons .box .nickname { padding: 30px 0 10px; text-align: center; }
#persons .box .nickname input[type="text"] { text-align: left; width: 300px; }
#persons .box .btn { text-align: center; padding: 10px 0; }
#persons .box .btn input { display: inline-block; padding: 0 30px; height: 40px; line-height: 40px; }

.copyright {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 20;
    font-size: 10px;
    font-family: quasimoda, sans-serif;
	font-weight: 300;
	font-style: normal;
    color: #000;
    letter-spacing: 1px;
    text-align: right;
}


/* ------------------------------------------------------------ mobile */
@media only screen and (max-width:640px){
	
	body { width: 100%; height: 100vh; max-height: -webkit-fill-available; }
	
	h1 {  }
	h1 img { width: 100px; height: auto; }

	#modal .mbox .close { top: 10px; right: 20px; }
	#modal .mbox .close img { width: 20px; height: auto; }
	
	
	#chat.show { height: 50vh;  }
	#chat { border-radius: 0; max-width: inherit; right: 0; left: 0; margin: auto; }
	#chat h4 { height: auto; font-size: 16px; padding: 15px 20px 15px 35px; background-position: 10px center; background-size: 15px auto; }
	#chat.private h4 { background-position: 10px center; background-size: 15px auto; }
	#chat h4 span img { width: 15px; height: auto; }
	#chat .form { height: 40px; }
	#chat .form .box input[type="text"] { height: 40px; }
	#chat .mode { padding: 10px; }
	#chat ul { bottom: 40px; padding: 40px 1% 10px; }
	#chat ul li .pic { width: 40px; height: 40px; }
	#chat ul li .wb { padding: 5px 10px; }
	
	#nav h2 { display: none; }
	#nav .box { top: -100%; z-index: 2; transition: 0.5s; padding: 50px 4% 30px; position: fixed; width: 100%; left: 0; height: 100%; box-sizing: border-box; }
	#nav .box.open { top: 0%; }
	#nav .box .close { display: block; position: absolute; right: 5%; top: 20px; }
	#nav .menu_open { display: block; position: fixed; z-index: 1; left: 19px; top: 200px; cursor: pointer; }
	
	#map-wrapper { max-height: -webkit-fill-available; transition: 0.5s; }
	#map-wrapper.chat_show { height: 50vh;  }
	#map { width: 300vw; }
	#map .person .chat p span { font-size: 8px; }
	#map .person p.name { margin: 0; }
	#map .person p.name span { font-size: 10px; }
	#map .person .chat { max-height: 40px; height: 40px; padding: 0; }
	
	#map .person .chat p:nth-child(3) { top: 17px; }
	
	
	#show_chat { width: 50px; right: 20px; bottom: 20px; }
	
	.copyright { font-size: 8px; left: 15px; bottom: 15px; }
	
}













