/* navito.ai — wspólny komponent formularza leada.
   Używany na produkt/kontakt (i kolejnych). Dołącz: <link rel="stylesheet" href="assets/form.css">
   Markup: <form class="nv-form [nv-form--tint]"> z .nv-field / .nv-input / .nv-submit. */

.nv-form{
  display:grid;
  grid-template-columns:minmax(0,1fr); /* jedna kolumna, kurczliwa — koniec grid-blowout */
  gap:16px;
  background:#fff;
  border:1px solid #e2ebf5;
  border-radius:16px;
  padding:32px;
}
.nv-form--tint{ background:#F4F8FD; } /* gdy formularz leży na białej sekcji */

.nv-field{ display:grid; gap:7px; min-width:0; }
.nv-field label{ font:600 13px 'Hanken Grotesk',sans-serif; color:#3f5673; }

.nv-input{
  width:100%; min-width:0; box-sizing:border-box;
  padding:13px 15px;
  border:1px solid #d3deeb; border-radius:8px;
  font:400 15px 'Hanken Grotesk',sans-serif;
  background:#fff; color:#042C53;
}
textarea.nv-input{ resize:vertical; }
.nv-input::placeholder{ color:#9aa9bd; }
.nv-input:focus{ outline:none; border-color:#185FA5; box-shadow:0 0 0 3px rgba(24,95,165,.12); }
.nv-input[aria-invalid="true"]{ border-color:#c4423a; box-shadow:0 0 0 3px rgba(196,66,46,.12); }

/* honeypot — niewidoczny dla ludzi */
.nv-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.nv-submit{
  width:100%; padding:16px;
  background:#EF9F27; color:#042C53; border:none; border-radius:8px;
  font:600 16px 'Hanken Grotesk',sans-serif; cursor:pointer;
  transition:transform .12s, box-shadow .15s, opacity .15s;
}
.nv-submit:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(239,159,39,.32); }
.nv-submit:disabled{ opacity:.6; cursor:default; transform:none; box-shadow:none; }

.nv-form__note{ text-align:center; font:400 12px 'Hanken Grotesk',sans-serif; color:#9aa9bd; }

/* komunikaty inline (sukces/błąd) */
.nv-form__msg{ font:500 14px/1.45 'Hanken Grotesk',sans-serif; border-radius:8px; padding:11px 14px; }
.nv-form__msg--err{ background:#fdecea; color:#a83326; border:1px solid #f3c9c2; }
.nv-form__msg--ok{ background:#e7f6ec; color:#1f7a43; border:1px solid #b6e3c6; }

/* Turnstile: normalny na desktopie, skalowany do ramki na mobile */
.cf-turnstile{ min-width:0; }
@media (max-width:560px){
  .nv-form{ padding:22px; }
  .cf-turnstile{ overflow:hidden; }
  .cf-turnstile>*{ transform:scale(.85); transform-origin:left top; }
}

@media (prefers-reduced-motion: reduce){
  .nv-submit:hover{ transform:none; }
}
