@import url('https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c');

body {
	font-family: 'M PLUS Rounded 1c', sans-serif;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: url('../images/background/tile_100.png');
	-webkit-touch-callout: none;
}

.container {
	flex-direction: column;
	display: none;
}

.passform,
.setting_button,
.pass_replace {
	display: flex;
	align-items: center;
	flex-direction: column;
}

.yobirin-kun .icon {
	padding-bottom: 20px;
}

.leave-message img {
	margin: 20px 0px;
	width: 500px;
}

.msg_pc {
	display: inline;
}

.msg_mobile {
	display: none;
}

.center_button_top {
	margin: 60px 0px;
}

.center_button_top p {
	font-size: 3rem;
}

.center_button_top a {
	font-size: 40px;
	padding: 10px 35px;
}

.center_button_call {
	display: inline-flex;
	margin: 15px 0px;
}

.center_button_call .btn-blue {
	margin-left: 20px;
	margin-right: 20px;
}

.center_button_leave {
	padding: 20px 0px;
}

.logo_header_call {
	margin-bottom: 50px;
}

.p2p-media {
	display: flex;
	border-radius: 5px;
}

.remote-stream,
.local-stream {
	margin: auto;
	padding: 20px;
}

.spinner {
	width: 80px;
	height: 80px;
	margin: 10px auto;
	border: 10px #ddd solid;
	border-top: 10px #32cd32 solid;
	border-radius: 50%;
	animation: sp-anime 1s infinite cubic-bezier(0.3, 0.5, 0.3, 0.5);
}

@keyframes sp-anime {
	100% {
		transform: rotate(360deg);
	}
}

.thankyou-message {
	font-size: 3rem;
	padding: 4rem 0rem;
}

.mobile {
	display: none;
}

a.btn-border span.mobile {
	display: none;
}

.passform {
	padding: 20px 0px;
}

.pass_wrongtext {
	font-size: 1.6rem;
	color: red;
	display: none;
}

.pass-box {
	width: 20rem;
	height: 3rem;
	text-align: center;
	font-size: 4rem;
}

.input_area {
	position: relative;
	width: 20rem;
}
.input_area input[type='password'] {
	box-sizing: border-box;
	width: 100%;
	padding: 0.3em;
	transition: 0.3s;
	letter-spacing: 1px;
	color: #aaaaaa;
	border: 1px solid #1b2538;
	border-radius: 4px;
}
.ef input[type='password']:focus {
	border: 1px solid #da3c41;
	outline: none;
	box-shadow: 0 0 5px 1px rgba(218, 60, 65, 0.5);
}

.setting_container {
	display: flex;
	align-items: center;
	flex-direction: column;
	border-top: solid 2px darkgray;
	border-bottom: solid 2px darkgray;
	padding: 7px 0px;
	width: 100vw;
}

*,
*:before,
*:after {
	-webkit-box-sizing: inherit;
	box-sizing: inherit;
}

html {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	font-size: 62.5%;
}

.btn,
a.btn,
button.btn {
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	display: inline-block;
	padding: 1rem 4rem;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	color: #212529;
	border-radius: 0.5rem;
}

a.btn-border {
	margin-bottom: 12px;
	padding: 0;

	-webkit-transition: all 0.3s;

	transition: all 0.3s;

	border-radius: 0;
}

a.btn-border span {
	position: relative;

	display: block;

	padding: 1.25rem 3rem;

	border-radius: 0.5rem;
	background: #fff;
}

a.btn-border:before {
	position: absolute;
	bottom: -8px;
	left: 0;

	display: block;

	width: 100%;
	height: 14px;

	content: '';
	-webkit-transition: all 0.3s;
	transition: all 0.3s;

	border-radius: 0 0 0.5rem 0.5rem;
	background-size: 7px 7px;

	-webkit-backface-visibility: hidden;

	backface-visibility: hidden;
}

a.btn-border:hover {
	-webkit-transform: translate(0, 3px);
	transform: translate(0, 3px);
}

a.btn-border:hover:before {
	bottom: -5px;
}

a.btn-border:active {
	-webkit-transform: translate(0, 7px);
	transform: translate(0, 7px);
}

a.btn-border:active:before {
	bottom: -1px;
}

