/* Intras AI — lead forms (/scan/, /partners/apply/ and thanks pages) */
:root, [data-theme='light'] {
  --form-error: #b42318;
  --form-error-soft: #fdecea;
  --form-input-bg: #ffffff;
}
[data-theme='dark'] {
  --form-error: #fca5a5;
  --form-error-soft: rgba(248, 113, 113, .12);
  --form-input-bg: #0f0d16;
}

/* Layout */
.fpage__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(var(--space-8), 5vw, var(--space-16)); align-items: start; position: relative; }
.fpage__copy { padding-top: var(--space-2); }
.fpage__h1 { font-size: clamp(2.25rem, 1rem + 3.2vw, 3.75rem); max-width: 16ch; }
.fpage__block { margin-top: var(--space-10); }
.fpage__block .kicker { margin-bottom: var(--space-4); }
.fpage__fine { margin-top: var(--space-6); font-size: var(--text-sm); color: var(--color-text-muted); max-width: 52ch; }

.nextsteps { display: grid; gap: var(--space-4); }
.nextsteps li { display: grid; grid-template-columns: 2.25rem 1fr; gap: var(--space-3); align-items: baseline; color: var(--color-text-muted); font-size: var(--text-sm); }
.nextsteps__n { color: var(--color-primary); }

.recap { display: grid; gap: var(--space-4); }
.recap div { border-left: 2px solid var(--color-primary-line); padding-left: var(--space-4); }
.recap dt { font-weight: 600; font-size: var(--text-sm); }
.recap dd { color: var(--color-text-muted); font-size: var(--text-sm); }

/* Card */
.form-card { background: var(--color-surface); border: 1px solid var(--color-border); border-top: 3px solid var(--brand-purple); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); padding: clamp(var(--space-6), 3.2vw, var(--space-10)); position: relative; }
.form-card__h { font-size: var(--text-xl); letter-spacing: -.02em; }
.form-card__note { margin-top: var(--space-2); font-size: var(--text-xs); color: var(--color-text-muted); }

.form-grid { display: grid; gap: var(--space-5); margin-top: var(--space-6); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }

/* Fields */
.field { display: grid; gap: var(--space-2); min-width: 0; align-content: start; }
.field > label, .field legend { font-size: var(--text-sm); font-weight: 600; color: var(--color-text); }
.field--group { border: 0; }
.field--group legend { padding: 0; margin-bottom: var(--space-2); }
.field__req { color: var(--color-primary); font-weight: 700; }
.field__opt { font-family: var(--font-mono); font-size: .7rem; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--color-text-faint); margin-left: var(--space-1); }
.field__help { font-size: var(--text-xs); color: var(--color-text-muted); margin-top: -2px; }
.field__count { font-family: var(--font-mono); color: var(--color-text-faint); }
.field__error { font-size: var(--text-xs); font-weight: 600; color: var(--form-error); }
.field__error:empty { display: none; }
.field__error::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: currentColor; margin-right: var(--space-2); vertical-align: middle; }

.lead-form input[type='text'], .lead-form input[type='email'], .lead-form select, .lead-form textarea {
  width: 100%; font: inherit; font-size: var(--text-sm); color: var(--color-text);
  background: var(--form-input-bg); border: 1px solid var(--color-border); border-radius: var(--radius-md);
  padding: .7rem .85rem; min-height: 46px; line-height: 1.4;
  transition: border-color var(--transition-interactive), box-shadow var(--transition-interactive);
}
.lead-form textarea { resize: vertical; min-height: 120px; }
.lead-form select { appearance: none; -webkit-appearance: none; padding-right: 2.4rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.lead-form select option { color: var(--color-text); background: var(--color-surface); }
.lead-form input:hover, .lead-form select:hover, .lead-form textarea:hover { border-color: var(--color-primary-line); }
.lead-form input:focus-visible, .lead-form select:focus-visible, .lead-form textarea:focus-visible {
  outline: 2px solid var(--color-primary); outline-offset: 1px; border-color: var(--color-primary); border-radius: var(--radius-md);
  box-shadow: 0 0 0 4px var(--color-primary-soft);
}
.lead-form [aria-invalid='true'] { border-color: var(--form-error) !important; }
.lead-form [aria-invalid='true']:focus-visible { outline-color: var(--form-error); box-shadow: 0 0 0 4px var(--form-error-soft); }

/* Checkboxes / radios */
.choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: var(--space-2); }
.choices--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--text-sm); color: var(--color-text); cursor: pointer;
  border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: .65rem .8rem; background: var(--form-input-bg);
  transition: border-color var(--transition-interactive), background-color var(--transition-interactive); }
