@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@500&display=swap');

/* ============================================================= *
 * Pro.Gest – Moduli online · form styles (design system 2026)
 * Palette: ink #101829 · navy #143E60 · volt #C7FF18
 * bordo #E5EBF0 · campo #F7FAFC · placeholder #949EAD
 * Font: Geist. Selettori scoping .ra-wrap per battere lo <style>
 * inline (signature/title) stampato nel body.
 * ============================================================= */

.ra-wrap{
  --ink:#101829; --navy:#143E60; --volt:#C7FF18; --volt-h:#BDF50F;
  --line:#E5EBF0; --field:#F7FAFC; --ph:#949EAD; --muted:#475569; --muted2:#4D5766;
  --sel:#F7FFE5;
  max-width:1040px;margin:0 auto;padding:8px 0 72px;color:var(--ink);
  font-family:'Geist',-apple-system,'Segoe UI',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.ra-wrap *{box-sizing:border-box;}
.ra-hp{position:absolute!important;left:-9999px;height:0;overflow:hidden;}

.ra-wrap .ra-form{display:block;}

/* pagina modulo: titolo pagina centrato + respiro sopra
   (form.css viene caricato SOLO sulle pagine con lo shortcode del modulo) */
.entry-title{text-align:center;margin-top:36px;margin-bottom:16px;}

/* il titolo h2 del form duplica l'H1 della pagina → nascosto (resta l'H1) */
.ra-wrap .ra-form-title{display:none;}

/* sticky footer: sulle pagine corte (es. thank-you dopo l'invio) il footer
   resta in fondo al viewport → niente spazio bianco sotto il footer.
   (form.css è caricato SOLO sulle pagine modulo → non tocca il resto del sito) */
body{display:flex;flex-direction:column;min-height:100vh;}
body > main.site-main{flex:1 0 auto;}

/* section cards */
.ra-wrap .ra-sec{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:28px 32px;margin:0 0 16px;
}
.ra-wrap .ra-sec-t{
  font-family:'Geist',sans-serif;font-weight:600;font-size:18px;line-height:1.25;
  color:var(--ink);letter-spacing:-.01em;margin:0 0 2px;
}
.ra-wrap .ra-sec-s{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 16px;font-weight:400;}
.ra-wrap .ra-sec-t + .ra-grid{margin-top:18px;}

/* 12-col grid */
.ra-wrap .ra-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px 16px;}
.ra-wrap .ra-col{grid-column:span 12;min-width:0;display:flex;flex-direction:column;}
.ra-wrap .ra-col-1{grid-column:span 2}.ra-wrap .ra-col-2{grid-column:span 3}
.ra-wrap .ra-col-3{grid-column:span 4}.ra-wrap .ra-col-4{grid-column:span 4}
.ra-wrap .ra-col-5{grid-column:span 5}.ra-wrap .ra-col-6{grid-column:span 6}
.ra-wrap .ra-col-8{grid-column:span 8}.ra-wrap .ra-col-9{grid-column:span 9}
.ra-wrap .ra-col-12{grid-column:span 12}
@media(max-width:640px){.ra-wrap .ra-col,.ra-wrap [class*=ra-col-]{grid-column:span 12!important}}

