/*
 * Camera volunteer page, the same on lewisandclarkresearch.org and www.lewisandclarktrust.org.
 * SOURCE OF TRUTH: research repo, wp-content/plugins/lcr-feedback/assets/css/volunteer-form.css.
 * The Trust theme carries an identical copy; each site only sets its colors through .lv-theme-*.
 */
.lv-theme-research {
	--lv-ink: #2C1810; --lv-ink-2: #5a4a35; --lv-muted: #6b5d50; --lv-line: #D4C5A9;
	--lv-paper: #fff; --lv-field: #FAF8F5; --lv-accent: #1d757c; --lv-accent-hover: #155a60; --lv-on-accent: #fff;
	--lv-head: var(--font-heading, 'Playfair Display', Georgia, serif); --lv-radius: 10px;
}
.lv-theme-trust {
	--lv-ink: var(--jim-ink, #2C1810); --lv-ink-2: var(--jim-ink-2, #4A3728); --lv-muted: var(--jim-ink-3, #5C4636); --lv-line: var(--jim-rule-2, #CDBEA3);
	--lv-paper: var(--jim-wash, #F7F3EB); --lv-field: #fff; --lv-accent: var(--jim-link, #1F6168); --lv-accent-hover: var(--jim-link-hover, #7A2E12); --lv-on-accent: #fff;
	--lv-head: inherit; --lv-radius: var(--jim-radius, 4px);
}

/* Research site hero (the Trust uses its own .jim-hero). */
.lv-hero { background: linear-gradient(135deg, #2C1810 0%, #3D2E1F 100%); padding: 3rem 0 2.5rem; color: #FAF8F5; }
.lv-hero .container { max-width: 1100px; }
.lv-hero-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: #D4C5A9; margin-bottom: 0.6rem; }
.lv-hero h1 { font-family: var(--lv-head); font-size: 2.1rem; margin: 0 0 0.5rem; color: #FAF8F5; }
.lv-hero p { color: #D4C5A9; margin: 0; max-width: 640px; font-size: 1.02rem; line-height: 1.6; }
.lv-body { padding: 2.5rem 0 3rem; background: #FAF8F5; }
.lv-body .container { max-width: 1100px; }

/* Layout */
.lv-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 2.5rem; align-items: start; color: var(--lv-ink); }
@media (max-width: 900px) { .lv-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }

/* The reading column */
.lv-copy { font-size: 1.05rem; line-height: 1.6; color: var(--lv-ink-2); }
.lv-copy p { margin: 0 0 1rem; }
.lv-copy h2 { font-family: var(--lv-head); font-size: 1.35rem; line-height: 1.25; color: var(--lv-ink); margin: 1.75rem 0 0.75rem; }
.lv-owner { font-size: 0.92rem; color: var(--lv-muted); }
.lv-split { font-weight: 600; color: var(--lv-ink); }
.lv-steps { list-style: none; margin: 0; padding: 0; counter-reset: lv; }
.lv-steps li { counter-increment: lv; position: relative; padding: 0 0 0.9rem 2.5rem; }
.lv-steps li::before {
	content: counter(lv); position: absolute; left: 0; top: 0.05rem; width: 1.75rem; height: 1.75rem; border-radius: 50%;
	border: 1px solid var(--lv-line); color: var(--lv-ink); font-size: 0.9rem; font-weight: 600; line-height: 1.7rem; text-align: center;
}
.lv-steps b, .lv-know b { color: var(--lv-ink); }
.lv-know { margin: 0; padding: 0 0 0 1.15rem; }
.lv-know li { margin-bottom: 0.6rem; }

/* The form */
.lv-card { background: var(--lv-paper); border: 1px solid var(--lv-line); border-radius: var(--lv-radius); padding: 1.75rem; }
@media (max-width: 480px) { .lv-card { padding: 1.25rem 1rem; } }
.lv-form-title { font-family: var(--lv-head); font-size: 1.5rem; line-height: 1.2; color: var(--lv-ink); margin: 0 0 1.25rem; }
.lv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.lv-field { margin: 0 0 1.15rem; border: 0; padding: 0; min-width: 0; }
.lv-field label, .lv-field legend { display: block; padding: 0; margin: 0 0 0.35rem; font-weight: 600; font-size: 1rem; line-height: 1.35; color: var(--lv-ink); }
.lv-opt { font-weight: 400; color: var(--lv-muted); }
.lv-hint { margin: 0 0 0.45rem; font-size: 0.92rem; line-height: 1.4; color: var(--lv-muted); }
.lv-field input[type="text"], .lv-field input[type="email"], .lv-field input[type="tel"], .lv-field select, .lv-field textarea {
	display: block; width: 100%; box-sizing: border-box; min-height: 46px; padding: 0.6rem 0.8rem; font: inherit; font-size: 1rem; /* 16px: no zoom on iPhone */
	color: var(--lv-ink); background: var(--lv-field); border: 1px solid var(--lv-line); border-radius: 6px;
}
.lv-field textarea { resize: vertical; }
.lv-field input:focus-visible, .lv-field select:focus-visible, .lv-field textarea:focus-visible, .lv-check input:focus-visible, .lv-submit:focus-visible, .lv-link:focus-visible {
	outline: 2px solid var(--lv-accent); outline-offset: 2px;
}
.lv-field [aria-invalid="true"] { border-color: #a12626; }
.lv-err { margin: 0.35rem 0 0; font-size: 0.92rem; color: #a12626; font-weight: 600; }
.lv-err[hidden] { display: none; }
.lv-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0.9rem; }
@media (max-width: 480px) { .lv-row { grid-template-columns: minmax(0, 1fr); gap: 0; } }

.lv-field label.lv-check { display: flex; align-items: flex-start; gap: 0.6rem; min-height: 44px; margin: 0; padding: 0.6rem 0; font-weight: 400; font-size: 0.98rem; cursor: pointer; }
.lv-check input { flex: none; width: 1.15rem; height: 1.15rem; margin: 0.15rem 0 0; accent-color: var(--lv-accent); }
.lv-place-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
@media (max-width: 560px) { .lv-place-grid { grid-template-columns: minmax(0, 1fr); } }
.lv-place-state { margin: 0.75rem 0 0.1rem; font-weight: 600; color: var(--lv-ink); }
.lv-link { display: inline-block; min-height: 44px; padding: 0.5rem 0; background: none; border: 0; font: inherit; font-size: 0.98rem; color: var(--lv-accent); text-decoration: underline; cursor: pointer; }
.lv-link:hover { color: var(--lv-accent-hover); }
.lv-link[hidden] { display: none; }

.lv-privacy { margin: 0 0 1rem; font-size: 0.9rem; line-height: 1.45; color: var(--lv-muted); }
.lv-turnstile { margin: 0 0 1rem; min-height: 65px; }
#lv-turnstile-err { margin: -0.5rem 0 1rem; }
.lv-submit { display: inline-block; min-height: 48px; padding: 0.7rem 2rem; background: var(--lv-accent); color: var(--lv-on-accent); border: 0; border-radius: 6px; font: inherit; font-size: 1.05rem; font-weight: 600; cursor: pointer; }
.lv-submit:hover { background: var(--lv-accent-hover); }
.lv-submit[disabled] { opacity: 0.65; cursor: wait; }
.lv-msg { margin-top: 1rem; padding: 0.75rem 1rem; border-radius: 6px; font-size: 0.98rem; background: #fbeaea; color: #7a2222; border: 1px solid #e3b3b3; }
.lv-msg[hidden] { display: none; }
.lv-thanks p { margin: 0 0 0.75rem; font-size: 1.05rem; line-height: 1.55; color: var(--lv-ink-2); }
.lv-thanks:focus { outline: none; }