.choice:hover { border-color: var(--color-primary-line); }
.choice:has(input:checked) { border-color: var(--color-primary-line); background: var(--color-primary-soft); }
.choice:has(input:focus-visible) { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.choice input { accent-color: var(--brand-purple); width: 18px; height: 18px; margin-top: .14em; flex-shrink: 0; cursor: pointer; }
.choice input:focus-visible { outline: none; }
.choice--consent { border: 0; background: none; padding: 0; color: var(--color-text-muted); }
.choice--consent:hover { border: 0; }
.choice--consent:has(input:checked) { background: none; }
.choice--consent:has(input[aria-invalid='true']) span { color: var(--form-error); }
.choice--consent:has(input:focus-visible) { outline-offset: 4px; border-radius: var(--radius-sm); }
.field--consent { padding-top: var(--space-2); border-top: 1px solid var(--color-divider); }
.field--consent .field__error { margin-left: calc(18px + var(--space-3)); }

/* Honeypot */
.hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Actions */
.form-actions { display: grid; gap: var(--space-3); margin-top: var(--space-6); justify-items: start; }
.form-submit { min-height: 48px; padding-inline: var(--space-8); font-size: var(--text-base); }
.form-submit[disabled] { opacity: .7; cursor: progress; transform: none; }
.form-submit.is-sending .form-submit__label::before { content: ''; display: inline-block; width: 14px; height: 14px; margin-right: var(--space-2); vertical-align: -2px;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: fspin .8s linear infinite; }
@keyframes fspin { to { transform: rotate(360deg); } }
.form-actions__note { font-size: var(--text-xs); color: var(--color-text-faint); }

/* Security check (Cloudflare Turnstile) */
.form-verify { margin-top: var(--space-6); display: grid; gap: var(--space-2); min-width: 0; }
.form-turnstile { width: 100%; max-width: 100%; min-height: 65px; overflow: hidden; }
.form-turnstile iframe { max-width: 100%; }
.form-verify__status { font-size: var(--text-xs); color: var(--color-text-muted); }
.form-verify__status:empty { display: none; }
.form-verify__status.is-error { color: var(--form-error); font-weight: 600; }
.form-verify__noscript { font-size: var(--text-sm); color: var(--color-text); background: var(--form-error-soft); border: 1px solid color-mix(in oklab, var(--form-error) 45%, transparent); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); }
.form-verify__noscript a { color: var(--color-primary); font-weight: 600; text-decoration: underline; }
.form-verify + .form-actions { margin-top: var(--space-4); }

/* Alerts */
.form-alert { margin-top: var(--space-5); border: 1px solid color-mix(in oklab, var(--form-error) 45%, transparent); background: var(--form-error-soft); color: var(--color-text);
  border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); font-size: var(--text-sm); }
.form-alert:focus { outline: 2px solid var(--form-error); outline-offset: 2px; }
.form-alert b { color: var(--form-error); }
.form-alert ul { margin: var(--space-2) 0 0 var(--space-5); }
.form-alert a { color: var(--color-primary); font-weight: 600; text-decoration: underline; }

/* Success (green allowed for success state only) */
.form-success { outline: none; }
.form-success .tag { display: inline-block; }
.form-success h2 { margin-top: var(--space-4); font-size: var(--text-xl); letter-spacing: -.02em; }
.form-success p { margin-top: var(--space-3); color: var(--color-text-muted); font-size: var(--text-sm); }
.form-success .nextsteps { margin-top: var(--space-5); }
.form-success__ref { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--color-text); background: var(--color-surface-2); border-radius: var(--radius-sm); padding: 2px var(--space-2); word-break: break-all; }
.form-success .hero__ctas { margin-top: var(--space-6); }

/* Thanks pages */
.thanks { max-width: 720px; position: relative; }
.thanks .h1--page { margin-top: var(--space-5); }
.thanks__ref { margin-top: var(--space-5); color: var(--color-text-muted); }
.thanks__ref span { color: var(--color-text); }

@media (max-width: 960px) {
  .fpage__grid { grid-template-columns: 1fr; }
  .fpage__copy .fpage__block:last-child { margin-bottom: 0; }
}
@media (max-width: 560px) {
  .form-row { grid-template-columns: 1fr; }
  .choices--2 { grid-template-columns: 1fr; }
  .form-actions, .form-submit { width: 100%; }
  .form-submit { white-space: normal; }
  .form-card { border-radius: var(--radius-lg); }
}

/* Mobile shortcut to the form */
.fpage__jump { display: none; }
@media (max-width: 960px) { .fpage__jump { display: inline-block; margin-top: var(--space-5); } }
