/**
 * Lang Horizon: the application form.
 *
 * The page ships every step at once so it works without JavaScript; the
 * `.gs-wizard--js` class, added by the script, is what turns it into one step
 * at a time.
 */

.gs-registration__head-inner {
	max-width: calc(760px + (var(--gs-gutter) * 2));
	text-align: center;
}

.gs-registration__subtitle {
	margin: 14px 0 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--gs-ink-soft);
}

.gs-registration__inner {
	max-width: calc(880px + (var(--gs-gutter) * 2));
}

/* -------------------------------------------------- Offer summary */

.gs-registration__offer {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 24px;
	padding: 22px 24px;
	background: var(--gs-blue-50);
	border: 1px solid var(--gs-blue-100);
	border-radius: var(--gs-radius-lg);
}

.gs-registration__offer-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: none;
	border-radius: 50%;
	background: var(--gs-blue);
	color: #fff;
	box-shadow: 0 4px 12px rgba(26, 107, 216, 0.28);
}

.gs-registration__offer-label {
	margin: 0 0 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gs-blue);
}

.gs-registration__offer-title {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gs-navy);
}

.gs-registration__offer-title a {
	color: inherit;
	text-decoration: none;
}

.gs-registration__offer-title a:hover {
	color: var(--gs-blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Which branch the offer picked, plus the way out for a wrong click. */
.gs-registration__offer-branch {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 12px;
	margin: 0 0 10px;
	font-size: 13.5px;
	color: #4f5d76;
}

.gs-registration__offer-branch .gs-icon {
	flex: none;
	color: var(--gs-green, #2ba85e);
}

.gs-registration__offer-branch strong {
	color: var(--gs-navy);
}

.gs-registration__offer-branch a {
	font-size: 12.5px;
	color: var(--gs-blue);
}

.gs-registration__offer-meta {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0;
	padding: 0;
	font-size: 13.5px;
	color: #4f5d76;
}

.gs-registration__offer-meta li {
	display: flex;
	align-items: center;
	gap: 6px;
}

.gs-registration__offer-meta .gs-icon {
	color: #8fa5c4;
}

.gs-registration__offer-meta strong {
	color: var(--gs-navy);
}

/* -------------------------------------------------- Progress */

.gs-wizard__progress {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0 0 30px;
	padding: 18px 20px;
	background: var(--gs-surface-soft);
	border: 1px solid var(--gs-line);
	border-radius: var(--gs-radius-lg);
	counter-reset: none;
}

.gs-wizard__dot {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;
	color: #8093ad;
}

.gs-wizard__dot-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex: none;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--gs-line);
	font-size: 11.5px;
	font-weight: 800;
}

.gs-wizard__dot.is-done {
	color: var(--gs-blue);
}

.gs-wizard__dot.is-done .gs-wizard__dot-num {
	background: var(--gs-blue-50);
	border-color: var(--gs-blue-100);
	color: var(--gs-blue);
}

.gs-wizard__dot.is-current {
	color: var(--gs-navy);
}

.gs-wizard__dot.is-current .gs-wizard__dot-num {
	background: var(--gs-blue);
	border-color: var(--gs-blue);
	color: #fff;
}

/* -------------------------------------------------- Field groups */

.gs-formgroup {
	margin: 0 0 30px;
	padding: 0;
	border: 0;
	border-top: 1px solid var(--gs-line);
	padding-top: 26px;
}

.gs-formgroup:first-of-type,
.gs-wizard--js .gs-formgroup {
	border-top: 0;
	padding-top: 0;
}

.gs-formgroup__legend {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin-bottom: 18px;
	padding: 0;
}

.gs-formgroup__legend:focus {
	outline: none;
}

.gs-formgroup__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	flex: none;
	border-radius: 50%;
	background: var(--gs-blue-50);
	color: var(--gs-blue);
	font-size: 12.5px;
	font-weight: 800;
}

.gs-formgroup__titles {
	font-size: 17.5px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gs-navy);
}

.gs-formgroup__note {
	margin: -8px 0 16px 42px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--gs-ink-soft);
}

.gs-form--registration .gs-field {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.gs-form--registration label {
	font-size: 13.5px;
	font-weight: 600;
	color: #45536b;
}

.gs-form--registration textarea {
	width: 100%;
}

.gs-field__note {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--gs-ink-soft);
}

/* -------------------------------------------------- Choice groups */

.gs-radioset {
	margin: 0;
	padding: 0;
	border: 0;
}

.gs-radioset legend {
	display: block;
	margin-bottom: 10px;
	padding: 0;
	font-size: 13.5px;
	font-weight: 600;
	color: #45536b;
}

.gs-radioset__options {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 8px;
}

.gs-radio {
	display: flex;
	align-items: center;
	gap: 9px;
	flex: 1 1 240px;
	padding: 11px 14px;
	background: #fff;
	border: 1px solid var(--gs-line);
	border-radius: var(--gs-radius-xs);
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.45;
	color: #45536b;
	cursor: pointer;
	transition: border-color 0.18s ease, background-color 0.18s ease;
}

.gs-radio:hover {
	border-color: var(--gs-blue-100);
	background: var(--gs-surface-soft);
}

.gs-radio input {
	width: 17px;
	height: 17px;
	flex: none;
	accent-color: var(--gs-blue);
}

.gs-radio:has(input:checked) {
	border-color: var(--gs-blue);
	background: var(--gs-blue-50);
	color: var(--gs-navy);
}

/* -------------------------------------------------- Consents */

.gs-consents {
	display: grid;
	gap: 12px;
	padding: 20px 22px;
	background: var(--gs-surface-soft);
	border: 1px solid var(--gs-line);
	border-radius: var(--gs-radius-lg);
}

.gs-consents .gs-field--consent {
	margin: 0;
}

.gs-consents__legal {
	margin: 4px 0 0;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--gs-ink-soft);
}

/* -------------------------------------------------- Navigation */

.gs-wizard__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid var(--gs-line);
}

.gs-wizard__prev {
	margin-right: auto;
}

/* Kadence gives fieldsets and list items their own display value, which beats
   the browser default for [hidden]; the wizard relies on it, so it wins here. */
.gs-wizard [hidden] {
	display: none !important;
}

.gs-registration__back {
	margin: 28px 0 0;
	text-align: center;
}

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

@media (max-width: 720px) {
	.gs-registration__offer {
		flex-direction: column;
		padding: 18px 18px 20px;
	}

	.gs-formgroup__note {
		margin-left: 0;
	}

	.gs-radio {
		flex: 1 1 100%;
	}

	.gs-wizard__progress {
		gap: 6px 10px;
		padding: 14px 16px;
	}

	.gs-wizard__dot-label {
		display: none;
	}

	.gs-wizard__dot.is-current .gs-wizard__dot-label {
		display: inline;
	}

	.gs-wizard__nav {
		justify-content: stretch;
	}

	.gs-wizard__nav .gs-btn {
		flex: 1 1 100%;
		justify-content: center;
	}

	.gs-wizard__prev {
		margin-right: 0;
		order: 2;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gs-radio {
		transition: none;
	}
}
