/* ==========================================================================
   OKC Reef — chooser and form styles
   Loaded only on pages that contain a form block (Reef Assessment, Reef Rehoming).
   ========================================================================== */

/* Path chooser. */
.okc-chooser__intro,
.okc-path-intro {
	max-width: 44ch;
	color: var(--okc-white);
	font-size: var(--okc-step-1);
	line-height: 1.5;
}

.okc-chooser {
	display: grid;
	gap: 2rem;
	margin-top: 2rem;
}

.okc-section .okc-chooser__label {
	margin-bottom: 0.75rem;
	line-height: 1.3;
	color: var(--okc-muted);
	font-size: var(--okc-step--1);
	font-weight: 700;
	letter-spacing: 0;
}

.okc-chooser ul {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.okc-choice {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--okc-line-strong);
	border-radius: var(--okc-radius);
	background: rgb(247 247 247 / 0.03);
	color: var(--okc-white);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.okc-choice strong {
	font-size: var(--okc-step-1);
	font-weight: 700;
}

.okc-choice span {
	color: var(--okc-muted);
	font-size: var(--okc-step--1);
	font-weight: 600;
}

.okc-choice:hover {
	border-color: var(--okc-coral);
	background: rgb(236 1 140 / 0.08);
	color: var(--okc-white);
}

.okc-choice:focus-visible {
	outline-offset: 2px;
}

@media (min-width: 48rem) {
	.okc-chooser {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.okc-chooser--single {
		grid-template-columns: minmax(0, 1fr);
		max-width: 32rem;
	}
}

.okc-chooser__aside,
.okc-chooser__question,
.okc-path-switch {
	max-width: 52ch;
	margin-top: 1.75rem;
	color: var(--okc-text);
}

/* Direct-contact panel (visitors, until online requests go live). */
.okc-form-fallback {
	margin-top: 2rem;
	padding: 1.5rem 1.75rem;
	border-left: 3px solid var(--okc-coral);
	border-radius: 0 var(--okc-radius) var(--okc-radius) 0;
	background: var(--okc-slate);
	color: var(--okc-white);
	font-size: var(--okc-step-1);
	line-height: 1.5;
}

.okc-form-fallback a {
	font-weight: 700;
	white-space: nowrap;
}

/* Editor-only preview note. */
.okc-form-preview-note {
	margin-top: 2.5rem;
	padding: 0.85rem 1rem;
	border: 1px dashed var(--okc-coral);
	border-radius: var(--okc-radius);
	background: rgb(236 1 140 / 0.1);
	font-size: var(--okc-step--1);
}

/* Form. */
.okc-form {
	margin-top: 1.5rem;
}

.okc-form__frame {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.okc-form__group {
	display: grid;
	gap: 1.25rem;
	padding-block: 1.5rem;
	border-top: 1px solid var(--okc-line);
}

.okc-section .okc-form__legend {
	font-size: var(--okc-step-1);
	letter-spacing: -0.01em;
	line-height: 1.3;
}

.okc-field {
	display: grid;
	gap: 0.45rem;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.okc-field label,
.okc-field legend {
	padding: 0;
	color: var(--okc-white);
	font-weight: 700;
}

.okc-field__req {
	color: var(--okc-muted);
	font-weight: 500;
}

.okc-field__help {
	color: var(--okc-muted);
	font-size: var(--okc-step--1);
}

.okc-field input[type="text"],
.okc-field input[type="tel"],
.okc-field input[type="email"],
.okc-field textarea {
	width: 100%;
	max-width: 36rem;
	min-height: 3rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--okc-line-strong);
	border-radius: var(--okc-radius);
	background: #141417;
	color: var(--okc-white);
	font: inherit;
	font-size: max(1rem, var(--okc-step-0)); /* ≥16px prevents mobile zoom on focus. */
}

.okc-field textarea {
	min-height: 7rem;
	resize: vertical;
}

.okc-field input:focus-visible,
.okc-field textarea:focus-visible {
	border-color: var(--okc-coral);
	outline: 3px solid rgb(236 1 140 / 0.45);
	outline-offset: 1px;
}

.okc-field__options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.okc-choice-opt {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--okc-line-strong);
	border-radius: 999px;
	font-weight: 500 !important;
	cursor: pointer;
}

.okc-choice-opt:has(input:checked) {
	border-color: var(--okc-coral);
	background: rgb(236 1 140 / 0.12);
}

.okc-choice-opt input {
	accent-color: var(--okc-coral);
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
}

.okc-field input[type="file"] {
	max-width: 100%;
	padding: 1rem;
	border: 1px dashed var(--okc-line-strong);
	border-radius: var(--okc-radius);
	color: var(--okc-text);
	font: inherit;
}

.okc-form__submit {
	display: grid;
	gap: 1rem;
	justify-items: start;
	padding-top: 1.5rem;
	border-top: 1px solid var(--okc-line);
}

.okc-form__filter {
	max-width: 52ch;
	color: var(--okc-white);
}

.okc-form__privacy {
	color: var(--okc-muted);
	font-size: var(--okc-step--1);
}

/* Disabled preview. */
.okc-form__frame:disabled {
	opacity: 0.72;
}

.okc-form__frame:disabled .okc-button {
	cursor: not-allowed;
}

/* Rehoming intake sits inside the closing section. */
.okc-inquiry .okc-rehoming-intake {
	max-width: 44rem;
}

/* ==========================================================================
   Phase 4: live form states (errors, uploads, honeypot)
   Uses the existing design system: no new colours, type or spacing tokens.
   ========================================================================== */

.okc-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.okc-form-errors {
	margin-bottom: 1.75rem;
	padding: 1rem 1.25rem;
	border-left: 3px solid var(--okc-coral);
	border-radius: 0 var(--okc-radius) var(--okc-radius) 0;
	background: var(--okc-slate);
	color: var(--okc-white);
}

.okc-form-errors ul {
	margin: 0.5rem 0 0;
	padding-left: 1.1rem;
}

.okc-form-errors li + li {
	margin-top: 0.35rem;
}

.okc-form-errors a {
	color: var(--okc-white);
}

.okc-field__error {
	color: var(--okc-coral-hover);
	font-size: var(--okc-step--1);
	font-weight: 600;
}

.okc-field--invalid input:not([type="radio"]):not([type="checkbox"]),
.okc-field--invalid textarea {
	border-color: var(--okc-coral-hover);
}

.okc-uploads {
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	font-size: var(--okc-step--1);
	color: var(--okc-muted);
}

.okc-uploads li + li {
	margin-top: 0.35rem;
}

.okc-uploads .is-too-big {
	color: var(--okc-coral-hover);
	font-weight: 600;
}

.okc-uploads__clear {
	padding: 0;
	border: 0;
	background: none;
	color: var(--okc-white);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.okc-form__group[hidden] {
	display: none;
}
