/**
 * Sponsor enquiry form — the Sponsors & Grants "Sponsor Enquiry Form" card
 * (template-parts/sponsors/become.php + template-parts/forms/sponsor.php).
 * Scoped to .sponsor-form; the generic form baseline (inputs, validation,
 * privacy notice, honeypot) is components/forms.css.
 *
 * 1. Card
 * 2. Fieldsets & grid
 * 3. Contact-method choices
 * 4. Interest chips
 * 5. Submit row
 * 6. Responsive
 */

/* ============================ CARD ============================ */
.sponsor-form {
	display: flex;
	flex-direction: column;
	gap: var(--space-12);
	padding: calc(55 * var(--u)) var(--space-60) var(--space-60);
	background: var(--white);
	border: var(--stroke-thin) solid var(--primary-color);
	border-top-width: calc(9 * var(--u));
	border-radius: var(--radius-lg);
}

.sponsor-form__title {
	font-size: var(--fs-panel-title);
	font-weight: var(--font-weight-bold);
	line-height: 1.15;
	letter-spacing: -0.012em;
	color: var(--heading-color);
}

.sponsor-form__note {
	font-size: var(--fs-24);
	line-height: 1.55;
	color: var(--text-color);
}

.sponsor-form__req {
	color: var(--primary-color);
}

/* The layout below owns the spacing. */
.sponsor-form .mfc-form p {
	margin: 0;
}

/* ============================ FIELDSETS & GRID ============================ */
.sponsor-form__set {
	display: flex;
	flex-direction: column;
	gap: var(--space-24);
	min-width: 0;
	margin: calc(34 * var(--u)) 0 0;
	padding: 0;
	border: 0;
}

.sponsor-form__set:first-of-type {
	margin-top: calc(26 * var(--u));
}

.sponsor-form__set:last-of-type {
	margin-bottom: calc(34 * var(--u));
}

.sponsor-form__legend {
	display: flex;
	margin-bottom: var(--space-24);
	align-items: center;
	gap: var(--space-16);
	float: none;
	width: auto;
	padding: 0;
	font-size: var(--fs-28);
	font-weight: var(--font-weight-black);
	line-height: 1.55;
	letter-spacing: -0.015em;
	color: var(--heading-color);
}

.sponsor-form__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: calc(44 * var(--u));
	height: calc(44 * var(--u));
	min-width: 30px;
	min-height: 30px;
	font-size: var(--fs-24);
	font-weight: var(--font-weight-black);
	color: var(--text-color);
	background: var(--light-bg);
	border-radius: var(--radius-full);
}

.sponsor-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-28) var(--space-32);
}

.sponsor-form__field {
	display: flex;
	flex-direction: column;
	gap: var(--space-10);
	min-width: 0;
}

.sponsor-form__set > .sponsor-form__field + .sponsor-form__field {
	margin-top: var(--space-4);
}

.sponsor-form__field--full {
	grid-column: 1 / -1;
}

.sponsor-form__label {
	font-size: var(--fs-24);
	font-weight: var(--font-weight-bold);
	line-height: 1.55;
	color: var(--heading-color);
}

.sponsor-form__optional {
	font-weight: var(--font-weight-regular);
	color: var(--text-color);
}

.sponsor-form .sponsor-form__textarea {
	min-height: calc(170 * var(--u));
}

.sponsor-form__hint {
	font-size: var(--fs-24);
	line-height: 1.4;
	color: var(--text-color);
}

/* ============================ CONTACT-METHOD CHOICES ============================ */
.sponsor-form .sponsor-form__methods {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-16);
}

.sponsor-form .sponsor-form__methods label {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--space-14);
	min-height: calc(79 * var(--u));
	padding: var(--space-12) var(--space-20);
	font-size: var(--fs-intro);
	font-weight: var(--font-weight-bold);
	line-height: 1.55;
	color: var(--heading-color);
	background: var(--white);
	border: var(--stroke) solid var(--border-color);
	border-radius: var(--radius-lg);
	cursor: pointer;
	transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.sponsor-form .sponsor-form__methods input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.sponsor-form__method-icon {
	display: inline-flex;
	flex: none;
	width: calc(28 * var(--u));
	height: calc(28 * var(--u));
	min-width: 18px;
	min-height: 18px;
	color: var(--text-color);
}

