/* First-party public Company registration; loaded only on registration pages. */
.sasal-auth-page[data-sasal-company-registration="first-party"] {
	max-width: 920px;
	padding-top: clamp(32px, 6vw, 72px);
	padding-bottom: clamp(48px, 8vw, 96px);
}

.sasal-front-registration {
	position: relative;
	width: 100%;
	min-width: 0;
	padding: clamp(24px, 5vw, 52px);
	border: 1px solid var(--sasal-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(19, 39, 62, 0.09);
}

.sasal-front-registration,
.sasal-front-registration *,
.sasal-front-registration *::before,
.sasal-front-registration *::after {
	box-sizing: border-box;
}

.sasal-front-registration__intro {
	max-width: 690px;
	margin-bottom: 30px;
}

.sasal-front-registration__intro h1 {
	margin: 7px 0 10px;
	color: var(--sasal-ink);
	font-size: clamp(2rem, 5vw, 3.45rem);
	letter-spacing: -0.045em;
	line-height: 1.03;
	overflow-wrap: anywhere;
}

.sasal-front-registration__intro > p:last-child,
.sasal-front-registration__form > p {
	color: var(--sasal-muted);
	line-height: 1.65;
}

.sasal-front-registration__process {
	margin: 0 0 30px;
	padding: 20px 22px;
	border: 1px solid var(--sasal-line);
	border-radius: 12px;
	background: var(--sasal-surface-soft);
}

.sasal-front-registration__process h2 {
	margin: 0 0 18px;
	color: var(--sasal-ink);
	font-size: 0.92rem;
	font-weight: 760;
}

.sasal-front-registration__process ol {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.sasal-front-registration__process li {
	position: relative;
	display: grid;
	gap: 10px;
	justify-items: center;
	min-width: 0;
	color: var(--sasal-ink);
	text-align: center;
}

.sasal-front-registration__process li:not(:last-child)::after {
	position: absolute;
	top: 26px;
	left: calc(50% + 34px);
	z-index: 0;
	width: calc(100% - 68px);
	height: 1px;
	background: #b9d7d1;
	content: "";
}

.sasal-front-registration__process-icon {
	position: relative;
	z-index: 1;
	display: grid;
	width: 52px;
	height: 52px;
	place-items: center;
	border: 1px solid #9ccbc2;
	border-radius: 16px;
	background: linear-gradient(145deg, #ffffff, #e8f5f2);
	box-shadow: 0 8px 18px rgba(8, 123, 114, 0.12);
	color: var(--sasal-teal-dark);
}

.sasal-front-registration__process-icon svg {
	width: 25px;
	height: 25px;
}

.sasal-front-registration__process-copy {
	display: grid;
	gap: 3px;
}

.sasal-front-registration__process-copy small {
	color: var(--sasal-teal-dark);
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.sasal-front-registration__process-copy strong {
	font-size: 0.79rem;
	font-weight: 720;
	line-height: 1.4;
}

.sasal-front-registration__process-copy em {
	color: var(--sasal-muted);
	font-size: 0.7rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.45;
}

.sasal-front-registration__notice,
.sasal-front-registration__signed-in {
	margin: 0 0 24px;
	padding: 14px 16px;
	border: 1px solid #efc0c0;
	border-radius: 10px;
	background: #fff7f7;
	color: #922b21;
	font-weight: 650;
}

.sasal-front-registration__notice--success {
	border-color: #b9e0d8;
	background: #f1faf8;
	color: var(--sasal-teal-dark);
}

.sasal-front-registration__retry-note {
	margin: -14px 0 24px;
	color: var(--sasal-muted);
	font-size: 0.82rem;
	line-height: 1.55;
}

.sasal-front-registration__signed-in {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	border-color: #b9e0d8;
	background: #f1faf8;
	color: var(--sasal-teal-dark);
}

.sasal-front-registration__account-help,
.sasal-front-registration__status {
	display: grid;
	gap: 16px;
	padding: 22px;
	border: 1px solid var(--sasal-line);
	border-radius: 12px;
	background: var(--sasal-surface-soft);
}

.sasal-front-registration__account-help h2,
.sasal-front-registration__status h2 {
	margin: 0;
	color: var(--sasal-ink);
	font-size: 1.15rem;
}

.sasal-front-registration__account-help > p,
.sasal-front-registration__status > p {
	margin: 0;
	color: var(--sasal-muted);
	font-size: 0.88rem;
	line-height: 1.65;
}

.sasal-front-registration__status-note {
	padding: 11px 13px;
	border-left: 3px solid var(--sasal-teal);
	background: rgba(8, 123, 114, 0.07);
}

.sasal-front-registration__account-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sasal-front-registration__alternate-registration {
	font-size: 0.88rem;
}

.sasal-front-registration__alternate-registration a {
	color: var(--sasal-teal-dark);
	font-weight: 700;
}

.sasal-front-registration__verification,
.sasal-front-registration__resend,
.sasal-front-registration__owner-contact {
	padding: 20px;
	border: 1px solid var(--sasal-line);
	border-radius: 12px;
	background: var(--sasal-surface-soft);
}

.sasal-front-registration__verification h2 {
	margin: 0 0 8px;
	color: var(--sasal-ink);
	font-size: 1.15rem;
}

.sasal-front-registration__verification p {
	margin: 0 0 18px;
	color: var(--sasal-muted);
	font-size: 0.88rem;
	line-height: 1.65;
}

.sasal-front-registration__verification form,
.sasal-front-registration__resend,
.sasal-front-registration__owner-contact,
.sasal-front-registration__owner-contact form {
	display: grid;
	gap: 14px;
	justify-items: start;
}

.sasal-front-registration__owner-contact {
	width: 100%;
	box-sizing: border-box;
	background: #fff;
}

.sasal-front-registration__owner-contact h3 {
	margin: 0;
	color: var(--sasal-ink);
	font-size: 1rem;
}

.sasal-front-registration__owner-contact p {
	margin: 0;
	color: var(--sasal-muted);
	font-size: 0.84rem;
	line-height: 1.6;
}

.sasal-front-registration__owner-contact form {
	width: 100%;
}

.sasal-front-registration__owner-contact-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	width: min(100%, 720px);
}

.sasal-front-registration__verification-passwords {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	width: min(100%, 720px);
}

.sasal-front-registration__verification-passwords label,
.sasal-front-registration__resend label,
.sasal-front-registration__owner-contact-fields label {
	display: grid;
	width: min(100%, 520px);
	gap: 7px;
	color: var(--sasal-ink);
	font-size: 0.84rem;
	font-weight: 720;
}

.sasal-front-registration__verification-passwords label b,
.sasal-front-registration__resend label b,
.sasal-front-registration__owner-contact-fields label b {
	color: #b42318;
}

.sasal-front-registration__verification-passwords input,
.sasal-front-registration__resend input,
.sasal-front-registration__owner-contact-fields input,
.sasal-front-registration__owner-contact-fields textarea {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 11px 13px;
	border: 1px solid #cfdae4;
	border-radius: 9px;
	background: #fff;
	color: var(--sasal-ink);
	font: inherit;
}

.sasal-front-registration__owner-contact-fields textarea {
	min-height: 132px;
	resize: vertical;
}

.sasal-front-registration__verification-passwords input:focus,
.sasal-front-registration__resend input:focus,
.sasal-front-registration__owner-contact-fields input:focus,
.sasal-front-registration__owner-contact-fields textarea:focus {
	border-color: var(--sasal-teal);
	box-shadow: 0 0 0 3px rgba(8, 123, 114, 0.13);
	outline: 2px solid var(--sasal-teal-dark);
	outline-offset: 2px;
}

.sasal-front-registration__owner-contact-fields .sasal-front-registration__owner-contact-message {
	grid-column: 1 / -1;
	width: 100%;
}

.sasal-front-registration__owner-contact-consent {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	gap: 9px;
	align-items: start;
	color: var(--sasal-ink);
	font-size: 0.8rem;
	line-height: 1.55;
}

.sasal-front-registration__owner-contact-consent input {
	margin-top: 3px;
}

.sasal-front-registration__verification-passwords small {
	color: var(--sasal-muted);
	font-size: 0.73rem;
	font-weight: 400;
	line-height: 1.45;
}

.sasal-front-registration__form {
	display: grid;
	gap: 28px;
}

/* The profile is part of the application, but has its own focused working
 * surface: it is the information a future partner will actually read. */
.sasal-front-registration__profile {
	display: grid;
	gap: 20px;
	padding: clamp(20px, 4vw, 28px);
	border: 1px solid #b9d7d1;
	border-left: 4px solid var(--sasal-teal);
	border-radius: 12px;
	background: linear-gradient(135deg, #f7fcfb 0%, #ffffff 48%);
}

.sasal-front-registration__profile-header {
	display: grid;
	gap: 7px;
	max-width: 640px;
}

.sasal-front-registration__profile-header h2 {
	margin: 0;
	color: var(--sasal-ink);
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	letter-spacing: -0.02em;
}

.sasal-front-registration__profile-header p {
	margin: 0;
	color: var(--sasal-muted);
	font-size: 0.84rem;
	line-height: 1.6;
}

.sasal-front-registration__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	align-items: start;
}

.sasal-front-registration__grid label {
	display: grid;
	min-width: 0;
	gap: 7px;
}

/* An odd field count would leave the last control alone beside an empty cell. */
.sasal-front-registration__grid > label:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.sasal-front-registration__grid label > span {
	color: var(--sasal-ink);
	font-size: 0.84rem;
	font-weight: 720;
}

.sasal-front-registration__grid label > span b {
	color: #b42318;
}

.sasal-front-registration__grid input,
.sasal-front-registration__grid select,
.sasal-front-registration__grid textarea {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 11px 13px;
	border: 1px solid #cfdae4;
	border-radius: 9px;
	background: #fff;
	color: var(--sasal-ink);
	font: inherit;
}

.sasal-front-registration__grid input[type="file"] {
	padding: 9px;
}

.sasal-front-registration__grid textarea {
	min-height: 180px;
	resize: vertical;
}

.sasal-front-registration__profile select[multiple] {
	min-height: 186px;
	padding: 7px;
}

.sasal-front-registration__profile select[multiple] option {
	padding: 5px 7px;
}

.sasal-front-registration__grid input:focus,
.sasal-front-registration__grid select:focus,
.sasal-front-registration__grid textarea:focus {
	border-color: var(--sasal-teal);
	box-shadow: 0 0 0 3px rgba(8, 123, 114, 0.13);
	outline: 2px solid var(--sasal-teal-dark);
	outline-offset: 2px;
}

.sasal-front-registration__grid small {
	color: var(--sasal-muted);
	font-size: 0.73rem;
	line-height: 1.45;
}

.sasal-front-registration__grid [data-sasal-company-text-count] {
	min-height: 1.1em;
	font-variant-numeric: tabular-nums;
}

.sasal-front-registration__grid [data-sasal-company-text-count].is-complete {
	color: var(--sasal-teal-dark);
	font-weight: 700;
}

.sasal-front-registration__wide {
	grid-column: 1 / -1;
}

.sasal-front-registration__consent {
	display: grid;
	gap: 12px;
	padding: 18px;
	border: 1px solid var(--sasal-line);
	border-radius: 11px;
	background: var(--sasal-surface-soft);
}

.sasal-front-registration__consent label {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	gap: 9px;
	align-items: start;
	color: var(--sasal-ink);
	font-size: 0.82rem;
	line-height: 1.55;
}

.sasal-front-registration__consent input {
	margin-top: 4px;
}

.sasal-front-registration__form > .sasal-button {
	justify-self: start;
	min-width: 220px;
	margin: 0;
}

.sasal-front-registration__login-link {
	margin: 22px 0 0;
	text-align: center;
}

.sasal-front-registration__login-link a,
.sasal-front-registration__consent a {
	color: var(--sasal-teal-dark);
	font-weight: 700;
}

.sasal-front-registration__honeypot {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

@media (max-width: 700px) {
	.sasal-front-registration {
		padding: 24px 18px;
		border-radius: 14px;
	}

	.sasal-front-registration__process {
		padding: 18px;
	}

	.sasal-front-registration__process ol {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.sasal-front-registration__process li {
		grid-template-columns: 52px minmax(0, 1fr);
		gap: 12px;
		align-items: center;
		justify-items: start;
		text-align: left;
	}

	.sasal-front-registration__process li:not(:last-child)::after {
		top: 52px;
		bottom: -12px;
		left: 25px;
		width: 1px;
		height: auto;
	}

	.sasal-front-registration__grid {
		grid-template-columns: 1fr;
	}

	.sasal-front-registration__verification-passwords {
		grid-template-columns: 1fr;
	}

	.sasal-front-registration__owner-contact-fields {
		grid-template-columns: 1fr;
	}

	.sasal-front-registration__owner-contact-fields .sasal-front-registration__owner-contact-message {
		grid-column: auto;
	}

	.sasal-front-registration__wide {
		grid-column: auto;
	}

	.sasal-front-registration__signed-in {
		display: grid;
	}
}
