dialog {
	border: none;
}
.modal,
.alert.alert-panel {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 20;
	display: block;
	display: flex;
	flex-direction: column;
    padding: 2em 0;
	width: 100%;
	max-width: 600px;
	max-height: 600px;
    max-height: calc(100vh - 4em);
	margin: 2em auto;
	border-radius: 4px;
	overflow: hidden;
	opacity: 1;
	color: inherit;
	background-color: #fff;
	animation: scaleUp ease-in-out .5s;
	backface-visibility: hidden;
	will-change: transform, opacity;
}

.alert.alert-panel {
	padding: 2em;
	overflow: auto;
}

.modal-shadow,
.alert.alert-panel + .overlay-panel  { 
	position: fixed;
	top: 0; 
	right: 0; 
	bottom: 0; 
	left: 0;
	z-index: 19; 
	background-color: #000;
	background-color: rgba(0,0,0,.75); 
} 

.modal .body-container {
    padding: 0 2em;
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
}

.modal .body-container::-webkit-scrollbar {
    width: 10px;
}

.modal .body-container::-webkit-scrollbar-track {
    background-color: #E3E5E8;
}

.modal .body-container::-webkit-scrollbar-thumb {
    background-color: #A3A8B5;
    border-radius: 5px;
}

.modal .title-container {
    text-align: center;
	padding: 0 2em;
}

.modal .title-button-group,
.alert.alert-panel h2 .btn.pull-right {
    position: absolute;
    top: 0;
    right: 0;
}

button.close,
.alert.alert-panel h2 .btn.pull-right {
	display: block;
	font-size: 0;
    padding: 8px 6px;
    margin: 0;
	background-color: rgba(255, 255, 255, 0.5);
	cursor: pointer;
}

button.close::before,
button.close::after,
.alert.alert-panel h2 .btn.pull-right::before,
.alert.alert-panel h2 .btn.pull-right::after {
    content: "";
    display: block;
    height: 3px;
    width: 24px;
    background-color: #333;
    border-radius: 3px;
    transition: all .2s;
}

button.close::before,
.alert.alert-panel h2 .btn.pull-right::before {
    transform: rotate(45deg);
	margin-top: 8px;
    margin-bottom: -3px;
}

button.close::after,
.alert.alert-panel h2 .btn.pull-right::after {
    transform: rotate(-45deg);
	margin-bottom: 8px;
}

.alert.alert-panel {
    color: #333;
}

.alert.alert-panel h2 .btn.pull-right::after {
    position: absolute;
    top: 16px;
}

.phone-locations .main-btn,
.map-locations .main-btn,
.waypoint-reviews .main-btn {
	text-align: center;
    display: block;
    max-width: 300px;
    margin: 10px auto;
}

.modal.external-link a {
    display: inline-block;
    padding: 0 8px;
    border-radius: 4px;
    color: #2754B0;
    background-color: #C5D8FF;
	word-break: break-all;
}
.modal.external-link a:hover {
    text-decoration: none;
	color: #315EB8;
	background-color: #D5E3FF;
}
.modal.external-link a:focus,
.modal.external-link a:active {
    text-decoration: none;
	color: #2754B0;
    background-color: #D5E3FF;
}

@media (max-height: 800px) {
	.modal {
		margin: 1em auto;
		max-height: calc(100vh - 2em);
	}
	
	.safari .modal {
		margin: 1em auto calc(1em + 44px);
		max-height: calc(100% - 2em - 44px);
	}
}