:root{
  --red:#8B0C15;
  --bordeaux:#62051F;
  --ink:#1B1B1D;
  --muted:#6b6b70;
  --line:#e4e4e7;
  --bg:#f5f5f6;
  --card:#ffffff;
  --good:#2E9E5B;
  --radius:12px;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --display:"Futura","Futura LT","Century Gothic","Trebuchet MS",var(--font);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:720px;margin:0 auto;padding:24px 18px 60px}

/* Header */
header.brand{
  display:flex;align-items:center;gap:12px;
  padding:18px 0 22px;
}
header.brand img{height:38px;width:auto;display:block}
header.brand .wordmark{
  font-family:var(--display);
  font-weight:700;font-size:19px;letter-spacing:.3px;color:var(--ink);
}

/* Intro */
.intro{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 22px 20px;margin-bottom:20px;
  border-top:4px solid var(--red);
}
.intro h1{font-family:var(--display);font-size:22px;margin:0 0 8px;line-height:1.25}
.intro p{margin:0;color:var(--muted);font-size:14.5px}
.intro ul{margin:10px 0 10px;padding-left:20px;color:var(--muted);font-size:14.5px;line-height:1.6}

/* Progress */
.progress{margin-bottom:22px}
.progress .bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden}
.progress .fill{height:100%;background:var(--red);width:20%;transition:width .35s ease;border-radius:99px}
.progress .label{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-top:8px}
.progress .label b{color:var(--ink);font-weight:600}

/* Card / steps */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;
}
.step{display:none;animation:fade .3s ease}
.step.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sec-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--red);font-weight:700;margin:0 0 4px}
.sec-title{font-family:var(--display);font-size:20px;margin:0 0 20px;line-height:1.25}

/* Fields */
.field{margin-bottom:22px}
.field:last-child{margin-bottom:0}
.field > label.q{display:block;font-weight:600;font-size:15px;margin-bottom:8px}
.field > p.q{display:block;font-weight:600;font-size:15px;margin:0 0 8px}
.req{color:var(--red);margin-left:2px}
.hint{display:block;font-weight:400;color:var(--muted);font-size:13px;margin-top:2px}
input[type=text],input[type=email],textarea{
  width:100%;font-family:var(--font);font-size:15px;color:var(--ink);
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
textarea{min-height:96px;resize:vertical}
textarea.big{min-height:220px}
input:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(139,12,21,.10)}
.grid3{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3 .full{grid-column:1/-1}

/* radio / checkbox */
.opt{
  display:flex;align-items:flex-start;gap:11px;
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin-bottom:9px;cursor:pointer;
  transition:border-color .15s,background .15s;
}
.opt:hover{border-color:#c9c9cf}
.opt input{margin:2px 0 0;accent-color:var(--red);width:17px;height:17px;flex:0 0 auto}
.opt.checked{border-color:var(--red);background:rgba(139,12,21,.04)}
.opt span{font-size:14.5px}
.cond{margin:-2px 0 12px 28px;display:none}
.cond.show{display:block}
.cond input{margin-bottom:9px}
.sub{font-weight:600;font-size:13.5px;margin:14px 0 8px;color:var(--ink)}

/* static info block */
.info-block{
  border:1px solid var(--line);border-left:3px solid var(--red);border-radius:10px;
  background:rgba(139,12,21,.03);padding:16px 18px;
}
.info-block .info-title{font-family:var(--display);font-weight:700;font-size:15.5px;margin:0 0 8px;color:var(--ink)}
.info-block p{margin:0 0 10px;font-size:14.5px;color:var(--muted);line-height:1.55}
.info-block ul{margin:0 0 10px;padding-left:20px;font-size:14.5px;color:var(--muted);line-height:1.6}
.info-block p:last-child{margin-bottom:0}

.intro .ref{margin-top:10px;color:var(--ink);font-size:14.5px}
.qgroup{margin-bottom:22px}
.qgroup > p.q{font-weight:600;font-size:15px;margin:0 0 4px}
.row{border:1px solid var(--line);border-radius:10px;padding:14px 14px 12px;margin-bottom:12px}
.row .rowq{font-size:14.5px;font-weight:600;margin:0 0 10px}
.row .rowq .num{color:var(--red);margin-right:6px}
.row .field{margin-bottom:0}
.row textarea{min-height:80px}
.row .obj-in{margin-bottom:9px}
.inline-opts{display:flex;gap:9px;flex-wrap:wrap}
.inline-opts .opt{flex:1 1 160px;margin-bottom:9px}
.lbl{display:block;font-size:13.5px;font-weight:600;margin:0 0 6px}
.stack > div{margin-bottom:12px}
.stack > div:last-child{margin-bottom:0}

/* errors */
.err{display:none;color:var(--red);font-size:13px;margin-top:6px;font-weight:500}
.field.invalid .err{display:block}
.field.invalid input[type=text],.field.invalid input[type=email],.field.invalid textarea{border-color:var(--red)}

/* nav */
.nav{display:flex;justify-content:space-between;gap:12px;margin-top:26px}
button{
  font-family:var(--font);font-size:15px;font-weight:600;cursor:pointer;
  border-radius:10px;padding:12px 24px;border:1px solid transparent;transition:all .15s;
}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--bordeaux)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:#c9c9cf}
button:disabled{opacity:.55;cursor:not-allowed}
.nav .spacer{flex:1}

/* end screens */
.screen{display:none;text-align:center;padding:20px 10px}
.screen.active{display:block}
.screen .mark{
  width:64px;height:64px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;
  font-size:30px;color:#fff;
}
.screen.thanks .mark{background:var(--good)}
.screen.error .mark{background:var(--red)}
.screen h2{font-family:var(--display);font-size:23px;margin:0 0 10px}
.screen p{color:var(--muted);font-size:15px;margin:0 auto;max-width:440px}
.screen .nav{justify-content:center;margin-top:24px}

footer{text-align:center;color:var(--muted);font-size:12.5px;margin-top:28px}
footer b{color:var(--ink);font-weight:600}

@media(max-width:560px){
  .grid3{grid-template-columns:1fr}
  .card{padding:22px 17px}
  .intro h1{font-size:20px}
  .progress .label{flex-direction:column;gap:2px}
}

/* ---- aggiunte surveybuilder (stessi token, nessuna modifica al blocco originale) ---- */
input[type=tel]{
  width:100%;font-family:var(--font);font-size:15px;color:var(--ink);
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.field.invalid input[type=tel]{border-color:var(--red)}
.field.cond{margin:-6px 0 22px 28px}
.field.cond.show{display:block}
.sec-desc{margin:-12px 0 20px;color:var(--muted);font-size:14.5px}
.is-hidden{visibility:hidden}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.preview-banner{position:sticky;top:0;z-index:10;background:var(--ink);color:#fff;text-align:center;font-weight:600;font-size:13px;letter-spacing:.06em;padding:8px 12px}
.form-msg{display:none;margin-top:14px;color:var(--red);font-size:13.5px;font-weight:500;text-align:right}
.form-msg.show{display:block}
.form-msg.ok{color:var(--good)}
.opt-single span .req{margin-left:4px}
.opt-hint{display:block;color:var(--muted);font-size:13px;margin:-4px 0 0}