.fa-position-left {
	position: absolute;
	top: calc(50% - 0.5em);
	left: 1rem;
}

/* ボタン_青 */

.btn-blue span {
	color: #00bfff;
	border: 2px solid #00bfff;
}

.btn-blue:before {
	border: 2px solid #00bfff;
	border-top: 1px solid #00bfff;
	background-image: -webkit-repeating-linear-gradient(
		135deg,
		#00bfff,
		#00bfff 1px,
		transparent 2px,
		transparent 5px
	);
	background-image: repeating-linear-gradient(
		-45deg,
		#00bfff,
		#00bfff 1px,
		transparent 2px,
		transparent 5px
	);
}

/* ボタン_ピンク */

.btn-pink span {
	color: #ff69b4;
	border: 2px solid #ff69b4;
}

.btn-pink:before {
	border: 2px solid #ff69b4;
	border-top: 1px solid #ff69b4;
	background-image: -webkit-repeating-linear-gradient(
		135deg,
		#ff69b4,
		#ff69b4 1px,
		transparent 2px,
		transparent 5px
	);
	background-image: repeating-linear-gradient(
		-45deg,
		#ff69b4,
		#ff69b4 1px,
		transparent 2px,
		transparent 5px
	);
}

/* ボタン_緑 */

.btn-green span {
	color: #32cd32;
	border: 2px solid #32cd32;
}

.btn-green:before {
	border: 2px solid #32cd32;
	border-top: 1px solid #32cd32;
	background-image: -webkit-repeating-linear-gradient(
		135deg,
		#32cd32,
		#32cd32 1px,
		transparent 2px,
		transparent 5px
	);
	background-image: repeating-linear-gradient(
		-45deg,
		#32cd32,
		#32cd32 1px,
		transparent 2px,
		transparent 5px
	);
}

.cmn-toggle {
	position: absolute;
	margin-left: -9999px;
	visibility: hidden;
}
.cmn-toggle + label {
	display: block;
	position: relative;
	cursor: pointer;
	outline: none;
	user-select: none;
}
input.cmn-toggle-round-flat + label {
	padding: 2px;
	width: 120px;
	height: 60px;
	background-color: #dddddd;
	border-radius: 60px;
	transition: background 0.4s;
}
input.cmn-toggle-round-flat + label:before,
input.cmn-toggle-round-flat + label:after {
	display: block;
	position: absolute;
	content: '';
}
input.cmn-toggle-round-flat + label:before {
	top: 2px;
	left: 2px;
	bottom: 2px;
	right: 2px;
	background-color: #fff;
	border-radius: 60px;
	transition: background 0.4s;
}
input.cmn-toggle-round-flat + label:after {
	top: 4px;
	left: 4px;
	bottom: 4px;
	width: 52px;
	background-color: #dddddd;
	border-radius: 52px;
	transition: margin 0.4s, background 0.4s;
}
input.cmn-toggle-round-flat:checked + label {
	background-color: #8ce196;
}
input.cmn-toggle-round-flat:checked + label:after {
	margin-left: 60px;
	background-color: #8ce196;
}

@media screen and (max-width: 959px) {
	/* 959px以下に適用されるCSS（タブレット用） */
}

@media screen and (max-width: 480px) {
	/* 480px以下に適用されるCSS（スマホ用） */
	.msg_pc {
		display: none;
	}
	.msg_mobile {
		display: inline;
	}
	.p2p-media {
		flex-direction: column;
	}
	.center_button_call {
		flex-direction: column;
		align-items: center;
	}
	.center_button_call .btn-blue {
		margin-left: 5px;
		margin-right: 5px;
	}
	.close_button {
		margin-top: 25px;
	}
	.remote-stream,
	.local-stream {
		padding: 20px 0px;
	}
	video,
	.logo_header_call img,
	.copyright img,
	.leave-message img,
	.center_button_call,
	.rec_button {
		width: 100vw;
	}
	.thankyou-message {
		font-size: 3.5rem;
		padding: 2rem 0rem;
	}
	.mobile {
		display: block;
	}
	.pc {
		display: none;
	}
	a.btn-border span.mobile {
		display: block;
	}
	a.btn-border span.pc {
		display: none;
	}
	.pass-box {
		height: 5rem;
		text-align: center;
		font-size: 2rem;
	}
}
