.jcr-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 999999;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.jcr-modal.is-open { display: flex; }
.jcr-modal__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .58); }
.jcr-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 480px);
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 20px 70px rgba(0, 0, 0, .3);
	padding: 34px;
	text-align: center;
	color: #191919;
}
.jcr-modal__dialog h2 { margin: 0 0 12px; font-size: 26px; line-height: 1.2; color: #111; }
.jcr-modal__dialog p { margin: 0 0 22px; line-height: 1.55; }
.jcr-modal__icon { font-size: 42px; margin-bottom: 14px; }
.jcr-modal__close {
	position: absolute; top: 9px; right: 12px; border: 0; background: transparent;
	font-size: 30px; line-height: 1; color: #666; cursor: pointer; padding: 7px;
}
.jcr-modal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.jcr-button {
	border: 1px solid #111; border-radius: 7px; padding: 13px 18px; font-weight: 700;
	cursor: pointer; transition: transform .15s ease, opacity .15s ease; font-size: 15px;
}
.jcr-button:hover { transform: translateY(-1px); }
.jcr-button:disabled { opacity: .55; cursor: wait; }
.jcr-button--primary { background: #111; color: #fff; }
.jcr-button--secondary { background: #fff; color: #111; }
.jcr-button--full { width: 100%; margin-top: 8px; }
.jcr-save-form { text-align: left; }
.jcr-save-form > label:first-of-type { display: block; font-weight: 700; margin-bottom: 7px; }
.jcr-save-form input[type="email"] {
	width: 100%; min-height: 48px; border: 1px solid #aaa; border-radius: 7px;
	padding: 10px 12px; font-size: 16px; box-sizing: border-box; margin-bottom: 16px;
}
.jcr-checkbox { display: flex; align-items: flex-start; gap: 9px; font-weight: 500; line-height: 1.4; }
.jcr-checkbox input { margin-top: 4px; flex: 0 0 auto; }
.jcr-privacy { font-size: 12px; color: #666; margin: 14px 0 10px !important; }
.jcr-error { padding: 9px 11px; background: #fff0f0; color: #9a1111; border-radius: 5px; font-size: 13px; margin: 8px 0 !important; }
.jcr-back { border: 0; background: none; display: block; margin: 13px auto 0; cursor: pointer; text-decoration: underline; color: #444; }
.jcr-success__mark {
	width: 54px; height: 54px; margin: 0 auto 15px; border-radius: 50%; display: grid;
	place-items: center; background: #e7f7eb; color: #147a2f; font-size: 29px; font-weight: 800;
}
.jcr-modal-open { overflow: hidden; }

@media (max-width: 520px) {
	.jcr-modal { padding: 12px; align-items: flex-end; }
	.jcr-modal__dialog { padding: 30px 20px 24px; border-radius: 16px 16px 10px 10px; }
	.jcr-modal__dialog h2 { font-size: 23px; }
	.jcr-modal__actions { grid-template-columns: 1fr; }
}

