/* =========================================================
   pr-form.css — Form primoround.com (port di ep-form, skin primoround)
   ---------------------------------------------------------
   VISUAL: coerente con primoround.com, NON con eventpills (Marco 05/09/2026).
   Riferimenti letti dal sito live: font Gotham (body), card bianca radius ~11px
   su foto/fondo scuro (come il vecchio sib-form di /contatti/), label #3C4858,
   bottone brand arancio #F4951E pill (radius 50px) come «Scrivici», teal #0B6372.

   SPECIFICITA': ogni regola e' prefissata da `.pr-form ` (0,2,0) perche' il kit
   Elementor di primoround (`.elementor-kit-8 button{padding:0;border-radius:0}`,
   specificita' 0,1,1) batteva `.pr-form__submit` da sola: in anteprima (05/09)
   il bottone usciva piatto e senza padding. Stesso rischio sugli input.

   ACCESSIBILITA' (NORMA §2.9) — rapporti CALCOLATI, non guardati:
     testo bottone #1F2328 su arancio brand #F4951E  = 6,89:1 (il bianco farebbe 2,29 → vietato)
     hover #E28712 con #1F2328                        = 5,80:1
     label #3C4858 su bianco                          = 9,29:1 · su #F4F5F7 (consensi) 8,52:1
     asterisco/eyebrow #B04814 su bianco              = 5,55:1
     bordo campi #8f8d84 su bianco                    = 3,33:1 (WCAG 1.4.11 chiede 3:1)
     focus ring teal #0B6372 su bianco                = 6,90:1
   Se tocchi un colore, ricalcola.
   ========================================================= */

.pr-form{
  --pr-orange:#F4951E;        /* brand: fondo bottone, con testo SCURO sopra */
  --pr-orange-h:#E28712;      /* hover */
  --pr-orange-txt:#B04814;    /* accenti testuali (asterischi, eyebrow) */
  --pr-teal:#0B6372;          /* focus ring */
  --pr-ink:#1F2328;           /* testo su arancio */
  --pr-dark:#3C4858; --pr-muted:#5B6472;
  --pr-soft:#F4F5F7; --pr-line:#E3E6EA; --pr-border:#8f8d84; --pr-grey:#637A85;
  background:#fff; border-radius:12px;
  padding:34px 32px 26px; margin:0 auto; max-width:640px;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  font-family:"Gotham",Helvetica,Arial,sans-serif; color:var(--pr-dark);
  text-align:left; box-sizing:border-box;
}
.pr-form *,.pr-form *::before,.pr-form *::after{ box-sizing:border-box; }

.pr-form .pr-form__eyebrow{
  margin:0 0 6px; font-size:12px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--pr-orange-txt); text-shadow:none;
}
.pr-form .pr-form__title{ margin:0 0 10px; font-size:26px; line-height:1.2; font-weight:900; color:var(--pr-dark); text-transform:none; text-shadow:none; }
.pr-form .pr-form__lead{ margin:0 0 22px; font-size:15px; line-height:1.6; font-weight:300; color:var(--pr-muted); text-shadow:none; }

