/* -----------------------------------------------------------------------
   Popup Overlay
   ----------------------------------------------------------------------- */

.popupOverlay {
	background-color: black;
	opacity: 0.0;
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 99997;
	visibility: hidden;
	transition: opacity 300ms, visibility 300ms;
}

.popupOverlayShow {
	opacity: 0.7;
	visibility: visible;
}

/* -----------------------------------------------------------------------
   Popup Modal
   ----------------------------------------------------------------------- */

.popup {
	padding: 32px;
	width: 500px;
	max-width: 95%;
	background: #f5f5f5;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(.05);
	z-index: 99999;
	text-align: center;
	box-shadow: 0px 0px 20px 5px #333;
	opacity: 0.0;
	visibility: hidden;
	transition: transform 300ms, opacity 300ms, visibility 300ms;
}

.popupShow {
	visibility: visible;
	transform: translate(-50%, -50%) scale(1);
	opacity: 1.0;
}

/* -----------------------------------------------------------------------
   Close Button
   ----------------------------------------------------------------------- */

.popup .close {
	position: absolute;
	right: 8px;
	top: 8px;
	width: 20px;
	height: 20px;
	opacity: 0.5;
	cursor: pointer;
}

.popup .close:hover {
	opacity: 1;
}

.popup .close:before,
.popup .close:after {
	position: absolute;
	left: 8px;
	content: ' ';
	height: 20px;
	width: 4px;
	background-color: #333;
}

.popup .close:before {
	transform: rotate(45deg);
}

.popup .close:after {
	transform: rotate(-45deg);
}

/* -----------------------------------------------------------------------
   Header Image
   ----------------------------------------------------------------------- */

.popup .headerImageContainer {
	width: 100%;
	padding-bottom: 20px;
}

@media (max-height: 550px) {
	.popup .headerImageContainer {
		display: none;
	}
}

.popup .headerImage {
	border: 1px solid #BBB;
	max-width: 100%;
	max-height: 250px;
	height: auto;
	object-fit: contain;
}

/* -----------------------------------------------------------------------
   Form
   ----------------------------------------------------------------------- */

#btm-free-content-form {
	margin-top: 15px;
}

.btm-fc-form-row {
	display: flex;
	gap: 0;
	align-items: stretch;
}

.btm-fc-email-wrapper {
	flex: 7;
}

.btm-fc-submit-wrapper {
	flex: 3;
}

#btm-fc-email {
	width: 100%;
	height: 49px;
	padding: 6px 12px;
	border: #979797 1px solid;
	border-radius: 0;
	font-size: 14px;
	font-family: "Open Sans", sans-serif;
	color: #000;
	box-sizing: border-box;
	outline: none;
}

#btm-fc-email:focus {
	border-color: #30b930;
}

#btm-fc-submit {
	width: 100%;
	height: 49px;
	padding: 6px 12px;
	border: solid #8dc31d 1px;
	border-radius: 0;
	background-color: #8dc31d;
	color: #ffffff;
	font-family: "Oswald", sans-serif;
	font-size: 19px;
	font-weight: 400;
	cursor: pointer;
	box-sizing: border-box;
	-webkit-appearance: none;
	transition: background-color 200ms;
}

#btm-fc-submit:hover {
	background-color: #7ab318;
}

#btm-fc-submit:disabled {
	cursor: not-allowed;
	opacity: 0.4;
}

#btm-fc-submit.processing {
	position: relative;
}

#btm-fc-submit.processing::before {
	content: "";
	width: 1em;
	height: 1em;
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	border: double 3px transparent;
	border-radius: 50%;
	background-image: linear-gradient(#98e325, #98e325), conic-gradient(#98e325, #ffffff);
	background-origin: border-box;
	background-clip: content-box, border-box;
	animation: btm-fc-spin 1200ms ease 0s infinite normal none running;
}

#btm-fc-submit.processing::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: #8dc31d;
	border: 0;
}

@keyframes btm-fc-spin {
	0% {
		transform: translate(-50%, -50%) rotate(90deg);
	}
	100% {
		transform: translate(-50%, -50%) rotate(450deg);
	}
}

/* -----------------------------------------------------------------------
   Success / Error Messages
   ----------------------------------------------------------------------- */

#btm-fc-success p {
	margin: 8px 0;
}

#btm-fc-error p {
	margin: 8px 0;
}

#btm-fc-error a {
	color: #cc0000;
	text-decoration: underline;
}

/* -----------------------------------------------------------------------
   Responsive
   ----------------------------------------------------------------------- */

@media (max-width: 480px) {
	.btm-fc-form-row {
		flex-direction: column;
	}

	.btm-fc-email-wrapper,
	.btm-fc-submit-wrapper {
		flex: none;
		width: 100%;
	}

	#btm-fc-submit {
		margin-top: 8px;
	}
}
