
	.appointment-modal-overlay {
		position: fixed;
		inset: 0;
		z-index: 10000;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 24px;
		background: rgba(17, 24, 39, 0);
		box-sizing: border-box;
		opacity: 0;
		pointer-events: none;
		visibility: hidden;
		transition: opacity 0.25s ease, background-color 0.25s ease, visibility 0s linear 0.25s;
	}

	.appointment-modal-overlay.is-visible {
		pointer-events: auto;
		visibility: visible;
		transition-delay: 0s;
	}

	.appointment-modal-overlay.is-open {
		background: rgba(17, 24, 39, 0.62);
		opacity: 1;
	}

	.appointment-modal {
		position: relative;
		width: min(92vw, 520px);
		background: #ffffff;
		color: #1f2933;
		box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
		border-radius: 8px;
		overflow: hidden;
		font-family: Raleway, Arial, sans-serif;
		opacity: 0;
		transform: translateY(18px) scale(0.96);
		transition: opacity 0.25s ease, transform 0.25s ease;
	}

	.appointment-modal-overlay.is-open .appointment-modal {
		opacity: 1;
		transform: translateY(0) scale(1);
	}

	.appointment-modal-top {
		padding: 20px;
		text-align: center;
		background: #fff5f5;
		border-bottom: 1px solid #f3c4c1;
	}

	.appointment-modal-top h2 {
		margin: 0;
		font-size: 28px;
		line-height: 1.2;
		font-weight: 700;
		color: var(--client-modal-color);
	}

	.appointment-modal-body {
		padding: 28px 34px 34px;
		text-align: center;
	}

	.appointment-modal-body p {
		margin: 0 0 22px;
		font-size: 16px;
		line-height: 1.55;
		color: #344054;
	}

	.appointment-modal-primary,
	.appointment-modal-secondary {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		width: 100%;
		min-height: 52px;
		margin-top: 12px;
		padding: 12px 18px;
		box-sizing: border-box;
		border-radius: 4px;
		text-decoration: none;
		font-size: 15px;
		font-weight: 700;
		letter-spacing: 0;
		text-transform: uppercase;
		transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
	}

	.appointment-modal-primary {
		background: var(--client-modal-color);
		border: 1px solid var(--client-modal-color);
		color: #ffffff !important;
	}

	.appointment-modal-primary:hover {
		background: #b9150f;
		border-color: #b9150f;
	}

	.appointment-modal-secondary {
		background: #ffffff;
		border: 1px solid #e62118;
		color: var(--client-modal-color) !important;
	}

	.appointment-modal-secondary:hover {
		background: #fff5f5;
		border-color: #b9150f;
		color: #b9150f !important;
	}

	.appointment-modal-primary svg,
	.appointment-modal-secondary svg {
		width: 18px;
		height: 18px;
		flex: 0 0 18px;
		stroke: currentColor;
	}

	.appointment-modal-close {
		position: absolute;
		top: 10px;
		right: 10px;
		width: 36px;
		height: 36px;
		border: 0;
		background: transparent;
		color: #6b4a48;
		font-size: 28px;
		line-height: 36px;
		cursor: pointer;
	}

	.appointment-modal-close:hover {
		color: var(--client-modal-color);
	}

	body.appointment-modal-lock {
		overflow: hidden;
	}

	@media only screen and (max-width: 520px) {
		.appointment-modal-overlay {
			padding: 16px;
		}

		.appointment-modal-top,
		.appointment-modal-body {
			padding-left: 22px;
			padding-right: 22px;
		}

		.appointment-modal-top h2 {
			font-size: 24px;
		}
	}