.sponsor-form__method-icon svg {
	width: 100%;
	height: 100%;
}

.sponsor-form .sponsor-form__methods label:hover {
	border-color: var(--border-strong);
}

.sponsor-form .sponsor-form__methods label:has(input:checked) {
	border-color: var(--primary-color);
	background: var(--primary-tint);
}

.sponsor-form .sponsor-form__methods label:has(input:checked) .sponsor-form__method-icon {
	color: var(--primary-color);
}

.sponsor-form .sponsor-form__methods label:has(input:focus-visible) {
	outline: var(--stroke) solid var(--primary-color);
	outline-offset: var(--stroke);
}

/* ============================ INTEREST CHIPS ============================ */
.sponsor-form .sponsor-form__interests {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-14) var(--space-10);
	padding-block: var(--space-2) var(--space-4);
}

.sponsor-form .sponsor-form__interests label {
	align-items: center;
	gap: var(--space-10);
	padding: calc(13.5 * var(--u)) calc(22 * var(--u));
	font-weight: var(--font-weight-bold);
	line-height: 1.55;
	background: var(--white);
	border: var(--stroke) solid var(--border-color);
	border-radius: var(--radius-pill);
	transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.sponsor-form .sponsor-form__interests input[type="checkbox"] {
	width: calc(22 * var(--u));
	height: calc(22 * var(--u));
	min-width: 16px;
	min-height: 16px;
	margin: 0;
	appearance: none;
	background: var(--white);
	border: var(--stroke) solid var(--crumb-divider);
	border-radius: var(--radius-md);
	transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.sponsor-form .sponsor-form__interests input[type="checkbox"]:checked {
	background: var(--primary-color);
	border-color: var(--primary-color);
	box-shadow: inset 0 0 0 var(--stroke-bold) var(--white);
}

.sponsor-form .sponsor-form__interests label:has(input:checked) {
	border-color: var(--primary-color);
	background: var(--primary-tint);
}

.sponsor-form .sponsor-form__interests label:has(input:focus-visible) {
	outline: var(--stroke) solid var(--primary-color);
	outline-offset: var(--stroke);
}

/* ============================ SUBMIT ROW ============================ */
.sponsor-form .form-privacy {
	margin-bottom: var(--space-24);
}

.sponsor-form__submit-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-20) var(--space-28);
	padding-top: var(--space-40);
	border-top: var(--stroke-thin) solid var(--border-color);
}

.sponsor-form__submit-row > p:first-child {
	display: flex;
	align-items: center;
}

.sponsor-form .sponsor-form__submit {
	text-transform: none;
}

.sponsor-form__reassure {
	max-width: calc(324 * var(--u));
	font-size: var(--fs-24);
	line-height: 1.55;
	color: var(--text-color);
}

/* ============================ RESPONSIVE ============================ */

/* --- MD / Tablet --- */
@media (max-width: 992px) {
	.sponsor-form {
		padding: 32px 28px;
	}
}

/* --- SM / Mobile --- */
@media (max-width: 768px) {
	.sponsor-form {
		padding: 28px 18px;
		border-top-width: 6px;
	}

	.sponsor-form__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.sponsor-form__set {
		margin-top: 24px;
		gap: 18px;
	}

	.sponsor-form .sponsor-form__methods {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}

	.sponsor-form .sponsor-form__methods label {
		min-height: 52px;
		font-size: 16px;
	}

	.sponsor-form .sponsor-form__interests label {
		padding: 8px 14px;
		font-size: 15px;
	}

	.sponsor-form__reassure {
		max-width: none;
	}
}
