.registration-form-wrap {
	display: none;
}

.fancybox__content.registration-form {
	padding: 24px 32px;
	max-width: 640px;
}

.registration-form-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.registration-form__heading {
	font-size: var(--sp-24);
	margin-bottom: var(--sp-24);
	text-align: center;
	color: var(--color-magenta, #ec008c);
	font-family: var(--font-primary);
}

/* ── Fieldset ── */
.registration-form__fieldset {
	border: 1px solid var(--color-gray-off, #e9e9e9);
	padding: 20px;
	margin-bottom: 20px;
}

.registration-form__legend {
	font-size: var(--text-18, 18px);
	font-weight: 600;
	padding: 0 var(--sp-8);
	margin-bottom: var(--sp-16);
	color: var(--color-magenta, #ec008c);
	font-family: var(--font-primary);
}

/* ── Rows & Fields ── */
.registration-form__row {
	display: flex;
	gap: 16px;
	margin-bottom: 0;
}

.registration-form__row .registration-form__field {
	flex: 1;
}

.registration-form__field {
	margin-bottom: 16px;
	position: relative;
}

.registration-form__label {
	display: block;
	font-size: var(--text-sm, 14px);
	font-weight: 500;
	margin-bottom: 4px;
	color: var(--color-gray-dark, #444);
	font-family: var(--font-primary);
}

.registration-form__required {
	color: var(--color-magenta, #ec008c);
}

/* ── Inputs ── */
.registration-form__input,
.registration-form__select,
.registration-form__textarea {
	width: 100%;
	padding: 12px;
	font-family: var(--font-primary);
	font-size: var(--text-sm, 14px);
	border: 1.5px solid var(--color-gray-mid, #b2aeac);
	background: var(--color-white, #fff);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	box-sizing: border-box;
	color: var(--color-gray-dark, #444);
}

.registration-form__input:focus,
.registration-form__select:focus,
.registration-form__textarea:focus {
	border-color: var(--color-magenta, #ec008c);
	outline: none;
	box-shadow: 0 0 0 2px var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
}

.registration-form__input::placeholder,
.registration-form__textarea::placeholder {
	color: var(--color-gray-light, #c9c9c9);
}

.registration-form__textarea {
	resize: vertical;
	min-height: 80px;
}

/* ── Select ── */
.registration-form__select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23444' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
	cursor: pointer;
}

/* ── Notice Banner ── */
.registration-form__notice {
	font-size: var(--text-sm, 14px);
	line-height: 1.5;
	margin-bottom: 20px;
	padding: 12px 16px;
	text-align: center;
}

.registration-form__notice--available {
	background: #e8f5e9;
	color: #2e7d32;
	border-left: 4px solid #4caf50;
}

.registration-form__notice--full {
	background: #fff8e1;
	color: #8d6e00;
	border-left: 4px solid #ffc107;
}

/* ── Price Info ── */
.registration-form__price-info {
	font-size: var(--text-sm, 14px);
	font-weight: 600;
	margin-bottom: 16px;
	padding: 10px 16px;
	background: var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
	text-align: center;
	color: var(--color-magenta, #ec008c);
	border: 1px solid rgba(236, 0, 140, 0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-8);
	font-family: var(--font-primary);
}

.registration-form__price-info::before {
	content: '$';
	font-size: 18px;
	font-weight: 700;
}

/* ── Note ── */
.registration-form__note {
	font-size: var(--text-xs, 12px);
	color: var(--color-gray-mid, #b2aeac);
	margin-bottom: 16px;
	line-height: 1.5;
	text-align: center;
}

/* ── Custom Checkbox ── */
.registration-form__checkbox {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-size: var(--text-sm, 14px);
	padding: 4px 0;
	position: relative;
}

.registration-form__checkbox input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.registration-form__checkbox-indicator {
	width: 20px;
	height: 20px;
	border: 2px solid var(--color-gray-light, #c9c9c9);
	background: var(--color-white, #fff);
	flex-shrink: 0;
	transition: all 0.2s ease;
	position: relative;
}

.registration-form__checkbox input:checked + .registration-form__checkbox-indicator {
	border-color: var(--color-magenta, #ec008c);
	background: var(--color-magenta, #ec008c);
}

.registration-form__checkbox input:checked + .registration-form__checkbox-indicator::after {
	content: '';
	position: absolute;
	top: 2px;
	left: 5px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.registration-form__checkbox input:focus-visible + .registration-form__checkbox-indicator {
	outline: 2px solid var(--color-magenta, #ec008c);
	outline-offset: 2px;
}

.registration-form__checkbox-label {
	color: var(--color-gray-dark, #444);
	line-height: 1.4;
	font-family: var(--font-primary);
}

/* ── Custom Radio ── */
.registration-form__radio {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-size: var(--text-sm, 14px);
	padding: 4px 0;
	position: relative;
}

.registration-form__radio input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.registration-form__radio-indicator {
	width: 20px;
	height: 20px;
	border: 2px solid var(--color-gray-light, #c9c9c9);
	border-radius: 50%;
	background: var(--color-white, #fff);
	flex-shrink: 0;
	transition: all 0.2s ease;
	position: relative;
}

.registration-form__radio input:checked + .registration-form__radio-indicator {
	border-color: var(--color-magenta, #ec008c);
	background: var(--color-magenta, #ec008c);
	box-shadow: inset 0 0 0 4px #fff;
}

.registration-form__radio input:focus-visible + .registration-form__radio-indicator {
	outline: 2px solid var(--color-magenta, #ec008c);
	outline-offset: 2px;
}

.registration-form__radio-label {
	font-size: var(--text-sm, 14px);
	color: var(--color-gray-dark, #444);
	line-height: 1.4;
}

.registration-form__options {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 4px;
}

.registration-form__options--inline {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 16px;
}

/* ── Conditional ── */
.registration-form__conditional {
	display: none;
	margin-top: var(--sp-8);
	padding: 12px;
	background: #f9f9f9;
	border-left: 3px solid var(--color-magenta, #ec008c);
}

.registration-form__conditional--visible {
	display: block;
}

/* ── Navigation ── */
.registration-form__nav {
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--color-gray-off, #e9e9e9);
}

.registration-form__nav-right {
	display: flex;
	gap: var(--sp-8);
}

.registration-form__nav-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 22px;
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: all 0.3s ease;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	border: 2px solid transparent;
}

.registration-form__nav-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.registration-form__submit {
	background: var(--color-magenta, #ec008c);
	color: var(--color-white, #fff);
	border-color: var(--color-magenta, #ec008c);
	min-width: 160px;
	justify-content: center;
}

.registration-form__submit:hover:not(:disabled) {
	border-color: var(--color-cyan, #00aeef);
	color: var(--color-cyan, #00aeef);
	background: var(--color-cyan-light, rgba(0, 174, 239, 0.18));
}

.registration-form__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* ── Loading Spinner ── */
.registration-form__spinner {
	display: none;
	width: 16px;
	height: 16px;
	border: 2.5px solid rgba(255, 255, 255, 0.3);
	border-top-color: #fff;
	border-radius: 50%;
	animation: reg-spin 0.6s linear infinite;
}

.registration-form__submit--loading .registration-form__spinner {
	display: inline-block;
}

.registration-form__submit--loading .registration-form__btn-text {
	display: none;
}

@keyframes reg-spin {
	to { transform: rotate(360deg); }
}

/* ── Error Messages ── */
.registration-form__field-error {
	display: block;
	color: #d32f2f;
	font-size: 12px;
	line-height: 1.4;
	margin-top: 4px;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.registration-form__field-error--visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.registration-form__error {
	color: #d32f2f;
	font-size: var(--text-sm, 14px);
	margin-bottom: 12px;
	padding: 8px 12px;
	background: #fce4ec;
	line-height: 1.5;
}

/* ── Validation States ── */
.registration-form__input--valid {
	border-color: #4caf50 !important;
	background: #f1f8e9;
}

.registration-form__input--valid:focus {
	box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.2);
}

.registration-form__input--invalid,
.registration-form__select--invalid {
	border-color: #d32f2f !important;
	background: #fff5f5;
}

.registration-form__input--invalid:focus {
	box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.2);
}

/* ── Success ── */
.registration-form__success {
	text-align: center;
	padding: 48px 24px;
}

.registration-form__success-icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 24px;
	display: block;
}

.registration-form__success h2 {
	font-size: var(--sp-24, 24px);
	font-weight: 700;
	color: #2e7d32;
	margin-bottom: var(--sp-8);
	font-family: var(--font-primary);
}

.registration-form__success p {
	color: var(--color-gray-dark, #444);
	font-size: 15px;
	line-height: 1.6;
	margin-bottom: var(--sp-24);
	max-width: 400px;
	margin-left: auto;
	margin-right: auto;
}

/* ── Stripe ── */
.registration-form__stripe {
	margin-bottom: 16px;
}

.registration-form__stripe iframe {
	width: 100% !important;
}

/* ── INTL-TEL-INPUT (commented out — replaced with simple number input) ── */
/*
.registration-form .iti {
	width: 100%;
	display: block;
}
.registration-form .iti__flag-container {
	z-index: 2;
}
.registration-form .iti--allow-dropdown .iti__flag-container:hover .iti__selected-country-primary {
	background-color: transparent;
}
.registration-form .iti--allow-dropdown input[type=tel],
.registration-form .iti--allow-dropdown input[type=text] {
	padding-left: 52px;
}
.registration-form .iti__country-list {
	max-height: 200px;
}
.registration-form .iti__country.iti__highlight {
	background-color: var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
}
.registration-form .iti__selected-country {
	padding: 0 8px 0 12px;
}
.registration-form .iti__selected-country-primary {
	background: none;
}
.registration-form .registration-form__input--invalid + .iti__flag-container .iti__selected-country-primary {
	box-shadow: none;
}
*/

/* ── Flatpickr ── */
.registration-form .flatpickr-calendar {
	font-family: inherit;
	border: 1px solid var(--color-gray-off, #e9e9e9);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
	margin-top: 4px;
}

.registration-form .flatpickr-months .flatpickr-month {
	background: var(--color-magenta, #ec008c);
	padding: 8px 0;
}

.registration-form .flatpickr-current-month .flatpickr-monthDropdown-months {
	font-size: 15px;
	font-weight: 600;
	color: #fff;
}

.registration-form .flatpickr-current-month input.cur-year {
	font-size: 15px;
	font-weight: 600;
	color: #fff;
}

.registration-form .flatpickr-months .flatpickr-prev-month,
.registration-form .flatpickr-months .flatpickr-next-month {
	fill: #fff;
	padding: 8px;
}

.registration-form .flatpickr-months .flatpickr-prev-month:hover svg,
.registration-form .flatpickr-months .flatpickr-next-month:hover svg {
	fill: rgba(255, 255, 255, 0.7);
}

.registration-form .flatpickr-weekday {
	color: var(--color-magenta, #ec008c);
	font-weight: 600;
	font-size: 12px;
}

.registration-form .flatpickr-day.selected,
.registration-form .flatpickr-day.startRange,
.registration-form .flatpickr-day.endRange,
.registration-form .flatpickr-day.selected.inRange,
.registration-form .flatpickr-day.startRange.inRange,
.registration-form .flatpickr-day.endRange.inRange,
.registration-form .flatpickr-day.selected:focus,
.registration-form .flatpickr-day.startRange:focus,
.registration-form .flatpickr-day.endRange:focus,
.registration-form .flatpickr-day.selected:hover,
.registration-form .flatpickr-day.startRange:hover,
.registration-form .flatpickr-day.endRange:hover {
	background: var(--color-magenta, #ec008c);
	border-color: var(--color-magenta, #ec008c);
}

.registration-form .flatpickr-day.today {
	border-color: var(--color-magenta, #ec008c);
}

.registration-form .flatpickr-day.today:hover,
.registration-form .flatpickr-day.today:focus {
	background: var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
	border-color: var(--color-magenta, #ec008c);
	color: #333;
}

.registration-form .flatpickr-day.inRange {
	background: var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
	border-color: transparent;
	box-shadow: -5px 0 0 var(--color-magenta-faded, rgba(236, 0, 140, 0.14)), 5px 0 0 var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
}

.registration-form .flatpickr-day:hover {
	background: var(--color-magenta-faded, rgba(236, 0, 140, 0.14));
	border-color: transparent;
}

.registration-form .flatpickr-day.flatpickr-disabled,
.registration-form .flatpickr-day.flatpickr-disabled:hover {
	color: var(--color-gray-light, #c9c9c9);
	cursor: not-allowed;
}

.registration-form .flatpickr-calendar.arrowTop:before,
.registration-form .flatpickr-calendar.arrowTop:after {
	border-bottom-color: var(--color-magenta, #ec008c);
}

.registration-form .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
.registration-form .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
	fill: #fff;
}

.registration-form .numInputWrapper span.arrowUp,
.registration-form .numInputWrapper span.arrowDown {
	display: none;
}

/* ── Hint ── */
.registration-form__hint {
	display: block;
	font-size: 11px;
	color: var(--color-gray-mid, #b2aeac);
	margin-top: 4px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
	.fancybox__content .registration-form {
		padding: 16px;
	}

	.registration-form__row {
		flex-direction: column;
		gap: 0;
	}

	.registration-form__options--inline {
		flex-direction: column;
		gap: 6px;
	}

	.registration-form__nav {
		flex-direction: column;
		gap: var(--sp-8);
	}

	.registration-form__nav-right {
		width: 100%;
		flex-direction: column;
	}

	.registration-form__nav-btn,
	.registration-form__submit {
		width: 100%;
		justify-content: center;
	}

	.registration-form__fieldset {
		padding: 16px;
	}
}