/* labels */
.ra-wrap .ra-lab{
  display:block;font-family:'Geist',sans-serif;font-weight:500;font-size:13px;
  line-height:1.35;color:var(--ink);margin:0 0 8px;
}
.ra-wrap .ra-req{color:#DA4A3B;font-weight:500;}

/* inputs / textarea / select */
.ra-wrap .ra-in{
  width:100%;background:var(--field);border:1px solid var(--line);border-radius:8px;
  padding:12px 16px;font-family:'Geist',sans-serif;font-size:14px;color:var(--ink);
  box-shadow:none;transition:border-color .18s,box-shadow .18s,background .18s;
}
.ra-wrap .ra-in::placeholder{color:var(--ph);opacity:1;}
.ra-wrap .ra-in:focus{
  outline:none;border-color:var(--navy);background:#fff;
  box-shadow:0 0 0 3px rgba(20,62,96,.12);
}
.ra-wrap textarea.ra-in{min-height:120px;resize:vertical;line-height:1.5;}
.ra-wrap select.ra-in{
  appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.ra-wrap input.ra-file{padding:9px 12px;cursor:pointer;}
.ra-wrap input.ra-file::-webkit-file-upload-button,
.ra-wrap input.ra-file::file-selector-button{
  font-family:'Geist',sans-serif;font-weight:500;font-size:13px;color:var(--navy);
  background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 12px;
  margin-right:12px;cursor:pointer;transition:background .15s;
}
.ra-wrap input.ra-file:hover::file-selector-button{background:var(--field);}
.ra-wrap .ra-hint{display:block;font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4;}

/* note / info box */
.ra-wrap .ra-note{
  background:var(--field);border-left:3px solid var(--volt);border-radius:8px;
  padding:12px 16px;font-size:13px;font-weight:500;color:var(--ink);line-height:1.5;
}

/* ---- radio / checkbox groups = pillole ---- */
.ra-wrap .ra-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;}
.ra-wrap .ra-opts .ra-check{
  position:relative;display:inline-flex;align-items:center;gap:10px;margin:0;
  padding:11px 16px 11px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;
  font-family:'Geist',sans-serif;font-weight:500;font-size:13px;color:var(--ink);
  cursor:pointer;transition:background .15s,border-color .15s;line-height:1.2;
}
.ra-wrap .ra-opts .ra-check input{
  position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;
}
.ra-wrap .ra-opts .ra-check span{display:inline-block;}
.ra-wrap .ra-opts .ra-check::before{
  content:"";width:18px;height:18px;flex:0 0 auto;border:1.5px solid var(--navy);
  background:#fff;transition:box-shadow .15s,background .15s;
}
.ra-wrap .ra-opts .ra-check:has(input[type=radio])::before{border-radius:50%;}
.ra-wrap .ra-opts .ra-check:has(input[type=checkbox])::before{border-radius:5px;}
.ra-wrap .ra-opts .ra-check:hover{border-color:#cbd5e1;}
.ra-wrap .ra-opts .ra-check:has(input:checked){
  background:var(--sel);border:2px solid var(--navy);padding:10px 15px 10px 13px;
}
.ra-wrap .ra-opts .ra-check:has(input:checked)::before{
  background:var(--navy);box-shadow:inset 0 0 0 3px #fff;
}
/* focus-visible ring for keyboard */
.ra-wrap .ra-opts .ra-check:has(input:focus-visible){box-shadow:0 0 0 3px rgba(20,62,96,.12);}

/* ---- consenso privacy / dichiarazioni = checkbox nudo (NON pillola) ---- */
.ra-wrap .ra-check-single{
  display:flex;align-items:flex-start;gap:10px;margin:2px 0 0;padding:0;
  border:0;background:none;border-radius:0;cursor:pointer;
  font-family:'Geist',sans-serif;font-weight:400;font-size:12px;line-height:1.5;color:var(--muted2);
}
.ra-wrap .ra-check-single input[type=checkbox]{
  position:relative;-webkit-appearance:none;appearance:none;display:inline-block;
  width:18px;height:18px;flex:0 0 auto;margin:1px 0 0;border:1.5px solid var(--navy);
  border-radius:5px;background:#fff;cursor:pointer;transition:background .15s;
}
.ra-wrap .ra-check-single input[type=checkbox]:checked{background:var(--navy);}
.ra-wrap .ra-check-single input[type=checkbox]:checked::after{
  content:"";position:absolute;left:5px;top:1.5px;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}
.ra-wrap .ra-check-single input[type=checkbox]:focus-visible{
  outline:none;box-shadow:0 0 0 3px rgba(20,62,96,.14);
}
.ra-wrap .ra-check-single span{display:inline-block;}
.ra-wrap .ra-check-single a{color:var(--navy);text-decoration:underline;text-underline-offset:2px;}

/* ---- signature pad ---- */
.ra-wrap .ra-sig-box{
  position:relative;border:1px solid var(--line);border-radius:8px;background:var(--field);overflow:hidden;
}
.ra-wrap .ra-sig{width:100%;height:150px;display:block;border-radius:8px;touch-action:none;cursor:crosshair;}
.ra-wrap .ra-sig-clear{
  position:absolute;top:8px;right:8px;font-family:'Geist',sans-serif;font-weight:500;font-size:12px;
  color:var(--navy);padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;
  cursor:pointer;transition:background .15s;
}
.ra-wrap .ra-sig-clear:hover{background:var(--field);}

/* ---- actions / buttons ---- */
.ra-wrap .ra-actions{position:static;background:none;text-align:left;padding:8px 0 0;}
.ra-wrap .ra-btn{
  appearance:none;border:0;cursor:pointer;width:100%;background:var(--volt);color:var(--ink);
  font-family:'Geist',sans-serif;font-weight:600;font-size:15px;padding:14px 24px;border-radius:8px;
  transition:transform .12s,box-shadow .2s,background .2s;
}
.ra-wrap .ra-btn:hover{
  background:var(--volt-h);transform:translateY(-1px);box-shadow:0 8px 20px -6px rgba(20,62,96,.28);
}
.ra-wrap .ra-btn:active{transform:translateY(0) scale(.98);}
.ra-wrap .ra-note-foot{
  display:block;font-size:11.5px;line-height:1.5;color:var(--muted);margin-top:14px;
  max-width:640px;margin-inline:auto;text-align:center;
}

/* ---- alerts ---- */
.ra-wrap .ra-alert{border-radius:12px;padding:16px 18px;margin:0 0 18px;font-size:14px;line-height:1.5;}
.ra-wrap .ra-ok{background:#F2FCE9;border:1px solid #D6EFBE;color:#2C6B1F;}
.ra-wrap .ra-err{background:#FDECEC;border:1px solid #F3C2C2;color:#A12727;font-weight:500;}

/* mobile */
@media(max-width:640px){
  .ra-wrap .ra-sec{padding:22px 20px;border-radius:14px;}
  .ra-wrap .ra-form-title{font-size:24px;}
  .ra-wrap .ra-grid{gap:16px 12px;}
}
