.gp2-onboarding-page {
	padding: clamp(20px, 5vw, 64px) 24px clamp(64px, 7vw, 80px);
}

.gp2-onboarding-card {
	width: 100%;
	max-width: 800px;
	margin-inline: auto;
	padding: clamp(20px, 4vw, 40px);
	border: 1px solid var(--gp2-border, rgba(92, 76, 150, 0.2));
	border-radius: var(--gp2-card-radius, 18px);
	background: var(--gp2-surface, #fff);
	box-shadow: var(--gp2-card-shadow, 0 14px 40px rgba(18, 20, 36, 0.08));
}

.gp2-onboarding-card .ff-el-group {
	margin-bottom: 22px;
}

.gp2-onboarding-card .ff-el-input--label label,
.gp2-onboarding-card legend {
	font-size: 16px;
	font-weight: 600;
}

.gp2-onboarding-card .ff-el-help-message,
.gp2-onboarding-card .text-muted {
	font-size: 14px;
	line-height: 1.5;
}

.gp2-onboarding-card .ff-el-form-control:not([type="checkbox"]):not([type="radio"]),
.gp2-onboarding-card select.ff-el-form-control {
	min-height: 52px;
	border-radius: 9px;
}

.gp2-onboarding-card .ff-btn,
.gp2-onboarding-card button,
.gp2-profile-action {
	min-height: 52px;
	border-radius: 9px;
}

.gp2-onboarding-card :is(input, select, textarea, button, a):focus-visible,
.gp2-profile-action:focus-visible,
.gp2-onboarding-skip:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.gp2-option-cards .ff-el-form-check {
	position: relative;
	min-height: 54px;
	margin: 0 0 12px;
	padding: 14px 16px;
	border: 1px solid var(--gp2-border, rgba(92, 76, 150, 0.28));
	border-radius: 10px;
	cursor: pointer;
}

.gp2-option-cards .ff-el-form-check label {
	display: flex;
	align-items: center;
	min-height: 24px;
	cursor: pointer;
}

.gp2-option-cards .ff-el-form-check.is-selected,
.gp2-option-cards .ff-el-form-check:has(input:checked) {
	border-width: 2px;
	box-shadow: 0 0 0 2px rgba(73, 57, 137, 0.16);
}

.gp2-option-cards .ff-el-form-check.is-selected::after,
.gp2-option-cards .ff-el-form-check:has(input:checked)::after {
	content: "✓";
	margin-left: auto;
	font-weight: 700;
}

.gp2-onboarding-card .error,
.gp2-onboarding-card .ff-el-is-error .text-danger,
.gp2-onboarding-card .ff-el-is-error .ff-el-form-control {
	font-weight: 600;
}

.gp2-profile-completion {
	display: flex;
	align-items: baseline;
	gap: 10px;
}

.gp2-profile-completion__value {
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 700;
	line-height: 1;
}

.gp2-profile-completion__label {
	font-size: 15px;
}

.gp2-profile-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 24px;
	text-decoration: none;
}

.gp2-onboarding-skip {
	display: inline-block;
	min-height: 44px;
	padding: 11px 4px;
}

@media (max-width: 767px) {
	.gp2-onboarding-page {
		padding: 20px 16px 64px;
	}

	.gp2-onboarding-card {
		padding: 20px 16px;
	}

	.gp2-onboarding-card .ff-btn-submit,
	.gp2-onboarding-card .ff-btn-next,
	.gp2-profile-action {
		width: 100%;
	}

	.gp2-onboarding-card .ff-btn-secondary,
	.gp2-onboarding-card .ff-btn-prev {
		min-width: 44%;
	}

	.gp2-onboarding-card .ff-step-titles {
		overflow-x: auto;
		overscroll-behavior-inline: contain;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gp2-onboarding-page *,
	.gp2-onboarding-card * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

.gp2-review {
	display: grid;
	grid-template-columns: minmax(150px, 0.75fr) minmax(0, 1.25fr);
	gap: 0;
	margin: 0;
	border: 1px solid var(--gp2-border, rgba(92, 76, 150, 0.2));
	border-radius: 10px;
	overflow: hidden;
}

.gp2-review dt,
.gp2-review dd {
	margin: 0;
	padding: 14px 16px;
	border-bottom: 1px solid var(--gp2-border, rgba(92, 76, 150, 0.14));
}

.gp2-review dt {
	font-weight: 600;
}

.gp2-review dt:last-of-type,
.gp2-review dd:last-of-type {
	border-bottom: 0;
}

@media (max-width: 600px) {
	.gp2-review {
		grid-template-columns: 1fr;
	}

	.gp2-review dt {
		padding-bottom: 4px;
		border-bottom: 0;
	}

	.gp2-review dd {
		padding-top: 4px;
	}
}
