/* ── Sign-Up Page ── */

.sign-up-wrap {
	max-width: 1080px;
	margin: 0 auto;
	padding: 2.25rem 0 3.5rem;
}

.sign-up-sub-hero {
	position: relative;
	overflow: hidden;
	margin: 0 0 1.25rem;
	padding: 2.1rem 1.6rem 1.8rem;
	border-radius: var(--radius-lg, 16px);
	background:
		linear-gradient(105deg, rgba(22, 49, 37, 0.84), rgba(22, 49, 37, 0.58)),
		url('/assets/images/hero-signup.jpg') center 38% / cover no-repeat;
	color: #fff;
	box-shadow: 0 10px 24px rgba(16, 35, 26, 0.16);
	text-align: left;
	min-height: 200px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 0.42rem;
}

.sign-up-sub-hero__eyebrow {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
	margin: 0;
}

.sign-up-sub-hero__title {
	font-size: 2.05rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: 0;
}

.sign-up-sub-hero__lead {
	font-size: 0.9rem;
	line-height: 1.55;
	max-width: 460px;
	margin: 0;
	color: rgba(255, 255, 255, 0.92);
}

.sign-up-intro {
	margin: 0 auto 1.35rem;
	padding: 1.4rem 2rem 1.55rem;
	border: 1px solid var(--line, #dde4de);
	border-radius: var(--radius-lg, 16px);
	background: var(--surface, #fff);
	box-shadow: var(--shadow, 0 4px 12px rgba(16, 32, 51, 0.05));
}

.sign-up-intro__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.4rem;
	flex-wrap: wrap;
}

.sign-up-intro__title {
	font-size: 1.85rem;
	font-weight: 800;
	color: var(--text, #163125);
	margin: 0 0 0.45rem;
	letter-spacing: -0.01em;
}

.sign-up-intro__lead {
	margin: 0;
	color: var(--muted, #637264);
	line-height: 1.55;
	font-size: 0.92rem;
	flex: 1 1 320px;
}

.sign-up-intro__links {
	display: flex;
	justify-content: flex-end;
	gap: 0.6rem;
	flex-shrink: 0;
}

.sign-up-intro__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 8.2rem;
	padding: 0.46rem 1rem;
	font-size: 0.82rem;
	font-weight: 700;
	border: 1px solid var(--accent, #2a8d55);
	border-radius: 999px;
	background: var(--accent, #2a8d55);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.sign-up-intro__link:hover {
	background: var(--accent-dark, #1d6a40);
	border-color: var(--accent-dark, #1d6a40);
}

.sign-up-intro__link--ghost {
	background: #fff;
	border-color: var(--line-strong, #c4d1c7);
	color: var(--text, #163125);
}

.sign-up-intro__link--ghost:hover {
	background: var(--surface-muted, #f7faf7);
	border-color: var(--accent, #2a8d55);
	color: var(--accent, #2a8d55);
}

/* ── Membership notice (nested inside .sign-up-intro) ── */

.sign-up-intro__notice {
	margin-top: 1.4rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--line, #dde4de);
}

.sign-up-notice__eyebrow {
	display: inline-block;
	margin: 0 0 0.65rem;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	background: rgba(42, 141, 85, 0.12);
	color: var(--accent, #2a8d55);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sign-up-notice__title {
	margin: 0 0 0.4rem;
	font-size: 1rem;
	font-weight: 800;
	color: var(--text, #163125);
	letter-spacing: -0.005em;
	line-height: 1.5;
}

.sign-up-notice__lead {
	margin: 0 0 0.85rem;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--text, #163125);
}

.sign-up-notice__list {
	margin: 0 0 1rem;
	padding-left: 1.15rem;
	display: grid;
	gap: 0.45rem;
	list-style: disc;
}

.sign-up-notice__list li {
	font-size: 0.86rem;
	line-height: 1.65;
	color: var(--muted, #637264);
}

.sign-up-notice__list li::marker {
	color: var(--accent, #2a8d55);
}

.sign-up-notice__contact-label {
	margin: 0 0 0.55rem;
	font-size: 0.86rem;
	line-height: 1.6;
	color: var(--text, #163125);
}

.sign-up-notice__contact {
	margin: 0;
}

.sign-up-notice__email {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.48rem 1rem;
	border-radius: 999px;
	background: var(--accent, #2a8d55);
	color: #fff;
	font-size: 0.84rem;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s, transform 0.2s;
}

.sign-up-notice__email:hover,
.sign-up-notice__email:focus-visible {
	background: var(--accent-dark, #1d6a40);
	transform: translateY(-1px);
}

.sign-up-notice__email-icon {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex-shrink: 0;
}

/* ── Global messages ── */

.form-honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sign-up-global-error {
	padding: 0.72rem 1rem;
	background: #fef2f2;
	border: 1px solid #fca5a5;
	border-radius: var(--radius-sm, 8px);
	color: #b91c1c;
	font-size: 0.84rem;
	margin-bottom: 1.2rem;
	line-height: 1.6;
}

/* ── Form card ── */

.sign-up-form {
	background: var(--surface, #fff);
	border: 1px solid var(--line, #dde4de);
	border-radius: var(--radius-lg, 16px);
	padding: 2rem 2.2rem 2.25rem;
	box-shadow: var(--shadow, 0 4px 12px rgba(16, 32, 51, 0.05));
}

/* ── Form sections ── */

.sign-up-form fieldset {
	border: none;
	margin: 0 0 2.05rem;
	padding: 0;
}

.sign-up-form fieldset:last-of-type {
	margin-bottom: 0;
}

.form-section__heading {
	display: flex;
	align-items: center;
	gap: 0.52rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--text, #163125);
	letter-spacing: 0.02em;
	padding-bottom: 0.72rem;
	border-bottom: 2px solid var(--accent, #2a8d55);
	margin-bottom: 1.4rem;
}

.form-section__heading::before {
	counter-increment: form-section;
	content: counter(form-section);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.42rem;
	height: 1.42rem;
	border-radius: 50%;
	background: var(--accent, #2a8d55);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	flex-shrink: 0;
}

.sign-up-form {
	counter-reset: form-section;
}

/* ── Two-column row ── */

.form-row-group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1rem;
}

.form-row-group--triple {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.form-row-group--contact-phones {
	align-items: start;
}

/* ── Form rows ── */

.form-row {
	margin-bottom: 1rem;
}

.form-label {
	display: block;
	font-size: 0.84rem;
	font-weight: 600;
	color: var(--text, #163125);
	margin-bottom: 0.32rem;
}

.form-required {
	color: #dc2626;
	margin-left: 2px;
}

.form-input,
.form-select,
.form-textarea {
	width: 100%;
	padding: 0.56rem 0.75rem;
	border: 1px solid var(--line, #dde4de);
	border-radius: var(--radius-sm, 8px);
	font-size: 0.9rem;
	font-family: inherit;
	background: var(--surface, #fff);
	color: var(--text, #163125);
	transition: border-color 0.2s, box-shadow 0.2s;
	box-sizing: border-box;
}

.form-input::placeholder {
	color: #adb5ad;
}

.form-input:hover,
.form-select:hover,
.form-textarea:hover {
	border-color: var(--line-strong, #c4d1c7);
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
	outline: none;
	border-color: var(--accent, #2a8d55);
	box-shadow: 0 0 0 3px rgba(42, 141, 85, 0.12);
}

.form-textarea {
	min-height: 5.5rem;
	resize: vertical;
}

.form-select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath fill='%23637264' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.72rem center;
	background-size: 12px;
	padding-right: 1.9rem;
}

.form-hint {
	display: block;
	font-size: 0.74rem;
	color: var(--muted, #637264);
	margin-top: 0.24rem;
}

/* ── Error state ── */

.form-row--error .form-input,
.form-row--error .form-select,
.form-row--error .form-textarea {
	border-color: #dc2626;
	background: #fef7f7;
}

.form-row--error .form-input:focus,
.form-row--error .form-select:focus,
.form-row--error .form-textarea:focus {
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

.form-error {
	display: block;
	font-size: 0.74rem;
	color: #dc2626;
	margin-top: 0.2rem;
	min-height: 0;
}

/* ── Phone number group ── */

.form-phone-group {
	display: flex;
	gap: 0.42rem;
	align-items: flex-start;
}

.form-phone-item {
	flex: 1;
}

.form-phone-item--code {
	flex: 0 0 4.7rem;
}

.form-phone-item--area {
	flex: 0 0 5.8rem;
}

/* ── Email preferences ── */

.email-pref-intro {
	font-size: 0.82rem;
	color: var(--muted, #637264);
	line-height: 1.65;
	margin-bottom: 0.5rem;
}

.email-pref-actions {
	display: flex;
	gap: 0.42rem;
	margin-bottom: 0.72rem;
}

.email-pref-select-all {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.74rem;
	color: var(--accent, #2a8d55);
	cursor: pointer;
	border: 1px solid var(--accent, #2a8d55);
	border-radius: 0.3rem;
	background: none;
	padding: 0.2rem 0.62rem;
	margin-bottom: 0;
	font-weight: 600;
	text-decoration: none;
	font-family: inherit;
	transition: background 0.2s, color 0.2s;
}

.email-pref-select-all:hover {
	background: var(--accent, #2a8d55);
	color: #fff;
}

.form-checkbox-group {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.form-checkbox-label {
	display: flex;
	align-items: center;
	gap: 0.52rem;
	font-size: 0.82rem;
	color: var(--text, #163125);
	cursor: pointer;
	line-height: 1.5;
	padding: 0.42rem 0.62rem;
	border-radius: 0.36rem;
	transition: background 0.15s;
}

.form-checkbox-label:hover {
	background: var(--surface-muted, #f7faf7);
}

.form-checkbox-label input[type="checkbox"] {
	flex-shrink: 0;
	width: 0.94rem;
	height: 0.94rem;
	accent-color: var(--accent, #2a8d55);
	cursor: pointer;
}

.email-pref-consent {
	margin-top: 0.82rem;
	font-size: 0.72rem;
	color: #8a918b;
	line-height: 1.65;
	padding-left: 0.62rem;
}

/* ── Terms ── */

.form-terms {
	padding: 1.45rem 0 0;
	border-top: 1px solid var(--line, #dde4de);
	margin-top: 2rem;
}

.form-terms__heading {
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--text, #163125);
	margin: 0 0 0.72rem;
}

.form-terms__links {
	display: flex;
	gap: 0.42rem;
	margin-bottom: 0.92rem;
}

.form-terms__links a {
	display: inline-block;
	font-size: 0.74rem;
	color: var(--accent, #2a8d55);
	text-decoration: none;
	font-weight: 600;
	padding: 0.32rem 0.72rem;
	border: 1px solid var(--line, #dde4de);
	border-radius: 0.34rem;
	transition: border-color 0.2s, background 0.2s;
}

.form-terms__links a:hover {
	border-color: var(--accent, #2a8d55);
	background: rgba(42, 141, 85, 0.04);
}

/* ── Form actions ── */

.form-actions {
	display: flex;
	justify-content: center;
	gap: 0.72rem;
	padding-top: 1.6rem;
}

.btn-form-cancel,
.btn-form-submit {
	display: inline-block;
	padding: 0.66rem 2.2rem;
	font-size: 0.84rem;
	font-weight: 700;
	font-family: inherit;
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
	border: none;
	text-decoration: none;
	text-align: center;
	transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
}

.btn-form-cancel {
	background: var(--surface-muted, #f7faf7);
	color: var(--muted, #637264);
	border: 1px solid var(--line, #dde4de);
}

.btn-form-cancel:hover {
	background: #eef2ef;
	border-color: var(--line-strong, #c4d1c7);
}

.btn-form-submit {
	background: var(--accent, #2a8d55);
	color: #fff;
	box-shadow: 0 2px 8px rgba(42, 141, 85, 0.2);
}

.btn-form-submit:hover {
	background: var(--accent-dark, #1d6a40);
	box-shadow: 0 4px 14px rgba(42, 141, 85, 0.25);
	transform: translateY(-1px);
}

.btn-form-submit:active {
	transform: translateY(0);
}

/* ── Email check button & result ── */

.form-row--email-check {
	max-width: calc(50% - 0.4rem);
}

.form-input-with-btn {
	display: flex;
	gap: 0.5rem;
	align-items: stretch;
}

.form-input-with-btn .form-input {
	flex: 1;
	min-width: 0;
}

.form-check-btn {
	flex-shrink: 0;
	padding: 0 1.1rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: #fff;
	background: var(--primary, #1a3c6e);
	border: none;
	border-radius: 6px;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.18s, opacity 0.18s;
}

.form-check-btn:hover {
	background: var(--primary-dark, #142e55);
}

.form-check-btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.email-check-result {
	margin-top: 0.45rem;
	padding: 0.65rem 0.85rem;
	border-radius: 6px;
	font-size: 0.85rem;
	line-height: 1.5;
}

.email-check-result--ok {
	background: #edf7ed;
	color: var(--accent, #2a8d55);
	font-weight: 600;
}

.email-check-result__icon {
	font-weight: 700;
}

.email-check-result--dup {
	background: #fef3f2;
	border: 1px solid #fecaca;
	color: #b91c1c;
}

.email-check-result__msg {
	margin: 0 0 0.5rem;
	font-weight: 600;
}

.email-check-result__actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.email-check-result__link {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.9rem;
	font-size: 0.8rem;
	font-weight: 600;
	border-radius: 5px;
	text-decoration: none;
	background: var(--primary, #1a3c6e);
	color: #fff;
	transition: background 0.18s;
}

.email-check-result__link:hover {
	background: var(--primary-dark, #142e55);
}

.email-check-result__link--ghost {
	background: transparent;
	color: #b91c1c;
	border: 1px solid #fca5a5;
}

.email-check-result__link--ghost:hover {
	background: #fef3f2;
}

.email-check-result--err {
	background: #fffbeb;
	color: #92400e;
}

/* ── Success state ── */

.form-success {
	text-align: center;
	padding: 3rem 1.5rem 3.5rem;
}

.form-success__icon {
	color: var(--accent, #2a8d55);
	margin-bottom: 1rem;
}

.form-success__title {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--heading, #1a1a2e);
	margin: 0 0 0.75rem;
}

.form-success__message {
	font-size: 0.94rem;
	color: var(--text-secondary, #555);
	line-height: 1.65;
	margin: 0 0 2rem;
}

.form-success__actions {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.form-success__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 160px;
	padding: 0.7rem 1.8rem;
	font-size: 0.94rem;
	font-weight: 600;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.18s, color 0.18s, box-shadow 0.18s;
}

.form-success__btn--primary {
	background: var(--primary, #1a3c6e);
	color: #fff;
}

.form-success__btn--primary:hover {
	background: var(--primary-dark, #142e55);
	box-shadow: 0 2px 8px rgba(26, 60, 110, 0.18);
}

.form-success__btn--ghost {
	background: transparent;
	color: var(--text-secondary, #555);
	border: 1px solid var(--border, #d0d0d0);
}

.form-success__btn--ghost:hover {
	background: var(--bg-muted, #f5f5f5);
	color: var(--heading, #1a1a2e);
}

/* ── Responsive ── */

@media (max-width: 1100px) {
	.form-row-group--triple {
		grid-template-columns: 1fr 1fr;
	}

	.form-row-group--contact-phones {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.form-row--email-check {
		max-width: 100%;
	}
	.sign-up-wrap {
		padding: 1.55rem 0 2.2rem;
	}
	.sign-up-sub-hero {
		padding: 1.4rem 1rem 1.2rem;
		min-height: 152px;
		margin-bottom: 1rem;
	}
	.sign-up-sub-hero__title {
		font-size: 1.38rem;
	}
	.sign-up-sub-hero__lead {
		font-size: 0.8rem;
		max-width: 100%;
	}
	.sign-up-intro {
		margin-bottom: 1.25rem;
		padding: 1.1rem 1rem 1.15rem;
		border-radius: var(--radius-md, 12px);
	}
	.sign-up-intro__header {
		flex-direction: column;
		align-items: stretch;
		gap: 0.85rem;
	}
	.sign-up-intro__title {
		font-size: 1.34rem;
	}
	.sign-up-intro__lead {
		font-size: 0.84rem;
		flex: 1 1 auto;
	}
	.sign-up-intro__links {
		flex-direction: column;
		align-items: stretch;
		justify-content: stretch;
	}
	.sign-up-intro__link {
		width: 100%;
	}
	.sign-up-intro__notice {
		margin-top: 1.15rem;
		padding-top: 1.15rem;
	}
	.sign-up-notice__title {
		font-size: 0.94rem;
	}
	.sign-up-notice__lead,
	.sign-up-notice__contact-label {
		font-size: 0.84rem;
	}
	.sign-up-notice__list li {
		font-size: 0.82rem;
	}
	.sign-up-notice__email {
		width: 100%;
		justify-content: center;
	}
	.sign-up-form {
		padding: 1.25rem 1rem 1.4rem;
		border-radius: var(--radius-md, 12px);
	}
	.form-row-group {
		grid-template-columns: 1fr;
	}
	.form-phone-item--code {
		flex: 0 0 4.2rem;
	}
	.form-phone-item--area {
		flex: 0 0 4.8rem;
	}
	.form-actions {
		flex-direction: column-reverse;
	}
	.btn-form-cancel,
	.btn-form-submit {
		width: 100%;
		padding: 0.72rem 1rem;
	}
	.form-phone-group {
		flex-direction: column;
	}
	.form-phone-item--code,
	.form-phone-item--area {
		flex: 1;
	}
	.form-terms__links {
		flex-direction: column;
		gap: 0.4rem;
	}
}

.btn-form-submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}
