body{overflow:auto!important}
.blocker {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  width: 100%; height: 100%;
  overflow: auto;
  z-index: 900;
  padding: 20px;
  box-sizing: border-box;
  background-color: rgb(0,0,0);
  background-color: rgba(0,0,0,0.7);
  text-align: center;
}
.blocker:before{
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  margin-right: -0.05em;
}
.blocker.behind {
  background-color: transparent;
}
.modal {
  display: none;
  vertical-align: middle;
  position: relative;
  z-index: 2;
  max-width: 480px;
  box-sizing: border-box;
  width: 100%;
  background: #fff;
  padding: 52px 45px 45px;/*52px 4.5em 45px - assuming .title always exist*/
  border:none;
  -moz-border-radius: 4px; 
  -webkit-border-radius: 4px;
  -khtml-border-radius: 4px; 
  border-radius: 4px;
  text-align: left;
}

.modal a.close-modal {
  position:absolute;
  top: 0;
  right: 0;
	height:25px;
	margin: 25px 25px 0px 0;
  font-size: 0;	
	text-align:right;
	float:right;
}
.modal a.close-modal:before {
	font-family: 'soundsnapico' !important;
  content: "\e900";
	font-size:24px;
  color: #dfdfdf;
}
.modal a.close-modal:hover:before {
  color: rgba(223, 223, 223, 0.7);
}

.modal-spinner{
  width: 59px;
  height: 59px;
		position: fixed;
		top: 50%;
		left: 50%;
		z-index: 2;
		background: #fff;
		border-radius: 50%;
		margin-left:-29px;
}
.modal-spinner div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 34px;
  height: 34px;
  margin: 12px;
  border: 2px solid #51cda6;
  border-radius: 50%;
  animation: modal-spinner 1.2s linear infinite;
  border-color: #51cda6 transparent transparent transparent;
}
.modal-spinner div:nth-child(1) {
  animation-delay: -0.45s;
}
.modal-spinner div:nth-child(2) {
  animation-delay: -0.3s;
}
.modal-spinner div:nth-child(3) {
  animation-delay: -0.15s;
}
@keyframes modal-spinner {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* custom -- fix theme elements*/
.modal form {margin:0}
.modal .form-submit{ width:100%; margin-bottom:7px;}
.modal .form-group .form-submit{width:inherit}
.modal .button-link{display:block}
.modal legend{font-size: 16px;line-height: 1; padding:30px 0 0 0;}

.modal .title{
  text-align: left;
  margin: -27px 0 30px -20px;
}

.modal h1{
  color: #333333;
	font-size:32px;
	line-height: 1.19;
  margin: 0 auto 27px auto;
  text-align: center;
  max-width: 272px;
	position: unset;
}
.modal h2{font: normal 28px/36px "HelveticaNeueLTPro-Bold", sans-serif;}

.modal-titled{padding-top:32px;}

.modal.modal-titled h2{ text-align:left; font-size:32px;}
.modal-titled p{font-size:16px; color:#828282;margin-top: 40px;}
.modal-titled .subtitle {color:#828282;font-size:16px; line-height:24px;}

.modal .description{text-align:center; padding-bottom:25px;}

.modal .login_template .item-list .ojoo-item{text-align:center;}

.modal .messages{
    margin: 20px 0 0 !important;
    top: 0 !important;
    position: relative !important;
    padding: 11px 16px 13px !important;
    box-sizing: border-box;
    background: #ffe5e5 !important;
    border-radius: 4px;
    line-height: 1.43;
}
.modal .messages.error{color: #ff403b;}
.modal .messages.error a{color: #ff403b; text-decoration:underline;}

@media only screen and (max-width:481px) {
  .blocker{padding:10px}
  .modal {
    padding-left:2em;
    padding-right:2em;
  }
}
