.modal-source{
	display:none;
}
.modal-root{
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	width:100%;
	height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:30px;
	box-sizing:border-box;
	background:rgba(0,0,0,.75);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity .3s ease,visibility .3s ease;
	z-index:9999;
}
.modal-root.open{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}
.modal-box{
	position:relative;
	width:min(900px,100%);
	max-height:calc(100vh - 60px);
	background:#fff;
	border-radius:8px;
	overflow-y:auto;
	transform:translateY(30px);
	transition:transform .3s ease;
	box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.modal-root.open .modal-box{
	transform:translateY(0);
}
.modal-content{
	padding: 8%;
	box-sizing:border-box;
}
	.modal-content .modal-source{ display:block; }
	
	.modal-content h2, .modal-content h3, .modal-content h4, .modal-content h5, .modal-content h6 { font-size: 2rem; line-height: 2rem; text-align: center; }
	
	
.modal-close{
	position:absolute;
	top:12px;
	right:15px;
	z-index:10;
	width:40px;
	height: auto;
	padding: 0 0 6px !important;
	border:0;
	background:transparent;
	font-size:30px;
	line-height:30px;
	text-align:center;
	cursor:pointer;
}
.modal-close:hover{
	opacity:.6;
}
body.modal-open{
	overflow:hidden;
}
@media(max-width:768px){
	.modal-root{
		padding:15px;
	}
	.modal-box{
		max-height:calc(100vh - 30px);
	}
	.modal-content{
		padding:50px 30px 30px;
	}
}