/* solo lettori di schermo */
.pr-form .pr-form__sr,
.pr-form .pr-form__legend{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.pr-form .pr-form__row--split{ display:flex; gap:14px; }
.pr-form .pr-form__row--split .pr-form__field{ flex:1 1 0; min-width:0; }
@media (max-width:520px){ .pr-form .pr-form__row--split{ display:block; } }

.pr-form .pr-form__field{ margin-bottom:16px; }
.pr-form .pr-form__field label{ display:block; margin-bottom:6px; font-size:14px; font-weight:700; color:var(--pr-dark); text-shadow:none; }
.pr-form .pr-form__req{ color:var(--pr-orange-txt); }
.pr-form .pr-form__field input[type=text],
.pr-form .pr-form__field input[type=email],
.pr-form .pr-form__field textarea{
  width:100%; padding:12px 14px; font-size:16px; line-height:1.4;
  font-family:inherit; font-weight:400; color:var(--pr-dark);
  border:1px solid var(--pr-border); border-radius:8px; background:#fff;
  transition:border-color .15s, box-shadow .15s; margin:0; box-shadow:none;
}
.pr-form .pr-form__field textarea{ resize:vertical; min-height:120px; }
.pr-form .pr-form__field input[aria-invalid="true"],
.pr-form .pr-form__field textarea[aria-invalid="true"]{ border-color:#c0392b; border-width:2px; }
.pr-form .pr-form__hint{ margin:6px 0 0; font-size:13px; line-height:1.45; color:var(--pr-muted); }

.pr-form .pr-form__captcha{ margin:18px 0 20px; }
/* Turnstile e' largo 300px FISSI (gotcha 5.16). Dove il contenitore e' piu' stretto (studios a 375px: colonna
   Elementor con 45px di padding per lato -> 249px utili) il widget viene scalato in proporzione invece di sbordare
   dalla card. Container query: nessun effetto dove i 300px ci stanno (primoround). */
.pr-form .pr-form__captcha{ container-type:inline-size; }
@container (max-width:299px){
  .pr-form .cf-turnstile{ transform:scale(.83); transform-origin:0 0; }
}
@container (max-width:259px){
  .pr-form .cf-turnstile{ transform:scale(.75); }
}

/* consensi */
.pr-form .pr-form__consensi{ border:0; padding:0; margin:0; min-width:0; }
.pr-form .pr-form__consent{
  display:flex; gap:11px; align-items:flex-start;
  padding:12px 14px; margin-bottom:10px;
  background:var(--pr-soft); border-radius:8px;
}
.pr-form .pr-form__consent input{ flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; accent-color:var(--pr-orange-txt); }
.pr-form .pr-form__consent label{ font-size:13.5px; line-height:1.5; cursor:pointer; color:var(--pr-dark); font-weight:400; margin:0; }
.pr-form .pr-form__consent label strong{ display:block; margin-bottom:2px; font-weight:700; }
.pr-form .pr-form__consent a{ color:inherit; text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.pr-form .pr-form__consent a:hover{ text-decoration-thickness:2px; }

/* bottone: pill arancio brand come «Scrivici», ma testo scuro (contrasto) */
.pr-form .pr-form__submit{
  display:block; width:100%; margin-top:18px; padding:15px 26px; line-height:1.3;
  font-family:inherit; font-size:16px; font-weight:900; letter-spacing:.01em; text-transform:none;
  color:var(--pr-ink); background:var(--pr-orange); border:0; border-radius:50px;
  cursor:pointer; transition:background .15s, transform .05s; box-shadow:none;
  text-shadow:none;   /* il kit Elementor (kit-6 studios) mette text-shadow su button: qui si azzera, come box-shadow */
}
.pr-form .pr-form__submit:hover{ background:var(--pr-orange-h); color:var(--pr-ink); }
.pr-form .pr-form__submit:active{ transform:translateY(1px); }
.pr-form .pr-form__submit[disabled]{ background:var(--pr-grey); color:#fff; cursor:not-allowed; }

.pr-form .pr-form__legal{ margin:14px 0 0; font-size:12.5px; line-height:1.5; color:var(--pr-muted); }
.pr-form .pr-form__legal a{ color:var(--pr-muted); text-decoration:underline; }

.pr-form .pr-form__msg{ margin-top:16px; padding:14px 16px; border-radius:8px; font-size:15px; line-height:1.5; color:var(--pr-dark); }
.pr-form .pr-form__msg--ok{ background:#eef7f0; border-left:4px solid #2f7d45; }
.pr-form .pr-form__msg--ko{ background:#fdf0ee; border-left:4px solid #c0392b; }

/* HONEYPOT — fuori dallo schermo. ⚠️ NON RIMUOVERE E NON RINOMINARE (gotcha 5.37):
   senza questa regola il campo trappola diventa visibile e un utente vero che lo
   compila riceve un «200 finto»: il suo lead sparisce senza traccia. */
.pr-form .pr-form__hp{
  position:absolute !important; left:-9999px !important; top:auto !important;
  width:1px !important; height:1px !important; overflow:hidden !important;
}

/* focus visibile e uniforme (WCAG 2.4.7) */
.pr-form :focus-visible{ outline:3px solid var(--pr-teal); outline-offset:2px; border-radius:6px; }
.pr-form .pr-form__field input:focus-visible,
.pr-form .pr-form__field textarea:focus-visible{ outline:3px solid var(--pr-teal); outline-offset:1px; border-color:var(--pr-teal); }
@supports not selector(:focus-visible){ .pr-form :focus{ outline:3px solid var(--pr-teal); outline-offset:2px; } }

@media (prefers-reduced-motion:reduce){
  .pr-form *,.pr-form *::before,.pr-form *::after{ transition:none !important; animation:none !important; }
  .pr-form .pr-form__submit:active{ transform:none; }
}
@media (forced-colors:active){
  .pr-form .pr-form__submit{ border:2px solid ButtonText; }
  .pr-form .pr-form__consent{ border:1px solid CanvasText; }
}

/* Turnstile è largo 300px fissi: sotto i 520px si stringe il padding della card (gotcha 5.16). */
@media (max-width:520px){ .pr-form{ padding:24px 18px 20px; } }
